@burdenoff/vibe-agent 2.6.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/dist/{app-6d1xq46v.js → app-7xd13pn3.js} +2 -2
- package/dist/cli.js +313 -7
- package/dist/cli.js.map +6 -5
- package/dist/{index-wxxv9rec.js → index-5hb62xkm.js} +4 -4
- package/dist/{index-s7ff1fj1.js → index-f6296kqk.js} +4 -3
- package/dist/{index-s7ff1fj1.js.map → index-f6296kqk.js.map} +3 -3
- package/dist/{index-tjymws9j.js → index-ftbphe7j.js} +160 -8
- package/dist/index-ftbphe7j.js.map +20 -0
- package/dist/index.js +2 -2
- package/dist/{package-4andgzzt.js → package-a1mt704j.js} +3 -3
- package/dist/{package-4andgzzt.js.map → package-a1mt704j.js.map} +1 -1
- package/dist/{plugin-system-x4tbwzyq.js → plugin-system-w2727db6.js} +3 -3
- package/package.json +1 -1
- package/dist/index-tjymws9j.js.map +0 -19
- /package/dist/{app-6d1xq46v.js.map → app-7xd13pn3.js.map} +0 -0
- /package/dist/{index-wxxv9rec.js.map → index-5hb62xkm.js.map} +0 -0
- /package/dist/{plugin-system-x4tbwzyq.js.map → plugin-system-w2727db6.js.map} +0 -0
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/plugins/agent/routes.ts", "../src/cli/commands/health.cmd.ts", "../src/cli/commands/info.cmd.ts", "../src/cli/commands/key.cmd.ts", "../src/cli/commands/system.cmd.ts", "../src/cli/commands/status.cmd.ts", "../src/cli/commands/url.cmd.ts", "../src/cli/commands/gateway-auth.cmd.ts", "../src/plugins/agent/commands.ts", "../src/plugins/agent/index.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"/**\n * Agent Plugin — Routes\n *\n * Core agent endpoints for identity, API key, setup, config, system info,\n * and gateway authentication.\n *\n * Adapted from src/routes/agent.routes.ts for the plugin architecture.\n * The plugin router adds the \"/api/agent\" prefix — this factory returns\n * a bare Elysia instance with no prefix.\n *\n * Endpoints:\n * GET /identity — Agent identity (machineId, platform, etc.)\n * GET /api-key — Get the current API key\n * GET /tunnel — Get agent tunnel URL (from tunnel provider)\n * POST /tunnel/start — Start the agent tunnel\n * POST /tunnel/stop — Stop the agent tunnel\n * GET /setup/check — Check dependency status\n * POST /setup/install — Install missing dependencies\n * POST /gateway-auth — Configure gateway credentials\n * GET /gateway-auth — Get gateway config (without secret)\n * GET /version — Agent version info\n * GET /system — System information\n * GET /status — Agent status\n * GET /url — Get the active API URL (tunnel or local)\n */\n\nimport { Elysia, t } from \"elysia\";\nimport os from \"node:os\";\nimport { join } from \"node:path\";\nimport { readFileSync } from \"node:fs\";\n\nimport type { PluginRouteDeps } from \"../../core/types.js\";\nimport type { TunnelProvider } from \"../../core/providers/tunnel.provider.js\";\nimport {\n checkDependencies,\n installDependencies,\n} from \"../../services/bootstrap.service.js\";\nimport { gatewayClient } from \"../../services/gateway-client.js\";\n\n// ── Machine ID ──────────────────────────────────────────────────────────\n\nfunction getMachineId(): string {\n const hostname = os.hostname();\n const platform = os.platform();\n const arch = os.arch();\n const hasher = new Bun.CryptoHasher(\"sha256\");\n hasher.update(`${hostname}-${platform}-${arch}`);\n return hasher.digest(\"hex\").substring(0, 16);\n}\n\n// ── Version ─────────────────────────────────────────────────────────────\n\nfunction getAgentVersion(): string {\n try {\n const pkgPath = join(import.meta.dir, \"..\", \"..\", \"package.json\");\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf8\")) as Record<\n string,\n unknown\n >;\n return (pkg.version as string) || \"0.0.0\";\n } catch {\n return \"0.0.0\";\n }\n}\n\n// ── Routes ──────────────────────────────────────────────────────────────\n\nexport function createRoutes(deps: PluginRouteDeps) {\n const { db, serviceRegistry } = deps;\n const version = getAgentVersion();\n const machineId = getMachineId();\n\n return (\n new Elysia()\n // Identity (auth-exempt)\n .get(\"/identity\", () => ({\n machineId,\n hostname: os.hostname(),\n platform: os.platform(),\n arch: os.arch(),\n version,\n uptime: process.uptime(),\n }))\n\n // API key (auth-exempt)\n .get(\"/api-key\", (ctx) => ({\n apiKey:\n (ctx as unknown as Record<string, string>).apiKey ??\n (ctx.store as Record<string, string>).apiKey ??\n \"unknown\",\n }))\n\n // Tunnel URL (auth-exempt — used by backend for probing)\n .get(\"/tunnel\", async () => {\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n if (!tunnelProvider) {\n return { tunnelUrl: null, message: \"No tunnel provider registered\" };\n }\n const url = await tunnelProvider.getActiveTunnelUrl();\n return { tunnelUrl: url };\n })\n\n // Start agent tunnel\n .post(\"/tunnel/start\", async ({ set }) => {\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n if (!tunnelProvider) {\n set.status = 400;\n return { error: \"No tunnel provider registered\" };\n }\n const port = parseInt(process.env.PORT || \"3005\");\n const tunnel = await tunnelProvider.start({ port, name: \"agent\" });\n return { success: true, tunnel };\n })\n\n // Stop agent tunnel\n .post(\"/tunnel/stop\", async ({ set }) => {\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n if (!tunnelProvider) {\n set.status = 400;\n return { error: \"No tunnel provider registered\" };\n }\n const tunnels = await tunnelProvider.list();\n const agentTunnel = tunnels.find((t) => t.metadata?.isAgent);\n if (agentTunnel) {\n await tunnelProvider.stop(agentTunnel.id);\n }\n return { success: true };\n })\n\n // Setup check\n .get(\"/setup/check\", () => {\n const deps = checkDependencies();\n const allInstalled = deps\n .filter((d) => d.required)\n .every((d) => d.installed);\n return { ready: allInstalled, dependencies: deps };\n })\n\n // Setup install\n .post(\"/setup/install\", async () => {\n const result = await installDependencies();\n return result;\n })\n\n // Gateway auth — configure\n .post(\n \"/gateway-auth\",\n async ({ body, set }) => {\n try {\n gatewayClient.configure({\n globalGatewayUrl:\n body.tenantApiUrl || body.globalGatewayUrl || \"\",\n workspaceGatewayUrl:\n body.workspacesApiUrl || body.workspaceGatewayUrl,\n clientId: body.appClientId || body.clientId || \"\",\n clientSecret: body.appClientSecret || body.clientSecret || \"\",\n });\n\n // Persist credentials\n if (body.appClientId || body.clientId) {\n db.setConfig(\n \"gateway-auth:clientId\",\n body.appClientId || body.clientId || \"\",\n );\n }\n if (body.appClientSecret || body.clientSecret) {\n db.setConfig(\n \"gateway-auth:clientSecret\",\n body.appClientSecret || body.clientSecret || \"\",\n );\n }\n if (body.workspacesApiUrl || body.workspaceGatewayUrl) {\n db.setConfig(\n \"gateway-auth:workspaceGatewayUrl\",\n body.workspacesApiUrl || body.workspaceGatewayUrl || \"\",\n );\n }\n if (body.tenantApiUrl || body.globalGatewayUrl) {\n db.setConfig(\n \"gateway-auth:globalGatewayUrl\",\n body.tenantApiUrl || body.globalGatewayUrl || \"\",\n );\n }\n if (body.workspaceId) {\n db.setConfig(\"gateway-auth:workspaceId\", body.workspaceId);\n }\n\n return { success: true, message: \"Gateway auth configured\" };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to configure gateway auth\",\n message: String(err),\n };\n }\n },\n {\n body: t.Object({\n workspacesApiUrl: t.Optional(t.String()),\n tenantApiUrl: t.Optional(t.String()),\n globalGatewayUrl: t.Optional(t.String()),\n workspaceGatewayUrl: t.Optional(t.String()),\n appClientId: t.Optional(t.String()),\n appClientSecret: t.Optional(t.String()),\n clientId: t.Optional(t.String()),\n clientSecret: t.Optional(t.String()),\n workspaceId: t.Optional(t.String()),\n }),\n },\n )\n\n // Gateway auth — get config (without secret)\n .get(\"/gateway-auth\", () => {\n const config = gatewayClient.getConfig();\n return { configured: gatewayClient.isConfigured(), config };\n })\n\n // Version\n .get(\"/version\", () => ({\n version,\n runtime: \"bun\",\n runtimeVersion: typeof Bun !== \"undefined\" ? Bun.version : \"unknown\",\n }))\n\n // System info\n .get(\"/system\", () => ({\n hostname: os.hostname(),\n platform: os.platform(),\n arch: os.arch(),\n release: os.release(),\n cpus: os.cpus().length,\n totalMemory: os.totalmem(),\n freeMemory: os.freemem(),\n uptime: os.uptime(),\n bunVersion: typeof Bun !== \"undefined\" ? Bun.version : undefined,\n agentVersion: version,\n homeDir: os.homedir(),\n cwd: process.cwd(),\n environment: process.env.NODE_ENV || \"production\",\n }))\n\n // Agent status\n .get(\"/status\", () => ({\n status: \"online\",\n timestamp: new Date().toISOString(),\n version,\n providers: serviceRegistry.listProviders(),\n services: serviceRegistry.listServices(),\n }))\n\n // Get active URL (tunnel URL or local URL)\n .get(\"/url\", async () => {\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n const tunnelUrl = tunnelProvider\n ? await tunnelProvider.getActiveTunnelUrl()\n : null;\n const localUrl = `http://localhost:${process.env.PORT || 3005}`;\n return {\n url: tunnelUrl || localUrl,\n tunnelUrl,\n localUrl,\n source: tunnelUrl ? \"tunnel\" : \"local\",\n };\n })\n );\n}\n",
|
|
6
|
-
"import { Command } from \"commander\";\nimport {\n success,\n info,\n fail,\n header,\n kv,\n blank,\n colors,\n icons,\n formatStatus,\n getAgentUrl,\n apiGet,\n} from \"../utils/index.js\";\nimport { ServiceManager } from \"../../services/service-manager.js\";\n\nconst DEFAULT_AGENT_URL = \"http://localhost:3005\";\n\ninterface HealthResponse {\n status: string;\n uptime?: number;\n version?: string;\n timestamp?: string;\n checks?: Record<string, { status: string; message?: string }>;\n}\n\ninterface HealthCheckResult {\n healthy: boolean;\n details: {\n status?: string;\n uptime?: number;\n checks?: Record<string, { status: string; message?: string }>;\n [key: string]: unknown;\n };\n}\n\nexport function register(program: Command): void {\n program\n .command(\"health\")\n .description(\"Check health of a VibeControls agent instance\")\n .option(\"-n, --name <name>\", \"Agent instance name\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (opts) => {\n try {\n header(\"Agent Health\");\n blank();\n\n if (opts.name) {\n // Use service manager for named instance health check\n const serviceManager = new ServiceManager();\n\n const result = (await serviceManager.checkHealth(\n opts.name,\n )) as HealthCheckResult;\n\n if (!result.healthy) {\n fail(`Agent instance ${colors.bold(opts.name)} is not responding.`);\n return;\n }\n\n const details = result.details;\n kv(\"Instance\", opts.name);\n kv(\"Status\", formatStatus(details.status ?? \"healthy\"));\n\n if (details.uptime !== undefined) {\n kv(\"Uptime\", `${details.uptime}s`);\n }\n\n if (details.checks) {\n blank();\n info(`${icons.info} Health checks:`);\n for (const [name, check] of Object.entries(details.checks)) {\n const icon =\n check.status === \"healthy\" ? icons.success : icons.error;\n kv(` ${icon} ${name}`, formatStatus(check.status));\n }\n }\n } else {\n // Use HTTP endpoint for URL-based health check\n const agentUrl = getAgentUrl(opts);\n\n const data = await apiGet<HealthResponse>(agentUrl, \"/health\");\n\n kv(\"URL\", agentUrl);\n kv(\"Status\", formatStatus(data.status));\n\n if (data.version) {\n kv(\"Version\", data.version);\n }\n\n if (data.uptime !== undefined) {\n kv(\"Uptime\", `${data.uptime}s`);\n }\n\n if (data.timestamp) {\n kv(\"Timestamp\", data.timestamp);\n }\n\n if (data.checks) {\n blank();\n info(`${icons.info} Health checks:`);\n for (const [name, check] of Object.entries(data.checks)) {\n const icon =\n check.status === \"healthy\" ? icons.success : icons.error;\n kv(` ${icon} ${name}`, formatStatus(check.status));\n }\n }\n }\n\n blank();\n success(`${icons.success} Agent is healthy.`);\n } catch (err: any) {\n fail(`Health check failed: ${err.message}`);\n }\n });\n}\n",
|
|
7
|
-
"import { Command } from \"commander\";\nimport { platform, arch, release, hostname, cpus, totalmem } from \"node:os\";\nimport {\n info,\n fail,\n header,\n kv,\n blank,\n colors,\n icons,\n formatBytes,\n getAgentUrl,\n apiGet,\n} from \"../utils/index.js\";\n\nconst DEFAULT_AGENT_URL = \"http://localhost:3005\";\n\ninterface VersionResponse {\n version: string;\n build?: string;\n commit?: string;\n nodeVersion?: string;\n bunVersion?: string;\n}\n\nexport function register(program: Command): void {\n program\n .command(\"info\")\n .description(\"Show local and remote VibeControls agent information\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (opts) => {\n try {\n header(\"VibeControls Agent Info\");\n blank();\n\n // Local system info\n info(`${icons.info} Local System`);\n kv(\"Hostname\", hostname());\n kv(\"Platform\", `${platform()} ${arch()}`);\n kv(\"OS Release\", release());\n kv(\"CPUs\", String(cpus().length));\n kv(\"Total Memory\", formatBytes(totalmem()));\n kv(\"Node.js\", process.version);\n\n if (process.versions.bun) {\n kv(\"Bun\", process.versions.bun);\n }\n\n blank();\n\n // Remote agent info\n const agentUrl = getAgentUrl(opts);\n\n try {\n const data = await apiGet<VersionResponse>(\n agentUrl,\n \"/api/agent/version\",\n );\n\n info(`${icons.info} Remote Agent`);\n kv(\"URL\", agentUrl);\n kv(\"Version\", colors.bold(data.version));\n\n if (data.build) {\n kv(\"Build\", data.build);\n }\n\n if (data.commit) {\n kv(\"Commit\", data.commit);\n }\n\n if (data.nodeVersion) {\n kv(\"Node.js (remote)\", data.nodeVersion);\n }\n\n if (data.bunVersion) {\n kv(\"Bun (remote)\", data.bunVersion);\n }\n } catch {\n info(`${icons.info} Remote Agent`);\n kv(\"URL\", agentUrl);\n kv(\"Status\", colors.dim(\"not reachable\"));\n }\n\n blank();\n } catch (err: any) {\n fail(`Failed to get info: ${err.message}`);\n }\n });\n}\n",
|
|
8
|
-
"import { Command } from \"commander\";\nimport {\n fail,\n header,\n kv,\n blank,\n colors,\n getAgentUrl,\n apiGet,\n} from \"../utils/index.js\";\n\nconst DEFAULT_AGENT_URL = \"http://localhost:3005\";\n\ninterface ApiKeyResponse {\n apiKey: string;\n}\n\nexport function register(program: Command): void {\n program\n .command(\"key\")\n .description(\"Get the API key for a running VibeControls agent\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (opts) => {\n try {\n const agentUrl = getAgentUrl(opts);\n\n header(\"Agent API Key\");\n blank();\n\n const data = await apiGet<ApiKeyResponse>(\n agentUrl,\n \"/api/agent/api-key\",\n );\n\n kv(\"API Key\", colors.bold(data.apiKey));\n blank();\n } catch (err: any) {\n fail(`Failed to get API key: ${err.message}`);\n }\n });\n}\n",
|
|
9
|
-
"import { Command } from \"commander\";\nimport {\n info,\n fail,\n header,\n kv,\n blank,\n colors,\n icons,\n formatBytes,\n formatDuration,\n getAgentUrl,\n apiGet,\n} from \"../utils/index.js\";\n\nconst DEFAULT_AGENT_URL = \"http://localhost:3005\";\n\ninterface SystemResponse {\n hostname: string;\n platform: string;\n arch: string;\n release: string;\n cpus: number;\n totalMemory: number;\n freeMemory: number;\n uptime: number;\n bunVersion?: string;\n agentVersion: string;\n homeDir: string;\n cwd: string;\n environment?: string;\n}\n\nexport function register(program: Command): void {\n program\n .command(\"system\")\n .description(\"Show system information for a running VibeControls agent\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (opts) => {\n try {\n const agentUrl = getAgentUrl(opts);\n\n header(\"Agent System Information\");\n blank();\n\n const data = await apiGet<SystemResponse>(\n agentUrl,\n \"/api/agent/system\",\n );\n\n // Agent info\n info(`${icons.info} Agent`);\n kv(\"Version\", colors.bold(data.agentVersion));\n if (data.bunVersion) {\n kv(\"Bun\", data.bunVersion);\n }\n if (data.environment) {\n kv(\"Environment\", data.environment);\n }\n kv(\"Uptime\", formatDuration(data.uptime));\n blank();\n\n // Platform info\n info(`${icons.info} Platform`);\n kv(\"OS\", `${data.platform} ${data.arch}`);\n kv(\"Hostname\", data.hostname);\n kv(\"Release\", data.release);\n blank();\n\n // Resources\n info(`${icons.info} Resources`);\n kv(\"CPUs\", String(data.cpus));\n kv(\"Total Memory\", formatBytes(data.totalMemory));\n kv(\"Free Memory\", formatBytes(data.freeMemory));\n blank();\n\n // Paths\n info(`${icons.info} Paths`);\n kv(\"Home\", data.homeDir);\n kv(\"CWD\", data.cwd);\n blank();\n } catch (err: any) {\n fail(`Failed to get system info: ${err.message}`);\n }\n });\n}\n",
|
|
10
|
-
"import { Command } from \"commander\";\nimport {\n info,\n fail,\n header,\n kv,\n blank,\n colors,\n icons,\n formatStatus,\n timeAgo,\n formatTable,\n} from \"../utils/index.js\";\nimport { ServiceManager } from \"../../services/service-manager.js\";\n\nexport function register(program: Command): void {\n program\n .command(\"status\")\n .description(\"Show status of VibeControls agent instance(s)\")\n .option(\"-n, --name <name>\", \"Agent instance name\")\n .action(async (opts) => {\n try {\n const serviceManager = new ServiceManager();\n\n if (opts.name) {\n // Show individual instance status\n header(`Agent Status: ${opts.name}`);\n blank();\n\n const instance = await serviceManager.getStatus(opts.name);\n\n if (!instance) {\n fail(`Agent instance ${colors.bold(opts.name)} not found.`);\n return;\n }\n\n kv(\"Name\", instance.name);\n kv(\"Status\", formatStatus(instance.status));\n kv(\"PID\", instance.pid ? String(instance.pid) : colors.dim(\"n/a\"));\n kv(\"Port\", instance.port ? String(instance.port) : colors.dim(\"n/a\"));\n kv(\"Host\", instance.config?.host || colors.dim(\"n/a\"));\n kv(\"Database\", instance.config?.dbPath || colors.dim(\"n/a\"));\n\n if (instance.startTime) {\n kv(\"Started\", timeAgo(instance.startTime));\n }\n\n blank();\n } else {\n // Show all instances\n header(\"Agent Instances\");\n blank();\n\n const instances = await serviceManager.listInstances();\n\n if (!instances || instances.length === 0) {\n info(`${icons.info} No agent instances found.`);\n info(`Run ${colors.bold(\"vibe start\")} to start an agent.`);\n return;\n }\n\n const rows = instances.map((inst) => ({\n Name: inst.name,\n Status: formatStatus(inst.status),\n PID: inst.pid || \"-\",\n Port: inst.port || \"-\",\n Started: inst.startTime ? timeAgo(inst.startTime) : \"-\",\n }));\n\n formatTable(rows);\n\n blank();\n info(\n `${icons.info} ${instances.length} instance(s) found. Use ${colors.bold(\"vibe status -n <name>\")} for details.`,\n );\n }\n } catch (err: any) {\n fail(`Failed to get status: ${err.message}`);\n }\n });\n}\n",
|
|
11
|
-
"import { Command } from \"commander\";\nimport {\n info,\n fail,\n header,\n kv,\n blank,\n colors,\n icons,\n getAgentUrl,\n apiGet,\n} from \"../utils/index.js\";\n\nconst DEFAULT_AGENT_URL = \"http://localhost:3005\";\n\ninterface UrlResponse {\n url: string;\n tunnelUrl?: string;\n localUrl: string;\n isTunnel: boolean;\n}\n\nexport function register(program: Command): void {\n program\n .command(\"url\")\n .description(\"Show the active URL for a running VibeControls agent\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (opts) => {\n try {\n const agentUrl = getAgentUrl(opts);\n\n header(\"Agent URL\");\n blank();\n\n const data = await apiGet<UrlResponse>(agentUrl, \"/api/agent/url\");\n\n kv(\"Active URL\", colors.bold(data.url));\n kv(\"Local URL\", data.localUrl);\n\n if (data.tunnelUrl) {\n kv(\"Tunnel URL\", colors.cyan(data.tunnelUrl));\n }\n\n kv(\n \"Mode\",\n data.isTunnel\n ? `${icons.running} Tunnel active`\n : `${icons.info} Local only`,\n );\n\n blank();\n\n if (data.isTunnel) {\n info(\n `${icons.info} Agent is accessible via tunnel at ${colors.bold(data.tunnelUrl!)}`,\n );\n } else {\n info(\n `${icons.info} Agent is running locally at ${colors.bold(data.localUrl)}`,\n );\n }\n } catch (err: any) {\n fail(`Failed to get URL: ${err.message}`);\n }\n });\n}\n",
|
|
12
|
-
"import { Command } from \"commander\";\nimport {\n success,\n info,\n fail,\n header,\n kv,\n blank,\n colors,\n icons,\n getAgentUrl,\n apiGet,\n apiPost,\n} from \"../utils/index.js\";\n\nconst DEFAULT_AGENT_URL = \"http://localhost:3005\";\n\ninterface GatewayAuthStatusResponse {\n configured: boolean;\n globalUrl?: string;\n workspaceUrl?: string;\n clientId?: string;\n authenticated: boolean;\n tokenExpiresAt?: string;\n}\n\ninterface GatewayAuthConfigureResponse {\n success: boolean;\n message: string;\n}\n\nexport function register(program: Command): void {\n const gatewayAuth = program\n .command(\"gateway-auth\")\n .description(\"Manage gateway authentication for VibeControls agent\");\n\n gatewayAuth\n .command(\"configure\")\n .description(\"Configure gateway authentication credentials\")\n .requiredOption(\"--global-url <url>\", \"Global gateway URL\")\n .requiredOption(\"--workspace-url <url>\", \"Workspace gateway URL\")\n .requiredOption(\"--client-id <id>\", \"OAuth client ID\")\n .requiredOption(\"--client-secret <secret>\", \"OAuth client secret\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (opts) => {\n try {\n const agentUrl = getAgentUrl(opts);\n\n header(\"Configure Gateway Authentication\");\n blank();\n\n info(`${icons.info} Sending gateway auth configuration...`);\n blank();\n\n const data = await apiPost<GatewayAuthConfigureResponse>(\n agentUrl,\n \"/api/agent/gateway-auth\",\n {\n globalUrl: opts.globalUrl,\n workspaceUrl: opts.workspaceUrl,\n clientId: opts.clientId,\n clientSecret: opts.clientSecret,\n },\n );\n\n if (data.success) {\n success(\n `${icons.success} Gateway authentication configured successfully.`,\n );\n blank();\n kv(\"Global URL\", opts.globalUrl);\n kv(\"Workspace URL\", opts.workspaceUrl);\n kv(\"Client ID\", opts.clientId);\n kv(\"Client Secret\", colors.dim(\"********\"));\n } else {\n fail(data.message || \"Failed to configure gateway authentication.\");\n }\n\n blank();\n } catch (err: any) {\n fail(`Failed to configure gateway auth: ${err.message}`);\n }\n });\n\n gatewayAuth\n .command(\"status\")\n .description(\"Check gateway authentication status\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (opts) => {\n try {\n const agentUrl = getAgentUrl(opts);\n\n header(\"Gateway Authentication Status\");\n blank();\n\n const data = await apiGet<GatewayAuthStatusResponse>(\n agentUrl,\n \"/api/agent/gateway-auth\",\n );\n\n kv(\n \"Configured\",\n data.configured\n ? `${icons.success} ${colors.green(\"Yes\")}`\n : `${icons.error} ${colors.red(\"No\")}`,\n );\n\n if (data.configured) {\n kv(\"Global URL\", data.globalUrl || colors.dim(\"n/a\"));\n kv(\"Workspace URL\", data.workspaceUrl || colors.dim(\"n/a\"));\n kv(\"Client ID\", data.clientId || colors.dim(\"n/a\"));\n kv(\n \"Authenticated\",\n data.authenticated\n ? `${icons.success} ${colors.green(\"Yes\")}`\n : `${icons.error} ${colors.red(\"No\")}`,\n );\n\n if (data.tokenExpiresAt) {\n kv(\"Token Expires\", data.tokenExpiresAt);\n }\n } else {\n blank();\n info(\n `${icons.info} Run ${colors.bold(\"vibe gateway-auth configure\")} to set up gateway authentication.`,\n );\n }\n\n blank();\n } catch (err: any) {\n fail(`Failed to get gateway auth status: ${err.message}`);\n }\n });\n}\n",
|
|
13
|
-
"/**\n * Agent Plugin — CLI Commands\n *\n * Consolidates the core agent CLI commands by re-exporting the existing\n * register functions from the individual command files. The plugin's\n * onCliSetup hook calls registerCommands() to wire them into Commander.\n *\n * Commands: health, info, key, system, status, url, gateway-auth\n */\n\nimport type { Command } from \"commander\";\nimport type { HostServices } from \"../../core/plugin-system.js\";\n\n// Re-export individual command registrations\nimport { register as registerHealth } from \"../../cli/commands/health.cmd.js\";\nimport { register as registerInfo } from \"../../cli/commands/info.cmd.js\";\nimport { register as registerKey } from \"../../cli/commands/key.cmd.js\";\nimport { register as registerSystem } from \"../../cli/commands/system.cmd.js\";\nimport { register as registerStatus } from \"../../cli/commands/status.cmd.js\";\nimport { register as registerUrl } from \"../../cli/commands/url.cmd.js\";\nimport { register as registerGatewayAuth } from \"../../cli/commands/gateway-auth.cmd.js\";\n\nexport function registerCommands(\n program: Command,\n _hostServices: HostServices,\n): void {\n registerHealth(program);\n registerInfo(program);\n registerKey(program);\n registerSystem(program);\n registerStatus(program);\n registerUrl(program);\n registerGatewayAuth(program);\n}\n",
|
|
14
|
-
"/**\n * Agent Plugin — Entry Point\n *\n * Core plugin providing agent identity, system information, dependency\n * setup, and gateway authentication. Always loaded as part of the\n * built-in plugin set.\n */\n\nimport type { VibePlugin } from \"../../core/plugin-system.js\";\nimport type { PluginRouteDeps } from \"../../core/types.js\";\nimport { createRoutes } from \"./routes.js\";\nimport { registerCommands } from \"./commands.js\";\n\nexport const vibePlugin: VibePlugin = {\n name: \"agent\",\n version: \"2.2.0\",\n description:\n \"Core agent identity, system info, setup, and gateway authentication\",\n tags: [\"backend\", \"cli\"],\n cliCommand: \"agent\",\n apiPrefix: \"/api/agent\",\n publicPaths: [\"/identity\", \"/api-key\", \"/tunnel\"],\n\n createRoutes: (deps: PluginRouteDeps) => createRoutes(deps),\n\n onCliSetup: async (program, hostServices) => {\n registerCommands(program, hostServices);\n },\n};\n"
|
|
15
|
-
],
|
|
16
|
-
"mappings": "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",
|
|
17
|
-
"debugId": "9AE6B13FD3CF2B6664756E2164756E21",
|
|
18
|
-
"names": []
|
|
19
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|