@mycompbox/compbox-cli 1.17.2 → 1.19.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 (48) hide show
  1. package/.tsbuildinfo +1 -1
  2. package/commands/configure.d.ts.map +1 -1
  3. package/commands/configure.js +31 -11
  4. package/commands/configure.js.map +1 -1
  5. package/commands/doctor.d.ts.map +1 -1
  6. package/commands/doctor.js +1 -1
  7. package/commands/doctor.js.map +1 -1
  8. package/commands/login.d.ts +2 -0
  9. package/commands/login.d.ts.map +1 -1
  10. package/commands/login.js +28 -6
  11. package/commands/login.js.map +1 -1
  12. package/commands/run.d.ts.map +1 -1
  13. package/commands/run.js +37 -2
  14. package/commands/run.js.map +1 -1
  15. package/index.js +887 -184
  16. package/package.json +1 -1
  17. package/utils/agent-invoker.d.ts +31 -58
  18. package/utils/agent-invoker.d.ts.map +1 -1
  19. package/utils/agent-invoker.js +95 -186
  20. package/utils/agent-invoker.js.map +1 -1
  21. package/utils/autostart.d.ts +41 -0
  22. package/utils/autostart.d.ts.map +1 -0
  23. package/utils/autostart.js +122 -0
  24. package/utils/autostart.js.map +1 -0
  25. package/utils/key-run.d.ts +32 -0
  26. package/utils/key-run.d.ts.map +1 -0
  27. package/utils/key-run.js +77 -0
  28. package/utils/key-run.js.map +1 -0
  29. package/utils/loopback.d.ts +3 -3
  30. package/utils/loopback.d.ts.map +1 -1
  31. package/utils/loopback.js +3 -3
  32. package/utils/loopback.js.map +1 -1
  33. package/utils/mailbox-client.d.ts +21 -0
  34. package/utils/mailbox-client.d.ts.map +1 -1
  35. package/utils/mailbox-client.js +34 -0
  36. package/utils/mailbox-client.js.map +1 -1
  37. package/utils/mcp-config-writer.d.ts +2 -0
  38. package/utils/mcp-config-writer.d.ts.map +1 -1
  39. package/utils/mcp-config-writer.js +9 -1
  40. package/utils/mcp-config-writer.js.map +1 -1
  41. package/utils/repo-setup.d.ts +44 -0
  42. package/utils/repo-setup.d.ts.map +1 -0
  43. package/utils/repo-setup.js +178 -0
  44. package/utils/repo-setup.js.map +1 -0
  45. package/utils/run-workspace.d.ts +114 -0
  46. package/utils/run-workspace.d.ts.map +1 -0
  47. package/utils/run-workspace.js +264 -0
  48. package/utils/run-workspace.js.map +1 -0
@@ -261,5 +261,39 @@ export class MailboxClient {
261
261
  const data = res.data;
262
262
  return data.data;
263
263
  }
264
+ /**
265
+ * The person's saved API key for one job sent with "Run with: My API key".
266
+ * Kept in memory and passed to Claude Code's environment only — never
267
+ * written to disk or logged.
268
+ */
269
+ async getAiKey(machineToken, jobId) {
270
+ let res;
271
+ try {
272
+ res = await this.http.post(`/api/v1/jobs/${jobId}/ai-key`, {}, { headers: { Authorization: `Bearer ${machineToken}` } });
273
+ }
274
+ catch (error) {
275
+ throw toMailboxError(error, 'ai-key request failed');
276
+ }
277
+ if (res.status < 200 || res.status >= 300) {
278
+ throw errorFromResponse(res, 'ai-key failed');
279
+ }
280
+ const data = res.data;
281
+ return data.data;
282
+ }
283
+ /** Reports what a run on the person's API key spent. */
284
+ async reportAiUsage(machineToken, jobId, usage) {
285
+ let res;
286
+ try {
287
+ res = await this.http.post(`/api/v1/jobs/${jobId}/ai-usage`, usage, {
288
+ headers: { Authorization: `Bearer ${machineToken}` },
289
+ });
290
+ }
291
+ catch (error) {
292
+ throw toMailboxError(error, 'ai-usage request failed');
293
+ }
294
+ if (res.status < 200 || res.status >= 300) {
295
+ throw errorFromResponse(res, 'ai-usage failed');
296
+ }
297
+ }
264
298
  }
265
299
  //# sourceMappingURL=mailbox-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mailbox-client.js","sourceRoot":"","sources":["../../src/utils/mailbox-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mailbox-client.js","sourceRoot":"","sources":["../../src/utils/mailbox-client.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@ export declare const MCP_SERVER_PACKAGE = "@mycompbox/compbox-mcp";
32
32
  export declare function resolveInstalledMcpBundle(opts?: {
33
33
  prefix?: string;
34
34
  exists?: (p: string) => boolean;
35
+ /** The running CLI entry (default process.argv[1]); see below. */
36
+ self?: string;
35
37
  }): string | undefined;
36
38
  /** A single MCP server definition. */
37
39
  export interface McpServerEntry {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config-writer.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-config-writer.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;GAcG;AAKH,8DAA8D;AAC9D,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAEvD,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CACjC,GAAG,MAAM,GAAG,SAAS,CAerB;AAED,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACnD;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,WAAW,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,YAAY,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAmB3E;AAuBD,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAA2B,GACrC,eAAe,CA8CjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,aAAa,GAClB,WAAW,CAkCb"}
1
+ {"version":3,"file":"mcp-config-writer.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-config-writer.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;GAcG;AAKH,8DAA8D;AAC9D,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAEvD,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAChC,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,GAAG,SAAS,CAwBrB;AAED,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACnD;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,WAAW,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,YAAY,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAmB3E;AAuBD,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAA2B,GACrC,eAAe,CA8CjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,aAAa,GAClB,WAAW,CAkCb"}
@@ -15,7 +15,7 @@
15
15
  * per-employee token and central base URL are supplied through its `env`.
16
16
  */
17
17
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
18
- import { dirname, join } from 'path';
18
+ import { basename, dirname, join } from 'path';
19
19
  /** Default Claude Code project-level MCP config file name. */
20
20
  export const DEFAULT_MCP_CONFIG_FILENAME = '.mcp.json';
21
21
  /** Default server key used for the CompBox MCP entry. */
@@ -34,6 +34,14 @@ export const MCP_SERVER_PACKAGE = '@mycompbox/compbox-mcp';
34
34
  */
35
35
  export function resolveInstalledMcpBundle(opts) {
36
36
  const exists = opts?.exists ?? existsSync;
37
+ // The hosted installers (install.sh / install.ps1) put compbox-mcp.cjs next
38
+ // to the CLI bundle compbox.cjs.
39
+ const self = opts && 'self' in opts ? opts.self : process.argv[1];
40
+ if (self && basename(self) === 'compbox.cjs') {
41
+ const sibling = join(dirname(self), 'compbox-mcp.cjs');
42
+ if (exists(sibling))
43
+ return sibling;
44
+ }
37
45
  const prefixes = [];
38
46
  if (opts?.prefix)
39
47
  prefixes.push(opts.prefix);
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config-writer.js","sourceRoot":"","sources":["../../src/utils/mcp-config-writer.ts"],"names":[],"mappings":"AAAA,iIAAiI;AACjI;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,8DAA8D;AAC9D,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAW,CAAC;AAEvD,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,wEAAwE;AACxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAGzC;IACC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,UAAU,CAAC;IAC1C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,IAAI,EAAE,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC5E,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC/E,IAAI,MAAM,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AA+CD,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IACtE,OAAO,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAmB;IACzD,MAAM,GAAG,GAAG;QACV,YAAY,EAAE,IAAI,CAAC,UAAU;QAC7B,SAAS,EAAE,IAAI,CAAC,QAAQ;KACzB,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IAC7E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,sBAAsB,IAAI,yBAAyB,CAAC,EAAE,CAAC;QAChF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;QAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAC7C,GAAG;KACJ,CAAC;AACJ,CAAC;AAOD,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,OAAO,EAAE,MAAM,EAAE,MAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,+DAA+D;IACjE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;AACzD,CAAC;AA+BD;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,YAAoB,kBAAkB;IAEtC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;IAClC,MAAM,YAAY,GAChB,OAAO,KAAK,SAAS;QACrB,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB,SAAS,IAAI,OAAO,CAAC;IAEvB,6EAA6E;IAC7E,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI,UAA8B,CAAC;IACnC,IAAI,OAA2B,CAAC;IAChC,IAAI,IAA0B,CAAC;IAC/B,IAAI,YAAY,EAAE,CAAC;QACjB,gEAAgE;QAChE,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,GAAG,GAAI,KAA2B,CAAC,GAAG,CAAC;YAC7C,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,MAAM,KAAK,GAAI,GAA+B,CAAC,YAAY,CAAC;gBAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClD,UAAU,GAAG,KAAK,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAI,KAA+B,CAAC,OAAO,CAAC;YAC5D,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,OAAO,GAAG,UAAU,CAAC;YACvB,CAAC;YACD,MAAM,OAAO,GAAI,KAA4B,CAAC,IAAI,CAAC;YACnD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC1E,IAAI,GAAG,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU;QACV,UAAU,EAAE,OAAO;QACnB,YAAY;QACZ,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,IAAmB;IAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;IACvD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAE3D,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC;IAC7C,MAAM,eAAe,GACnB,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAChG,CAAC,CAAC,EAAE,GAAG,kBAAkB,EAAE;QAC3B,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,IAAI,eAAe,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAC1D,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAC3B,CAAC;IAEF,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC5C,eAAe,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAEnC,MAAM,UAAU,GAAmB;QACjC,GAAG,MAAM;QACT,UAAU,EAAE,eAAe;KAC5B,CAAC;IAEF,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/E,OAAO;QACL,WAAW,EAAE,CAAC,OAAO;QACrB,YAAY;QACZ,gBAAgB;QAChB,UAAU;QACV,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"mcp-config-writer.js","sourceRoot":"","sources":["../../src/utils/mcp-config-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * `connect_repo` jobs: set up a project's repository on this computer, from
3
+ * the web ("Set up on my computer" on the project page).
4
+ *
5
+ * 1. Already registered for this repository → nothing to do.
6
+ * 2. The chosen folder (default ~/CompBox/<repo>) is already a clone of it →
7
+ * adopt it.
8
+ * 3. Otherwise clone it there with this computer's own git credentials
9
+ * (https first; for GitHub, ssh as a fallback).
10
+ *
11
+ * Then the folder is registered, exactly like `compbox machines dirs add`, so
12
+ * the next heartbeat tells CompBox this computer can run the project's work.
13
+ * The repository URL comes from the server (the project's settings), never
14
+ * from free text in the browser.
15
+ */
16
+ import { type ProjectDirEntry } from './config-store.js';
17
+ import type { InvokeResult } from './agent-invoker.js';
18
+ export interface CloneResult {
19
+ status: number;
20
+ stderr: string;
21
+ }
22
+ /** Runs `git clone url target`. Injectable in tests. */
23
+ export type GitCloner = (url: string, target: string) => Promise<CloneResult>;
24
+ export declare const defaultGitCloner: GitCloner;
25
+ export interface ConnectRepoDeps {
26
+ clone?: GitCloner;
27
+ home?: string;
28
+ exists?: (path: string) => boolean;
29
+ isEmptyDir?: (path: string) => boolean;
30
+ isGitRepo?: (path: string) => boolean;
31
+ readOrigin?: (path: string) => string;
32
+ listDirs?: () => ProjectDirEntry[];
33
+ addDir?: (path: string) => ProjectDirEntry;
34
+ mkdir?: (path: string) => void;
35
+ }
36
+ /** `https://github.com/acme/app` → `app`. */
37
+ export declare function repoFolderName(remote: string): string;
38
+ /** Expands a leading `~`, and makes relative paths relative to the home folder. */
39
+ export declare function resolveFolder(folder: string, home: string): string;
40
+ /** Clone URLs to try, in order: https, then (GitHub only) ssh. */
41
+ export declare function cloneUrls(remote: string): string[];
42
+ /** Sets up the project's repository on this computer. Never throws. */
43
+ export declare function invokeConnectRepo(payload: unknown, deps?: ConnectRepoDeps): Promise<InvokeResult>;
44
+ //# sourceMappingURL=repo-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-setup.d.ts","sourceRoot":"","sources":["../../src/utils/repo-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wDAAwD;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAI9E,eAAO,MAAM,gBAAgB,EAAE,SAuB3B,CAAC;AAEL,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,eAAe,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,CAAC;IAC3C,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,6CAA6C;AAC7C,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKlE;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAKlD;AAmBD,uEAAuE;AACvE,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,CA4F3G"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * `connect_repo` jobs: set up a project's repository on this computer, from
3
+ * the web ("Set up on my computer" on the project page).
4
+ *
5
+ * 1. Already registered for this repository → nothing to do.
6
+ * 2. The chosen folder (default ~/CompBox/<repo>) is already a clone of it →
7
+ * adopt it.
8
+ * 3. Otherwise clone it there with this computer's own git credentials
9
+ * (https first; for GitHub, ssh as a fallback).
10
+ *
11
+ * Then the folder is registered, exactly like `compbox machines dirs add`, so
12
+ * the next heartbeat tells CompBox this computer can run the project's work.
13
+ * The repository URL comes from the server (the project's settings), never
14
+ * from free text in the browser.
15
+ */
16
+ import { spawn } from 'node:child_process';
17
+ import { existsSync, mkdirSync, readdirSync } from 'node:fs';
18
+ import { homedir } from 'node:os';
19
+ import { dirname, isAbsolute, join, resolve } from 'node:path';
20
+ import { normalizeGitRemote } from '@mycompbox/shared';
21
+ import { claudeChildEnvPath } from './claude-runtime.js';
22
+ import { addProjectDir, isGitRepoDir, listProjectDirs, readOriginRemote, } from './config-store.js';
23
+ const CLONE_TIMEOUT_MS = 15 * 60 * 1_000;
24
+ export const defaultGitCloner = (url, target) => new Promise((done) => {
25
+ let stderr = '';
26
+ const child = spawn('git', ['clone', '--quiet', url, target], {
27
+ stdio: ['ignore', 'ignore', 'pipe'],
28
+ // Never hang on a username/password prompt: fail and explain instead.
29
+ env: { ...process.env, PATH: claudeChildEnvPath(process.env.PATH), GIT_TERMINAL_PROMPT: '0' },
30
+ });
31
+ const timer = setTimeout(() => {
32
+ child.kill('SIGKILL');
33
+ stderr += 'git clone timed out';
34
+ }, CLONE_TIMEOUT_MS);
35
+ child.stderr.on('data', (chunk) => {
36
+ stderr += chunk.toString('utf-8');
37
+ });
38
+ child.on('error', (error) => {
39
+ clearTimeout(timer);
40
+ done({ status: 1, stderr: error.message });
41
+ });
42
+ child.on('close', (code) => {
43
+ clearTimeout(timer);
44
+ done({ status: code ?? 1, stderr });
45
+ });
46
+ });
47
+ /** `https://github.com/acme/app` → `app`. */
48
+ export function repoFolderName(remote) {
49
+ const last = remote.replace(/\/+$/, '').split('/').pop() ?? '';
50
+ return last.replace(/[^A-Za-z0-9._-]+/g, '-') || 'project';
51
+ }
52
+ /** Expands a leading `~`, and makes relative paths relative to the home folder. */
53
+ export function resolveFolder(folder, home) {
54
+ const trimmed = folder.trim();
55
+ if (trimmed === '~')
56
+ return home;
57
+ if (trimmed.startsWith('~/'))
58
+ return join(home, trimmed.slice(2));
59
+ return isAbsolute(trimmed) ? resolve(trimmed) : join(home, trimmed);
60
+ }
61
+ /** Clone URLs to try, in order: https, then (GitHub only) ssh. */
62
+ export function cloneUrls(remote) {
63
+ const urls = [`${remote}.git`];
64
+ const gh = /^https:\/\/github\.com\/([^/]+)\/([^/]+)$/.exec(remote);
65
+ if (gh)
66
+ urls.push(`git@github.com:${gh[1] ?? ''}/${gh[2] ?? ''}.git`);
67
+ return urls;
68
+ }
69
+ function parsePayload(payload) {
70
+ if (typeof payload !== 'object' || payload === null)
71
+ return null;
72
+ const p = payload;
73
+ if (typeof p.teamId !== 'string' || typeof p.projectRemote !== 'string')
74
+ return null;
75
+ if (!p.projectRemote.startsWith('https://'))
76
+ return null;
77
+ return {
78
+ teamId: p.teamId,
79
+ projectRemote: p.projectRemote,
80
+ ...(typeof p.folder === 'string' ? { folder: p.folder } : {}),
81
+ ...(typeof p.projectName === 'string' ? { projectName: p.projectName } : {}),
82
+ };
83
+ }
84
+ function firstLine(text) {
85
+ return text.trim().split('\n').filter(Boolean).pop() ?? '';
86
+ }
87
+ /** Sets up the project's repository on this computer. Never throws. */
88
+ export async function invokeConnectRepo(payload, deps = {}) {
89
+ const clone = deps.clone ?? defaultGitCloner;
90
+ const home = deps.home ?? homedir();
91
+ const exists = deps.exists ?? existsSync;
92
+ const isEmptyDir = deps.isEmptyDir ??
93
+ ((path) => {
94
+ try {
95
+ return readdirSync(path).length === 0;
96
+ }
97
+ catch {
98
+ return false;
99
+ }
100
+ });
101
+ const isGitRepo = deps.isGitRepo ?? isGitRepoDir;
102
+ const readOrigin = deps.readOrigin ?? readOriginRemote;
103
+ const listDirs = deps.listDirs ?? listProjectDirs;
104
+ const addDir = deps.addDir ?? ((path) => addProjectDir(path));
105
+ const mkdir = deps.mkdir ?? ((path) => void mkdirSync(path, { recursive: true }));
106
+ const p = parsePayload(payload);
107
+ if (!p) {
108
+ return { status: 'failed', result: { error: 'The job was missing the project repository. Try again from the project page.' } };
109
+ }
110
+ const remote = normalizeGitRemote(p.projectRemote);
111
+ const name = p.projectName ?? repoFolderName(remote);
112
+ const existing = listDirs().find((entry) => entry.remote === remote && exists(entry.path));
113
+ if (existing) {
114
+ return {
115
+ status: 'done',
116
+ result: { path: existing.path, remote, outcome: 'already_set_up', message: `${name} is already set up on this computer at ${existing.path}.` },
117
+ };
118
+ }
119
+ const target = resolveFolder(p.folder ?? join('CompBox', repoFolderName(remote)), home);
120
+ try {
121
+ if (exists(target) && !isEmptyDir(target)) {
122
+ let origin = '';
123
+ try {
124
+ origin = isGitRepo(target) ? normalizeGitRemote(readOrigin(target)) : '';
125
+ }
126
+ catch {
127
+ origin = '';
128
+ }
129
+ if (origin !== remote) {
130
+ return {
131
+ status: 'failed',
132
+ result: {
133
+ error: `The folder ${target} already exists and isn't a copy of ${remote}. Choose a different folder and try again.`,
134
+ },
135
+ };
136
+ }
137
+ const entry = addDir(target);
138
+ return {
139
+ status: 'done',
140
+ result: { path: entry.path, remote, outcome: 'adopted', message: `Found an existing copy of ${name} at ${entry.path} and set it up.` },
141
+ };
142
+ }
143
+ mkdir(dirname(target));
144
+ const errors = [];
145
+ let cloned = false;
146
+ for (const url of cloneUrls(remote)) {
147
+ const res = await clone(url, target);
148
+ if (res.status === 0) {
149
+ cloned = true;
150
+ break;
151
+ }
152
+ errors.push(firstLine(res.stderr));
153
+ }
154
+ if (!cloned) {
155
+ return {
156
+ status: 'failed',
157
+ result: {
158
+ error: [
159
+ `This computer couldn't download ${remote}: ${errors.filter(Boolean).join(' / ') || 'unknown error'}.`,
160
+ 'Make sure this computer can access the repository, for example by signing in with `gh auth login` or adding an SSH key to your Git account, then try again.',
161
+ ].join(' '),
162
+ },
163
+ };
164
+ }
165
+ const entry = addDir(target);
166
+ return {
167
+ status: 'done',
168
+ result: { path: entry.path, remote, outcome: 'cloned', message: `Downloaded ${name} to ${entry.path} and set it up.` },
169
+ };
170
+ }
171
+ catch (error) {
172
+ return {
173
+ status: 'failed',
174
+ result: { error: `Setting up ${name} failed: ${error instanceof Error ? error.message : String(error)}` },
175
+ };
176
+ }
177
+ }
178
+ //# sourceMappingURL=repo-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-setup.js","sourceRoot":"","sources":["../../src/utils/repo-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Run workspaces: every headless orchestrator run gets its own branch and its
3
+ * own git worktree, and finishes with a pull request.
4
+ *
5
+ * Before this, the orchestrator ran directly in the configured project folder,
6
+ * on whatever branch happened to be checked out — so a run could leave its
7
+ * work uncommitted on `main`, mixed with the person's own edits. Now:
8
+ *
9
+ * prepare: fetch → new branch `compbox/epic-<id>-<stamp>` from the remote's
10
+ * default branch → `git worktree add` under ~/.compbox/runs →
11
+ * copy local-only config (.mcp.json, .env files, …) → install deps.
12
+ * finish: commit anything left uncommitted → if the branch has commits,
13
+ * push it and open a pull request (draft when the run stopped
14
+ * early) with `gh`, or report a compare link when `gh` is missing →
15
+ * remove the worktree (the branch stays).
16
+ *
17
+ * The person's own checkout is never switched, committed to or pushed.
18
+ * Every git/gh/install call goes through an injectable runner so tests never
19
+ * touch a real repository.
20
+ */
21
+ /** Result of one external command. */
22
+ export interface CommandResult {
23
+ status: number;
24
+ stdout: string;
25
+ stderr: string;
26
+ }
27
+ /**
28
+ * Runs `command args` in `cwd`. Asynchronous so the daemon's keep-alive keeps
29
+ * ticking during a long dependency install. Injectable in tests.
30
+ */
31
+ export type CommandRunner = (command: string, args: string[], cwd: string) => Promise<CommandResult>;
32
+ /** Set to "0" to keep finished runs local: no push, no pull request. */
33
+ export declare const RUN_PUSH_ENV = "COMPBOX_RUN_PUSH";
34
+ export declare const defaultCommandRunner: CommandRunner;
35
+ export interface RunWorkspace {
36
+ /** The worktree the orchestrator runs in. */
37
+ dir: string;
38
+ /** The person's own checkout the worktree was made from. */
39
+ projectDir: string;
40
+ /** The new branch, e.g. `compbox/epic-ENG-E12-20261015-0930`. */
41
+ branch: string;
42
+ /** What the branch started from, e.g. `origin/main` (or `HEAD` with no remote). */
43
+ baseRef: string;
44
+ /** The branch a pull request targets, e.g. `main`. */
45
+ baseBranch: string;
46
+ /** The remote to push to, or null when the repo has none. */
47
+ remote: string | null;
48
+ }
49
+ export type PrepareResult = {
50
+ ok: true;
51
+ workspace: RunWorkspace;
52
+ notes: string[];
53
+ } | {
54
+ ok: false;
55
+ error: string;
56
+ };
57
+ export interface FinishInput {
58
+ workspace: RunWorkspace;
59
+ epicId: string;
60
+ jobId: string;
61
+ /** Whether the orchestrator finished every phase. */
62
+ completed: boolean;
63
+ /** One line on why it stopped, when it didn't complete. */
64
+ stopReason?: string;
65
+ }
66
+ export interface FinishResult {
67
+ branch: string;
68
+ /** Commits on the branch beyond its base. */
69
+ commits: number;
70
+ pushed: boolean;
71
+ prUrl?: string;
72
+ /** A "create pull request" link, when one couldn't be opened automatically. */
73
+ compareUrl?: string;
74
+ /** Set when the worktree was kept (so nothing is lost). */
75
+ keptWorktree?: string;
76
+ /** Plain-language notes on anything that didn't go as planned. */
77
+ notes: string[];
78
+ }
79
+ /** Local-only files a run needs that git doesn't carry into a new worktree. */
80
+ export declare function isLocalConfigFile(path: string): boolean;
81
+ /** `ENG-E12` → `ENG-E12`; anything unusual becomes dashes. */
82
+ export declare function slugForBranch(value: string): string;
83
+ /** Picks the install command for the repo's lockfile, or null when there is none. */
84
+ export declare function installCommand(dir: string, exists?: (path: string) => boolean): [string, string[]] | null;
85
+ /**
86
+ * GitHub "compare" link for a remote URL, so the person can open the pull
87
+ * request in one click when `gh` isn't available. Null for non-GitHub remotes.
88
+ * Any credentials embedded in the URL are dropped.
89
+ */
90
+ export declare function githubCompareUrl(remoteUrl: string, baseBranch: string, branch: string): string | null;
91
+ export interface RunWorkspaceDeps {
92
+ run?: CommandRunner;
93
+ now?: () => Date;
94
+ /** Where worktrees go (defaults to `~/.compbox/runs`). */
95
+ runsRoot?: string;
96
+ exists?: (path: string) => boolean;
97
+ copyFile?: (from: string, to: string) => void;
98
+ env?: NodeJS.ProcessEnv;
99
+ }
100
+ export declare class RunWorkspaceManager {
101
+ private readonly run;
102
+ private readonly now;
103
+ private readonly runsRoot;
104
+ private readonly exists;
105
+ private readonly copyFile;
106
+ private readonly env;
107
+ constructor(deps?: RunWorkspaceDeps);
108
+ private git;
109
+ /** Creates the branch + worktree for a run. Never touches the person's checkout. */
110
+ prepare(projectDir: string, epicId: string): Promise<PrepareResult>;
111
+ /** Commits, pushes and opens the pull request; then cleans up the worktree. */
112
+ finish(input: FinishInput): Promise<FinishResult>;
113
+ }
114
+ //# sourceMappingURL=run-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-workspace.d.ts","sourceRoot":"","sources":["../../src/utils/run-workspace.ts"],"names":[],"mappings":"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"}