@burdenoff/vibe-agent 2.7.5 → 2.8.0
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/dist/{app-rjhw31y9.js → app-tba5zhmy.js} +2 -2
- package/dist/cli.js +374 -8
- package/dist/cli.js.map +8 -5
- package/dist/{index-wmvkjcjj.js → index-0429nfr9.js} +2 -2
- package/dist/{index-3rjnbp97.js → index-0nt6wnb9.js} +2 -2
- package/dist/{index-npmvh1x9.js → index-7ph3496b.js} +2 -2
- package/dist/{index-4nsdre0j.js → index-9grqzmk5.js} +40 -12
- package/dist/index-9grqzmk5.js.map +13 -0
- package/dist/{index-fm6gqenc.js → index-a3q5ewrj.js} +2 -2
- package/dist/{index-b6fsz3ht.js → index-cndcb55v.js} +178 -13
- package/dist/index-cndcb55v.js.map +13 -0
- package/dist/{index-6vry08rz.js → index-dhbg241c.js} +2 -2
- package/dist/{index-hefqxwht.js → index-e2dzjkmm.js} +2 -2
- package/dist/{index-t0nsa57v.js → index-et6rnq2y.js} +2 -2
- package/dist/{index-ftbphe7j.js → index-exh7dh2v.js} +141 -14
- package/dist/{index-ftbphe7j.js.map → index-exh7dh2v.js.map} +3 -3
- package/dist/{index-30p492yv.js → index-swqzafr9.js} +2 -2
- package/dist/{index-xmeskdnb.js → index-t0x810hm.js} +133 -74
- package/dist/index-t0x810hm.js.map +12 -0
- package/dist/{index-c7zy3n33.js → index-vzmmv3r7.js} +2 -2
- package/dist/{index-a9g7hbj9.js → index-w7m3p4qa.js} +2 -2
- package/dist/index.js +2 -2
- package/dist/{package-6sds8pgn.js → package-cck2kzyn.js} +3 -3
- package/dist/{package-6sds8pgn.js.map → package-cck2kzyn.js.map} +1 -1
- package/dist/{plugin-system-a2hmq7cg.js → plugin-system-75q3s1rf.js} +87 -15
- package/dist/plugin-system-75q3s1rf.js.map +10 -0
- package/package.json +1 -1
- package/dist/index-4nsdre0j.js.map +0 -13
- package/dist/index-b6fsz3ht.js.map +0 -13
- package/dist/index-xmeskdnb.js.map +0 -11
- package/dist/plugin-system-a2hmq7cg.js.map +0 -10
- /package/dist/{app-rjhw31y9.js.map → app-tba5zhmy.js.map} +0 -0
- /package/dist/{index-wmvkjcjj.js.map → index-0429nfr9.js.map} +0 -0
- /package/dist/{index-3rjnbp97.js.map → index-0nt6wnb9.js.map} +0 -0
- /package/dist/{index-npmvh1x9.js.map → index-7ph3496b.js.map} +0 -0
- /package/dist/{index-fm6gqenc.js.map → index-a3q5ewrj.js.map} +0 -0
- /package/dist/{index-6vry08rz.js.map → index-dhbg241c.js.map} +0 -0
- /package/dist/{index-hefqxwht.js.map → index-e2dzjkmm.js.map} +0 -0
- /package/dist/{index-t0nsa57v.js.map → index-et6rnq2y.js.map} +0 -0
- /package/dist/{index-30p492yv.js.map → index-swqzafr9.js.map} +0 -0
- /package/dist/{index-c7zy3n33.js.map → index-vzmmv3r7.js.map} +0 -0
- /package/dist/{index-a9g7hbj9.js.map → index-w7m3p4qa.js.map} +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/plugins/plugin-mgr/routes.ts", "../src/cli/commands/plugin.cmd.ts", "../src/plugins/plugin-mgr/commands.ts", "../src/plugins/plugin-mgr/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Plugin Manager Routes\n *\n * Plugin management — list, install, remove, reload, available catalog.\n *\n * Endpoints:\n * GET /api/plugins — List all installed plugins\n * GET /api/plugins/available — List available plugins from catalog\n * POST /api/plugins/install — Install a plugin by package name\n * POST /api/plugins/remove — Remove (uninstall) a plugin\n * POST /api/plugins/reload — Hot-reload all plugins\n */\n\nimport { Elysia, t } from \"elysia\";\n\nimport type { AvailablePlugin, PluginRouteDeps } from \"../../core/types.js\";\n\n// ── Available Plugins Catalog ───────────────────────────────────────────\n\nconst AVAILABLE_PLUGINS: AvailablePlugin[] = [\n {\n packageName: \"@burdenoff/vibe-plugin-tunnel-cloudflare\",\n name: \"tunnel-cloudflare\",\n description: \"Cloudflare Tunnel provider for remote access\",\n cliCommand: \"tunnel\",\n apiPrefix: \"/api/tunnel-cloudflare\",\n installed: false,\n category: \"tunnel\",\n },\n {\n packageName: \"@burdenoff/vibe-plugin-session-tmux\",\n name: \"session-tmux\",\n description: \"tmux session provider for terminal management\",\n cliCommand: \"session\",\n apiPrefix: \"/api/session-tmux\",\n installed: false,\n category: \"session\",\n },\n {\n packageName: \"@burdenoff/vibe-plugin-ssh\",\n name: \"ssh\",\n description: \"SSH connection management and port forwarding\",\n cliCommand: \"ssh\",\n apiPrefix: \"/api/ssh\",\n installed: false,\n category: \"tool\",\n },\n {\n packageName: \"@burdenoff/vibe-plugin-ai\",\n name: \"ai\",\n description: \"AI tool management and integration\",\n cliCommand: \"ai\",\n apiPrefix: undefined,\n installed: false,\n category: \"integration\",\n },\n {\n packageName: \"@burdenoff/vibe-plugin-ui-ssh\",\n name: \"ui-ssh\",\n description: \"Web UI for SSH connection management and port forwarding\",\n cliCommand: undefined,\n apiPrefix: undefined,\n installed: false,\n category: \"frontend\",\n },\n {\n packageName: \"@burdenoff/vibe-plugin-ui-ai\",\n name: \"ui-ai\",\n description: \"Web UI for AI tool catalog and detection status\",\n cliCommand: undefined,\n apiPrefix: undefined,\n installed: false,\n category: \"frontend\",\n },\n];\n\n// ── Routes ──────────────────────────────────────────────────────────────\n\nexport function createRoutes(deps: PluginRouteDeps) {\n const { pluginManager } = deps;\n\n return (\n new Elysia()\n // List all installed plugins\n .get(\"/\", () => {\n const plugins = pluginManager.getPluginDetails();\n return { plugins, count: plugins.length };\n })\n\n // List available plugins from catalog\n .get(\"/available\", () => {\n const installed = pluginManager.getPluginDetails();\n const installedNames = new Set(installed.map((p) => p.packageName));\n\n return {\n plugins: AVAILABLE_PLUGINS.map((p) => ({\n ...p,\n installed: installedNames.has(p.packageName),\n })),\n };\n })\n\n // Install a plugin by package name\n .post(\n \"/install\",\n async ({ body, set }) => {\n if (!body.packageName || typeof body.packageName !== \"string\") {\n set.status = 400;\n return { error: \"Missing required field: packageName\" };\n }\n\n try {\n await pluginManager.install(body.packageName);\n return {\n success: true,\n message: `Plugin ${body.packageName} installed and loaded successfully`,\n };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to install plugin\", details: String(err) };\n }\n },\n {\n body: t.Object({\n packageName: t.String(),\n }),\n },\n )\n\n // Remove (uninstall) a plugin\n .post(\n \"/remove\",\n async ({ body, set }) => {\n if (!body.packageName || typeof body.packageName !== \"string\") {\n set.status = 400;\n return { error: \"Missing required field: packageName\" };\n }\n\n try {\n await pluginManager.remove(body.packageName);\n return {\n success: true,\n message: `Plugin ${body.packageName} removed successfully`,\n };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to remove plugin\", details: String(err) };\n }\n },\n {\n body: t.Object({\n packageName: t.String(),\n }),\n },\n )\n\n // Update a plugin to latest version\n .post(\n \"/update\",\n async ({ body, set }) => {\n if (!body.packageName || typeof body.packageName !== \"string\") {\n set.status = 400;\n return { error: \"Missing required field: packageName\" };\n }\n\n try {\n const entry = await pluginManager.update(body.packageName);\n return {\n success: true,\n message: `Plugin ${body.packageName} updated to v${entry.version}`,\n version: entry.version,\n };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to update plugin\", details: String(err) };\n }\n },\n {\n body: t.Object({\n packageName: t.String(),\n }),\n },\n )\n\n // Update all plugins to latest versions\n .post(\"/update-all\", async ({ set }) => {\n try {\n const results = await pluginManager.updateAll();\n return {\n success: true,\n results,\n message: `Updated ${results.filter((r) => r.success).length}/${results.length} plugin(s)`,\n };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to update all plugins\",\n details: String(err),\n };\n }\n })\n\n // Remove all plugins\n .post(\"/remove-all\", async ({ set }) => {\n try {\n const results = await pluginManager.removeAll();\n return {\n success: true,\n results,\n message: `Removed ${results.filter((r) => r.success).length}/${results.length} plugin(s)`,\n };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to remove all plugins\",\n details: String(err),\n };\n }\n })\n\n // Hot-reload all plugins\n // TODO: reloadAll needs app + hostServices — for now we just loadAll again\n .post(\"/reload\", async ({ set }) => {\n try {\n await pluginManager.dispatchServerStop();\n await pluginManager.loadAll();\n const plugins = pluginManager.getPluginDetails();\n return {\n success: true,\n plugins,\n message: `Reloaded ${plugins.length} plugin(s)`,\n };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to reload plugins\", details: String(err) };\n }\n })\n );\n}\n",
|
|
6
|
+
"import { Command } from \"commander\";\nimport { mkdirSync, writeFileSync, existsSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport {\n getAgentUrl,\n apiGet,\n apiPost,\n fail,\n success,\n info,\n warn,\n header,\n kv,\n formatTable,\n} from \"../utils/index.js\";\n\nconst DEFAULT_AGENT_URL = \"http://localhost:3005\";\n\nexport function register(program: Command): void {\n const cmd = program.command(\"plugin\").description(\"Manage plugins\");\n\n // plugin list\n cmd\n .command(\"list\")\n .description(\"List installed plugins\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .option(\"--agent <name>\", \"Target agent instance by name\")\n .option(\"--profile <name>\", \"Alias for --agent\")\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n let plugins: any[];\n try {\n const data = await apiGet<{ plugins: any[]; count: number }>(\n url,\n \"/api/plugins\",\n );\n plugins = data.plugins || [];\n } catch {\n warn(\"Agent not reachable. Attempting local plugin registry...\");\n try {\n const { PluginManager } =\n await import(\"../../core/plugin-system.js\");\n const pm = new PluginManager();\n plugins = pm.getPluginDetails() || [];\n } catch {\n fail(\"Could not list plugins from agent or local registry.\");\n return;\n }\n }\n if (!plugins || plugins.length === 0) {\n info(\"No plugins installed.\");\n return;\n }\n header(\"Installed Plugins\");\n formatTable(\n plugins.map((p: any) => ({\n Name: p.name || p.package || \"-\",\n Version: p.version || \"-\",\n Status: p.status || p.enabled ? \"enabled\" : \"disabled\",\n Description: p.description || \"-\",\n })),\n );\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // plugin install\n cmd\n .command(\"install\")\n .description(\"Install a plugin\")\n .argument(\"<package>\", \"NPM package name to install\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .option(\"--agent <name>\", \"Target agent instance by name\")\n .option(\"--profile <name>\", \"Alias for --agent\")\n .action(async (packageName: string, options) => {\n try {\n const url = getAgentUrl(options);\n try {\n const result = await apiPost<any>(url, \"/api/plugins/install\", {\n packageName,\n });\n success(`Plugin \"${packageName}\" installed.`);\n if (result?.version) kv(\"Version\", result.version);\n } catch {\n warn(\"Agent not reachable. Attempting local install...\");\n try {\n const { PluginManager } =\n await import(\"../../core/plugin-system.js\");\n const pm = new PluginManager();\n await pm.install(packageName);\n success(`Plugin \"${packageName}\" installed locally.`);\n } catch (localErr: any) {\n fail(\n `Could not install plugin via agent or locally: ${localErr.message}`,\n );\n }\n }\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // plugin remove\n cmd\n .command(\"remove\")\n .description(\"Remove a plugin\")\n .argument(\"<package>\", \"NPM package name to remove\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .option(\"--agent <name>\", \"Target agent instance by name\")\n .option(\"--profile <name>\", \"Alias for --agent\")\n .action(async (packageName: string, options) => {\n try {\n const url = getAgentUrl(options);\n try {\n await apiPost<any>(url, \"/api/plugins/remove\", {\n packageName,\n });\n success(`Plugin \"${packageName}\" removed.`);\n } catch {\n warn(\"Agent not reachable. Attempting local removal...\");\n try {\n const { PluginManager } =\n await import(\"../../core/plugin-system.js\");\n const pm = new PluginManager();\n await pm.remove(packageName);\n success(`Plugin \"${packageName}\" removed locally.`);\n } catch (localErr: any) {\n fail(\n `Could not remove plugin via agent or locally: ${localErr.message}`,\n );\n }\n }\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // plugin update (individual)\n cmd\n .command(\"update\")\n .description(\"Update a plugin (or all plugins with --all)\")\n .argument(\"[package]\", \"NPM package name to update\")\n .option(\"--all\", \"Update all installed plugins\", false)\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .option(\"--agent <name>\", \"Target agent instance by name\")\n .option(\"--profile <name>\", \"Alias for --agent\")\n .action(async (packageName: string | undefined, options) => {\n try {\n const url = getAgentUrl(options);\n\n if (options.all) {\n info(\"Updating all plugins...\");\n try {\n const result = await apiPost<any>(\n url,\n \"/api/plugins/update-all\",\n {},\n );\n const results = result?.results || [];\n for (const r of results) {\n if (r.success) {\n success(\n `Updated ${r.packageName}${r.version ? ` to v${r.version}` : \"\"}`,\n );\n } else {\n warn(`Failed to update ${r.packageName}: ${r.error}`);\n }\n }\n success(result?.message || \"Done.\");\n } catch {\n warn(\"Agent not reachable. Attempting local update...\");\n try {\n const { PluginManager } =\n await import(\"../../core/plugin-system.js\");\n const pm = new PluginManager();\n const results = await pm.updateAll();\n for (const r of results) {\n if (r.success) {\n success(\n `Updated ${r.packageName}${r.version ? ` to v${r.version}` : \"\"}`,\n );\n } else {\n warn(`Failed to update ${r.packageName}: ${r.error}`);\n }\n }\n } catch (localErr: any) {\n fail(`Could not update plugins: ${localErr.message}`);\n }\n }\n } else if (packageName) {\n info(`Updating ${packageName}...`);\n try {\n const result = await apiPost<any>(url, \"/api/plugins/update\", {\n packageName,\n });\n success(result?.message || `Plugin \"${packageName}\" updated.`);\n } catch {\n warn(\"Agent not reachable. Attempting local update...\");\n try {\n const { PluginManager } =\n await import(\"../../core/plugin-system.js\");\n const pm = new PluginManager();\n const entry = await pm.update(packageName);\n success(`Plugin \"${packageName}\" updated to v${entry.version}.`);\n } catch (localErr: any) {\n fail(`Could not update plugin: ${localErr.message}`);\n }\n }\n } else {\n fail(\n \"Provide a package name to update, or use --all to update all plugins.\",\n );\n }\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // plugin uninstall (alias for remove, with --all support)\n cmd\n .command(\"uninstall\")\n .description(\"Uninstall a plugin (or all plugins with --all)\")\n .argument(\"[package]\", \"NPM package name to uninstall\")\n .option(\"--all\", \"Uninstall all external plugins\", false)\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .option(\"--agent <name>\", \"Target agent instance by name\")\n .option(\"--profile <name>\", \"Alias for --agent\")\n .action(async (packageName: string | undefined, options) => {\n try {\n const url = getAgentUrl(options);\n\n if (options.all) {\n info(\"Uninstalling all plugins...\");\n try {\n const result = await apiPost<any>(\n url,\n \"/api/plugins/remove-all\",\n {},\n );\n const results = result?.results || [];\n for (const r of results) {\n if (r.success) {\n success(`Removed ${r.packageName}`);\n } else {\n warn(`Failed to remove ${r.packageName}: ${r.error}`);\n }\n }\n success(result?.message || \"Done.\");\n } catch {\n warn(\"Agent not reachable. Attempting local removal...\");\n try {\n const { PluginManager } =\n await import(\"../../core/plugin-system.js\");\n const pm = new PluginManager();\n const results = await pm.removeAll();\n for (const r of results) {\n if (r.success) {\n success(`Removed ${r.packageName}`);\n } else {\n warn(`Failed to remove ${r.packageName}: ${r.error}`);\n }\n }\n } catch (localErr: any) {\n fail(`Could not uninstall plugins: ${localErr.message}`);\n }\n }\n } else if (packageName) {\n try {\n await apiPost<any>(url, \"/api/plugins/remove\", {\n packageName,\n });\n success(`Plugin \"${packageName}\" uninstalled.`);\n } catch {\n warn(\"Agent not reachable. Attempting local removal...\");\n try {\n const { PluginManager } =\n await import(\"../../core/plugin-system.js\");\n const pm = new PluginManager();\n await pm.remove(packageName);\n success(`Plugin \"${packageName}\" uninstalled locally.`);\n } catch (localErr: any) {\n fail(`Could not uninstall plugin: ${localErr.message}`);\n }\n }\n } else {\n fail(\n \"Provide a package name to uninstall, or use --all to uninstall all plugins.\",\n );\n }\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // plugin reload\n cmd\n .command(\"reload\")\n .description(\"Reload all plugins\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .option(\"--agent <name>\", \"Target agent instance by name\")\n .option(\"--profile <name>\", \"Alias for --agent\")\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n await apiPost<any>(url, \"/api/plugins/reload\", {});\n success(\"Plugins reloaded.\");\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // plugin available\n cmd\n .command(\"available\")\n .description(\"Show available plugins\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .option(\"--agent <name>\", \"Target agent instance by name\")\n .option(\"--profile <name>\", \"Alias for --agent\")\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n const availData = await apiGet<{ plugins: any[] }>(\n url,\n \"/api/plugins/available\",\n );\n const plugins = availData.plugins || [];\n if (!plugins || plugins.length === 0) {\n info(\"No available plugins found.\");\n return;\n }\n header(\"Available Plugins\");\n formatTable(\n plugins.map((p: any) => ({\n Name: p.name || p.package || \"-\",\n Version: p.version || p.latestVersion || \"-\",\n Description: p.description || \"-\",\n })),\n );\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // plugin create — scaffold a new plugin project\n cmd\n .command(\"create\")\n .description(\"Scaffold a new plugin project\")\n .argument(\"<name>\", 'Plugin name (e.g. \"docker\" → vibe-plugin-docker)')\n .option(\"-d, --dir <directory>\", \"Parent directory\", \".\")\n .option(\n \"--tag <tag>\",\n \"Plugin tag (backend, frontend, cli, provider, adapter, integration)\",\n \"backend\",\n )\n .option(\"--with-ui\", \"Include a companion UI plugin scaffold\", false)\n .action(async (name: string, options) => {\n try {\n const pluginName = name.startsWith(\"vibe-plugin-\")\n ? name\n : `vibe-plugin-${name}`;\n const dir = resolve(options.dir, pluginName);\n\n if (existsSync(dir)) {\n fail(`Directory \"${dir}\" already exists.`);\n return;\n }\n\n info(`Scaffolding ${pluginName}...`);\n\n // Create directory structure\n mkdirSync(join(dir, \"src\"), { recursive: true });\n mkdirSync(join(dir, \"dist\"), { recursive: true });\n\n const tag = options.tag as string;\n const description = `VibeControls plugin: ${name}`;\n\n // package.json\n const packageJson = {\n name: `@burdenoff/${pluginName}`,\n version: \"0.1.0\",\n main: \"./dist/index.js\",\n type: \"module\",\n engines: { bun: \">=1.3.0\" },\n scripts: {\n build: \"bun build ./src/index.ts --outdir ./dist --target bun\",\n lint: \"eslint ./src\",\n format: \"bunx prettier . --write\",\n \"format:check\": \"bunx prettier . --check\",\n \"type:check\": \"tsc --noEmit\",\n clean: \"rimraf dist\",\n prebuild: \"bun run clean\",\n prepublishOnly: \"bun run build\",\n sanity:\n \"bun run format:check && bun run lint && bun run type:check && bun run build\",\n },\n keywords: [\"vibecontrols\", \"vibe\", \"vibe-plugin\", name, \"bun\"],\n author: {\n name: \"Your Name\",\n email: \"you@example.com\",\n },\n license: \"SEE LICENSE IN LICENSE\",\n description,\n devDependencies: {\n \"@types/bun\": \"^1.2.16\",\n \"bun-types\": \"^1.3.9\",\n commander: \"^14.0.3\",\n eslint: \"^9.30.1\",\n prettier: \"^3.6.2\",\n rimraf: \"^6.0.1\",\n typescript: \"^5.8.3\",\n \"typescript-eslint\": \"^8.56.0\",\n },\n peerDependencies: {\n \"@burdenoff/vibe-agent\": \">=2.0.0\",\n },\n peerDependenciesMeta: {\n \"@burdenoff/vibe-agent\": { optional: true },\n },\n publishConfig: {\n access: \"public\",\n registry: \"https://registry.npmjs.org/\",\n },\n files: [\"dist/**/*\", \"README.md\", \"LICENSE\"],\n };\n writeFileSync(\n join(dir, \"package.json\"),\n JSON.stringify(packageJson, null, 2) + \"\\n\",\n );\n\n // tsconfig.json\n const tsconfig = {\n compilerOptions: {\n target: \"ES2022\",\n module: \"ES2022\",\n moduleResolution: \"bundler\",\n types: [\"bun-types\"],\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n outDir: \"./dist\",\n rootDir: \"./src\",\n declaration: true,\n sourceMap: true,\n },\n include: [\"src/**/*.ts\"],\n exclude: [\"node_modules\", \"dist\"],\n };\n writeFileSync(\n join(dir, \"tsconfig.json\"),\n JSON.stringify(tsconfig, null, 2) + \"\\n\",\n );\n\n // .gitignore\n writeFileSync(\n join(dir, \".gitignore\"),\n [\n \"node_modules/\",\n \"dist/\",\n \"bun.lock\",\n \".env\",\n \".env.local\",\n \"*.tgz\",\n ].join(\"\\n\") + \"\\n\",\n );\n\n // src/index.ts — main plugin entry\n const cliCmd = name.replace(/[^a-z0-9-]/gi, \"-\").toLowerCase();\n const indexTs = `import type { Command } from \"commander\";\n\n/**\n * @burdenoff/${pluginName}\n *\n * ${description}\n */\n\n// ── Plugin Interfaces ────────────────────────────────────────────────────────\n\nexport interface HostServices {\n logger?: {\n info: (msg: string) => void;\n warn: (msg: string) => void;\n error: (msg: string) => void;\n debug: (msg: string) => void;\n };\n config?: Record<string, unknown>;\n}\n\nexport interface VibePlugin {\n name: string;\n version: string;\n description: string;\n tags?: Array<\n \"backend\" | \"frontend\" | \"cli\" | \"provider\" | \"adapter\" | \"integration\"\n >;\n cliCommand: string;\n onCliSetup: (program: Command, hostServices?: HostServices) => void;\n}\n\n// ── Plugin Implementation ────────────────────────────────────────────────────\n\nconst plugin: VibePlugin = {\n name: \"${pluginName}\",\n version: \"0.1.0\",\n description: \"${description}\",\n tags: [\"${tag}\"],\n cliCommand: \"${cliCmd}\",\n\n onCliSetup(program: Command, _hostServices?: HostServices): void {\n const cmd = program\n .command(\"${cliCmd}\")\n .description(\"${description}\");\n\n cmd\n .command(\"status\")\n .description(\"Show ${name} status\")\n .action(() => {\n console.log(\"${pluginName} is ready.\");\n });\n\n cmd\n .command(\"info\")\n .description(\"Show plugin info\")\n .action(() => {\n console.log(JSON.stringify({\n name: plugin.name,\n version: plugin.version,\n description: plugin.description,\n tags: plugin.tags,\n }, null, 2));\n });\n },\n};\n\nexport default plugin;\n`;\n writeFileSync(join(dir, \"src\", \"index.ts\"), indexTs);\n\n // README.md\n const readme = `# ${pluginName}\n\n${description}\n\n## Installation\n\n\\`\\`\\`bash\nvibe plugin install @burdenoff/${pluginName}\n\\`\\`\\`\n\n## Usage\n\n\\`\\`\\`bash\nvibe ${cliCmd} status\nvibe ${cliCmd} info\n\\`\\`\\`\n\n## Development\n\n\\`\\`\\`bash\nbun install\nbun run build\nbun run sanity\n\\`\\`\\`\n\n## Publishing\n\n\\`\\`\\`bash\nbun run build\nnpm publish\n\\`\\`\\`\n`;\n writeFileSync(join(dir, \"README.md\"), readme);\n\n success(`Created ${pluginName} at ${dir}`);\n kv(\"Plugin Name\", `@burdenoff/${pluginName}`);\n kv(\"CLI Command\", `vibe ${cliCmd}`);\n kv(\"Tag\", tag);\n\n info(\"\\nNext steps:\");\n info(` cd ${pluginName}`);\n info(\" bun install\");\n info(\" bun run build\");\n info(` vibe plugin install . # install locally from this directory`);\n\n // Optionally scaffold UI plugin\n if (options.withUi) {\n const uiName = `${pluginName.replace(\"vibe-plugin-\", \"vibe-plugin-ui-\")}`;\n const uiDir = resolve(options.dir, uiName);\n\n if (existsSync(uiDir)) {\n warn(`UI directory \"${uiDir}\" already exists, skipping.`);\n } else {\n mkdirSync(join(uiDir, \"src\"), { recursive: true });\n mkdirSync(join(uiDir, \"public\"), { recursive: true });\n\n const uiPackageJson = {\n name: `@burdenoff/${uiName}`,\n version: \"0.1.0\",\n private: false,\n type: \"module\",\n scripts: {\n dev: \"vite --port 5180\",\n build: \"tsc && vite build\",\n preview: \"vite preview\",\n lint: \"eslint ./src\",\n format: \"bunx prettier . --write\",\n \"format:check\": \"bunx prettier . --check\",\n \"type:check\": \"tsc --noEmit\",\n sanity:\n \"bun run format:check && bun run lint && bun run type:check && bun run build\",\n },\n keywords: [\"vibecontrols\", \"vibe-plugin\", \"ui\", name],\n author: { name: \"Your Name\", email: \"you@example.com\" },\n license: \"SEE LICENSE IN LICENSE\",\n description: `UI for ${pluginName}`,\n dependencies: {\n react: \"^19.0.0\",\n \"react-dom\": \"^19.0.0\",\n },\n devDependencies: {\n \"@types/react\": \"^19.0.0\",\n \"@types/react-dom\": \"^19.0.0\",\n \"@vitejs/plugin-react\": \"^4.5.2\",\n typescript: \"^5.8.3\",\n vite: \"^7.0.0\",\n },\n publishConfig: {\n access: \"public\",\n registry: \"https://registry.npmjs.org/\",\n },\n files: [\"dist/**/*\", \"README.md\"],\n };\n writeFileSync(\n join(uiDir, \"package.json\"),\n JSON.stringify(uiPackageJson, null, 2) + \"\\n\",\n );\n\n const uiIndex = `import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport App from \"./App\";\n\nReactDOM.createRoot(document.getElementById(\"root\")!).render(\n <React.StrictMode>\n <App />\n </React.StrictMode>\n);\n`;\n writeFileSync(join(uiDir, \"src\", \"main.tsx\"), uiIndex);\n\n const uiApp = `import { useState, useEffect } from \"react\";\n\nconst DARK_BG = \"#0d1117\";\nconst DARK_TEXT = \"#e6edf3\";\n\nexport default function App() {\n const [apiKey, setApiKey] = useState<string | null>(null);\n const [status, setStatus] = useState(\"loading...\");\n\n useEffect(() => {\n // Auth via postMessage (iframe) or URL param (new tab)\n const params = new URLSearchParams(window.location.search);\n const key = params.get(\"apiKey\");\n if (key) {\n setApiKey(key);\n setStatus(\"connected\");\n return;\n }\n\n const handler = (e: MessageEvent) => {\n if (e.data?.type === \"vibe-auth\" && e.data.apiKey) {\n setApiKey(e.data.apiKey);\n setStatus(\"connected\");\n }\n };\n window.addEventListener(\"message\", handler);\n return () => window.removeEventListener(\"message\", handler);\n }, []);\n\n return (\n <div style={{ background: DARK_BG, color: DARK_TEXT, minHeight: \"100vh\", padding: 24, fontFamily: \"system-ui\" }}>\n <h1>${name} UI</h1>\n <p>Status: {status}</p>\n {apiKey && <p style={{ color: \"#3fb950\" }}>Authenticated</p>}\n </div>\n );\n}\n`;\n writeFileSync(join(uiDir, \"src\", \"App.tsx\"), uiApp);\n\n const indexHtml = `<!DOCTYPE html>\n<html lang=\"en\">\n<head><meta charset=\"UTF-8\" /><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" /><title>${name} UI</title></head>\n<body><div id=\"root\"></div><script type=\"module\" src=\"/src/main.tsx\"></script></body>\n</html>`;\n writeFileSync(join(uiDir, \"index.html\"), indexHtml);\n\n success(`Created UI plugin ${uiName} at ${uiDir}`);\n }\n }\n } catch (err: any) {\n fail(err.message);\n }\n });\n}\n",
|
|
7
|
+
"import type { Command } from \"commander\";\nimport type { HostServices } from \"../../core/plugin-system.js\";\nimport { register as registerPlugin } from \"../../cli/commands/plugin.cmd.js\";\n\nexport function registerCommands(\n program: Command,\n _hostServices: HostServices,\n): void {\n registerPlugin(program);\n}\n",
|
|
8
|
+
"import 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: \"plugin-mgr\",\n version: \"2.2.0\",\n description: \"Plugin lifecycle management — install, remove, reload, catalog\",\n tags: [\"backend\", \"cli\"],\n cliCommand: \"plugin\",\n apiPrefix: \"/api/plugins\",\n createRoutes: (deps: PluginRouteDeps) => createRoutes(deps),\n onCliSetup: async (program, hostServices) => {\n registerCommands(program, hostServices);\n },\n};\n"
|
|
9
|
+
],
|
|
10
|
+
"mappings": "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",
|
|
11
|
+
"debugId": "622EB666D741386464756E2164756E21",
|
|
12
|
+
"names": []
|
|
13
|
+
}
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
info,
|
|
16
16
|
shortId,
|
|
17
17
|
success
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-t0x810hm.js";
|
|
19
19
|
import"./index-g8dczzvv.js";
|
|
20
20
|
|
|
21
21
|
// src/plugins/bookmark/routes.ts
|
|
@@ -282,4 +282,4 @@ export {
|
|
|
282
282
|
};
|
|
283
283
|
|
|
284
284
|
//# debugId=E29820E5E0F6A45164756E2164756E21
|
|
285
|
-
//# sourceMappingURL=index-
|
|
285
|
+
//# sourceMappingURL=index-dhbg241c.js.map
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
info,
|
|
18
18
|
kv,
|
|
19
19
|
success
|
|
20
|
-
} from "./index-
|
|
20
|
+
} from "./index-t0x810hm.js";
|
|
21
21
|
import"./index-g8dczzvv.js";
|
|
22
22
|
|
|
23
23
|
// src/plugins/state/routes.ts
|
|
@@ -267,4 +267,4 @@ export {
|
|
|
267
267
|
};
|
|
268
268
|
|
|
269
269
|
//# debugId=B336A2A2717B47BE64756E2164756E21
|
|
270
|
-
//# sourceMappingURL=index-
|
|
270
|
+
//# sourceMappingURL=index-e2dzjkmm.js.map
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
kv,
|
|
19
19
|
shortId,
|
|
20
20
|
success
|
|
21
|
-
} from "./index-
|
|
21
|
+
} from "./index-t0x810hm.js";
|
|
22
22
|
import"./index-g8dczzvv.js";
|
|
23
23
|
|
|
24
24
|
// src/plugins/session/routes.ts
|
|
@@ -585,4 +585,4 @@ export {
|
|
|
585
585
|
};
|
|
586
586
|
|
|
587
587
|
//# debugId=5AB9B114935378E764756E2164756E21
|
|
588
|
-
//# sourceMappingURL=index-
|
|
588
|
+
//# sourceMappingURL=index-et6rnq2y.js.map
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
kv,
|
|
32
32
|
success,
|
|
33
33
|
timeAgo
|
|
34
|
-
} from "./index-
|
|
34
|
+
} from "./index-t0x810hm.js";
|
|
35
35
|
import"./index-g8dczzvv.js";
|
|
36
36
|
|
|
37
37
|
// src/plugins/agent/routes.ts
|
|
@@ -355,18 +355,24 @@ function register4(program) {
|
|
|
355
355
|
}
|
|
356
356
|
|
|
357
357
|
// src/cli/commands/status.cmd.ts
|
|
358
|
+
var DEFAULT_AGENT_URL5 = "http://localhost:3005";
|
|
358
359
|
function register5(program) {
|
|
359
|
-
program.command("status").description("Show status of VibeControls agent instance(s)").option("-n, --name <name>", "Agent instance name").action(async (opts) => {
|
|
360
|
+
program.command("status").description("Show comprehensive status of VibeControls agent instance(s)").option("-n, --name <name>", "Agent instance name").option("--agent-url <url>", "Agent URL", DEFAULT_AGENT_URL5).option("--agent <name>", "Target agent instance by name").option("--profile <name>", "Alias for --agent").option("--json", "Output status as JSON", false).action(async (opts) => {
|
|
360
361
|
try {
|
|
361
362
|
const serviceManager = new ServiceManager;
|
|
362
363
|
if (opts.name) {
|
|
363
|
-
header(`Agent Status: ${opts.name}`);
|
|
364
|
-
blank();
|
|
365
364
|
const instance = await serviceManager.getStatus(opts.name);
|
|
366
365
|
if (!instance) {
|
|
367
366
|
fail(`Agent instance ${colors.bold(opts.name)} not found.`);
|
|
368
367
|
return;
|
|
369
368
|
}
|
|
369
|
+
const agentUrl = instance.status === "running" ? `http://localhost:${instance.port}` : getAgentUrl(opts);
|
|
370
|
+
if (opts.json) {
|
|
371
|
+
const jsonData = await buildStatusJson(agentUrl, instance);
|
|
372
|
+
console.log(JSON.stringify(jsonData, null, 2));
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
header(`Agent Status: ${instance.name}`);
|
|
370
376
|
kv("Name", instance.name);
|
|
371
377
|
kv("Status", formatStatus(instance.status));
|
|
372
378
|
kv("PID", instance.pid ? String(instance.pid) : colors.dim("n/a"));
|
|
@@ -376,11 +382,31 @@ function register5(program) {
|
|
|
376
382
|
if (instance.startTime) {
|
|
377
383
|
kv("Started", timeAgo(instance.startTime));
|
|
378
384
|
}
|
|
385
|
+
if (instance.status === "running") {
|
|
386
|
+
blank();
|
|
387
|
+
await printHealthSection(agentUrl);
|
|
388
|
+
await printPluginsSection(agentUrl);
|
|
389
|
+
await printTunnelSection(agentUrl);
|
|
390
|
+
await printSessionsSection(agentUrl);
|
|
391
|
+
}
|
|
379
392
|
blank();
|
|
380
393
|
} else {
|
|
394
|
+
const instances = await serviceManager.listInstances();
|
|
395
|
+
if (opts.json) {
|
|
396
|
+
const jsonData = {
|
|
397
|
+
instances: instances.map((inst) => ({
|
|
398
|
+
name: inst.name,
|
|
399
|
+
status: inst.status,
|
|
400
|
+
pid: inst.pid,
|
|
401
|
+
port: inst.port,
|
|
402
|
+
startTime: inst.startTime
|
|
403
|
+
}))
|
|
404
|
+
};
|
|
405
|
+
console.log(JSON.stringify(jsonData, null, 2));
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
381
408
|
header("Agent Instances");
|
|
382
409
|
blank();
|
|
383
|
-
const instances = await serviceManager.listInstances();
|
|
384
410
|
if (!instances || instances.length === 0) {
|
|
385
411
|
info(`${icons.info} No agent instances found.`);
|
|
386
412
|
info(`Run ${colors.bold("vibe start")} to start an agent.`);
|
|
@@ -395,18 +421,119 @@ function register5(program) {
|
|
|
395
421
|
}));
|
|
396
422
|
formatTable(rows);
|
|
397
423
|
blank();
|
|
398
|
-
|
|
424
|
+
const running = instances.filter((i) => i.status === "running");
|
|
425
|
+
if (running.length > 0) {
|
|
426
|
+
for (const inst of running) {
|
|
427
|
+
const agentUrl = `http://localhost:${inst.port}`;
|
|
428
|
+
blank();
|
|
429
|
+
header(`Quick Status: ${inst.name} (port ${inst.port})`);
|
|
430
|
+
await printHealthSection(agentUrl);
|
|
431
|
+
await printTunnelSection(agentUrl);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
blank();
|
|
435
|
+
info(`${icons.info} ${instances.length} instance(s) found. Use ${colors.bold("vibe status -n <name>")} for full details.`);
|
|
399
436
|
}
|
|
400
437
|
} catch (err) {
|
|
401
|
-
|
|
438
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
439
|
+
fail(`Failed to get status: ${message}`);
|
|
402
440
|
}
|
|
403
441
|
});
|
|
404
442
|
}
|
|
443
|
+
async function printHealthSection(agentUrl) {
|
|
444
|
+
try {
|
|
445
|
+
const res = await fetch(`${agentUrl}/health`);
|
|
446
|
+
if (res.ok) {
|
|
447
|
+
const data = await res.json();
|
|
448
|
+
kv("Health", colors.green("healthy") + (data.version ? ` (v${data.version})` : ""));
|
|
449
|
+
if (data.uptime) {
|
|
450
|
+
kv("Uptime", String(data.uptime));
|
|
451
|
+
}
|
|
452
|
+
} else {
|
|
453
|
+
kv("Health", colors.red("unhealthy"));
|
|
454
|
+
}
|
|
455
|
+
} catch {
|
|
456
|
+
kv("Health", colors.red("unreachable"));
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
async function printPluginsSection(agentUrl) {
|
|
460
|
+
try {
|
|
461
|
+
const data = await apiGet(agentUrl, "/api/plugins");
|
|
462
|
+
const plugins = data.plugins || [];
|
|
463
|
+
const coreCount = plugins.filter((p) => p.isCore).length;
|
|
464
|
+
const externalCount = plugins.length - coreCount;
|
|
465
|
+
kv("Plugins", `${plugins.length} total (${coreCount} core, ${externalCount} external)`);
|
|
466
|
+
} catch {
|
|
467
|
+
kv("Plugins", colors.dim("(unable to fetch)"));
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
async function printTunnelSection(agentUrl) {
|
|
471
|
+
try {
|
|
472
|
+
const result = await apiGet(agentUrl, "/api/agent/tunnel");
|
|
473
|
+
const tunnelUrl = result?.tunnelUrl || result?.publicUrl || result?.url;
|
|
474
|
+
const status = result?.status || "unknown";
|
|
475
|
+
if (tunnelUrl) {
|
|
476
|
+
kv("Tunnel", colors.green(tunnelUrl));
|
|
477
|
+
} else if (status === "active" || status === "running") {
|
|
478
|
+
kv("Tunnel", colors.yellow("starting..."));
|
|
479
|
+
} else {
|
|
480
|
+
kv("Tunnel", colors.dim("(not running)"));
|
|
481
|
+
}
|
|
482
|
+
} catch {
|
|
483
|
+
kv("Tunnel", colors.dim("(not running)"));
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
async function printSessionsSection(agentUrl) {
|
|
487
|
+
try {
|
|
488
|
+
const sessions = await apiGet(agentUrl, "/api/sessions");
|
|
489
|
+
const count = Array.isArray(sessions) ? sessions.length : 0;
|
|
490
|
+
kv("Sessions", `${count} active`);
|
|
491
|
+
} catch {
|
|
492
|
+
kv("Sessions", colors.dim("(unable to fetch)"));
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
async function buildStatusJson(agentUrl, instance) {
|
|
496
|
+
const data = {
|
|
497
|
+
instance: {
|
|
498
|
+
name: instance.name,
|
|
499
|
+
status: instance.status,
|
|
500
|
+
pid: instance.pid,
|
|
501
|
+
port: instance.port,
|
|
502
|
+
host: instance.config?.host,
|
|
503
|
+
dbPath: instance.config?.dbPath,
|
|
504
|
+
startTime: instance.startTime
|
|
505
|
+
}
|
|
506
|
+
};
|
|
507
|
+
if (instance.status === "running") {
|
|
508
|
+
try {
|
|
509
|
+
const res = await fetch(`${agentUrl}/health`);
|
|
510
|
+
data.health = res.ok ? await res.json() : { healthy: false };
|
|
511
|
+
} catch {
|
|
512
|
+
data.health = { healthy: false, error: "unreachable" };
|
|
513
|
+
}
|
|
514
|
+
try {
|
|
515
|
+
data.plugins = await apiGet(agentUrl, "/api/plugins");
|
|
516
|
+
} catch {
|
|
517
|
+
data.plugins = null;
|
|
518
|
+
}
|
|
519
|
+
try {
|
|
520
|
+
data.tunnel = await apiGet(agentUrl, "/api/agent/tunnel");
|
|
521
|
+
} catch {
|
|
522
|
+
data.tunnel = null;
|
|
523
|
+
}
|
|
524
|
+
try {
|
|
525
|
+
data.sessions = await apiGet(agentUrl, "/api/sessions");
|
|
526
|
+
} catch {
|
|
527
|
+
data.sessions = null;
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
return data;
|
|
531
|
+
}
|
|
405
532
|
|
|
406
533
|
// src/cli/commands/url.cmd.ts
|
|
407
|
-
var
|
|
534
|
+
var DEFAULT_AGENT_URL6 = "http://localhost:3005";
|
|
408
535
|
function register6(program) {
|
|
409
|
-
program.command("url").description("Show the active URL for a running VibeControls agent").option("--agent-url <url>", "Agent URL",
|
|
536
|
+
program.command("url").description("Show the active URL for a running VibeControls agent").option("--agent-url <url>", "Agent URL", DEFAULT_AGENT_URL6).action(async (opts) => {
|
|
410
537
|
try {
|
|
411
538
|
const agentUrl = getAgentUrl(opts);
|
|
412
539
|
header("Agent URL");
|
|
@@ -431,10 +558,10 @@ function register6(program) {
|
|
|
431
558
|
}
|
|
432
559
|
|
|
433
560
|
// src/cli/commands/gateway-auth.cmd.ts
|
|
434
|
-
var
|
|
561
|
+
var DEFAULT_AGENT_URL7 = "http://localhost:3005";
|
|
435
562
|
function register7(program) {
|
|
436
563
|
const gatewayAuth = program.command("gateway-auth").description("Manage gateway authentication for VibeControls agent");
|
|
437
|
-
gatewayAuth.command("configure").description("Configure gateway authentication credentials").requiredOption("--global-url <url>", "Global gateway URL").requiredOption("--workspace-url <url>", "Workspace gateway URL").requiredOption("--client-id <id>", "OAuth client ID").requiredOption("--client-secret <secret>", "OAuth client secret").option("--agent-url <url>", "Agent URL",
|
|
564
|
+
gatewayAuth.command("configure").description("Configure gateway authentication credentials").requiredOption("--global-url <url>", "Global gateway URL").requiredOption("--workspace-url <url>", "Workspace gateway URL").requiredOption("--client-id <id>", "OAuth client ID").requiredOption("--client-secret <secret>", "OAuth client secret").option("--agent-url <url>", "Agent URL", DEFAULT_AGENT_URL7).action(async (opts) => {
|
|
438
565
|
try {
|
|
439
566
|
const agentUrl = getAgentUrl(opts);
|
|
440
567
|
header("Configure Gateway Authentication");
|
|
@@ -462,7 +589,7 @@ function register7(program) {
|
|
|
462
589
|
fail(`Failed to configure gateway auth: ${err.message}`);
|
|
463
590
|
}
|
|
464
591
|
});
|
|
465
|
-
gatewayAuth.command("status").description("Check gateway authentication status").option("--agent-url <url>", "Agent URL",
|
|
592
|
+
gatewayAuth.command("status").description("Check gateway authentication status").option("--agent-url <url>", "Agent URL", DEFAULT_AGENT_URL7).action(async (opts) => {
|
|
466
593
|
try {
|
|
467
594
|
const agentUrl = getAgentUrl(opts);
|
|
468
595
|
header("Gateway Authentication Status");
|
|
@@ -663,5 +790,5 @@ export {
|
|
|
663
790
|
vibePlugin
|
|
664
791
|
};
|
|
665
792
|
|
|
666
|
-
//# debugId=
|
|
667
|
-
//# sourceMappingURL=index-
|
|
793
|
+
//# debugId=E8B74C0F8F01FCA664756E2164756E21
|
|
794
|
+
//# sourceMappingURL=index-exh7dh2v.js.map
|
|
@@ -7,14 +7,14 @@
|
|
|
7
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
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
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
|
-
"
|
|
10
|
+
"/**\n * vibe status — Comprehensive status display\n *\n * Shows a complete overview of agent health, plugins, config, tunnels,\n * sessions, and system info. Supports targeting a specific agent instance\n * with -n/--name, --agent, or --profile.\n *\n * Sections:\n * 1. Agent instance(s) status (process info)\n * 2. Health check (API reachability)\n * 3. Installed plugins summary\n * 4. Tunnel status (active URL)\n * 5. Active sessions count\n * 6. Config summary\n */\n\nimport { Command } from \"commander\";\nimport {\n getAgentUrl,\n apiGet,\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\nconst DEFAULT_AGENT_URL = \"http://localhost:3005\";\n\nexport function register(program: Command): void {\n program\n .command(\"status\")\n .description(\"Show comprehensive status of VibeControls agent instance(s)\")\n .option(\"-n, --name <name>\", \"Agent instance name\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .option(\"--agent <name>\", \"Target agent instance by name\")\n .option(\"--profile <name>\", \"Alias for --agent\")\n .option(\"--json\", \"Output status as JSON\", false)\n .action(async (opts) => {\n try {\n const serviceManager = new ServiceManager();\n\n if (opts.name) {\n // ── Single Instance Detailed Status ──────────────────────────\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 // Build the agent URL from instance info\n const agentUrl =\n instance.status === \"running\"\n ? `http://localhost:${instance.port}`\n : getAgentUrl(opts);\n\n if (opts.json) {\n const jsonData = await buildStatusJson(agentUrl, instance);\n console.log(JSON.stringify(jsonData, null, 2));\n return;\n }\n\n header(`Agent Status: ${instance.name}`);\n\n // Section 1: Process Info\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 // Section 2: Health Check (only if running)\n if (instance.status === \"running\") {\n blank();\n await printHealthSection(agentUrl);\n await printPluginsSection(agentUrl);\n await printTunnelSection(agentUrl);\n await printSessionsSection(agentUrl);\n }\n\n blank();\n } else {\n // ── All Instances Overview ─────────────────────────────────\n\n const instances = await serviceManager.listInstances();\n\n if (opts.json) {\n const jsonData = {\n instances: instances.map((inst) => ({\n name: inst.name,\n status: inst.status,\n pid: inst.pid,\n port: inst.port,\n startTime: inst.startTime,\n })),\n };\n console.log(JSON.stringify(jsonData, null, 2));\n return;\n }\n\n header(\"Agent Instances\");\n blank();\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\n // For each running instance, show a quick status summary\n const running = instances.filter((i) => i.status === \"running\");\n if (running.length > 0) {\n for (const inst of running) {\n const agentUrl = `http://localhost:${inst.port}`;\n blank();\n header(`Quick Status: ${inst.name} (port ${inst.port})`);\n await printHealthSection(agentUrl);\n await printTunnelSection(agentUrl);\n }\n }\n\n blank();\n info(\n `${icons.info} ${instances.length} instance(s) found. Use ${colors.bold(\"vibe status -n <name>\")} for full details.`,\n );\n }\n } catch (err: unknown) {\n const message = err instanceof Error ? err.message : String(err);\n fail(`Failed to get status: ${message}`);\n }\n });\n}\n\n// ── Section Helpers ─────────────────────────────────────────────────────\n\nasync function printHealthSection(agentUrl: string): Promise<void> {\n try {\n const res = await fetch(`${agentUrl}/health`);\n if (res.ok) {\n const data = (await res.json()) as Record<string, unknown>;\n kv(\n \"Health\",\n colors.green(\"healthy\") + (data.version ? ` (v${data.version})` : \"\"),\n );\n if (data.uptime) {\n kv(\"Uptime\", String(data.uptime));\n }\n } else {\n kv(\"Health\", colors.red(\"unhealthy\"));\n }\n } catch {\n kv(\"Health\", colors.red(\"unreachable\"));\n }\n}\n\nasync function printPluginsSection(agentUrl: string): Promise<void> {\n try {\n const data = await apiGet<{ plugins: unknown[]; count: number }>(\n agentUrl,\n \"/api/plugins\",\n );\n const plugins = data.plugins || [];\n const coreCount = plugins.filter((p: any) => p.isCore).length;\n const externalCount = plugins.length - coreCount;\n kv(\n \"Plugins\",\n `${plugins.length} total (${coreCount} core, ${externalCount} external)`,\n );\n } catch {\n kv(\"Plugins\", colors.dim(\"(unable to fetch)\"));\n }\n}\n\nasync function printTunnelSection(agentUrl: string): Promise<void> {\n try {\n const result = await apiGet<{\n tunnelUrl?: string;\n publicUrl?: string;\n url?: string;\n status?: string;\n }>(agentUrl, \"/api/agent/tunnel\");\n const tunnelUrl = result?.tunnelUrl || result?.publicUrl || result?.url;\n const status = result?.status || \"unknown\";\n\n if (tunnelUrl) {\n kv(\"Tunnel\", colors.green(tunnelUrl));\n } else if (status === \"active\" || status === \"running\") {\n kv(\"Tunnel\", colors.yellow(\"starting...\"));\n } else {\n kv(\"Tunnel\", colors.dim(\"(not running)\"));\n }\n } catch {\n kv(\"Tunnel\", colors.dim(\"(not running)\"));\n }\n}\n\nasync function printSessionsSection(agentUrl: string): Promise<void> {\n try {\n const sessions = await apiGet<unknown[]>(agentUrl, \"/api/sessions\");\n const count = Array.isArray(sessions) ? sessions.length : 0;\n kv(\"Sessions\", `${count} active`);\n } catch {\n kv(\"Sessions\", colors.dim(\"(unable to fetch)\"));\n }\n}\n\nasync function buildStatusJson(\n agentUrl: string,\n instance: {\n name: string;\n status: string;\n pid: number;\n port: number;\n config?: { host?: string; dbPath?: string };\n startTime?: string;\n },\n): Promise<Record<string, unknown>> {\n const data: Record<string, unknown> = {\n instance: {\n name: instance.name,\n status: instance.status,\n pid: instance.pid,\n port: instance.port,\n host: instance.config?.host,\n dbPath: instance.config?.dbPath,\n startTime: instance.startTime,\n },\n };\n\n if (instance.status === \"running\") {\n // Health\n try {\n const res = await fetch(`${agentUrl}/health`);\n data.health = res.ok ? await res.json() : { healthy: false };\n } catch {\n data.health = { healthy: false, error: \"unreachable\" };\n }\n\n // Plugins\n try {\n data.plugins = await apiGet(agentUrl, \"/api/plugins\");\n } catch {\n data.plugins = null;\n }\n\n // Tunnel\n try {\n data.tunnel = await apiGet(agentUrl, \"/api/agent/tunnel\");\n } catch {\n data.tunnel = null;\n }\n\n // Sessions\n try {\n data.sessions = await apiGet(agentUrl, \"/api/sessions\");\n } catch {\n data.sessions = null;\n }\n }\n\n return data;\n}\n",
|
|
11
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
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
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
14
|
"/**\n * Auto-Report — Push agent details to backend after startup\n *\n * When gateway auth (OAuth2) is configured, automatically reports the\n * agent's tunnel URL, API key, hostname, platform, and version to the\n * backend via the `registerVibecontrolsAgent` mutation (upsert by hostname).\n *\n * This runs as a non-blocking background task from the `onServerReady` hook.\n * Retries are needed because the tunnel may not be ready immediately at\n * server start (Cloudflare tunnel starts in an external plugin).\n */\n\nimport os from \"node:os\";\nimport { readFileSync } from \"node:fs\";\nimport { join, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { gatewayClient } from \"../../services/gateway-client.js\";\nimport { logger } from \"../../services/logger.js\";\nimport type { ServiceRegistry } from \"../../core/service-registry.js\";\nimport type { TunnelProvider } from \"../../core/providers/tunnel.provider.js\";\nimport type { AgentDatabase } from \"../../db/database.js\";\n\n// ── Constants ────────────────────────────────────────────────────────────\n\nconst MAX_RETRIES = 10;\nconst RETRY_INTERVAL_MS = 3_000;\nconst LOG_SOURCE = \"auto-report\";\n\n// ── GraphQL Mutations ────────────────────────────────────────────────────\n\nconst REGISTER_AGENT_MUTATION = `\n mutation RegisterVibecontrolsAgent($input: RegisterVibecontrolsAgentInput!) {\n registerVibecontrolsAgent(input: $input) {\n id\n name\n hostname\n tunnelUrl\n tunnelStatus\n }\n }\n`;\n\nconst UPDATE_AGENT_MUTATION = `\n mutation UpdateVibecontrolsAgent($id: ID!, $input: UpdateVibecontrolsAgentInput!) {\n updateVibecontrolsAgent(id: $id, input: $input) {\n id\n tunnelUrl\n tunnelStatus\n agentApiKey\n }\n }\n`;\n\n// ── Helpers ──────────────────────────────────────────────────────────────\n\nfunction getAgentVersion(): string {\n try {\n const __dirname = dirname(fileURLToPath(import.meta.url));\n const pkgPath = join(__dirname, \"..\", \"..\", \"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\nasync function waitForTunnelUrl(\n serviceRegistry: ServiceRegistry,\n): Promise<string | null> {\n for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n if (tunnelProvider) {\n const url = await tunnelProvider.getActiveTunnelUrl();\n if (url) {\n logger.debug(\n LOG_SOURCE,\n `Tunnel URL available on attempt ${attempt}: ${url}`,\n );\n return url;\n }\n }\n\n if (attempt < MAX_RETRIES) {\n logger.debug(\n LOG_SOURCE,\n `Tunnel URL not ready, retrying in ${RETRY_INTERVAL_MS / 1000}s (attempt ${attempt}/${MAX_RETRIES})`,\n );\n await new Promise((resolve) => setTimeout(resolve, RETRY_INTERVAL_MS));\n }\n }\n\n logger.warn(\n LOG_SOURCE,\n `Tunnel URL not available after ${MAX_RETRIES} attempts`,\n );\n return null;\n}\n\n// ── Main Export ──────────────────────────────────────────────────────────\n\n/**\n * Auto-report agent details to the backend.\n * Called from the agent plugin's `onServerReady` hook.\n * Non-blocking — errors are logged but do not crash the agent.\n */\nexport async function autoReportToBackend(\n db: AgentDatabase,\n serviceRegistry: ServiceRegistry,\n apiKey: string,\n): Promise<void> {\n // Gate: only report if gateway auth is configured\n if (!gatewayClient.isConfigured()) {\n logger.debug(\n LOG_SOURCE,\n \"Gateway auth not configured — skipping auto-report\",\n );\n return;\n }\n\n const workspaceId = db.getConfig(\"gateway-auth:workspaceId\");\n if (!workspaceId) {\n logger.warn(\n LOG_SOURCE,\n \"No workspaceId configured — skipping auto-report. \" +\n \"Configure via POST /api/agent/gateway-auth with workspaceId.\",\n );\n return;\n }\n\n logger.info(LOG_SOURCE, \"Starting auto-report to backend...\");\n\n try {\n // Wait for tunnel URL (retries)\n const tunnelUrl = await waitForTunnelUrl(serviceRegistry);\n\n const hostname = os.hostname();\n const platform = os.platform();\n const arch = os.arch();\n const version = getAgentVersion();\n const agentRecordId = db.getConfig(\"gateway-auth:agentRecordId\");\n\n if (agentRecordId) {\n // We have a known backend record ID — use targeted update\n logger.info(\n LOG_SOURCE,\n `Updating agent record ${agentRecordId} via workspace gateway`,\n );\n\n const result = await gatewayClient.workspaceQuery(UPDATE_AGENT_MUTATION, {\n id: agentRecordId,\n input: {\n tunnelUrl: tunnelUrl || null,\n tunnelStatus: tunnelUrl ? \"CONNECTED\" : \"DISCONNECTED\",\n agentApiKey: apiKey,\n agentVersion: version,\n platform: `${platform}/${arch}`,\n },\n });\n\n if (result.errors?.length) {\n logger.warn(LOG_SOURCE, \"Update mutation returned errors\", {\n errors: result.errors.map((e) => e.message),\n });\n // Fall through to try register instead\n } else {\n logger.info(LOG_SOURCE, \"Agent record updated successfully\", {\n agentRecordId,\n tunnelUrl,\n });\n return;\n }\n }\n\n // No agentRecordId or update failed — use register (upsert by hostname)\n logger.info(\n LOG_SOURCE,\n `Registering agent via workspace gateway (hostname: ${hostname})`,\n );\n\n const result = await gatewayClient.workspaceQuery(REGISTER_AGENT_MUTATION, {\n input: {\n name: hostname,\n hostname,\n platform: `${platform}/${arch}`,\n agentVersion: version,\n tunnelUrl: tunnelUrl || null,\n tunnelStatus: tunnelUrl ? \"CONNECTED\" : \"DISCONNECTED\",\n agentApiKey: apiKey,\n workspaceId,\n },\n });\n\n if (result.errors?.length) {\n logger.error(LOG_SOURCE, \"Register mutation failed\", {\n errors: result.errors.map((e) => e.message),\n });\n return;\n }\n\n const data = result.data as\n | {\n registerVibecontrolsAgent?: { id: string; name: string };\n }\n | undefined;\n\n const registeredId = data?.registerVibecontrolsAgent?.id;\n if (registeredId) {\n // Persist the record ID for future targeted updates\n db.setConfig(\"gateway-auth:agentRecordId\", registeredId);\n logger.info(LOG_SOURCE, \"Agent registered successfully\", {\n agentRecordId: registeredId,\n name: data?.registerVibecontrolsAgent?.name,\n tunnelUrl,\n });\n }\n } catch (err) {\n logger.error(\n LOG_SOURCE,\n `Auto-report failed: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n}\n",
|
|
15
15
|
"/**\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 * Lifecycle:\n * createRoutes → captures db reference\n * onServerReady → triggers auto-report to backend (if gateway auth configured)\n */\n\nimport type { VibePlugin } from \"../../core/plugin-system.js\";\nimport type { PluginRouteDeps } from \"../../core/types.js\";\nimport type { AgentDatabase } from \"../../db/database.js\";\nimport { createRoutes } from \"./routes.js\";\nimport { registerCommands } from \"./commands.js\";\nimport { autoReportToBackend } from \"./auto-report.js\";\n\n// Captured from createRoutes deps — used by onServerReady\nlet capturedDb: AgentDatabase | null = null;\nlet capturedApiKey: string | null = null;\n\nexport const vibePlugin: VibePlugin = {\n name: \"agent\",\n version: \"2.3.0\",\n description:\n \"Core agent identity, system info, setup, gateway authentication, and auto-report\",\n tags: [\"backend\", \"cli\"],\n cliCommand: \"agent\",\n apiPrefix: \"/api/agent\",\n publicPaths: [\"/identity\", \"/api-key\", \"/tunnel\"],\n\n createRoutes: (deps: PluginRouteDeps) => {\n capturedDb = deps.db;\n // Store the API key so auto-report can send it to backend\n capturedApiKey = process.env.API_KEY || \"vibecontrols-agent-secret-key\";\n return createRoutes(deps);\n },\n\n onCliSetup: async (program, hostServices) => {\n registerCommands(program, hostServices);\n },\n\n onServerReady: async (_app, hostServices) => {\n // Fire-and-forget: auto-report agent details to backend\n // This is non-blocking so the server doesn't wait for it\n if (capturedDb) {\n autoReportToBackend(\n capturedDb,\n hostServices.serviceRegistry,\n capturedApiKey || \"unknown\",\n ).catch((err) => {\n hostServices.logger.warn(\n \"agent-plugin\",\n `Auto-report background task failed: ${err}`,\n );\n });\n }\n },\n};\n"
|
|
16
16
|
],
|
|
17
|
-
"mappings": "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",
|
|
18
|
-
"debugId": "
|
|
17
|
+
"mappings": "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",
|
|
18
|
+
"debugId": "E8B74C0F8F01FCA664756E2164756E21",
|
|
19
19
|
"names": []
|
|
20
20
|
}
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
kv,
|
|
15
15
|
shortId,
|
|
16
16
|
success
|
|
17
|
-
} from "./index-
|
|
17
|
+
} from "./index-t0x810hm.js";
|
|
18
18
|
import"./index-g8dczzvv.js";
|
|
19
19
|
|
|
20
20
|
// src/plugins/project/routes.ts
|
|
@@ -291,4 +291,4 @@ export {
|
|
|
291
291
|
};
|
|
292
292
|
|
|
293
293
|
//# debugId=A929772C59713C8B64756E2164756E21
|
|
294
|
-
//# sourceMappingURL=index-
|
|
294
|
+
//# sourceMappingURL=index-swqzafr9.js.map
|