loopforge 3.0.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/README.md +128 -145
  2. package/dist/audit.d.ts +50 -0
  3. package/dist/audit.d.ts.map +1 -0
  4. package/dist/audit.js +158 -0
  5. package/dist/audit.js.map +1 -0
  6. package/dist/canonical-state.d.ts +28 -20
  7. package/dist/canonical-state.d.ts.map +1 -1
  8. package/dist/canonical-state.js +82 -173
  9. package/dist/canonical-state.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +25 -16
  12. package/dist/cli.js.map +1 -1
  13. package/dist/cognitive-governance.d.ts +25 -33
  14. package/dist/cognitive-governance.d.ts.map +1 -1
  15. package/dist/cognitive-governance.js +38 -138
  16. package/dist/cognitive-governance.js.map +1 -1
  17. package/dist/enforcement-gate.d.ts +76 -0
  18. package/dist/enforcement-gate.d.ts.map +1 -0
  19. package/dist/enforcement-gate.js +1071 -0
  20. package/dist/enforcement-gate.js.map +1 -0
  21. package/dist/engine.d.ts +99 -0
  22. package/dist/engine.d.ts.map +1 -0
  23. package/dist/engine.js +839 -0
  24. package/dist/engine.js.map +1 -0
  25. package/dist/evidence-claims.d.ts +50 -0
  26. package/dist/evidence-claims.d.ts.map +1 -0
  27. package/dist/evidence-claims.js +134 -0
  28. package/dist/evidence-claims.js.map +1 -0
  29. package/dist/evidence-provider.d.ts +21 -23
  30. package/dist/evidence-provider.d.ts.map +1 -1
  31. package/dist/evidence-provider.js +74 -34
  32. package/dist/evidence-provider.js.map +1 -1
  33. package/dist/generate-schema.js +1 -84
  34. package/dist/generate-schema.js.map +1 -1
  35. package/dist/index.d.ts +19 -22
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +16 -15
  38. package/dist/index.js.map +1 -1
  39. package/dist/loop-compiler.d.ts +41 -3
  40. package/dist/loop-compiler.d.ts.map +1 -1
  41. package/dist/loop-compiler.js +632 -273
  42. package/dist/loop-compiler.js.map +1 -1
  43. package/dist/loop-extras-parser.d.ts +2 -2
  44. package/dist/loop-extras-parser.d.ts.map +1 -1
  45. package/dist/loop-extras-parser.js +2 -2
  46. package/dist/loop-extras-parser.js.map +1 -1
  47. package/dist/loop-projection.d.ts +26 -0
  48. package/dist/loop-projection.d.ts.map +1 -0
  49. package/dist/loop-projection.js +142 -0
  50. package/dist/loop-projection.js.map +1 -0
  51. package/dist/loop-store.d.ts +112 -24
  52. package/dist/loop-store.d.ts.map +1 -1
  53. package/dist/loop-store.js +365 -218
  54. package/dist/loop-store.js.map +1 -1
  55. package/dist/mcp/round-lifecycle.d.ts +216 -0
  56. package/dist/mcp/round-lifecycle.d.ts.map +1 -0
  57. package/dist/mcp/round-lifecycle.js +926 -0
  58. package/dist/mcp/round-lifecycle.js.map +1 -0
  59. package/dist/mcp/server.d.ts +2 -1
  60. package/dist/mcp/server.d.ts.map +1 -1
  61. package/dist/mcp/server.js +28 -42
  62. package/dist/mcp/server.js.map +1 -1
  63. package/dist/mcp/session.d.ts +53 -101
  64. package/dist/mcp/session.d.ts.map +1 -1
  65. package/dist/mcp/session.js +306 -1105
  66. package/dist/mcp/session.js.map +1 -1
  67. package/dist/mcp/tools.d.ts +13 -16
  68. package/dist/mcp/tools.d.ts.map +1 -1
  69. package/dist/mcp/tools.js +479 -413
  70. package/dist/mcp/tools.js.map +1 -1
  71. package/dist/policy-metrics.d.ts +12 -17
  72. package/dist/policy-metrics.d.ts.map +1 -1
  73. package/dist/policy-metrics.js +95 -161
  74. package/dist/policy-metrics.js.map +1 -1
  75. package/dist/policy.d.ts +44 -35
  76. package/dist/policy.d.ts.map +1 -1
  77. package/dist/policy.js +31 -115
  78. package/dist/policy.js.map +1 -1
  79. package/dist/prompt-assembler.d.ts +37 -6
  80. package/dist/prompt-assembler.d.ts.map +1 -1
  81. package/dist/prompt-assembler.js +389 -160
  82. package/dist/prompt-assembler.js.map +1 -1
  83. package/dist/prompt-policy.d.ts +1 -8
  84. package/dist/prompt-policy.d.ts.map +1 -1
  85. package/dist/prompt-policy.js +8 -26
  86. package/dist/prompt-policy.js.map +1 -1
  87. package/dist/protocol.d.ts +357 -229
  88. package/dist/protocol.d.ts.map +1 -1
  89. package/dist/protocol.js +139 -15
  90. package/dist/protocol.js.map +1 -1
  91. package/dist/replay.d.ts +5 -13
  92. package/dist/replay.d.ts.map +1 -1
  93. package/dist/replay.js +19 -55
  94. package/dist/replay.js.map +1 -1
  95. package/dist/round-coordinator.d.ts +20 -24
  96. package/dist/round-coordinator.d.ts.map +1 -1
  97. package/dist/round-coordinator.js +99 -92
  98. package/dist/round-coordinator.js.map +1 -1
  99. package/dist/round-driver.d.ts +14 -13
  100. package/dist/round-driver.d.ts.map +1 -1
  101. package/dist/round-driver.js +26 -14
  102. package/dist/round-driver.js.map +1 -1
  103. package/dist/round-transaction.d.ts +15 -18
  104. package/dist/round-transaction.d.ts.map +1 -1
  105. package/dist/round-transaction.js +38 -47
  106. package/dist/round-transaction.js.map +1 -1
  107. package/dist/self-eval.d.ts +53 -0
  108. package/dist/self-eval.d.ts.map +1 -0
  109. package/dist/self-eval.js +284 -0
  110. package/dist/self-eval.js.map +1 -0
  111. package/dist/storage.d.ts +9 -4
  112. package/dist/storage.d.ts.map +1 -1
  113. package/dist/storage.js +18 -6
  114. package/dist/storage.js.map +1 -1
  115. package/dist/token-utils.d.ts +15 -3
  116. package/dist/token-utils.d.ts.map +1 -1
  117. package/dist/token-utils.js +24 -5
  118. package/dist/token-utils.js.map +1 -1
  119. package/dist/verification-gate.d.ts +108 -0
  120. package/dist/verification-gate.d.ts.map +1 -0
  121. package/dist/verification-gate.js +971 -0
  122. package/dist/verification-gate.js.map +1 -0
  123. package/loop_policy.json +44 -15
  124. package/package.json +5 -10
  125. package/skills/perception/SKILL.md +182 -199
  126. package/dist/canonical-event-writer.d.ts +0 -20
  127. package/dist/canonical-event-writer.d.ts.map +0 -1
  128. package/dist/canonical-event-writer.js +0 -131
  129. package/dist/canonical-event-writer.js.map +0 -1
  130. package/dist/compiler-subgoals.d.ts +0 -7
  131. package/dist/compiler-subgoals.d.ts.map +0 -1
  132. package/dist/compiler-subgoals.js +0 -93
  133. package/dist/compiler-subgoals.js.map +0 -1
  134. package/dist/derive-id.d.ts +0 -12
  135. package/dist/derive-id.d.ts.map +0 -1
  136. package/dist/derive-id.js +0 -31
  137. package/dist/derive-id.js.map +0 -1
  138. package/dist/mcp/session-projection.d.ts +0 -5
  139. package/dist/mcp/session-projection.d.ts.map +0 -1
  140. package/dist/mcp/session-projection.js +0 -18
  141. package/dist/mcp/session-projection.js.map +0 -1
  142. package/dist/mcp/session-queue.d.ts +0 -3
  143. package/dist/mcp/session-queue.d.ts.map +0 -1
  144. package/dist/mcp/session-queue.js +0 -18
  145. package/dist/mcp/session-queue.js.map +0 -1
  146. package/dist/mcp/session-types.d.ts +0 -72
  147. package/dist/mcp/session-types.d.ts.map +0 -1
  148. package/dist/mcp/session-types.js +0 -2
  149. package/dist/mcp/session-types.js.map +0 -1
  150. package/dist/round-commit-store.d.ts +0 -12
  151. package/dist/round-commit-store.d.ts.map +0 -1
  152. package/dist/round-commit-store.js +0 -13
  153. package/dist/round-commit-store.js.map +0 -1
  154. package/dist/round-gate.d.ts +0 -31
  155. package/dist/round-gate.d.ts.map +0 -1
  156. package/dist/round-gate.js +0 -259
  157. package/dist/round-gate.js.map +0 -1
  158. package/dist/round-recovery.d.ts +0 -17
  159. package/dist/round-recovery.d.ts.map +0 -1
  160. package/dist/round-recovery.js +0 -117
  161. package/dist/round-recovery.js.map +0 -1
  162. package/dist/round-report.d.ts +0 -16
  163. package/dist/round-report.d.ts.map +0 -1
  164. package/dist/round-report.js +0 -401
  165. package/dist/round-report.js.map +0 -1
  166. package/dist/runtime-services.d.ts +0 -59
  167. package/dist/runtime-services.d.ts.map +0 -1
  168. package/dist/runtime-services.js +0 -460
  169. package/dist/runtime-services.js.map +0 -1
  170. package/dist/vault-format.d.ts +0 -4
  171. package/dist/vault-format.d.ts.map +0 -1
  172. package/dist/vault-format.js +0 -4
  173. package/dist/vault-format.js.map +0 -1
  174. package/dist/vault-types.d.ts +0 -24
  175. package/dist/vault-types.d.ts.map +0 -1
  176. package/dist/vault-types.js +0 -2
  177. package/dist/vault-types.js.map +0 -1
  178. package/loopforge-policy.json +0 -340
@@ -1,20 +0,0 @@
1
- import type { LoopStore } from "./loop-store.js";
2
- import type { VaultEntry } from "./vault-types.js";
3
- /** Single write boundary for canonical loop events.
4
- *
5
- * Stores may provide their own atomic sequence allocator (FileLoopStore does),
6
- * but the writer also assigns and validates sequences for lightweight test or
7
- * embedding backends. Every runtime event therefore enters the Vault through
8
- * one deterministic path.
9
- */
10
- export declare class CanonicalEventWriter {
11
- private readonly backend;
12
- constructor(backend: LoopStore);
13
- private allEntries;
14
- private replaceExisting;
15
- private existing;
16
- append(entry: VaultEntry): VaultEntry;
17
- appendBatch(entries: VaultEntry[]): VaultEntry[];
18
- private assertSequence;
19
- }
20
- //# sourceMappingURL=canonical-event-writer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canonical-event-writer.d.ts","sourceRoot":"","sources":["../src/canonical-event-writer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;GAMG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,SAAS;IAE/C,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,QAAQ;IAMhB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAkCrC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE;IAuChD,OAAO,CAAC,cAAc;CAiBvB"}
@@ -1,131 +0,0 @@
1
- import { StorageCorruptionError } from "./loop-store.js";
2
- /** Single write boundary for canonical loop events.
3
- *
4
- * Stores may provide their own atomic sequence allocator (FileLoopStore does),
5
- * but the writer also assigns and validates sequences for lightweight test or
6
- * embedding backends. Every runtime event therefore enters the Vault through
7
- * one deterministic path.
8
- */
9
- export class CanonicalEventWriter {
10
- backend;
11
- constructor(backend) {
12
- this.backend = backend;
13
- }
14
- allEntries() {
15
- // Global replacement needs entries from every loop, including backends
16
- // whose default query excludes canonical `:event` records. Keep this
17
- // fallback centralized here; per-loop runtime reads use queryLoopEvents.
18
- const entries = this.backend.listLoopIds()
19
- .flatMap((loopId) => this.backend.queryLoopEvents(loopId));
20
- const seen = new Set();
21
- return entries.filter((entry) => {
22
- const key = `${entry.task_id ?? entry.id ?? ""}:${entry.event_sequence ?? ""}`;
23
- if (seen.has(key))
24
- return false;
25
- seen.add(key);
26
- return true;
27
- });
28
- }
29
- replaceExisting(loopId, updated) {
30
- const all = this.allEntries();
31
- const filtered = all.filter((candidate) => !(candidate.loop_id === loopId && candidate.task_id === updated.task_id));
32
- const replacement = [...filtered, updated];
33
- this.backend.replaceEntries(replacement);
34
- }
35
- existing(loopId) {
36
- const entries = this.backend.queryLoopEvents(loopId);
37
- this.assertSequence(loopId, entries);
38
- return entries;
39
- }
40
- append(entry) {
41
- const write = () => {
42
- const loopId = entry.loop_id;
43
- if (!loopId)
44
- throw new Error("Canonical events require loop_id");
45
- if (entry.loop_id !== loopId)
46
- throw new StorageCorruptionError("sequence_cross_loop", loopId, loopId);
47
- const existing = this.existing(loopId);
48
- const prior = existing.find((candidate) => candidate.task_id === entry.task_id);
49
- if (prior && Number.isInteger(prior.event_sequence)) {
50
- const updated = { ...entry, event_sequence: prior.event_sequence };
51
- const priorComparable = { ...prior, id: undefined, timestamp: undefined };
52
- const updatedComparable = { ...updated, id: undefined, timestamp: undefined };
53
- if (JSON.stringify(priorComparable) === JSON.stringify(updatedComparable))
54
- return prior;
55
- this.replaceExisting(loopId, updated);
56
- return updated;
57
- }
58
- const max = existing.reduce((value, candidate) => typeof candidate.event_sequence === "number" && Number.isInteger(candidate.event_sequence)
59
- ? Math.max(value, candidate.event_sequence)
60
- : value, 0);
61
- const next = max + 1;
62
- const sequenced = { ...entry, event_sequence: entry.event_sequence ?? next };
63
- if (!Number.isInteger(sequenced.event_sequence) || sequenced.event_sequence < 1 ||
64
- existing.some((candidate) => candidate.event_sequence === sequenced.event_sequence)) {
65
- throw new StorageCorruptionError("sequence_duplicate", loopId, loopId, sequenced.event_sequence);
66
- }
67
- if (sequenced.event_sequence !== next) {
68
- throw new StorageCorruptionError("sequence_gap", loopId, loopId, sequenced.event_sequence);
69
- }
70
- this.backend.appendEntry(sequenced);
71
- return sequenced;
72
- };
73
- return this.backend.withLock(write);
74
- }
75
- appendBatch(entries) {
76
- if (entries.length === 0)
77
- return [];
78
- const write = () => {
79
- const loopIds = new Set(entries.map((entry) => entry.loop_id));
80
- if (loopIds.size !== 1 || loopIds.has(undefined)) {
81
- throw new Error("A canonical event batch must belong to one loop");
82
- }
83
- const loopId = [...loopIds][0];
84
- const existing = this.existing(loopId);
85
- const existingTaskIds = new Set(existing.map((candidate) => candidate.task_id).filter(Boolean));
86
- const batchTaskIds = entries.map((entry) => entry.task_id).filter(Boolean);
87
- if (batchTaskIds.length !== new Set(batchTaskIds).size ||
88
- batchTaskIds.some((taskId) => existingTaskIds.has(taskId))) {
89
- throw new Error(`Duplicate canonical task id in event batch for loop ${loopId}`);
90
- }
91
- const used = new Set(existing
92
- .map((candidate) => candidate.event_sequence)
93
- .filter((value) => typeof value === "number" && Number.isInteger(value)));
94
- let next = existing.reduce((value, candidate) => typeof candidate.event_sequence === "number" && Number.isInteger(candidate.event_sequence)
95
- ? Math.max(value, candidate.event_sequence)
96
- : value, 0) + 1;
97
- const sequenced = entries.map((entry) => ({ ...entry, event_sequence: entry.event_sequence ?? next++ }));
98
- const seen = new Set();
99
- for (const entry of sequenced) {
100
- if (!Number.isInteger(entry.event_sequence) || used.has(entry.event_sequence) || seen.has(entry.event_sequence)) {
101
- throw new StorageCorruptionError("sequence_duplicate", loopId, loopId, entry.event_sequence);
102
- }
103
- if (entry.event_sequence !== (existing.length ? Math.max(...used) : 0) + 1 + seen.size) {
104
- throw new StorageCorruptionError("sequence_gap", loopId, loopId, entry.event_sequence);
105
- }
106
- seen.add(entry.event_sequence);
107
- }
108
- this.backend.appendEntries(sequenced);
109
- return sequenced;
110
- };
111
- return this.backend.withLock(write);
112
- }
113
- assertSequence(loopId, entries) {
114
- const sorted = [...entries].sort((a, b) => (a.event_sequence ?? 0) - (b.event_sequence ?? 0));
115
- const seen = new Set();
116
- for (let index = 0; index < sorted.length; index++) {
117
- const sequence = sorted[index].event_sequence;
118
- if (!Number.isInteger(sequence) || sequence < 1) {
119
- throw new StorageCorruptionError("sequence_invalid", loopId, loopId, sequence);
120
- }
121
- if (seen.has(sequence)) {
122
- throw new StorageCorruptionError("sequence_duplicate", loopId, loopId, sequence);
123
- }
124
- seen.add(sequence);
125
- if (sequence !== index + 1) {
126
- throw new StorageCorruptionError("sequence_gap", loopId, loopId, sequence);
127
- }
128
- }
129
- }
130
- }
131
- //# sourceMappingURL=canonical-event-writer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canonical-event-writer.js","sourceRoot":"","sources":["../src/canonical-event-writer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { CompilerRoundProjection, SubGoal } from "./protocol.js";
2
- type Entry = Record<string, unknown>;
3
- type EntryProjection = (entry: Entry) => CompilerRoundProjection | null;
4
- /** Derive the complete SubGoal lifecycle from prior entries and this projection. */
5
- export declare function manageSubGoals(loopId: string, currentRound: number, lastRoundResult: CompilerRoundProjection | null, vaultContext: Record<string, unknown> | null, project: EntryProjection): SubGoal[];
6
- export {};
7
- //# sourceMappingURL=compiler-subgoals.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compiler-subgoals.d.ts","sourceRoot":"","sources":["../src/compiler-subgoals.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAItE,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,uBAAuB,GAAG,IAAI,CAAC;AAoBxE,oFAAoF;AACpF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,uBAAuB,GAAG,IAAI,EAC/C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAC5C,OAAO,EAAE,eAAe,GACvB,OAAO,EAAE,CAwDX"}
@@ -1,93 +0,0 @@
1
- import { deriveSubGoalId } from "./derive-id.js";
2
- import { getPolicy } from "./policy.js";
3
- import { makeSubGoal } from "./protocol.js";
4
- import { jaccardSimilarity, entryRound } from "./token-utils.js";
5
- function lineage(entry) {
6
- const value = entry.loop_lineage;
7
- return value !== null && typeof value === "object" && !Array.isArray(value) ? value : {};
8
- }
9
- function matchSubGoal(target, subGoals, threshold) {
10
- const trimmed = target.trim();
11
- const exact = subGoals.findIndex((goal) => goal.id === trimmed);
12
- if (exact >= 0)
13
- return exact;
14
- let bestIdx = -1;
15
- let bestScore = 0;
16
- for (let i = 0; i < subGoals.length; i++) {
17
- const score = jaccardSimilarity(trimmed, subGoals[i].description);
18
- if (score > bestScore) {
19
- bestScore = score;
20
- bestIdx = i;
21
- }
22
- }
23
- return bestScore >= threshold ? bestIdx : -1;
24
- }
25
- /** Derive the complete SubGoal lifecycle from prior entries and this projection. */
26
- export function manageSubGoals(loopId, currentRound, lastRoundResult, vaultContext, project) {
27
- const policy = getPolicy().evolution;
28
- const entries = vaultContext && Array.isArray(vaultContext.results)
29
- ? vaultContext.results.filter((value) => {
30
- if (value === null || typeof value !== "object" || Array.isArray(value))
31
- return false;
32
- const entry = value;
33
- return entry.loop_id === loopId || lineage(entry).loop_id === loopId;
34
- })
35
- : [];
36
- const subGoals = [];
37
- for (const entry of entries.filter((item) => entryRound(item) >= 1 && entryRound(item) < currentRound)) {
38
- const descriptions = project(entry)?.discoveries?.emergedWork ?? [];
39
- for (const description of descriptions) {
40
- if (matchSubGoal(description, subGoals, policy.subgoal_dedup_threshold) >= 0)
41
- continue;
42
- const round = entryRound(entry);
43
- subGoals.push(makeSubGoal({ id: deriveSubGoalId(description), description: description.trim(), status: "pending", declared_at_round: round, status_changed_at_round: round, priority: subGoals.length }));
44
- }
45
- }
46
- if (lastRoundResult) {
47
- const round = lastRoundResult.round || currentRound - 1;
48
- for (const description of lastRoundResult.discoveries?.emergedWork ?? []) {
49
- if (matchSubGoal(description, subGoals, policy.subgoal_dedup_threshold) >= 0)
50
- continue;
51
- subGoals.push(makeSubGoal({ id: deriveSubGoalId(description), description: description.trim(), status: "pending", declared_at_round: round, status_changed_at_round: round, priority: subGoals.length }));
52
- }
53
- const update = (items, status) => {
54
- for (const description of items) {
55
- const index = matchSubGoal(description, subGoals, policy.subgoal_match_threshold);
56
- if (index < 0)
57
- continue;
58
- const goal = subGoals[index];
59
- if (goal.status === "done" || goal.status === "canceled")
60
- continue;
61
- goal.status = status;
62
- goal.status_changed_at_round = round;
63
- if (status === "done")
64
- goal.completed_at_round = round;
65
- }
66
- };
67
- update(lastRoundResult.subGoalEvents?.completed ?? [], "done");
68
- update(lastRoundResult.subGoalEvents?.blocked ?? [], "blocked");
69
- update(lastRoundResult.subGoalEvents?.canceled ?? [], "canceled");
70
- for (const goal of subGoals) {
71
- if (goal.status !== "pending" && goal.status !== "in_progress")
72
- continue;
73
- if ((lastRoundResult.evidence?.criteriaMet ?? []).some((criterion) => jaccardSimilarity(criterion, goal.description) >= policy.subgoal_auto_complete_threshold)) {
74
- goal.status = "done";
75
- goal.status_changed_at_round = round;
76
- goal.completed_at_round = round;
77
- }
78
- }
79
- }
80
- const rank = (status) => ({ in_progress: 0, pending: 1, blocked: 2, done: 3, canceled: 4 }[status]);
81
- subGoals.sort((a, b) => {
82
- const byStatus = rank(a.status) - rank(b.status);
83
- if (byStatus !== 0)
84
- return byStatus;
85
- if (a.status === "pending")
86
- return (currentRound - a.declared_at_round) - (currentRound - b.declared_at_round);
87
- if (a.status === "done")
88
- return (b.completed_at_round ?? 0) - (a.completed_at_round ?? 0);
89
- return a.declared_at_round - b.declared_at_round;
90
- });
91
- return subGoals;
92
- }
93
- //# sourceMappingURL=compiler-subgoals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compiler-subgoals.js","sourceRoot":"","sources":["../src/compiler-subgoals.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /** Stable text normalization shared by every persisted cognitive ID. */
2
- export declare function normalizeIdText(text: string): string;
3
- /** Preserve the historical hash lengths by making the length explicit. */
4
- export declare function deriveTextHash(text: string, length?: number): string;
5
- export declare function deriveItemId(text: string): string;
6
- export declare function deriveSubGoalId(text: string): string;
7
- export declare function deriveConstraintId(text: string): string;
8
- export declare function deriveCriterionId(text: string): string;
9
- export declare function deriveGateId(text: string): string;
10
- export declare function deriveTodoId(text: string): string;
11
- export declare function isStableItemId(value: string): boolean;
12
- //# sourceMappingURL=derive-id.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"derive-id.d.ts","sourceRoot":"","sources":["../src/derive-id.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,MAAM,CAEhE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD"}
package/dist/derive-id.js DELETED
@@ -1,31 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- /** Stable text normalization shared by every persisted cognitive ID. */
3
- export function normalizeIdText(text) {
4
- return text.trim().replace(/\s+/g, " ").toLowerCase();
5
- }
6
- /** Preserve the historical hash lengths by making the length explicit. */
7
- export function deriveTextHash(text, length = 12) {
8
- return createHash("sha256").update(normalizeIdText(text)).digest("hex").slice(0, length);
9
- }
10
- export function deriveItemId(text) {
11
- return deriveTextHash(text, 8);
12
- }
13
- export function deriveSubGoalId(text) {
14
- return `sg-${deriveTextHash(text, 8)}`;
15
- }
16
- export function deriveConstraintId(text) {
17
- return `c-${deriveTextHash(text, 8)}`;
18
- }
19
- export function deriveCriterionId(text) {
20
- return `cr-${deriveTextHash(text, 8)}`;
21
- }
22
- export function deriveGateId(text) {
23
- return `gate-${deriveTextHash(text, 12)}`;
24
- }
25
- export function deriveTodoId(text) {
26
- return `todo-${deriveTextHash(text, 8)}`;
27
- }
28
- export function isStableItemId(value) {
29
- return /^(?:c|cr|sg)-[a-f0-9]{8}$/i.test(value);
30
- }
31
- //# sourceMappingURL=derive-id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"derive-id.js","sourceRoot":"","sources":["../src/derive-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,wEAAwE;AACxE,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACxD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAAM,GAAG,EAAE;IACtD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,QAAQ,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { LoopForgeRequest, VerificationFlag } from "../protocol.js";
2
- import type { McpSession } from "./session-types.js";
3
- /** Build the narrow compiler request from the current session projection. */
4
- export declare function buildLoopRequest(session: McpSession, lastView?: import("../protocol.js").CompilerRoundProjection, verificationFlags?: VerificationFlag[]): LoopForgeRequest;
5
- //# sourceMappingURL=session-projection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-projection.d.ts","sourceRoot":"","sources":["../../src/mcp/session-projection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,EACnB,QAAQ,CAAC,EAAE,OAAO,gBAAgB,EAAE,uBAAuB,EAC3D,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,GACrC,gBAAgB,CAalB"}
@@ -1,18 +0,0 @@
1
- import { Mode } from "../protocol.js";
2
- /** Build the narrow compiler request from the current session projection. */
3
- export function buildLoopRequest(session, lastView, verificationFlags) {
4
- const request = {
5
- task: session.task,
6
- mode: Mode.LOOP_COMPILE,
7
- skill_name: null,
8
- task_id: null,
9
- loop_id: session.loopId,
10
- round: session.currentRound,
11
- max_rounds: session.maxRounds,
12
- verification_flags: verificationFlags ?? [],
13
- };
14
- if (lastView)
15
- request.last_round_view = lastView;
16
- return request;
17
- }
18
- //# sourceMappingURL=session-projection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-projection.js","sourceRoot":"","sources":["../../src/mcp/session-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAItC,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAC9B,OAAmB,EACnB,QAA2D,EAC3D,iBAAsC;IAEtC,MAAM,OAAO,GAA4B;QACvC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,IAAI,CAAC,YAAY;QACvB,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO,CAAC,MAAM;QACvB,KAAK,EAAE,OAAO,CAAC,YAAY;QAC3B,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,kBAAkB,EAAE,iBAAiB,IAAI,EAAE;KAC5C,CAAC;IACF,IAAI,QAAQ;QAAE,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC;IACjD,OAAO,OAA2B,CAAC;AACrC,CAAC"}
@@ -1,3 +0,0 @@
1
- /** Serialize asynchronous state transitions per session ID. */
2
- export declare function withSessionQueue<T>(queues: Map<string, Promise<void>>, sessionId: string, work: () => Promise<T>): Promise<T>;
3
- //# sourceMappingURL=session-queue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-queue.d.ts","sourceRoot":"","sources":["../../src/mcp/session-queue.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAaZ"}
@@ -1,18 +0,0 @@
1
- /** Serialize asynchronous state transitions per session ID. */
2
- export async function withSessionQueue(queues, sessionId, work) {
3
- const previous = queues.get(sessionId) ?? Promise.resolve();
4
- let release;
5
- const gate = new Promise((resolve) => { release = resolve; });
6
- const tail = previous.then(() => gate);
7
- queues.set(sessionId, tail);
8
- await previous;
9
- try {
10
- return await work();
11
- }
12
- finally {
13
- release();
14
- if (queues.get(sessionId) === tail)
15
- queues.delete(sessionId);
16
- }
17
- }
18
- //# sourceMappingURL=session-queue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-queue.js","sourceRoot":"","sources":["../../src/mcp/session-queue.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAkC,EAClC,SAAiB,EACjB,IAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5D,IAAI,OAAoB,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5B,MAAM,QAAQ,CAAC;IACf,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,CAAC;QACV,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
@@ -1,72 +0,0 @@
1
- import type { RuntimeServices } from "../runtime-services.js";
2
- import type { ProviderSnapshot } from "../evidence-provider.js";
3
- import type { RoundTransactionSnapshot } from "../round-transaction.js";
4
- import type { CompilerRoundProjection, GateActionDescriptor, LoopForgeRequest, RoundReport, VerificationFlag, ExternalContextProvider, LoopTerminalSink } from "../protocol.js";
5
- export interface McpSession {
6
- sessionId: string;
7
- loopId: string;
8
- task: string;
9
- runtime: RuntimeServices;
10
- currentRound: number;
11
- maxRounds: number;
12
- successTrajectory: boolean[];
13
- status: "running" | "stopped" | "stalled" | "paused";
14
- createdAt: number;
15
- lastRoundProjection?: CompilerRoundProjection;
16
- consecutiveRejections: number;
17
- escalatedRejectionChecks: string[];
18
- driftClarificationStreak: number;
19
- backtrackSkippedFiles: string[];
20
- backtrackTargetGitHead?: string;
21
- evidenceBaseline?: ProviderSnapshot[];
22
- roundSnapshot?: RoundTransactionSnapshot;
23
- currentPrompt?: string | null;
24
- currentLevel?: string;
25
- currentWarnings?: string[];
26
- currentCanonicalState?: Record<string, unknown>;
27
- stopReason?: string;
28
- }
29
- export interface McpSessionSummary {
30
- sessionId: string;
31
- loopId: string;
32
- round: number;
33
- status: McpSession["status"];
34
- }
35
- export interface StartInput {
36
- task: string;
37
- loopId?: string;
38
- maxRounds?: number;
39
- domain?: string;
40
- planSource?: string;
41
- constraints?: string[];
42
- successCriteria?: string[];
43
- }
44
- export interface AdvanceResult {
45
- sessionId: string;
46
- round: number;
47
- roundId?: string;
48
- prompt: string | null;
49
- stopReason?: string;
50
- stopDetail?: string;
51
- level?: string;
52
- roundSuccess?: boolean;
53
- warnings?: string[];
54
- enforcementAction?: "accept" | "reject" | "terminate" | "backtrack";
55
- enforcementReason?: string;
56
- restoreRound?: number;
57
- skippedRounds?: number[];
58
- skippedFiles?: string[];
59
- recoveryRequirements?: string[];
60
- error?: {
61
- code: string;
62
- message: string;
63
- retryable?: boolean;
64
- stateHash?: string;
65
- };
66
- }
67
- export interface SessionDependencies {
68
- contextProvider?: ExternalContextProvider;
69
- terminalSinks: Set<LoopTerminalSink>;
70
- }
71
- export type { GateActionDescriptor, LoopForgeRequest, RoundReport, VerificationFlag };
72
- //# sourceMappingURL=session-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-types.d.ts","sourceRoot":"","sources":["../../src/mcp/session-types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=session-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-types.js","sourceRoot":"","sources":["../../src/mcp/session-types.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- import type { VaultEntry } from "./vault-types.js";
2
- import type { LoopStore } from "./loop-store.js";
3
- export interface RoundCommitStore {
4
- find(loopId: string, round: number): VaultEntry[];
5
- }
6
- /** Backend-specific lookup kept outside storage/session orchestration. */
7
- export declare class VaultRoundCommitStore implements RoundCommitStore {
8
- private readonly backend;
9
- constructor(backend: LoopStore);
10
- find(loopId: string, round: number): VaultEntry[];
11
- }
12
- //# sourceMappingURL=round-commit-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"round-commit-store.d.ts","sourceRoot":"","sources":["../src/round-commit-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;CACnD;AAED,0EAA0E;AAC1E,qBAAa,qBAAsB,YAAW,gBAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,SAAS;IAE/C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE;CAKlD"}
@@ -1,13 +0,0 @@
1
- /** Backend-specific lookup kept outside storage/session orchestration. */
2
- export class VaultRoundCommitStore {
3
- backend;
4
- constructor(backend) {
5
- this.backend = backend;
6
- }
7
- find(loopId, round) {
8
- const prefix = `loop:${loopId}:r${round}:event`;
9
- return this.backend.queryLoopEvents(loopId)
10
- .filter((entry) => entry.task_id === prefix);
11
- }
12
- }
13
- //# sourceMappingURL=round-commit-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"round-commit-store.js","sourceRoot":"","sources":["../src/round-commit-store.ts"],"names":[],"mappings":"AAOA,0EAA0E;AAC1E,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,OAAkB;QAAlB,YAAO,GAAP,OAAO,CAAW;IAAG,CAAC;IAEnD,IAAI,CAAC,MAAc,EAAE,KAAa;QAChC,MAAM,MAAM,GAAG,QAAQ,MAAM,KAAK,KAAK,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;aACxC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -1,31 +0,0 @@
1
- import type { VaultEntry } from "./vault-types.js";
2
- import type { ProviderSnapshot } from "./evidence-provider.js";
3
- import type { CompilerRoundProjection, EvidenceDerivedView, EnforcementResult, RoundReport, VerificationResult } from "./protocol.js";
4
- /** The only input accepted by the runtime verification and enforcement gates. */
5
- export interface RoundGateContext {
6
- report: RoundReport;
7
- evidence: EvidenceDerivedView;
8
- previous?: CompilerRoundProjection | null;
9
- history: VaultEntry[];
10
- currentRound: number;
11
- providerSnapshots: ProviderSnapshot[];
12
- expectedAction?: string;
13
- backtrackSkippedFiles?: string[];
14
- /** v2.13: Git HEAD commit of the backtrack restore point. When set, the
15
- * current round's git evidence must match it — the post-backtrack round
16
- * is a pure verification round, so any HEAD movement means the workspace
17
- * was not restored before working. */
18
- backtrackTargetGitHead?: string;
19
- consecutiveRejections?: number;
20
- driftClarificationStreak?: number;
21
- /** Terminal enforcement checks that have already issued their one guided
22
- * retry. Tracked per rule so unrelated failures do not consume each
23
- * other's escalation budget. */
24
- escalatedRejectionChecks?: string[];
25
- }
26
- /** Verify a normalized report without creating a legacy round projection. */
27
- export declare function verifyRoundReport(context: RoundGateContext): VerificationResult;
28
- /** Enforcement consumes the same normalized context and never re-extracts evidence. */
29
- export declare function enforceRoundReport(context: RoundGateContext, verification: VerificationResult): EnforcementResult;
30
- export declare function makeRoundGateContext(report: RoundReport, currentRound: number, history: VaultEntry[], providerSnapshots: ProviderSnapshot[], remainingCriteria?: string[], options?: Omit<RoundGateContext, "report" | "evidence" | "currentRound" | "history" | "providerSnapshots">): RoundGateContext;
31
- //# sourceMappingURL=round-gate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"round-gate.d.ts","sourceRoot":"","sources":["../src/round-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EAEX,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAcvB,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC;;;2CAGuC;IACvC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;qCAEiC;IACjC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;CACrC;AA2FD,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,kBAAkB,CA4L/E;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,kBAAkB,GAC/B,iBAAiB,CA0EnB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,UAAU,EAAE,EACrB,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,iBAAiB,GAAE,MAAM,EAAO,EAChC,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,mBAAmB,CAAM,GAC7G,gBAAgB,CASlB"}