loopforge 3.7.1 → 3.8.2
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 +84 -130
- 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 +59 -83
- package/package.json +67 -67
- package/skills/perception/SKILL.md +218 -204
package/dist/self-eval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-eval.js","sourceRoot":"","sources":["../src/self-eval.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"self-eval.js","sourceRoot":"","sources":["../src/self-eval.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/** Sub-goal lifecycle — the single implementation (v3.8).
|
|
2
|
+
*
|
|
3
|
+
* A SubGoal is the AGENT's declaration event, not a machine boundary:
|
|
4
|
+
* - `emerged_subtasks` creates items (always `pending`);
|
|
5
|
+
* - `subgoal_updates` is the only channel that changes a status;
|
|
6
|
+
* - machine verification NEVER writes a status. A verified contract item
|
|
7
|
+
* that references a sub-goal produces a derived `VerifiedSubGoalFact`
|
|
8
|
+
* (cognitive-facts.ts) instead.
|
|
9
|
+
*
|
|
10
|
+
* Identity (v3.8): `sg-<hash(loopId, declarationRound, declarationOrdinal,
|
|
11
|
+
* normalizedDescription)>`. The round is part of the identity, so
|
|
12
|
+
* re-declaring the same text in a later round creates a NEW sub-goal — the
|
|
13
|
+
* previous one may be terminal, and the old text-only hash silently dropped
|
|
14
|
+
* the re-declaration. Within one round, exactly-equal text keeps only the
|
|
15
|
+
* first entry, and `duplicateEmergedDeclarations` reports what was dropped.
|
|
16
|
+
* v3.8.1: no similarity anywhere — a near-duplicate is not a fact.
|
|
17
|
+
*
|
|
18
|
+
* Input is committed round views plus the in-flight report — never raw vault
|
|
19
|
+
* envelopes, so there is exactly one history interpretation.
|
|
20
|
+
*/
|
|
21
|
+
import type { SubGoal, SubGoalUpdate } from "./protocol.js";
|
|
22
|
+
/** v3.8: Stable sub-goal id scoped to its declaration event. */
|
|
23
|
+
export declare function deriveSubGoalId(loopId: string, declaredAtRound: number, ordinal: number, description: string): string;
|
|
24
|
+
/** v3.8.1: The exact duplicates `deriveEmergedItems` discarded — entries whose
|
|
25
|
+
* normalized text repeated an earlier entry in the SAME declaration round, so
|
|
26
|
+
* no second sub-goal was created for them.
|
|
27
|
+
*
|
|
28
|
+
* This replaces the former cross-round Jaccard near-duplicate diagnostic. A
|
|
29
|
+
* near-duplicate is not a fact: two differently-worded sub-goals may be two
|
|
30
|
+
* real pieces of work, and the message told the agent to "consider
|
|
31
|
+
* consolidating" on the strength of a similarity score. An exact repeat
|
|
32
|
+
* inside one round genuinely WAS dropped, so saying so is honest and
|
|
33
|
+
* actionable. */
|
|
34
|
+
export declare function duplicateEmergedDeclarations(descriptions: ReadonlyArray<string>): string[];
|
|
35
|
+
/** v3.8: The items a round's emerged list will create, in order. Exact
|
|
36
|
+
* duplicates within the round keep only their first entry, and ordinals
|
|
37
|
+
* count the surviving entries — the pre-advance preflight and the compile
|
|
38
|
+
* path must agree on this list. */
|
|
39
|
+
export declare function deriveEmergedItems(loopId: string, declaredAtRound: number, descriptions: ReadonlyArray<string>): Array<{
|
|
40
|
+
id: string;
|
|
41
|
+
description: string;
|
|
42
|
+
}>;
|
|
43
|
+
/** Closed migration matrix. done/canceled are terminal (no out-edges); the
|
|
44
|
+
* matrix rejects re-opening. blocked → in_progress is the recovery path. */
|
|
45
|
+
export declare const SUBGOAL_TRANSITIONS: Record<SubGoalUpdate["status"], readonly SubGoal["status"][]>;
|
|
46
|
+
/** Whether a transition is legal. Same-status is a legal no-op (used by
|
|
47
|
+
* replay idempotency). References to terminal sub-goals are rejected by
|
|
48
|
+
* validateSubGoalUpdates before this is consulted. */
|
|
49
|
+
export declare function canTransitionSubGoal(from: SubGoal["status"], to: SubGoalUpdate["status"]): boolean;
|
|
50
|
+
/** Referential validation of a payload's subgoal_updates against the
|
|
51
|
+
* derived sub-goal set. Returns one error per invalid entry:
|
|
52
|
+
* unknown_id | terminal_reference | illegal_transition. */
|
|
53
|
+
export declare function validateSubGoalUpdates(subGoals: SubGoal[], updates: SubGoalUpdate[]): Array<{
|
|
54
|
+
id: string;
|
|
55
|
+
reason: string;
|
|
56
|
+
}>;
|
|
57
|
+
/** One round's declaration channel: what the agent declared, in order.
|
|
58
|
+
* Field names match CommittedRoundView so views can be passed directly. */
|
|
59
|
+
export interface SubGoalDeclarationRound {
|
|
60
|
+
round: number;
|
|
61
|
+
emergedSubtasks?: ReadonlyArray<string>;
|
|
62
|
+
subgoalUpdates?: ReadonlyArray<SubGoalUpdate>;
|
|
63
|
+
}
|
|
64
|
+
/** v3.8: Derive the full sub-goal set from committed round facts plus the
|
|
65
|
+
* in-flight round's report. Replays every round in order — older
|
|
66
|
+
* transitions never regress, and no status is ever inferred. */
|
|
67
|
+
export declare function deriveSubGoals(input: {
|
|
68
|
+
loopId: string;
|
|
69
|
+
currentRound: number;
|
|
70
|
+
/** Committed rounds below `currentRound`, ascending, rollback-excluded
|
|
71
|
+
* (the caller passes CommittedRoundView[] — one history interpretation). */
|
|
72
|
+
rounds: ReadonlyArray<SubGoalDeclarationRound>;
|
|
73
|
+
/** The in-flight round's own report (idempotent replay of the last
|
|
74
|
+
* committed round on the vault path). */
|
|
75
|
+
currentReport?: SubGoalDeclarationRound | null;
|
|
76
|
+
}): SubGoal[];
|
|
77
|
+
//# sourceMappingURL=subgoal-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subgoal-state.d.ts","sourceRoot":"","sources":["../src/subgoal-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAS5D,gEAAgE;AAChE,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,MAAM,CAMR;AAED;;;;;;;;;kBASkB;AAClB,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,GAClC,MAAM,EAAE,CAaV;AAED;;;oCAGoC;AACpC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,GAClC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAa5C;AAED;6EAC6E;AAC7E,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,SAAS,OAAO,CAAC,QAAQ,CAAC,EAAE,CAK7F,CAAC;AAEF;;uDAEuD;AACvD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EACvB,EAAE,EAAE,aAAa,CAAC,QAAQ,CAAC,GAC1B,OAAO,CAGT;AAED;;4DAE4D;AAC5D,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,aAAa,EAAE,GACvB,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBvC;AAuBD;4EAC4E;AAC5E,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CAC/C;AAuBD;;iEAEiE;AACjE,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB;iFAC6E;IAC7E,MAAM,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IAC/C;8CAC0C;IAC1C,aAAa,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAChD,GAAG,OAAO,EAAE,CAuCZ"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/** Sub-goal lifecycle — the single implementation (v3.8).
|
|
2
|
+
*
|
|
3
|
+
* A SubGoal is the AGENT's declaration event, not a machine boundary:
|
|
4
|
+
* - `emerged_subtasks` creates items (always `pending`);
|
|
5
|
+
* - `subgoal_updates` is the only channel that changes a status;
|
|
6
|
+
* - machine verification NEVER writes a status. A verified contract item
|
|
7
|
+
* that references a sub-goal produces a derived `VerifiedSubGoalFact`
|
|
8
|
+
* (cognitive-facts.ts) instead.
|
|
9
|
+
*
|
|
10
|
+
* Identity (v3.8): `sg-<hash(loopId, declarationRound, declarationOrdinal,
|
|
11
|
+
* normalizedDescription)>`. The round is part of the identity, so
|
|
12
|
+
* re-declaring the same text in a later round creates a NEW sub-goal — the
|
|
13
|
+
* previous one may be terminal, and the old text-only hash silently dropped
|
|
14
|
+
* the re-declaration. Within one round, exactly-equal text keeps only the
|
|
15
|
+
* first entry, and `duplicateEmergedDeclarations` reports what was dropped.
|
|
16
|
+
* v3.8.1: no similarity anywhere — a near-duplicate is not a fact.
|
|
17
|
+
*
|
|
18
|
+
* Input is committed round views plus the in-flight report — never raw vault
|
|
19
|
+
* envelopes, so there is exactly one history interpretation.
|
|
20
|
+
*/
|
|
21
|
+
import { createHash } from "node:crypto";
|
|
22
|
+
import { makeSubGoal } from "./protocol.js";
|
|
23
|
+
/** Normalize a description for identity purposes: trim, collapse internal
|
|
24
|
+
* whitespace, lowercase. Mirrors deriveItemId's normalization. */
|
|
25
|
+
function normalizeDescription(text) {
|
|
26
|
+
return text.trim().replace(/\s+/g, " ").toLowerCase();
|
|
27
|
+
}
|
|
28
|
+
/** v3.8: Stable sub-goal id scoped to its declaration event. */
|
|
29
|
+
export function deriveSubGoalId(loopId, declaredAtRound, ordinal, description) {
|
|
30
|
+
const digest = createHash("sha256")
|
|
31
|
+
.update(JSON.stringify([loopId, declaredAtRound, ordinal, normalizeDescription(description)]))
|
|
32
|
+
.digest("hex")
|
|
33
|
+
.slice(0, 8);
|
|
34
|
+
return `sg-${digest}`;
|
|
35
|
+
}
|
|
36
|
+
/** v3.8.1: The exact duplicates `deriveEmergedItems` discarded — entries whose
|
|
37
|
+
* normalized text repeated an earlier entry in the SAME declaration round, so
|
|
38
|
+
* no second sub-goal was created for them.
|
|
39
|
+
*
|
|
40
|
+
* This replaces the former cross-round Jaccard near-duplicate diagnostic. A
|
|
41
|
+
* near-duplicate is not a fact: two differently-worded sub-goals may be two
|
|
42
|
+
* real pieces of work, and the message told the agent to "consider
|
|
43
|
+
* consolidating" on the strength of a similarity score. An exact repeat
|
|
44
|
+
* inside one round genuinely WAS dropped, so saying so is honest and
|
|
45
|
+
* actionable. */
|
|
46
|
+
export function duplicateEmergedDeclarations(descriptions) {
|
|
47
|
+
const seen = new Set();
|
|
48
|
+
const duplicates = [];
|
|
49
|
+
for (const raw of descriptions) {
|
|
50
|
+
const normalized = normalizeDescription(raw);
|
|
51
|
+
if (!normalized)
|
|
52
|
+
continue;
|
|
53
|
+
if (seen.has(normalized)) {
|
|
54
|
+
if (!duplicates.includes(normalized))
|
|
55
|
+
duplicates.push(normalized);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
seen.add(normalized);
|
|
59
|
+
}
|
|
60
|
+
return duplicates;
|
|
61
|
+
}
|
|
62
|
+
/** v3.8: The items a round's emerged list will create, in order. Exact
|
|
63
|
+
* duplicates within the round keep only their first entry, and ordinals
|
|
64
|
+
* count the surviving entries — the pre-advance preflight and the compile
|
|
65
|
+
* path must agree on this list. */
|
|
66
|
+
export function deriveEmergedItems(loopId, declaredAtRound, descriptions) {
|
|
67
|
+
const items = [];
|
|
68
|
+
const seen = new Set();
|
|
69
|
+
for (const raw of descriptions) {
|
|
70
|
+
const normalized = normalizeDescription(raw);
|
|
71
|
+
if (!normalized || seen.has(normalized))
|
|
72
|
+
continue;
|
|
73
|
+
seen.add(normalized);
|
|
74
|
+
items.push({
|
|
75
|
+
id: deriveSubGoalId(loopId, declaredAtRound, items.length, raw),
|
|
76
|
+
description: raw.trim(),
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return items;
|
|
80
|
+
}
|
|
81
|
+
/** Closed migration matrix. done/canceled are terminal (no out-edges); the
|
|
82
|
+
* matrix rejects re-opening. blocked → in_progress is the recovery path. */
|
|
83
|
+
export const SUBGOAL_TRANSITIONS = {
|
|
84
|
+
in_progress: ["pending", "blocked"],
|
|
85
|
+
done: ["pending", "in_progress", "blocked"],
|
|
86
|
+
blocked: ["pending", "in_progress"],
|
|
87
|
+
canceled: ["pending", "in_progress", "blocked"],
|
|
88
|
+
};
|
|
89
|
+
/** Whether a transition is legal. Same-status is a legal no-op (used by
|
|
90
|
+
* replay idempotency). References to terminal sub-goals are rejected by
|
|
91
|
+
* validateSubGoalUpdates before this is consulted. */
|
|
92
|
+
export function canTransitionSubGoal(from, to) {
|
|
93
|
+
if (from === to)
|
|
94
|
+
return true;
|
|
95
|
+
return SUBGOAL_TRANSITIONS[to].includes(from);
|
|
96
|
+
}
|
|
97
|
+
/** Referential validation of a payload's subgoal_updates against the
|
|
98
|
+
* derived sub-goal set. Returns one error per invalid entry:
|
|
99
|
+
* unknown_id | terminal_reference | illegal_transition. */
|
|
100
|
+
export function validateSubGoalUpdates(subGoals, updates) {
|
|
101
|
+
const byId = new Map(subGoals.map((sg) => [sg.id, sg]));
|
|
102
|
+
const errors = [];
|
|
103
|
+
for (const update of updates) {
|
|
104
|
+
const target = byId.get(update.id);
|
|
105
|
+
if (!target) {
|
|
106
|
+
errors.push({ id: update.id, reason: "unknown_id" });
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (target.status === "done" || target.status === "canceled") {
|
|
110
|
+
errors.push({ id: update.id, reason: "terminal_reference" });
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (!canTransitionSubGoal(target.status, update.status)) {
|
|
114
|
+
errors.push({ id: update.id, reason: "illegal_transition" });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return errors;
|
|
118
|
+
}
|
|
119
|
+
/** Apply one transition to the accumulated list. Guards make replay of
|
|
120
|
+
* committed history idempotent: terminal sub-goals never change and
|
|
121
|
+
* same-status updates are no-ops. */
|
|
122
|
+
function applySubGoalUpdate(subGoals, update, rnd) {
|
|
123
|
+
const target = subGoals.find((sg) => sg.id === update.id);
|
|
124
|
+
if (!target)
|
|
125
|
+
return;
|
|
126
|
+
if (target.status === "done" || target.status === "canceled")
|
|
127
|
+
return;
|
|
128
|
+
if (!canTransitionSubGoal(target.status, update.status))
|
|
129
|
+
return;
|
|
130
|
+
if (target.status === update.status)
|
|
131
|
+
return;
|
|
132
|
+
target.status = update.status;
|
|
133
|
+
target.status_changed_at_round = rnd;
|
|
134
|
+
if (update.note && update.note.trim().length > 0) {
|
|
135
|
+
target.status_note = update.note.trim().slice(0, 300);
|
|
136
|
+
}
|
|
137
|
+
if (update.status === "done")
|
|
138
|
+
target.completed_at_round = rnd;
|
|
139
|
+
}
|
|
140
|
+
/** Create the round's emerged items (exact-text dedup within the round). */
|
|
141
|
+
function createEmerged(subGoals, loopId, descriptions, rnd) {
|
|
142
|
+
const existing = new Set(subGoals.map((sg) => sg.id));
|
|
143
|
+
for (const item of deriveEmergedItems(loopId, rnd, descriptions)) {
|
|
144
|
+
if (existing.has(item.id))
|
|
145
|
+
continue; // idempotent replay of the same round
|
|
146
|
+
subGoals.push(makeSubGoal({
|
|
147
|
+
id: item.id,
|
|
148
|
+
description: item.description,
|
|
149
|
+
status: "pending",
|
|
150
|
+
declared_at_round: rnd,
|
|
151
|
+
status_changed_at_round: rnd,
|
|
152
|
+
priority: subGoals.length,
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/** v3.8: Derive the full sub-goal set from committed round facts plus the
|
|
157
|
+
* in-flight round's report. Replays every round in order — older
|
|
158
|
+
* transitions never regress, and no status is ever inferred. */
|
|
159
|
+
export function deriveSubGoals(input) {
|
|
160
|
+
const subGoals = [];
|
|
161
|
+
for (const round of input.rounds) {
|
|
162
|
+
createEmerged(subGoals, input.loopId, round.emergedSubtasks ?? [], round.round);
|
|
163
|
+
for (const update of round.subgoalUpdates ?? []) {
|
|
164
|
+
applySubGoalUpdate(subGoals, update, round.round);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const report = input.currentReport;
|
|
168
|
+
if (report) {
|
|
169
|
+
const rnd = report.round || input.currentRound - 1;
|
|
170
|
+
createEmerged(subGoals, input.loopId, report.emergedSubtasks ?? [], rnd);
|
|
171
|
+
for (const update of report.subgoalUpdates ?? []) {
|
|
172
|
+
applySubGoalUpdate(subGoals, update, rnd);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Display order: in_progress, then pending by age, then blocked, then
|
|
176
|
+
// done (most recent first), then canceled.
|
|
177
|
+
subGoals.sort((a, b) => {
|
|
178
|
+
const rank = (s) => {
|
|
179
|
+
switch (s.status) {
|
|
180
|
+
case "in_progress": return 0;
|
|
181
|
+
case "pending": return 1;
|
|
182
|
+
case "blocked": return 2;
|
|
183
|
+
case "done": return 3;
|
|
184
|
+
case "canceled": return 4;
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
const ra = rank(a), rb = rank(b);
|
|
188
|
+
if (ra !== rb)
|
|
189
|
+
return ra - rb;
|
|
190
|
+
if (a.status === "pending")
|
|
191
|
+
return a.declared_at_round - b.declared_at_round;
|
|
192
|
+
if (a.status === "done")
|
|
193
|
+
return (b.completed_at_round ?? 0) - (a.completed_at_round ?? 0);
|
|
194
|
+
return a.declared_at_round - b.declared_at_round;
|
|
195
|
+
});
|
|
196
|
+
return subGoals;
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=subgoal-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subgoal-state.js","sourceRoot":"","sources":["../src/subgoal-state.ts"],"names":[],"mappings":"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"}
|
package/dist/token-utils.d.ts
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
/** Shared token
|
|
1
|
+
/** Shared token helpers — content-addressed ids, contract canonicalization,
|
|
2
|
+
* normalization, and vault entry accessors.
|
|
2
3
|
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* so CJK similarity takes intermediate values instead of collapsing to
|
|
9
|
-
* 0/1. The ranges cover Unified Ideographs, Compatibility Ideographs and
|
|
10
|
-
* Extensions B–F (surrogate-pair code points the legacy regex missed).
|
|
4
|
+
* v3.8.1: `tokenize`, `isCjkCodePoint` and `jaccardSimilarity` are gone.
|
|
5
|
+
* They existed to grade how alike two strings were, and every caller used
|
|
6
|
+
* that grade as a relationship (same criterion, same constraint, same
|
|
7
|
+
* sub-goal, task drift). Relationships now come from stable ids, explicit
|
|
8
|
+
* refs, normalized-exact text, or content hashes — never from a score.
|
|
11
9
|
*/
|
|
12
|
-
/** Tokenize text into a set of lowercase ASCII words and CJK bigrams.
|
|
13
|
-
* Scripts are tokenized independently, so mixed text yields per-script
|
|
14
|
-
* tokens (e.g. "修复bug重入" → {修复, bug, 重入}). */
|
|
15
|
-
export declare function tokenize(text: string): Set<string>;
|
|
16
|
-
/** Jaccard similarity in [0, 1]. Returns 0 when either side is empty —
|
|
17
|
-
* an empty description carries no information and must not match
|
|
18
|
-
* everything (a score of 1 would make `[""]` a wildcard that falsely
|
|
19
|
-
* marks sub-goals done or suppresses criteria milestones). */
|
|
20
|
-
export declare function jaccardSimilarity(left: string, right: string): number;
|
|
21
10
|
/** Filter null/undefined/empty strings, trim, and deduplicate via Set. */
|
|
22
11
|
export declare function unique(values: Array<string | null | undefined>): string[];
|
|
23
12
|
/** Narrow `unknown` to a non-array object. Used across storage, MCP, and
|
|
@@ -33,8 +22,52 @@ export declare function entryRound(entry: unknown): number;
|
|
|
33
22
|
* loop-compiler; consolidation must not change the hash strategy
|
|
34
23
|
* (deterministic across rounds). */
|
|
35
24
|
export declare function deriveItemId(text: string): string;
|
|
36
|
-
/** Stable-ID shape shared by constraint/criterion/sub-goal
|
|
25
|
+
/** Stable-ID shape shared by constraint/criterion/sub-goal/contract
|
|
26
|
+
* references. v3.8 added the contract (rc-) and contract-item (rci-)
|
|
27
|
+
* namespaces. */
|
|
37
28
|
export declare const STABLE_ID_RE: RegExp;
|
|
29
|
+
/** v2.11: Derive a stable criterion ID from its text hash (cr-XXXXXXXX).
|
|
30
|
+
* Same hash strategy as SubGoal — deterministic across rounds.
|
|
31
|
+
*
|
|
32
|
+
* v3.8.1: lives here (with the other id helpers) because the criterion fact
|
|
33
|
+
* derivation and the compiler both need it; it used to sit in loop-compiler,
|
|
34
|
+
* which would have made `round-facts.ts` ⇄ `loop-compiler.ts` an import
|
|
35
|
+
* cycle. `loop-compiler.ts` re-exports it, so its public surface is
|
|
36
|
+
* unchanged. */
|
|
37
|
+
export declare function deriveCriterionId(text: string): string;
|
|
38
|
+
/** The cr-XXXXXXXX shape — the ONE predicate every criterion-reference reader
|
|
39
|
+
* uses (round-contract.ts kept an inline copy before v3.8.1). */
|
|
40
|
+
export declare function isCriterionId(ref: string): boolean;
|
|
41
|
+
/** Normalize one contract text field for identity purposes. */
|
|
42
|
+
export declare function normalizeText(text: string): string;
|
|
43
|
+
/** The contract-item fields that participate in rci-/rc- identity. Structural
|
|
44
|
+
* (not imported from protocol.ts) so this module keeps its zero-dependency
|
|
45
|
+
* position alongside the other pure token helpers. */
|
|
46
|
+
export interface ContractIdentityItem {
|
|
47
|
+
description: string;
|
|
48
|
+
criterion_refs: string[];
|
|
49
|
+
subgoal_refs: string[];
|
|
50
|
+
verify_with: string[];
|
|
51
|
+
}
|
|
52
|
+
/** v3.8: Canonical form of a contract proposal. Identity is CONTENT only —
|
|
53
|
+
* restating an unchanged contract keeps the same rc-/rci- ids, unlike a
|
|
54
|
+
* SubGoal whose id includes its declaration round. Array order is part of
|
|
55
|
+
* the identity. */
|
|
56
|
+
export declare function canonicalContractText(contract: {
|
|
57
|
+
work_item?: string;
|
|
58
|
+
scope: string[];
|
|
59
|
+
items: ContractIdentityItem[];
|
|
60
|
+
}): string;
|
|
61
|
+
/** v3.8: rc-XXXXXXXX — loopId + canonical content. */
|
|
62
|
+
export declare function deriveContractId(loopId: string, contract: Parameters<typeof canonicalContractText>[0]): string;
|
|
63
|
+
/** v3.8: rci-XXXXXXXX — the item's own content plus a duplicate ordinal.
|
|
64
|
+
* Deliberately independent of the contract id: editing `work_item` or
|
|
65
|
+
* `scope` must not invalidate every item id the agent already cited. */
|
|
66
|
+
export declare function deriveContractItemId(item: ContractIdentityItem, duplicateOrdinal: number): string;
|
|
67
|
+
/** v3.8: Assign ids to a proposal's items in declaration order. Items with
|
|
68
|
+
* identical normalized content get distinct ids through their duplicate
|
|
69
|
+
* ordinal. */
|
|
70
|
+
export declare function deriveContractItemIds(items: ReadonlyArray<ContractIdentityItem>): string[];
|
|
38
71
|
/** Extract the distinct file-path-like tokens from text. The module-local
|
|
39
72
|
* /g regex is safe to share across callers: matchAll always consumes the
|
|
40
73
|
* string to exhaustion, which resets lastIndex before any later use. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-utils.d.ts","sourceRoot":"","sources":["../src/token-utils.ts"],"names":[],"mappings":"AAAA
|
|
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,CAaV;AASD;;yEAEyE;AACzE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAI5D"}
|
package/dist/token-utils.js
CHANGED
|
@@ -1,76 +1,13 @@
|
|
|
1
|
-
/** Shared token
|
|
1
|
+
/** Shared token helpers — content-addressed ids, contract canonicalization,
|
|
2
|
+
* normalization, and vault entry accessors.
|
|
2
3
|
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* so CJK similarity takes intermediate values instead of collapsing to
|
|
9
|
-
* 0/1. The ranges cover Unified Ideographs, Compatibility Ideographs and
|
|
10
|
-
* Extensions B–F (surrogate-pair code points the legacy regex missed).
|
|
4
|
+
* v3.8.1: `tokenize`, `isCjkCodePoint` and `jaccardSimilarity` are gone.
|
|
5
|
+
* They existed to grade how alike two strings were, and every caller used
|
|
6
|
+
* that grade as a relationship (same criterion, same constraint, same
|
|
7
|
+
* sub-goal, task drift). Relationships now come from stable ids, explicit
|
|
8
|
+
* refs, normalized-exact text, or content hashes — never from a score.
|
|
11
9
|
*/
|
|
12
10
|
import { createHash } from "node:crypto";
|
|
13
|
-
// ── Tokenization & similarity ──────────────────────────────────────────────
|
|
14
|
-
/** CJK ranges: Unified Ideographs (U+3400–U+9FFF), Compatibility Ideographs
|
|
15
|
-
* (U+F900–U+FAFF), Extensions B–F (U+20000–U+2FA1F). */
|
|
16
|
-
function isCjkCodePoint(code) {
|
|
17
|
-
return (code >= 0x3400 && code <= 0x9fff)
|
|
18
|
-
|| (code >= 0xf900 && code <= 0xfaff)
|
|
19
|
-
|| (code >= 0x20000 && code <= 0x2fa1f);
|
|
20
|
-
}
|
|
21
|
-
/** Tokenize text into a set of lowercase ASCII words and CJK bigrams.
|
|
22
|
-
* Scripts are tokenized independently, so mixed text yields per-script
|
|
23
|
-
* tokens (e.g. "修复bug重入" → {修复, bug, 重入}). */
|
|
24
|
-
export function tokenize(text) {
|
|
25
|
-
const tokens = new Set();
|
|
26
|
-
let ascii = "";
|
|
27
|
-
let cjk = [];
|
|
28
|
-
const flushAscii = () => { if (ascii.length > 0) {
|
|
29
|
-
tokens.add(ascii);
|
|
30
|
-
ascii = "";
|
|
31
|
-
} };
|
|
32
|
-
const flushCjk = () => {
|
|
33
|
-
if (cjk.length === 1)
|
|
34
|
-
tokens.add(cjk[0]);
|
|
35
|
-
else
|
|
36
|
-
for (let i = 0; i + 1 < cjk.length; i++)
|
|
37
|
-
tokens.add(cjk[i] + cjk[i + 1]);
|
|
38
|
-
cjk = [];
|
|
39
|
-
};
|
|
40
|
-
for (const ch of text.toLowerCase()) {
|
|
41
|
-
const code = ch.codePointAt(0) ?? 0;
|
|
42
|
-
if ((code >= 0x30 && code <= 0x39) || (code >= 0x61 && code <= 0x7a)) {
|
|
43
|
-
flushCjk();
|
|
44
|
-
ascii += ch;
|
|
45
|
-
}
|
|
46
|
-
else if (isCjkCodePoint(code)) {
|
|
47
|
-
flushAscii();
|
|
48
|
-
cjk.push(ch);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
flushAscii();
|
|
52
|
-
flushCjk();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
flushAscii();
|
|
56
|
-
flushCjk();
|
|
57
|
-
return tokens;
|
|
58
|
-
}
|
|
59
|
-
/** Jaccard similarity in [0, 1]. Returns 0 when either side is empty —
|
|
60
|
-
* an empty description carries no information and must not match
|
|
61
|
-
* everything (a score of 1 would make `[""]` a wildcard that falsely
|
|
62
|
-
* marks sub-goals done or suppresses criteria milestones). */
|
|
63
|
-
export function jaccardSimilarity(left, right) {
|
|
64
|
-
const a = tokenize(left);
|
|
65
|
-
const b = tokenize(right);
|
|
66
|
-
if (a.size === 0 || b.size === 0)
|
|
67
|
-
return 0;
|
|
68
|
-
let intersection = 0;
|
|
69
|
-
for (const value of a)
|
|
70
|
-
if (b.has(value))
|
|
71
|
-
intersection++;
|
|
72
|
-
return intersection / new Set([...a, ...b]).size;
|
|
73
|
-
}
|
|
74
11
|
// ── Dedup helper ───────────────────────────────────────────────────────────
|
|
75
12
|
/** Filter null/undefined/empty strings, trim, and deduplicate via Set. */
|
|
76
13
|
export function unique(values) {
|
|
@@ -107,8 +44,82 @@ export function deriveItemId(text) {
|
|
|
107
44
|
.digest("hex")
|
|
108
45
|
.slice(0, 8);
|
|
109
46
|
}
|
|
110
|
-
/** Stable-ID shape shared by constraint/criterion/sub-goal
|
|
111
|
-
|
|
47
|
+
/** Stable-ID shape shared by constraint/criterion/sub-goal/contract
|
|
48
|
+
* references. v3.8 added the contract (rc-) and contract-item (rci-)
|
|
49
|
+
* namespaces. */
|
|
50
|
+
export const STABLE_ID_RE = /^(c|cr|sg|rc|rci)-[a-f0-9]{8}$/;
|
|
51
|
+
/** v2.11: Derive a stable criterion ID from its text hash (cr-XXXXXXXX).
|
|
52
|
+
* Same hash strategy as SubGoal — deterministic across rounds.
|
|
53
|
+
*
|
|
54
|
+
* v3.8.1: lives here (with the other id helpers) because the criterion fact
|
|
55
|
+
* derivation and the compiler both need it; it used to sit in loop-compiler,
|
|
56
|
+
* which would have made `round-facts.ts` ⇄ `loop-compiler.ts` an import
|
|
57
|
+
* cycle. `loop-compiler.ts` re-exports it, so its public surface is
|
|
58
|
+
* unchanged. */
|
|
59
|
+
export function deriveCriterionId(text) {
|
|
60
|
+
return "cr-" + deriveItemId(text);
|
|
61
|
+
}
|
|
62
|
+
/** The cr-XXXXXXXX shape — the ONE predicate every criterion-reference reader
|
|
63
|
+
* uses (round-contract.ts kept an inline copy before v3.8.1). */
|
|
64
|
+
export function isCriterionId(ref) {
|
|
65
|
+
return /^cr-[a-f0-9]{8}$/.test(ref);
|
|
66
|
+
}
|
|
67
|
+
// ── v3.8: Contract identity (content-addressed, round-independent) ──────────
|
|
68
|
+
/** Normalize one contract text field for identity purposes. */
|
|
69
|
+
export function normalizeText(text) {
|
|
70
|
+
return text.trim().replace(/\s+/g, " ").toLowerCase();
|
|
71
|
+
}
|
|
72
|
+
/** v3.8: Canonical form of a contract proposal. Identity is CONTENT only —
|
|
73
|
+
* restating an unchanged contract keeps the same rc-/rci- ids, unlike a
|
|
74
|
+
* SubGoal whose id includes its declaration round. Array order is part of
|
|
75
|
+
* the identity. */
|
|
76
|
+
export function canonicalContractText(contract) {
|
|
77
|
+
const canonical = {
|
|
78
|
+
work_item: normalizeText(contract.work_item ?? ""),
|
|
79
|
+
scope: contract.scope.map(normalizeText),
|
|
80
|
+
items: contract.items.map((item) => ({
|
|
81
|
+
description: normalizeText(item.description),
|
|
82
|
+
criterion_refs: item.criterion_refs.map(normalizeText),
|
|
83
|
+
subgoal_refs: item.subgoal_refs.map(normalizeText),
|
|
84
|
+
verify_with: item.verify_with.map(normalizeText),
|
|
85
|
+
})),
|
|
86
|
+
};
|
|
87
|
+
return JSON.stringify(canonical);
|
|
88
|
+
}
|
|
89
|
+
/** v3.8: rc-XXXXXXXX — loopId + canonical content. */
|
|
90
|
+
export function deriveContractId(loopId, contract) {
|
|
91
|
+
return `rc-${deriveItemId(`${loopId} ${canonicalContractText(contract)}`)}`;
|
|
92
|
+
}
|
|
93
|
+
/** v3.8: rci-XXXXXXXX — the item's own content plus a duplicate ordinal.
|
|
94
|
+
* Deliberately independent of the contract id: editing `work_item` or
|
|
95
|
+
* `scope` must not invalidate every item id the agent already cited. */
|
|
96
|
+
export function deriveContractItemId(item, duplicateOrdinal) {
|
|
97
|
+
const canonical = JSON.stringify({
|
|
98
|
+
description: normalizeText(item.description),
|
|
99
|
+
criterion_refs: item.criterion_refs.map(normalizeText),
|
|
100
|
+
subgoal_refs: item.subgoal_refs.map(normalizeText),
|
|
101
|
+
verify_with: item.verify_with.map(normalizeText),
|
|
102
|
+
duplicate_ordinal: duplicateOrdinal,
|
|
103
|
+
});
|
|
104
|
+
return `rci-${deriveItemId(canonical)}`;
|
|
105
|
+
}
|
|
106
|
+
/** v3.8: Assign ids to a proposal's items in declaration order. Items with
|
|
107
|
+
* identical normalized content get distinct ids through their duplicate
|
|
108
|
+
* ordinal. */
|
|
109
|
+
export function deriveContractItemIds(items) {
|
|
110
|
+
const seen = new Map();
|
|
111
|
+
return items.map((item) => {
|
|
112
|
+
const key = JSON.stringify({
|
|
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
|
+
});
|
|
118
|
+
const ordinal = seen.get(key) ?? 0;
|
|
119
|
+
seen.set(key, ordinal + 1);
|
|
120
|
+
return deriveContractItemId(item, ordinal);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
112
123
|
// ── File-path token extraction ──────────────────────────────────────────────
|
|
113
124
|
/** File-path-like token pattern (e.g. "src/auth/login.ts"). Previously
|
|
114
125
|
* duplicated as literals in verification-gate.ts and enforcement-gate.ts;
|