@codetreker/daynight 0.24.3 → 0.25.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 (50) hide show
  1. package/README.md +177 -27
  2. package/dist/commands/skill/skills/using-daynight/SKILL.md +6 -1
  3. package/dist/commands/skill/skills/using-daynight/references/autopilot-managed-task.md +205 -0
  4. package/dist/commands/skill/skills/using-daynight/references/handbook.md +6 -2
  5. package/dist/commands/skill/skills/using-daynight/references/task-content.md +3 -0
  6. package/dist/commands/worker/coordinator.js +78 -31
  7. package/dist/commands/worker/coordinator.js.map +1 -1
  8. package/dist/commands/worker/definition.js +6 -1
  9. package/dist/commands/worker/definition.js.map +1 -1
  10. package/dist/commands/worker/diagnostics.js +2 -1
  11. package/dist/commands/worker/diagnostics.js.map +1 -1
  12. package/dist/commands/worker/execution.d.ts +2 -0
  13. package/dist/commands/worker/execution.js +5 -5
  14. package/dist/commands/worker/execution.js.map +1 -1
  15. package/dist/commands/worker/herdr/agents.d.ts +6 -9
  16. package/dist/commands/worker/herdr/agents.js +78 -37
  17. package/dist/commands/worker/herdr/agents.js.map +1 -1
  18. package/dist/commands/worker/herdr/codex-install-safety.d.ts +2 -0
  19. package/dist/commands/worker/herdr/codex-install-safety.js +104 -0
  20. package/dist/commands/worker/herdr/codex-install-safety.js.map +1 -0
  21. package/dist/commands/worker/herdr/instance.d.ts +2 -0
  22. package/dist/commands/worker/herdr/instance.js +44 -3
  23. package/dist/commands/worker/herdr/instance.js.map +1 -1
  24. package/dist/commands/worker/herdr/preflight.d.ts +1 -0
  25. package/dist/commands/worker/herdr/preflight.js +60 -7
  26. package/dist/commands/worker/herdr/preflight.js.map +1 -1
  27. package/dist/commands/worker/herdr.d.ts +2 -1
  28. package/dist/commands/worker/herdr.js +1 -0
  29. package/dist/commands/worker/herdr.js.map +1 -1
  30. package/dist/commands/worker/index.d.ts +5 -0
  31. package/dist/commands/worker/index.js +5 -0
  32. package/dist/commands/worker/index.js.map +1 -1
  33. package/dist/commands/worker/migration-state.d.ts +40 -0
  34. package/dist/commands/worker/migration-state.js +197 -0
  35. package/dist/commands/worker/migration-state.js.map +1 -0
  36. package/dist/commands/worker/migration.d.ts +21 -0
  37. package/dist/commands/worker/migration.js +406 -0
  38. package/dist/commands/worker/migration.js.map +1 -0
  39. package/dist/commands/worker/prompts.js +3 -3
  40. package/dist/commands/worker/prompts.js.map +1 -1
  41. package/dist/commands/worker/resource-owner.d.ts +5 -0
  42. package/dist/commands/worker/resource-owner.js +29 -0
  43. package/dist/commands/worker/resource-owner.js.map +1 -0
  44. package/dist/commands/worker/runtime.js +3 -0
  45. package/dist/commands/worker/runtime.js.map +1 -1
  46. package/dist/commands/worker/types.d.ts +0 -1
  47. package/dist/commands/worker/worktrees.js +5 -3
  48. package/dist/commands/worker/worktrees.js.map +1 -1
  49. package/package.json +3 -2
  50. package/dist/commands/skill/skills/using-daynight/references/execute-task-in-managed.md +0 -92
@@ -1,8 +1,9 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { realpath } from "node:fs/promises";
3
3
  import path from "node:path";
4
+ import { OperationError } from "../../../api/operation.js";
4
5
  import { canonicalId } from "../../../api/parse.js";
5
- import { normalizeServerUrl } from "../../../config/server.js";
6
+ import { parseResourceOwner, resourceOwnerKey, sameResourceOwner } from "../resource-owner.js";
6
7
  import { buildHerdrAgentArguments, nativeAgentPermissionEnvironment, validateHerdrAgentArguments } from "./arguments.js";
7
8
  import { codexInputSurface } from "./codex-input.js";
8
9
  import { HerdrRpcError } from "./rpc.js";
@@ -29,27 +30,32 @@ const counter = (value, name) => { if (typeof value !== "number" || !Number.isSa
29
30
  throw new TypeError(`${name} must be a nonnegative safe integer.`); return value; };
30
31
  const expectedResult = (value, type) => { if (value.type !== type)
31
32
  throw new TypeError(`Expected Herdr ${type} result; received ${value.type}.`); return value; };
32
- const contextIdentity = (context) => {
33
- const identifier = (value, label) => { const result = canonicalId(value); if (result === null)
34
- throw new TypeError(`${label} must be a UUID.`); return result; };
35
- return { serverOrigin: normalizeServerUrl(context.serverOrigin), projectId: identifier(context.projectId, "Project ID"), taskId: identifier(context.taskId, "Task ID"), claimId: identifier(context.claimId, "Claim ID"), worktreeId: identifier(context.worktreeId, "Worktree ID") };
33
+ const labelSeparator = " | daynight:";
34
+ const unsafeTitleCharacter = /[\p{Cc}\u061c\u200e\u200f\u2028-\u202e\u2066-\u2069]/u;
35
+ const workspaceTitle = (title) => {
36
+ if (typeof title !== "string" || title.trim().length === 0)
37
+ throw new TypeError("The task title must be nonempty text.");
38
+ return Array.from(title, (character) => unsafeTitleCharacter.test(character) ? `\\u{${character.codePointAt(0).toString(16)}}` : character).join("");
36
39
  };
37
- export const herdrExecutionLabel = (context) => `daynight:${JSON.stringify(contextIdentity(context))}`;
38
- export const herdrExecutionAgentName = (context) => `dn_${createHash("sha256").update(herdrExecutionLabel(context)).digest("hex").slice(0, 24)}`;
40
+ export const herdrExecutionLabel = (context, title) => `${workspaceTitle(title)}${labelSeparator}${resourceOwnerKey(context)}`;
41
+ export const herdrExecutionAgentName = (context) => `dn_${createHash("sha256").update(resourceOwnerKey(context)).digest("hex").slice(0, 24)}`;
39
42
  export const parseHerdrExecutionLabel = (label) => {
40
- if (!label.startsWith("daynight:"))
43
+ const separator = label.lastIndexOf(labelSeparator);
44
+ if (separator === -1) {
45
+ if (label.startsWith("daynight:"))
46
+ throw new TypeError("The Herdr workspace uses legacy ownership. Stop the worker and run daynight worker migrate-workspaces before restarting.");
41
47
  return null;
42
- const data = object(JSON.parse(label.slice("daynight:".length)), "Herdr execution label");
43
- const fields = ["serverOrigin", "projectId", "taskId", "claimId", "worktreeId"];
44
- if (Object.keys(data).length !== fields.length || fields.some((field) => !Object.hasOwn(data, field)))
45
- throw new TypeError("The reserved Herdr execution label has invalid fields.");
46
- const owner = { serverOrigin: normalizeServerUrl(text(data.serverOrigin, "Label server origin")), projectId: text(data.projectId, "Label project ID"), taskId: text(data.taskId, "Label task ID"), claimId: text(data.claimId, "Label claim ID"), worktreeId: text(data.worktreeId, "Label worktree ID") };
47
- for (const value of [owner.projectId, owner.taskId, owner.claimId, owner.worktreeId])
48
- if (canonicalId(value) !== value)
49
- throw new TypeError("Reserved Herdr label identifiers must be canonical UUIDs.");
50
- if (`daynight:${JSON.stringify(owner)}` !== label)
51
- throw new TypeError("The reserved Herdr execution label must use its canonical identity encoding.");
52
- return owner;
48
+ }
49
+ const title = label.slice(0, separator);
50
+ if (title.trim().length === 0 || unsafeTitleCharacter.test(title))
51
+ throw new TypeError("The managed Herdr workspace title must be nonempty single-line display text.");
52
+ return parseResourceOwner(label.slice(separator + labelSeparator.length));
53
+ };
54
+ const matchesWorkspaceOwner = (workspace, owner) => {
55
+ if (typeof workspace.label !== "string")
56
+ throw new TypeError("The Herdr workspace label must be a string.");
57
+ const actual = parseHerdrExecutionLabel(workspace.label);
58
+ return actual !== null && sameResourceOwner(actual, owner);
53
59
  };
54
60
  export class HerdrAgentActionError extends Error {
55
61
  action;
@@ -166,20 +172,33 @@ export const createHerdrAgentManager = (options) => {
166
172
  if (binding.session !== session)
167
173
  throw new Error("The task binding belongs to another Herdr session.");
168
174
  const data = await snapshot(operation);
169
- const label = herdrExecutionLabel(context);
170
- const matching = data.workspaces.filter((workspace) => workspace.label === label);
175
+ const matching = data.workspaces.filter((workspace) => matchesWorkspaceOwner(workspace, context));
171
176
  if (matching.length !== 1 || matching[0].workspace_id !== binding.workspaceId)
172
177
  throw new Error("The original task workspace is missing, duplicated or has different ownership.");
173
178
  const panes = data.panes.filter((pane) => pane.pane_id === binding.paneId);
174
179
  if (panes.length === 0 && allowMissingPane)
175
- return { data, pane: null };
180
+ return { data, workspace: matching[0], pane: null };
176
181
  if (panes.length !== 1)
177
182
  throw new Error("The original task pane is missing or duplicated.");
178
183
  const pane = panes[0];
179
184
  if (pane.workspace_id !== binding.workspaceId || pane.terminal_id !== binding.terminalId)
180
185
  throw new Error("The task pane or terminal identity has changed.");
181
186
  await verifyCwd(pane.cwd, context);
182
- return { data, pane };
187
+ return { data, workspace: matching[0], pane };
188
+ };
189
+ const readNameOwnership = async (context, binding, operation, submission) => {
190
+ try {
191
+ return await readOwned(context, binding, operation);
192
+ }
193
+ catch (cause) {
194
+ const timedOut = cause instanceof OperationError && cause.kind === "deadline";
195
+ const snapshotFailure = cause instanceof HerdrRpcError && cause.method === "session.snapshot";
196
+ const deadlineSignal = operation.signal.reason instanceof OperationError && operation.signal.reason.kind === "deadline";
197
+ if ((timedOut || snapshotFailure) && (!operation.signal.aborted || deadlineSignal)) {
198
+ throw new HerdrAgentActionError("The workspace name ownership observation could not be completed.", "workspace.rename", submission, { cause });
199
+ }
200
+ throw cause;
201
+ }
183
202
  };
184
203
  const nativeReference = (value, expectedAgent) => {
185
204
  if (value === undefined)
@@ -284,7 +303,7 @@ export const createHerdrAgentManager = (options) => {
284
303
  listResources: async (operation) => {
285
304
  const data = await snapshot(operation);
286
305
  const result = [];
287
- const labels = new Set();
306
+ const identities = new Set();
288
307
  const workspaceIds = new Set();
289
308
  for (const workspace of data.workspaces) {
290
309
  if (typeof workspace.label !== "string")
@@ -294,9 +313,10 @@ export const createHerdrAgentManager = (options) => {
294
313
  if (owner === null)
295
314
  continue;
296
315
  const workspaceId = text(workspace.workspace_id, "Owned workspace ID");
297
- if (labels.has(label) || workspaceIds.has(workspaceId) || data.workspaces.filter((value) => value.workspace_id === workspaceId).length !== 1)
298
- throw new Error("Owned Herdr workspaces have duplicate labels or IDs.");
299
- labels.add(label);
316
+ const identity = resourceOwnerKey(owner);
317
+ if (identities.has(identity) || workspaceIds.has(workspaceId) || data.workspaces.filter((value) => value.workspace_id === workspaceId).length !== 1)
318
+ throw new Error("Owned Herdr workspaces have duplicate identities or IDs.");
319
+ identities.add(identity);
300
320
  workspaceIds.add(workspaceId);
301
321
  const resource = { owner, workspaceId, panes: [] };
302
322
  for (const pane of data.panes.filter((value) => value.workspace_id === workspaceId)) {
@@ -328,7 +348,7 @@ export const createHerdrAgentManager = (options) => {
328
348
  if (!["idle", "working", "blocked", "done", "unknown"].includes(status))
329
349
  throw new TypeError("The owned native status is invalid.");
330
350
  const name = optionalText(info.name, "Owned agent name");
331
- if (name !== null && name !== `dn_${createHash("sha256").update(label).digest("hex").slice(0, 24)}`)
351
+ if (name !== null && name !== herdrExecutionAgentName(owner))
332
352
  throw new Error("The owned Herdr pane has a foreign managed agent name.");
333
353
  resource.panes.push({ binding: { session, workspaceId, paneId, terminalId }, cwd, kind, status, launchPending: optionalBoolean(info.launch_pending, "Owned launch state"), interactiveReady: optionalBoolean(info.interactive_ready, "Owned readiness"), nativeSession: nativeAgent === null ? null : nativeReference(info.agent_session, nativeAgent), stateChangeSeq: agents[0] === undefined ? null : counter(info.state_change_seq, "Owned state-change sequence"), completionSeq: agents[0] === undefined || info.completion_seq === undefined ? null : counter(info.completion_seq, "Owned completion sequence") });
334
354
  }
@@ -342,15 +362,15 @@ export const createHerdrAgentManager = (options) => {
342
362
  }
343
363
  return result;
344
364
  },
345
- prepareWorkspace: async (context, operation) => {
365
+ prepareWorkspace: async (context, title, operation) => {
346
366
  let createPossible = false;
347
367
  try {
348
- const label = herdrExecutionLabel(context);
368
+ const label = herdrExecutionLabel(context, title);
349
369
  const expectedCwd = path.normalize(await realpath(context.cwd));
350
370
  const data = await snapshot(operation);
351
- const matching = data.workspaces.filter((workspace) => workspace.label === label);
371
+ const matching = data.workspaces.filter((workspace) => matchesWorkspaceOwner(workspace, context));
352
372
  if (matching.length > 1)
353
- throw new Error("The task workspace label is duplicated.");
373
+ throw new Error("The task workspace identity is duplicated.");
354
374
  if (matching.length === 1) {
355
375
  const workspaceId = text(matching[0].workspace_id, "Task workspace ID");
356
376
  const panes = data.panes.filter((pane) => pane.workspace_id === workspaceId);
@@ -379,6 +399,27 @@ export const createHerdrAgentManager = (options) => {
379
399
  throw new HerdrAgentActionError(cause instanceof Error ? cause.message : "The task workspace could not be prepared.", "workspace.create", createPossible ? "unknown" : "not-submitted", { cause });
380
400
  }
381
401
  },
402
+ syncWorkspaceName: (context, binding, title, operation) => serialized(binding.workspaceId, operation, async () => {
403
+ const label = herdrExecutionLabel(context, title);
404
+ const before = await readNameOwnership(context, binding, operation, "not-submitted");
405
+ if (before.workspace.label === label)
406
+ return;
407
+ const renamed = await mutation("workspace.rename", { workspace_id: binding.workspaceId, label }, "workspace_info", operation);
408
+ let workspace;
409
+ try {
410
+ workspace = object(renamed.workspace, "Renamed workspace");
411
+ text(workspace.workspace_id, "Renamed workspace ID");
412
+ text(workspace.label, "Renamed workspace label");
413
+ }
414
+ catch (cause) {
415
+ throw new HerdrAgentActionError("The workspace rename receipt could not be decoded.", "workspace.rename", "unknown", { cause });
416
+ }
417
+ if (workspace.workspace_id !== binding.workspaceId || !matchesWorkspaceOwner(workspace, context))
418
+ throw new Error("The workspace name receipt has different resource ownership.");
419
+ const after = await readNameOwnership(context, binding, operation, "unknown");
420
+ if (workspace.label !== label || after.workspace.label !== label)
421
+ throw new HerdrAgentActionError("The requested workspace name was not confirmed by the current snapshot.", "workspace.rename", "unknown");
422
+ }),
382
423
  observe: observation,
383
424
  start: (context, binding, input, operation) => serialized(binding.workspaceId, operation, async () => {
384
425
  if (input.configuration.agent !== context.agent)
@@ -438,15 +479,15 @@ export const createHerdrAgentManager = (options) => {
438
479
  if (binding.session !== session)
439
480
  throw new Error("The task binding belongs to another Herdr session.");
440
481
  const before = await snapshot(operation);
441
- const label = herdrExecutionLabel(context);
442
- const key = JSON.stringify([binding.session, binding.workspaceId, label]);
443
- const matching = before.workspaces.filter((workspace) => workspace.workspace_id === binding.workspaceId || workspace.label === label);
482
+ const identity = resourceOwnerKey(context);
483
+ const key = JSON.stringify([binding.session, binding.workspaceId, identity]);
484
+ const matching = before.workspaces.filter((workspace) => workspace.workspace_id === binding.workspaceId || matchesWorkspaceOwner(workspace, context));
444
485
  if (matching.length === 0) {
445
486
  if ([...before.panes, ...before.agents].some((resource) => resource.workspace_id === binding.workspaceId || resource.pane_id === binding.paneId || resource.terminal_id === binding.terminalId))
446
487
  throw new Error("The missing task workspace still has associated resources.");
447
488
  return finishStop(key, operation);
448
489
  }
449
- if (matching.length !== 1 || matching[0].workspace_id !== binding.workspaceId || matching[0].label !== label)
490
+ if (matching.length !== 1 || matching[0].workspace_id !== binding.workspaceId || !matchesWorkspaceOwner(matching[0], context))
450
491
  throw new Error("The task workspace identity changed before stopping.");
451
492
  const currentPanes = before.panes.filter((pane) => pane.workspace_id === binding.workspaceId);
452
493
  // Closing removes discovery evidence before all processes necessarily exit.
@@ -472,7 +513,7 @@ export const createHerdrAgentManager = (options) => {
472
513
  }
473
514
  await mutation("workspace.close", { workspace_id: binding.workspaceId, close_group: false }, "ok", operation);
474
515
  const after = await snapshot(operation);
475
- if (after.workspaces.some((workspace) => workspace.workspace_id === binding.workspaceId || workspace.label === label) || [...after.panes, ...after.agents].some((resource) => resource.workspace_id === binding.workspaceId))
516
+ if (after.workspaces.some((workspace) => workspace.workspace_id === binding.workspaceId || matchesWorkspaceOwner(workspace, context)) || [...after.panes, ...after.agents].some((resource) => resource.workspace_id === binding.workspaceId))
476
517
  throw new HerdrAgentActionError("The task workspace still exists after closure.", "workspace.close", "unknown");
477
518
  await finishStop(key, operation);
478
519
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../../src/commands/worker/herdr/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../../src/commands/worker/herdr/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const projectCodexInstallConfiguration: (content: string) => string;
2
+ export declare const assertCodexInstallConfigurationSafe: (source: string) => void;
@@ -0,0 +1,104 @@
1
+ import { isDeepStrictEqual } from "node:util";
2
+ import { parse, TomlDate } from "smol-toml";
3
+ const trimStart = (line) => line.replace(/^\p{White_Space}+/u, "");
4
+ const trim = (line) => trimStart(line).replace(/\p{White_Space}+$/u, "");
5
+ const linesOf = (content) => {
6
+ if (content === "")
7
+ return [];
8
+ const lines = content.split("\n");
9
+ const terminated = content.endsWith("\n");
10
+ if (terminated)
11
+ lines.pop();
12
+ return lines.map((line, index) => (index < lines.length - 1 || terminated) && line.endsWith("\r") ? line.slice(0, -1) : line);
13
+ };
14
+ const headerOf = (line) => {
15
+ const value = trimStart(line);
16
+ if (!value.startsWith("["))
17
+ return undefined;
18
+ const size = value.startsWith("[[") ? 2 : 1;
19
+ const end = value.indexOf(size === 2 ? "]]" : "]");
20
+ if (end === -1)
21
+ return undefined;
22
+ const rest = trimStart(value.slice(end + size));
23
+ if (rest !== "" && !rest.startsWith("#"))
24
+ return undefined;
25
+ return value.slice(0, end + size);
26
+ };
27
+ const isKey = (line, key) => {
28
+ const value = trim(line);
29
+ return value.startsWith(key) && trimStart(value.slice(key.length)).startsWith("=");
30
+ };
31
+ // Herdr 0.9.5 edits lines without TOML awareness, including lines inside multiline strings.
32
+ // Project its exact rewrite before authorizing installation; never write the projection ourselves.
33
+ // https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/integration/config_edit.rs#L801-L853
34
+ // https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/integration/config_edit.rs#L949-L984
35
+ export const projectCodexInstallConfiguration = (content) => {
36
+ const lines = linesOf(content);
37
+ const trailingNewline = content.endsWith("\n");
38
+ let inFeatures = false;
39
+ let headerIndex;
40
+ let hooksIndex;
41
+ const deprecatedIndexes = [];
42
+ lines.forEach((line, index) => {
43
+ const header = headerOf(line);
44
+ if (header !== undefined) {
45
+ inFeatures = header === "[features]";
46
+ if (inFeatures && headerIndex === undefined)
47
+ headerIndex = index;
48
+ return;
49
+ }
50
+ if (!inFeatures)
51
+ return;
52
+ if (isKey(line, "codex_hooks"))
53
+ deprecatedIndexes.push(index);
54
+ else if (isKey(line, "hooks"))
55
+ hooksIndex = index;
56
+ });
57
+ if (hooksIndex !== undefined)
58
+ lines[hooksIndex] = "hooks = true";
59
+ for (const index of deprecatedIndexes.reverse())
60
+ lines.splice(index, 1);
61
+ if (hooksIndex === undefined) {
62
+ if (headerIndex === undefined) {
63
+ const result = content.replace(/\n+$/, "");
64
+ return `${result}${result === "" ? "" : "\n\n"}[features]\nhooks = true\n`;
65
+ }
66
+ lines.splice(headerIndex + 1, 0, "hooks = true");
67
+ }
68
+ const result = lines.join("\n");
69
+ return result + (trailingNewline || result === "" ? "\n" : "");
70
+ };
71
+ const supportedValues = (value, depth = 0) => {
72
+ // TomlDate truncates fractional seconds to milliseconds; equality would miss changed native values.
73
+ if (depth > 100 || value instanceof TomlDate)
74
+ throw new Error("Unsupported TOML semantic value.");
75
+ if (typeof value === "object" && value !== null) {
76
+ for (const child of Object.values(value))
77
+ supportedValues(child, depth + 1);
78
+ }
79
+ };
80
+ export const assertCodexInstallConfigurationSafe = (source) => {
81
+ try {
82
+ const options = { integersAsBigInt: true, unsafeKeyBehaviour: "throw", maxDepth: 100, useLegacyDate: true };
83
+ const original = parse(source, options);
84
+ const candidate = parse(projectCodexInstallConfiguration(source), options);
85
+ supportedValues(original);
86
+ supportedValues(candidate);
87
+ if (!Object.hasOwn(original, "features"))
88
+ original.features = parse("[features]\n", options).features;
89
+ const value = original.features;
90
+ if (typeof value !== "object" || value === null || Array.isArray(value))
91
+ throw new Error("Invalid features table.");
92
+ const features = value;
93
+ // The deprecated root key belongs to the official integration, which removes it during installation.
94
+ delete features.codex_hooks;
95
+ features.hooks = true;
96
+ if (!isDeepStrictEqual(original, candidate))
97
+ throw new Error("Unsafe TOML rewrite.");
98
+ }
99
+ catch {
100
+ // Parser diagnostics may contain native secrets, including excerpts in their cause chain.
101
+ throw new Error("Cannot safely install the Codex Herdr integration: config.toml is invalid, contains unsupported semantic values, or the official rewrite would change settings beyond features.hooks and the deprecated features.codex_hooks key. Inspect the native configuration before retrying.");
102
+ }
103
+ };
104
+ //# sourceMappingURL=codex-install-safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-install-safety.js","sourceRoot":"","sources":["../../../../src/commands/worker/herdr/codex-install-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACnF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACzF,MAAM,OAAO,GAAG,CAAC,OAAe,EAAY,EAAE;IAC5C,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,UAAU;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChI,CAAC,CAAC;AACF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAsB,EAAE;IACpD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3D,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AACF,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,GAAW,EAAW,EAAE;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF,4FAA4F;AAC5F,mGAAmG;AACnG,2HAA2H;AAC3H,2HAA2H;AAC3H,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,OAAe,EAAU,EAAE;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,WAA+B,CAAC;IACpC,IAAI,UAA8B,CAAC;IACnC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,UAAU,GAAG,MAAM,KAAK,YAAY,CAAC;YACrC,IAAI,UAAU,IAAI,WAAW,KAAK,SAAS;gBAAE,WAAW,GAAG,KAAK,CAAC;YACjE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC;YAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzD,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,UAAU,GAAG,KAAK,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,IAAI,UAAU,KAAK,SAAS;QAAE,KAAK,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;IACjE,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,OAAO,EAAE;QAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,GAAG,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,4BAA4B,CAAC;QAC7E,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,MAAM,GAAG,CAAC,eAAe,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC,EAAQ,EAAE;IAC1D,oGAAoG;IACpG,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,YAAY,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAClG,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,MAAc,EAAQ,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAW,CAAC;QACrH,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,gCAAgC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1B,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;YAAE,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,QAAS,CAAC;QACvG,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACpH,MAAM,QAAQ,GAAG,KAAgC,CAAC;QAClD,qGAAqG;QACrG,OAAO,QAAQ,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,0FAA0F;QAC1F,MAAM,IAAI,KAAK,CAAC,qRAAqR,CAAC,CAAC;IACzS,CAAC;AACH,CAAC,CAAC"}
@@ -33,6 +33,7 @@ export type HerdrInstanceStopped = {
33
33
  };
34
34
  export declare const resolveHerdrInstancePaths: (worker: Pick<WorkerPaths, "herdrDirectory" | "logsDirectory">, platform?: NodeJS.Platform) => HerdrInstancePaths;
35
35
  export declare const createHerdrEnvironment: (paths: HerdrInstancePaths, inherited: NodeJS.ProcessEnv) => NodeJS.ProcessEnv;
36
+ export declare const assertCodexIntegrationHome: (environment: NodeJS.ProcessEnv, root: string, platform?: NodeJS.Platform) => void;
36
37
  export declare const createHerdrInstance: (options: {
37
38
  paths: Pick<WorkerPaths, "herdrDirectory" | "logsDirectory">;
38
39
  executable?: string;
@@ -51,6 +52,7 @@ export declare const createHerdrInstance: (options: {
51
52
  unsetEnvironment: string[];
52
53
  };
53
54
  ensure: (operation: Operation) => Promise<HerdrInstanceReady>;
55
+ assertIntegrationEnvironment: (root: string) => void;
54
56
  connect: (operation: Operation) => Promise<HerdrInstanceReady>;
55
57
  stop: (operation: Operation) => Promise<HerdrInstanceStopped>;
56
58
  };
@@ -154,12 +154,47 @@ const compatible = (pong) => {
154
154
  }
155
155
  return { version: pong.version, protocol: 22 };
156
156
  };
157
- const observeChild = (child) => {
158
- const owned = { child, closed: false, code: null, signal: null, error: null };
157
+ const observeChild = (child, environment) => {
158
+ const owned = { child, environment, closed: false, code: null, signal: null, error: null };
159
159
  child.once("error", (error) => { owned.error = error; });
160
160
  child.once("close", (code, signal) => { owned.closed = true; owned.code = code; owned.signal = signal; });
161
161
  return owned;
162
162
  };
163
+ const liveOwnedChild = (owned) => owned !== null && !owned.closed && owned.error === null &&
164
+ owned.child.pid !== undefined && owned.child.exitCode === null && owned.child.signalCode === null;
165
+ export const assertCodexIntegrationHome = (environment, root, platform = process.platform) => {
166
+ const paths = platform === "win32" ? path.win32 : path.posix;
167
+ const value = (name) => {
168
+ if (platform !== "win32")
169
+ return environment[name];
170
+ const key = Object.keys(environment).sort().find((key) => key.toUpperCase() === name);
171
+ return key === undefined ? undefined : environment[key];
172
+ };
173
+ const parentTraversal = (directory) => directory.split(platform === "win32" ? /[\\/]/ : /\//).includes("..");
174
+ let directory = value("CODEX_HOME");
175
+ if (directory === undefined || directory === "") {
176
+ let home = value("HOME");
177
+ if ((home === undefined || home === "") && platform === "win32") {
178
+ home = value("USERPROFILE");
179
+ if (home === undefined || home === "") {
180
+ const drive = value("HOMEDRIVE");
181
+ const suffix = value("HOMEPATH");
182
+ if (drive !== undefined && /^[a-z]:[\\/]?$/i.test(drive) && suffix !== undefined && /^[\\/](?![\\/])/.test(suffix) && !parentTraversal(suffix)) {
183
+ home = paths.resolve(drive, suffix);
184
+ }
185
+ }
186
+ }
187
+ if (home !== undefined && home !== "" && paths.isAbsolute(home) && !parentTraversal(home))
188
+ directory = paths.join(home, ".codex");
189
+ }
190
+ // Herdr uses its daemon environment, including HOME before USERPROFILE, rather than Node's OS home lookup.
191
+ // https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/integration/env.rs#L91-L104
192
+ // https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/integration/env.rs#L223-L244
193
+ // Resolving '..' lexically can inspect a different directory when an earlier component is a symlink.
194
+ if (directory === undefined || !paths.isAbsolute(directory) || /[\0\r\n]/.test(directory) || parentTraversal(directory) || paths.normalize(directory) !== paths.normalize(root)) {
195
+ throw new Error("Cannot safely install the Codex integration: the daemon's native configuration directory does not match the inspected directory. Set an absolute CODEX_HOME and restart the worker with a newly started private daemon.");
196
+ }
197
+ };
163
198
  const killOwnedChild = (owned) => {
164
199
  if (owned.closed || owned.child.pid === undefined)
165
200
  return;
@@ -227,7 +262,8 @@ export const createHerdrInstance = (options) => {
227
262
  let stderr;
228
263
  try {
229
264
  stderr = openSync(paths.stderrLogFile, "a", 0o600);
230
- owned = observeChild(start(executable, ["--session", session, "server"], { env: environment, detached: true, windowsHide: true, stdio: ["ignore", stdout, stderr] }));
265
+ const spawnEnvironment = Object.freeze({ ...environment });
266
+ owned = observeChild(start(executable, ["--session", session, "server"], { env: spawnEnvironment, detached: true, windowsHide: true, stdio: ["ignore", stdout, stderr] }), spawnEnvironment);
231
267
  startedHere = owned;
232
268
  }
233
269
  finally {
@@ -278,6 +314,11 @@ export const createHerdrInstance = (options) => {
278
314
  paths, environment, rpc,
279
315
  attachment: { executable, arguments: ["--session", session], environment: attachmentEnvironment, unsetEnvironment: [...inheritedIdentity] },
280
316
  ensure,
317
+ assertIntegrationEnvironment: (root) => {
318
+ if (!liveOwnedChild(owned))
319
+ throw new Error("Cannot safely install the Codex integration: the private daemon is not a live process started by this worker. Stop the worker and its private daemon, then restart the worker before repairing the integration.");
320
+ assertCodexIntegrationHome(owned.environment, root);
321
+ },
281
322
  connect: async (operation) => {
282
323
  const scope = bounded(operation, 30_000);
283
324
  try {