loopforge 3.9.1 → 3.9.4
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 +11 -8
- package/dist/canonical-state.d.ts +39 -1
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +114 -32
- package/dist/canonical-state.js.map +1 -1
- package/dist/committed-round.d.ts +27 -4
- package/dist/committed-round.d.ts.map +1 -1
- package/dist/committed-round.js +87 -14
- package/dist/committed-round.js.map +1 -1
- package/dist/enforcement-gate.d.ts +9 -32
- package/dist/enforcement-gate.d.ts.map +1 -1
- package/dist/enforcement-gate.js +9 -122
- package/dist/enforcement-gate.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +13 -2
- package/dist/engine.js.map +1 -1
- package/dist/explain.d.ts +1 -0
- package/dist/explain.d.ts.map +1 -1
- package/dist/explain.js +1 -0
- package/dist/explain.js.map +1 -1
- package/dist/files-reconciliation.d.ts +18 -0
- package/dist/files-reconciliation.d.ts.map +1 -0
- package/dist/files-reconciliation.js +59 -0
- package/dist/files-reconciliation.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +17 -1
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +220 -119
- package/dist/loop-compiler.js.map +1 -1
- package/dist/mcp/round-lifecycle.d.ts +31 -1
- package/dist/mcp/round-lifecycle.d.ts.map +1 -1
- package/dist/mcp/round-lifecycle.js +102 -60
- package/dist/mcp/round-lifecycle.js.map +1 -1
- package/dist/mcp/server.d.ts +5 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +19 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +23 -5
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/submission-boundary.d.ts +1 -1
- package/dist/mcp/submission-boundary.d.ts.map +1 -1
- package/dist/mcp/submission-boundary.js +31 -8
- package/dist/mcp/submission-boundary.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +62 -6
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy-metrics.d.ts +4 -0
- package/dist/policy-metrics.d.ts.map +1 -1
- package/dist/policy-metrics.js +17 -3
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +5 -2
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +2 -2
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +8 -3
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +233 -240
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/prompt-coverage.d.ts +45 -0
- package/dist/prompt-coverage.d.ts.map +1 -0
- package/dist/prompt-coverage.js +84 -0
- package/dist/prompt-coverage.js.map +1 -0
- package/dist/prompt-freshness.d.ts +36 -0
- package/dist/prompt-freshness.d.ts.map +1 -0
- package/dist/prompt-freshness.js +83 -0
- package/dist/prompt-freshness.js.map +1 -0
- package/dist/prompt-policy.d.ts +5 -2
- package/dist/prompt-policy.d.ts.map +1 -1
- package/dist/prompt-policy.js +10 -7
- package/dist/prompt-policy.js.map +1 -1
- package/dist/protocol.d.ts +70 -8
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +7 -1
- package/dist/protocol.js.map +1 -1
- package/dist/round-coordinator.d.ts +4 -2
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +7 -7
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-facts.d.ts.map +1 -1
- package/dist/round-facts.js +9 -3
- package/dist/round-facts.js.map +1 -1
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +19 -1
- package/dist/round-transaction.js.map +1 -1
- package/dist/self-eval.d.ts +23 -7
- package/dist/self-eval.d.ts.map +1 -1
- package/dist/self-eval.js +88 -16
- package/dist/self-eval.js.map +1 -1
- package/dist/submission-guidance.d.ts +36 -4
- package/dist/submission-guidance.d.ts.map +1 -1
- package/dist/submission-guidance.js +225 -78
- package/dist/submission-guidance.js.map +1 -1
- package/dist/submission-receipt.d.ts.map +1 -1
- package/dist/submission-receipt.js +6 -0
- package/dist/submission-receipt.js.map +1 -1
- package/dist/token-utils.d.ts +26 -0
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +56 -6
- package/dist/token-utils.js.map +1 -1
- package/dist/verification-actions.d.ts +13 -0
- package/dist/verification-actions.d.ts.map +1 -0
- package/dist/verification-actions.js +45 -0
- package/dist/verification-actions.js.map +1 -0
- package/dist/verification-gate.d.ts +5 -4
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +32 -45
- package/dist/verification-gate.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/loop_policy.json +58 -58
- package/package.json +68 -68
- package/skills/perception/SKILL.md +35 -11
|
@@ -16,6 +16,7 @@ import { deriveSubGoals } from "./subgoal-state.js";
|
|
|
16
16
|
import { deriveEvidenceStatus } from "./verification-gate.js";
|
|
17
17
|
import { fieldGuide } from "./submission-guidance.js";
|
|
18
18
|
import { deriveFieldAccounting } from "./field-accounting.js";
|
|
19
|
+
import { deriveFilesReconciliation } from "./files-reconciliation.js";
|
|
19
20
|
import { getPolicy } from "./policy.js";
|
|
20
21
|
const HANDLING_PRIORITY = {
|
|
21
22
|
"not_applied": 6,
|
|
@@ -190,6 +191,9 @@ export function deriveSubmissionReceipt(input) {
|
|
|
190
191
|
const contractAfter = input.facts.contractAfter;
|
|
191
192
|
// ── verification ───────────────────────────────────────────────────────
|
|
192
193
|
const evidence = deriveEvidenceStatus(selfEval, input.evidenceDeltas);
|
|
194
|
+
const filesReconciliation = deriveFilesReconciliation(selfEval.execution_report ?? null, input.evidenceDeltas, {
|
|
195
|
+
attempted: input.submittedFields.includes("execution_report.files_changed"),
|
|
196
|
+
});
|
|
193
197
|
return {
|
|
194
198
|
round_id: input.snapshot.roundId,
|
|
195
199
|
attempt: input.snapshot.attempt,
|
|
@@ -222,9 +226,11 @@ export function deriveSubmissionReceipt(input) {
|
|
|
222
226
|
check: flag.check,
|
|
223
227
|
severity: flag.severity,
|
|
224
228
|
detail: flag.detail,
|
|
229
|
+
...(flag.ref ? { ref: flag.ref } : {}),
|
|
225
230
|
})),
|
|
226
231
|
contract_items: input.contractItems,
|
|
227
232
|
},
|
|
233
|
+
files_reconciliation: filesReconciliation,
|
|
228
234
|
prompt: input.nextArtifact
|
|
229
235
|
? {
|
|
230
236
|
level: input.nextArtifact.level,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission-receipt.js","sourceRoot":"","sources":["../src/submission-receipt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"submission-receipt.js","sourceRoot":"","sources":["../src/submission-receipt.ts"],"names":[],"mappings":"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"}
|
package/dist/token-utils.d.ts
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
*/
|
|
10
10
|
/** Filter null/undefined/empty strings, trim, and deduplicate via Set. */
|
|
11
11
|
export declare function unique(values: Array<string | null | undefined>): string[];
|
|
12
|
+
/** v3.9.4: deduplicate by the SAME normalized-exact identity the stable ID
|
|
13
|
+
* derivation uses. `unique` is trim-only, so "Tests pass" and "tests pass"
|
|
14
|
+
* survived as two entries with one `cr-*` id. The first spelling wins. */
|
|
15
|
+
export declare function uniqueNormalized(values: Array<string | null | undefined>): string[];
|
|
12
16
|
/** Narrow `unknown` to a non-array object. Used across storage, MCP, and
|
|
13
17
|
* transaction modules to validate JSON-deserialized data before field access. */
|
|
14
18
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
@@ -38,6 +42,23 @@ export declare function deriveCriterionId(text: string): string;
|
|
|
38
42
|
/** The cr-XXXXXXXX shape — the ONE predicate every criterion-reference reader
|
|
39
43
|
* uses (round-contract.ts kept an inline copy before v3.8.1). */
|
|
40
44
|
export declare function isCriterionId(ref: string): boolean;
|
|
45
|
+
/** v3.9.2: ONE criterion identity rule for the compiler, the prompt and the
|
|
46
|
+
* submission boundary. A reference matches a criterion when it is the real
|
|
47
|
+
* cr- id or the exact normalized criterion text. Never similarity. */
|
|
48
|
+
export declare function criterionRefMatches(ref: string, criterion: string | {
|
|
49
|
+
id?: string;
|
|
50
|
+
text: string;
|
|
51
|
+
}): boolean;
|
|
52
|
+
/** v3.9.4: the stable identity of one machine finding for prompt coverage.
|
|
53
|
+
* It is a DERIVED audit key — never persisted as a second finding source and
|
|
54
|
+
* never read by compile/decision code. `(check, field, ref)` is the same
|
|
55
|
+
* subject vocabulary `RecurringFlag` groups on; JSON encoding keeps it
|
|
56
|
+
* unambiguous and deterministic. */
|
|
57
|
+
export declare function findingKey(flag: {
|
|
58
|
+
check: string;
|
|
59
|
+
field: string;
|
|
60
|
+
ref?: string;
|
|
61
|
+
}): string;
|
|
41
62
|
/** Normalize one contract text field for identity purposes. */
|
|
42
63
|
export declare function normalizeText(text: string): string;
|
|
43
64
|
/** The contract-item fields that participate in rci-/rc- identity. Structural
|
|
@@ -64,6 +85,11 @@ export declare function deriveContractId(loopId: string, contract: Parameters<ty
|
|
|
64
85
|
* Deliberately independent of the contract id: editing `work_item` or
|
|
65
86
|
* `scope` must not invalidate every item id the agent already cited. */
|
|
66
87
|
export declare function deriveContractItemId(item: ContractIdentityItem, duplicateOrdinal: number): string;
|
|
88
|
+
/** v3.9.4: the normalized content identity of ONE contract item (without the
|
|
89
|
+
* duplicate ordinal). Used by the strict declaration boundary to reject two
|
|
90
|
+
* semantically identical items, so an `rci-*` citation can never be
|
|
91
|
+
* ambiguous between restatements. */
|
|
92
|
+
export declare function canonicalContractItemText(item: ContractIdentityItem): string;
|
|
67
93
|
/** v3.8: Assign ids to a proposal's items in declaration order. Items with
|
|
68
94
|
* identical normalized content get distinct ids through their duplicate
|
|
69
95
|
* ordinal. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-utils.d.ts","sourceRoot":"","sources":["../src/token-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,0EAA0E;AAC1E,wBAAgB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CAKzE;AAID;kFACkF;AAClF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAID;;8DAE8D;AAC9D,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKjD;AAID;;;;qCAIqC;AACrC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;kBAEkB;AAClB,eAAO,MAAM,YAAY,QAAmC,CAAC;AAE7D;;;;;;;iBAOiB;AACjB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;kEACkE;AAClE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAID,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;uDAEuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;oBAGoB;AACpB,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B,GAAG,MAAM,CAYT;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC,GACpD,MAAM,CAER;AAED;;yEAEyE;AACzE,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,oBAAoB,EAC1B,gBAAgB,EAAE,MAAM,GACvB,MAAM,CASR;AAED;;eAEe;AACf,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,CAAC,oBAAoB,CAAC,GACzC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"token-utils.d.ts","sourceRoot":"","sources":["../src/token-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,0EAA0E;AAC1E,wBAAgB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CAKzE;AAED;;2EAE2E;AAC3E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CAanF;AAID;kFACkF;AAClF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAID;;8DAE8D;AAC9D,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKjD;AAID;;;;qCAIqC;AACrC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;kBAEkB;AAClB,eAAO,MAAM,YAAY,QAAmC,CAAC;AAE7D;;;;;;;iBAOiB;AACjB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;kEACkE;AAClE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;uEAEuE;AACvE,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAWT;AAED;;;;qCAIqC;AACrC,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAET;AAID,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;uDAEuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;oBAGoB;AACpB,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B,GAAG,MAAM,CAYT;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC,GACpD,MAAM,CAER;AAED;;yEAEyE;AACzE,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,oBAAoB,EAC1B,gBAAgB,EAAE,MAAM,GACvB,MAAM,CASR;AAED;;;sCAGsC;AACtC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAO5E;AAED;;eAEe;AACf,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,CAAC,oBAAoB,CAAC,GACzC,MAAM,EAAE,CAQV;AASD;;yEAEyE;AACzE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAI5D"}
|
package/dist/token-utils.js
CHANGED
|
@@ -16,6 +16,26 @@ export function unique(values) {
|
|
|
16
16
|
.map((value) => value.trim())
|
|
17
17
|
.filter(Boolean))];
|
|
18
18
|
}
|
|
19
|
+
/** v3.9.4: deduplicate by the SAME normalized-exact identity the stable ID
|
|
20
|
+
* derivation uses. `unique` is trim-only, so "Tests pass" and "tests pass"
|
|
21
|
+
* survived as two entries with one `cr-*` id. The first spelling wins. */
|
|
22
|
+
export function uniqueNormalized(values) {
|
|
23
|
+
const seen = new Set();
|
|
24
|
+
const out = [];
|
|
25
|
+
for (const value of values) {
|
|
26
|
+
if (typeof value !== "string")
|
|
27
|
+
continue;
|
|
28
|
+
const text = value.trim();
|
|
29
|
+
if (!text)
|
|
30
|
+
continue;
|
|
31
|
+
const key = normalizeText(text);
|
|
32
|
+
if (seen.has(key))
|
|
33
|
+
continue;
|
|
34
|
+
seen.add(key);
|
|
35
|
+
out.push(text);
|
|
36
|
+
}
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
19
39
|
// ── Type guard ──────────────────────────────────────────────────────────────
|
|
20
40
|
/** Narrow `unknown` to a non-array object. Used across storage, MCP, and
|
|
21
41
|
* transaction modules to validate JSON-deserialized data before field access. */
|
|
@@ -64,6 +84,29 @@ export function deriveCriterionId(text) {
|
|
|
64
84
|
export function isCriterionId(ref) {
|
|
65
85
|
return /^cr-[a-f0-9]{8}$/.test(ref);
|
|
66
86
|
}
|
|
87
|
+
/** v3.9.2: ONE criterion identity rule for the compiler, the prompt and the
|
|
88
|
+
* submission boundary. A reference matches a criterion when it is the real
|
|
89
|
+
* cr- id or the exact normalized criterion text. Never similarity. */
|
|
90
|
+
export function criterionRefMatches(ref, criterion) {
|
|
91
|
+
const text = typeof criterion === "string" ? criterion : criterion.text;
|
|
92
|
+
const id = typeof criterion === "string"
|
|
93
|
+
? deriveCriterionId(text)
|
|
94
|
+
: (criterion.id ?? deriveCriterionId(criterion.text));
|
|
95
|
+
if (isCriterionId(ref)) {
|
|
96
|
+
return isCriterionId(text) ? ref === text : ref === id;
|
|
97
|
+
}
|
|
98
|
+
if (isCriterionId(text))
|
|
99
|
+
return deriveCriterionId(ref) === text;
|
|
100
|
+
return normalizeText(ref) === normalizeText(text);
|
|
101
|
+
}
|
|
102
|
+
/** v3.9.4: the stable identity of one machine finding for prompt coverage.
|
|
103
|
+
* It is a DERIVED audit key — never persisted as a second finding source and
|
|
104
|
+
* never read by compile/decision code. `(check, field, ref)` is the same
|
|
105
|
+
* subject vocabulary `RecurringFlag` groups on; JSON encoding keeps it
|
|
106
|
+
* unambiguous and deterministic. */
|
|
107
|
+
export function findingKey(flag) {
|
|
108
|
+
return JSON.stringify([flag.check, flag.field, flag.ref ?? ""]);
|
|
109
|
+
}
|
|
67
110
|
// ── v3.8: Contract identity (content-addressed, round-independent) ──────────
|
|
68
111
|
/** Normalize one contract text field for identity purposes. */
|
|
69
112
|
export function normalizeText(text) {
|
|
@@ -103,18 +146,25 @@ export function deriveContractItemId(item, duplicateOrdinal) {
|
|
|
103
146
|
});
|
|
104
147
|
return `rci-${deriveItemId(canonical)}`;
|
|
105
148
|
}
|
|
149
|
+
/** v3.9.4: the normalized content identity of ONE contract item (without the
|
|
150
|
+
* duplicate ordinal). Used by the strict declaration boundary to reject two
|
|
151
|
+
* semantically identical items, so an `rci-*` citation can never be
|
|
152
|
+
* ambiguous between restatements. */
|
|
153
|
+
export function canonicalContractItemText(item) {
|
|
154
|
+
return JSON.stringify({
|
|
155
|
+
description: normalizeText(item.description),
|
|
156
|
+
criterion_refs: item.criterion_refs.map(normalizeText),
|
|
157
|
+
subgoal_refs: item.subgoal_refs.map(normalizeText),
|
|
158
|
+
verify_with: item.verify_with.map(normalizeText),
|
|
159
|
+
});
|
|
160
|
+
}
|
|
106
161
|
/** v3.8: Assign ids to a proposal's items in declaration order. Items with
|
|
107
162
|
* identical normalized content get distinct ids through their duplicate
|
|
108
163
|
* ordinal. */
|
|
109
164
|
export function deriveContractItemIds(items) {
|
|
110
165
|
const seen = new Map();
|
|
111
166
|
return items.map((item) => {
|
|
112
|
-
const key =
|
|
113
|
-
description: normalizeText(item.description),
|
|
114
|
-
criterion_refs: item.criterion_refs.map(normalizeText),
|
|
115
|
-
subgoal_refs: item.subgoal_refs.map(normalizeText),
|
|
116
|
-
verify_with: item.verify_with.map(normalizeText),
|
|
117
|
-
});
|
|
167
|
+
const key = canonicalContractItemText(item);
|
|
118
168
|
const ordinal = seen.get(key) ?? 0;
|
|
119
169
|
seen.set(key, ordinal + 1);
|
|
120
170
|
return deriveContractItemId(item, ordinal);
|
package/dist/token-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-utils.js","sourceRoot":"","sources":["../src/token-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"token-utils.js","sourceRoot":"","sources":["../src/token-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** The ONE actionable instruction table for verification checks.
|
|
2
|
+
*
|
|
3
|
+
* Kept separate from the prompt assembler so the evaluation-field guidance
|
|
4
|
+
* can quote the same action without depending on a renderer. Keys are the
|
|
5
|
+
* plain check-name strings (NOT imported from verification-gate.ts — it
|
|
6
|
+
* already imports loop-compiler, which imports the prompt layer, so
|
|
7
|
+
* importing back would cycle). Full coverage of every CHECK_* constant is
|
|
8
|
+
* enforced by a test that iterates the verification-gate module's CHECK_
|
|
9
|
+
* exports; a new constant can never silently lack an action entry.
|
|
10
|
+
*/
|
|
11
|
+
export declare const VERIFICATION_ACTIONS: Readonly<Record<string, string>>;
|
|
12
|
+
export declare function verificationActionFor(check: string): string;
|
|
13
|
+
//# sourceMappingURL=verification-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-actions.d.ts","sourceRoot":"","sources":["../src/verification-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgDjE,CAAC;AAMF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** The ONE actionable instruction table for verification checks.
|
|
2
|
+
*
|
|
3
|
+
* Kept separate from the prompt assembler so the evaluation-field guidance
|
|
4
|
+
* can quote the same action without depending on a renderer. Keys are the
|
|
5
|
+
* plain check-name strings (NOT imported from verification-gate.ts — it
|
|
6
|
+
* already imports loop-compiler, which imports the prompt layer, so
|
|
7
|
+
* importing back would cycle). Full coverage of every CHECK_* constant is
|
|
8
|
+
* enforced by a test that iterates the verification-gate module's CHECK_
|
|
9
|
+
* exports; a new constant can never silently lack an action entry.
|
|
10
|
+
*/
|
|
11
|
+
export const VERIFICATION_ACTIONS = {
|
|
12
|
+
success_with_remaining_criteria: "Complete the remaining criteria before claiming success, or set success=false and report what remains.",
|
|
13
|
+
success_without_verified_evidence: "Back the success claim with machine-verifiable evidence: run tests or a required verification command and report the actual output. If you genuinely performed no work, provide execution_report and declare no_change_reason.",
|
|
14
|
+
outcome_success_contradiction: "Reconcile the declared outcome with the success flag and resubmit an honest evaluation.",
|
|
15
|
+
blocked_without_blocker: "State the concrete blocker, or drop the blocked outcome.",
|
|
16
|
+
retroactive_claim_bad_round: "Correct the referenced round number, or withdraw the retroactive claim.",
|
|
17
|
+
retroactive_claim_unverified: "Provide evidence for the retroactive claim, or withdraw it.",
|
|
18
|
+
duplicate_constraint_discovery: "Update the existing constraint entry instead of duplicating it.",
|
|
19
|
+
recurring_violation: "Explain why this violation keeps recurring and try a different approach — do not repeat the failed strategy.",
|
|
20
|
+
retract_fresh_constraint: "Justify the retraction explicitly, or restore the constraint.",
|
|
21
|
+
// 3.9.3: the reported-vs-observed fix is spelled out. The committed flag
|
|
22
|
+
// already carries the `unreported` / `unconfirmed` path sets; this is the
|
|
23
|
+
// action that turns the receipt's mismatch into a correct next report.
|
|
24
|
+
evidence_integrity: "Report only the net boundary change: add every machine-observed path you omitted, remove every path the machine did not observe, and include deletions.",
|
|
25
|
+
required_command_failed: "Re-run the required verification command and report its actual output before claiming success.",
|
|
26
|
+
command_evidence_mismatch: "Report the true command output and reconcile the mismatch.",
|
|
27
|
+
backtrack_workspace_not_restored: "Restore the skipped-round files and the expected git HEAD, then resubmit.",
|
|
28
|
+
criteria_claims_unverified: "Provide evidence for each claimed success criterion.",
|
|
29
|
+
// v3.3 — Round Contract checks (and the three v3.3 checks that predated
|
|
30
|
+
// this table entry and fell back to the generic action).
|
|
31
|
+
verification_entrypoint_modified: "Re-run the verification command on the changed entrypoint, or revert the entrypoint change and re-run.",
|
|
32
|
+
test_files_modified: "Re-run the verification command after the test-file changes and report the fresh output.",
|
|
33
|
+
round_scope_drift: "Revert the out-of-scope file changes, or close the active contract and declare the extended scope in a new proposal. Scope drift is a machine fact and is not waivable by explanation.",
|
|
34
|
+
// v3.8 — item model: claimed-but-unverified debt
|
|
35
|
+
contract_items_unverified: "Run the bound command(s) for each claimed item so they are observed passing, or report the item as remaining (or declare outcome=\"blocked\").",
|
|
36
|
+
contract_premature: "The ACTIVE contract is still open — restate it unchanged to continue it; a different contract is ignored until every item is verified or the round reports blocked.",
|
|
37
|
+
// v3.7.1 — opt-in gate layer: cited gates need an approved human decision
|
|
38
|
+
user_gate_unresolved: "The round cites a high-risk action without an approved human decision. Run loopforge_gate_check, present the approval question, call loopforge_gate_resolve after the human decides, and resubmit with the approved gate id in evaluation.gate_ids.",
|
|
39
|
+
};
|
|
40
|
+
/** Fallback for unmapped check names (forward-compat with future checks). */
|
|
41
|
+
const VERIFICATION_ACTION_FALLBACK = "Re-examine the flagged claim and correct your evaluation before resubmitting.";
|
|
42
|
+
export function verificationActionFor(check) {
|
|
43
|
+
return VERIFICATION_ACTIONS[check] ?? VERIFICATION_ACTION_FALLBACK;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=verification-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-actions.js","sourceRoot":"","sources":["../src/verification-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAqC;IACpE,+BAA+B,EAC7B,wGAAwG;IAC1G,iCAAiC,EAC/B,gOAAgO;IAClO,6BAA6B,EAC3B,yFAAyF;IAC3F,uBAAuB,EACrB,0DAA0D;IAC5D,2BAA2B,EACzB,yEAAyE;IAC3E,4BAA4B,EAC1B,6DAA6D;IAC/D,8BAA8B,EAC5B,iEAAiE;IACnE,mBAAmB,EACjB,8GAA8G;IAChH,wBAAwB,EACtB,+DAA+D;IACjE,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,kBAAkB,EAChB,yJAAyJ;IAC3J,uBAAuB,EACrB,gGAAgG;IAClG,yBAAyB,EACvB,4DAA4D;IAC9D,gCAAgC,EAC9B,2EAA2E;IAC7E,0BAA0B,EACxB,sDAAsD;IACxD,wEAAwE;IACxE,yDAAyD;IACzD,gCAAgC,EAC9B,wGAAwG;IAC1G,mBAAmB,EACjB,0FAA0F;IAC5F,iBAAiB,EACf,wLAAwL;IAC1L,iDAAiD;IACjD,yBAAyB,EACvB,gJAAgJ;IAClJ,kBAAkB,EAChB,qKAAqK;IACvK,0EAA0E;IAC1E,oBAAoB,EAClB,qPAAqP;CACxP,CAAC;AAEF,6EAA6E;AAC7E,MAAM,4BAA4B,GAChC,+EAA+E,CAAC;AAElF,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,oBAAoB,CAAC,KAAK,CAAC,IAAI,4BAA4B,CAAC;AACrE,CAAC"}
|
|
@@ -100,9 +100,6 @@ export interface EvidenceStatus {
|
|
|
100
100
|
commandVerified: boolean;
|
|
101
101
|
/** Agent-reported tests_reported agree with a passed command's parsed stdout. */
|
|
102
102
|
testsMachineBacked: boolean;
|
|
103
|
-
/** Agent-reported files_changed equals the git change set exactly; null
|
|
104
|
-
* when the machine change set is not observable. */
|
|
105
|
-
reportedFilesMatch: boolean | null;
|
|
106
103
|
}
|
|
107
104
|
/** v3.2: Derive the machine-verification status of a round. The verification
|
|
108
105
|
* capability is modeled explicitly (verified / unavailable / absent) instead
|
|
@@ -156,6 +153,10 @@ gateEntries?: VaultEntry[],
|
|
|
156
153
|
* filesystem access); this function stays a pure function of its inputs. */
|
|
157
154
|
entrypointDrift?: EntrypointDrift[], beforeEvidence?: MachineObservation[],
|
|
158
155
|
/** v3.9: the restore point's own dirty files (undefined = never observed). */
|
|
159
|
-
backtrackTargetDirty?: string[]
|
|
156
|
+
backtrackTargetDirty?: string[],
|
|
157
|
+
/** v3.9.4: whether the raw submission attempted
|
|
158
|
+
* `execution_report.files_changed` (from the persisted submittedFields
|
|
159
|
+
* manifest). Undefined falls back to "an execution report exists". */
|
|
160
|
+
filesReported?: boolean): VerificationResult;
|
|
160
161
|
export {};
|
|
161
162
|
//# sourceMappingURL=verification-gate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-gate.d.ts","sourceRoot":"","sources":["../src/verification-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"verification-gate.d.ts","sourceRoot":"","sources":["../src/verification-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* framed as declaration / execution / closure stages in their doc comments.
|
|
20
20
|
*/
|
|
21
21
|
import { afterObservations, gitDeltaState } from "./evidence-provider.js";
|
|
22
|
+
import { deriveFilesReconciliation } from "./files-reconciliation.js";
|
|
22
23
|
import { isPassedAfterObservation } from "./evidence-provider.js";
|
|
23
24
|
import { getPolicy } from "./policy.js";
|
|
24
25
|
import { makeVerificationFlag, makeVerificationResult } from "./protocol.js";
|
|
@@ -220,15 +221,6 @@ export function deriveEvidenceStatus(selfEval, evidenceDeltas) {
|
|
|
220
221
|
parsed.failed === reported.failed &&
|
|
221
222
|
parsed.skipped === reported.skipped;
|
|
222
223
|
}
|
|
223
|
-
// reportedFilesMatch: agent-reported files_changed equals the observed
|
|
224
|
-
// change set. Unknown is null, not false.
|
|
225
|
-
let reportedFilesMatch = null;
|
|
226
|
-
if (git.state === "observed" && selfEval.execution_report) {
|
|
227
|
-
const reportedSet = [...(selfEval.execution_report.files_changed ?? [])].sort();
|
|
228
|
-
const actualSet = [...git.changedFiles].sort();
|
|
229
|
-
reportedFilesMatch = reportedSet.length === actualSet.length &&
|
|
230
|
-
reportedSet.every((file, index) => file === actualSet[index]);
|
|
231
|
-
}
|
|
232
224
|
// v3.3: git observation alone is no longer "verified" — the machine seeing
|
|
233
225
|
// file changes is not the machine verifying success. Only a passed
|
|
234
226
|
// after-phase command (observed by the runtime itself) upgrades a round.
|
|
@@ -246,7 +238,6 @@ export function deriveEvidenceStatus(selfEval, evidenceDeltas) {
|
|
|
246
238
|
gitChangeState: git.state,
|
|
247
239
|
commandVerified,
|
|
248
240
|
testsMachineBacked,
|
|
249
|
-
reportedFilesMatch,
|
|
250
241
|
};
|
|
251
242
|
}
|
|
252
243
|
/** Per-round machine progress over decoded committed history. */
|
|
@@ -543,41 +534,27 @@ function checkRetractFreshConstraint(selfEval, prevSelfEval, currentRound) {
|
|
|
543
534
|
}
|
|
544
535
|
/** v1.18: Cross-validate agent-reported files_changed against git evidence
|
|
545
536
|
* from the configured evidence providers (MachineObservation array). */
|
|
546
|
-
function checkEvidenceIntegrity(selfEval, evidenceDeltas
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
const reported = [...(selfEval.execution_report.files_changed ?? [])].sort();
|
|
554
|
-
const actual = [...git.changedFiles].sort();
|
|
555
|
-
if (reported.length === 0 && actual.length === 0)
|
|
537
|
+
function checkEvidenceIntegrity(selfEval, evidenceDeltas,
|
|
538
|
+
/** v3.9.4: whether the raw submission named
|
|
539
|
+
* `execution_report.files_changed`. The receipt uses the SAME manifest, so
|
|
540
|
+
* the two projections can never disagree about an omitted report. */
|
|
541
|
+
filesReported) {
|
|
542
|
+
const reconciliation = deriveFilesReconciliation(selfEval.execution_report ?? null, evidenceDeltas, { attempted: filesReported });
|
|
543
|
+
if (reconciliation.status !== "mismatch")
|
|
556
544
|
return null;
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
field: "files_changed",
|
|
561
|
-
check: CHECK_EVIDENCE_INTEGRITY,
|
|
562
|
-
detail: `Agent reported no files changed but evidence shows: ${actual.join(", ")}`,
|
|
563
|
-
});
|
|
545
|
+
const parts = [];
|
|
546
|
+
if (reconciliation.unreported.length > 0) {
|
|
547
|
+
parts.push(`unreported: [${reconciliation.unreported.join(", ")}]`);
|
|
564
548
|
}
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
if (ghostFiles.length > 0 || missedFiles.length > 0) {
|
|
568
|
-
const parts = [];
|
|
569
|
-
if (ghostFiles.length > 0)
|
|
570
|
-
parts.push(`unconfirmed: [${ghostFiles.join(", ")}]`);
|
|
571
|
-
if (missedFiles.length > 0)
|
|
572
|
-
parts.push(`unreported: [${missedFiles.join(", ")}]`);
|
|
573
|
-
return makeVerificationFlag({
|
|
574
|
-
severity: "warn",
|
|
575
|
-
field: "files_changed",
|
|
576
|
-
check: CHECK_EVIDENCE_INTEGRITY,
|
|
577
|
-
detail: `Agent files_changed doesn't match evidence: ${parts.join("; ")}`,
|
|
578
|
-
});
|
|
549
|
+
if (reconciliation.unconfirmed.length > 0) {
|
|
550
|
+
parts.push(`unconfirmed: [${reconciliation.unconfirmed.join(", ")}]`);
|
|
579
551
|
}
|
|
580
|
-
return
|
|
552
|
+
return makeVerificationFlag({
|
|
553
|
+
severity: "warn",
|
|
554
|
+
field: "files_changed",
|
|
555
|
+
check: CHECK_EVIDENCE_INTEGRITY,
|
|
556
|
+
detail: `Agent files_changed doesn't match evidence: ${parts.join("; ")}`,
|
|
557
|
+
});
|
|
581
558
|
}
|
|
582
559
|
/** A required, explicitly configured verification command is authoritative
|
|
583
560
|
* when the Agent claims success. Optional commands remain observational. */
|
|
@@ -601,6 +578,7 @@ function checkRequiredCommandEvidence(selfEval, evidenceDeltas) {
|
|
|
601
578
|
field: "execution_report",
|
|
602
579
|
check: CHECK_REQUIRED_COMMAND_FAILED,
|
|
603
580
|
detail: `Agent claims success but required command "${name}" ${String(status)}${exitCode}`,
|
|
581
|
+
ref: name,
|
|
604
582
|
});
|
|
605
583
|
}
|
|
606
584
|
return null;
|
|
@@ -719,6 +697,7 @@ function checkCommandEvidenceIntegrity(selfEval, evidenceDeltas) {
|
|
|
719
697
|
field: "tests_reported",
|
|
720
698
|
check: CHECK_COMMAND_EVIDENCE_MISMATCH,
|
|
721
699
|
detail: `Agent tests_reported don't match "${name}" output: ${mismatches.join("; ")}`,
|
|
700
|
+
ref: name,
|
|
722
701
|
});
|
|
723
702
|
}
|
|
724
703
|
return null;
|
|
@@ -770,6 +749,7 @@ function checkVerificationDomainIntegrity(evidenceDeltas, drift) {
|
|
|
770
749
|
: "") +
|
|
771
750
|
"Keep the verification command stable or resubmit the same round with the " +
|
|
772
751
|
"entrypoint unchanged.",
|
|
752
|
+
ref: snapshot.data.commandId,
|
|
773
753
|
});
|
|
774
754
|
}
|
|
775
755
|
// Only when NO entrypoint was tampered does the test-file warn stand in.
|
|
@@ -786,6 +766,7 @@ function checkVerificationDomainIntegrity(evidenceDeltas, drift) {
|
|
|
786
766
|
check: CHECK_TEST_FILES_MODIFIED,
|
|
787
767
|
detail: `Test files changed in the same round command "${snapshot.data.commandId}" passed — ` +
|
|
788
768
|
"confirm the tests still verify the task claims.",
|
|
769
|
+
ref: snapshot.data.commandId,
|
|
789
770
|
});
|
|
790
771
|
}
|
|
791
772
|
return null;
|
|
@@ -971,9 +952,10 @@ function checkRoundScopeDrift(activeContract, evidenceDeltas) {
|
|
|
971
952
|
function checkContractItemsUnverified(statuses) {
|
|
972
953
|
if (statuses.insufficientCount === 0)
|
|
973
954
|
return null;
|
|
955
|
+
// v3.9.4: EVERY insufficient item is named. The previous 3-item cap hid the
|
|
956
|
+
// rest of the debt from the one repair surface the agent reads.
|
|
974
957
|
const unverified = statuses.items
|
|
975
958
|
.filter((item) => item.status === "insufficient")
|
|
976
|
-
.slice(0, 3)
|
|
977
959
|
.map((item) => item.itemId);
|
|
978
960
|
return makeVerificationFlag({
|
|
979
961
|
severity: "warn",
|
|
@@ -1102,8 +1084,13 @@ gateEntries = [],
|
|
|
1102
1084
|
* filesystem access); this function stays a pure function of its inputs. */
|
|
1103
1085
|
entrypointDrift = [], beforeEvidence = [],
|
|
1104
1086
|
/** v3.9: the restore point's own dirty files (undefined = never observed). */
|
|
1105
|
-
backtrackTargetDirty
|
|
1087
|
+
backtrackTargetDirty,
|
|
1088
|
+
/** v3.9.4: whether the raw submission attempted
|
|
1089
|
+
* `execution_report.files_changed` (from the persisted submittedFields
|
|
1090
|
+
* manifest). Undefined falls back to "an execution report exists". */
|
|
1091
|
+
filesReported) {
|
|
1106
1092
|
const flags = [];
|
|
1093
|
+
const filesReportedForGate = filesReported ?? (selfEval.execution_report != null);
|
|
1107
1094
|
// Collect violations from all previous vault entries for duplicate-discovery
|
|
1108
1095
|
// and other checks that need deeper history.
|
|
1109
1096
|
const olderViolations = [];
|
|
@@ -1155,7 +1142,7 @@ backtrackTargetDirty) {
|
|
|
1155
1142
|
() => checkRecurringViolation(selfEval, prevSelfEval, vaultEntries, currentRound),
|
|
1156
1143
|
() => checkRetractFreshConstraint(selfEval, prevSelfEval, currentRound),
|
|
1157
1144
|
// v1.18: Cross-validate agent-reported files_changed against git evidence
|
|
1158
|
-
() => checkEvidenceIntegrity(selfEval, evidenceDeltas),
|
|
1145
|
+
() => checkEvidenceIntegrity(selfEval, evidenceDeltas, filesReportedForGate),
|
|
1159
1146
|
() => checkRequiredCommandEvidence(selfEval, evidenceDeltas),
|
|
1160
1147
|
// v2.0: Cross-validate agent-reported tests_reported against command output
|
|
1161
1148
|
() => checkCommandEvidenceIntegrity(selfEval, evidenceDeltas),
|