youmd 0.10.2 → 0.12.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 (205) hide show
  1. package/dist/commands/brain.d.ts.map +1 -1
  2. package/dist/commands/brain.js +91 -28
  3. package/dist/commands/brain.js.map +1 -1
  4. package/dist/commands/chat.d.ts.map +1 -1
  5. package/dist/commands/chat.js +6 -1
  6. package/dist/commands/chat.js.map +1 -1
  7. package/dist/commands/conversations.d.ts +5 -0
  8. package/dist/commands/conversations.d.ts.map +1 -0
  9. package/dist/commands/conversations.js +116 -0
  10. package/dist/commands/conversations.js.map +1 -0
  11. package/dist/commands/doctor.d.ts +1 -0
  12. package/dist/commands/doctor.d.ts.map +1 -1
  13. package/dist/commands/doctor.js +16 -1
  14. package/dist/commands/doctor.js.map +1 -1
  15. package/dist/commands/founder.d.ts +13 -0
  16. package/dist/commands/founder.d.ts.map +1 -0
  17. package/dist/commands/founder.js +189 -0
  18. package/dist/commands/founder.js.map +1 -0
  19. package/dist/commands/handoff.d.ts +5 -0
  20. package/dist/commands/handoff.d.ts.map +1 -0
  21. package/dist/commands/handoff.js +432 -0
  22. package/dist/commands/handoff.js.map +1 -0
  23. package/dist/commands/orchestrate.d.ts +15 -0
  24. package/dist/commands/orchestrate.d.ts.map +1 -1
  25. package/dist/commands/orchestrate.js +294 -0
  26. package/dist/commands/orchestrate.js.map +1 -1
  27. package/dist/commands/project.d.ts.map +1 -1
  28. package/dist/commands/project.js +8 -1
  29. package/dist/commands/project.js.map +1 -1
  30. package/dist/commands/reconcile.d.ts +15 -0
  31. package/dist/commands/reconcile.d.ts.map +1 -0
  32. package/dist/commands/reconcile.js +260 -0
  33. package/dist/commands/reconcile.js.map +1 -0
  34. package/dist/commands/session.d.ts +28 -0
  35. package/dist/commands/session.d.ts.map +1 -0
  36. package/dist/commands/session.js +895 -0
  37. package/dist/commands/session.js.map +1 -0
  38. package/dist/commands/stack.d.ts +2 -0
  39. package/dist/commands/stack.d.ts.map +1 -1
  40. package/dist/commands/stack.js +26 -0
  41. package/dist/commands/stack.js.map +1 -1
  42. package/dist/commands/sync.d.ts.map +1 -1
  43. package/dist/commands/sync.js +11 -0
  44. package/dist/commands/sync.js.map +1 -1
  45. package/dist/commands/tasks.d.ts +57 -0
  46. package/dist/commands/tasks.d.ts.map +1 -1
  47. package/dist/commands/tasks.js +236 -31
  48. package/dist/commands/tasks.js.map +1 -1
  49. package/dist/generated/capability-registry.d.ts +311 -71
  50. package/dist/generated/capability-registry.d.ts.map +1 -1
  51. package/dist/generated/capability-registry.js +346 -71
  52. package/dist/generated/capability-registry.js.map +1 -1
  53. package/dist/index.js +113 -2
  54. package/dist/index.js.map +1 -1
  55. package/dist/lib/api.d.ts +362 -1
  56. package/dist/lib/api.d.ts.map +1 -1
  57. package/dist/lib/api.js +171 -0
  58. package/dist/lib/api.js.map +1 -1
  59. package/dist/lib/brain/adapters.d.ts +20 -1
  60. package/dist/lib/brain/adapters.d.ts.map +1 -1
  61. package/dist/lib/brain/adapters.js +113 -2
  62. package/dist/lib/brain/adapters.js.map +1 -1
  63. package/dist/lib/brain/approval-key-trust.d.ts +29 -0
  64. package/dist/lib/brain/approval-key-trust.d.ts.map +1 -0
  65. package/dist/lib/brain/approval-key-trust.js +139 -0
  66. package/dist/lib/brain/approval-key-trust.js.map +1 -0
  67. package/dist/lib/brain/cache.d.ts +2 -2
  68. package/dist/lib/brain/cache.d.ts.map +1 -1
  69. package/dist/lib/brain/cache.js +4 -4
  70. package/dist/lib/brain/cache.js.map +1 -1
  71. package/dist/lib/brain/content.d.ts +56 -0
  72. package/dist/lib/brain/content.d.ts.map +1 -0
  73. package/dist/lib/brain/content.js +362 -0
  74. package/dist/lib/brain/content.js.map +1 -0
  75. package/dist/lib/brain/descriptor-validator.d.ts +11 -0
  76. package/dist/lib/brain/descriptor-validator.d.ts.map +1 -0
  77. package/dist/lib/brain/descriptor-validator.js +185 -0
  78. package/dist/lib/brain/descriptor-validator.js.map +1 -0
  79. package/dist/lib/brain/discovery.d.ts.map +1 -1
  80. package/dist/lib/brain/discovery.js +103 -60
  81. package/dist/lib/brain/discovery.js.map +1 -1
  82. package/dist/lib/brain/index.d.ts +2 -0
  83. package/dist/lib/brain/index.d.ts.map +1 -1
  84. package/dist/lib/brain/index.js +8 -2
  85. package/dist/lib/brain/index.js.map +1 -1
  86. package/dist/lib/brain/proposal.d.ts +53 -5
  87. package/dist/lib/brain/proposal.d.ts.map +1 -1
  88. package/dist/lib/brain/proposal.js +341 -64
  89. package/dist/lib/brain/proposal.js.map +1 -1
  90. package/dist/lib/brain/safe-file.d.ts +25 -1
  91. package/dist/lib/brain/safe-file.d.ts.map +1 -1
  92. package/dist/lib/brain/safe-file.js +250 -30
  93. package/dist/lib/brain/safe-file.js.map +1 -1
  94. package/dist/lib/brain/safe-open.d.ts +2 -0
  95. package/dist/lib/brain/safe-open.d.ts.map +1 -0
  96. package/dist/lib/brain/safe-open.js +77 -0
  97. package/dist/lib/brain/safe-open.js.map +1 -0
  98. package/dist/lib/brain/safety.d.ts.map +1 -1
  99. package/dist/lib/brain/safety.js +5 -0
  100. package/dist/lib/brain/safety.js.map +1 -1
  101. package/dist/lib/brain/staged-apply.d.ts +2 -1
  102. package/dist/lib/brain/staged-apply.d.ts.map +1 -1
  103. package/dist/lib/brain/staged-apply.js +6 -3
  104. package/dist/lib/brain/staged-apply.js.map +1 -1
  105. package/dist/lib/brain/store.d.ts +3 -0
  106. package/dist/lib/brain/store.d.ts.map +1 -1
  107. package/dist/lib/brain/store.js +68 -0
  108. package/dist/lib/brain/store.js.map +1 -1
  109. package/dist/lib/brain/sync.d.ts +87 -0
  110. package/dist/lib/brain/sync.d.ts.map +1 -0
  111. package/dist/lib/brain/sync.js +238 -0
  112. package/dist/lib/brain/sync.js.map +1 -0
  113. package/dist/lib/brain/types.d.ts +23 -0
  114. package/dist/lib/brain/types.d.ts.map +1 -1
  115. package/dist/lib/config.d.ts +7 -0
  116. package/dist/lib/config.d.ts.map +1 -1
  117. package/dist/lib/config.js +3 -0
  118. package/dist/lib/config.js.map +1 -1
  119. package/dist/lib/daemon.js +1 -1
  120. package/dist/lib/daemon.js.map +1 -1
  121. package/dist/lib/goalRegistryFile.d.ts +169 -0
  122. package/dist/lib/goalRegistryFile.d.ts.map +1 -0
  123. package/dist/lib/goalRegistryFile.js +518 -0
  124. package/dist/lib/goalRegistryFile.js.map +1 -0
  125. package/dist/lib/goalsFile.d.ts +101 -0
  126. package/dist/lib/goalsFile.d.ts.map +1 -0
  127. package/dist/lib/goalsFile.js +413 -0
  128. package/dist/lib/goalsFile.js.map +1 -0
  129. package/dist/lib/handoff.d.ts +170 -0
  130. package/dist/lib/handoff.d.ts.map +1 -0
  131. package/dist/lib/handoff.js +316 -0
  132. package/dist/lib/handoff.js.map +1 -0
  133. package/dist/lib/machine-identity.d.ts +2 -0
  134. package/dist/lib/machine-identity.d.ts.map +1 -1
  135. package/dist/lib/machine-identity.js +13 -6
  136. package/dist/lib/machine-identity.js.map +1 -1
  137. package/dist/lib/onboarding.d.ts +4 -1
  138. package/dist/lib/onboarding.d.ts.map +1 -1
  139. package/dist/lib/onboarding.js +11 -3
  140. package/dist/lib/onboarding.js.map +1 -1
  141. package/dist/lib/orchestrator/loop.d.ts +7 -0
  142. package/dist/lib/orchestrator/loop.d.ts.map +1 -1
  143. package/dist/lib/orchestrator/loop.js +53 -0
  144. package/dist/lib/orchestrator/loop.js.map +1 -1
  145. package/dist/lib/orchestrator/run-journal.d.ts +178 -0
  146. package/dist/lib/orchestrator/run-journal.d.ts.map +1 -0
  147. package/dist/lib/orchestrator/run-journal.js +912 -0
  148. package/dist/lib/orchestrator/run-journal.js.map +1 -0
  149. package/dist/lib/orchestrator/supervisor.d.ts +11 -0
  150. package/dist/lib/orchestrator/supervisor.d.ts.map +1 -1
  151. package/dist/lib/orchestrator/supervisor.js +304 -116
  152. package/dist/lib/orchestrator/supervisor.js.map +1 -1
  153. package/dist/lib/orchestrator/tools.d.ts +2 -0
  154. package/dist/lib/orchestrator/tools.d.ts.map +1 -1
  155. package/dist/lib/orchestrator/tools.js +214 -1
  156. package/dist/lib/orchestrator/tools.js.map +1 -1
  157. package/dist/lib/redact.d.ts.map +1 -1
  158. package/dist/lib/redact.js +31 -6
  159. package/dist/lib/redact.js.map +1 -1
  160. package/dist/lib/remote-agent-event.d.ts +19 -0
  161. package/dist/lib/remote-agent-event.d.ts.map +1 -0
  162. package/dist/lib/remote-agent-event.js +85 -0
  163. package/dist/lib/remote-agent-event.js.map +1 -0
  164. package/dist/lib/remote-command.d.ts.map +1 -1
  165. package/dist/lib/remote-command.js +19 -0
  166. package/dist/lib/remote-command.js.map +1 -1
  167. package/dist/lib/remote-executor.d.ts +7 -1
  168. package/dist/lib/remote-executor.d.ts.map +1 -1
  169. package/dist/lib/remote-executor.js +391 -0
  170. package/dist/lib/remote-executor.js.map +1 -1
  171. package/dist/lib/sessionCheckpoint.d.ts +104 -0
  172. package/dist/lib/sessionCheckpoint.d.ts.map +1 -0
  173. package/dist/lib/sessionCheckpoint.js +191 -0
  174. package/dist/lib/sessionCheckpoint.js.map +1 -0
  175. package/dist/lib/sessionHandoff.d.ts +47 -0
  176. package/dist/lib/sessionHandoff.d.ts.map +1 -0
  177. package/dist/lib/sessionHandoff.js +305 -0
  178. package/dist/lib/sessionHandoff.js.map +1 -0
  179. package/dist/lib/stream.d.ts +3 -1
  180. package/dist/lib/stream.d.ts.map +1 -1
  181. package/dist/lib/stream.js +8 -3
  182. package/dist/lib/stream.js.map +1 -1
  183. package/dist/lib/taskLedgerProposal.d.ts +102 -0
  184. package/dist/lib/taskLedgerProposal.d.ts.map +1 -0
  185. package/dist/lib/taskLedgerProposal.js +408 -0
  186. package/dist/lib/taskLedgerProposal.js.map +1 -0
  187. package/dist/lib/tasksFile.d.ts +23 -2
  188. package/dist/lib/tasksFile.d.ts.map +1 -1
  189. package/dist/lib/tasksFile.js +122 -10
  190. package/dist/lib/tasksFile.js.map +1 -1
  191. package/dist/mcp/registry.d.ts.map +1 -1
  192. package/dist/mcp/registry.js +110 -0
  193. package/dist/mcp/registry.js.map +1 -1
  194. package/native/prebuilds/darwin-universal/youmd_safe_open.node +0 -0
  195. package/native/safe-open/youmd_safe_open.c +224 -0
  196. package/package.json +11 -3
  197. package/scripts/build-safe-open.mjs +63 -0
  198. package/scripts/skillstack-sync/com.you.context-sync.plist +1 -1
  199. package/scripts/skillstack-sync/com.you.identity-sync.plist +1 -1
  200. package/scripts/skillstack-sync/com.you.orchestrator-watch.plist +1 -1
  201. package/scripts/skillstack-sync/com.you.realtime-sync.plist +7 -1
  202. package/scripts/skillstack-sync/com.you.skillstack-sync.plist +1 -1
  203. package/scripts/skillstack-sync/context-sync.sh +19 -7
  204. package/scripts/skillstack-sync/install-daemons-linux.sh +6 -0
  205. package/scripts/smoke-safe-open-node.cjs +50 -0
@@ -44,9 +44,11 @@ var __importStar = (this && this.__importStar) || (function () {
44
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
45
  exports.TERMINAL_WORKER_STATUSES = void 0;
46
46
  exports.isTerminalWorkerStatus = isTerminalWorkerStatus;
47
+ exports.resolveHarnessBinary = resolveHarnessBinary;
47
48
  exports.loadWorkers = loadWorkers;
48
49
  exports.isPidAlive = isPidAlive;
49
50
  exports.refreshWorkers = refreshWorkers;
51
+ exports.buildWorkerEnv = buildWorkerEnv;
50
52
  exports.spawnWorker = spawnWorker;
51
53
  exports.getWorker = getWorker;
52
54
  exports.getWorkerOutput = getWorkerOutput;
@@ -65,17 +67,9 @@ function isTerminalWorkerStatus(status) {
65
67
  return exports.TERMINAL_WORKER_STATUSES.includes(status);
66
68
  }
67
69
  const HARNESS_SPECS = {
68
- // Claude Code headless print mode. A headless worker has no human to answer
69
- // permission prompts, and without an allowlist it cannot execute ANY command
70
- // (proven live 2026-07-06: a spawned worker could not even run vitest). The
71
- // orchestrator's whole job is autonomous delegation on the owner's own
72
- // machine, so workers run with permissions skipped. Opt out (and provide your
73
- // own allowlist) with YOU_WORKER_SAFE_MODE=1.
74
70
  claude: {
75
71
  bin: "claude",
76
- args: (p) => process.env.YOU_WORKER_SAFE_MODE === "1"
77
- ? ["-p", p]
78
- : ["--dangerously-skip-permissions", "-p", p],
72
+ args: (p) => ["-p", p],
79
73
  overrideEnv: "YOU_HARNESS_CLAUDE",
80
74
  },
81
75
  // Codex non-interactive exec mode. Same rationale: exec's default sandbox
@@ -89,13 +83,66 @@ const HARNESS_SPECS = {
89
83
  : ["exec", "--sandbox", "workspace-write", "--skip-git-repo-check", p],
90
84
  overrideEnv: "YOU_HARNESS_CODEX",
91
85
  },
92
- // Cursor agent CLI headless mode.
93
86
  cursor: {
94
87
  bin: "cursor-agent",
95
- args: (p) => process.env.YOU_WORKER_SAFE_MODE === "1" ? ["-p", p] : ["-p", "--force", p],
88
+ args: (p) => ["-p", p],
96
89
  overrideEnv: "YOU_HARNESS_CURSOR",
97
90
  },
98
91
  };
92
+ function resolveHarnessBinary(harness, environment = process.env) {
93
+ const spec = HARNESS_SPECS[harness];
94
+ const override = environment[spec.overrideEnv]?.trim();
95
+ if (!override)
96
+ return { ok: true, bin: spec.bin };
97
+ if (!path.isAbsolute(override)) {
98
+ return { ok: false, error: `${spec.overrideEnv} must be an absolute executable path` };
99
+ }
100
+ try {
101
+ const stat = fs.statSync(override);
102
+ if (!stat.isFile() || (stat.mode & 0o111) === 0) {
103
+ return { ok: false, error: `${spec.overrideEnv} is not an executable file` };
104
+ }
105
+ }
106
+ catch {
107
+ return { ok: false, error: `${spec.overrideEnv} executable is unavailable` };
108
+ }
109
+ return { ok: true, bin: override };
110
+ }
111
+ const WORKER_RUNNER_SOURCE = String.raw `
112
+ const fs = require("fs");
113
+ const cp = require("child_process");
114
+ const launchFile = process.argv[1];
115
+ let spec;
116
+ try {
117
+ spec = JSON.parse(fs.readFileSync(launchFile, "utf8"));
118
+ fs.rmSync(launchFile, { force: true });
119
+ } catch (error) {
120
+ process.stderr.write("worker runner could not read launch spec: " + error.message + "\n");
121
+ process.exit(1);
122
+ }
123
+ const checkpoint = (status, exitCode, error) => {
124
+ const row = { status, exitCode, endedAt: new Date().toISOString(), ...(error ? { error } : {}) };
125
+ const tmp = spec.resultFile + "." + process.pid + ".tmp";
126
+ fs.writeFileSync(tmp, JSON.stringify(row) + "\n", { mode: 0o600 });
127
+ fs.renameSync(tmp, spec.resultFile);
128
+ };
129
+ let child;
130
+ try {
131
+ child = cp.spawn(spec.bin, spec.argv, { cwd: spec.cwd, stdio: "inherit", env: process.env });
132
+ } catch (error) {
133
+ checkpoint("failed", null, error.message);
134
+ process.exit(1);
135
+ }
136
+ child.once("error", (error) => {
137
+ checkpoint("failed", null, error.message);
138
+ process.exitCode = 1;
139
+ });
140
+ child.once("close", (code, signal) => {
141
+ const exitCode = typeof code === "number" ? code : null;
142
+ checkpoint(exitCode === 0 ? "exited" : "failed", exitCode, signal ? "signal=" + signal : undefined);
143
+ process.exitCode = exitCode === 0 ? 0 : 1;
144
+ });
145
+ `;
99
146
  function orchestratorDir() {
100
147
  const dir = path.join((0, config_1.getWritableHomeBundleDir)(), "orchestrator");
101
148
  fs.mkdirSync(dir, { recursive: true });
@@ -109,14 +156,14 @@ function logsDir() {
109
156
  function registryPath() {
110
157
  return path.join(orchestratorDir(), "workers.json");
111
158
  }
112
- function loadWorkers() {
159
+ function registryLockPath() {
160
+ return `${registryPath()}.lock`;
161
+ }
162
+ function readWorkersUnlocked() {
113
163
  try {
114
- const raw = fs.readFileSync(registryPath(), "utf-8");
115
- const parsed = JSON.parse(raw);
164
+ const parsed = JSON.parse(fs.readFileSync(registryPath(), "utf-8"));
116
165
  if (!Array.isArray(parsed))
117
166
  return [];
118
- // Drop malformed records (partial write, hand-edit, schema drift) instead of letting a
119
- // single bad entry throw downstream — a corrupt row shouldn't hide every healthy worker.
120
167
  return parsed.filter((w) => !!w &&
121
168
  typeof w === "object" &&
122
169
  typeof w.id === "string" &&
@@ -126,15 +173,59 @@ function loadWorkers() {
126
173
  return [];
127
174
  }
128
175
  }
129
- function saveWorkers(workers) {
130
- // Atomic write (tmp + rename) so a concurrent reader never sees a half-written file.
131
- // NOTE: this does not prevent lost updates under concurrent writers (the registry is a
132
- // single JSON file with no lock); spawn/watch/remote runs are low-frequency so the window
133
- // is small, but a future hardening is per-record files or a lockfile.
176
+ function withRegistryLock(fn) {
177
+ orchestratorDir();
178
+ const lock = registryLockPath();
179
+ let fd;
180
+ for (let attempt = 0; attempt < 100; attempt += 1) {
181
+ try {
182
+ fd = fs.openSync(lock, "wx", 0o600);
183
+ break;
184
+ }
185
+ catch (error) {
186
+ if (error.code !== "EEXIST")
187
+ throw error;
188
+ try {
189
+ if (Date.now() - fs.statSync(lock).mtimeMs > 30000)
190
+ fs.rmSync(lock, { force: true });
191
+ }
192
+ catch {
193
+ // Another writer released it between the failed open and stat.
194
+ }
195
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 5);
196
+ }
197
+ }
198
+ if (fd === undefined)
199
+ throw new Error("worker registry is busy");
200
+ try {
201
+ return fn();
202
+ }
203
+ finally {
204
+ fs.closeSync(fd);
205
+ fs.rmSync(lock, { force: true });
206
+ }
207
+ }
208
+ function writeWorkersUnlocked(workers) {
134
209
  const target = registryPath();
135
- const tmp = `${target}.${process.pid}.tmp`;
136
- fs.writeFileSync(tmp, JSON.stringify(workers, null, 2));
137
- fs.renameSync(tmp, target);
210
+ const tmp = `${target}.${process.pid}.${Math.random().toString(16).slice(2)}.tmp`;
211
+ try {
212
+ fs.writeFileSync(tmp, `${JSON.stringify(workers, null, 2)}\n`, { mode: 0o600 });
213
+ fs.renameSync(tmp, target);
214
+ }
215
+ finally {
216
+ fs.rmSync(tmp, { force: true });
217
+ }
218
+ }
219
+ function mutateWorkers(mutator) {
220
+ return withRegistryLock(() => {
221
+ const workers = readWorkersUnlocked();
222
+ const result = mutator(workers);
223
+ writeWorkersUnlocked(workers);
224
+ return result;
225
+ });
226
+ }
227
+ function loadWorkers() {
228
+ return readWorkersUnlocked();
138
229
  }
139
230
  /** True if a pid is alive (signal 0 probe). */
140
231
  function isPidAlive(pid) {
@@ -149,18 +240,78 @@ function isPidAlive(pid) {
149
240
  return err.code === "EPERM";
150
241
  }
151
242
  }
243
+ function readWorkerResult(worker) {
244
+ if (!worker.resultFile)
245
+ return undefined;
246
+ try {
247
+ const row = JSON.parse(fs.readFileSync(worker.resultFile, "utf8"));
248
+ if ((row.status !== "exited" && row.status !== "failed") || typeof row.endedAt !== "string")
249
+ return undefined;
250
+ if (Number.isNaN(Date.parse(row.endedAt)))
251
+ return undefined;
252
+ // The trusted runner writes `exited` only for an integer zero and `failed` for a
253
+ // non-zero integer or an unavailable code (spawn error/signal). Reject impossible
254
+ // combinations so a malformed checkpoint can never be interpreted as success.
255
+ if (row.status === "exited" && row.exitCode !== 0)
256
+ return undefined;
257
+ if (row.status === "failed" &&
258
+ row.exitCode !== null &&
259
+ (!Number.isInteger(row.exitCode) || row.exitCode === 0))
260
+ return undefined;
261
+ return {
262
+ status: row.status,
263
+ exitCode: typeof row.exitCode === "number" ? row.exitCode : undefined,
264
+ endedAt: row.endedAt,
265
+ };
266
+ }
267
+ catch {
268
+ return undefined;
269
+ }
270
+ }
152
271
  /** Reconcile registry status against live pids (a running worker whose pid died → exited). */
153
272
  function refreshWorkers(workers = loadWorkers()) {
154
273
  let changed = false;
155
274
  for (const w of workers) {
156
275
  if (w.status === "running" && !isPidAlive(w.pid)) {
157
- w.status = "exited";
158
- w.endedAt = w.endedAt ?? new Date().toISOString();
276
+ const checkpoint = readWorkerResult(w);
277
+ // Fail closed if the runner died before checkpointing; never guess a successful exit.
278
+ w.status = checkpoint?.status ?? "failed";
279
+ w.exitCode = checkpoint?.exitCode;
280
+ w.endedAt = checkpoint?.endedAt ?? w.endedAt ?? new Date().toISOString();
159
281
  changed = true;
160
282
  }
283
+ else if (isTerminalWorkerStatus(w.status) && w.exitCode === undefined && w.endedAt) {
284
+ const checkpoint = readWorkerResult(w);
285
+ // Repair records written by supervisors that predate durable exit-code persistence,
286
+ // but only when the immutable terminal facts match exactly. Any mismatch remains
287
+ // unproven and therefore cannot satisfy a governed success assertion.
288
+ if (checkpoint?.exitCode !== undefined &&
289
+ checkpoint.status === w.status &&
290
+ checkpoint.endedAt === w.endedAt) {
291
+ w.exitCode = checkpoint.exitCode;
292
+ changed = true;
293
+ }
294
+ }
295
+ }
296
+ if (changed) {
297
+ mutateWorkers((latest) => {
298
+ for (const update of workers) {
299
+ const current = latest.find((row) => row.id === update.id);
300
+ if (current?.status === "running" && current.pid === update.pid) {
301
+ current.status = update.status;
302
+ current.exitCode = update.exitCode;
303
+ current.endedAt = update.endedAt;
304
+ }
305
+ else if (current?.status === update.status &&
306
+ current.pid === update.pid &&
307
+ current.endedAt === update.endedAt &&
308
+ current.exitCode === undefined &&
309
+ update.exitCode !== undefined) {
310
+ current.exitCode = update.exitCode;
311
+ }
312
+ }
313
+ });
161
314
  }
162
- if (changed)
163
- saveWorkers(workers);
164
315
  return workers;
165
316
  }
166
317
  function shortId() {
@@ -169,6 +320,20 @@ function shortId() {
169
320
  const stamp = Date.now().toString(36);
170
321
  return `w_${stamp}${rand}`;
171
322
  }
323
+ const WORKER_ENV_ALLOWLIST = new Set([
324
+ "HOME", "PATH", "USER", "LOGNAME", "SHELL", "TMPDIR", "TMP", "TEMP",
325
+ "LANG", "LC_ALL", "TERM", "COLORTERM", "NO_COLOR", "CI", "SSH_AUTH_SOCK",
326
+ "CLAUDE_CONFIG_DIR", "CODEX_HOME", "ANTHROPIC_API_KEY", "OPENAI_API_KEY", "CURSOR_API_KEY",
327
+ ]);
328
+ /** Build the least-privilege worker environment; never inherit You.md/vault/provider-proxy secrets wholesale. */
329
+ function buildWorkerEnv(source = process.env) {
330
+ const out = {};
331
+ for (const [key, value] of Object.entries(source)) {
332
+ if (value !== undefined && (WORKER_ENV_ALLOWLIST.has(key) || key.startsWith("LC_")))
333
+ out[key] = value;
334
+ }
335
+ return out;
336
+ }
172
337
  /**
173
338
  * Launch a worker harness detached, streaming its output to a per-worker log file, and record
174
339
  * it in the registry. Detached + unref so the worker outlives this CLI process (an orchestrator
@@ -191,37 +356,29 @@ function spawnWorker(input) {
191
356
  }
192
357
  else {
193
358
  const spec = HARNESS_SPECS[harness];
194
- const override = process.env[spec.overrideEnv];
195
- bin = override && override.trim() ? override.trim() : spec.bin;
359
+ const resolved = resolveHarnessBinary(harness);
360
+ if (!resolved.ok)
361
+ return resolved;
362
+ bin = resolved.bin;
196
363
  argv = spec.args(goal);
197
364
  }
198
365
  const id = shortId();
199
366
  const logFile = path.join(logsDir(), `${id}.log`);
367
+ const resultFile = path.join(logsDir(), `${id}.result.json`);
368
+ const launchFile = path.join(logsDir(), `${id}.launch.json`);
200
369
  let pid;
201
370
  try {
202
371
  const out = fs.openSync(logFile, "a");
203
372
  fs.writeSync(out, `# you orchestrator worker ${id}\n# harness=${harness} project=${project ?? "-"} cwd=${cwd}\n# goal: ${goal}\n# started: ${new Date().toISOString()}\n\n`);
204
- // Workers launched by the resident daemon inherit launchd/systemd's bare
205
- // environment — no login PATH, no harness credentials. A remote-spawned
206
- // claude worker died with "401 Invalid authentication credentials" while
207
- // the same command succeeded under `zsh -lc` (proven live 2026-07-06). So
208
- // on POSIX we run the harness through the user's login shell.
209
- const useLoginShell = process.platform !== "win32" && !input.env;
210
- const shellQuote = (s) => `'${s.replace(/'/g, "'\\''")}'`;
211
- const commandLine = [bin, ...argv].map(shellQuote).join(" ");
212
- const child = useLoginShell
213
- ? child_process.spawn(process.env.SHELL || "/bin/zsh", ["-lc", commandLine], {
214
- cwd,
215
- detached: true,
216
- stdio: ["ignore", out, out],
217
- env: process.env,
218
- })
219
- : child_process.spawn(bin, argv, {
220
- cwd,
221
- detached: true,
222
- stdio: ["ignore", out, out],
223
- env: input.env ?? process.env,
224
- });
373
+ fs.writeFileSync(launchFile, `${JSON.stringify({ bin, argv, cwd, resultFile })}\n`, { mode: 0o600 });
374
+ // The trusted runner still spawns argv directly (never a shell) and durably checkpoints the
375
+ // real harness exit code so a restarted supervisor cannot mistake an unknown exit for success.
376
+ const child = child_process.spawn(process.execPath, ["-e", WORKER_RUNNER_SOURCE, launchFile], {
377
+ cwd,
378
+ detached: true,
379
+ stdio: ["ignore", out, out],
380
+ env: buildWorkerEnv(input.env ?? process.env),
381
+ });
225
382
  pid = child.pid;
226
383
  // A missing/unlaunchable binary surfaces ASYNCHRONOUSLY via 'error' (ENOENT), after spawn
227
384
  // returns. Without this handler Node throws it as an uncaught exception, and the registry
@@ -233,18 +390,36 @@ function spawnWorker(input) {
233
390
  catch {
234
391
  /* ignore */
235
392
  }
236
- const all = loadWorkers();
237
- const rec = all.find((w) => w.id === id);
238
- if (rec && rec.status === "running") {
239
- rec.status = "failed";
240
- rec.endedAt = new Date().toISOString();
241
- saveWorkers(all);
242
- }
393
+ mutateWorkers((all) => {
394
+ const rec = all.find((w) => w.id === id);
395
+ if (rec && rec.status === "running") {
396
+ rec.status = "failed";
397
+ rec.endedAt = new Date().toISOString();
398
+ }
399
+ });
400
+ });
401
+ child.on("close", (code, signal) => {
402
+ const endedAt = new Date().toISOString();
403
+ mutateWorkers((all) => {
404
+ const rec = all.find((w) => w.id === id);
405
+ if (!rec || rec.status !== "running")
406
+ return;
407
+ rec.exitCode = typeof code === "number" ? code : undefined;
408
+ rec.status = code === 0 ? "exited" : "failed";
409
+ rec.endedAt = endedAt;
410
+ try {
411
+ fs.appendFileSync(logFile, `\n# worker ${rec.status} code=${code ?? "-"} signal=${signal ?? "-"} at ${endedAt}\n`);
412
+ }
413
+ catch {
414
+ /* registry is authoritative */
415
+ }
416
+ });
243
417
  });
244
418
  child.unref();
245
419
  fs.closeSync(out);
246
420
  }
247
421
  catch (err) {
422
+ fs.rmSync(launchFile, { force: true });
248
423
  return {
249
424
  ok: false,
250
425
  error: `failed to launch ${bin}: ${err.message} (is the harness installed and on PATH?)`,
@@ -260,11 +435,13 @@ function spawnWorker(input) {
260
435
  status: pid ? "running" : "failed",
261
436
  startedAt: new Date().toISOString(),
262
437
  logFile,
438
+ resultFile,
263
439
  host,
264
440
  };
265
- const workers = loadWorkers();
266
- workers.push(worker);
267
- saveWorkers(workers);
441
+ mutateWorkers((workers) => {
442
+ if (!workers.some((existing) => existing.id === worker.id))
443
+ workers.push(worker);
444
+ });
268
445
  return { ok: true, worker };
269
446
  }
270
447
  function getWorker(id) {
@@ -276,8 +453,20 @@ function getWorkerOutput(id, lines = 40) {
276
453
  if (!worker)
277
454
  return { ok: false, error: `no worker with id ${id}` };
278
455
  try {
279
- const raw = fs.readFileSync(worker.logFile, "utf-8");
280
- const tail = raw.split(/\r?\n/).slice(-lines).join("\n");
456
+ const stat = fs.statSync(worker.logFile);
457
+ const maxRead = 256 * 1024;
458
+ const start = Math.max(0, stat.size - maxRead);
459
+ const length = Math.min(stat.size, maxRead);
460
+ const fd = fs.openSync(worker.logFile, "r");
461
+ const buffer = Buffer.alloc(length);
462
+ try {
463
+ fs.readSync(fd, buffer, 0, length, start);
464
+ }
465
+ finally {
466
+ fs.closeSync(fd);
467
+ }
468
+ const raw = buffer.toString("utf8");
469
+ const tail = raw.split(/\r?\n/).slice(-Math.max(1, Math.min(lines, 200))).join("\n").slice(-64 * 1024);
281
470
  return { ok: true, output: tail };
282
471
  }
283
472
  catch (err) {
@@ -302,9 +491,16 @@ function stopWorker(id) {
302
491
  process.kill(worker.pid, "SIGTERM");
303
492
  }
304
493
  }
494
+ const endedAt = new Date().toISOString();
305
495
  worker.status = "stopped";
306
- worker.endedAt = new Date().toISOString();
307
- saveWorkers(workers);
496
+ worker.endedAt = endedAt;
497
+ mutateWorkers((latest) => {
498
+ const current = latest.find((row) => row.id === id);
499
+ if (current?.status === "running") {
500
+ current.status = "stopped";
501
+ current.endedAt = endedAt;
502
+ }
503
+ });
308
504
  return { ok: true };
309
505
  }
310
506
  catch (err) {
@@ -326,16 +522,12 @@ function markReported(ids) {
326
522
  if (ids.length === 0)
327
523
  return;
328
524
  const set = new Set(ids);
329
- const workers = loadWorkers();
330
- let changed = false;
331
- for (const w of workers) {
332
- if (set.has(w.id) && !w.reported) {
333
- w.reported = true;
334
- changed = true;
525
+ mutateWorkers((workers) => {
526
+ for (const w of workers) {
527
+ if (set.has(w.id) && !w.reported)
528
+ w.reported = true;
335
529
  }
336
- }
337
- if (changed)
338
- saveWorkers(workers);
530
+ });
339
531
  }
340
532
  /**
341
533
  * Deliver human approve/deny decisions (harvested from the agent bus by the
@@ -351,53 +543,49 @@ function markReported(ids) {
351
543
  function applyApprovalDecisions(inputs) {
352
544
  if (inputs.length === 0)
353
545
  return [];
354
- const workers = loadWorkers();
355
- const results = [];
356
- let changed = false;
357
- for (const input of inputs) {
358
- const worker = workers.find((w) => w.id === input.workerId);
359
- if (!worker) {
360
- results.push({ workerId: input.workerId, messageId: input.messageId, delivered: false, reason: "no-worker" });
361
- continue;
362
- }
363
- const ledger = worker.approvalMessageIds ?? [];
364
- if (ledger.includes(input.messageId)) {
365
- results.push({ workerId: input.workerId, messageId: input.messageId, delivered: false, reason: "already-delivered" });
366
- continue;
367
- }
368
- const decidedIso = new Date(input.decidedAt ?? Date.now()).toISOString();
369
- worker.decision = input.decision;
370
- worker.decidedAt = decidedIso;
371
- worker.approvalMessageIds = [...ledger, input.messageId];
372
- changed = true;
373
- // Append a human-readable marker so a worker tailing its own log (or a
374
- // `you orchestrate logs <id>` reader) sees the decision immediately.
375
- try {
376
- const noteSuffix = input.note ? ` — ${input.note.replace(/\s+/g, " ").trim().slice(0, 300)}` : "";
377
- fs.appendFileSync(worker.logFile, `\n# approval ${input.decision} (msg ${input.messageId}) at ${decidedIso}${noteSuffix}\n`);
378
- }
379
- catch {
380
- /* log append is best-effort; the registry patch is the source of truth */
546
+ return mutateWorkers((workers) => {
547
+ const results = [];
548
+ for (const input of inputs) {
549
+ const worker = workers.find((w) => w.id === input.workerId);
550
+ if (!worker) {
551
+ results.push({ workerId: input.workerId, messageId: input.messageId, delivered: false, reason: "no-worker" });
552
+ continue;
553
+ }
554
+ const ledger = worker.approvalMessageIds ?? [];
555
+ if (ledger.includes(input.messageId)) {
556
+ results.push({ workerId: input.workerId, messageId: input.messageId, delivered: false, reason: "already-delivered" });
557
+ continue;
558
+ }
559
+ const decidedIso = new Date(input.decidedAt ?? Date.now()).toISOString();
560
+ worker.decision = input.decision;
561
+ worker.decidedAt = decidedIso;
562
+ worker.approvalMessageIds = [...ledger, input.messageId];
563
+ try {
564
+ const noteSuffix = input.note ? ` — ${input.note.replace(/\s+/g, " ").trim().slice(0, 300)}` : "";
565
+ fs.appendFileSync(worker.logFile, `\n# approval ${input.decision} (msg ${input.messageId}) at ${decidedIso}${noteSuffix}\n`);
566
+ }
567
+ catch {
568
+ /* registry is authoritative */
569
+ }
570
+ results.push({ workerId: input.workerId, messageId: input.messageId, delivered: true, reason: "ok" });
381
571
  }
382
- results.push({ workerId: input.workerId, messageId: input.messageId, delivered: true, reason: "ok" });
383
- }
384
- if (changed)
385
- saveWorkers(workers);
386
- return results;
572
+ return results;
573
+ });
387
574
  }
388
575
  /** Drop exited/stopped workers older than `maxAgeMs` from the registry (keeps running ones). */
389
576
  function pruneWorkers(maxAgeMs = 24 * 60 * 60 * 1000) {
390
577
  const now = Date.now();
391
- const workers = refreshWorkers();
392
- const kept = workers.filter((w) => {
393
- if (w.status === "running")
394
- return true;
395
- const ended = w.endedAt ? Date.parse(w.endedAt) : Date.parse(w.startedAt);
396
- return now - ended < maxAgeMs;
578
+ refreshWorkers();
579
+ return mutateWorkers((workers) => {
580
+ const before = workers.length;
581
+ const kept = workers.filter((w) => {
582
+ if (w.status === "running")
583
+ return true;
584
+ const ended = w.endedAt ? Date.parse(w.endedAt) : Date.parse(w.startedAt);
585
+ return now - ended < maxAgeMs;
586
+ });
587
+ workers.splice(0, workers.length, ...kept);
588
+ return before - kept.length;
397
589
  });
398
- const removed = workers.length - kept.length;
399
- if (removed > 0)
400
- saveWorkers(kept);
401
- return removed;
402
590
  }
403
591
  //# sourceMappingURL=supervisor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../../src/lib/orchestrator/supervisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../../src/lib/orchestrator/supervisor.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export interface BuildToolsOptions {
5
5
  host?: string;
6
6
  /** Default cwd for spawns when no project/dir is supplied. */
7
7
  cwd?: string;
8
+ /** Injectable durable journal location for tests/embedded hosts. */
9
+ runJournalDir?: string;
8
10
  }
9
11
  /** Build the orchestrator tool set (process supervision over worker harnesses). */
10
12
  export declare function buildOrchestratorTools(opts?: BuildToolsOptions): LoopTool[];
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/lib/orchestrator/tools.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAe,WAAW,EAAE,MAAM,QAAQ,CAAC;AA4B5D,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CA6B1F;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA+BD,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,iBAAsB,GAAG,QAAQ,EAAE,CAgM/E;AAqCD;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,QAAQ,EAAE,CAyG5C;AAWD,6FAA6F;AAC7F,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAYzC,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CASvD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,QAAQ,EAAE,CAgH3C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,WAAW,CA4C7C"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/lib/orchestrator/tools.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAe,WAAW,EAAE,MAAM,QAAQ,CAAC;AAsC5D,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CA6B1F;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA+BD,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,iBAAsB,GAAG,QAAQ,EAAE,CAmX/E;AAqCD;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,QAAQ,EAAE,CAyG5C;AAWD,6FAA6F;AAC7F,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAYzC,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CASvD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,QAAQ,EAAE,CA6J3C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,WAAW,CA4C7C"}