Spaces:
Runtime error
Runtime error
| import { detectRestrictedEnvironment } from "../utils/environment.mjs"; | |
| import { t } from "../i18n.mjs"; | |
| const RESOURCES = { | |
| combos: "/dashboard/combos", | |
| providers: "/dashboard/providers", | |
| "api-manager": "/dashboard/api-manager", | |
| "cli-tools": "/dashboard/cli-tools", | |
| agents: "/dashboard/agents", | |
| settings: "/dashboard/settings", | |
| logs: "/dashboard/logs", | |
| memory: "/dashboard/memory", | |
| skills: "/dashboard/skills", | |
| evals: "/dashboard/evals", | |
| audit: "/dashboard/audit", | |
| cost: "/dashboard/cost", | |
| resilience: "/dashboard/resilience", | |
| pricing: "/dashboard/pricing", | |
| tunnels: "/dashboard/tunnels", | |
| quota: "/dashboard/quota", | |
| }; | |
| export function registerOpen(program) { | |
| program | |
| .command("open [resource] [id]") | |
| .description(t("open.description")) | |
| .option("--url", t("open.url")) | |
| .action(async (resource, id, opts, cmd) => { | |
| const globalOpts = cmd.optsWithGlobals(); | |
| const baseUrl = globalOpts.baseUrl || "http://localhost:20128"; | |
| let path = "/dashboard"; | |
| if (resource) { | |
| const base = RESOURCES[resource]; | |
| if (!base) { | |
| process.stderr.write( | |
| `Unknown resource: ${resource}\nAvailable: ${Object.keys(RESOURCES).join(", ")}\n` | |
| ); | |
| process.exit(2); | |
| } | |
| path = base; | |
| if (id) { | |
| if (resource === "logs") { | |
| path += `?request=${encodeURIComponent(id)}`; | |
| } else if (resource === "settings") { | |
| path += `/${encodeURIComponent(id)}`; | |
| } else { | |
| path += `/${encodeURIComponent(id)}`; | |
| } | |
| } | |
| } | |
| const url = `${baseUrl}${path}`; | |
| if (opts.url) { | |
| process.stdout.write(url + "\n"); | |
| return; | |
| } | |
| const env = detectRestrictedEnvironment(); | |
| if (!env.canOpenBrowser) { | |
| process.stdout.write(url + "\n"); | |
| if (env.hint) process.stderr.write(`[${env.type}] ${env.hint}\n`); | |
| return; | |
| } | |
| try { | |
| const openPkg = (await import("open")).default; | |
| await openPkg(url); | |
| process.stderr.write(`Opening: ${url}\n`); | |
| } catch { | |
| process.stdout.write(url + "\n"); | |
| } | |
| }); | |
| } | |