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.
Files changed (144) hide show
  1. package/README.md +84 -130
  2. package/dist/audit.d.ts +53 -1
  3. package/dist/audit.d.ts.map +1 -1
  4. package/dist/audit.js +106 -22
  5. package/dist/audit.js.map +1 -1
  6. package/dist/canonical-state.d.ts +52 -67
  7. package/dist/canonical-state.d.ts.map +1 -1
  8. package/dist/canonical-state.js +134 -147
  9. package/dist/canonical-state.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +103 -4
  12. package/dist/cli.js.map +1 -1
  13. package/dist/cognitive-facts.d.ts +13 -0
  14. package/dist/cognitive-facts.d.ts.map +1 -1
  15. package/dist/cognitive-facts.js +28 -13
  16. package/dist/cognitive-facts.js.map +1 -1
  17. package/dist/committed-round.d.ts +103 -21
  18. package/dist/committed-round.d.ts.map +1 -1
  19. package/dist/committed-round.js +188 -45
  20. package/dist/committed-round.js.map +1 -1
  21. package/dist/contract-items.d.ts +55 -0
  22. package/dist/contract-items.d.ts.map +1 -0
  23. package/dist/contract-items.js +180 -0
  24. package/dist/contract-items.js.map +1 -0
  25. package/dist/enforcement-gate.d.ts +20 -2
  26. package/dist/enforcement-gate.d.ts.map +1 -1
  27. package/dist/enforcement-gate.js +197 -386
  28. package/dist/enforcement-gate.js.map +1 -1
  29. package/dist/engine.d.ts +1 -1
  30. package/dist/engine.d.ts.map +1 -1
  31. package/dist/engine.js +53 -38
  32. package/dist/engine.js.map +1 -1
  33. package/dist/evidence-claims.d.ts +4 -4
  34. package/dist/evidence-claims.d.ts.map +1 -1
  35. package/dist/evidence-claims.js +16 -14
  36. package/dist/evidence-claims.js.map +1 -1
  37. package/dist/evidence-provider.d.ts +85 -89
  38. package/dist/evidence-provider.d.ts.map +1 -1
  39. package/dist/evidence-provider.js +328 -184
  40. package/dist/evidence-provider.js.map +1 -1
  41. package/dist/explain.d.ts +76 -0
  42. package/dist/explain.d.ts.map +1 -0
  43. package/dist/explain.js +127 -0
  44. package/dist/explain.js.map +1 -0
  45. package/dist/generate-schema.js +152 -16
  46. package/dist/generate-schema.js.map +1 -1
  47. package/dist/index.d.ts +6 -6
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +5 -5
  50. package/dist/index.js.map +1 -1
  51. package/dist/loop-compiler.d.ts +40 -53
  52. package/dist/loop-compiler.d.ts.map +1 -1
  53. package/dist/loop-compiler.js +229 -553
  54. package/dist/loop-compiler.js.map +1 -1
  55. package/dist/loop-extras-parser.d.ts +0 -1
  56. package/dist/loop-extras-parser.d.ts.map +1 -1
  57. package/dist/loop-extras-parser.js +0 -4
  58. package/dist/loop-extras-parser.js.map +1 -1
  59. package/dist/loop-projection.d.ts.map +1 -1
  60. package/dist/loop-projection.js +3 -1
  61. package/dist/loop-projection.js.map +1 -1
  62. package/dist/mcp/round-lifecycle.d.ts +30 -21
  63. package/dist/mcp/round-lifecycle.d.ts.map +1 -1
  64. package/dist/mcp/round-lifecycle.js +47 -103
  65. package/dist/mcp/round-lifecycle.js.map +1 -1
  66. package/dist/mcp/server.d.ts.map +1 -1
  67. package/dist/mcp/server.js +51 -7
  68. package/dist/mcp/server.js.map +1 -1
  69. package/dist/mcp/session.d.ts +39 -23
  70. package/dist/mcp/session.d.ts.map +1 -1
  71. package/dist/mcp/session.js +148 -163
  72. package/dist/mcp/session.js.map +1 -1
  73. package/dist/mcp/submission-boundary.d.ts +89 -0
  74. package/dist/mcp/submission-boundary.d.ts.map +1 -0
  75. package/dist/mcp/submission-boundary.js +203 -0
  76. package/dist/mcp/submission-boundary.js.map +1 -0
  77. package/dist/mcp/tools.d.ts.map +1 -1
  78. package/dist/mcp/tools.js +249 -128
  79. package/dist/mcp/tools.js.map +1 -1
  80. package/dist/policy-metrics.js +2 -2
  81. package/dist/policy-metrics.js.map +1 -1
  82. package/dist/policy.d.ts +55 -93
  83. package/dist/policy.d.ts.map +1 -1
  84. package/dist/policy.js +149 -38
  85. package/dist/policy.js.map +1 -1
  86. package/dist/prompt-assembler.d.ts +1 -32
  87. package/dist/prompt-assembler.d.ts.map +1 -1
  88. package/dist/prompt-assembler.js +282 -435
  89. package/dist/prompt-assembler.js.map +1 -1
  90. package/dist/prompt-policy.d.ts +1 -4
  91. package/dist/prompt-policy.d.ts.map +1 -1
  92. package/dist/prompt-policy.js +6 -7
  93. package/dist/prompt-policy.js.map +1 -1
  94. package/dist/protocol.d.ts +365 -142
  95. package/dist/protocol.d.ts.map +1 -1
  96. package/dist/protocol.js +21 -66
  97. package/dist/protocol.js.map +1 -1
  98. package/dist/replay.js +2 -2
  99. package/dist/replay.js.map +1 -1
  100. package/dist/round-contract.d.ts +69 -57
  101. package/dist/round-contract.d.ts.map +1 -1
  102. package/dist/round-contract.js +104 -64
  103. package/dist/round-contract.js.map +1 -1
  104. package/dist/round-coordinator.d.ts +36 -16
  105. package/dist/round-coordinator.d.ts.map +1 -1
  106. package/dist/round-coordinator.js +166 -102
  107. package/dist/round-coordinator.js.map +1 -1
  108. package/dist/round-driver.d.ts +3 -5
  109. package/dist/round-driver.d.ts.map +1 -1
  110. package/dist/round-driver.js +0 -1
  111. package/dist/round-driver.js.map +1 -1
  112. package/dist/round-facts.d.ts +96 -0
  113. package/dist/round-facts.d.ts.map +1 -0
  114. package/dist/round-facts.js +216 -0
  115. package/dist/round-facts.js.map +1 -0
  116. package/dist/round-transaction.d.ts +19 -9
  117. package/dist/round-transaction.d.ts.map +1 -1
  118. package/dist/round-transaction.js +90 -22
  119. package/dist/round-transaction.js.map +1 -1
  120. package/dist/self-eval.d.ts +87 -9
  121. package/dist/self-eval.d.ts.map +1 -1
  122. package/dist/self-eval.js +396 -27
  123. package/dist/self-eval.js.map +1 -1
  124. package/dist/subgoal-state.d.ts +77 -0
  125. package/dist/subgoal-state.d.ts.map +1 -0
  126. package/dist/subgoal-state.js +198 -0
  127. package/dist/subgoal-state.js.map +1 -0
  128. package/dist/token-utils.d.ts +52 -19
  129. package/dist/token-utils.d.ts.map +1 -1
  130. package/dist/token-utils.js +83 -72
  131. package/dist/token-utils.js.map +1 -1
  132. package/dist/verification-gate.d.ts +14 -31
  133. package/dist/verification-gate.d.ts.map +1 -1
  134. package/dist/verification-gate.js +178 -496
  135. package/dist/verification-gate.js.map +1 -1
  136. package/dist/version.d.ts +1 -1
  137. package/dist/version.js +1 -1
  138. package/dist/workspace.d.ts +9 -0
  139. package/dist/workspace.d.ts.map +1 -1
  140. package/dist/workspace.js +17 -0
  141. package/dist/workspace.js.map +1 -1
  142. package/loop_policy.json +59 -83
  143. package/package.json +67 -67
  144. package/skills/perception/SKILL.md +218 -204
@@ -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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"}
@@ -1,23 +1,12 @@
1
- /** Shared token utilities — Jaccard similarity, dedup, vault entry helpers.
1
+ /** Shared token helpers — content-addressed ids, contract canonicalization,
2
+ * normalization, and vault entry accessors.
2
3
  *
3
- * Single source of truth for tokenization and similarity functions used
4
- * by the compiler, verification gate, and canonical state renderer.
5
- *
6
- * Latin alphanumerics tokenize as whole words; consecutive CJK characters
7
- * tokenize as overlapping 2-grams (a lone CJK character is its own token)
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 references. */
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;;;;;;;;;;GAUG;AAcH;;+CAE+C;AAC/C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAmBlD;AAED;;;+DAG+D;AAC/D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOrE;AAID,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,0EAA0E;AAC1E,eAAO,MAAM,YAAY,QAA4B,CAAC;AAStD;;yEAEyE;AACzE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAI5D"}
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"}
@@ -1,76 +1,13 @@
1
- /** Shared token utilities — Jaccard similarity, dedup, vault entry helpers.
1
+ /** Shared token helpers — content-addressed ids, contract canonicalization,
2
+ * normalization, and vault entry accessors.
2
3
  *
3
- * Single source of truth for tokenization and similarity functions used
4
- * by the compiler, verification gate, and canonical state renderer.
5
- *
6
- * Latin alphanumerics tokenize as whole words; consecutive CJK characters
7
- * tokenize as overlapping 2-grams (a lone CJK character is its own token)
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 references. */
111
- export const STABLE_ID_RE = /^(c|cr|sg)-[a-f0-9]{8}$/;
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;