@telora/daemon-core 0.2.5

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 (81) hide show
  1. package/dist/activity-tracker.d.ts +69 -0
  2. package/dist/activity-tracker.d.ts.map +1 -0
  3. package/dist/activity-tracker.js +155 -0
  4. package/dist/activity-tracker.js.map +1 -0
  5. package/dist/api-client.d.ts +94 -0
  6. package/dist/api-client.d.ts.map +1 -0
  7. package/dist/api-client.js +145 -0
  8. package/dist/api-client.js.map +1 -0
  9. package/dist/config.d.ts +117 -0
  10. package/dist/config.d.ts.map +1 -0
  11. package/dist/config.js +348 -0
  12. package/dist/config.js.map +1 -0
  13. package/dist/engine.d.ts +120 -0
  14. package/dist/engine.d.ts.map +1 -0
  15. package/dist/engine.js +18 -0
  16. package/dist/engine.js.map +1 -0
  17. package/dist/escalation-types.d.ts +31 -0
  18. package/dist/escalation-types.d.ts.map +1 -0
  19. package/dist/escalation-types.js +24 -0
  20. package/dist/escalation-types.js.map +1 -0
  21. package/dist/event-logger.d.ts +13 -0
  22. package/dist/event-logger.d.ts.map +1 -0
  23. package/dist/event-logger.js +82 -0
  24. package/dist/event-logger.js.map +1 -0
  25. package/dist/git.d.ts +39 -0
  26. package/dist/git.d.ts.map +1 -0
  27. package/dist/git.js +72 -0
  28. package/dist/git.js.map +1 -0
  29. package/dist/index.d.ts +20 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +36 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/lifecycle.d.ts +104 -0
  34. package/dist/lifecycle.d.ts.map +1 -0
  35. package/dist/lifecycle.js +192 -0
  36. package/dist/lifecycle.js.map +1 -0
  37. package/dist/log-manager.d.ts +83 -0
  38. package/dist/log-manager.d.ts.map +1 -0
  39. package/dist/log-manager.js +217 -0
  40. package/dist/log-manager.js.map +1 -0
  41. package/dist/otel-env.d.ts +29 -0
  42. package/dist/otel-env.d.ts.map +1 -0
  43. package/dist/otel-env.js +44 -0
  44. package/dist/otel-env.js.map +1 -0
  45. package/dist/resilience.d.ts +127 -0
  46. package/dist/resilience.d.ts.map +1 -0
  47. package/dist/resilience.js +300 -0
  48. package/dist/resilience.js.map +1 -0
  49. package/dist/resource-governor.d.ts +83 -0
  50. package/dist/resource-governor.d.ts.map +1 -0
  51. package/dist/resource-governor.js +184 -0
  52. package/dist/resource-governor.js.map +1 -0
  53. package/dist/spawn.d.ts +72 -0
  54. package/dist/spawn.d.ts.map +1 -0
  55. package/dist/spawn.js +82 -0
  56. package/dist/spawn.js.map +1 -0
  57. package/dist/stream-json.d.ts +885 -0
  58. package/dist/stream-json.d.ts.map +1 -0
  59. package/dist/stream-json.js +298 -0
  60. package/dist/stream-json.js.map +1 -0
  61. package/dist/token-usage.d.ts +67 -0
  62. package/dist/token-usage.d.ts.map +1 -0
  63. package/dist/token-usage.js +150 -0
  64. package/dist/token-usage.js.map +1 -0
  65. package/dist/transforms.d.ts +64 -0
  66. package/dist/transforms.d.ts.map +1 -0
  67. package/dist/transforms.js +78 -0
  68. package/dist/transforms.js.map +1 -0
  69. package/dist/unified-config.d.ts +62 -0
  70. package/dist/unified-config.d.ts.map +1 -0
  71. package/dist/unified-config.js +155 -0
  72. package/dist/unified-config.js.map +1 -0
  73. package/dist/workflow-types.d.ts +202 -0
  74. package/dist/workflow-types.d.ts.map +1 -0
  75. package/dist/workflow-types.js +15 -0
  76. package/dist/workflow-types.js.map +1 -0
  77. package/dist/worktree.d.ts +92 -0
  78. package/dist/worktree.d.ts.map +1 -0
  79. package/dist/worktree.js +221 -0
  80. package/dist/worktree.js.map +1 -0
  81. package/package.json +57 -0
package/dist/spawn.js ADDED
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Shared Claude Code process spawning utilities.
3
+ *
4
+ * Provides common building blocks for spawning Claude Code CLI processes:
5
+ * - CLI argument construction for stream-json mode
6
+ * - Environment variable stripping (remove inherited Claude Code session vars)
7
+ * - Log file creation with restrictive permissions
8
+ *
9
+ * Both the Telora daemon and factory engines use these primitives,
10
+ * appending their own engine-specific options on top.
11
+ */
12
+ import { createWriteStream } from 'node:fs';
13
+ import { resolve } from 'node:path';
14
+ // ── CLI Argument Builder ──────────────────────────────────────────────────────
15
+ /**
16
+ * Build the common Claude Code CLI arguments for stream-json I/O.
17
+ *
18
+ * Returns the base set of flags shared across all engines:
19
+ * - `--dangerously-skip-permissions`
20
+ * - `--input-format stream-json`
21
+ * - `--output-format stream-json`
22
+ * - `--verbose`
23
+ * - `--mcp-config <absolute-path>` (when mcpConfigPath is provided)
24
+ *
25
+ * Callers append engine-specific flags (e.g. `--teammate-mode`, `--setting-sources`).
26
+ */
27
+ export function buildStreamJsonArgs(options = {}) {
28
+ const args = [
29
+ '--dangerously-skip-permissions',
30
+ '--input-format', 'stream-json',
31
+ '--output-format', 'stream-json',
32
+ '--verbose',
33
+ ];
34
+ if (options.mcpConfigPath) {
35
+ const absoluteMcpPath = resolve(options.mcpConfigPath);
36
+ args.push('--mcp-config', absoluteMcpPath);
37
+ }
38
+ return args;
39
+ }
40
+ // ── Environment Variable Stripping ────────────────────────────────────────────
41
+ /**
42
+ * Strip inherited Claude Code session variables from an environment object.
43
+ *
44
+ * When a Claude Code process is spawned from within another Claude Code session,
45
+ * inherited env vars (CLAUDECODE, CLAUDE_CODE_*, CLAUDECODE_*) cause the child
46
+ * to detect a parent session and hang indefinitely. This function removes those
47
+ * markers while allowing specific keys to be preserved.
48
+ *
49
+ * Patterns stripped:
50
+ * - `CLAUDECODE` (exact match)
51
+ * - `CLAUDE_CODE_*` (prefix match)
52
+ * - `CLAUDECODE_*` (prefix match -- used by some versions)
53
+ *
54
+ * @param env - The environment object to clean (not mutated; a copy is returned).
55
+ * @param options - Optional settings (e.g. keys to preserve).
56
+ * @returns A new environment object with matching keys removed.
57
+ */
58
+ export function stripClaudeCodeEnvVars(env, options = {}) {
59
+ const result = { ...env };
60
+ const preserveSet = new Set(options.preserve ?? []);
61
+ for (const key of Object.keys(result)) {
62
+ if (preserveSet.has(key))
63
+ continue;
64
+ if (key === 'CLAUDECODE' ||
65
+ key.startsWith('CLAUDE_CODE_') ||
66
+ key.startsWith('CLAUDECODE_')) {
67
+ delete result[key];
68
+ }
69
+ }
70
+ return result;
71
+ }
72
+ // ── Log File Creation ─────────────────────────────────────────────────────────
73
+ /**
74
+ * Create a writable log stream with restrictive permissions (owner-only read/write).
75
+ *
76
+ * Used for stdout/stderr/jsonl log files for spawned agent processes.
77
+ * The file is created with mode 0o600 (rw-------).
78
+ */
79
+ export function createLogStream(path) {
80
+ return createWriteStream(path, { mode: 0o600 });
81
+ }
82
+ //# sourceMappingURL=spawn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,iFAAiF;AAEjF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAiC,EAAE;IACrE,MAAM,IAAI,GAAa;QACrB,gCAAgC;QAChC,gBAAgB,EAAE,aAAa;QAC/B,iBAAiB,EAAE,aAAa;QAChC,WAAW;KACZ,CAAC;IAEF,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAuC,EACvC,UAA2B,EAAE;IAE7B,MAAM,MAAM,GAAuC,EAAE,GAAG,GAAG,EAAE,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAEpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAEnC,IACE,GAAG,KAAK,YAAY;YACpB,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC;YAC9B,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAC7B,CAAC;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,iBAAiB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC"}