@burdenoff/vibe-agent 1.0.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.
Files changed (100) hide show
  1. package/.env.example +8 -0
  2. package/LICENSE +22 -0
  3. package/README.md +290 -0
  4. package/dist/app.d.ts +15 -0
  5. package/dist/app.d.ts.map +1 -0
  6. package/dist/app.js +445 -0
  7. package/dist/app.js.map +1 -0
  8. package/dist/cli.d.ts +3 -0
  9. package/dist/cli.d.ts.map +1 -0
  10. package/dist/cli.js +1043 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/db/schema.d.ts +145 -0
  13. package/dist/db/schema.d.ts.map +1 -0
  14. package/dist/db/schema.js +536 -0
  15. package/dist/db/schema.js.map +1 -0
  16. package/dist/index.d.ts +2 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +61 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/middleware/ModuleAuth.d.ts +61 -0
  21. package/dist/middleware/ModuleAuth.d.ts.map +1 -0
  22. package/dist/middleware/ModuleAuth.js +220 -0
  23. package/dist/middleware/ModuleAuth.js.map +1 -0
  24. package/dist/middleware/auth.d.ts +3 -0
  25. package/dist/middleware/auth.d.ts.map +1 -0
  26. package/dist/middleware/auth.js +11 -0
  27. package/dist/middleware/auth.js.map +1 -0
  28. package/dist/migrations/remove-notes-prompts.d.ts +13 -0
  29. package/dist/migrations/remove-notes-prompts.d.ts.map +1 -0
  30. package/dist/migrations/remove-notes-prompts.js +148 -0
  31. package/dist/migrations/remove-notes-prompts.js.map +1 -0
  32. package/dist/routes/bookmarks.d.ts +3 -0
  33. package/dist/routes/bookmarks.d.ts.map +1 -0
  34. package/dist/routes/bookmarks.js +186 -0
  35. package/dist/routes/bookmarks.js.map +1 -0
  36. package/dist/routes/config.d.ts +3 -0
  37. package/dist/routes/config.d.ts.map +1 -0
  38. package/dist/routes/config.js +108 -0
  39. package/dist/routes/config.js.map +1 -0
  40. package/dist/routes/files.d.ts +3 -0
  41. package/dist/routes/files.d.ts.map +1 -0
  42. package/dist/routes/files.js +471 -0
  43. package/dist/routes/files.js.map +1 -0
  44. package/dist/routes/git.d.ts +3 -0
  45. package/dist/routes/git.d.ts.map +1 -0
  46. package/dist/routes/git.js +498 -0
  47. package/dist/routes/git.js.map +1 -0
  48. package/dist/routes/moduleRegistry.d.ts +41 -0
  49. package/dist/routes/moduleRegistry.d.ts.map +1 -0
  50. package/dist/routes/moduleRegistry.js +356 -0
  51. package/dist/routes/moduleRegistry.js.map +1 -0
  52. package/dist/routes/notifications.d.ts +3 -0
  53. package/dist/routes/notifications.d.ts.map +1 -0
  54. package/dist/routes/notifications.js +250 -0
  55. package/dist/routes/notifications.js.map +1 -0
  56. package/dist/routes/port-forward.d.ts +3 -0
  57. package/dist/routes/port-forward.d.ts.map +1 -0
  58. package/dist/routes/port-forward.js +205 -0
  59. package/dist/routes/port-forward.js.map +1 -0
  60. package/dist/routes/projects.d.ts +3 -0
  61. package/dist/routes/projects.d.ts.map +1 -0
  62. package/dist/routes/projects.js +442 -0
  63. package/dist/routes/projects.js.map +1 -0
  64. package/dist/routes/ssh.d.ts +3 -0
  65. package/dist/routes/ssh.d.ts.map +1 -0
  66. package/dist/routes/ssh.js +192 -0
  67. package/dist/routes/ssh.js.map +1 -0
  68. package/dist/routes/tasks.d.ts +3 -0
  69. package/dist/routes/tasks.d.ts.map +1 -0
  70. package/dist/routes/tasks.js +183 -0
  71. package/dist/routes/tasks.js.map +1 -0
  72. package/dist/routes/tmux.d.ts +3 -0
  73. package/dist/routes/tmux.d.ts.map +1 -0
  74. package/dist/routes/tmux.js +1191 -0
  75. package/dist/routes/tmux.js.map +1 -0
  76. package/dist/routes/tunnel.d.ts +25 -0
  77. package/dist/routes/tunnel.d.ts.map +1 -0
  78. package/dist/routes/tunnel.js +449 -0
  79. package/dist/routes/tunnel.js.map +1 -0
  80. package/dist/services/ModulePermissions.d.ts +100 -0
  81. package/dist/services/ModulePermissions.d.ts.map +1 -0
  82. package/dist/services/ModulePermissions.js +312 -0
  83. package/dist/services/ModulePermissions.js.map +1 -0
  84. package/dist/services/ModuleRegistryService.d.ts +152 -0
  85. package/dist/services/ModuleRegistryService.d.ts.map +1 -0
  86. package/dist/services/ModuleRegistryService.js +522 -0
  87. package/dist/services/ModuleRegistryService.js.map +1 -0
  88. package/dist/services/agent.service.d.ts +19 -0
  89. package/dist/services/agent.service.d.ts.map +1 -0
  90. package/dist/services/agent.service.js +88 -0
  91. package/dist/services/agent.service.js.map +1 -0
  92. package/dist/services/bootstrap.d.ts +22 -0
  93. package/dist/services/bootstrap.d.ts.map +1 -0
  94. package/dist/services/bootstrap.js +206 -0
  95. package/dist/services/bootstrap.js.map +1 -0
  96. package/dist/services/service-manager.d.ts +50 -0
  97. package/dist/services/service-manager.d.ts.map +1 -0
  98. package/dist/services/service-manager.js +382 -0
  99. package/dist/services/service-manager.js.map +1 -0
  100. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.service.js","sourceRoot":"","sources":["../../src/services/agent.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
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
@@ -0,0 +1 @@
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;AAwJD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA4B3F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAa5F"}
@@ -0,0 +1,206 @@
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).toString().trim().split('\n')[0];
27
+ }
28
+ catch {
29
+ return 'unknown';
30
+ }
31
+ }
32
+ function isRoot() {
33
+ try {
34
+ return execSync('id -u', execOpts).toString().trim() === '0';
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ }
40
+ function sudo(cmd) {
41
+ return isRoot() ? cmd : `sudo ${cmd}`;
42
+ }
43
+ function detectPackageManager() {
44
+ if (commandExists('apt-get'))
45
+ return 'apt';
46
+ if (commandExists('dnf'))
47
+ return 'dnf';
48
+ if (commandExists('yum'))
49
+ return 'yum';
50
+ if (commandExists('apk'))
51
+ return 'apk';
52
+ if (commandExists('brew'))
53
+ return 'brew';
54
+ return 'unknown';
55
+ }
56
+ function installTmux() {
57
+ if (commandExists('tmux')) {
58
+ return { tool: 'tmux', status: 'already_present', version: getVersion('tmux', '-V') };
59
+ }
60
+ try {
61
+ const pm = detectPackageManager();
62
+ switch (pm) {
63
+ case 'apt':
64
+ execSync(sudo('apt-get update -qq && apt-get install -y -qq tmux'), { ...execOpts, timeout: 180000 });
65
+ break;
66
+ case 'dnf':
67
+ case 'yum':
68
+ execSync(sudo(`${pm} install -y tmux`), execOpts);
69
+ break;
70
+ case 'apk':
71
+ execSync(sudo('apk add --no-cache tmux'), execOpts);
72
+ break;
73
+ case 'brew':
74
+ execSync('brew install tmux', execOpts);
75
+ break;
76
+ default:
77
+ return { tool: 'tmux', status: 'failed', error: 'Unknown package manager' };
78
+ }
79
+ return { tool: 'tmux', status: 'installed', version: getVersion('tmux', '-V') };
80
+ }
81
+ catch (e) {
82
+ return { tool: 'tmux', status: 'failed', error: e.message };
83
+ }
84
+ }
85
+ function installTtyd() {
86
+ if (commandExists('ttyd')) {
87
+ return { tool: 'ttyd', status: 'already_present', version: getVersion('ttyd', '--version') };
88
+ }
89
+ try {
90
+ const pm = detectPackageManager();
91
+ const osArch = arch();
92
+ // Try package manager first
93
+ if (pm === 'apt') {
94
+ try {
95
+ execSync(sudo('apt-get update -qq && apt-get install -y -qq ttyd'), { ...execOpts, timeout: 180000 });
96
+ if (commandExists('ttyd')) {
97
+ return { tool: 'ttyd', status: 'installed', version: getVersion('ttyd', '--version') };
98
+ }
99
+ }
100
+ catch {
101
+ // Fall through to binary download
102
+ }
103
+ }
104
+ // Download pre-built binary
105
+ const archMap = { x64: 'x86_64', arm64: 'aarch64', arm: 'armhf' };
106
+ const ttydArch = archMap[osArch] || 'x86_64';
107
+ const url = `https://github.com/tsl0922/ttyd/releases/latest/download/ttyd.${ttydArch}`;
108
+ execSync(`curl -fsSL "${url}" -o /tmp/ttyd && chmod +x /tmp/ttyd`, { ...execOpts, timeout: 60000 });
109
+ execSync(sudo('mv /tmp/ttyd /usr/local/bin/ttyd'), execOpts);
110
+ return { tool: 'ttyd', status: 'installed', version: getVersion('ttyd', '--version') };
111
+ }
112
+ catch (e) {
113
+ return { tool: 'ttyd', status: 'failed', error: e.message };
114
+ }
115
+ }
116
+ function installCloudflared() {
117
+ if (commandExists('cloudflared')) {
118
+ return { tool: 'cloudflared', status: 'already_present', version: getVersion('cloudflared', '--version') };
119
+ }
120
+ try {
121
+ const os = platform();
122
+ const osArch = arch();
123
+ if (os === 'linux') {
124
+ const archMap = { x64: 'amd64', arm64: 'arm64', arm: 'arm' };
125
+ const cfArch = archMap[osArch] || 'amd64';
126
+ const url = `https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-${cfArch}`;
127
+ execSync(`curl -fsSL "${url}" -o /tmp/cloudflared && chmod +x /tmp/cloudflared`, { ...execOpts, timeout: 60000 });
128
+ execSync(sudo('mv /tmp/cloudflared /usr/local/bin/cloudflared'), execOpts);
129
+ }
130
+ else if (os === 'darwin') {
131
+ if (commandExists('brew')) {
132
+ execSync('brew install cloudflared', { ...execOpts, timeout: 180000 });
133
+ }
134
+ else {
135
+ return { tool: 'cloudflared', status: 'failed', error: 'Install Homebrew first or download manually' };
136
+ }
137
+ }
138
+ else {
139
+ return { tool: 'cloudflared', status: 'failed', error: `Unsupported OS: ${os}` };
140
+ }
141
+ return { tool: 'cloudflared', status: 'installed', version: getVersion('cloudflared', '--version') };
142
+ }
143
+ catch (e) {
144
+ return { tool: 'cloudflared', status: 'failed', error: e.message };
145
+ }
146
+ }
147
+ function installBun() {
148
+ if (commandExists('bun')) {
149
+ return { tool: 'bun', status: 'already_present', version: getVersion('bun', '--version') };
150
+ }
151
+ try {
152
+ execSync('curl -fsSL https://bun.sh/install | bash', { ...execOpts, timeout: 120000 });
153
+ return { tool: 'bun', status: 'installed', version: getVersion('bun', '--version') };
154
+ }
155
+ catch (e) {
156
+ return { tool: 'bun', status: 'failed', error: e.message };
157
+ }
158
+ }
159
+ /**
160
+ * Run full bootstrap - installs all required dependencies.
161
+ * Safe to run multiple times (idempotent).
162
+ */
163
+ export async function bootstrap(options) {
164
+ const verbose = options?.verbose ?? true;
165
+ const results = [];
166
+ const tools = [
167
+ { name: 'bun', installer: installBun },
168
+ { name: 'tmux', installer: installTmux },
169
+ { name: 'ttyd', installer: installTtyd },
170
+ { name: 'cloudflared', installer: installCloudflared },
171
+ ];
172
+ for (const tool of tools) {
173
+ if (verbose)
174
+ process.stdout.write(` Checking ${tool.name}... `);
175
+ const result = tool.installer();
176
+ results.push(result);
177
+ if (verbose) {
178
+ if (result.status === 'already_present') {
179
+ console.log(`✅ already installed (${result.version})`);
180
+ }
181
+ else if (result.status === 'installed') {
182
+ console.log(`📦 installed (${result.version})`);
183
+ }
184
+ else {
185
+ console.log(`❌ failed: ${result.error}`);
186
+ }
187
+ }
188
+ }
189
+ return results;
190
+ }
191
+ /**
192
+ * Check which dependencies are available without installing.
193
+ */
194
+ export function checkDependencies() {
195
+ const deps = ['bun', 'tmux', 'ttyd', 'cloudflared'];
196
+ const result = {};
197
+ for (const dep of deps) {
198
+ const available = commandExists(dep);
199
+ result[dep] = {
200
+ available,
201
+ version: available ? getVersion(dep, dep === 'tmux' ? '-V' : '--version') : undefined,
202
+ };
203
+ }
204
+ return result;
205
+ }
206
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/services/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { AgentConfig } from './agent.service.js';
2
+ export interface ProcessInfo {
3
+ name: string;
4
+ pid: number;
5
+ port: number;
6
+ config: AgentConfig;
7
+ startTime: string;
8
+ status: 'running' | 'stopped' | 'unknown';
9
+ }
10
+ export interface LogOptions {
11
+ follow: boolean;
12
+ tail: number;
13
+ }
14
+ export declare class ServiceManager {
15
+ private registryPath;
16
+ private logsDir;
17
+ constructor();
18
+ startDaemon(config: AgentConfig): Promise<void>;
19
+ stop(name: string): Promise<void>;
20
+ restart(name: string, config: AgentConfig): Promise<void>;
21
+ stopAll(): Promise<void>;
22
+ kill(name: string): Promise<void>;
23
+ killAll(): Promise<void>;
24
+ getStatus(name: string): Promise<ProcessInfo | null>;
25
+ getStatusAll(): Promise<ProcessInfo[]>;
26
+ listInstances(): Promise<ProcessInfo[]>;
27
+ showLogs(name: string, options: LogOptions): Promise<void>;
28
+ checkHealth(name: string): Promise<{
29
+ healthy: boolean;
30
+ details: any;
31
+ }>;
32
+ checkHealthAll(): Promise<{
33
+ [name: string]: {
34
+ healthy: boolean;
35
+ details: any;
36
+ };
37
+ }>;
38
+ setConfig(key: string, value: string): Promise<void>;
39
+ getConfig(key?: string): Promise<any>;
40
+ private loadRegistry;
41
+ private saveRegistry;
42
+ private saveProcessInfo;
43
+ private updateProcessStatus;
44
+ private findProcessByName;
45
+ private getRunningProcesses;
46
+ private isProcessRunning;
47
+ private killProcessTree;
48
+ private appendToLog;
49
+ }
50
+ //# sourceMappingURL=service-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-manager.d.ts","sourceRoot":"","sources":["../../src/services/service-manager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKjD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;;IAYlB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAqE/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCjC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBxB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBxB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAKpD,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAetC,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAIvC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC1D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,CAAC;IAwBtE,cAAc,IAAI,OAAO,CAAC;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,GAAG,CAAA;SAAE,CAAA;KAAE,CAAC;IAWjF,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapD,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YAY7B,YAAY;YAcZ,YAAY;YAIZ,eAAe;YAoBf,mBAAmB;YAUnB,iBAAiB;YAejB,mBAAmB;YAKnB,gBAAgB;YAUhB,eAAe;IAoB7B,OAAO,CAAC,WAAW;CASpB"}