@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.
- package/build-info.json +5 -3
- package/dist/backends/agent-backend.d.ts +8 -1
- package/dist/backends/agent-backend.d.ts.map +1 -1
- package/dist/backends/claude/claude-backend.d.ts.map +1 -1
- package/dist/backends/claude/claude-backend.js +4 -0
- package/dist/backends/claude/claude-backend.js.map +1 -1
- package/dist/backends/claude/one-shot-model.d.ts +11 -0
- package/dist/backends/claude/one-shot-model.d.ts.map +1 -1
- package/dist/backends/claude/one-shot-model.js +7 -4
- package/dist/backends/claude/one-shot-model.js.map +1 -1
- package/dist/backends/claude/one-shot-session.d.ts +15 -0
- package/dist/backends/claude/one-shot-session.d.ts.map +1 -0
- package/dist/backends/claude/one-shot-session.js +120 -0
- package/dist/backends/claude/one-shot-session.js.map +1 -0
- package/dist/backends/codex/codex-backend.d.ts.map +1 -1
- package/dist/backends/codex/codex-backend.js +10 -0
- package/dist/backends/codex/codex-backend.js.map +1 -1
- package/dist/ci/candidate-ref.d.ts +28 -0
- package/dist/ci/candidate-ref.d.ts.map +1 -0
- package/dist/ci/candidate-ref.js +81 -0
- package/dist/ci/candidate-ref.js.map +1 -0
- package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci/ci-sensor-loop.js +2 -1
- package/dist/ci/ci-sensor-loop.js.map +1 -1
- package/dist/ci/ci-status-git.d.ts +9 -0
- package/dist/ci/ci-status-git.d.ts.map +1 -1
- package/dist/ci/ci-status-git.js +16 -2
- package/dist/ci/ci-status-git.js.map +1 -1
- package/dist/ci/ci-status.d.ts.map +1 -1
- package/dist/ci/ci-status.js +5 -1
- package/dist/ci/ci-status.js.map +1 -1
- package/dist/completion/state-cascade/state-cascade.d.ts +14 -1
- package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade/state-cascade.js +26 -1
- package/dist/completion/state-cascade/state-cascade.js.map +1 -1
- package/dist/completion/team-exit/merge-phase.d.ts +11 -10
- package/dist/completion/team-exit/merge-phase.d.ts.map +1 -1
- package/dist/completion/team-exit/merge-phase.js +10 -10
- package/dist/completion/team-exit/merge-phase.js.map +1 -1
- package/dist/completion/team-teardown/team-lifecycle.d.ts +4 -3
- package/dist/completion/team-teardown/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-teardown/team-lifecycle.js +8 -8
- package/dist/completion/team-teardown/team-lifecycle.js.map +1 -1
- package/dist/composition/execution-git-context.d.ts.map +1 -1
- package/dist/composition/execution-git-context.js +2 -0
- package/dist/composition/execution-git-context.js.map +1 -1
- package/dist/composition/execution-merge-context.d.ts +11 -3
- package/dist/composition/execution-merge-context.d.ts.map +1 -1
- package/dist/composition/execution-merge-context.js +60 -12
- package/dist/composition/execution-merge-context.js.map +1 -1
- package/dist/composition/process-close-context.js +3 -3
- package/dist/composition/process-close-context.js.map +1 -1
- package/dist/composition/state-cascade-context.d.ts.map +1 -1
- package/dist/composition/state-cascade-context.js +10 -2
- package/dist/composition/state-cascade-context.js.map +1 -1
- package/dist/composition/team-lifecycle-context.js +3 -3
- package/dist/composition/team-lifecycle-context.js.map +1 -1
- package/dist/composition/verification-context.d.ts.map +1 -1
- package/dist/composition/verification-context.js +4 -23
- package/dist/composition/verification-context.js.map +1 -1
- package/dist/config/model-resolution.d.ts +25 -1
- package/dist/config/model-resolution.d.ts.map +1 -1
- package/dist/config/model-resolution.js +26 -1
- package/dist/config/model-resolution.js.map +1 -1
- package/dist/delivery/delivery-merge-ops.d.ts +2 -0
- package/dist/delivery/delivery-merge-ops.d.ts.map +1 -1
- package/dist/delivery/delivery-merge-ops.js +2 -2
- package/dist/delivery/delivery-merge-ops.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +9 -0
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +42 -31
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +1 -0
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-poller-spawn.d.ts.map +1 -1
- package/dist/focus/focus-poller-spawn.js +3 -1
- package/dist/focus/focus-poller-spawn.js.map +1 -1
- package/dist/focus/focus-spawn-decision.d.ts.map +1 -1
- package/dist/focus/focus-spawn-decision.js +1 -0
- package/dist/focus/focus-spawn-decision.js.map +1 -1
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +2 -1
- package/dist/git/index.js.map +1 -1
- package/dist/git/merge.d.ts +12 -2
- package/dist/git/merge.d.ts.map +1 -1
- package/dist/git/merge.js +32 -33
- package/dist/git/merge.js.map +1 -1
- package/dist/merge/approval-gate-state.d.ts.map +1 -1
- package/dist/merge/approval-gate-state.js +8 -7
- package/dist/merge/approval-gate-state.js.map +1 -1
- package/dist/merge/candidate-rework.d.ts +44 -0
- package/dist/merge/candidate-rework.d.ts.map +1 -0
- package/dist/merge/candidate-rework.js +152 -0
- package/dist/merge/candidate-rework.js.map +1 -0
- package/dist/merge/completion-hold-record.d.ts +20 -0
- package/dist/merge/completion-hold-record.d.ts.map +1 -0
- package/dist/merge/completion-hold-record.js +130 -0
- package/dist/merge/completion-hold-record.js.map +1 -0
- package/dist/merge/completion-merge-driver.d.ts +96 -0
- package/dist/merge/completion-merge-driver.d.ts.map +1 -0
- package/dist/merge/completion-merge-driver.js +94 -0
- package/dist/merge/completion-merge-driver.js.map +1 -0
- package/dist/merge/completion-merge-gate.d.ts +71 -0
- package/dist/merge/completion-merge-gate.d.ts.map +1 -0
- package/dist/merge/completion-merge-gate.js +185 -0
- package/dist/merge/completion-merge-gate.js.map +1 -0
- package/dist/merge/completion-merge-pending.d.ts +30 -0
- package/dist/merge/completion-merge-pending.d.ts.map +1 -0
- package/dist/merge/completion-merge-pending.js +75 -0
- package/dist/merge/completion-merge-pending.js.map +1 -0
- package/dist/merge/focus-merge.d.ts +21 -6
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +65 -45
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/focus-worktree-removal.d.ts +6 -6
- package/dist/merge/focus-worktree-removal.d.ts.map +1 -1
- package/dist/merge/focus-worktree-removal.js +10 -6
- package/dist/merge/focus-worktree-removal.js.map +1 -1
- package/dist/merge/merge-back-conflict.d.ts.map +1 -1
- package/dist/merge/merge-back-conflict.js +2 -0
- package/dist/merge/merge-back-conflict.js.map +1 -1
- package/dist/merge/merge-back-followup.d.ts.map +1 -1
- package/dist/merge/merge-back-followup.js +7 -0
- package/dist/merge/merge-back-followup.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +36 -14
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +109 -66
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-gate-coverage.d.ts +9 -61
- package/dist/merge/merge-gate-coverage.d.ts.map +1 -1
- package/dist/merge/merge-gate-coverage.js +33 -167
- package/dist/merge/merge-gate-coverage.js.map +1 -1
- package/dist/nexus/escalation-bridge.d.ts.map +1 -1
- package/dist/nexus/escalation-bridge.js +2 -1
- package/dist/nexus/escalation-bridge.js.map +1 -1
- package/dist/nexus/file-escalation.d.ts.map +1 -1
- package/dist/nexus/file-escalation.js +5 -1
- package/dist/nexus/file-escalation.js.map +1 -1
- package/dist/queries/api-client/shared.js +1 -1
- package/dist/queries/deliveries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries/deliveries.js +1 -0
- package/dist/queries/deliveries/deliveries.js.map +1 -1
- package/dist/queries/delivery-gate-state/delivery-gate-state.js +1 -1
- package/dist/queries/delivery-gate-state/verify-own-holds.d.ts +10 -3
- package/dist/queries/delivery-gate-state/verify-own-holds.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state/verify-own-holds.js +2 -0
- package/dist/queries/delivery-gate-state/verify-own-holds.js.map +1 -1
- package/dist/queries/escalations/cause-key.d.ts.map +1 -1
- package/dist/queries/escalations/cause-key.js +1 -0
- package/dist/queries/escalations/cause-key.js.map +1 -1
- package/dist/queries/escalations/escalations.d.ts.map +1 -1
- package/dist/queries/escalations/escalations.js +2 -1
- package/dist/queries/escalations/escalations.js.map +1 -1
- package/dist/queries/focuses/focus-discovery.d.ts +14 -0
- package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focuses/focus-discovery.js +4 -0
- package/dist/queries/focuses/focus-discovery.js.map +1 -1
- package/dist/queries/focuses/focuses.d.ts +12 -2
- package/dist/queries/focuses/focuses.d.ts.map +1 -1
- package/dist/queries/focuses/focuses.js +24 -3
- package/dist/queries/focuses/focuses.js.map +1 -1
- package/dist/queries/org-config/local-models.d.ts.map +1 -1
- package/dist/queries/org-config/local-models.js +2 -1
- package/dist/queries/org-config/local-models.js.map +1 -1
- package/dist/queries/wire-schemas/schemas.d.ts +48 -0
- package/dist/queries/wire-schemas/schemas.d.ts.map +1 -1
- package/dist/queries/wire-schemas/schemas.js +15 -0
- package/dist/queries/wire-schemas/schemas.js.map +1 -1
- package/dist/spawn/model-routing.d.ts +13 -8
- package/dist/spawn/model-routing.d.ts.map +1 -1
- package/dist/spawn/model-routing.js +14 -8
- package/dist/spawn/model-routing.js.map +1 -1
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +1 -0
- package/dist/spawn/review-hold-park.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts +7 -0
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/supervision/agent-resolvable-retirement.d.ts +1 -1
- package/dist/supervision/agent-resolvable-retirement.d.ts.map +1 -1
- package/dist/supervision/agent-resolvable-retirement.js +2 -1
- package/dist/supervision/agent-resolvable-retirement.js.map +1 -1
- package/dist/supervision/escalation-filing.js +1 -1
- package/dist/supervision/incident-correlation.d.ts +3 -0
- package/dist/supervision/incident-correlation.d.ts.map +1 -1
- package/dist/supervision/incident-correlation.js +4 -0
- package/dist/supervision/incident-correlation.js.map +1 -1
- package/dist/supervision/null-role-spawn.d.ts.map +1 -1
- package/dist/supervision/null-role-spawn.js +1 -0
- package/dist/supervision/null-role-spawn.js.map +1 -1
- package/dist/supervision/spawn-cooldown.js +1 -1
- package/dist/supervision/stop-rows-work-holds.d.ts +4 -4
- package/dist/supervision/stop-rows-work-holds.d.ts.map +1 -1
- package/dist/supervision/stop-rows-work-holds.js +17 -15
- package/dist/supervision/stop-rows-work-holds.js.map +1 -1
- package/dist/testing/fixtures/api-client.js +1 -1
- package/dist/testing/fixtures/index.d.ts.map +1 -1
- package/dist/testing/fixtures/index.js +3 -1
- package/dist/testing/fixtures/index.js.map +1 -1
- package/dist/testing/fixtures/judge-session.d.ts +14 -0
- package/dist/testing/fixtures/judge-session.d.ts.map +1 -0
- package/dist/testing/fixtures/judge-session.js +10 -0
- package/dist/testing/fixtures/judge-session.js.map +1 -0
- package/dist/types/focus.d.ts +9 -0
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/effect-reconciliation/judge-invoker.d.ts +14 -4
- package/dist/verify/effect-reconciliation/judge-invoker.d.ts.map +1 -1
- package/dist/verify/effect-reconciliation/judge-invoker.js +30 -12
- package/dist/verify/effect-reconciliation/judge-invoker.js.map +1 -1
- package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts +18 -5
- package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts.map +1 -1
- package/dist/verify/effect-reconciliation/verify-reconciliation.js +75 -18
- package/dist/verify/effect-reconciliation/verify-reconciliation.js.map +1 -1
- package/dist/verify/effect-reconciliation/verify-restatement.js +1 -1
- package/dist/verify/engine/verification-deps.js +1 -1
- package/dist/verify/engine/verification-engine.js +1 -1
- package/dist/verify/gate-config/verification-config.js +1 -1
- package/dist/verify/inspection-strategies/verification-strategies.js +1 -1
- package/dist/verify/inspection-strategies/verification-strategies.js.map +1 -1
- package/dist/verify/outcome-routing/incurable-model-hold.d.ts +9 -3
- package/dist/verify/outcome-routing/incurable-model-hold.d.ts.map +1 -1
- package/dist/verify/outcome-routing/incurable-model-hold.js +18 -5
- package/dist/verify/outcome-routing/incurable-model-hold.js.map +1 -1
- package/dist/verify/outcome-routing/repeating-model-hold.d.ts +30 -0
- package/dist/verify/outcome-routing/repeating-model-hold.d.ts.map +1 -0
- package/dist/verify/outcome-routing/repeating-model-hold.js +135 -0
- package/dist/verify/outcome-routing/repeating-model-hold.js.map +1 -0
- package/dist/verify/outcome-routing/verification-history-reset.d.ts.map +1 -1
- package/dist/verify/outcome-routing/verification-history-reset.js +1 -0
- package/dist/verify/outcome-routing/verification-history-reset.js.map +1 -1
- package/dist/verify/outcome-routing/verification-model-unavailable-hold.d.ts +10 -4
- package/dist/verify/outcome-routing/verification-model-unavailable-hold.d.ts.map +1 -1
- package/dist/verify/outcome-routing/verification-model-unavailable-hold.js +24 -6
- package/dist/verify/outcome-routing/verification-model-unavailable-hold.js.map +1 -1
- package/dist/verify/run-selection/default-on-guards.js +1 -1
- package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts +4 -3
- package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts.map +1 -1
- package/dist/verify/run-selection/pre-review-gate-dispatch.js +23 -7
- package/dist/verify/run-selection/pre-review-gate-dispatch.js.map +1 -1
- package/dist/verify/run-selection/verification-default-on.js +1 -1
- package/dist/verify/run-selection/verification-default-on.js.map +1 -1
- package/dist/worktree/provision.d.ts.map +1 -1
- package/dist/worktree/provision.js +1 -0
- package/dist/worktree/provision.js.map +1 -1
- package/dist/worktree/safety.d.ts.map +1 -1
- package/dist/worktree/safety.js +1 -0
- package/dist/worktree/safety.js.map +1 -1
- 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
|
-
/**
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
|
|
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,
|
|
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: '
|
|
87
|
-
enforcedBy: 'merge/merge-gate
|
|
88
|
-
condition: 'A focus-branch merge to integration
|
|
89
|
-
|
|
90
|
-
'could not be read
|
|
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
|
-
'
|
|
93
|
-
'
|
|
94
|
-
|
|
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
|
|
98
|
-
releaseCondition: '
|
|
99
|
-
evaluate: ({
|
|
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
|
-
{
|
|
103
|
-
{
|
|
104
|
+
{ gateReadable: true, admitted: false },
|
|
105
|
+
{ gateReadable: false, admitted: false },
|
|
104
106
|
],
|
|
105
|
-
release: [{
|
|
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":"AAAA,8FAA8F;AAC9F,mEAAmE;AACnE,gBAAgB;AAEhB;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA8C/C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,cAAc,EAAE,cAAc,CAAqB;QACjD,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,qCAAqC;QACjD,SAAS,EACP,wGAAwG;YACxG,0FAA0F;QAC5F,SAAS,EAAE;YACT,4EAA4E;YAC5E,+CAA+C;YAC/C,6BAA6B;SAC9B;QACD,MAAM,EACJ,uGAAuG;YACvG,+EAA+E;QACjF,QAAQ,EACN,wGAAwG;YACxG,qCAAqC;QACvC,gBAAgB,EAAE,0EAA0E;QAC5F,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,WAAW,IAAI,KAAK;QAC1D,gBAAgB,EAAE;YAChB,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACrE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACtE;KACF,CAAC;IAEF,2BAA2B,EAAE,cAAc,CAA6B;QACtE,EAAE,EAAE,6BAA6B;QACjC,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,+BAA+B;QACxC,UAAU,EAAE,uDAAuD;QACnE,SAAS,EACP,oGAAoG;YACpG,iGAAiG;QACnG,SAAS,EAAE,CAAC,4EAA4E,CAAC;QACzF,MAAM,EACJ,oGAAoG;YACpG,kFAAkF;QACpF,QAAQ,EAAE,gGAAgG;QAC1G,gBAAgB,EAAE,2CAA2C;QAC7D,QAAQ,EAAE,CAAC,EAAE,sBAAsB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,IAAI,sBAAsB,GAAG,CAAC;QAC9F,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP,EAAE,sBAAsB,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE;gBAChD,EAAE,sBAAsB,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;aAChD;YACD,OAAO,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;SAC5D;KACF,CAAC;IAEF,gBAAgB,EAAE,cAAc,CAAuB;QACrD,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,iCAAiC;QAC1C,UAAU,EAAE,8BAA8B;QAC1C,SAAS,EACP,kGAAkG;YAClG,gGAAgG;YAChG,yBAAyB;QAC3B,SAAS,EAAE,CAAC,4DAA4D,CAAC;QACzE,MAAM,EAAE,qEAAqE;QAC7E,QAAQ,EAAE,iGAAiG;QAC3G,gBAAgB,EAAE,+BAA+B;QACjD,QAAQ,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,mBAAmB;QAC1D,gBAAgB,EAAE;YAChB,OAAO,EAAE,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;YACxC,OAAO,EAAE,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;SAC1C;KACF,CAAC;IAEF,mBAAmB,EAAE,cAAc,CAAyB;QAC1D,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"stop-rows-work-holds.js","sourceRoot":"","sources":["../../src/supervision/stop-rows-work-holds.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,mEAAmE;AACnE,gBAAgB;AAEhB;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA8C/C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,cAAc,EAAE,cAAc,CAAqB;QACjD,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,qCAAqC;QACjD,SAAS,EACP,wGAAwG;YACxG,0FAA0F;QAC5F,SAAS,EAAE;YACT,4EAA4E;YAC5E,+CAA+C;YAC/C,6BAA6B;SAC9B;QACD,MAAM,EACJ,uGAAuG;YACvG,+EAA+E;QACjF,QAAQ,EACN,wGAAwG;YACxG,qCAAqC;QACvC,gBAAgB,EAAE,0EAA0E;QAC5F,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,WAAW,IAAI,KAAK;QAC1D,gBAAgB,EAAE;YAChB,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACrE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACtE;KACF,CAAC;IAEF,2BAA2B,EAAE,cAAc,CAA6B;QACtE,EAAE,EAAE,6BAA6B;QACjC,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,+BAA+B;QACxC,UAAU,EAAE,uDAAuD;QACnE,SAAS,EACP,oGAAoG;YACpG,iGAAiG;QACnG,SAAS,EAAE,CAAC,4EAA4E,CAAC;QACzF,MAAM,EACJ,oGAAoG;YACpG,kFAAkF;QACpF,QAAQ,EAAE,gGAAgG;QAC1G,gBAAgB,EAAE,2CAA2C;QAC7D,QAAQ,EAAE,CAAC,EAAE,sBAAsB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,IAAI,sBAAsB,GAAG,CAAC;QAC9F,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP,EAAE,sBAAsB,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE;gBAChD,EAAE,sBAAsB,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;aAChD;YACD,OAAO,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;SAC5D;KACF,CAAC;IAEF,gBAAgB,EAAE,cAAc,CAAuB;QACrD,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,iCAAiC;QAC1C,UAAU,EAAE,8BAA8B;QAC1C,SAAS,EACP,kGAAkG;YAClG,gGAAgG;YAChG,yBAAyB;QAC3B,SAAS,EAAE,CAAC,4DAA4D,CAAC;QACzE,MAAM,EAAE,qEAAqE;QAC7E,QAAQ,EAAE,iGAAiG;QAC3G,gBAAgB,EAAE,+BAA+B;QACjD,QAAQ,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,mBAAmB;QAC1D,gBAAgB,EAAE;YAChB,OAAO,EAAE,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;YACxC,OAAO,EAAE,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;SAC1C;KACF,CAAC;IAEF,mBAAmB,EAAE,cAAc,CAAyB;QAC1D,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,kDAAkD;QAC3D,UAAU,EAAE,gCAAgC;QAC5C,SAAS,EACP,mHAAmH;YACnH,8GAA8G;YAC9G,kHAAkH;YAClH,gBAAgB;QAClB,SAAS,EAAE;YACT,2CAA2C;YAC3C,qGAAqG;YACrG,2DAA2D;YAC3D,8DAA8D;SAC/D;QACD,MAAM,EAAE,gKAAgK;QACxK,QAAQ,EAAE,4GAA4G;QACtH,gBAAgB,EAAE,8FAA8F;QAChH,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ;QACpE,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;gBACvC,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;aACzC;YACD,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAClD;KACF,CAAC;IAEF,2BAA2B,EAAE,cAAc,CAA4B;QACrE,EAAE,EAAE,6BAA6B;QACjC,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,sBAAsB;QAClC,SAAS,EACP,uGAAuG;YACvG,4GAA4G;QAC9G,SAAS,EAAE,CAAC,gFAAgF,CAAC;QAC7F,MAAM,EAAE,mDAAmD;QAC3D,QAAQ,EAAE,0GAA0G;QACpH,gBAAgB,EAAE,kDAAkD;QACpE,QAAQ,EAAE,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,oBAAoB;QAC5D,gBAAgB,EAAE;YAChB,OAAO,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;YACzC,OAAO,EAAE,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;SAC3C;KACF,CAAC;IAEF,eAAe,EAAE,cAAc,CAAiB;QAC9C,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,oCAAoC;QAC7C,UAAU,EAAE,0CAA0C;QACtD,SAAS,EACP,kGAAkG;YAClG,uGAAuG;YACvG,qDAAqD;QACvD,SAAS,EAAE,CAAC,mGAAmG,CAAC;QAChH,MAAM,EACJ,yGAAyG;YACzG,oDAAoD;QACtD,QAAQ,EAAE,qGAAqG;QAC/G,gBAAgB,EAAE,4CAA4C;QAC9D,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC;QACvE,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;gBACxC,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;aAC1C;YACD,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;SACnD;KACF,CAAC;CACM,CAAC"}
|
|
@@ -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:
|
|
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,
|
|
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:
|
|
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":"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,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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/fixtures/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
package/dist/types/focus.d.ts
CHANGED
|
@@ -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":"AAUA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE7E;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE;QACF,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,cAAc,GAAG,QAAQ,GAAG,cAAc,CAAC;KAC3D,CAAC;IACF,EAAE,EAAE;QACF,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,MAAM,CAAC,EAAE;QACP;;;;;;WAMG;QACH,OAAO,EAAE,OAAO,CAAC;QACjB;;;;WAIG;QACH,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../src/types/focus.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js
CHANGED
|
@@ -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:
|
|
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 {
|
|
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.
|
|
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
|
-
/**
|
|
81
|
-
export
|
|
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":"
|
|
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 {
|
|
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.
|
|
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
|
|
164
|
-
* written, and what is left out of it)
|
|
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
|
-
|
|
173
|
-
|
|
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
|
-
/**
|
|
217
|
-
|
|
218
|
-
|
|
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
|
|
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
|
|
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":"AAAA,8FAA8F;AAC9F,qFAAqF;AACrF,qFAAqF;AACrF,mFAAmF;AACnF,+EAA+E;AAC/E,kFAAkF;AAClF,gBAAgB;AAEhB
|
|
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
|
-
*
|
|
4
|
-
*
|
|
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
|
|
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,
|
|
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":"
|
|
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
|
-
*
|
|
252
|
-
*
|
|
253
|
-
*
|
|
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
|
-
|
|
257
|
-
|
|
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,
|
|
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
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
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 &&
|