local createSandbox = require('/apis/libsandbox'); local createVersion = require('/apis/libversion'); local URL_SETTING = 'sandbox.url'; local rawArgs = table.pack(...); local command = rawArgs[1]; local function printUsage() print('sandbox usage:'); print(); print(' sandbox health'); print(' sandbox --version'); print(' sandbox --help'); print(); print('settings required:'); print(' sandbox.url (gateway origin, e.g. ws://host:4444)'); print('settings optional:'); print(' sandbox.password (shared secret for the hello handshake)'); end if command == '--version' or command == '-version' or command == 'version' or command == '-v' then print('v' .. createVersion().forSelf()); return; end if command == '--help' or command == '-help' or command == 'help' or command == '-h' then printUsage(); return; end if command == 'health' then local url = settings.get(URL_SETTING); if type(url) ~= 'string' or url == '' then print('set sandbox.url first'); return; end local ok, result = createSandbox().request('probe_gateway'); if not ok then local code = (type(result) == 'table' and result.code) or 'internal'; local message = (type(result) == 'table' and result.message) or ''; print('sandbox health failed: ' .. tostring(code) .. ' ' .. tostring(message)); return; end print('sandboxOk: ' .. tostring(result.sandboxOk)); print('opencodeOk: ' .. tostring(result.opencodeOk)); if not result.opencodeOk and result.opencodeDetail then print('opencode: ' .. tostring(result.opencodeDetail)); end return; end printUsage();