@burdenoff/vibe-agent 1.4.0 → 2.1.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-31chs2a1.js +17180 -0
- package/dist/app-31chs2a1.js.map +170 -0
- package/dist/chunk-pm1hna8x-473akrq0.js +16826 -0
- package/dist/chunk-pm1hna8x-473akrq0.js.map +11 -0
- package/dist/cli.js +4686 -1146
- package/dist/cli.js.map +51 -1
- package/dist/highlights-eq9cgrbb.scm +604 -0
- package/dist/highlights-ghv9g403.scm +205 -0
- package/dist/highlights-hk7bwhj4.scm +284 -0
- package/dist/highlights-r812a2qc.scm +150 -0
- package/dist/highlights-x6tmsnaa.scm +115 -0
- package/dist/index-5xngv42g.js +2546 -0
- package/dist/index-5xngv42g.js.map +26 -0
- package/dist/index-6aq4nc58.js +11429 -0
- package/dist/index-6aq4nc58.js.map +21 -0
- package/dist/index-ac2ebaf8.js +4 -0
- package/dist/index-ac2ebaf8.js.map +9 -0
- package/dist/index-g8dczzvv.js +33 -0
- package/dist/index-g8dczzvv.js.map +9 -0
- package/dist/index-gmz54dkc.js +28402 -0
- package/dist/index-gmz54dkc.js.map +11 -0
- package/dist/index-t06ktmx9.js +216 -0
- package/dist/index-t06ktmx9.js.map +11 -0
- package/dist/index.js +69 -87
- package/dist/index.js.map +10 -1
- package/dist/injections-73j83es3.scm +27 -0
- package/dist/package-0158fp3w.js +136 -0
- package/dist/package-0158fp3w.js.map +9 -0
- package/dist/plugin-system-bg1pzjj9.js +453 -0
- package/dist/plugin-system-bg1pzjj9.js.map +11 -0
- package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
- package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
- package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
- package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
- package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
- package/package.json +25 -39
- package/dist/app.d.ts +0 -15
- package/dist/app.d.ts.map +0 -1
- package/dist/app.js +0 -600
- package/dist/app.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/db/schema.d.ts +0 -121
- package/dist/db/schema.d.ts.map +0 -1
- package/dist/db/schema.js +0 -473
- package/dist/db/schema.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/middleware/ModuleAuth.d.ts +0 -61
- package/dist/middleware/ModuleAuth.d.ts.map +0 -1
- package/dist/middleware/ModuleAuth.js +0 -223
- package/dist/middleware/ModuleAuth.js.map +0 -1
- package/dist/middleware/auth.d.ts +0 -3
- package/dist/middleware/auth.d.ts.map +0 -1
- package/dist/middleware/auth.js +0 -11
- package/dist/middleware/auth.js.map +0 -1
- package/dist/migrations/remove-notes-prompts.d.ts +0 -13
- package/dist/migrations/remove-notes-prompts.d.ts.map +0 -1
- package/dist/migrations/remove-notes-prompts.js +0 -148
- package/dist/migrations/remove-notes-prompts.js.map +0 -1
- package/dist/routes/bookmarks.d.ts +0 -3
- package/dist/routes/bookmarks.d.ts.map +0 -1
- package/dist/routes/bookmarks.js +0 -195
- package/dist/routes/bookmarks.js.map +0 -1
- package/dist/routes/config.d.ts +0 -3
- package/dist/routes/config.d.ts.map +0 -1
- package/dist/routes/config.js +0 -106
- package/dist/routes/config.js.map +0 -1
- package/dist/routes/files.d.ts +0 -3
- package/dist/routes/files.d.ts.map +0 -1
- package/dist/routes/files.js +0 -313
- package/dist/routes/files.js.map +0 -1
- package/dist/routes/git.d.ts +0 -3
- package/dist/routes/git.d.ts.map +0 -1
- package/dist/routes/git.js +0 -427
- package/dist/routes/git.js.map +0 -1
- package/dist/routes/logs.d.ts +0 -9
- package/dist/routes/logs.d.ts.map +0 -1
- package/dist/routes/logs.js +0 -107
- package/dist/routes/logs.js.map +0 -1
- package/dist/routes/moduleRegistry.d.ts +0 -41
- package/dist/routes/moduleRegistry.d.ts.map +0 -1
- package/dist/routes/moduleRegistry.js +0 -356
- package/dist/routes/moduleRegistry.js.map +0 -1
- package/dist/routes/notifications.d.ts +0 -3
- package/dist/routes/notifications.d.ts.map +0 -1
- package/dist/routes/notifications.js +0 -255
- package/dist/routes/notifications.js.map +0 -1
- package/dist/routes/plugin-state.d.ts +0 -19
- package/dist/routes/plugin-state.d.ts.map +0 -1
- package/dist/routes/plugin-state.js +0 -139
- package/dist/routes/plugin-state.js.map +0 -1
- package/dist/routes/plugins.d.ts +0 -3
- package/dist/routes/plugins.d.ts.map +0 -1
- package/dist/routes/plugins.js +0 -118
- package/dist/routes/plugins.js.map +0 -1
- package/dist/routes/projects.d.ts +0 -3
- package/dist/routes/projects.d.ts.map +0 -1
- package/dist/routes/projects.js +0 -456
- package/dist/routes/projects.js.map +0 -1
- package/dist/routes/tasks.d.ts +0 -3
- package/dist/routes/tasks.d.ts.map +0 -1
- package/dist/routes/tasks.js +0 -187
- package/dist/routes/tasks.js.map +0 -1
- package/dist/routes/tmux.d.ts +0 -3
- package/dist/routes/tmux.d.ts.map +0 -1
- package/dist/routes/tmux.js +0 -1287
- package/dist/routes/tmux.js.map +0 -1
- package/dist/routes/tunnel.d.ts +0 -25
- package/dist/routes/tunnel.d.ts.map +0 -1
- package/dist/routes/tunnel.js +0 -498
- package/dist/routes/tunnel.js.map +0 -1
- package/dist/services/ModulePermissions.d.ts +0 -100
- package/dist/services/ModulePermissions.d.ts.map +0 -1
- package/dist/services/ModulePermissions.js +0 -322
- package/dist/services/ModulePermissions.js.map +0 -1
- package/dist/services/ModuleRegistryService.d.ts +0 -152
- package/dist/services/ModuleRegistryService.d.ts.map +0 -1
- package/dist/services/ModuleRegistryService.js +0 -547
- package/dist/services/ModuleRegistryService.js.map +0 -1
- package/dist/services/agent.service.d.ts +0 -19
- package/dist/services/agent.service.d.ts.map +0 -1
- package/dist/services/agent.service.js +0 -91
- package/dist/services/agent.service.js.map +0 -1
- package/dist/services/bootstrap.d.ts +0 -22
- package/dist/services/bootstrap.d.ts.map +0 -1
- package/dist/services/bootstrap.js +0 -283
- package/dist/services/bootstrap.js.map +0 -1
- package/dist/services/completion.d.ts +0 -46
- package/dist/services/completion.d.ts.map +0 -1
- package/dist/services/completion.js +0 -317
- package/dist/services/completion.js.map +0 -1
- package/dist/services/gateway-client.d.ts +0 -61
- package/dist/services/gateway-client.d.ts.map +0 -1
- package/dist/services/gateway-client.js +0 -147
- package/dist/services/gateway-client.js.map +0 -1
- package/dist/services/logger.d.ts +0 -61
- package/dist/services/logger.d.ts.map +0 -1
- package/dist/services/logger.js +0 -223
- package/dist/services/logger.js.map +0 -1
- package/dist/services/plugin-manager.d.ts +0 -105
- package/dist/services/plugin-manager.d.ts.map +0 -1
- package/dist/services/plugin-manager.js +0 -250
- package/dist/services/plugin-manager.js.map +0 -1
- package/dist/services/plugin-state-backend.d.ts +0 -22
- package/dist/services/plugin-state-backend.d.ts.map +0 -1
- package/dist/services/plugin-state-backend.js +0 -103
- package/dist/services/plugin-state-backend.js.map +0 -1
- package/dist/services/plugin-state-external.d.ts +0 -36
- package/dist/services/plugin-state-external.d.ts.map +0 -1
- package/dist/services/plugin-state-external.js +0 -144
- package/dist/services/plugin-state-external.js.map +0 -1
- package/dist/services/plugin-state-router.d.ts +0 -40
- package/dist/services/plugin-state-router.d.ts.map +0 -1
- package/dist/services/plugin-state-router.js +0 -82
- package/dist/services/plugin-state-router.js.map +0 -1
- package/dist/services/port-utils.d.ts +0 -11
- package/dist/services/port-utils.d.ts.map +0 -1
- package/dist/services/port-utils.js +0 -39
- package/dist/services/port-utils.js.map +0 -1
- package/dist/services/service-manager.d.ts +0 -50
- package/dist/services/service-manager.d.ts.map +0 -1
- package/dist/services/service-manager.js +0 -389
- package/dist/services/service-manager.js.map +0 -1
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { startServer } from "../app.js";
|
|
2
|
-
import { spawn } from "child_process";
|
|
3
|
-
import ora from "ora";
|
|
4
|
-
export class AgentService {
|
|
5
|
-
app = null;
|
|
6
|
-
config = null;
|
|
7
|
-
async start(config) {
|
|
8
|
-
this.config = config;
|
|
9
|
-
const spinner = ora("Starting VibeControls Agent...").start();
|
|
10
|
-
try {
|
|
11
|
-
// Set environment variables
|
|
12
|
-
process.env.PORT = config.port.toString();
|
|
13
|
-
process.env.DB_PATH = config.dbPath;
|
|
14
|
-
// Start the server
|
|
15
|
-
this.app = await startServer();
|
|
16
|
-
await this.app.listen({
|
|
17
|
-
port: config.port,
|
|
18
|
-
host: "0.0.0.0",
|
|
19
|
-
});
|
|
20
|
-
spinner.succeed(`🚀 VibeControls Agent '${config.name}' is running on http://localhost:${config.port}`);
|
|
21
|
-
// Handle graceful shutdown
|
|
22
|
-
process.on("SIGTERM", () => this.stop());
|
|
23
|
-
process.on("SIGINT", () => this.stop());
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
spinner.fail("Failed to start agent");
|
|
27
|
-
throw error;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
async stop() {
|
|
31
|
-
if (this.app) {
|
|
32
|
-
const spinner = ora("Stopping VibeControls Agent...").start();
|
|
33
|
-
try {
|
|
34
|
-
await this.app.close();
|
|
35
|
-
spinner.succeed("✅ VibeControls Agent stopped");
|
|
36
|
-
process.exit(0);
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
spinner.fail("Failed to stop agent gracefully");
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
async startDaemon(config) {
|
|
45
|
-
const spinner = ora("Starting VibeControls Agent as daemon...").start();
|
|
46
|
-
try {
|
|
47
|
-
// Spawn the process as a daemon
|
|
48
|
-
const child = spawn(process.execPath, [
|
|
49
|
-
process.argv[1], // CLI script path
|
|
50
|
-
"start",
|
|
51
|
-
"--port",
|
|
52
|
-
config.port.toString(),
|
|
53
|
-
"--name",
|
|
54
|
-
config.name,
|
|
55
|
-
"--db-path",
|
|
56
|
-
config.dbPath,
|
|
57
|
-
], {
|
|
58
|
-
detached: true,
|
|
59
|
-
stdio: "ignore",
|
|
60
|
-
});
|
|
61
|
-
// Unreference the child process so parent can exit
|
|
62
|
-
child.unref();
|
|
63
|
-
spinner.succeed(`🚀 VibeControls Agent '${config.name}' started as daemon (PID: ${child.pid})`);
|
|
64
|
-
// Save process info for management
|
|
65
|
-
await this.saveProcessInfo(config.name, child.pid, config);
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
spinner.fail("Failed to start daemon");
|
|
69
|
-
throw error;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
async saveProcessInfo(name, pid, config) {
|
|
73
|
-
// This would typically save to a process registry file or database
|
|
74
|
-
// For now, we'll implement a simple file-based approach
|
|
75
|
-
const processInfo = {
|
|
76
|
-
name,
|
|
77
|
-
pid,
|
|
78
|
-
config,
|
|
79
|
-
startTime: new Date().toISOString(),
|
|
80
|
-
};
|
|
81
|
-
// Save to a registry file (implementation would depend on requirements)
|
|
82
|
-
console.log("Process info saved:", processInfo);
|
|
83
|
-
}
|
|
84
|
-
getStatus() {
|
|
85
|
-
return {
|
|
86
|
-
running: this.app !== null,
|
|
87
|
-
config: this.config,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=agent.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.service.js","sourceRoot":"","sources":["../../src/services/agent.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,GAAG,MAAM,KAAK,CAAC;AAStB,MAAM,OAAO,YAAY;IACf,GAAG,GAA2B,IAAI,CAAC;IACnC,MAAM,GAAuB,IAAI,CAAC;IAE1C,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,OAAO,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;QAE9D,IAAI,CAAC;YACH,4BAA4B;YAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YAEpC,mBAAmB;YACnB,IAAI,CAAC,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;YAE/B,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CACb,0BAA0B,MAAM,CAAC,IAAI,oCAAoC,MAAM,CAAC,IAAI,EAAE,CACvF,CAAC;YAEF,2BAA2B;YAC3B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;YAE9D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAmB;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,0CAA0C,CAAC,CAAC,KAAK,EAAE,CAAC;QAExE,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,KAAK,GAAG,KAAK,CACjB,OAAO,CAAC,QAAQ,EAChB;gBACE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,kBAAkB;gBACnC,OAAO;gBACP,QAAQ;gBACR,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtB,QAAQ;gBACR,MAAM,CAAC,IAAI;gBACX,WAAW;gBACX,MAAM,CAAC,MAAM;aACd,EACD;gBACE,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,QAAQ;aAChB,CACF,CAAC;YAEF,mDAAmD;YACnD,KAAK,CAAC,KAAK,EAAE,CAAC;YAEd,OAAO,CAAC,OAAO,CACb,0BAA0B,MAAM,CAAC,IAAI,6BAA6B,KAAK,CAAC,GAAG,GAAG,CAC/E,CAAC;YAEF,mCAAmC;YACnC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAI,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACvC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,IAAY,EACZ,GAAW,EACX,MAAmB;QAEnB,mEAAmE;QACnE,wDAAwD;QACxD,MAAM,WAAW,GAAG;YAClB,IAAI;YACJ,GAAG;YACH,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,wEAAwE;QACxE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,SAAS;QACP,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
interface BootstrapResult {
|
|
2
|
-
tool: string;
|
|
3
|
-
status: "installed" | "already_present" | "failed";
|
|
4
|
-
version?: string;
|
|
5
|
-
error?: string;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Run full bootstrap - installs all required dependencies.
|
|
9
|
-
* Safe to run multiple times (idempotent).
|
|
10
|
-
*/
|
|
11
|
-
export declare function bootstrap(options?: {
|
|
12
|
-
verbose?: boolean;
|
|
13
|
-
}): Promise<BootstrapResult[]>;
|
|
14
|
-
/**
|
|
15
|
-
* Check which dependencies are available without installing.
|
|
16
|
-
*/
|
|
17
|
-
export declare function checkDependencies(): Record<string, {
|
|
18
|
-
available: boolean;
|
|
19
|
-
version?: string;
|
|
20
|
-
}>;
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=bootstrap.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/services/bootstrap.ts"],"names":[],"mappings":"AAeA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+OD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA4B7B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CACzC,MAAM,EACN;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CACzC,CAeA"}
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bootstrap Service
|
|
3
|
-
*
|
|
4
|
-
* Auto-installs all required system dependencies for the vibecontrols-agent:
|
|
5
|
-
* - tmux (terminal multiplexer)
|
|
6
|
-
* - ttyd (terminal web server)
|
|
7
|
-
* - cloudflared (Cloudflare tunnel)
|
|
8
|
-
* - bun (runtime - if not already present)
|
|
9
|
-
*
|
|
10
|
-
* Detects OS and uses appropriate package manager.
|
|
11
|
-
*/
|
|
12
|
-
import { execSync } from "child_process";
|
|
13
|
-
import { platform, arch } from "os";
|
|
14
|
-
const execOpts = { stdio: "pipe", timeout: 120000 };
|
|
15
|
-
function commandExists(cmd) {
|
|
16
|
-
try {
|
|
17
|
-
execSync(`which ${cmd}`, execOpts);
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
function getVersion(cmd, flag = "--version") {
|
|
25
|
-
try {
|
|
26
|
-
return execSync(`${cmd} ${flag}`, execOpts)
|
|
27
|
-
.toString()
|
|
28
|
-
.trim()
|
|
29
|
-
.split("\n")[0];
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
return "unknown";
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
function isRoot() {
|
|
36
|
-
try {
|
|
37
|
-
return execSync("id -u", execOpts).toString().trim() === "0";
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function sudo(cmd) {
|
|
44
|
-
return isRoot() ? cmd : `sudo ${cmd}`;
|
|
45
|
-
}
|
|
46
|
-
function detectPackageManager() {
|
|
47
|
-
if (commandExists("apt-get"))
|
|
48
|
-
return "apt";
|
|
49
|
-
if (commandExists("dnf"))
|
|
50
|
-
return "dnf";
|
|
51
|
-
if (commandExists("yum"))
|
|
52
|
-
return "yum";
|
|
53
|
-
if (commandExists("apk"))
|
|
54
|
-
return "apk";
|
|
55
|
-
if (commandExists("brew"))
|
|
56
|
-
return "brew";
|
|
57
|
-
return "unknown";
|
|
58
|
-
}
|
|
59
|
-
function installTmux() {
|
|
60
|
-
if (commandExists("tmux")) {
|
|
61
|
-
return {
|
|
62
|
-
tool: "tmux",
|
|
63
|
-
status: "already_present",
|
|
64
|
-
version: getVersion("tmux", "-V"),
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
try {
|
|
68
|
-
const pm = detectPackageManager();
|
|
69
|
-
switch (pm) {
|
|
70
|
-
case "apt":
|
|
71
|
-
execSync(sudo("apt-get update -qq && apt-get install -y -qq tmux"), {
|
|
72
|
-
...execOpts,
|
|
73
|
-
timeout: 180000,
|
|
74
|
-
});
|
|
75
|
-
break;
|
|
76
|
-
case "dnf":
|
|
77
|
-
case "yum":
|
|
78
|
-
execSync(sudo(`${pm} install -y tmux`), execOpts);
|
|
79
|
-
break;
|
|
80
|
-
case "apk":
|
|
81
|
-
execSync(sudo("apk add --no-cache tmux"), execOpts);
|
|
82
|
-
break;
|
|
83
|
-
case "brew":
|
|
84
|
-
execSync("brew install tmux", execOpts);
|
|
85
|
-
break;
|
|
86
|
-
default:
|
|
87
|
-
return {
|
|
88
|
-
tool: "tmux",
|
|
89
|
-
status: "failed",
|
|
90
|
-
error: "Unknown package manager",
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
return {
|
|
94
|
-
tool: "tmux",
|
|
95
|
-
status: "installed",
|
|
96
|
-
version: getVersion("tmux", "-V"),
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
catch (e) {
|
|
100
|
-
return { tool: "tmux", status: "failed", error: e.message };
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
function installTtyd() {
|
|
104
|
-
if (commandExists("ttyd")) {
|
|
105
|
-
return {
|
|
106
|
-
tool: "ttyd",
|
|
107
|
-
status: "already_present",
|
|
108
|
-
version: getVersion("ttyd", "--version"),
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
try {
|
|
112
|
-
const pm = detectPackageManager();
|
|
113
|
-
const osArch = arch();
|
|
114
|
-
// Try package manager first
|
|
115
|
-
if (pm === "apt") {
|
|
116
|
-
try {
|
|
117
|
-
execSync(sudo("apt-get update -qq && apt-get install -y -qq ttyd"), {
|
|
118
|
-
...execOpts,
|
|
119
|
-
timeout: 180000,
|
|
120
|
-
});
|
|
121
|
-
if (commandExists("ttyd")) {
|
|
122
|
-
return {
|
|
123
|
-
tool: "ttyd",
|
|
124
|
-
status: "installed",
|
|
125
|
-
version: getVersion("ttyd", "--version"),
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
catch {
|
|
130
|
-
// Fall through to binary download
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
// Download pre-built binary
|
|
134
|
-
const archMap = {
|
|
135
|
-
x64: "x86_64",
|
|
136
|
-
arm64: "aarch64",
|
|
137
|
-
arm: "armhf",
|
|
138
|
-
};
|
|
139
|
-
const ttydArch = archMap[osArch] || "x86_64";
|
|
140
|
-
const url = `https://github.com/tsl0922/ttyd/releases/latest/download/ttyd.${ttydArch}`;
|
|
141
|
-
execSync(`curl -fsSL "${url}" -o /tmp/ttyd && chmod +x /tmp/ttyd`, {
|
|
142
|
-
...execOpts,
|
|
143
|
-
timeout: 60000,
|
|
144
|
-
});
|
|
145
|
-
execSync(sudo("mv /tmp/ttyd /usr/local/bin/ttyd"), execOpts);
|
|
146
|
-
return {
|
|
147
|
-
tool: "ttyd",
|
|
148
|
-
status: "installed",
|
|
149
|
-
version: getVersion("ttyd", "--version"),
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
catch (e) {
|
|
153
|
-
return { tool: "ttyd", status: "failed", error: e.message };
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
function installCloudflared() {
|
|
157
|
-
if (commandExists("cloudflared")) {
|
|
158
|
-
return {
|
|
159
|
-
tool: "cloudflared",
|
|
160
|
-
status: "already_present",
|
|
161
|
-
version: getVersion("cloudflared", "--version"),
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
try {
|
|
165
|
-
const os = platform();
|
|
166
|
-
const osArch = arch();
|
|
167
|
-
if (os === "linux") {
|
|
168
|
-
const archMap = {
|
|
169
|
-
x64: "amd64",
|
|
170
|
-
arm64: "arm64",
|
|
171
|
-
arm: "arm",
|
|
172
|
-
};
|
|
173
|
-
const cfArch = archMap[osArch] || "amd64";
|
|
174
|
-
const url = `https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-${cfArch}`;
|
|
175
|
-
execSync(`curl -fsSL "${url}" -o /tmp/cloudflared && chmod +x /tmp/cloudflared`, { ...execOpts, timeout: 60000 });
|
|
176
|
-
execSync(sudo("mv /tmp/cloudflared /usr/local/bin/cloudflared"), execOpts);
|
|
177
|
-
}
|
|
178
|
-
else if (os === "darwin") {
|
|
179
|
-
if (commandExists("brew")) {
|
|
180
|
-
execSync("brew install cloudflared", { ...execOpts, timeout: 180000 });
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
return {
|
|
184
|
-
tool: "cloudflared",
|
|
185
|
-
status: "failed",
|
|
186
|
-
error: "Install Homebrew first or download manually",
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
return {
|
|
192
|
-
tool: "cloudflared",
|
|
193
|
-
status: "failed",
|
|
194
|
-
error: `Unsupported OS: ${os}`,
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
return {
|
|
198
|
-
tool: "cloudflared",
|
|
199
|
-
status: "installed",
|
|
200
|
-
version: getVersion("cloudflared", "--version"),
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
catch (e) {
|
|
204
|
-
return {
|
|
205
|
-
tool: "cloudflared",
|
|
206
|
-
status: "failed",
|
|
207
|
-
error: e.message,
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
function installBun() {
|
|
212
|
-
if (commandExists("bun")) {
|
|
213
|
-
return {
|
|
214
|
-
tool: "bun",
|
|
215
|
-
status: "already_present",
|
|
216
|
-
version: getVersion("bun", "--version"),
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
try {
|
|
220
|
-
execSync("curl -fsSL https://bun.sh/install | bash", {
|
|
221
|
-
...execOpts,
|
|
222
|
-
timeout: 120000,
|
|
223
|
-
});
|
|
224
|
-
return {
|
|
225
|
-
tool: "bun",
|
|
226
|
-
status: "installed",
|
|
227
|
-
version: getVersion("bun", "--version"),
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
catch (e) {
|
|
231
|
-
return { tool: "bun", status: "failed", error: e.message };
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Run full bootstrap - installs all required dependencies.
|
|
236
|
-
* Safe to run multiple times (idempotent).
|
|
237
|
-
*/
|
|
238
|
-
export async function bootstrap(options) {
|
|
239
|
-
const verbose = options?.verbose ?? true;
|
|
240
|
-
const results = [];
|
|
241
|
-
const tools = [
|
|
242
|
-
{ name: "bun", installer: installBun },
|
|
243
|
-
{ name: "tmux", installer: installTmux },
|
|
244
|
-
{ name: "ttyd", installer: installTtyd },
|
|
245
|
-
{ name: "cloudflared", installer: installCloudflared },
|
|
246
|
-
];
|
|
247
|
-
for (const tool of tools) {
|
|
248
|
-
if (verbose)
|
|
249
|
-
process.stdout.write(` Checking ${tool.name}... `);
|
|
250
|
-
const result = tool.installer();
|
|
251
|
-
results.push(result);
|
|
252
|
-
if (verbose) {
|
|
253
|
-
if (result.status === "already_present") {
|
|
254
|
-
console.log(`✅ already installed (${result.version})`);
|
|
255
|
-
}
|
|
256
|
-
else if (result.status === "installed") {
|
|
257
|
-
console.log(`📦 installed (${result.version})`);
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
console.log(`❌ failed: ${result.error}`);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
return results;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Check which dependencies are available without installing.
|
|
268
|
-
*/
|
|
269
|
-
export function checkDependencies() {
|
|
270
|
-
const deps = ["bun", "tmux", "ttyd", "cloudflared"];
|
|
271
|
-
const result = {};
|
|
272
|
-
for (const dep of deps) {
|
|
273
|
-
const available = commandExists(dep);
|
|
274
|
-
result[dep] = {
|
|
275
|
-
available,
|
|
276
|
-
version: available
|
|
277
|
-
? getVersion(dep, dep === "tmux" ? "-V" : "--version")
|
|
278
|
-
: undefined,
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
return result;
|
|
282
|
-
}
|
|
283
|
-
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/services/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shell completion generators for Bash, Zsh, and Fish.
|
|
3
|
-
*
|
|
4
|
-
* Produces scripts that auto-complete all built-in commands, subcommands,
|
|
5
|
-
* and options. After plugins register their CLI commands the completion
|
|
6
|
-
* data is re-scanned from the Commander.js program tree, so plugin
|
|
7
|
-
* commands are included automatically.
|
|
8
|
-
*/
|
|
9
|
-
import type { Command } from "commander";
|
|
10
|
-
interface CommandInfo {
|
|
11
|
-
name: string;
|
|
12
|
-
description: string;
|
|
13
|
-
options: Array<{
|
|
14
|
-
flags: string;
|
|
15
|
-
description: string;
|
|
16
|
-
}>;
|
|
17
|
-
subcommands: CommandInfo[];
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Walk the Commander.js program tree and collect command metadata.
|
|
21
|
-
*/
|
|
22
|
-
export declare function collectCommands(cmd: Command): CommandInfo[];
|
|
23
|
-
export declare function generateBash(cmds: CommandInfo[]): string;
|
|
24
|
-
export declare function generateZsh(cmds: CommandInfo[]): string;
|
|
25
|
-
export declare function generateFish(cmds: CommandInfo[]): string;
|
|
26
|
-
type Shell = "bash" | "zsh" | "fish";
|
|
27
|
-
/**
|
|
28
|
-
* Detect the user's current shell.
|
|
29
|
-
*/
|
|
30
|
-
export declare function detectShell(): Shell;
|
|
31
|
-
/**
|
|
32
|
-
* Install completion for the detected (or specified) shell.
|
|
33
|
-
*/
|
|
34
|
-
export declare function installCompletion(cmds: CommandInfo[], shell?: Shell): {
|
|
35
|
-
shell: Shell;
|
|
36
|
-
path: string;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Uninstall vibe completion from the detected (or specified) shell.
|
|
40
|
-
*/
|
|
41
|
-
export declare function uninstallCompletion(shell?: Shell): {
|
|
42
|
-
shell: Shell;
|
|
43
|
-
path: string;
|
|
44
|
-
};
|
|
45
|
-
export {};
|
|
46
|
-
//# sourceMappingURL=completion.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/services/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,WAAW,EAAE,WAAW,EAAE,CAAC;CAC5B;AAID;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,EAAE,CAU3D;AAoBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CA+DxD;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAsDvD;AAQD,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAkExD;AAiBD,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAErC;;GAEG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAKnC;AAcD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EAAE,EACnB,KAAK,CAAC,EAAE,KAAK,GACZ;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA4BhC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG;IAClD,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAyBA"}
|