@telora/daemon 0.23.14 → 0.23.16

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 (250) hide show
  1. package/build-info.json +5 -3
  2. package/dist/backends/agent-backend.d.ts +8 -1
  3. package/dist/backends/agent-backend.d.ts.map +1 -1
  4. package/dist/backends/claude/claude-backend.d.ts.map +1 -1
  5. package/dist/backends/claude/claude-backend.js +4 -0
  6. package/dist/backends/claude/claude-backend.js.map +1 -1
  7. package/dist/backends/claude/one-shot-model.d.ts +11 -0
  8. package/dist/backends/claude/one-shot-model.d.ts.map +1 -1
  9. package/dist/backends/claude/one-shot-model.js +7 -4
  10. package/dist/backends/claude/one-shot-model.js.map +1 -1
  11. package/dist/backends/claude/one-shot-session.d.ts +15 -0
  12. package/dist/backends/claude/one-shot-session.d.ts.map +1 -0
  13. package/dist/backends/claude/one-shot-session.js +120 -0
  14. package/dist/backends/claude/one-shot-session.js.map +1 -0
  15. package/dist/backends/codex/codex-backend.d.ts.map +1 -1
  16. package/dist/backends/codex/codex-backend.js +10 -0
  17. package/dist/backends/codex/codex-backend.js.map +1 -1
  18. package/dist/ci/candidate-ref.d.ts +28 -0
  19. package/dist/ci/candidate-ref.d.ts.map +1 -0
  20. package/dist/ci/candidate-ref.js +81 -0
  21. package/dist/ci/candidate-ref.js.map +1 -0
  22. package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
  23. package/dist/ci/ci-sensor-loop.js +2 -1
  24. package/dist/ci/ci-sensor-loop.js.map +1 -1
  25. package/dist/ci/ci-status-git.d.ts +9 -0
  26. package/dist/ci/ci-status-git.d.ts.map +1 -1
  27. package/dist/ci/ci-status-git.js +16 -2
  28. package/dist/ci/ci-status-git.js.map +1 -1
  29. package/dist/ci/ci-status.d.ts.map +1 -1
  30. package/dist/ci/ci-status.js +5 -1
  31. package/dist/ci/ci-status.js.map +1 -1
  32. package/dist/completion/state-cascade/state-cascade.d.ts +14 -1
  33. package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
  34. package/dist/completion/state-cascade/state-cascade.js +26 -1
  35. package/dist/completion/state-cascade/state-cascade.js.map +1 -1
  36. package/dist/completion/team-exit/merge-phase.d.ts +11 -10
  37. package/dist/completion/team-exit/merge-phase.d.ts.map +1 -1
  38. package/dist/completion/team-exit/merge-phase.js +10 -10
  39. package/dist/completion/team-exit/merge-phase.js.map +1 -1
  40. package/dist/completion/team-teardown/team-lifecycle.d.ts +4 -3
  41. package/dist/completion/team-teardown/team-lifecycle.d.ts.map +1 -1
  42. package/dist/completion/team-teardown/team-lifecycle.js +8 -8
  43. package/dist/completion/team-teardown/team-lifecycle.js.map +1 -1
  44. package/dist/composition/execution-git-context.d.ts.map +1 -1
  45. package/dist/composition/execution-git-context.js +2 -0
  46. package/dist/composition/execution-git-context.js.map +1 -1
  47. package/dist/composition/execution-merge-context.d.ts +11 -3
  48. package/dist/composition/execution-merge-context.d.ts.map +1 -1
  49. package/dist/composition/execution-merge-context.js +60 -12
  50. package/dist/composition/execution-merge-context.js.map +1 -1
  51. package/dist/composition/process-close-context.js +3 -3
  52. package/dist/composition/process-close-context.js.map +1 -1
  53. package/dist/composition/state-cascade-context.d.ts.map +1 -1
  54. package/dist/composition/state-cascade-context.js +10 -2
  55. package/dist/composition/state-cascade-context.js.map +1 -1
  56. package/dist/composition/team-lifecycle-context.js +3 -3
  57. package/dist/composition/team-lifecycle-context.js.map +1 -1
  58. package/dist/composition/verification-context.d.ts.map +1 -1
  59. package/dist/composition/verification-context.js +4 -23
  60. package/dist/composition/verification-context.js.map +1 -1
  61. package/dist/config/model-resolution.d.ts +25 -1
  62. package/dist/config/model-resolution.d.ts.map +1 -1
  63. package/dist/config/model-resolution.js +26 -1
  64. package/dist/config/model-resolution.js.map +1 -1
  65. package/dist/delivery/delivery-merge-ops.d.ts +2 -0
  66. package/dist/delivery/delivery-merge-ops.d.ts.map +1 -1
  67. package/dist/delivery/delivery-merge-ops.js +2 -2
  68. package/dist/delivery/delivery-merge-ops.js.map +1 -1
  69. package/dist/delivery/delivery-reconciler.d.ts +9 -0
  70. package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
  71. package/dist/delivery/delivery-reconciler.js +42 -31
  72. package/dist/delivery/delivery-reconciler.js.map +1 -1
  73. package/dist/focus/focus-executor.d.ts.map +1 -1
  74. package/dist/focus/focus-executor.js +1 -0
  75. package/dist/focus/focus-executor.js.map +1 -1
  76. package/dist/focus/focus-poller-spawn.d.ts.map +1 -1
  77. package/dist/focus/focus-poller-spawn.js +3 -1
  78. package/dist/focus/focus-poller-spawn.js.map +1 -1
  79. package/dist/focus/focus-spawn-decision.d.ts.map +1 -1
  80. package/dist/focus/focus-spawn-decision.js +1 -0
  81. package/dist/focus/focus-spawn-decision.js.map +1 -1
  82. package/dist/git/index.d.ts.map +1 -1
  83. package/dist/git/index.js +2 -1
  84. package/dist/git/index.js.map +1 -1
  85. package/dist/git/merge.d.ts +12 -2
  86. package/dist/git/merge.d.ts.map +1 -1
  87. package/dist/git/merge.js +32 -33
  88. package/dist/git/merge.js.map +1 -1
  89. package/dist/merge/approval-gate-state.d.ts.map +1 -1
  90. package/dist/merge/approval-gate-state.js +8 -7
  91. package/dist/merge/approval-gate-state.js.map +1 -1
  92. package/dist/merge/candidate-rework.d.ts +44 -0
  93. package/dist/merge/candidate-rework.d.ts.map +1 -0
  94. package/dist/merge/candidate-rework.js +152 -0
  95. package/dist/merge/candidate-rework.js.map +1 -0
  96. package/dist/merge/completion-hold-record.d.ts +20 -0
  97. package/dist/merge/completion-hold-record.d.ts.map +1 -0
  98. package/dist/merge/completion-hold-record.js +130 -0
  99. package/dist/merge/completion-hold-record.js.map +1 -0
  100. package/dist/merge/completion-merge-driver.d.ts +96 -0
  101. package/dist/merge/completion-merge-driver.d.ts.map +1 -0
  102. package/dist/merge/completion-merge-driver.js +94 -0
  103. package/dist/merge/completion-merge-driver.js.map +1 -0
  104. package/dist/merge/completion-merge-gate.d.ts +71 -0
  105. package/dist/merge/completion-merge-gate.d.ts.map +1 -0
  106. package/dist/merge/completion-merge-gate.js +185 -0
  107. package/dist/merge/completion-merge-gate.js.map +1 -0
  108. package/dist/merge/completion-merge-pending.d.ts +30 -0
  109. package/dist/merge/completion-merge-pending.d.ts.map +1 -0
  110. package/dist/merge/completion-merge-pending.js +75 -0
  111. package/dist/merge/completion-merge-pending.js.map +1 -0
  112. package/dist/merge/focus-merge.d.ts +21 -6
  113. package/dist/merge/focus-merge.d.ts.map +1 -1
  114. package/dist/merge/focus-merge.js +65 -45
  115. package/dist/merge/focus-merge.js.map +1 -1
  116. package/dist/merge/focus-worktree-removal.d.ts +6 -6
  117. package/dist/merge/focus-worktree-removal.d.ts.map +1 -1
  118. package/dist/merge/focus-worktree-removal.js +10 -6
  119. package/dist/merge/focus-worktree-removal.js.map +1 -1
  120. package/dist/merge/merge-back-conflict.d.ts.map +1 -1
  121. package/dist/merge/merge-back-conflict.js +2 -0
  122. package/dist/merge/merge-back-conflict.js.map +1 -1
  123. package/dist/merge/merge-back-followup.d.ts.map +1 -1
  124. package/dist/merge/merge-back-followup.js +7 -0
  125. package/dist/merge/merge-back-followup.js.map +1 -1
  126. package/dist/merge/merge-back-loop.d.ts +36 -14
  127. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  128. package/dist/merge/merge-back-loop.js +109 -66
  129. package/dist/merge/merge-back-loop.js.map +1 -1
  130. package/dist/merge/merge-gate-coverage.d.ts +9 -61
  131. package/dist/merge/merge-gate-coverage.d.ts.map +1 -1
  132. package/dist/merge/merge-gate-coverage.js +33 -167
  133. package/dist/merge/merge-gate-coverage.js.map +1 -1
  134. package/dist/nexus/escalation-bridge.d.ts.map +1 -1
  135. package/dist/nexus/escalation-bridge.js +2 -1
  136. package/dist/nexus/escalation-bridge.js.map +1 -1
  137. package/dist/nexus/file-escalation.d.ts.map +1 -1
  138. package/dist/nexus/file-escalation.js +5 -1
  139. package/dist/nexus/file-escalation.js.map +1 -1
  140. package/dist/queries/api-client/shared.js +1 -1
  141. package/dist/queries/deliveries/deliveries.d.ts.map +1 -1
  142. package/dist/queries/deliveries/deliveries.js +1 -0
  143. package/dist/queries/deliveries/deliveries.js.map +1 -1
  144. package/dist/queries/delivery-gate-state/delivery-gate-state.js +1 -1
  145. package/dist/queries/delivery-gate-state/verify-own-holds.d.ts +10 -3
  146. package/dist/queries/delivery-gate-state/verify-own-holds.d.ts.map +1 -1
  147. package/dist/queries/delivery-gate-state/verify-own-holds.js +2 -0
  148. package/dist/queries/delivery-gate-state/verify-own-holds.js.map +1 -1
  149. package/dist/queries/escalations/cause-key.d.ts.map +1 -1
  150. package/dist/queries/escalations/cause-key.js +1 -0
  151. package/dist/queries/escalations/cause-key.js.map +1 -1
  152. package/dist/queries/escalations/escalations.d.ts.map +1 -1
  153. package/dist/queries/escalations/escalations.js +2 -1
  154. package/dist/queries/escalations/escalations.js.map +1 -1
  155. package/dist/queries/focuses/focus-discovery.d.ts +14 -0
  156. package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
  157. package/dist/queries/focuses/focus-discovery.js +4 -0
  158. package/dist/queries/focuses/focus-discovery.js.map +1 -1
  159. package/dist/queries/focuses/focuses.d.ts +12 -2
  160. package/dist/queries/focuses/focuses.d.ts.map +1 -1
  161. package/dist/queries/focuses/focuses.js +24 -3
  162. package/dist/queries/focuses/focuses.js.map +1 -1
  163. package/dist/queries/org-config/local-models.d.ts.map +1 -1
  164. package/dist/queries/org-config/local-models.js +2 -1
  165. package/dist/queries/org-config/local-models.js.map +1 -1
  166. package/dist/queries/wire-schemas/schemas.d.ts +48 -0
  167. package/dist/queries/wire-schemas/schemas.d.ts.map +1 -1
  168. package/dist/queries/wire-schemas/schemas.js +15 -0
  169. package/dist/queries/wire-schemas/schemas.js.map +1 -1
  170. package/dist/spawn/model-routing.d.ts +13 -8
  171. package/dist/spawn/model-routing.d.ts.map +1 -1
  172. package/dist/spawn/model-routing.js +14 -8
  173. package/dist/spawn/model-routing.js.map +1 -1
  174. package/dist/spawn/review-hold-park.d.ts.map +1 -1
  175. package/dist/spawn/review-hold-park.js +1 -0
  176. package/dist/spawn/review-hold-park.js.map +1 -1
  177. package/dist/spawn/spawn-decision.d.ts +7 -0
  178. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  179. package/dist/spawn/spawn-decision.js.map +1 -1
  180. package/dist/supervision/agent-resolvable-retirement.d.ts +1 -1
  181. package/dist/supervision/agent-resolvable-retirement.d.ts.map +1 -1
  182. package/dist/supervision/agent-resolvable-retirement.js +2 -1
  183. package/dist/supervision/agent-resolvable-retirement.js.map +1 -1
  184. package/dist/supervision/escalation-filing.js +1 -1
  185. package/dist/supervision/incident-correlation.d.ts +3 -0
  186. package/dist/supervision/incident-correlation.d.ts.map +1 -1
  187. package/dist/supervision/incident-correlation.js +4 -0
  188. package/dist/supervision/incident-correlation.js.map +1 -1
  189. package/dist/supervision/null-role-spawn.d.ts.map +1 -1
  190. package/dist/supervision/null-role-spawn.js +1 -0
  191. package/dist/supervision/null-role-spawn.js.map +1 -1
  192. package/dist/supervision/spawn-cooldown.js +1 -1
  193. package/dist/supervision/stop-rows-work-holds.d.ts +4 -4
  194. package/dist/supervision/stop-rows-work-holds.d.ts.map +1 -1
  195. package/dist/supervision/stop-rows-work-holds.js +17 -15
  196. package/dist/supervision/stop-rows-work-holds.js.map +1 -1
  197. package/dist/testing/fixtures/api-client.js +1 -1
  198. package/dist/testing/fixtures/index.d.ts.map +1 -1
  199. package/dist/testing/fixtures/index.js +3 -1
  200. package/dist/testing/fixtures/index.js.map +1 -1
  201. package/dist/testing/fixtures/judge-session.d.ts +14 -0
  202. package/dist/testing/fixtures/judge-session.d.ts.map +1 -0
  203. package/dist/testing/fixtures/judge-session.js +10 -0
  204. package/dist/testing/fixtures/judge-session.js.map +1 -0
  205. package/dist/types/focus.d.ts +9 -0
  206. package/dist/types/focus.d.ts.map +1 -1
  207. package/dist/types/index.js +1 -1
  208. package/dist/verify/effect-reconciliation/judge-invoker.d.ts +14 -4
  209. package/dist/verify/effect-reconciliation/judge-invoker.d.ts.map +1 -1
  210. package/dist/verify/effect-reconciliation/judge-invoker.js +30 -12
  211. package/dist/verify/effect-reconciliation/judge-invoker.js.map +1 -1
  212. package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts +18 -5
  213. package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts.map +1 -1
  214. package/dist/verify/effect-reconciliation/verify-reconciliation.js +75 -18
  215. package/dist/verify/effect-reconciliation/verify-reconciliation.js.map +1 -1
  216. package/dist/verify/effect-reconciliation/verify-restatement.js +1 -1
  217. package/dist/verify/engine/verification-deps.js +1 -1
  218. package/dist/verify/engine/verification-engine.js +1 -1
  219. package/dist/verify/gate-config/verification-config.js +1 -1
  220. package/dist/verify/inspection-strategies/verification-strategies.js +1 -1
  221. package/dist/verify/inspection-strategies/verification-strategies.js.map +1 -1
  222. package/dist/verify/outcome-routing/incurable-model-hold.d.ts +9 -3
  223. package/dist/verify/outcome-routing/incurable-model-hold.d.ts.map +1 -1
  224. package/dist/verify/outcome-routing/incurable-model-hold.js +18 -5
  225. package/dist/verify/outcome-routing/incurable-model-hold.js.map +1 -1
  226. package/dist/verify/outcome-routing/repeating-model-hold.d.ts +30 -0
  227. package/dist/verify/outcome-routing/repeating-model-hold.d.ts.map +1 -0
  228. package/dist/verify/outcome-routing/repeating-model-hold.js +135 -0
  229. package/dist/verify/outcome-routing/repeating-model-hold.js.map +1 -0
  230. package/dist/verify/outcome-routing/verification-history-reset.d.ts.map +1 -1
  231. package/dist/verify/outcome-routing/verification-history-reset.js +1 -0
  232. package/dist/verify/outcome-routing/verification-history-reset.js.map +1 -1
  233. package/dist/verify/outcome-routing/verification-model-unavailable-hold.d.ts +10 -4
  234. package/dist/verify/outcome-routing/verification-model-unavailable-hold.d.ts.map +1 -1
  235. package/dist/verify/outcome-routing/verification-model-unavailable-hold.js +24 -6
  236. package/dist/verify/outcome-routing/verification-model-unavailable-hold.js.map +1 -1
  237. package/dist/verify/run-selection/default-on-guards.js +1 -1
  238. package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts +4 -3
  239. package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts.map +1 -1
  240. package/dist/verify/run-selection/pre-review-gate-dispatch.js +23 -7
  241. package/dist/verify/run-selection/pre-review-gate-dispatch.js.map +1 -1
  242. package/dist/verify/run-selection/verification-default-on.js +1 -1
  243. package/dist/verify/run-selection/verification-default-on.js.map +1 -1
  244. package/dist/worktree/provision.d.ts.map +1 -1
  245. package/dist/worktree/provision.js +1 -0
  246. package/dist/worktree/provision.js.map +1 -1
  247. package/dist/worktree/safety.d.ts.map +1 -1
  248. package/dist/worktree/safety.js +1 -0
  249. package/dist/worktree/safety.js.map +1 -1
  250. package/package.json +3 -3
@@ -19,10 +19,10 @@ export interface VerifyInterlockFacts {
19
19
  }
20
20
  /** Facts for the merge-gate coverage guard on a focus-branch merge. */
21
21
  export interface MergeGateCoverageFacts {
22
- /** The branch's gate coverage was read. */
23
- coverageReadable: boolean;
24
- /** Commits the merge would add that no passing verdict or current approval covers. */
25
- ungatedCommits: number;
22
+ /** Every input of the completion merge gate was read. */
23
+ gateReadable: boolean;
24
+ /** The gate admitted the merge: complete focus, approved head, green candidate containing the integration tip. */
25
+ admitted: boolean;
26
26
  }
27
27
  /** Facts for the audit-pass arming hold over unrecordable branch work. */
28
28
  export interface UnrecordedBranchWorkFacts {
@@ -1 +1 @@
1
- {"version":3,"file":"stop-rows-work-holds.d.ts","sourceRoot":"","sources":["../../src/supervision/stop-rows-work-holds.ts"],"names":[],"mappings":"AAsBA,8FAA8F;AAC9F,MAAM,WAAW,kBAAkB;IACjC,6FAA6F;IAC7F,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,6DAA6D;AAC7D,MAAM,WAAW,0BAA0B;IACzC,gEAAgE;IAChE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,oEAAoE;AACpE,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,uEAAuE;AACvE,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,sFAAsF;IACtF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,0EAA0E;AAC1E,MAAM,WAAW,yBAAyB;IACxC,2FAA2F;IAC3F,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,yFAAyF;IACzF,WAAW,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,mBAAmB;;;;;;;CA8ItB,CAAC"}
1
+ {"version":3,"file":"stop-rows-work-holds.d.ts","sourceRoot":"","sources":["../../src/supervision/stop-rows-work-holds.ts"],"names":[],"mappings":"AAsBA,8FAA8F;AAC9F,MAAM,WAAW,kBAAkB;IACjC,6FAA6F;IAC7F,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,6DAA6D;AAC7D,MAAM,WAAW,0BAA0B;IACzC,gEAAgE;IAChE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,oEAAoE;AACpE,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,uEAAuE;AACvE,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,YAAY,EAAE,OAAO,CAAC;IACtB,kHAAkH;IAClH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,0EAA0E;AAC1E,MAAM,WAAW,yBAAyB;IACxC,2FAA2F;IAC3F,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,yFAAyF;IACzF,WAAW,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,mBAAmB;;;;;;;CAgJtB,CAAC"}
@@ -83,26 +83,28 @@ export const WORK_HOLD_STOP_ROWS = {
83
83
  merge_gate_coverage: booleanStopRow({
84
84
  id: 'merge_gate_coverage',
85
85
  kind: 'guard',
86
- stopsOn: 'focus_merge_carries_ungated_commits',
87
- enforcedBy: 'merge/merge-gate-coverage.ts',
88
- condition: 'A focus-branch merge to integration would add a commit that no passing recorded verdict and no ' +
89
- "current approval covers (clean integration-sync merges excepted), or the branch's gate coverage " +
90
- 'could not be read (fail-closed).',
86
+ stopsOn: 'focus_merge_before_completion_on_green_candidate',
87
+ enforcedBy: 'merge/completion-merge-gate.ts',
88
+ condition: 'A focus-branch merge to integration while the focus is not complete (a delivery not done -- cancelled included), ' +
89
+ 'its newest approval does not cover HEAD (only integration-sync merges may follow it), HEAD does not contain ' +
90
+ "the integration tip, or HEAD's integration-candidate CI status is not success -- or any of it could not be read " +
91
+ '(fail-closed).',
91
92
  factsRead: [
92
- 'integration..branch commits (git)',
93
- 'recorded deterministic verdicts per commit',
94
- "the focus's newest current approval (focus_reviews / auto-approval record)",
93
+ "the focus's deliveries (execution_status)",
94
+ "the focus's newest current approval (focus_reviews / auto-approval record) and the gate state at it",
95
+ 'integration..branch commits and the integration tip (git)',
96
+ "refs/ci-status for the candidate commit (CI's candidate run)",
95
97
  ],
96
- effect: 'The merge holds, logged with the reason; the branch stays unmerged.',
97
- releaser: 'The verify gate passing on the ungated commits, or a review approving them.',
98
- releaseCondition: 'Every commit the merge would add is gated, and the coverage was read.',
99
- evaluate: ({ coverageReadable, ungatedCommits }) => !coverageReadable || ungatedCommits > 0,
98
+ effect: 'The merge holds, logged with the reason; the branch stays unmerged. The merge-back loop drives the step that advances it (merge-out, candidate push, re-work).',
99
+ releaser: 'The focus completing, a review approving HEAD, the merge-out, and CI publishing success for the candidate.',
100
+ releaseCondition: 'Complete focus, approved head, HEAD contains the integration tip, candidate green, all read.',
101
+ evaluate: ({ gateReadable, admitted }) => !gateReadable || !admitted,
100
102
  characterization: {
101
103
  trigger: [
102
- { coverageReadable: true, ungatedCommits: 2 },
103
- { coverageReadable: false, ungatedCommits: 0 },
104
+ { gateReadable: true, admitted: false },
105
+ { gateReadable: false, admitted: false },
104
106
  ],
105
- release: [{ coverageReadable: true, ungatedCommits: 0 }],
107
+ release: [{ gateReadable: true, admitted: true }],
106
108
  },
107
109
  }),
108
110
  unrecorded_branch_work_hold: booleanStopRow({
@@ -1 +1 @@
1
- {"version":3,"file":"stop-rows-work-holds.js","sourceRoot":"","sources":["../../src/supervision/stop-rows-work-holds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stop-rows-work-holds.js","sourceRoot":"","sources":["../../src/supervision/stop-rows-work-holds.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: 69 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/testing/fixtures/api-client.ts
2
+ // Pinned by: 72 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/testing/fixtures/api-client.ts
3
3
  // PINNED-BY-END
4
4
  /** A fake ApiClient whose every call is answered by `handle`. */
5
5
  export function makeFakeApiClient(handle) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/fixtures/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAsC1F;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,SAAS,CAAM,GAAG,SAAS,CAa3E;AACD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAAG,iBAAiB,CAmB1F;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAkBjF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY,CA0B9E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAC5C,oBAAoB,CAOtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAgC1F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAEhG;AAcD,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAChC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GACtC,OAAO,CAAC,cAAc,CAAC,CAMzB;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,CACnC,SAAS,GAAE,OAAO,CAAC,iBAAiB,CAAM,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAc5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/fixtures/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAwC1F;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,SAAS,CAAM,GAAG,SAAS,CAa3E;AACD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAAG,iBAAiB,CAmB1F;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAkBjF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY,CA0B9E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAC5C,oBAAoB,CAOtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAgC1F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAEhG;AAcD,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAChC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GACtC,OAAO,CAAC,cAAc,CAAC,CAMzB;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,CACnC,SAAS,GAAE,OAAO,CAAC,iBAAiB,CAAM,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAc5B"}
@@ -1,5 +1,5 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: 317 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/testing/fixtures/index.ts
2
+ // Pinned by: 324 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/testing/fixtures/index.ts
3
3
  // PINNED-BY-END
4
4
  /**
5
5
  * Build an ActiveFocusRow (a getActiveFocuses row): an active, armed focus with
@@ -41,6 +41,8 @@ export function makeActiveFocusRow(overrides = {}) {
41
41
  org_default_engine: null,
42
42
  org_default_coding_model: null,
43
43
  org_default_review_model: null,
44
+ org_default_coding_effort: null,
45
+ org_default_review_effort: null,
44
46
  branch_name: null,
45
47
  ...overrides,
46
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/fixtures/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/fixtures/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,6GAA6G;AAC7G,gBAAgB;AAkChB;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAqC,EAAE;IACxE,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,YAAY;QACxB,iBAAiB,EAAE,IAAI;QACvB,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,WAAW;QACvB,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,IAAI;QACjB,sBAAsB,EAAE,QAAQ;QAChC,eAAe,EAAE,WAAW;QAC5B,mBAAmB,EAAE,IAAI;QACzB,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,0BAA0B;QAC1C,yBAAyB,EAAE,IAAI;QAC/B,mBAAmB,EAAE,IAAI;QACzB,oBAAoB,EAAE,IAAI;QAC1B,kBAAkB,EAAE,CAAC;QACrB,oBAAoB,EAAE,CAAC;QACvB,8BAA8B,EAAE,CAAC;QACjC,uBAAuB,EAAE,IAAI;QAC7B,sBAAsB,EAAE,IAAI;QAC5B,oBAAoB,EAAE,CAAC;QACvB,wBAAwB,EAAE,KAAK;QAC/B,0BAA0B,EAAE,IAAI;QAChC,0BAA0B,EAAE,CAAC;QAC7B,KAAK,EAAE,QAAQ;QACf,kBAAkB,EAAE,EAAE;QACtB,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,IAAI;QAC1B,kBAAkB,EAAE,IAAI;QACxB,wBAAwB,EAAE,IAAI;QAC9B,wBAAwB,EAAE,IAAI;QAC9B,yBAAyB,EAAE,IAAI;QAC/B,yBAAyB,EAAE,IAAI;QAC/B,WAAW,EAAE,IAAI;QACjB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,YAAgC,EAAE;IAC9D,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,eAAe,EAAE,OAAO;QACxB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,EAAE;QACzB,aAAa,EAAE,EAAE;QACjB,sBAAsB,EAAE,IAAI;QAC5B,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAID;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,YAAwC,EAAE;IACrE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,QAAQ;QACzB,kBAAkB,EAAE,IAAI;QACxB,WAAW,EAAE,IAAI;QACjB,sBAAsB,EAAE,IAAI;QAC5B,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,IAAI;QACjB,gBAAgB,EAAE,IAAI;QACtB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,CAAC;QACjB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,YAAqC,EAAE;IAC/D,OAAO;QACL,EAAE,EAAE,SAAS;QACb,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,IAAI;QACf,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,YAAmC,EAAE;IAC9D,OAAO;QACL,SAAS,EAAE,kBAAkB;QAC7B,SAAS,EAAE,cAAc;QACzB,cAAc,EAAE,OAAO;QACvB,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,kCAAkC;QAC/C,iBAAiB,EAAE,aAAa;QAChC,cAAc,EAAE,QAAQ;QACxB,MAAM,EAAE,6BAA6B;QACrC,gBAAgB,EAAE,CAAC;QACnB,gBAAgB,EAAE,OAAO;QACzB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI;QACf,kBAAkB,EAAE,MAAM;QAC1B,4BAA4B,EAAE,KAAK;QACnC,iBAAiB,EAAE,WAAW;QAC9B,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,UAAU;QAC5B,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE;QACnF,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE;QACvG,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QAC3D,GAAG,SAAS;KACG,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAA2C,EAAE;IAE7C,OAAO;QACL,UAAU,EAAE,CAAC;QACb,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,KAAK;QAC3B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAqC,EAAE;IACxE,OAAO;QACL,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,WAAW;QACrB,cAAc,EAAE,OAAO;QACvB,SAAS,EAAE,WAAW;QACtB,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,CAAC;QACd,KAAK,EAAE,WAAW;QAClB,gBAAgB,EAAE,IAAI,GAAG,EAAU;QACnC,iBAAiB,EAAE,IAAI,GAAG,EAAU;QACpC,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,IAAI;QAClB,kBAAkB,EAAE,IAAI;QACxB,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,IAAI,GAAG,EAAyB;QAClD,sBAAsB,EAAE,KAAK;QAC7B,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,QAAQ;QACjB,oBAAoB,EAAE,IAAI;QAC1B,gBAAgB,EAAE,CAAC;QACnB,yBAAyB,EAAE,IAAI;QAC/B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAoB,EAAE,OAAgC;IACxF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,iFAAiF;AACjF,6EAA6E;AAC7E,iFAAiF;AACjF,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAChC,YAAqC,EAAE;IAEvC,OAAO;QACL,WAAW,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC3B,UAAU,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC1B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,qBAAqB,CACnC,YAAwC,EAAE;IAE1C,OAAO;QACL,cAAc,EAAE,OAAO;QACvB,WAAW,EAAE,kCAAkC;QAC/C,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACpD,eAAe,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC/B,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QACxB,WAAW,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC3B,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAClC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QAC5B,aAAa,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC7B,cAAc,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC9B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A judge session (verify/effect-reconciliation/verify-reconciliation.ts
3
+ * JudgeSessionOpener) whose every turn one function answers: for a test that
4
+ * judges in a single turn and asserts on what the judge was asked.
5
+ *
6
+ * @module testing/fixtures/judge-session
7
+ */
8
+ import type { JudgeSessionOpener } from '../../verify/effect-reconciliation/verify-reconciliation.js';
9
+ import type { JudgeCheckout } from '../../verify/effect-reconciliation/judge-workspace.js';
10
+ /** Answers one turn: the system prompt, the turn's user message and the workspace the session runs in. */
11
+ export type JudgeTurnAnswer = (systemPrompt: string, userMessage: string, workspace: JudgeCheckout) => Promise<string>;
12
+ /** A session opener whose turns `answer` answers; closing it does nothing. */
13
+ export declare function judgeAnswering(answer: JudgeTurnAnswer): JudgeSessionOpener;
14
+ //# sourceMappingURL=judge-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judge-session.d.ts","sourceRoot":"","sources":["../../../src/testing/fixtures/judge-session.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AACtG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAE3F,0GAA0G;AAC1G,MAAM,MAAM,eAAe,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEvH,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,kBAAkB,CAE1E"}
@@ -0,0 +1,10 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/verify/effect-reconciliation/judge-question.test.ts,
3
+ // packages/daemon/src/verify/effect-reconciliation/judge-workspace.test.ts,
4
+ // packages/daemon/src/verify/effect-reconciliation/verify-reconciliation.test.ts
5
+ // PINNED-BY-END
6
+ /** A session opener whose turns `answer` answers; closing it does nothing. */
7
+ export function judgeAnswering(answer) {
8
+ return (systemPrompt, workspace) => ({ ask: (userMessage) => answer(systemPrompt, userMessage, workspace), close: () => { } });
9
+ }
10
+ //# sourceMappingURL=judge-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judge-session.js","sourceRoot":"","sources":["../../../src/testing/fixtures/judge-session.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,sFAAsF;AACtF,8EAA8E;AAC9E,mFAAmF;AACnF,gBAAgB;AAgBhB,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,MAAuB;IACpD,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;AAChI,CAAC"}
@@ -35,6 +35,15 @@ export interface PipelineConfig {
35
35
  maxIterations?: number;
36
36
  };
37
37
  model?: string | null;
38
+ /**
39
+ * Per-pass effort levels (the focus-override layer of resolvePassEffort in
40
+ * @telora/daemon-core). An absent/null slot inherits the org default; a value
41
+ * outside the effort vocabulary is treated as unset by the resolver.
42
+ */
43
+ efforts?: {
44
+ coding?: string | null;
45
+ review?: string | null;
46
+ } | null;
38
47
  }
39
48
  /**
40
49
  * Focus from database (simplified for daemon)
@@ -1 +1 @@
1
- {"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../src/types/focus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../src/types/focus.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: 258 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/types/index.ts
2
+ // Pinned by: 261 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/types/index.ts
3
3
  // PINNED-BY-END
4
4
  /**
5
5
  * Domain-specific type re-exports.
@@ -1,4 +1,4 @@
1
- import { type OneShotModelProcess } from '../../backends/claude/one-shot-model.js';
1
+ import type { OneShotModelProcess } from '../../backends/claude/one-shot-model.js';
2
2
  import type { JudgeCheckout } from './judge-workspace.js';
3
3
  /** The tools the judge session may use at all. */
4
4
  export declare const JUDGE_TOOLS = "Read,Grep,Glob";
@@ -27,7 +27,7 @@ export declare function judgeEnv(base?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
27
27
  * which moves the fingerprint, which keeps the routine suite red until the live
28
28
  * test has proved the isolation on it.
29
29
  */
30
- export declare const JUDGE_PROVEN_CLAUDE_VERSION = "2.1.284";
30
+ export declare const JUDGE_PROVEN_CLAUDE_VERSION = "2.1.289";
31
31
  /**
32
32
  * Whether a `claude --version` line names EXACTLY the proven version: its
33
33
  * leading `x.y.z` token equals JUDGE_PROVEN_CLAUDE_VERSION (`2.1.2840` is not
@@ -77,6 +77,16 @@ export declare function normalizedGuardCommand(command: string, checkout: JudgeR
77
77
  export declare function judgeIsolationFingerprint(): string;
78
78
  /** The argv a judge session appends to the one-shot argv. */
79
79
  export declare function buildJudgeArgs(workspace: JudgeReadDirs): string[];
80
- /** A judge invoker over the one-shot wrapper, bound at the composition root. */
81
- export declare function claudeJudgeInvoker(label: string, process: OneShotModelProcess, readVersion: CliVersionReader): (systemPrompt: string, userMessage: string, workspace: JudgeCheckout) => Promise<string>;
80
+ /** One judge conversation: each ask is a turn of the same session. */
81
+ export interface JudgeSession {
82
+ ask(userMessage: string): Promise<string>;
83
+ close(): void;
84
+ }
85
+ /**
86
+ * A judge session opener over the one-shot session (module header), bound at
87
+ * the composition root: the session runs in the workspace's judged tree with
88
+ * the judge's argv, environment, guard, turn cap and timeout. Each turn has the
89
+ * turn cap and the timeout to itself.
90
+ */
91
+ export declare function claudeJudgeSession(label: string, process: OneShotModelProcess, readVersion: CliVersionReader): (systemPrompt: string, workspace: JudgeCheckout) => JudgeSession;
82
92
  //# sourceMappingURL=judge-invoker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"judge-invoker.d.ts","sourceRoot":"","sources":["../../../src/verify/effect-reconciliation/judge-invoker.ts"],"names":[],"mappings":"AA+CA,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACvG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,kDAAkD;AAClD,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAC5C,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAA6B,CAAC;AAC/E,4BAA4B;AAC5B,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAE/C,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,UAAU,CAAC,CAAC;AAO7E;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAMjE;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAIlE;AAED,uGAAuG;AACvG,wBAAgB,QAAQ,CAAC,IAAI,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAEjF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,YAAY,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAG9E;AAED,2FAA2F;AAC3F,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAID,wFAAwF;AACxF,MAAM,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;AAE7D,sEAAsE;AACtE,eAAO,MAAM,cAAc,EAAE,gBACqH,CAAC;AAEnJ;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,CAsB7F;AAED,uCAAuC;AACvC,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAQvF;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAclD;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,EAAE,CAUjE;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,IAC7F,cAAc,MAAM,EAAE,aAAa,MAAM,EAAE,WAAW,aAAa,KAAG,OAAO,CAAC,MAAM,CAAC,CAapG"}
1
+ {"version":3,"file":"judge-invoker.d.ts","sourceRoot":"","sources":["../../../src/verify/effect-reconciliation/judge-invoker.ts"],"names":[],"mappings":"AAoDA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAEnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,kDAAkD;AAClD,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAC5C,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAA6B,CAAC;AAC/E,4BAA4B;AAC5B,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAE/C,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,UAAU,CAAC,CAAC;AAO7E;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAMjE;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAIlE;AAED,uGAAuG;AACvG,wBAAgB,QAAQ,CAAC,IAAI,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAEjF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,YAAY,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAG9E;AAED,2FAA2F;AAC3F,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAID,wFAAwF;AACxF,MAAM,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;AAE7D,sEAAsE;AACtE,eAAO,MAAM,cAAc,EAAE,gBACqH,CAAC;AAEnJ;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,CAsB7F;AAED,uCAAuC;AACvC,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAQvF;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAclD;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,EAAE,CAUjE;AAED,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,IACnG,cAAc,MAAM,EAAE,WAAW,aAAa,KAAG,YAAY,CAgBtE"}
@@ -35,6 +35,11 @@
35
35
  * a full session every tick (verify/outcome-routing/incurable-model-hold.ts).
36
36
  * A timeout stays a `timeout` and is retried: a slow answer is not a
37
37
  * property of the input.
38
+ * - It is ONE conversation (backends/claude/one-shot-session.ts): user
39
+ * messages arrive as stream-json lines on stdin, so a follow-up turn (the
40
+ * citation correction, verify/effect-reconciliation/verify-reconciliation.ts)
41
+ * is answered by the same session that gave the first answer, under the same
42
+ * argv, environment and guard. It is never persisted or resumed.
38
43
  *
39
44
  * @module verify/effect-reconciliation/judge-invoker
40
45
  */
@@ -43,7 +48,7 @@ import { createHash } from 'node:crypto';
43
48
  import { readFileSync } from 'node:fs';
44
49
  import { dirname, extname, join } from 'node:path';
45
50
  import { fileURLToPath } from 'node:url';
46
- import { invokeOneShotModel } from '../../backends/claude/one-shot-model.js';
51
+ import { openOneShotSession, SESSION_INPUT_ARGS } from '../../backends/claude/one-shot-session.js';
47
52
  import { createLogger } from '../../log/daemon-log.js';
48
53
  const log = createLogger({ module: 'verification' });
49
54
  /** The tools the judge session may use at all. */
@@ -87,7 +92,7 @@ export function judgeEnv(base = process.env) {
87
92
  * which moves the fingerprint, which keeps the routine suite red until the live
88
93
  * test has proved the isolation on it.
89
94
  */
90
- export const JUDGE_PROVEN_CLAUDE_VERSION = '2.1.284';
95
+ export const JUDGE_PROVEN_CLAUDE_VERSION = '2.1.289';
91
96
  /**
92
97
  * Whether a `claude --version` line names EXACTLY the proven version: its
93
98
  * leading `x.y.z` token equals JUDGE_PROVEN_CLAUDE_VERSION (`2.1.2840` is not
@@ -160,8 +165,9 @@ export function normalizedGuardCommand(command, checkout) {
160
165
  /**
161
166
  * The isolation's implementation as this build runs it: the source of this
162
167
  * invoker (the argv, environment and hook command it builds), the guard, its hook
163
- * entry point and the export (judge-checkout.ts: how the judged tree is
164
- * written, and what is left out of it), without
168
+ * entry point, the export (judge-checkout.ts: how the judged tree is
169
+ * written, and what is left out of it) and the session that carries its turns
170
+ * (backends/claude/one-shot-session.ts), without
165
171
  * the generated PINNED-BY block (which names the tests that import a module, not
166
172
  * what it does).
167
173
  */
@@ -169,8 +175,12 @@ function isolationImplementationDigest() {
169
175
  const here = fileURLToPath(import.meta.url);
170
176
  const ext = extname(here);
171
177
  const hash = createHash('sha256');
172
- for (const name of ['judge-invoker', 'judge-tool-guard', 'judge-tool-guard-cli', 'judge-checkout']) {
173
- const source = readFileSync(join(dirname(here), `${name}${ext}`), 'utf8');
178
+ const sources = [
179
+ ...['judge-invoker', 'judge-tool-guard', 'judge-tool-guard-cli', 'judge-checkout'].map((name) => join(dirname(here), `${name}${ext}`)),
180
+ join(dirname(here), '..', '..', 'backends', 'claude', `one-shot-session${ext}`),
181
+ ];
182
+ for (const path of sources) {
183
+ const source = readFileSync(path, 'utf8');
174
184
  hash.update(source.replace(/^\/\/ PINNED-BY-BEGIN[\s\S]*?\/\/ PINNED-BY-END\n/m, ''));
175
185
  }
176
186
  return hash.digest('hex');
@@ -198,7 +208,7 @@ export function judgeIsolationFingerprint() {
198
208
  });
199
209
  const env = Object.entries(judgeEnv({})).sort(([a], [b]) => a.localeCompare(b));
200
210
  return createHash('sha256')
201
- .update(JSON.stringify({ args, env, implementation: isolationImplementationDigest(), claude: JUDGE_PROVEN_CLAUDE_VERSION }))
211
+ .update(JSON.stringify({ args, input: SESSION_INPUT_ARGS, env, implementation: isolationImplementationDigest(), claude: JUDGE_PROVEN_CLAUDE_VERSION }))
202
212
  .digest('hex');
203
213
  }
204
214
  /** The argv a judge session appends to the one-shot argv. */
@@ -213,11 +223,16 @@ export function buildJudgeArgs(workspace) {
213
223
  '--settings', judgeGuardSettings(workspace),
214
224
  ];
215
225
  }
216
- /** A judge invoker over the one-shot wrapper, bound at the composition root. */
217
- export function claudeJudgeInvoker(label, process, readVersion) {
218
- return async (systemPrompt, userMessage, workspace) => {
226
+ /**
227
+ * A judge session opener over the one-shot session (module header), bound at
228
+ * the composition root: the session runs in the workspace's judged tree with
229
+ * the judge's argv, environment, guard, turn cap and timeout. Each turn has the
230
+ * turn cap and the timeout to itself.
231
+ */
232
+ export function claudeJudgeSession(label, process, readVersion) {
233
+ return (systemPrompt, workspace) => {
219
234
  attestJudgeCli('claude', readVersion);
220
- const result = await invokeOneShotModel(systemPrompt, userMessage, {
235
+ const session = openOneShotSession(systemPrompt, {
221
236
  label,
222
237
  ...process,
223
238
  cwd: workspace.checkoutPath,
@@ -226,7 +241,10 @@ export function claudeJudgeInvoker(label, process, readVersion) {
226
241
  timeoutMs: JUDGE_TIMEOUT_MS,
227
242
  maxTurns: JUDGE_MAX_TURNS,
228
243
  });
229
- return result.text;
244
+ return {
245
+ ask: async (userMessage) => (await session.ask(userMessage)).text,
246
+ close: () => session.close(),
247
+ };
230
248
  };
231
249
  }
232
250
  //# sourceMappingURL=judge-invoker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"judge-invoker.js","sourceRoot":"","sources":["../../../src/verify/effect-reconciliation/judge-invoker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"judge-invoker.js","sourceRoot":"","sources":["../../../src/verify/effect-reconciliation/judge-invoker.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,16 @@
1
1
  import { type JudgeCheckout, type JudgeCitationResolver, type JudgeScope } from './judge-workspace.js';
2
+ import type { UnresolvedEvidenceRef } from '../shortfalls/ruling-evidence-resolution.js';
3
+ /** One judge conversation: each ask is the next turn of the same session; close ends it. */
4
+ export interface JudgeSession {
5
+ ask(userMessage: string): Promise<string>;
6
+ close(): void;
7
+ }
2
8
  /**
3
- * Invoke the judge: a bounded, read-only session in the workspace's pinned
4
- * checkout (bound at the composition root). Resolves with its final answer.
9
+ * Open a judge session: bounded, read-only, in the workspace's pinned checkout
10
+ * (bound at the composition root, verify/effect-reconciliation/judge-invoker.ts
11
+ * claudeJudgeSession).
5
12
  */
6
- export type JudgeInvoker = (systemPrompt: string, userMessage: string, workspace: JudgeCheckout) => Promise<string>;
13
+ export type JudgeSessionOpener = (systemPrompt: string, workspace: JudgeCheckout) => JudgeSession;
7
14
  /** How the achieved effect compares to the declared desired effect. */
8
15
  export type VerifyClassification = 'match' | 'legitimate_divergence' | 'shortfall';
9
16
  /** Cited worktree evidence the achieved desired effect is derived from. */
@@ -105,14 +112,20 @@ export declare function judgeEvidenceIsEmpty(ev: VerifyEvidence): boolean;
105
112
  export declare function citationReferencesEvidence(citation: string, ev: VerifyEvidence): boolean;
106
113
  /** Parse the model's JSON judgment. Tolerates code fences / surrounding prose. */
107
114
  export declare function parseReconcileJson(raw: string): ReconcileJudgment | null;
115
+ /**
116
+ * The correction turn's user message: each unresolved citation with the
117
+ * resolver's reason. Sent as the next turn of the SAME session, which already
118
+ * holds the question and its own first answer (module header). Pure.
119
+ */
120
+ export declare function buildCitationCorrectionMessage(sha: string, unresolved: readonly UnresolvedEvidenceRef[]): string;
108
121
  /**
109
122
  * Reconcile the declared desired effect against the delivered code.
110
123
  *
111
- * One bounded judge session in the pinned checkout. Throws ModelUnavailable when
124
+ * One bounded judge session (at most one correction turn within it) in the pinned checkout. Throws ModelUnavailable when
112
125
  * the judge cannot run (no pinned checkout, or the session itself could not) or
113
126
  * its verdict cannot be vouched for (unresolved citations); throws a plain Error
114
127
  * on an unparseable answer. The verify caller never flips an injection it could
115
128
  * not reconcile.
116
129
  */
117
- export declare function reconcileAchievedEffect(inputs: ReconcileInputs, invokeJudge: JudgeInvoker, resolveCitations: JudgeCitationResolver): Promise<ReconcileJudgment>;
130
+ export declare function reconcileAchievedEffect(inputs: ReconcileInputs, openJudge: JudgeSessionOpener, resolveCitations: JudgeCitationResolver): Promise<ReconcileJudgment>;
118
131
  //# sourceMappingURL=verify-reconciliation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-reconciliation.d.ts","sourceRoot":"","sources":["../../../src/verify/effect-reconciliation/verify-reconciliation.ts"],"names":[],"mappings":"AAgDA,OAAO,EAAqB,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG1H;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAGpH,uEAAuE;AACvE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,uBAAuB,GAAG,WAAW,CAAC;AAEnF,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,qHAAqH;IACrH,qBAAqB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,EAAE,cAAc,CAAC;IACzB,yEAAyE;IACzE,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,oBAAoB,CAAC;IACrC,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,0IAA0I;IAC1I,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,eAAO,MAAM,uBAAuB,okIA2B0O,CAAC;AAE/Q,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAkBD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAoBzE;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAQ3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAKhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAoBxF;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CA2DxE;AAwBD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,YAAY,EACzB,gBAAgB,EAAE,qBAAqB,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAyC5B"}
1
+ {"version":3,"file":"verify-reconciliation.d.ts","sourceRoot":"","sources":["../../../src/verify/effect-reconciliation/verify-reconciliation.ts"],"names":[],"mappings":"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"}
@@ -41,11 +41,27 @@
41
41
  * With no pinned checkout the judge is not called at all (held, never handed the
42
42
  * diff instead).
43
43
  *
44
+ * THE CORRECTION TURN. Before such a verdict is held, the judge is told what did
45
+ * not resolve and answers once more, IN THE SAME SESSION: the judge is a
46
+ * conversation (JudgeSession; verify/effect-reconciliation/judge-invoker.ts over
47
+ * backends/claude/one-shot-session.ts), and the follow-up is its next turn,
48
+ * listing each unresolved citation with the resolver's reason (e.g. "matches 2
49
+ * line(s) at <sha>, not the cited 1"). The judge still holds everything it read
50
+ * and answered. A corrected verdict whose citations all resolve is recorded like
51
+ * any first answer; one still unresolved -- or a correction that does not parse
52
+ * -- is held as unresolved_citations exactly as before. At most ONE correction
53
+ * turn per judgement, and one session per judgement; a first answer that
54
+ * resolves costs no extra turn. The exact-count rule is unchanged: a cited count
55
+ * is a claim and must be true -- the judge is only given the chance to make it
56
+ * true.
57
+ *
44
58
  * @module verify-reconciliation
45
59
  */
46
60
  import { ModelUnavailable } from '../../backends/claude/one-shot-model.js';
47
61
  import { citationShapeGaps } from './judge-workspace.js';
48
62
  import { boundedChangedFiles, boundedDiffStat, boundedText, FREE_TEXT_MAX_CHARS, oversizedStatement } from './judge-question.js';
63
+ import { createLogger } from '../../log/daemon-log.js';
64
+ const log = createLogger({ module: 'verification' });
49
65
  export const RECONCILE_SYSTEM_PROMPT = `You reconcile a software delivery's DECLARED desired effect against what the delivered code actually accomplishes, for a Goldratt reality-tree flip.
50
66
 
51
67
  You are working in a read-only export of the tree of the commit being judged (your working directory), with an export of the BASE tree -- the state before the delivery's change -- beside it when there is one. Both are plain files: there is no git and no shell. You will NOT be given the diff. You are given:
@@ -247,34 +263,69 @@ export function parseReconcileJson(raw) {
247
263
  }
248
264
  return judgment;
249
265
  }
266
+ /** What in a verdict's citations does not resolve at the judged commit, or is missing (no concrete citation, no grep: check). */
267
+ async function unresolvedCitations(judgment, workspace, resolveCitations) {
268
+ const citations = judgment.citations ?? [];
269
+ return [...await resolveCitations(workspace, citations), ...citationShapeGaps(citations)];
270
+ }
250
271
  /**
251
- * Hold a verdict that cannot be vouched for: its citations do not resolve at the
252
- * judged commit, or it cites no grep: check. Throws
253
- * ModelUnavailable 'unresolved_citations' -- held as unjudged, never recorded as
254
- * met or as a shortfall.
272
+ * The hold for a verdict that cannot be vouched for: ModelUnavailable
273
+ * 'unresolved_citations' -- held as unjudged, never recorded as met or as a
274
+ * shortfall. `after` names what the correction turn did.
255
275
  */
256
- async function requireResolvingCitations(judgment, workspace, resolveCitations) {
257
- const citations = judgment.citations ?? [];
258
- const unresolved = [...await resolveCitations(workspace, citations), ...citationShapeGaps(citations)];
259
- if (unresolved.length === 0)
260
- return;
261
- throw new ModelUnavailable({
276
+ function unresolvedCitationsHold(judgment, workspace, unresolved, after) {
277
+ return new ModelUnavailable({
262
278
  kind: 'unresolved_citations',
263
279
  label: 'verify-reconciliation',
264
280
  detail: `the ${judgment.classification} verdict is held as unjudged -- its citations do not resolve at `
265
- + `${workspace.sha.slice(0, 12)}: ${unresolved.map((u) => `${u.ref} (${u.reason})`).join('; ')}`,
281
+ + `${workspace.sha.slice(0, 12)}: ${unresolved.map((u) => `${u.ref} (${u.reason})`).join('; ')} (${after})`,
266
282
  });
267
283
  }
284
+ /**
285
+ * The correction turn's user message: each unresolved citation with the
286
+ * resolver's reason. Sent as the next turn of the SAME session, which already
287
+ * holds the question and its own first answer (module header). Pure.
288
+ */
289
+ export function buildCitationCorrectionMessage(sha, unresolved) {
290
+ return [
291
+ `The daemon checked your citations at ${sha.slice(0, 12)} and these do not resolve:\n`
292
+ + unresolved.map((u) => `- ${u.ref}: ${u.reason}`).join('\n'),
293
+ 'Re-check each of them in the judged tree (count a grep: check with the Grep tool, output_mode "count", summed over files) and '
294
+ + 'correct or replace it so that it resolves. Keep the verdict only if what you observe supports it; if it does not, change it. '
295
+ + 'Every verdict must still cite at least one concrete file, line or test and at least one grep: check. '
296
+ + 'Respond with the complete corrected JSON object only.',
297
+ ].join('\n\n');
298
+ }
299
+ /**
300
+ * The verdict, its citations all resolving: the first answer when they do,
301
+ * otherwise the ONE correction turn's answer (module header). Throws the
302
+ * unresolved_citations hold when the correction still does not resolve or does
303
+ * not parse.
304
+ */
305
+ async function withCorrectionTurn(first, workspace, session, resolveCitations) {
306
+ const unresolved = await unresolvedCitations(first, workspace, resolveCitations);
307
+ if (unresolved.length === 0)
308
+ return first;
309
+ log.info(`[verification] verify-reconciliation: ${unresolved.length} citation(s) do not resolve at ${workspace.sha.slice(0, 12)} `
310
+ + '-- the judge gets its one correction turn, in the same session, before the verdict is held');
311
+ const corrected = parseReconcileJson(await session.ask(buildCitationCorrectionMessage(workspace.sha, unresolved)));
312
+ if (!corrected)
313
+ throw unresolvedCitationsHold(first, workspace, unresolved, 'its correction turn returned no parseable verdict');
314
+ const still = await unresolvedCitations(corrected, workspace, resolveCitations);
315
+ if (still.length > 0)
316
+ throw unresolvedCitationsHold(corrected, workspace, still, 'still unresolved after its correction turn');
317
+ return corrected;
318
+ }
268
319
  /**
269
320
  * Reconcile the declared desired effect against the delivered code.
270
321
  *
271
- * One bounded judge session in the pinned checkout. Throws ModelUnavailable when
322
+ * One bounded judge session (at most one correction turn within it) in the pinned checkout. Throws ModelUnavailable when
272
323
  * the judge cannot run (no pinned checkout, or the session itself could not) or
273
324
  * its verdict cannot be vouched for (unresolved citations); throws a plain Error
274
325
  * on an unparseable answer. The verify caller never flips an injection it could
275
326
  * not reconcile.
276
327
  */
277
- export async function reconcileAchievedEffect(inputs, invokeJudge, resolveCitations) {
328
+ export async function reconcileAchievedEffect(inputs, openJudge, resolveCitations) {
278
329
  const workspace = inputs.evidence.workspace;
279
330
  if (!workspace) {
280
331
  throw new ModelUnavailable({
@@ -292,12 +343,18 @@ export async function reconcileAchievedEffect(inputs, invokeJudge, resolveCitati
292
343
  detail: `the ${oversized.name} is ${oversized.chars} characters, over the ${oversized.budgetChars} a judge is handed whole -- it is never cut, so it is not judged`,
293
344
  });
294
345
  }
295
- const raw = await invokeJudge(buildReconcileSystemPrompt(), buildReconcileUserMessage(inputs), workspace);
296
- const judgment = parseReconcileJson(raw);
297
- if (!judgment) {
298
- throw new Error('verify-reconciliation produced no parseable judgment');
346
+ const session = openJudge(buildReconcileSystemPrompt(), workspace);
347
+ let judgment;
348
+ try {
349
+ const first = parseReconcileJson(await session.ask(buildReconcileUserMessage(inputs)));
350
+ if (!first) {
351
+ throw new Error('verify-reconciliation produced no parseable judgment');
352
+ }
353
+ judgment = await withCorrectionTurn(first, workspace, session, resolveCitations);
354
+ }
355
+ finally {
356
+ session.close();
299
357
  }
300
- await requireResolvingCitations(judgment, workspace, resolveCitations);
301
358
  // Keep diffCitation only when it names a real changed file (absence is an absent field, never prose).
302
359
  if (judgment.classification === 'shortfall' &&
303
360
  judgment.diffCitation &&