loopforge 3.7.1 → 3.8.1
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/README.md +171 -169
- package/dist/audit.d.ts +53 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +106 -22
- package/dist/audit.js.map +1 -1
- package/dist/canonical-state.d.ts +52 -67
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +134 -147
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +103 -4
- package/dist/cli.js.map +1 -1
- package/dist/cognitive-facts.d.ts +13 -0
- package/dist/cognitive-facts.d.ts.map +1 -1
- package/dist/cognitive-facts.js +28 -13
- package/dist/cognitive-facts.js.map +1 -1
- package/dist/committed-round.d.ts +103 -21
- package/dist/committed-round.d.ts.map +1 -1
- package/dist/committed-round.js +188 -45
- package/dist/committed-round.js.map +1 -1
- package/dist/contract-items.d.ts +55 -0
- package/dist/contract-items.d.ts.map +1 -0
- package/dist/contract-items.js +180 -0
- package/dist/contract-items.js.map +1 -0
- package/dist/enforcement-gate.d.ts +20 -2
- package/dist/enforcement-gate.d.ts.map +1 -1
- package/dist/enforcement-gate.js +197 -386
- package/dist/enforcement-gate.js.map +1 -1
- package/dist/engine.d.ts +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +53 -38
- package/dist/engine.js.map +1 -1
- package/dist/evidence-claims.d.ts +4 -4
- package/dist/evidence-claims.d.ts.map +1 -1
- package/dist/evidence-claims.js +16 -14
- package/dist/evidence-claims.js.map +1 -1
- package/dist/evidence-provider.d.ts +85 -89
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +328 -184
- package/dist/evidence-provider.js.map +1 -1
- package/dist/explain.d.ts +76 -0
- package/dist/explain.d.ts.map +1 -0
- package/dist/explain.js +127 -0
- package/dist/explain.js.map +1 -0
- package/dist/generate-schema.js +152 -16
- package/dist/generate-schema.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +40 -53
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +229 -553
- package/dist/loop-compiler.js.map +1 -1
- package/dist/loop-extras-parser.d.ts +0 -1
- package/dist/loop-extras-parser.d.ts.map +1 -1
- package/dist/loop-extras-parser.js +0 -4
- package/dist/loop-extras-parser.js.map +1 -1
- package/dist/loop-projection.d.ts.map +1 -1
- package/dist/loop-projection.js +3 -1
- package/dist/loop-projection.js.map +1 -1
- package/dist/mcp/round-lifecycle.d.ts +30 -21
- package/dist/mcp/round-lifecycle.d.ts.map +1 -1
- package/dist/mcp/round-lifecycle.js +47 -103
- package/dist/mcp/round-lifecycle.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +51 -7
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +39 -23
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +148 -163
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/submission-boundary.d.ts +89 -0
- package/dist/mcp/submission-boundary.d.ts.map +1 -0
- package/dist/mcp/submission-boundary.js +203 -0
- package/dist/mcp/submission-boundary.js.map +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +249 -128
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy-metrics.js +2 -2
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +55 -93
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +149 -38
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +1 -32
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +282 -435
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/prompt-policy.d.ts +1 -4
- package/dist/prompt-policy.d.ts.map +1 -1
- package/dist/prompt-policy.js +6 -7
- package/dist/prompt-policy.js.map +1 -1
- package/dist/protocol.d.ts +365 -142
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +21 -66
- package/dist/protocol.js.map +1 -1
- package/dist/replay.js +2 -2
- package/dist/replay.js.map +1 -1
- package/dist/round-contract.d.ts +69 -57
- package/dist/round-contract.d.ts.map +1 -1
- package/dist/round-contract.js +104 -64
- package/dist/round-contract.js.map +1 -1
- package/dist/round-coordinator.d.ts +36 -16
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +166 -102
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +3 -5
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +0 -1
- package/dist/round-driver.js.map +1 -1
- package/dist/round-facts.d.ts +96 -0
- package/dist/round-facts.d.ts.map +1 -0
- package/dist/round-facts.js +216 -0
- package/dist/round-facts.js.map +1 -0
- package/dist/round-transaction.d.ts +19 -9
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +90 -22
- package/dist/round-transaction.js.map +1 -1
- package/dist/self-eval.d.ts +87 -9
- package/dist/self-eval.d.ts.map +1 -1
- package/dist/self-eval.js +396 -27
- package/dist/self-eval.js.map +1 -1
- package/dist/subgoal-state.d.ts +77 -0
- package/dist/subgoal-state.d.ts.map +1 -0
- package/dist/subgoal-state.js +198 -0
- package/dist/subgoal-state.js.map +1 -0
- package/dist/token-utils.d.ts +52 -19
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +83 -72
- package/dist/token-utils.js.map +1 -1
- package/dist/verification-gate.d.ts +14 -31
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +178 -496
- package/dist/verification-gate.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workspace.d.ts +9 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +17 -0
- package/dist/workspace.js.map +1 -1
- package/loop_policy.json +6 -30
- package/package.json +1 -1
- package/skills/perception/SKILL.md +243 -79
|
@@ -20,25 +20,115 @@
|
|
|
20
20
|
import { queryLoopEntries } from "./loop-store.js";
|
|
21
21
|
import { CHECK_SUCCESS_WITHOUT_VERIFIED_EVIDENCE, verifySelfEvaluation } from "./verification-gate.js";
|
|
22
22
|
import { entryRound, isRecord } from "./token-utils.js";
|
|
23
|
-
import { effectiveSuccess } from "./self-eval.js";
|
|
24
|
-
import { decodeCommittedRound } from "./committed-round.js";
|
|
23
|
+
import { effectiveOutcome, effectiveSuccess } from "./self-eval.js";
|
|
24
|
+
import { derivationRounds, decodeCommittedRound } from "./committed-round.js";
|
|
25
25
|
import { makeRoundId } from "./round-transaction.js";
|
|
26
26
|
import { enforceRound, buildRejectionPrompt, findSafeRestorePoint, buildBacktrackPrompt, findBacktrackTargetGitHead, } from "./enforcement-gate.js";
|
|
27
27
|
import { logEvent } from "./observability.js";
|
|
28
28
|
import { getPolicy } from "./policy.js";
|
|
29
|
+
import { deriveRoundContractView } from "./round-contract.js";
|
|
30
|
+
import { roundVerificationStatus, } from "./contract-items.js";
|
|
29
31
|
/** v3.2/v3.6: Whether a round's success enters the success trajectory.
|
|
30
32
|
* Excluded when the gate contradicted the round, or when the success claim
|
|
31
33
|
* carries no machine-verified observation — the merged R8 check fires a
|
|
32
34
|
* warn under machine_backed_success "warn" (v3.6: success_unverified merged
|
|
33
35
|
* into R8; its warn-level trajectory exclusion moved with it) — an
|
|
34
36
|
* accepted-but-unverified round is not evidence of progress. */
|
|
35
|
-
function shouldPushSuccess(gateContradicted, verificationFlags) {
|
|
37
|
+
function shouldPushSuccess(gateContradicted, verificationFlags, contractStatuses) {
|
|
36
38
|
if (gateContradicted)
|
|
37
39
|
return false;
|
|
40
|
+
// v3.8: an unverified contract item (or a claimed-but-unbacked success)
|
|
41
|
+
// keeps the round out of the success trajectory — an accepted-but-unverified
|
|
42
|
+
// round is not evidence of progress.
|
|
43
|
+
if (contractStatuses && contractStatuses.insufficientCount > 0)
|
|
44
|
+
return false;
|
|
38
45
|
return !verificationFlags.some((flag) => flag.severity === "warn" &&
|
|
39
46
|
flag.check === CHECK_SUCCESS_WITHOUT_VERIFIED_EVIDENCE);
|
|
40
47
|
}
|
|
41
48
|
// ── RoundCoordinator ───────────────────────────────────────────────────────
|
|
49
|
+
/** v3.8.1: The rolled-back branch's facts — the ONE derivation of which rounds
|
|
50
|
+
* failed, which approaches must not be repeated, which assumptions were
|
|
51
|
+
* falsified, and which files (with their failed-round git fingerprints) the
|
|
52
|
+
* agent must restore.
|
|
53
|
+
*
|
|
54
|
+
* Sources are COMMITTED rounds above the restore point; rejected attempts are
|
|
55
|
+
* not durable history and never become a source. The in-flight attempt that
|
|
56
|
+
* triggered the rollback is the one exception — its evaluation lives in this
|
|
57
|
+
* process, not in committed history.
|
|
58
|
+
*
|
|
59
|
+
* Extracted from the coordinator's inline walk so it is unit-testable without
|
|
60
|
+
* driving a whole rollback, and so the prompt, the state file and the
|
|
61
|
+
* committed decision all describe one event. */
|
|
62
|
+
export function deriveBacktrackRecoveryFacts(input) {
|
|
63
|
+
const { currentRound, restoreRound, vaultEntries, selfEval } = input;
|
|
64
|
+
// v2.13: files changed in skipped rounds, for the restore prompt.
|
|
65
|
+
const skippedFiles = [];
|
|
66
|
+
// M3 (v3.7.x): each skipped file's git fingerprint at its failed round.
|
|
67
|
+
// Recorded from the round's own after-evidence (machine data, not the
|
|
68
|
+
// agent's report); later rounds overwrite earlier ones so the map holds the
|
|
69
|
+
// LAST failed state of every file.
|
|
70
|
+
const skippedFingerprints = {};
|
|
71
|
+
const failedRounds = [];
|
|
72
|
+
const approaches = [];
|
|
73
|
+
const wrongAssumptions = [];
|
|
74
|
+
for (let r = restoreRound + 1; r < currentRound; r++) {
|
|
75
|
+
// v3.2.1: match the feedback entry (execution_report lives there) — the
|
|
76
|
+
// compile-time lineage entry for the same round precedes it in the flat
|
|
77
|
+
// view and carries no evidence.
|
|
78
|
+
const entry = vaultEntries.find((e) => entryRound(e) === r && e.task_type !== "loop_lineage");
|
|
79
|
+
const view = entry ? decodeCommittedRound(entry) : null;
|
|
80
|
+
const evaluation = view?.evaluation ?? null;
|
|
81
|
+
if (entry?.execution_report) {
|
|
82
|
+
const ev = entry.execution_report;
|
|
83
|
+
const files = Array.isArray(ev.files_changed)
|
|
84
|
+
? ev.files_changed.filter((f) => typeof f === "string")
|
|
85
|
+
: [];
|
|
86
|
+
const git = view?.afterEvidence.find((snapshot) => snapshot.kind === "git" &&
|
|
87
|
+
isRecord(snapshot.data.fingerprints));
|
|
88
|
+
const gitFingerprints = git && git.kind === "git"
|
|
89
|
+
? git.data.fingerprints
|
|
90
|
+
: null;
|
|
91
|
+
for (const f of files) {
|
|
92
|
+
if (!skippedFiles.includes(f))
|
|
93
|
+
skippedFiles.push(f);
|
|
94
|
+
const fp = gitFingerprints?.[f];
|
|
95
|
+
if (typeof fp === "string")
|
|
96
|
+
skippedFingerprints[f] = fp;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const summary = evaluation?.output_summary ?? "";
|
|
100
|
+
if (summary.trim().length > 0) {
|
|
101
|
+
failedRounds.push(r);
|
|
102
|
+
approaches.push(summary.trim().slice(0, 200));
|
|
103
|
+
}
|
|
104
|
+
const assumptions = (evaluation?.wrong_assumptions ?? [])
|
|
105
|
+
.filter((v) => typeof v === "string")
|
|
106
|
+
.map((s) => s.slice(0, 500));
|
|
107
|
+
for (const a of assumptions) {
|
|
108
|
+
if (!wrongAssumptions.includes(a))
|
|
109
|
+
wrongAssumptions.push(a);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// The in-flight attempt that triggered this rollback.
|
|
113
|
+
const triggerSummary = selfEval.output_summary?.trim() ?? "";
|
|
114
|
+
if (triggerSummary.length > 0) {
|
|
115
|
+
if (!failedRounds.includes(currentRound))
|
|
116
|
+
failedRounds.push(currentRound);
|
|
117
|
+
approaches.push(triggerSummary.slice(0, 200));
|
|
118
|
+
for (const a of (selfEval.wrong_assumptions ?? [])
|
|
119
|
+
.filter((v) => typeof v === "string")) {
|
|
120
|
+
if (!wrongAssumptions.includes(a))
|
|
121
|
+
wrongAssumptions.push(a.slice(0, 500));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
skippedFiles,
|
|
126
|
+
skippedFingerprints,
|
|
127
|
+
failedRounds,
|
|
128
|
+
approaches,
|
|
129
|
+
wrongAssumptions,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
42
132
|
export class RoundCoordinator {
|
|
43
133
|
store;
|
|
44
134
|
constructor(store) {
|
|
@@ -53,16 +143,13 @@ export class RoundCoordinator {
|
|
|
53
143
|
* - Managing heartbeat / signal handlers (runtime only)
|
|
54
144
|
* - Memory injection (both paths, before calling processRound)
|
|
55
145
|
* - Transactional feedback commit (accepted rounds only)
|
|
56
|
-
* - State file I/O (both paths, after compiling)
|
|
57
|
-
|
|
58
|
-
* @param driftClarificationStreak v2.12: Current clarification streak
|
|
59
|
-
* from session state. Passed through to enforceRound for R7 escalation. */
|
|
60
|
-
processRound(input, driftClarificationStreak = 0) {
|
|
146
|
+
* - State file I/O (both paths, after compiling) */
|
|
147
|
+
processRound(input) {
|
|
61
148
|
const { loopId, task, currentRound, maxRounds, selfEval, lastSelfEval, consecutiveRejections, evidenceSnapshots, } = input;
|
|
62
149
|
const roundSuccess = selfEval.success ?? false;
|
|
63
150
|
// ── 1. Query vault entries ──────────────────────────────────────────
|
|
64
151
|
// Lineage entries (constraint violations, output summaries) and feedback
|
|
65
|
-
// entries (
|
|
152
|
+
// entries (execution_report, progress estimates) are both needed by
|
|
66
153
|
// the enforcement gate. queryLoopEntries excludes feedback by default,
|
|
67
154
|
// so we issue a second query and merge both result sets.
|
|
68
155
|
const prefix = `loop:${loopId}:r`;
|
|
@@ -81,6 +168,20 @@ export class RoundCoordinator {
|
|
|
81
168
|
: []);
|
|
82
169
|
const verificationFlags = verifyResult.flags;
|
|
83
170
|
const gateContradicted = verifyResult.verdict === "contradicted";
|
|
171
|
+
// v3.8: the ACTIVE contract's derived item statuses for this round — the
|
|
172
|
+
// same reducer the gate, compile path, audit and explain consume. Drives
|
|
173
|
+
// the stop mapping (completed vs incomplete) and the success trajectory.
|
|
174
|
+
const committedRounds = derivationRounds(vaultEntries, currentRound);
|
|
175
|
+
// v3.8: the shared executed-contract derivation — the same one explain and
|
|
176
|
+
// audit call, so the live posture and the read-only views cannot diverge.
|
|
177
|
+
const { statuses: activeContractStatuses } = deriveRoundContractView({
|
|
178
|
+
rounds: committedRounds,
|
|
179
|
+
round: currentRound,
|
|
180
|
+
report: selfEval.execution_report ?? null,
|
|
181
|
+
observations: evidenceSnapshots ?? [],
|
|
182
|
+
outcome: effectiveOutcome(selfEval),
|
|
183
|
+
commands: getPolicy().evidence.commands ?? [],
|
|
184
|
+
});
|
|
84
185
|
if (gateContradicted) {
|
|
85
186
|
logEvent("gate_contradicted", {
|
|
86
187
|
loopId,
|
|
@@ -94,7 +195,7 @@ export class RoundCoordinator {
|
|
|
94
195
|
// transaction reaches enforcement with a fully extracted self-evaluation.
|
|
95
196
|
// The old v2.5 "heuristic partial enforcement" plumbing (extractionSucceeded
|
|
96
197
|
// flag, enforcement skipEvidenceRules mode) was removed as unreachable.
|
|
97
|
-
const enforceResult = enforceRound(selfEval, verifyResult, currentRound, vaultEntries, consecutiveRejections,
|
|
198
|
+
const enforceResult = enforceRound(selfEval, verifyResult, currentRound, vaultEntries, consecutiveRejections, input.lastRejectionCheck ?? "");
|
|
98
199
|
if (enforceResult.action === "reject") {
|
|
99
200
|
const newRejections = consecutiveRejections + 1;
|
|
100
201
|
const rejectionPrompt = buildRejectionPrompt(currentRound, task, enforceResult, verificationFlags);
|
|
@@ -107,21 +208,12 @@ export class RoundCoordinator {
|
|
|
107
208
|
});
|
|
108
209
|
return {
|
|
109
210
|
action: "reject",
|
|
211
|
+
verificationStatus: roundVerificationStatus(activeContractStatuses, selfEval.execution_report ?? null),
|
|
110
212
|
rejectionPrompt,
|
|
111
213
|
verificationFlags,
|
|
112
214
|
enforcementAction: "reject",
|
|
113
215
|
enforcementReason: enforceResult.reason,
|
|
114
216
|
rejectionCheck: enforceResult.check,
|
|
115
|
-
// v3.3.1: an R7-participated reject (weak or missing
|
|
116
|
-
// drift_clarification) echoes clarificationAccepted: false so the
|
|
117
|
-
// caller's streak tracking increments — without this the
|
|
118
|
-
// drift_clarification_max_streak terminate ladder was unreachable
|
|
119
|
-
// (the increment branch required the field, and only the continue
|
|
120
|
-
// path ever set it). Higher-priority rules' rejects keep it
|
|
121
|
-
// undefined, preserving the v3.2.1 "R7-only streak" semantics.
|
|
122
|
-
...(enforceResult.check === "intent_drift"
|
|
123
|
-
? { clarificationAccepted: false }
|
|
124
|
-
: {}),
|
|
125
217
|
roundSuccess,
|
|
126
218
|
gateContradicted,
|
|
127
219
|
newConsecutiveRejections: newRejections,
|
|
@@ -131,24 +223,23 @@ export class RoundCoordinator {
|
|
|
131
223
|
};
|
|
132
224
|
}
|
|
133
225
|
if (enforceResult.action === "terminate") {
|
|
226
|
+
// v3.8: a row may name the stop reason it terminates with (the
|
|
227
|
+
// verification-debt row reports `incomplete` — the agent stopped short
|
|
228
|
+
// of machine verification, which is not the same as a contradiction).
|
|
229
|
+
const terminateReason = enforceResult.stopReason ?? "enforcement_terminated";
|
|
134
230
|
logEvent("session_end", {
|
|
135
231
|
loopId,
|
|
136
|
-
stopReason:
|
|
232
|
+
stopReason: terminateReason,
|
|
137
233
|
round: currentRound,
|
|
138
234
|
});
|
|
139
235
|
return {
|
|
140
236
|
action: "terminate",
|
|
141
|
-
|
|
237
|
+
verificationStatus: roundVerificationStatus(activeContractStatuses, selfEval.execution_report ?? null),
|
|
238
|
+
stopReason: terminateReason,
|
|
142
239
|
verificationFlags,
|
|
143
240
|
enforcementAction: "terminate",
|
|
144
241
|
enforcementReason: enforceResult.reason,
|
|
145
242
|
rejectionCheck: enforceResult.check,
|
|
146
|
-
// v3.3.1: same echo as the reject branch — R7-participated
|
|
147
|
-
// terminates keep the streak contract consistent for the
|
|
148
|
-
// snapshot/audit record (harmless: the session is ending).
|
|
149
|
-
...(enforceResult.check === "intent_drift"
|
|
150
|
-
? { clarificationAccepted: false }
|
|
151
|
-
: {}),
|
|
152
243
|
roundSuccess,
|
|
153
244
|
gateContradicted,
|
|
154
245
|
newConsecutiveRejections: 0,
|
|
@@ -169,6 +260,7 @@ export class RoundCoordinator {
|
|
|
169
260
|
});
|
|
170
261
|
return {
|
|
171
262
|
action: "terminate",
|
|
263
|
+
verificationStatus: roundVerificationStatus(activeContractStatuses, selfEval.execution_report ?? null),
|
|
172
264
|
stopReason: "enforcement_terminated",
|
|
173
265
|
verificationFlags,
|
|
174
266
|
enforcementAction: "terminate",
|
|
@@ -181,71 +273,16 @@ export class RoundCoordinator {
|
|
|
181
273
|
shouldPushSuccessTrajectory: false,
|
|
182
274
|
};
|
|
183
275
|
}
|
|
184
|
-
// v2.13:
|
|
185
|
-
|
|
186
|
-
//
|
|
187
|
-
//
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
// become a source; the in-flight attempt below is the only exception).
|
|
195
|
-
const failedRounds = [];
|
|
196
|
-
const approaches = [];
|
|
197
|
-
const wrongAssumptions = [];
|
|
198
|
-
for (let r = restorePoint.round + 1; r < currentRound; r++) {
|
|
199
|
-
// v3.2.1: match the feedback entry (execution_evidence lives there) —
|
|
200
|
-
// the compile-time lineage entry for the same round precedes it in
|
|
201
|
-
// the flat view and carries no evidence.
|
|
202
|
-
const entry = vaultEntries.find((e) => entryRound(e) === r && e.task_type !== "loop_lineage");
|
|
203
|
-
const view = entry ? decodeCommittedRound(entry) : null;
|
|
204
|
-
const evaluation = view?.evaluation ?? null;
|
|
205
|
-
if (entry?.execution_evidence) {
|
|
206
|
-
const ev = entry.execution_evidence;
|
|
207
|
-
const files = Array.isArray(ev.files_changed)
|
|
208
|
-
? ev.files_changed.filter((f) => typeof f === "string")
|
|
209
|
-
: [];
|
|
210
|
-
const git = view?.afterEvidence.find((snapshot) => snapshot.provider === "git" &&
|
|
211
|
-
isRecord(snapshot.data) && isRecord(snapshot.data.fingerprints));
|
|
212
|
-
const gitFingerprints = git
|
|
213
|
-
? git.data.fingerprints
|
|
214
|
-
: null;
|
|
215
|
-
for (const f of files) {
|
|
216
|
-
if (!skippedFiles.includes(f))
|
|
217
|
-
skippedFiles.push(f);
|
|
218
|
-
const fp = gitFingerprints?.[f];
|
|
219
|
-
if (typeof fp === "string")
|
|
220
|
-
skippedFingerprints[f] = fp;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
const summary = evaluation?.output_summary ?? "";
|
|
224
|
-
if (summary.trim().length > 0) {
|
|
225
|
-
failedRounds.push(r);
|
|
226
|
-
approaches.push(summary.trim().slice(0, 200));
|
|
227
|
-
}
|
|
228
|
-
const assumptions = (evaluation?.wrong_assumptions ?? [])
|
|
229
|
-
.filter((v) => typeof v === "string")
|
|
230
|
-
.map((s) => s.slice(0, 500));
|
|
231
|
-
for (const a of assumptions) {
|
|
232
|
-
if (!wrongAssumptions.includes(a))
|
|
233
|
-
wrongAssumptions.push(a);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
// The in-flight attempt that triggered this rollback — its evaluation
|
|
237
|
-
// lives in this process, not in committed history.
|
|
238
|
-
const triggerSummary = selfEval.output_summary?.trim() ?? "";
|
|
239
|
-
if (triggerSummary.length > 0) {
|
|
240
|
-
if (!failedRounds.includes(currentRound))
|
|
241
|
-
failedRounds.push(currentRound);
|
|
242
|
-
approaches.push(triggerSummary.slice(0, 200));
|
|
243
|
-
for (const a of (selfEval.wrong_assumptions ?? [])
|
|
244
|
-
.filter((v) => typeof v === "string")) {
|
|
245
|
-
if (!wrongAssumptions.includes(a))
|
|
246
|
-
wrongAssumptions.push(a.slice(0, 500));
|
|
247
|
-
}
|
|
248
|
-
}
|
|
276
|
+
// v2.13/v3.8.1: the rolled-back branch's facts — one named derivation,
|
|
277
|
+
// so the walk is testable without driving a whole rollback, and the
|
|
278
|
+
// prompt, the state file and the committed decision all describe one
|
|
279
|
+
// event.
|
|
280
|
+
const { skippedFiles, skippedFingerprints, failedRounds, approaches, wrongAssumptions, } = deriveBacktrackRecoveryFacts({
|
|
281
|
+
currentRound,
|
|
282
|
+
restoreRound: restorePoint.round,
|
|
283
|
+
vaultEntries,
|
|
284
|
+
selfEval,
|
|
285
|
+
});
|
|
249
286
|
// v2.12: Capture the restore point's git HEAD so the next round's
|
|
250
287
|
// verification can confirm the workspace returned to this commit.
|
|
251
288
|
const targetGitHead = findBacktrackTargetGitHead(restorePoint.round, vaultEntries);
|
|
@@ -262,6 +299,7 @@ export class RoundCoordinator {
|
|
|
262
299
|
});
|
|
263
300
|
return {
|
|
264
301
|
action: "backtrack",
|
|
302
|
+
verificationStatus: roundVerificationStatus(activeContractStatuses, selfEval.execution_report ?? null),
|
|
265
303
|
backtrackPrompt,
|
|
266
304
|
backtrackTarget: restorePoint.round,
|
|
267
305
|
backtrackSkippedDiscoveries: getPolicy().engine.backtrack_preserve_discoveries
|
|
@@ -291,26 +329,52 @@ export class RoundCoordinator {
|
|
|
291
329
|
// ── 5. Stop condition checks ────────────────────────────────────────
|
|
292
330
|
// 5b. Agent says stop
|
|
293
331
|
if (!selfEval.should_continue) {
|
|
332
|
+
// v3.8: `completed` is a machine claim. It requires the active contract
|
|
333
|
+
// to be closed — every item `verified` — or no contract at all. A stop
|
|
334
|
+
// with claimed-but-unverified items is `incomplete`, never `completed`.
|
|
335
|
+
// An empty contract id means no contract is active (the reducer's
|
|
336
|
+
// sentinel view) — a contract-less loop completes on the success claim
|
|
337
|
+
// alone, exactly as before v3.8.
|
|
338
|
+
//
|
|
339
|
+
// A `blocked` closure deliberately does NOT satisfy `contractClosed`: a
|
|
340
|
+
// contract closed by its own blocked outcome is not a verified one, and
|
|
341
|
+
// the declaration arm below already owns that posture.
|
|
342
|
+
const contractClosed = activeContractStatuses.contractId === "" ||
|
|
343
|
+
activeContractStatuses.closure === "verified";
|
|
344
|
+
// The agent's explicit declaration of a blocked stop outranks the
|
|
345
|
+
// success claim. It is checked FIRST so `success: true` + a declared
|
|
346
|
+
// `outcome`/`stop_reason` of blocked can never be reported as
|
|
347
|
+
// `completed` — the two fields contradict, and the honest reading is the
|
|
348
|
+
// declared one. A contradicted item also never reaches `completed`
|
|
349
|
+
// (closure is `verified` only when EVERY item is), so the
|
|
350
|
+
// contradicted-and-stopping posture lands on `incomplete` at worst; the
|
|
351
|
+
// reject/terminate path for it is the enforcement gate's, evaluated
|
|
352
|
+
// before this point.
|
|
353
|
+
const declaredBlocked = selfEval.outcome === "blocked" ||
|
|
354
|
+
selfEval.stop_reason === "blocked" || selfEval.stop_reason === "needs_human_input";
|
|
294
355
|
let reason;
|
|
295
|
-
if (
|
|
356
|
+
if (declaredBlocked) {
|
|
357
|
+
reason = "blocked";
|
|
358
|
+
}
|
|
359
|
+
else if (effectiveSuccess(selfEval) && contractClosed) {
|
|
296
360
|
reason = "completed";
|
|
297
361
|
}
|
|
298
|
-
else if (selfEval
|
|
299
|
-
|
|
300
|
-
reason = "blocked";
|
|
362
|
+
else if (effectiveSuccess(selfEval)) {
|
|
363
|
+
reason = "incomplete";
|
|
301
364
|
}
|
|
302
365
|
else {
|
|
303
366
|
reason = "failed";
|
|
304
367
|
}
|
|
305
368
|
return {
|
|
306
369
|
action: "stop",
|
|
370
|
+
verificationStatus: roundVerificationStatus(activeContractStatuses, selfEval.execution_report ?? null),
|
|
307
371
|
stopReason: reason,
|
|
308
372
|
verificationFlags,
|
|
309
373
|
roundSuccess,
|
|
310
374
|
gateContradicted,
|
|
311
375
|
newConsecutiveRejections: 0,
|
|
312
376
|
newLastSelfEval: selfEval,
|
|
313
|
-
shouldPushSuccessTrajectory: shouldPushSuccess(gateContradicted, verificationFlags),
|
|
377
|
+
shouldPushSuccessTrajectory: shouldPushSuccess(gateContradicted, verificationFlags, activeContractStatuses),
|
|
314
378
|
};
|
|
315
379
|
}
|
|
316
380
|
// 5c. Max rounds reached
|
|
@@ -320,27 +384,27 @@ export class RoundCoordinator {
|
|
|
320
384
|
if (currentRound >= maxRounds) {
|
|
321
385
|
return {
|
|
322
386
|
action: "stop",
|
|
387
|
+
verificationStatus: roundVerificationStatus(activeContractStatuses, selfEval.execution_report ?? null),
|
|
323
388
|
stopReason: "max_rounds",
|
|
324
389
|
verificationFlags,
|
|
325
390
|
roundSuccess,
|
|
326
391
|
gateContradicted,
|
|
327
392
|
newConsecutiveRejections: 0,
|
|
328
393
|
newLastSelfEval: selfEval,
|
|
329
|
-
shouldPushSuccessTrajectory: shouldPushSuccess(gateContradicted, verificationFlags),
|
|
394
|
+
shouldPushSuccessTrajectory: shouldPushSuccess(gateContradicted, verificationFlags, activeContractStatuses),
|
|
330
395
|
};
|
|
331
396
|
}
|
|
332
397
|
// ── 6. Continue — caller compiles next round ────────────────────────
|
|
333
398
|
return {
|
|
334
399
|
action: "continue",
|
|
400
|
+
verificationStatus: roundVerificationStatus(activeContractStatuses, selfEval.execution_report ?? null),
|
|
335
401
|
verificationFlags,
|
|
336
402
|
enforcementAction: "accept",
|
|
337
403
|
roundSuccess,
|
|
338
404
|
gateContradicted,
|
|
339
405
|
newConsecutiveRejections: 0,
|
|
340
406
|
newLastSelfEval: selfEval,
|
|
341
|
-
shouldPushSuccessTrajectory: shouldPushSuccess(gateContradicted, verificationFlags),
|
|
342
|
-
// v2.12: Propagate clarification acceptance signal for streak tracking
|
|
343
|
-
clarificationAccepted: enforceResult.clarification_accepted ?? false,
|
|
407
|
+
shouldPushSuccessTrajectory: shouldPushSuccess(gateContradicted, verificationFlags, activeContractStatuses),
|
|
344
408
|
};
|
|
345
409
|
}
|
|
346
410
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round-coordinator.js","sourceRoot":"","sources":["../src/round-coordinator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"round-coordinator.js","sourceRoot":"","sources":["../src/round-coordinator.ts"],"names":[],"mappings":"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"}
|
package/dist/round-driver.d.ts
CHANGED
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { LoopStore } from "./loop-store.js";
|
|
9
9
|
import { LoopForgeEngine } from "./engine.js";
|
|
10
|
-
import type {
|
|
10
|
+
import type { MachineObservation } from "./protocol.js";
|
|
11
11
|
import type { LoopForgeRequest, LoopForgeResponse, PromptArtifact, SelfEvaluation } from "./protocol.js";
|
|
12
12
|
import type { RoundTransactionOutcome, RoundTransactionSnapshot } from "./round-transaction.js";
|
|
13
13
|
export interface PreparedRound {
|
|
14
14
|
prompt: string;
|
|
15
15
|
artifact?: PromptArtifact;
|
|
16
16
|
level: "l0" | "l1" | "l2";
|
|
17
|
-
evidenceBaseline:
|
|
17
|
+
evidenceBaseline: MachineObservation[];
|
|
18
18
|
snapshot: RoundTransactionSnapshot;
|
|
19
19
|
stateFileContent?: string;
|
|
20
20
|
warnings?: string[];
|
|
@@ -33,8 +33,6 @@ export interface CompleteRoundInput {
|
|
|
33
33
|
/** L4 (v3.7.x): previous round's rejection check (own-streak basis). */
|
|
34
34
|
lastRejectionCheck?: string;
|
|
35
35
|
successTrajectory: boolean[];
|
|
36
|
-
/** v2.12: Current clarification streak for R7 escalation. */
|
|
37
|
-
driftClarificationStreak?: number;
|
|
38
36
|
/** v2.13: Files from skipped backtrack rounds for restore check. */
|
|
39
37
|
backtrackSkippedFiles?: string[];
|
|
40
38
|
/** M3 (v3.7.x): skipped-file git fingerprints at their failed rounds. */
|
|
@@ -44,7 +42,7 @@ export interface CompleteRoundInput {
|
|
|
44
42
|
}
|
|
45
43
|
export interface CompletedRound {
|
|
46
44
|
outcome: RoundTransactionOutcome;
|
|
47
|
-
actualEvidence:
|
|
45
|
+
actualEvidence: MachineObservation[];
|
|
48
46
|
}
|
|
49
47
|
export declare class RoundDriver {
|
|
50
48
|
private readonly engine;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round-driver.d.ts","sourceRoot":"","sources":["../src/round-driver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"round-driver.d.ts","sourceRoot":"","sources":["../src/round-driver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACf,MAAM,eAAe,CAAC;AAMvB,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;sEACkE;IAClE,eAAe,CAAC,EAAE,iBAAiB,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,OAAO,EAAE,CAAC;IAC7B,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,yEAAyE;IACzE,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,uBAAuB,CAAC;IACjC,cAAc,EAAE,kBAAkB,EAAE,CAAC;CACtC;AAED,qBAAa,WAAW;IAGV,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;gBAEL,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,SAAS;IAIjE,OAAO,CACX,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAYhC,OAAO,CAAC,OAAO;IAgBf;oFACgF;IAC1E,YAAY,CAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,wBAAwB,EAClC,eAAe,EAAE,MAAM,EACvB,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAwBhC,OAAO,CAAC,aAAa;IAyBf,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;IAuBlE,OAAO,CAAC,QAAQ,EAAE,wBAAwB,GAAG,uBAAuB,GAAG,IAAI;IAO3E,OAAO,CAAC,eAAe;CAMxB"}
|
package/dist/round-driver.js
CHANGED
|
@@ -88,7 +88,6 @@ export class RoundDriver {
|
|
|
88
88
|
lastRejectionCheck: input.lastRejectionCheck,
|
|
89
89
|
successTrajectory: input.successTrajectory,
|
|
90
90
|
actualEvidence,
|
|
91
|
-
driftClarificationStreak: input.driftClarificationStreak,
|
|
92
91
|
backtrackSkippedFiles: input.backtrackSkippedFiles,
|
|
93
92
|
backtrackSkippedFingerprints: input.backtrackSkippedFingerprints,
|
|
94
93
|
backtrackTargetGitHead: input.backtrackTargetGitHead,
|
package/dist/round-driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round-driver.js","sourceRoot":"","sources":["../src/round-driver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,
|
|
1
|
+
{"version":3,"file":"round-driver.js","sourceRoot":"","sources":["../src/round-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/** v3.8.1: THE contract-fact derivation.
|
|
2
|
+
*
|
|
3
|
+
* The contract walker, the item reducer, the verified sub-goal facts and the
|
|
4
|
+
* verification debt are one pass over one history window. Before this module
|
|
5
|
+
* the compile path and the projection each ran the same reducers over their
|
|
6
|
+
* own window, so the prompt and the projection could tell different stories
|
|
7
|
+
* about what the machine had verified — and nothing stopped a third caller
|
|
8
|
+
* from picking a third window.
|
|
9
|
+
*
|
|
10
|
+
* Every caller passes `derivationRounds(entries, currentRound)` (the shared
|
|
11
|
+
* window from committed-round.ts) and receives the same bundle, so "one fact,
|
|
12
|
+
* one derivation" is a property of the types rather than a convention.
|
|
13
|
+
*/
|
|
14
|
+
import type { CommittedRoundView } from "./committed-round.js";
|
|
15
|
+
import type { ContractItemStatusView } from "./contract-items.js";
|
|
16
|
+
import type { CommandEvidencePolicy } from "./policy.js";
|
|
17
|
+
import type { ContractItemStatus, ExecutionReport, MachineObservation, SubGoal, VerifiedSubGoalFact } from "./protocol.js";
|
|
18
|
+
import type { ActiveContractView } from "./round-contract.js";
|
|
19
|
+
export interface RoundFacts {
|
|
20
|
+
/** The contract the NEXT round executes under — derived from committed
|
|
21
|
+
* rounds only, so a retry / resume / backtrack compile keeps showing it. */
|
|
22
|
+
activeContract: ActiveContractView | null;
|
|
23
|
+
/** Per-item status of `activeContract`. */
|
|
24
|
+
itemStatuses: ContractItemStatusView;
|
|
25
|
+
/** v3.8: machine-verified sub-goals. Never writes `SubGoal.status`. */
|
|
26
|
+
verifiedSubGoals: VerifiedSubGoalFact[];
|
|
27
|
+
/** `done` sub-goals no verified item backs, plus `insufficient` items. */
|
|
28
|
+
verificationDebt: string[];
|
|
29
|
+
/** v3.8.1: the machine fact about each criterion a contract item referenced,
|
|
30
|
+
* over the WHOLE committed history — the criterion-side twin of
|
|
31
|
+
* `verifiedSubGoals`, and read by the same callers. */
|
|
32
|
+
criterionFacts: CriterionMachineFact[];
|
|
33
|
+
}
|
|
34
|
+
/** v3.8.1: ONE criterion's machine fact. `status` is absent while every item
|
|
35
|
+
* referencing the criterion is still `pending` — "no claim yet" says nothing
|
|
36
|
+
* about the criterion, so the criterion keeps its claim-derived status. The
|
|
37
|
+
* links are explicit `subgoal_refs` only, and they survive their item's
|
|
38
|
+
* contract closing just like the status does. */
|
|
39
|
+
export interface CriterionMachineFact {
|
|
40
|
+
criterion_id: string;
|
|
41
|
+
status?: Exclude<ContractItemStatus, "pending">;
|
|
42
|
+
related_subgoal_ids: string[];
|
|
43
|
+
}
|
|
44
|
+
/** The in-flight slice of a round that is being decided but is not yet
|
|
45
|
+
* committed. A pure committed-history replay passes null / [] — the reducer
|
|
46
|
+
* then sees committed facts only, which is exactly what the compile path
|
|
47
|
+
* wants. */
|
|
48
|
+
export interface InFlightRoundSlice {
|
|
49
|
+
currentReport: ExecutionReport | null;
|
|
50
|
+
currentObservations: ReadonlyArray<MachineObservation>;
|
|
51
|
+
/** The in-flight round's own effective outcome. A `blocked` round CLOSES its
|
|
52
|
+
* contract, so closure cannot be derived from committed slices alone. */
|
|
53
|
+
currentOutcome?: string | null;
|
|
54
|
+
}
|
|
55
|
+
export declare const NO_IN_FLIGHT_ROUND: InFlightRoundSlice;
|
|
56
|
+
export declare function deriveRoundFacts(input: {
|
|
57
|
+
/** `derivationRounds(entries, currentRound)` — the shared window. */
|
|
58
|
+
rounds: ReadonlyArray<CommittedRoundView>;
|
|
59
|
+
currentRound: number;
|
|
60
|
+
inFlight: InFlightRoundSlice;
|
|
61
|
+
subGoals: ReadonlyArray<SubGoal>;
|
|
62
|
+
commands: ReadonlyArray<CommandEvidencePolicy>;
|
|
63
|
+
}): RoundFacts;
|
|
64
|
+
/** v3.8: Machine-verified sub-goal facts. DERIVED, never persisted. It never
|
|
65
|
+
* writes `SubGoal.status`: `done` stays the agent's declaration, and the fact
|
|
66
|
+
* is the machine's separate statement about it.
|
|
67
|
+
*
|
|
68
|
+
* Derived from the WHOLE committed history, not from the currently-open
|
|
69
|
+
* contract. A verified item is machine history — once proven, it stays
|
|
70
|
+
* proven — while the active contract necessarily disappears the moment its
|
|
71
|
+
* last item verifies. Deriving from the active contract alone made the fact
|
|
72
|
+
* vanish at exactly the moment it became fully true, and turned the
|
|
73
|
+
* verification-debt view into a false accusation ("agent reported done,
|
|
74
|
+
* machine verification absent") against a sub-goal the machine had just
|
|
75
|
+
* verified. Each round is read through `deriveRoundContractView`, the same
|
|
76
|
+
* derivation the coordinator, explain and audit use — one history
|
|
77
|
+
* interpretation, no second read model. That re-derivation is quadratic in the
|
|
78
|
+
* round count (≈40ms at 120 rounds) and is deliberately bought: an incremental
|
|
79
|
+
* walker would be a second implementation of the closure rule, which is the
|
|
80
|
+
* one thing this module must never grow.
|
|
81
|
+
*
|
|
82
|
+
* Attribution is per ITEM (`ContractItemProposal.subgoal_refs`), not per
|
|
83
|
+
* contract: an item backs exactly the sub-goals it references, so a contract
|
|
84
|
+
* whose item A verifies SubGoal 1 and whose item B verifies SubGoal 2 yields
|
|
85
|
+
* two facts with disjoint `contract_item_ids` instead of both sub-goals
|
|
86
|
+
* claiming every verified item. */
|
|
87
|
+
export declare function deriveVerifiedSubGoals(input: {
|
|
88
|
+
subGoals: ReadonlyArray<SubGoal>;
|
|
89
|
+
/** Committed rounds (rollback-excluded), ascending. */
|
|
90
|
+
rounds: ReadonlyArray<CommittedRoundView>;
|
|
91
|
+
commands: ReadonlyArray<CommandEvidencePolicy>;
|
|
92
|
+
}): VerifiedSubGoalFact[];
|
|
93
|
+
/** v3.8: Sub-goals the agent declared `done` that no verified contract item
|
|
94
|
+
* backs — verification debt, surfaced in the handoff's open risks. */
|
|
95
|
+
export declare function deriveVerificationDebt(subGoals: ReadonlyArray<SubGoal>, verified: ReadonlyArray<VerifiedSubGoalFact>, statuses: ContractItemStatusView): string[];
|
|
96
|
+
//# sourceMappingURL=round-facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"round-facts.d.ts","sourceRoot":"","sources":["../src/round-facts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,mBAAmB,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI9D,MAAM,WAAW,UAAU;IACzB;iFAC6E;IAC7E,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,2CAA2C;IAC3C,YAAY,EAAE,sBAAsB,CAAC;IACrC,uEAAuE;IACvE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;IACxC,0EAA0E;IAC1E,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;4DAEwD;IACxD,cAAc,EAAE,oBAAoB,EAAE,CAAC;CACxC;AAED;;;;kDAIkD;AAClD,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IAChD,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;aAGa;AACb,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,mBAAmB,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACvD;8EAC0E;IAC1E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,kBAAkB,EAAE,kBAIhC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,qEAAqE;IACrE,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAChD,GAAG,UAAU,CA+Bb;AA6FD;;;;;;;;;;;;;;;;;;;;;;oCAsBoC;AACpC,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACjC,uDAAuD;IACvD,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC1C,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAChD,GAAG,mBAAmB,EAAE,CAwCxB;AAED;uEACuE;AACvE,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,QAAQ,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC5C,QAAQ,EAAE,sBAAsB,GAC/B,MAAM,EAAE,CAkBV"}
|