@claudexor/cli 3.3.16 → 3.4.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 (83) hide show
  1. package/dist/acp-surface-runner.d.ts +3 -2
  2. package/dist/acp-surface-runner.d.ts.map +1 -1
  3. package/dist/acp-surface-runner.js +20 -17
  4. package/dist/acp-surface-runner.js.map +1 -1
  5. package/dist/claudexord-entry.d.ts +7 -0
  6. package/dist/claudexord-entry.d.ts.map +1 -1
  7. package/dist/claudexord-entry.js +14 -0
  8. package/dist/claudexord-entry.js.map +1 -1
  9. package/dist/claudexord.d.ts +0 -10
  10. package/dist/claudexord.d.ts.map +1 -1
  11. package/dist/claudexord.js +95 -100
  12. package/dist/claudexord.js.map +1 -1
  13. package/dist/cli.js +10 -12
  14. package/dist/cli.js.map +1 -1
  15. package/dist/control-services.d.ts +4 -1
  16. package/dist/control-services.d.ts.map +1 -1
  17. package/dist/control-services.js +22 -21
  18. package/dist/control-services.js.map +1 -1
  19. package/dist/daemon-admission-runtime.d.ts +63 -0
  20. package/dist/daemon-admission-runtime.d.ts.map +1 -0
  21. package/dist/daemon-admission-runtime.js +180 -0
  22. package/dist/daemon-admission-runtime.js.map +1 -0
  23. package/dist/daemon-launch.d.ts +53 -0
  24. package/dist/daemon-launch.d.ts.map +1 -0
  25. package/dist/daemon-launch.js +211 -0
  26. package/dist/daemon-launch.js.map +1 -0
  27. package/dist/daemon-lifecycle.d.ts +14 -2
  28. package/dist/daemon-lifecycle.d.ts.map +1 -1
  29. package/dist/daemon-lifecycle.js +53 -10
  30. package/dist/daemon-lifecycle.js.map +1 -1
  31. package/dist/daemon-run.d.ts +6 -1
  32. package/dist/daemon-run.d.ts.map +1 -1
  33. package/dist/daemon-run.js +70 -19
  34. package/dist/daemon-run.js.map +1 -1
  35. package/dist/daemon-start-report.d.ts +8 -0
  36. package/dist/daemon-start-report.d.ts.map +1 -0
  37. package/dist/daemon-start-report.js +24 -0
  38. package/dist/daemon-start-report.js.map +1 -0
  39. package/dist/daemon-startup.d.ts +90 -0
  40. package/dist/daemon-startup.d.ts.map +1 -0
  41. package/dist/daemon-startup.js +156 -0
  42. package/dist/daemon-startup.js.map +1 -0
  43. package/dist/engine-skew.d.ts +4 -0
  44. package/dist/engine-skew.d.ts.map +1 -1
  45. package/dist/engine-skew.js +10 -3
  46. package/dist/engine-skew.js.map +1 -1
  47. package/dist/mcp-run-projections.d.ts +78 -1
  48. package/dist/mcp-run-projections.d.ts.map +1 -1
  49. package/dist/mcp-run-projections.js +57 -3
  50. package/dist/mcp-run-projections.js.map +1 -1
  51. package/dist/mcp-runner.d.ts.map +1 -1
  52. package/dist/mcp-runner.js +41 -37
  53. package/dist/mcp-runner.js.map +1 -1
  54. package/dist/ops-commands.d.ts +9 -0
  55. package/dist/ops-commands.d.ts.map +1 -1
  56. package/dist/ops-commands.js +61 -66
  57. package/dist/ops-commands.js.map +1 -1
  58. package/dist/ops-harness-selection.d.ts +6 -0
  59. package/dist/ops-harness-selection.d.ts.map +1 -0
  60. package/dist/ops-harness-selection.js +29 -0
  61. package/dist/ops-harness-selection.js.map +1 -0
  62. package/dist/orphan-sweeper.js +13 -3
  63. package/dist/orphan-sweeper.js.map +1 -1
  64. package/dist/remote-command.d.ts +10 -1
  65. package/dist/remote-command.d.ts.map +1 -1
  66. package/dist/remote-command.js +34 -10
  67. package/dist/remote-command.js.map +1 -1
  68. package/dist/runtime-replacement-stop.d.ts +13 -2
  69. package/dist/runtime-replacement-stop.d.ts.map +1 -1
  70. package/dist/runtime-replacement-stop.js +46 -11
  71. package/dist/runtime-replacement-stop.js.map +1 -1
  72. package/dist/setup-lifecycle-binding.d.ts +7 -1
  73. package/dist/setup-lifecycle-binding.d.ts.map +1 -1
  74. package/dist/setup-lifecycle-binding.js +27 -17
  75. package/dist/setup-lifecycle-binding.js.map +1 -1
  76. package/dist/startup-diagnostics.d.ts +61 -0
  77. package/dist/startup-diagnostics.d.ts.map +1 -0
  78. package/dist/startup-diagnostics.js +416 -0
  79. package/dist/startup-diagnostics.js.map +1 -0
  80. package/dist/thread-turn-services.d.ts +1 -1
  81. package/dist/thread-turn-services.d.ts.map +1 -1
  82. package/dist/thread-turn-services.js.map +1 -1
  83. package/package.json +23 -23
@@ -1,4 +1,4 @@
1
- import { type ControlPrimaryOutput, type ModeKind, type RunFailure, type RunOutcomeFacts } from "@claudexor/schema";
1
+ import { type ControlPrimaryOutput, type ModeKind, type RunFacts, type RunFailure, type RunOutcomeFacts } from "@claudexor/schema";
2
2
  import { type ControlApiAddress } from "./live.js";
3
3
  import { type RunDetailProblem } from "./run-detail-projections.js";
4
4
  export declare const ACP_MAX_REPLAY_TURNS = 50;
@@ -15,7 +15,7 @@ export declare function selectReplayTurns<T>(rawTurns: readonly T[]): {
15
15
  * problem (e.g. 500 run_facts_invalid) rides the result as `detailProblem`
16
16
  * so the client still receives the terminal answer plus the typed reason its
17
17
  * detail projections are absent. Exported for test. */
18
- export declare function projectTerminalTurnDetail(addr: ControlApiAddress, runId: string): Promise<{
18
+ export declare function projectTerminalTurnDetail(addr: ControlApiAddress, runId: string, lifecycle: RunOutcomeFacts["lifecycle"]): Promise<{
19
19
  applyEligibility: unknown;
20
20
  planReadiness: unknown;
21
21
  planQuestions: unknown[];
@@ -23,6 +23,7 @@ export declare function projectTerminalTurnDetail(addr: ControlApiAddress, runId
23
23
  primaryOutput: ControlPrimaryOutput | null;
24
24
  outcomeFacts: RunOutcomeFacts | null;
25
25
  outcomeBanner: string | null;
26
+ runFacts: RunFacts | null;
26
27
  detailProblem?: RunDetailProblem;
27
28
  }>;
28
29
  type AcpTerminalRecord = {
@@ -1 +1 @@
1
- {"version":3,"file":"acp-surface-runner.d.ts","sourceRoot":"","sources":["../src/acp-surface-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acp-surface-runner.d.ts","sourceRoot":"","sources":["../src/acp-surface-runner.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { controlApiFetch } from "./live.js";
7
7
  import { primaryOutputForCli } from "./primary-output.js";
8
8
  import { describeRunDetailProblem, presentRunPrimaryOutput, projectApplyEligibility, projectOutcomeBanner, projectRunPrimaryOutput, projectRunFailure, } from "./run-detail-projections.js";
9
9
  import { projectRunOutcomeFacts } from "./daemon-outcome.js";
10
+ import { projectRunFacts } from "./run-facts-projection.js";
10
11
  // Daemon job state IS the run lifecycle (D8): terminal set = the ONE
11
12
  // projection-owned TERMINAL_LIFECYCLES, never a local re-derivation.
12
13
  const TERMINALS = TERMINAL_LIFECYCLES;
@@ -30,7 +31,7 @@ export function selectReplayTurns(rawTurns) {
30
31
  * problem (e.g. 500 run_facts_invalid) rides the result as `detailProblem`
31
32
  * so the client still receives the terminal answer plus the typed reason its
32
33
  * detail projections are absent. Exported for test. */
33
- export async function projectTerminalTurnDetail(addr, runId) {
34
+ export async function projectTerminalTurnDetail(addr, runId, lifecycle) {
34
35
  const empty = {
35
36
  applyEligibility: null,
36
37
  planReadiness: null,
@@ -39,29 +40,31 @@ export async function projectTerminalTurnDetail(addr, runId) {
39
40
  primaryOutput: null,
40
41
  outcomeFacts: null,
41
42
  outcomeBanner: null,
43
+ runFacts: null,
42
44
  };
43
45
  if (!runId)
44
46
  return empty;
45
- let detail = null;
46
47
  try {
47
- detail = await fetchRunDetail(addr, runId);
48
+ const detail = await fetchRunDetail(addr, runId);
49
+ const runFacts = projectRunFacts(detail, { runId, lifecycle });
50
+ return {
51
+ applyEligibility: projectApplyEligibility(detail),
52
+ planReadiness: detail?.["planReadiness"] && typeof detail["planReadiness"] === "object"
53
+ ? detail["planReadiness"]
54
+ : null,
55
+ planQuestions: Array.isArray(detail?.["planQuestions"])
56
+ ? detail["planQuestions"]
57
+ : [],
58
+ failure: projectRunFailure(detail),
59
+ primaryOutput: projectRunPrimaryOutput(detail),
60
+ outcomeFacts: projectRunOutcomeFacts(detail),
61
+ outcomeBanner: projectOutcomeBanner(detail),
62
+ runFacts,
63
+ };
48
64
  }
49
65
  catch (error) {
50
66
  return { ...empty, detailProblem: describeRunDetailProblem(error) };
51
67
  }
52
- return {
53
- applyEligibility: projectApplyEligibility(detail),
54
- planReadiness: detail?.["planReadiness"] && typeof detail["planReadiness"] === "object"
55
- ? detail["planReadiness"]
56
- : null,
57
- planQuestions: Array.isArray(detail?.["planQuestions"])
58
- ? detail["planQuestions"]
59
- : [],
60
- failure: projectRunFailure(detail),
61
- primaryOutput: projectRunPrimaryOutput(detail),
62
- outcomeFacts: projectRunOutcomeFacts(detail),
63
- outcomeBanner: projectOutcomeBanner(detail),
64
- };
65
68
  }
66
69
  /** Effective mode persisted on the daemon job after the thread-turn funnel. */
67
70
  export function acpTerminalRecordMode(record) {
@@ -278,7 +281,7 @@ export async function acpSessionQuery(p, hooks, bridges) {
278
281
  await interactions({ runId });
279
282
  }
280
283
  if (TERMINALS.has(record.state)) {
281
- const detail = await projectTerminalTurnDetail(addr, runId);
284
+ const detail = await projectTerminalTurnDetail(addr, runId, record.state);
282
285
  const summary = acpTerminalSummary({ runId, runDir, record, detail });
283
286
  const { primaryOutput: _primaryOutput, ...terminalProjection } = detail;
284
287
  // Plan lifecycle (D17): a plan turn that ends needs_answers carries its
@@ -1 +1 @@
1
- {"version":3,"file":"acp-surface-runner.js","sourceRoot":"","sources":["../src/acp-surface-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acp-surface-runner.js","sourceRoot":"","sources":["../src/acp-surface-runner.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,13 @@
3
3
  * Kept outside claudexord.ts so the daemon owner remains below its readability
4
4
  * ratchet and the entry decision can be tested without daemon initialization.
5
5
  */
6
+ /** Handle `claudexord --probe`: print the engine build identity as ONE JSON line
7
+ * ({version, buildSha}) and exit WITHOUT any durable startup — no writer lease,
8
+ * no socket bind, no journal open, no runtime root. This is the pre-swap
9
+ * handshake the macOS installer's RuntimeInstallCoordinator.probeVersion runs
10
+ * against a freshly-unpacked closure with the app-bundled Node (D-2). Returns
11
+ * true when the probe handled the invocation. */
12
+ export declare function runProbeIfRequested(argv: readonly string[]): boolean;
6
13
  export declare function isBeltServeInvocation(argv: readonly string[]): boolean;
7
14
  export declare function runBeltServeIfRequested(argv: readonly string[]): Promise<boolean>;
8
15
  export declare function dispatchClaudexordEntry(daemonMain: () => Promise<void>, argv?: readonly string[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"claudexord-entry.d.ts","sourceRoot":"","sources":["../src/claudexord-entry.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAEtE;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAKvF;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC/B,IAAI,GAAE,SAAS,MAAM,EAA0B,GAC9C,IAAI,CAWN;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,IAAI,EACjB,IAAI,GAAE,SAAS,MAAM,EAAiB,GACrC,IAAI,CAWN"}
1
+ {"version":3,"file":"claudexord-entry.d.ts","sourceRoot":"","sources":["../src/claudexord-entry.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH;;;;;iDAKiD;AACjD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAKpE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAEtE;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAKvF;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC/B,IAAI,GAAE,SAAS,MAAM,EAA0B,GAC9C,IAAI,CAWN;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,IAAI,EACjB,IAAI,GAAE,SAAS,MAAM,EAAiB,GACrC,IAAI,CAWN"}
@@ -1,11 +1,25 @@
1
1
  import { realpathSync } from "node:fs";
2
2
  import { resolve } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
+ import { engineBuildIdentity } from "@claudexor/util";
4
5
  /**
5
6
  * Side-effect-free dispatch for the daemon executable's alternate belt role.
6
7
  * Kept outside claudexord.ts so the daemon owner remains below its readability
7
8
  * ratchet and the entry decision can be tested without daemon initialization.
8
9
  */
10
+ /** Handle `claudexord --probe`: print the engine build identity as ONE JSON line
11
+ * ({version, buildSha}) and exit WITHOUT any durable startup — no writer lease,
12
+ * no socket bind, no journal open, no runtime root. This is the pre-swap
13
+ * handshake the macOS installer's RuntimeInstallCoordinator.probeVersion runs
14
+ * against a freshly-unpacked closure with the app-bundled Node (D-2). Returns
15
+ * true when the probe handled the invocation. */
16
+ export function runProbeIfRequested(argv) {
17
+ if (!argv.includes("--probe"))
18
+ return false;
19
+ const id = engineBuildIdentity();
20
+ process.stdout.write(`${JSON.stringify({ version: id.version, buildSha: id.sha })}\n`);
21
+ return true;
22
+ }
9
23
  export function isBeltServeInvocation(argv) {
10
24
  return argv.length === 2 && argv[0] === "mcp" && argv[1] === "serve-belt";
11
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claudexord-entry.js","sourceRoot":"","sources":["../src/claudexord-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAuB;IAC3D,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAuB;IACnE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC7D,OAAO,CAAC,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,UAA+B,EAC/B,IAAI,GAAsB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/C,uBAAuB,CAAC,IAAI,CAAC;SAC1B,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,IAAI,CAAC,OAAO;YAAE,MAAM,UAAU,EAAE,CAAC;IACnC,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC1E,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,KAAiB,EACjB,IAAI,GAAsB,OAAO,CAAC,IAAI;IAEtC,IAAI,CAAC;QACH,IACE,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;YAC3B,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EACvF,CAAC;YACD,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;IAC3D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"claudexord-entry.js","sourceRoot":"","sources":["../src/claudexord-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;GAIG;AACH;;;;;iDAKiD;AACjD,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACvF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAuB;IAC3D,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAuB;IACnE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC7D,OAAO,CAAC,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,UAA+B,EAC/B,IAAI,GAAsB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/C,uBAAuB,CAAC,IAAI,CAAC;SAC1B,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,IAAI,CAAC,OAAO;YAAE,MAAM,UAAU,EAAE,CAAC;IACnC,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC1E,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,KAAiB,EACjB,IAAI,GAAsB,OAAO,CAAC,IAAI;IAEtC,IAAI,CAAC;QACH,IACE,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;YAC3B,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EACvF,CAAC;YACD,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;IAC3D,CAAC;AACH,CAAC"}
@@ -1,14 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import { type QuotaSubject } from "@claudexor/schema";
3
- /** Public daemon-composition hook retained for embedders and tests. */
4
- export declare function quotaSubjectUniverse(): QuotaSubject[];
5
- /** Handle `claudexord --probe`: print the engine build identity as ONE JSON line
6
- * ({version, buildSha}) and exit WITHOUT any durable startup — no writer lease,
7
- * no socket bind, no journal open, no runtime root. This is the pre-swap
8
- * handshake the macOS installer's RuntimeInstallCoordinator.probeVersion runs
9
- * against a freshly-unpacked closure with the app-bundled Node (D-2). Returns
10
- * true when the probe handled the invocation. */
11
- export declare function runProbeIfRequested(argv: readonly string[]): boolean;
12
2
  export declare function main(): Promise<void>;
13
3
  /** Explicit entry preserves import-side-effect freedom for daemon probes. */
14
4
  export declare function runClaudexordEntry(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"claudexord.d.ts","sourceRoot":"","sources":["../src/claudexord.ts"],"names":[],"mappings":";AAmCA,OAAO,EAAE,KAAK,YAAY,EAA8B,MAAM,mBAAmB,CAAC;AAuBlF,uEAAuE;AACvE,wBAAgB,oBAAoB,IAAI,YAAY,EAAE,CAErD;AAED;;;;;iDAKiD;AACjD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAKpE;AAED,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA4gB1C;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
1
+ {"version":3,"file":"claudexord.d.ts","sourceRoot":"","sources":["../src/claudexord.ts"],"names":[],"mappings":";AA2EA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6gB1C;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -1,13 +1,15 @@
1
1
  #!/usr/bin/env node
2
- import { appendFileSync, mkdirSync, writeFileSync } from "node:fs";
2
+ import { mkdirSync } from "node:fs";
3
3
  import { join } from "node:path";
4
- import { DaemonClient, commandProjection, interactionProjection, operatorDecisionProjection, runEventProjection, JournalManager, DaemonServer, InteractionRegistry, ProjectPartitions, projectProjection, RunEventBus, ResourceStore, quotaProjection, threadHeadPingProjection, threadProjection, daemonDir, defaultSocketPath, acquireDaemonWriterLease, ensureToken, ensureDaemonRuntimeRoot, logPath, socketAlive, } from "@claudexor/daemon";
4
+ import { DaemonClient, commandProjection, interactionProjection, operatorDecisionProjection, runEventProjection, JournalManager, DaemonServer, InteractionRegistry, ProjectPartitions, projectProjection, RunEventBus, ResourceStore, quotaProjection, threadHeadPingProjection, threadProjection, daemonDir, defaultSocketPath, acquireRootAuthority, ensureToken, ensureDaemonRuntimeRoot, logPath, socketAlive, } from "@claudexor/daemon";
5
5
  import { DaemonControlApiServer, normalizeRunStartRequest } from "@claudexor/control-api";
6
- import { armDaemonLifecycle, logLine, runStartupCrashGc } from "./daemon-lifecycle.js";
6
+ import { createDaemonQuotaPoller, createStartupAdmissionRuntime, openStartupDiagnostics, } from "./daemon-admission-runtime.js";
7
+ import { armDaemonLifecycle, logLine } from "./daemon-lifecycle.js";
8
+ import { bindRecoveryTransport, controlApiEnabledForStartup, DaemonStartupAdmission, proveRecoveryTransport, quarantineGhostProjectsAtStartup, recoveryBlockedPartitions, } from "./daemon-startup.js";
7
9
  import { assertPlanImplementReady } from "./plan-implement-readiness.js";
8
10
  import { Orchestrator } from "@claudexor/orchestrator";
9
11
  import { delegationBeltForRun } from "./delegation-belt-descriptor.js";
10
- import { loadConfig, sweepRetiredConfigKeysAtStartup } from "@claudexor/config";
12
+ import { loadConfig } from "@claudexor/config";
11
13
  import { engineBuildIdentity, noProjectRepoRoot, redactSecrets } from "@claudexor/util";
12
14
  import { scheduleStartupRetention } from "./retention-service.js";
13
15
  import { controlServices } from "./control-services.js";
@@ -21,29 +23,12 @@ import { DaemonRuntimeShutdown } from "./daemon-runtime-shutdown.js";
21
23
  import { quotaRefreshers } from "./quota-refreshers.js";
22
24
  import { resolveThreadExecutionWorkspace, threadRunStartRequiresGit, } from "./thread-execution-workspace.js";
23
25
  import { preflightRunGitRequirement } from "./request-preflight.js";
24
- import { dispatchClaudexordEntry, runIfDirectEntry } from "./claudexord-entry.js";
26
+ import { dispatchClaudexordEntry, runIfDirectEntry, runProbeIfRequested, } from "./claudexord-entry.js";
25
27
  import { createDelegationDaemonBinding } from "./delegation-daemon-binding.js";
26
28
  import { quotaSubjectUniverseFromConfig } from "./quota-subject-universe.js";
27
29
  import { runStopIfRequested } from "./runtime-replacement-stop.js";
28
30
  import { threadContinuityContext } from "./thread-continuity-context.js";
29
31
  const NO_PROJECT_ROOT = noProjectRepoRoot();
30
- /** Public daemon-composition hook retained for embedders and tests. */
31
- export function quotaSubjectUniverse() {
32
- return quotaSubjectUniverseFromConfig();
33
- }
34
- /** Handle `claudexord --probe`: print the engine build identity as ONE JSON line
35
- * ({version, buildSha}) and exit WITHOUT any durable startup — no writer lease,
36
- * no socket bind, no journal open, no runtime root. This is the pre-swap
37
- * handshake the macOS installer's RuntimeInstallCoordinator.probeVersion runs
38
- * against a freshly-unpacked closure with the app-bundled Node (D-2). Returns
39
- * true when the probe handled the invocation. */
40
- export function runProbeIfRequested(argv) {
41
- if (!argv.includes("--probe"))
42
- return false;
43
- const id = engineBuildIdentity();
44
- process.stdout.write(`${JSON.stringify({ version: id.version, buildSha: id.sha })}\n`);
45
- return true;
46
- }
47
32
  export async function main() {
48
33
  // Probe and identity-proven stop must run before any durable startup.
49
34
  if (runProbeIfRequested(process.argv.slice(2)))
@@ -53,7 +38,10 @@ export async function main() {
53
38
  const servingIdentity = engineBuildIdentity();
54
39
  ensureDaemonRuntimeRoot();
55
40
  const socketPath = defaultSocketPath();
56
- const writerLease = acquireDaemonWriterLease(socketPath);
41
+ // D5 stage 1: permanent barrier (epoch/floor refusals) before ANY recovery.
42
+ const rootAuthority = acquireRootAuthority({ socketPath, version: servingIdentity.version });
43
+ // C8: private diagnostics open right after the authority win (never control lifecycle).
44
+ const startupDiagnostics = openStartupDiagnostics(servingIdentity);
57
45
  let shutdownRuntime = null;
58
46
  // Release wave round-12 BLOCK: the single-writer lease may only be released
59
47
  // after a CLEAN shutdown — a failed/partial shutdown keeps components that
@@ -61,20 +49,12 @@ export async function main() {
61
49
  // beside them. On failure the lease dies with the process instead.
62
50
  let releaseWriterLease = true;
63
51
  let lifecycle = null;
64
- let quotaPollTimer = null;
52
+ let quotaPoller = null;
65
53
  try {
66
54
  const token = ensureToken();
67
55
  if (await socketAlive(socketPath)) {
68
56
  throw new Error(`a claudexor daemon is already listening on ${socketPath}; stop it first`);
69
57
  }
70
- await runStartupCrashGc({ daemonDir: daemonDir(), logPath: logPath() });
71
- // Same-root config evolution hygiene (B9): strip + persist any known-retired
72
- // keys an OLDER version wrote into the global config, before any strict
73
- // parse can trip on them (mirrors the crash-GC startup sweep). Unknown keys
74
- // NOT on the retired registry still fail loud at parse (INV-021).
75
- for (const sweep of sweepRetiredConfigKeysAtStartup()) {
76
- logLine(logPath(), `swept retired config keys from ${sweep.path}: ${sweep.removed.join(", ")}`);
77
- }
78
58
  const bus = new RunEventBus();
79
59
  const { authority: delegationBudgetAuthority, bind: bindDelegationDaemon } = createDelegationDaemonBinding();
80
60
  const journalManager = new JournalManager(daemonDir());
@@ -83,7 +63,7 @@ export async function main() {
83
63
  const operatorDecisionStoreSlot = journalManager.registerProjection(operatorDecisionProjection());
84
64
  const runEventStoreSlot = journalManager.registerProjection(runEventProjection());
85
65
  const projectStoreSlot = journalManager.registerProjection(projectProjection());
86
- const quotaStoreSlot = journalManager.registerProjection(quotaProjection(quotaRefreshers(), quotaSubjectUniverse));
66
+ const quotaStoreSlot = journalManager.registerProjection(quotaProjection(quotaRefreshers(), quotaSubjectUniverseFromConfig));
87
67
  // Sidebar invalidation ping (W12): a GLOBAL-partition emitter every
88
68
  // ThreadStore (global + per-project) writes through, so any thread
89
69
  // mutation reaches the app's single global stream. The ping is auxiliary
@@ -104,25 +84,34 @@ export async function main() {
104
84
  create: (journal) => new SetupJobStore(daemonDir(), { journal }),
105
85
  validate: (store) => store.validateProjection(),
106
86
  });
107
- journalManager.start();
108
- const pollQuota = () => {
87
+ // D5 stage 2: read-only prepare + validate; zero recovery writes.
88
+ const globalPreparation = journalManager.prepare();
89
+ const admission = new DaemonStartupAdmission();
90
+ quotaPoller = createDaemonQuotaPoller(() => {
109
91
  try {
110
92
  void quotaStoreSlot.current().pollStale();
111
93
  }
112
94
  catch { }
113
- };
114
- quotaPollTimer = setInterval(pollQuota, 60_000).unref();
115
- pollQuota();
95
+ });
116
96
  const threads = new ProjectPartitions(daemonDir(), projectStoreSlot, commandStoreSlot, interactionStoreSlot, operatorDecisionStoreSlot, runEventStoreSlot, threadStoreSlot, threadHeadPing);
97
+ const partitionsPreparation = threads.prepare();
98
+ const startupBlockedPartitions = recoveryBlockedPartitions({
99
+ globalPreparation,
100
+ partitionsPreparation,
101
+ });
117
102
  const interactions = new InteractionRegistry({
118
103
  forRequest: (params) => threads.interactionsForRequest(params),
119
104
  all: () => threads.interactionStores(),
120
105
  });
121
- const resources = new ResourceStore(join(daemonDir(), "resource-store"));
106
+ // C5b: construction mkdirs under the daemon dir and the recovery plane
107
+ // serves no resources — the store materializes on first product use.
108
+ let resourceStore = null;
109
+ const resources = () => (resourceStore ??= new ResourceStore(join(daemonDir(), "resource-store")));
122
110
  const server = new DaemonServer({
123
111
  socketPath,
124
112
  token,
125
113
  commands: threads,
114
+ servingMode: admission.snapshot,
126
115
  delegationAuthority: delegationBudgetAuthority,
127
116
  onRunTerminal: (runId, threadId) => {
128
117
  interactions.dropForRun(runId);
@@ -145,7 +134,7 @@ export async function main() {
145
134
  return shutdownRuntime.beginRuntimeReplacement();
146
135
  },
147
136
  runtimeIdentity: { version: servingIdentity.version, buildSha: servingIdentity.sha },
148
- runtimeLeaseOwner: writerLease.owner,
137
+ runtimeLeaseOwner: rootAuthority.lease.owner,
149
138
  runner: async (params, ctx) => {
150
139
  const p = normalizeRunStartRequest(params);
151
140
  const mode = p.mode;
@@ -334,7 +323,7 @@ export async function main() {
334
323
  : undefined,
335
324
  attachments: turnId
336
325
  ? (threads.getTurn(turnId)?.attachments ?? [])
337
- : resources.resolve(p.attachments),
326
+ : resources().resolve(p.attachments),
338
327
  browser: p.browser === true,
339
328
  mode: p.mode,
340
329
  contextMode: noProjectAsk
@@ -404,8 +393,7 @@ export async function main() {
404
393
  control: () => control,
405
394
  journal: {
406
395
  close: () => {
407
- if (quotaPollTimer)
408
- clearInterval(quotaPollTimer);
396
+ quotaPoller?.stop();
409
397
  threads.close();
410
398
  journalManager.close();
411
399
  },
@@ -416,78 +404,84 @@ export async function main() {
416
404
  // the startup retention pass below consumes them directly.
417
405
  const selfClient = new DaemonClient(socketPath, token);
418
406
  const services = controlServices(interactions, () => projectStoreSlot.current(), threads, setupBinding, journalManager, authReadiness, resources, () => quotaStoreSlot.current(), () => selfClient.list());
419
- control =
420
- process.env.CLAUDEXOR_NO_CONTROL_API === "1"
421
- ? null
422
- : new DaemonControlApiServer({
423
- token,
424
- daemon: new DaemonClient(socketPath, token),
425
- port: Number(process.env.CLAUDEXOR_CONTROL_PORT ?? 0),
426
- bus,
427
- services,
428
- });
407
+ control = !controlApiEnabledForStartup({
408
+ disabledByEnv: process.env.CLAUDEXOR_NO_CONTROL_API === "1",
409
+ blockedPartitions: startupBlockedPartitions,
410
+ log: (message) => logLine(logPath(), message),
411
+ })
412
+ ? null
413
+ : new DaemonControlApiServer({
414
+ token,
415
+ daemon: new DaemonClient(socketPath, token),
416
+ port: Number(process.env.CLAUDEXOR_CONTROL_PORT ?? 0),
417
+ servingMode: admission.snapshot,
418
+ bus,
419
+ services,
420
+ });
429
421
  lifecycle = armDaemonLifecycle({
430
422
  daemonDir: daemonDir(),
431
423
  logPath: logPath(),
424
+ ...(startupDiagnostics.diagnostics ? { diagnostics: startupDiagnostics.diagnostics } : {}),
432
425
  beginShutdown: (reason) => shutdownRuntime.beginShutdown(reason),
433
426
  });
434
- await setupBinding.start();
435
- if (!shutdownRuntime.requested())
436
- await server.start();
437
- if (!shutdownRuntime.requested()) {
438
- appendFileSync(logPath(), `[${new Date().toISOString()}] claudexord listening on ${socketPath}\n`);
439
- }
440
- if (control && !shutdownRuntime.requested()) {
441
- const controlAddr = await control.start();
442
- if (!shutdownRuntime.requested()) {
443
- writeFileSync(join(daemonDir(), "control-api.json"), `${JSON.stringify({ ...controlAddr, tokenPath: join(daemonDir(), "token") }, null, 2)}\n`, { mode: 0o600 });
444
- appendFileSync(logPath(), `[${new Date().toISOString()}] claudexor control-api listening on http://${controlAddr.host}:${controlAddr.port}\n`);
445
- }
446
- }
447
- else if (!control && !shutdownRuntime.requested()) {
448
- appendFileSync(logPath(), `[${new Date().toISOString()}] claudexor control-api disabled by CLAUDEXOR_NO_CONTROL_API=1\n`);
449
- }
427
+ const { runAdmissionCompletion, wrapQuarantineWithReopen } = createStartupAdmissionRuntime({
428
+ admission,
429
+ grant: rootAuthority,
430
+ global: journalManager,
431
+ partitions: threads,
432
+ diagnostics: startupDiagnostics,
433
+ normalPlane: {
434
+ requested: () => shutdownRuntime.requested(),
435
+ armQuotaPolling: () => quotaPoller.arm(),
436
+ beginPidSnapshots: () => lifecycle.beginPidSnapshots(),
437
+ startSetup: () => setupBinding.start(),
438
+ quarantineGhosts: () => quarantineGhostProjectsAtStartup(threads, (message) => logLine(logPath(), message)),
439
+ scheduleRetention: () => scheduleStartupRetention(services.runRetention, {
440
+ logPath: logPath(),
441
+ shuttingDown: () => shutdownRuntime.requested(),
442
+ }),
443
+ },
444
+ });
445
+ services.recoveryQuarantinePartition = wrapQuarantineWithReopen(services.recoveryQuarantinePartition);
446
+ // D5 stage 3: bind the REAL transport with product admission CLOSED, then
447
+ // prove self-health/exact identity through it before anything destructive.
448
+ const controlAddr = await bindRecoveryTransport({
449
+ server,
450
+ control,
451
+ requested: () => shutdownRuntime.requested(),
452
+ daemonDir: daemonDir(),
453
+ logPath: logPath(),
454
+ socketPath,
455
+ });
450
456
  if (!shutdownRuntime.requested()) {
451
- // F2 ghost-cleanup: retire projects auto-registered from an
452
- // envelope worktree (root inside the Claudexor runtime tree) or whose
453
- // root is permanently gone, so a dead root can never poison listings.
454
- try {
455
- const retired = threads.quarantineGhostProjects();
456
- for (const ghost of retired) {
457
- logLine(logPath(), `projects: quarantined ghost ${ghost.projectId} (${ghost.reason}): ${ghost.root}`);
458
- }
459
- }
460
- catch (error) {
461
- logLine(logPath(), `projects: ghost sweep failed: ${error instanceof Error ? error.message : String(error)}`);
462
- }
463
- scheduleStartupRetention(services.runRetention, {
464
- logPath: logPath(),
465
- shuttingDown: () => shutdownRuntime.requested(),
457
+ await proveRecoveryTransport({
458
+ socket: selfClient,
459
+ identity: servingIdentity,
460
+ token,
461
+ control: controlAddr,
466
462
  });
463
+ // D5 stage 4: floor advance + destructive recovery + normal admission —
464
+ // or stay recovery-only with the floor unchanged and cleanup off. The
465
+ // normal-plane side effects run inside the single-flight completion.
466
+ await runAdmissionCompletion(() => startupBlockedPartitions);
467
467
  }
468
468
  await shutdownRuntime.wait();
469
469
  lifecycle.finalize();
470
- appendFileSync(logPath(), `[${new Date().toISOString()}] claudexord shut down\n`);
470
+ logLine(logPath(), "claudexord shut down");
471
+ startupDiagnostics.recordStage("shutdown_complete", "claudexord shut down");
471
472
  }
472
473
  catch (error) {
473
- try {
474
- appendFileSync(logPath(), `[${new Date().toISOString()}] daemon lifecycle FAILED: ${redactSecrets(error instanceof Error ? `${error.name}: ${error.message}` : String(error))}\n`);
475
- }
476
- catch {
477
- /* preserve the lifecycle failure */
478
- }
474
+ // logLine is already best-effort; a failed diagnostic write never masks
475
+ // the lifecycle failure itself.
476
+ logLine(logPath(), `daemon lifecycle FAILED: ${redactSecrets(error instanceof Error ? `${error.name}: ${error.message}` : String(error))}`);
477
+ startupDiagnostics.recordFailure("daemon lifecycle FAILED", error);
479
478
  if (shutdownRuntime) {
480
479
  try {
481
480
  await shutdownRuntime.beginShutdown("startup failure");
482
481
  lifecycle?.finalize();
483
482
  }
484
483
  catch (shutdownError) {
485
- try {
486
- appendFileSync(logPath(), `[${new Date().toISOString()}] shutdown FAILED: ${redactSecrets(shutdownError instanceof Error ? shutdownError.message : String(shutdownError))}\n`);
487
- }
488
- catch {
489
- /* preserve the shutdown failure */
490
- }
484
+ logLine(logPath(), `shutdown FAILED: ${redactSecrets(shutdownError instanceof Error ? shutdownError.message : String(shutdownError))}`);
491
485
  releaseWriterLease = false;
492
486
  throw new AggregateError([error, shutdownError], "claudexord failed and could not complete shutdown");
493
487
  }
@@ -495,10 +489,11 @@ export async function main() {
495
489
  throw error;
496
490
  }
497
491
  finally {
498
- if (quotaPollTimer)
499
- clearInterval(quotaPollTimer);
492
+ quotaPoller?.stop();
493
+ startupDiagnostics.close();
494
+ // Drops only the live writer claim; the barrier itself persists (D1).
500
495
  if (releaseWriterLease)
501
- writerLease.release();
496
+ rootAuthority.release();
502
497
  }
503
498
  }
504
499
  /** Explicit entry preserves import-side-effect freedom for daemon probes. */