@claudexor/cli 3.0.3 → 3.1.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 (133) hide show
  1. package/LICENSE +1 -1
  2. package/dist/about-command.d.ts +32 -0
  3. package/dist/about-command.d.ts.map +1 -0
  4. package/dist/about-command.js +40 -0
  5. package/dist/about-command.js.map +1 -0
  6. package/dist/acp-surface-runner.d.ts +12 -0
  7. package/dist/acp-surface-runner.d.ts.map +1 -1
  8. package/dist/acp-surface-runner.js +113 -11
  9. package/dist/acp-surface-runner.js.map +1 -1
  10. package/dist/capabilities.d.ts.map +1 -1
  11. package/dist/capabilities.js +2 -1
  12. package/dist/capabilities.js.map +1 -1
  13. package/dist/claudexord.d.ts +21 -0
  14. package/dist/claudexord.d.ts.map +1 -1
  15. package/dist/claudexord.js +96 -8
  16. package/dist/claudexord.js.map +1 -1
  17. package/dist/cli-error.d.ts +97 -0
  18. package/dist/cli-error.d.ts.map +1 -0
  19. package/dist/cli-error.js +308 -0
  20. package/dist/cli-error.js.map +1 -0
  21. package/dist/cli-io.d.ts +9 -0
  22. package/dist/cli-io.d.ts.map +1 -1
  23. package/dist/cli-io.js +10 -1
  24. package/dist/cli-io.js.map +1 -1
  25. package/dist/cli.js +105 -110
  26. package/dist/cli.js.map +1 -1
  27. package/dist/codex-device-login.d.ts +117 -0
  28. package/dist/codex-device-login.d.ts.map +1 -0
  29. package/dist/codex-device-login.js +227 -0
  30. package/dist/codex-device-login.js.map +1 -0
  31. package/dist/command-flags.d.ts.map +1 -1
  32. package/dist/command-flags.js +4 -3
  33. package/dist/command-flags.js.map +1 -1
  34. package/dist/command-help.d.ts +46 -0
  35. package/dist/command-help.d.ts.map +1 -0
  36. package/dist/command-help.js +92 -0
  37. package/dist/command-help.js.map +1 -0
  38. package/dist/command-registry.d.ts +2 -0
  39. package/dist/command-registry.d.ts.map +1 -1
  40. package/dist/command-registry.js +11 -4
  41. package/dist/command-registry.js.map +1 -1
  42. package/dist/control-services.d.ts +45 -18
  43. package/dist/control-services.d.ts.map +1 -1
  44. package/dist/control-services.js +56 -30
  45. package/dist/control-services.js.map +1 -1
  46. package/dist/credential-commands.d.ts.map +1 -1
  47. package/dist/credential-commands.js +44 -1
  48. package/dist/credential-commands.js.map +1 -1
  49. package/dist/daemon-outcome.d.ts +24 -0
  50. package/dist/daemon-outcome.d.ts.map +1 -0
  51. package/dist/daemon-outcome.js +59 -0
  52. package/dist/daemon-outcome.js.map +1 -0
  53. package/dist/daemon-run.d.ts +23 -4
  54. package/dist/daemon-run.d.ts.map +1 -1
  55. package/dist/daemon-run.js +66 -27
  56. package/dist/daemon-run.js.map +1 -1
  57. package/dist/delegation-belt-descriptor.d.ts +31 -13
  58. package/dist/delegation-belt-descriptor.d.ts.map +1 -1
  59. package/dist/delegation-belt-descriptor.js +43 -15
  60. package/dist/delegation-belt-descriptor.js.map +1 -1
  61. package/dist/live.d.ts +13 -1
  62. package/dist/live.d.ts.map +1 -1
  63. package/dist/live.js +56 -7
  64. package/dist/live.js.map +1 -1
  65. package/dist/mcp-runner.d.ts.map +1 -1
  66. package/dist/mcp-runner.js +60 -6
  67. package/dist/mcp-runner.js.map +1 -1
  68. package/dist/native-login.d.ts +10 -1
  69. package/dist/native-login.d.ts.map +1 -1
  70. package/dist/native-login.js +32 -10
  71. package/dist/native-login.js.map +1 -1
  72. package/dist/ops-commands.d.ts.map +1 -1
  73. package/dist/ops-commands.js +42 -51
  74. package/dist/ops-commands.js.map +1 -1
  75. package/dist/plan-implement-readiness.d.ts +32 -0
  76. package/dist/plan-implement-readiness.d.ts.map +1 -0
  77. package/dist/plan-implement-readiness.js +51 -0
  78. package/dist/plan-implement-readiness.js.map +1 -0
  79. package/dist/plugins.d.ts.map +1 -1
  80. package/dist/plugins.js +73 -20
  81. package/dist/plugins.js.map +1 -1
  82. package/dist/project-command.d.ts +15 -0
  83. package/dist/project-command.d.ts.map +1 -1
  84. package/dist/project-command.js +75 -20
  85. package/dist/project-command.js.map +1 -1
  86. package/dist/quota-command.d.ts.map +1 -1
  87. package/dist/quota-command.js +2 -6
  88. package/dist/quota-command.js.map +1 -1
  89. package/dist/release-command.d.ts.map +1 -1
  90. package/dist/release-command.js +31 -6
  91. package/dist/release-command.js.map +1 -1
  92. package/dist/release.d.ts +41 -10
  93. package/dist/release.d.ts.map +1 -1
  94. package/dist/release.js +70 -48
  95. package/dist/release.js.map +1 -1
  96. package/dist/repo-asset-authority.d.ts +93 -0
  97. package/dist/repo-asset-authority.d.ts.map +1 -0
  98. package/dist/repo-asset-authority.js +178 -0
  99. package/dist/repo-asset-authority.js.map +1 -0
  100. package/dist/review-command.d.ts.map +1 -1
  101. package/dist/review-command.js +2 -6
  102. package/dist/review-command.js.map +1 -1
  103. package/dist/settings-command.d.ts.map +1 -1
  104. package/dist/settings-command.js +2 -6
  105. package/dist/settings-command.js.map +1 -1
  106. package/dist/settings-service.d.ts +51 -2
  107. package/dist/settings-service.d.ts.map +1 -1
  108. package/dist/settings-service.js +126 -2
  109. package/dist/settings-service.js.map +1 -1
  110. package/dist/setup-job-store.d.ts +14 -3
  111. package/dist/setup-job-store.d.ts.map +1 -1
  112. package/dist/setup-job-store.js +24 -4
  113. package/dist/setup-job-store.js.map +1 -1
  114. package/dist/setup-jobs.d.ts +14 -4
  115. package/dist/setup-jobs.d.ts.map +1 -1
  116. package/dist/setup-jobs.js +204 -23
  117. package/dist/setup-jobs.js.map +1 -1
  118. package/dist/setup-login-inline.d.ts +69 -0
  119. package/dist/setup-login-inline.d.ts.map +1 -0
  120. package/dist/setup-login-inline.js +206 -0
  121. package/dist/setup-login-inline.js.map +1 -0
  122. package/dist/setup-login-protocol.d.ts +3 -2
  123. package/dist/setup-login-protocol.d.ts.map +1 -1
  124. package/dist/setup-login-protocol.js +16 -1
  125. package/dist/setup-login-protocol.js.map +1 -1
  126. package/dist/setup-login-runner.d.ts +9 -0
  127. package/dist/setup-login-runner.d.ts.map +1 -1
  128. package/dist/setup-login-runner.js +212 -5
  129. package/dist/setup-login-runner.js.map +1 -1
  130. package/dist/thread-delivery.d.ts.map +1 -1
  131. package/dist/thread-delivery.js +3 -1
  132. package/dist/thread-delivery.js.map +1 -1
  133. package/package.json +23 -23
@@ -16,21 +16,31 @@ import type { ExtraMcpServer, PaidBudget } from "@claudexor/schema";
16
16
  */
17
17
  export declare function beltDaemonDiscoveryEnv(): Record<string, string>;
18
18
  /**
19
- * Absolute path to the CLI entry (`cli.js`) that hosts `mcp serve-belt`. The
19
+ * The ordered `cli.js` candidates that host `mcp serve-belt`, most-preferred
20
+ * first: adjacent to the launching process, then adjacent to THIS module. The
20
21
  * belt descriptor is built INSIDE the daemon process, so `process.argv[1]` is
21
- * `claudexord.js` — the daemon entry, which has NO `mcp serve-belt` subcommand:
22
- * `node claudexord.js mcp serve-belt` ignores the args and tries to boot a
23
- * SECOND daemon (which dies on the socket writer lock), so the belt MCP server
24
- * never registers. That is the delegation-belt e2e defect: a `--delegate`
25
- * claude/codex run silently saw no `mcp__claudexor__*` tools and answered from
26
- * its own in-process subagent instead of creating a real Claudexor sub-run.
22
+ * `claudexord.js` — the daemon entry, which has NO `mcp serve-belt` subcommand.
23
+ * In npm/dev `dist/`, `cli.js` is a genuine sibling of `claudexord.js`. In the
24
+ * single-file macOS app bundle the daemon is `claudexord.bundle.cjs` in
25
+ * `Contents/Resources` with NO sibling `cli.js` so BOTH candidates can be
26
+ * absent, and the fallback must not be trusted blindly.
27
+ */
28
+ export declare function beltCliEntryCandidates(argv1?: string | undefined): string[];
29
+ /**
30
+ * Absolute path to the CLI entry (`cli.js`) that hosts `mcp serve-belt`, or
31
+ * `undefined` when NO candidate exists on disk. EVERY candidate — including the
32
+ * module-relative fallback — is existence-validated: a descriptor that points
33
+ * at a missing `cli.js` spawns `node <missing> mcp serve-belt`, which
34
+ * MODULE_NOT_FOUNDs inside the harness; the belt reports `failed`, the harness
35
+ * silently answers from its own native subagent, and the run terminalizes a
36
+ * false success (QA-024). Returning `undefined` lets the descriptor builder
37
+ * refuse TYPED at preflight instead of emitting a dead descriptor.
27
38
  *
28
- * `cli.js` is a sibling of `claudexord.js` in the same `dist/`. This mirrors the
29
- * browser launcher's resolution: prefer the entry adjacent to the launching
30
- * process (survives symlinked / wrapped launches), then fall back to this
31
- * module's own directory.
39
+ * This mirrors the browser launcher's resolution: prefer the entry adjacent to
40
+ * the launching process (survives symlinked / wrapped launches), then fall back
41
+ * to this module's own directory but never return an unchecked path.
32
42
  */
33
- export declare function resolveCliEntry(argv1?: string | undefined): string;
43
+ export declare function resolveCliEntry(argv1?: string | undefined): string | undefined;
34
44
  /**
35
45
  * Build the delegation belt MCP-server descriptor injected into a delegate
36
46
  * agent run's sandbox (D32). The child harness spawns `node cli.js mcp
@@ -38,6 +48,14 @@ export declare function resolveCliEntry(argv1?: string | undefined): string;
38
48
  * sub-runs). The belt process reads its policy from the injected env: depth 0
39
49
  * (top-level — the sub-runs it starts carry no belt, so nesting cannot exceed
40
50
  * 1), the sub-run cap, and a snapshot of the parent's paid-budget headroom.
51
+ *
52
+ * TYPED PREFLIGHT REFUSAL (QA-024): when no `cli.js` entry exists (the packaged
53
+ * single-file bundle without a sibling CLI), this throws
54
+ * `DelegationBeltUnavailableError` naming the probed paths and the remedy — it
55
+ * never emits a descriptor that would MODULE_NOT_FOUND inside the harness and
56
+ * degrade into a silent native-subagent false success. Packaging shipping a
57
+ * real belt entry is Ф4 territory; until then the honest packaged behavior for
58
+ * `--delegate` is this refusal.
41
59
  */
42
- export declare function buildDelegationBeltDescriptor(paidBudget: PaidBudget | undefined, cliEntry?: string, discoveryEnv?: Record<string, string>): ExtraMcpServer;
60
+ export declare function buildDelegationBeltDescriptor(paidBudget: PaidBudget | undefined, cliEntry?: string | undefined, discoveryEnv?: Record<string, string>): ExtraMcpServer;
43
61
  //# sourceMappingURL=delegation-belt-descriptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delegation-belt-descriptor.d.ts","sourceRoot":"","sources":["../src/delegation-belt-descriptor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,GAAG,SAA2B,GAAG,MAAM,CAInF;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,GAAE,MAA0B,EACpC,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAA4B,GAC9D,cAAc,CAiBhB"}
1
+ {"version":3,"file":"delegation-belt-descriptor.d.ts","sourceRoot":"","sources":["../src/delegation-belt-descriptor.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK/D;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,GAAE,MAAM,GAAG,SAA2B,GAAG,MAAM,EAAE,CAM5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,GAAG,SAA2B,GAAG,MAAM,GAAG,SAAS,CAE/F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,GAAE,MAAM,GAAG,SAA6B,EAChD,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAA4B,GAC9D,cAAc,CAyBhB"}
@@ -3,6 +3,7 @@ import { dirname, join } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { DEFAULT_MAX_SUBRUNS, delegationEnv } from "@claudexor/mcp-server";
5
5
  import { defaultSocketPath } from "@claudexor/daemon";
6
+ import { DelegationBeltUnavailableError } from "@claudexor/core";
6
7
  import { userConfigDir } from "@claudexor/util";
7
8
  /**
8
9
  * The daemon-discovery env the belt process needs to reach THIS daemon from
@@ -26,25 +27,40 @@ export function beltDaemonDiscoveryEnv() {
26
27
  };
27
28
  }
28
29
  /**
29
- * Absolute path to the CLI entry (`cli.js`) that hosts `mcp serve-belt`. The
30
+ * The ordered `cli.js` candidates that host `mcp serve-belt`, most-preferred
31
+ * first: adjacent to the launching process, then adjacent to THIS module. The
30
32
  * belt descriptor is built INSIDE the daemon process, so `process.argv[1]` is
31
- * `claudexord.js` — the daemon entry, which has NO `mcp serve-belt` subcommand:
32
- * `node claudexord.js mcp serve-belt` ignores the args and tries to boot a
33
- * SECOND daemon (which dies on the socket writer lock), so the belt MCP server
34
- * never registers. That is the delegation-belt e2e defect: a `--delegate`
35
- * claude/codex run silently saw no `mcp__claudexor__*` tools and answered from
36
- * its own in-process subagent instead of creating a real Claudexor sub-run.
33
+ * `claudexord.js` — the daemon entry, which has NO `mcp serve-belt` subcommand.
34
+ * In npm/dev `dist/`, `cli.js` is a genuine sibling of `claudexord.js`. In the
35
+ * single-file macOS app bundle the daemon is `claudexord.bundle.cjs` in
36
+ * `Contents/Resources` with NO sibling `cli.js` so BOTH candidates can be
37
+ * absent, and the fallback must not be trusted blindly.
38
+ */
39
+ export function beltCliEntryCandidates(argv1 = process.argv[1]) {
40
+ const out = [];
41
+ if (argv1)
42
+ out.push(join(dirname(argv1), "cli.js"));
43
+ const own = join(dirname(fileURLToPath(import.meta.url)), "cli.js");
44
+ if (!out.includes(own))
45
+ out.push(own);
46
+ return out;
47
+ }
48
+ /**
49
+ * Absolute path to the CLI entry (`cli.js`) that hosts `mcp serve-belt`, or
50
+ * `undefined` when NO candidate exists on disk. EVERY candidate — including the
51
+ * module-relative fallback — is existence-validated: a descriptor that points
52
+ * at a missing `cli.js` spawns `node <missing> mcp serve-belt`, which
53
+ * MODULE_NOT_FOUNDs inside the harness; the belt reports `failed`, the harness
54
+ * silently answers from its own native subagent, and the run terminalizes a
55
+ * false success (QA-024). Returning `undefined` lets the descriptor builder
56
+ * refuse TYPED at preflight instead of emitting a dead descriptor.
37
57
  *
38
- * `cli.js` is a sibling of `claudexord.js` in the same `dist/`. This mirrors the
39
- * browser launcher's resolution: prefer the entry adjacent to the launching
40
- * process (survives symlinked / wrapped launches), then fall back to this
41
- * module's own directory.
58
+ * This mirrors the browser launcher's resolution: prefer the entry adjacent to
59
+ * the launching process (survives symlinked / wrapped launches), then fall back
60
+ * to this module's own directory but never return an unchecked path.
42
61
  */
43
62
  export function resolveCliEntry(argv1 = process.argv[1]) {
44
- const adjacent = argv1 ? join(dirname(argv1), "cli.js") : "";
45
- if (adjacent && existsSync(adjacent))
46
- return adjacent;
47
- return join(dirname(fileURLToPath(import.meta.url)), "cli.js");
63
+ return beltCliEntryCandidates(argv1).find((candidate) => existsSync(candidate));
48
64
  }
49
65
  /**
50
66
  * Build the delegation belt MCP-server descriptor injected into a delegate
@@ -53,8 +69,20 @@ export function resolveCliEntry(argv1 = process.argv[1]) {
53
69
  * sub-runs). The belt process reads its policy from the injected env: depth 0
54
70
  * (top-level — the sub-runs it starts carry no belt, so nesting cannot exceed
55
71
  * 1), the sub-run cap, and a snapshot of the parent's paid-budget headroom.
72
+ *
73
+ * TYPED PREFLIGHT REFUSAL (QA-024): when no `cli.js` entry exists (the packaged
74
+ * single-file bundle without a sibling CLI), this throws
75
+ * `DelegationBeltUnavailableError` naming the probed paths and the remedy — it
76
+ * never emits a descriptor that would MODULE_NOT_FOUND inside the harness and
77
+ * degrade into a silent native-subagent false success. Packaging shipping a
78
+ * real belt entry is Ф4 territory; until then the honest packaged behavior for
79
+ * `--delegate` is this refusal.
56
80
  */
57
81
  export function buildDelegationBeltDescriptor(paidBudget, cliEntry = resolveCliEntry(), discoveryEnv = beltDaemonDiscoveryEnv()) {
82
+ if (!cliEntry) {
83
+ const probed = beltCliEntryCandidates();
84
+ throw new DelegationBeltUnavailableError(`--delegate cannot start the Claudexor delegation belt: no 'cli.js' entry that hosts 'mcp serve-belt' exists (probed: ${probed.join(", ") || "<none>"}). This is the packaged single-file bundle without a bundled CLI entry — the belt would MODULE_NOT_FOUND inside the harness and silently degrade to a native subagent. Re-run without --delegate, or use an install that ships cli.js next to the daemon.`);
85
+ }
58
86
  return {
59
87
  name: "claudexor",
60
88
  command: process.execPath,
@@ -1 +1 @@
1
- {"version":3,"file":"delegation-belt-descriptor.js","sourceRoot":"","sources":["../src/delegation-belt-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,oBAAoB,EAAE,aAAa,EAAE;QACrC,qBAAqB,EAAE,iBAAiB,EAAE;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,QAA4B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAC3C,UAAkC,EAClC,WAAmB,eAAe,EAAE,EACpC,eAAuC,sBAAsB,EAAE;IAE/D,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC;QACrC,GAAG,EAAE;YACH,oEAAoE;YACpE,oEAAoE;YACpE,GAAG,YAAY;YACf,GAAG,aAAa,CAAC;gBACf,WAAW,EAAE,EAAE;gBACf,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,mBAAmB;gBAC/B,YAAY,EAAE,UAAU,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;aAClD,CAAC;SACH;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"delegation-belt-descriptor.js","sourceRoot":"","sources":["../src/delegation-belt-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,oBAAoB,EAAE,aAAa,EAAE;QACrC,qBAAqB,EAAE,iBAAiB,EAAE;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAA4B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACpE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,QAA4B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,6BAA6B,CAC3C,UAAkC,EAClC,WAA+B,eAAe,EAAE,EAChD,eAAuC,sBAAsB,EAAE;IAE/D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;QACxC,MAAM,IAAI,8BAA8B,CACtC,wHACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QACvB,2PAA2P,CAC5P,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC;QACrC,GAAG,EAAE;YACH,oEAAoE;YACpE,oEAAoE;YACpE,GAAG,YAAY;YACf,GAAG,aAAa,CAAC;gBACf,WAAW,EAAE,EAAE;gBACf,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,mBAAmB;gBAC/B,YAAY,EAAE,UAAU,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;aAClD,CAAC;SACH;KACF,CAAC;AACJ,CAAC"}
package/dist/live.d.ts CHANGED
@@ -3,6 +3,11 @@ import type { InteractionAnswerSet, InteractionQuestion } from "@claudexor/schem
3
3
  * thin re-export of the ONE projection owner (D8): the lifecycle IS the exit
4
4
  * code (succeeded => 0; a "Done · needs review" run also exits 0). */
5
5
  export declare function processExitCodeForRunStatus(state: unknown): number;
6
+ /** D-16 outcome-aware exit for a terminal run event: when the terminal carries
7
+ * full outcome `facts`, the exit follows the OUTCOME (a needs_input/incomplete
8
+ * work_state exits non-zero even on a succeeded lifecycle) via the ONE
9
+ * projection owner; otherwise it falls back to the bare-lifecycle policy. */
10
+ export declare function exitCodeForTerminalPayload(payload: Record<string, unknown>): number;
6
11
  /**
7
12
  * One concise line per run event for live terminal progress. Returns null for
8
13
  * noise (heartbeats, raw harness deltas we do not surface in a TTY).
@@ -45,7 +50,14 @@ export { CONTROL_PROTOCOL_MAJOR };
45
50
  export declare function controlApiAddress(): ControlApiAddress;
46
51
  /** One control-plane transport boundary for CLI, MCP and ACP projections. */
47
52
  export declare function controlApiFetch(addr: ControlApiAddress, path: string, init?: RequestInit): Promise<Response>;
48
- export declare function handshakeControlApi(addr: ControlApiAddress, client?: string): Promise<void>;
53
+ /** The daemon's validated build identity from a successful handshake. The
54
+ * engine version is the AUTHORITATIVE running-engine version (QA-033a): a
55
+ * `release check` must trust this live process identity over the executing CLI
56
+ * package constant. Null when the daemon did not report a well-formed version. */
57
+ export interface EngineIdentity {
58
+ engineVersion: string | null;
59
+ }
60
+ export declare function handshakeControlApi(addr: ControlApiAddress, client?: string): Promise<EngineIdentity>;
49
61
  /**
50
62
  * `claudexor follow <run_id>`: live SSE tail of a daemon-backed run with full
51
63
  * replay (persisted seq), bounded reconnects via Last-Event-ID, and
@@ -1 +1 @@
1
- {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAYnF;;sEAEsE;AACtE,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CA2E7E;AAcD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,2BAA2B,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,IAAI,CAgB5F;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,mBAAmB,EAAE,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAwDtC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,wBAAgB,iBAAiB,IAAI,iBAAiB,CASrD;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC,CA4BnB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,EACvB,MAAM,SAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAgH7E"}
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAenF;;sEAEsE;AACtE,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElE;AAED;;;6EAG6E;AAC7E,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAInF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAyH7E;AAcD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,2BAA2B,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,IAAI,CAgB5F;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,mBAAmB,EAAE,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAwDtC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,wBAAgB,iBAAiB,IAAI,iBAAiB,CASrD;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC,CA4BnB;AAED;;;kFAGkF;AAClF,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,EACvB,MAAM,SAAkB,GACvB,OAAO,CAAC,cAAc,CAAC,CAmCzB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAgH7E"}
package/dist/live.js CHANGED
@@ -3,7 +3,7 @@ import { randomUUID } from "node:crypto";
3
3
  import { join } from "node:path";
4
4
  import { createInterface } from "node:readline/promises";
5
5
  import { daemonDir, readToken } from "@claudexor/daemon";
6
- import { InteractionQuestion as InteractionQuestionSchema, continuityLabel, processExitCode, } from "@claudexor/schema";
6
+ import { InteractionQuestion as InteractionQuestionSchema, RunOutcomeFacts as RunOutcomeFactsSchema, continuityLabel, outcomeExitCode, processExitCode, } from "@claudexor/schema";
7
7
  import { CLAUDEXOR_VERSION } from "@claudexor/util";
8
8
  const print = (s) => {
9
9
  process.stdout.write(s + "\n");
@@ -14,6 +14,16 @@ const print = (s) => {
14
14
  export function processExitCodeForRunStatus(state) {
15
15
  return processExitCode(typeof state === "string" ? state : "failed");
16
16
  }
17
+ /** D-16 outcome-aware exit for a terminal run event: when the terminal carries
18
+ * full outcome `facts`, the exit follows the OUTCOME (a needs_input/incomplete
19
+ * work_state exits non-zero even on a succeeded lifecycle) via the ONE
20
+ * projection owner; otherwise it falls back to the bare-lifecycle policy. */
21
+ export function exitCodeForTerminalPayload(payload) {
22
+ const parsed = RunOutcomeFactsSchema.safeParse(payload["facts"]);
23
+ if (parsed.success)
24
+ return outcomeExitCode(parsed.data);
25
+ return processExitCodeForRunStatus(payload["lifecycle"]);
26
+ }
17
27
  /**
18
28
  * One concise line per run event for live terminal progress. Returns null for
19
29
  * noise (heartbeats, raw harness deltas we do not surface in a TTY).
@@ -27,12 +37,22 @@ export function formatRunEventLine(ev) {
27
37
  return `run created (${String(p["mode"] ?? "?")})`;
28
38
  case "project.git.initialized":
29
39
  return `initialized git repository at ${String(p["repo_root"] ?? "?")} (baseline commit)`;
30
- case "harness.started":
40
+ case "project.claude_bridge.created":
41
+ return `bridged ${String(p["source"] ?? "AGENTS.md")} → ${String(p["path"] ?? "CLAUDE.md")} for Claude Code`;
42
+ case "harness.started": {
43
+ // INV-105 (QA-070): disclose any unsupported per-harness knob the route
44
+ // could not honor as a visible warning suffix — a silent benign "started"
45
+ // row would hide that a requested cost/safety bound had no effect.
46
+ const ignored = Array.isArray(p["ignored_settings"])
47
+ ? p["ignored_settings"].filter((s) => typeof s === "string")
48
+ : [];
49
+ const warn = ignored.length > 0 ? ` — WARNING ignored: ${ignored.join("; ")}` : "";
31
50
  if (p["request_requirement"] && typeof p["request_requirement"] === "object") {
32
51
  const requirement = p["request_requirement"];
33
- return `[${who}] started (web=${String(p["external_context_policy"] ?? "auto")}, browser=${requirement["effective"] === true ? "effective" : `unavailable:${String(requirement["reason"] ?? "unknown")}`})`;
52
+ return `[${who}] started (web=${String(p["external_context_policy"] ?? "auto")}, browser=${requirement["effective"] === true ? "effective" : `unavailable:${String(requirement["reason"] ?? "unknown")}`})${warn}`;
34
53
  }
35
- return `[${who}] started (web=${String(p["external_context_policy"] ?? "auto")})`;
54
+ return `[${who}] started (web=${String(p["external_context_policy"] ?? "auto")})${warn}`;
55
+ }
36
56
  case "harness.event": {
37
57
  const sub = String(p["type"] ?? "");
38
58
  if (sub === "message" && typeof p["title"] === "string")
@@ -72,12 +92,24 @@ export function formatRunEventLine(ev) {
72
92
  return `[${String(p["attempt_id"] ?? "?")}] gates ${p["passed"] ? "passed" : "failed"}`;
73
93
  case "review.started":
74
94
  return `review started (${String(p["reviewers"] ?? 0)} reviewer(s))`;
95
+ case "review.skipped":
96
+ return p["reason"] === "no_reviewers"
97
+ ? "review skipped (no reviewers configured)"
98
+ : "review skipped (no file changes)";
75
99
  case "reviewer.completed":
76
100
  return `reviewer completed (${String(p["harness_id"] ?? "?")})`;
77
101
  case "synthesis.started":
78
102
  return p["synthesize"] ? "synthesis started" : null;
79
103
  case "arbitration.completed":
80
- return `arbitration: winner=${String(p["winner"] ?? "none")} status=${String(p["status"] ?? "?")}`;
104
+ return `arbitration: winner=${String(p["winner"] ?? "none")} lifecycle=${String(p["lifecycle"] ?? "?")}${p["decisive_axis"] ? ` decisive=${String(p["decisive_axis"])}` : ""}`;
105
+ case "plan.brief.materialized": {
106
+ // INV-081 provenance (QA-046): the frozen plan's source run + SHA-256 the
107
+ // engine re-hashed before any harness started — a compact receipt so an
108
+ // Implement follow proves which exact plan bytes ran.
109
+ const sha = typeof p["sha256"] === "string" ? p["sha256"] : "";
110
+ const shortSha = sha ? sha.slice(0, 12) : "unknown";
111
+ return `plan materialized from ${String(p["plan_run_id"] ?? "?")} · sha256 ${shortSha} → ${String(p["path"] ?? "context/PLAN.md")}`;
112
+ }
81
113
  case "output.ready":
82
114
  return `output ready: ${String(p["path"] ?? "?")}${p["state"] ? ` (${String(p["state"])})` : ""}`;
83
115
  case "budget.observation":
@@ -88,6 +120,20 @@ export function formatRunEventLine(ev) {
88
120
  return `run failed: ${truncate(String(p["error"] ?? p["status"] ?? "failed"), 200)}`;
89
121
  case "run.blocked":
90
122
  return `run blocked: ${truncate(String(p["error"] ?? "needs human decision"), 200)}`;
123
+ case "run.continuation":
124
+ return `[${String(p["from_attempt"] ?? "?")}] continuing in a fresh session (${String(p["cause"] ?? "context exhausted")}, continuation ${String(p["continuation_count"] ?? "?")})`;
125
+ case "run.continuation.denied":
126
+ return `[${String(p["from_attempt"] ?? "?")}] continuation refused — budget lease denied (${String(p["reason"] ?? "budget")})`;
127
+ case "delegation.belt.unavailable":
128
+ return `[${who}] delegation belt unavailable (${String(p["server_name"] ?? "?")}: ${String(p["reason"] ?? "unknown")})`;
129
+ case "route.pool.degraded": {
130
+ const dropped = Array.isArray(p["dropped_lanes"])
131
+ ? p["dropped_lanes"]
132
+ .map((d) => String(d["harness_id"] ?? "?"))
133
+ .join(", ")
134
+ : "";
135
+ return `route pool degraded: ${String(p["effective_n"] ?? "?")}/${String(p["requested_n"] ?? "?")} lanes${dropped ? ` (dropped ${dropped})` : ""}`;
136
+ }
91
137
  default:
92
138
  return null;
93
139
  }
@@ -256,7 +302,8 @@ export async function handshakeControlApi(addr, client = "claudexor-cli") {
256
302
  // stale daemon is visible HERE instead of guessed later — consume it. A
257
303
  // version skew is advisory (the protocol major gate above is the hard
258
304
  // fence): disclose with the remedy. A CLI process handshakes once, so no
259
- // dedup state is needed.
305
+ // dedup state is needed. The validated version is ALSO returned so callers
306
+ // (release check) can adopt the running engine's identity (QA-033a).
260
307
  try {
261
308
  const body = (await response.json());
262
309
  const raw = body.engine?.version;
@@ -267,9 +314,11 @@ export async function handshakeControlApi(addr, client = "claudexor-cli") {
267
314
  process.stderr.write(`claudexor: daemon is engine ${daemonVersion} but this CLI is ${CLAUDEXOR_VERSION}; ` +
268
315
  `run \`claudexor daemon stop\` and rerun the command so a matching daemon starts\n`);
269
316
  }
317
+ return { engineVersion: daemonVersion ?? null };
270
318
  }
271
319
  catch {
272
320
  // Identity is advisory; a body parse failure never fails the handshake.
321
+ return { engineVersion: null };
273
322
  }
274
323
  }
275
324
  /**
@@ -325,7 +374,7 @@ export async function followRun(runId, json) {
325
374
  // The lifecycle IS the exit code (D8): run.blocked fires on a SUCCEEDED
326
375
  // lifecycle (needs review) and therefore exits 0 — "Done · needs review".
327
376
  const payload = (ev["payload"] ?? {});
328
- exitCode = processExitCodeForRunStatus(payload["lifecycle"]);
377
+ exitCode = exitCodeForTerminalPayload(payload);
329
378
  }
330
379
  if (type === "interaction.requested" && !json) {
331
380
  await answerInteractionFromTty(addr, runId, ev);
package/dist/live.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"live.js","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live.js","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-runner.d.ts","sourceRoot":"","sources":["../src/mcp-runner.ts"],"names":[],"mappings":"AAUA,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGpE,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,KAChB,GAAG,GAAG,EAAE,QAAQ,kBAAkB,sBAmHjD;AA+PD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,WAAW,GAClB,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAqB5C;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,EACvB,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAC/C,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CA0E5C"}
1
+ {"version":3,"file":"mcp-runner.d.ts","sourceRoot":"","sources":["../src/mcp-runner.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGpE,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,KAChB,GAAG,GAAG,EAAE,QAAQ,kBAAkB,sBAwHjD;AAuSD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,WAAW,GAClB,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAqB5C;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,EACvB,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAC/C,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CA0E5C"}
@@ -1,5 +1,12 @@
1
- import { ModeKind } from "@claudexor/schema";
2
- import { connectDaemonIfRunning, daemonOutcomeSummary, ensureDaemon, enqueueAndAwait, fetchApplyEligibility, fetchRunSpendUsd, } from "./daemon-run.js";
1
+ import { ModeKind, CouncilProjection } from "@claudexor/schema";
2
+ import { connectDaemonIfRunning, daemonOutcomeSummary, ensureDaemon, enqueueAndAwait, fetchApplyEligibility, fetchRunDetail, fetchRunSpendUsd, } from "./daemon-run.js";
3
+ /** Council membership + merge disclosure (QA-023b) from a run's detail, so the
4
+ * MCP immediate-run result carries machine-verifiable Council evidence with no
5
+ * local artifact read; null for solo/non-plan runs or a deferred handle. */
6
+ async function fetchRunCouncil(addr, runId) {
7
+ const parsed = CouncilProjection.safeParse((await fetchRunDetail(addr, runId))?.["council"]);
8
+ return parsed.success ? parsed.data : null;
9
+ }
3
10
  import { primaryOutputForCli } from "./primary-output.js";
4
11
  import { controlApiFetch } from "./live.js";
5
12
  import { acpSessionQuery } from "./acp-surface-runner.js";
@@ -108,6 +115,10 @@ export function mcpSurfaceRunner() {
108
115
  // (single producer: the run-detail budget projection). Deferred calls return
109
116
  // before terminal, so spend is not yet settled — null.
110
117
  const spendUsd = p?.deferred === true ? null : await fetchRunSpendUsd(addr, out.runId);
118
+ // Council membership + merge disclosure (QA-023b) rides the result so an MCP
119
+ // host that asked for `--council` can machine-verify it was really N/N and
120
+ // who merged. Terminal projection — null on a deferred (still-live) handle.
121
+ const council = p?.deferred === true ? null : await fetchRunCouncil(addr, out.runId);
111
122
  return {
112
123
  runId: out.runId,
113
124
  runDir: out.runDir,
@@ -116,6 +127,7 @@ export function mcpSurfaceRunner() {
116
127
  summary,
117
128
  applyEligibility,
118
129
  spendUsd,
130
+ council,
119
131
  };
120
132
  };
121
133
  }
@@ -163,11 +175,47 @@ async function recoveryQuery(mode, runId, input = {}) {
163
175
  return body;
164
176
  };
165
177
  if (mode === "__runs_list") {
166
- const body = await get("/runs");
167
- const runs = Array.isArray(body["runs"]) ? body["runs"] : [];
178
+ // GET /runs is a BOUNDED keyset page (QA-052): a single read undercounts the
179
+ // daemon-tracked total whenever more pages exist. Walk the opaque cursor to
180
+ // completion so the count and list are honest, with a hard page ceiling that
181
+ // keeps the walk finite even against a huge retained set. Truncation (the
182
+ // ceiling was hit) is disclosed rather than silently reported as the total.
183
+ const MAX_PAGES = 50;
184
+ const PAGE_LIMIT = 1_000; // RUN_LIST_MAX_LIMIT; 50 * 1000 = 50k hard ceiling
185
+ // The recovery listing returns only the FIRST page's rows (the newest runs,
186
+ // enough to recover a lost handle). Deeper pages are walked ONLY to keep the
187
+ // count honest — their rows are counted then discarded, so the walk never
188
+ // holds up to 50k row objects in memory. `total` is the SUM of page lengths;
189
+ // `truncated` discloses when the page ceiling cut the walk short.
190
+ let total = 0;
191
+ let sample = [];
192
+ let cursor = null;
193
+ let truncated = false;
194
+ for (let page = 0;; page += 1) {
195
+ const query = new URLSearchParams({ limit: String(PAGE_LIMIT) });
196
+ if (cursor)
197
+ query.set("cursor", cursor);
198
+ const body = await get(`/runs?${query.toString()}`);
199
+ const runs = Array.isArray(body["runs"]) ? body["runs"] : [];
200
+ total += runs.length;
201
+ if (page === 0)
202
+ sample = runs;
203
+ const next = typeof body["nextCursor"] === "string" ? body["nextCursor"] : null;
204
+ if (body["hasMore"] !== true || !next)
205
+ break;
206
+ if (page + 1 >= MAX_PAGES) {
207
+ truncated = true;
208
+ break;
209
+ }
210
+ cursor = next;
211
+ }
168
212
  return {
169
- summary: `${runs.length} daemon-tracked run(s)`,
170
- runs: runs.map((r) => ({
213
+ summary: truncated
214
+ ? `${total}+ daemon-tracked run(s) (listing truncated at ${MAX_PAGES} pages)`
215
+ : `${total} daemon-tracked run(s)`,
216
+ truncated,
217
+ total,
218
+ runs: sample.map((r) => ({
171
219
  runId: r["runId"] ?? r["id"] ?? null,
172
220
  status: r["status"] ?? r["state"] ?? null,
173
221
  mode: r["mode"] ?? null,
@@ -204,6 +252,12 @@ async function recoveryQuery(mode, runId, input = {}) {
204
252
  outcomeBanner: typeof detail["outcomeBanner"] === "string" ? detail["outcomeBanner"] : null,
205
253
  applyEligibility: detail["applyEligibility"] ?? null,
206
254
  planReadiness: detail["planReadiness"] ?? null,
255
+ // Council membership (QA-023b) + budget cash/valuation (QA-023c) ride the
256
+ // same detail every read surface projects, so an MCP host can machine-verify
257
+ // "Council was N/N, merged by X" and "$0 cash but $Y subscription valuation"
258
+ // without reading local artifacts.
259
+ council: detail["council"] && typeof detail["council"] === "object" ? detail["council"] : null,
260
+ budget: detail["budget"] && typeof detail["budget"] === "object" ? detail["budget"] : null,
207
261
  };
208
262
  if (mode === "__run_result") {
209
263
  const primaryOutput = detail["primaryOutput"] && typeof detail["primaryOutput"] === "object"