loopforge 3.0.0 → 3.6.0

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 (194) hide show
  1. package/README.md +126 -143
  2. package/dist/audit.d.ts +50 -0
  3. package/dist/audit.d.ts.map +1 -0
  4. package/dist/audit.js +131 -0
  5. package/dist/audit.js.map +1 -0
  6. package/dist/canonical-state.d.ts +98 -23
  7. package/dist/canonical-state.d.ts.map +1 -1
  8. package/dist/canonical-state.js +257 -181
  9. package/dist/canonical-state.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +40 -33
  12. package/dist/cli.js.map +1 -1
  13. package/dist/cognitive-facts.d.ts +17 -0
  14. package/dist/cognitive-facts.d.ts.map +1 -0
  15. package/dist/cognitive-facts.js +99 -0
  16. package/dist/cognitive-facts.js.map +1 -0
  17. package/dist/cognitive-governance.d.ts +25 -33
  18. package/dist/cognitive-governance.d.ts.map +1 -1
  19. package/dist/cognitive-governance.js +38 -138
  20. package/dist/cognitive-governance.js.map +1 -1
  21. package/dist/committed-round.d.ts +59 -0
  22. package/dist/committed-round.d.ts.map +1 -0
  23. package/dist/committed-round.js +222 -0
  24. package/dist/committed-round.js.map +1 -0
  25. package/dist/enforcement-gate.d.ts +78 -0
  26. package/dist/enforcement-gate.d.ts.map +1 -0
  27. package/dist/enforcement-gate.js +1109 -0
  28. package/dist/enforcement-gate.js.map +1 -0
  29. package/dist/engine.d.ts +111 -0
  30. package/dist/engine.d.ts.map +1 -0
  31. package/dist/engine.js +887 -0
  32. package/dist/engine.js.map +1 -0
  33. package/dist/evidence-claims.d.ts +50 -0
  34. package/dist/evidence-claims.d.ts.map +1 -0
  35. package/dist/evidence-claims.js +116 -0
  36. package/dist/evidence-claims.js.map +1 -0
  37. package/dist/evidence-provider.d.ts +50 -23
  38. package/dist/evidence-provider.d.ts.map +1 -1
  39. package/dist/evidence-provider.js +167 -50
  40. package/dist/evidence-provider.js.map +1 -1
  41. package/dist/generate-schema.js +1 -84
  42. package/dist/generate-schema.js.map +1 -1
  43. package/dist/index.d.ts +19 -22
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +16 -15
  46. package/dist/index.js.map +1 -1
  47. package/dist/loop-compiler.d.ts +58 -3
  48. package/dist/loop-compiler.d.ts.map +1 -1
  49. package/dist/loop-compiler.js +841 -304
  50. package/dist/loop-compiler.js.map +1 -1
  51. package/dist/loop-extras-parser.d.ts +2 -2
  52. package/dist/loop-extras-parser.d.ts.map +1 -1
  53. package/dist/loop-extras-parser.js +2 -2
  54. package/dist/loop-extras-parser.js.map +1 -1
  55. package/dist/loop-projection.d.ts +6 -0
  56. package/dist/loop-projection.d.ts.map +1 -0
  57. package/dist/loop-projection.js +26 -0
  58. package/dist/loop-projection.js.map +1 -0
  59. package/dist/loop-store.d.ts +115 -24
  60. package/dist/loop-store.d.ts.map +1 -1
  61. package/dist/loop-store.js +365 -218
  62. package/dist/loop-store.js.map +1 -1
  63. package/dist/mcp/round-lifecycle.d.ts +214 -0
  64. package/dist/mcp/round-lifecycle.d.ts.map +1 -0
  65. package/dist/mcp/round-lifecycle.js +935 -0
  66. package/dist/mcp/round-lifecycle.js.map +1 -0
  67. package/dist/mcp/server.d.ts +2 -1
  68. package/dist/mcp/server.d.ts.map +1 -1
  69. package/dist/mcp/server.js +29 -43
  70. package/dist/mcp/server.js.map +1 -1
  71. package/dist/mcp/session.d.ts +64 -101
  72. package/dist/mcp/session.d.ts.map +1 -1
  73. package/dist/mcp/session.js +433 -1110
  74. package/dist/mcp/session.js.map +1 -1
  75. package/dist/mcp/tools.d.ts +20 -11
  76. package/dist/mcp/tools.d.ts.map +1 -1
  77. package/dist/mcp/tools.js +587 -413
  78. package/dist/mcp/tools.js.map +1 -1
  79. package/dist/policy-metrics.d.ts +12 -24
  80. package/dist/policy-metrics.d.ts.map +1 -1
  81. package/dist/policy-metrics.js +78 -184
  82. package/dist/policy-metrics.js.map +1 -1
  83. package/dist/policy.d.ts +61 -50
  84. package/dist/policy.d.ts.map +1 -1
  85. package/dist/policy.js +48 -146
  86. package/dist/policy.js.map +1 -1
  87. package/dist/prompt-assembler.d.ts +37 -6
  88. package/dist/prompt-assembler.d.ts.map +1 -1
  89. package/dist/prompt-assembler.js +487 -278
  90. package/dist/prompt-assembler.js.map +1 -1
  91. package/dist/prompt-policy.d.ts +1 -8
  92. package/dist/prompt-policy.d.ts.map +1 -1
  93. package/dist/prompt-policy.js +8 -26
  94. package/dist/prompt-policy.js.map +1 -1
  95. package/dist/protocol.d.ts +398 -236
  96. package/dist/protocol.d.ts.map +1 -1
  97. package/dist/protocol.js +147 -17
  98. package/dist/protocol.js.map +1 -1
  99. package/dist/replay.d.ts +5 -13
  100. package/dist/replay.d.ts.map +1 -1
  101. package/dist/replay.js +32 -69
  102. package/dist/replay.js.map +1 -1
  103. package/dist/round-contract.d.ts +64 -0
  104. package/dist/round-contract.d.ts.map +1 -0
  105. package/dist/round-contract.js +80 -0
  106. package/dist/round-contract.js.map +1 -0
  107. package/dist/round-coordinator.d.ts +23 -25
  108. package/dist/round-coordinator.d.ts.map +1 -1
  109. package/dist/round-coordinator.js +103 -92
  110. package/dist/round-coordinator.js.map +1 -1
  111. package/dist/round-driver.d.ts +13 -13
  112. package/dist/round-driver.d.ts.map +1 -1
  113. package/dist/round-driver.js +25 -14
  114. package/dist/round-driver.js.map +1 -1
  115. package/dist/round-transaction.d.ts +14 -18
  116. package/dist/round-transaction.d.ts.map +1 -1
  117. package/dist/round-transaction.js +37 -47
  118. package/dist/round-transaction.js.map +1 -1
  119. package/dist/self-eval.d.ts +48 -0
  120. package/dist/self-eval.d.ts.map +1 -0
  121. package/dist/self-eval.js +248 -0
  122. package/dist/self-eval.js.map +1 -0
  123. package/dist/storage.d.ts +9 -4
  124. package/dist/storage.d.ts.map +1 -1
  125. package/dist/storage.js +18 -6
  126. package/dist/storage.js.map +1 -1
  127. package/dist/token-utils.d.ts +15 -3
  128. package/dist/token-utils.d.ts.map +1 -1
  129. package/dist/token-utils.js +24 -5
  130. package/dist/token-utils.js.map +1 -1
  131. package/dist/verification-gate.d.ts +149 -0
  132. package/dist/verification-gate.d.ts.map +1 -0
  133. package/dist/verification-gate.js +1343 -0
  134. package/dist/verification-gate.js.map +1 -0
  135. package/dist/workspace.d.ts +29 -0
  136. package/dist/workspace.d.ts.map +1 -0
  137. package/dist/workspace.js +61 -0
  138. package/dist/workspace.js.map +1 -0
  139. package/loop_policy.json +37 -16
  140. package/package.json +5 -10
  141. package/skills/perception/SKILL.md +184 -202
  142. package/dist/canonical-event-writer.d.ts +0 -20
  143. package/dist/canonical-event-writer.d.ts.map +0 -1
  144. package/dist/canonical-event-writer.js +0 -131
  145. package/dist/canonical-event-writer.js.map +0 -1
  146. package/dist/compiler-subgoals.d.ts +0 -7
  147. package/dist/compiler-subgoals.d.ts.map +0 -1
  148. package/dist/compiler-subgoals.js +0 -93
  149. package/dist/compiler-subgoals.js.map +0 -1
  150. package/dist/derive-id.d.ts +0 -12
  151. package/dist/derive-id.d.ts.map +0 -1
  152. package/dist/derive-id.js +0 -31
  153. package/dist/derive-id.js.map +0 -1
  154. package/dist/mcp/session-projection.d.ts +0 -5
  155. package/dist/mcp/session-projection.d.ts.map +0 -1
  156. package/dist/mcp/session-projection.js +0 -18
  157. package/dist/mcp/session-projection.js.map +0 -1
  158. package/dist/mcp/session-queue.d.ts +0 -3
  159. package/dist/mcp/session-queue.d.ts.map +0 -1
  160. package/dist/mcp/session-queue.js +0 -18
  161. package/dist/mcp/session-queue.js.map +0 -1
  162. package/dist/mcp/session-types.d.ts +0 -72
  163. package/dist/mcp/session-types.d.ts.map +0 -1
  164. package/dist/mcp/session-types.js +0 -2
  165. package/dist/mcp/session-types.js.map +0 -1
  166. package/dist/round-commit-store.d.ts +0 -12
  167. package/dist/round-commit-store.d.ts.map +0 -1
  168. package/dist/round-commit-store.js +0 -13
  169. package/dist/round-commit-store.js.map +0 -1
  170. package/dist/round-gate.d.ts +0 -31
  171. package/dist/round-gate.d.ts.map +0 -1
  172. package/dist/round-gate.js +0 -259
  173. package/dist/round-gate.js.map +0 -1
  174. package/dist/round-recovery.d.ts +0 -17
  175. package/dist/round-recovery.d.ts.map +0 -1
  176. package/dist/round-recovery.js +0 -117
  177. package/dist/round-recovery.js.map +0 -1
  178. package/dist/round-report.d.ts +0 -16
  179. package/dist/round-report.d.ts.map +0 -1
  180. package/dist/round-report.js +0 -401
  181. package/dist/round-report.js.map +0 -1
  182. package/dist/runtime-services.d.ts +0 -59
  183. package/dist/runtime-services.d.ts.map +0 -1
  184. package/dist/runtime-services.js +0 -460
  185. package/dist/runtime-services.js.map +0 -1
  186. package/dist/vault-format.d.ts +0 -4
  187. package/dist/vault-format.d.ts.map +0 -1
  188. package/dist/vault-format.js +0 -4
  189. package/dist/vault-format.js.map +0 -1
  190. package/dist/vault-types.d.ts +0 -24
  191. package/dist/vault-types.d.ts.map +0 -1
  192. package/dist/vault-types.js +0 -2
  193. package/dist/vault-types.js.map +0 -1
  194. package/loopforge-policy.json +0 -340
@@ -1,401 +0,0 @@
1
- import { isRecord } from "./token-utils.js";
2
- import { deriveCriterionId } from "./derive-id.js";
3
- function strings(values) {
4
- return Array.isArray(values)
5
- ? values.filter((value) => typeof value === "string")
6
- .map((value) => value.trim()).filter(Boolean)
7
- : [];
8
- }
9
- const PROMPT_REQUEST_SECTIONS = [
10
- "milestones", "sub_goals", "constraint_lifecycle", "agent_trust",
11
- "progress", "loop_synthesis",
12
- ];
13
- /** Field-level validation for v2.9 prompt_requests. The container must be a
14
- * record and each list must be an array of strings; invalid entries are
15
- * dropped rather than silently entering the prompt assembler. A present
16
- * but structurally invalid request is a malformed report — reject it. */
17
- function parseContextRequest(value) {
18
- if (!isRecord(value))
19
- return value === undefined ? undefined : null;
20
- if (value.emphasize !== undefined && !Array.isArray(value.emphasize))
21
- return null;
22
- if (value.expand !== undefined && !Array.isArray(value.expand))
23
- return null;
24
- if (value.confusion_points !== undefined && !Array.isArray(value.confusion_points))
25
- return null;
26
- // Invalid entries are dropped (sanitize, consistent with the rest of the
27
- // parser); only a structurally invalid container rejects the report.
28
- const expand = Array.isArray(value.expand)
29
- ? value.expand.filter((item) => typeof item === "string" &&
30
- PROMPT_REQUEST_SECTIONS.includes(item))
31
- : [];
32
- const confusionPoints = Array.isArray(value.confusion_points)
33
- ? value.confusion_points.filter((item) => typeof item === "string" && item.trim().length > 0 && item.trim().length <= 200)
34
- .map((item) => item.trim())
35
- : [];
36
- return {
37
- ...(Array.isArray(value.emphasize) ? { emphasize: strings(value.emphasize) } : {}),
38
- ...(expand.length ? { expand } : {}),
39
- ...(confusionPoints.length ? { confusion_points: confusionPoints } : {}),
40
- };
41
- }
42
- const GATE_EFFECTS = [
43
- "workspace_write", "production", "credentials", "data_migration",
44
- "public_api", "publish", "payment", "external_communication", "network",
45
- ];
46
- function parseGateAction(value) {
47
- if (!isRecord(value) || typeof value.description !== "string" ||
48
- !Array.isArray(value.scope) || !Array.isArray(value.effects) ||
49
- !["reversible", "recoverable", "irreversible", "unknown"].includes(String(value.reversibility)) ||
50
- !["agent_allowed", "user_required", "unknown"].includes(String(value.authorization))) {
51
- return undefined;
52
- }
53
- const effects = value.effects.filter((effect) => typeof effect === "string" && GATE_EFFECTS.includes(effect));
54
- if (effects.length !== value.effects.length)
55
- return undefined;
56
- return {
57
- description: value.description.trim(),
58
- scope: strings(value.scope),
59
- effects,
60
- reversibility: value.reversibility,
61
- authorization: value.authorization,
62
- };
63
- }
64
- export function isSafeObjectiveRefinement(value) {
65
- const refinement = value.trim();
66
- if (!refinement || refinement.length > 2_000)
67
- return false;
68
- return !/(replace|discard|ignore|remove|override)\s+(the\s+)?(original\s+)?(goal|objective|constraint)|替换|丢弃|忽略|删除|覆盖.{0,8}(原始)?(目标|约束)/i.test(refinement);
69
- }
70
- export function parseRoundReport(value) {
71
- if (!isRecord(value) ||
72
- "status" in value || "schemaVersion" in value ||
73
- "execution_evidence" in value || "next_action" in value ||
74
- "clarification_accepted" in value ||
75
- value.format !== "loopforge.round-report" ||
76
- !["success", "partial", "failed", "blocked"].includes(String(value.outcome)) ||
77
- !["continue", "stop"].includes(String(value.continuation)) ||
78
- typeof value.summary !== "string" || !value.summary.trim() ||
79
- !Array.isArray(value.violations))
80
- return null;
81
- if (value.outcome === "blocked" && !isRecord(value.blocker))
82
- return null;
83
- if (value.outcome === "blocked" && value.continuation === "continue") {
84
- // Only an agent-resolvable blocker may keep the loop moving, and it must
85
- // carry a structured action so the runtime can derive an Agent Gate and
86
- // its required evidence. Human/external/dependency blockers always stop.
87
- const blocker = value.blocker;
88
- if (blocker.kind !== "agent" || !parseGateAction(blocker.action))
89
- return null;
90
- }
91
- const discoveries = isRecord(value.discoveries) ? value.discoveries : undefined;
92
- const subGoalEvents = isRecord(value.subGoalEvents) ? value.subGoalEvents : undefined;
93
- const constraintEvents = isRecord(value.constraintEvents) ? value.constraintEvents : undefined;
94
- const evidenceRaw = isRecord(value.evidence) ? value.evidence : undefined;
95
- let evidence;
96
- if (evidenceRaw) {
97
- const checks = Array.isArray(evidenceRaw.checks)
98
- ? evidenceRaw.checks.filter(isRecord).flatMap((check) => {
99
- if (typeof check.name !== "string" ||
100
- !["passed", "failed", "not_run"].includes(String(check.status)))
101
- return [];
102
- const counts = isRecord(check.counts) &&
103
- [check.counts.passed, check.counts.failed, check.counts.skipped]
104
- .every((count) => typeof count === "number" && Number.isInteger(count) && count >= 0)
105
- ? { passed: check.counts.passed, failed: check.counts.failed, skipped: check.counts.skipped }
106
- : undefined;
107
- return [{ name: check.name.trim(), status: check.status, required: check.required === true, summary: typeof check.summary === "string" ? check.summary.trim() : undefined, counts }];
108
- })
109
- : [];
110
- const claims = Array.isArray(evidenceRaw.claims)
111
- ? evidenceRaw.claims.filter(isRecord).flatMap((claim) => typeof claim.id === "string" && /^claim-[a-f0-9]{12}$/.test(claim.id) &&
112
- typeof claim.targetId === "string" && Array.isArray(claim.evidenceRefs)
113
- ? [{ id: claim.id, targetId: claim.targetId.trim(), evidenceRefs: strings(claim.evidenceRefs) }]
114
- : [])
115
- : [];
116
- evidence = {
117
- files: strings(evidenceRaw.files),
118
- checks,
119
- claims,
120
- provenance: isRecord(evidenceRaw.provenance)
121
- ? evidenceRaw.provenance
122
- : {},
123
- noChangeReason: typeof evidenceRaw.noChangeReason === "string"
124
- ? evidenceRaw.noChangeReason.trim() || undefined
125
- : undefined,
126
- };
127
- }
128
- const objectiveRefinement = typeof value.objectiveRefinement === "string"
129
- ? value.objectiveRefinement.trim() || undefined
130
- : undefined;
131
- if (objectiveRefinement && !isSafeObjectiveRefinement(objectiveRefinement))
132
- return null;
133
- const driftClarification = isRecord(value.driftClarification)
134
- ? (() => {
135
- if (typeof value.driftClarification.explanation !== "string" ||
136
- !Array.isArray(value.driftClarification.anchors))
137
- return undefined;
138
- const explanation = value.driftClarification.explanation.trim();
139
- const anchors = strings(value.driftClarification.anchors);
140
- if (!explanation || explanation.length > 2_000 || anchors.length > 8 ||
141
- anchors.some((anchor) => anchor.length > 240))
142
- return undefined;
143
- return { explanation, anchors };
144
- })()
145
- : undefined;
146
- if (isRecord(value.driftClarification) && !driftClarification)
147
- return null;
148
- const contextRequest = parseContextRequest(value.contextRequest);
149
- if (contextRequest === null)
150
- return null;
151
- return {
152
- format: "loopforge.round-report",
153
- outcome: value.outcome,
154
- continuation: value.continuation,
155
- summary: value.summary.trim(),
156
- violations: strings(value.violations),
157
- evidence,
158
- blocker: isRecord(value.blocker) && typeof value.blocker.reason === "string"
159
- ? {
160
- kind: ["dependency", "external", "needs_human_input", "agent"].includes(String(value.blocker.kind))
161
- ? value.blocker.kind
162
- : "agent",
163
- reason: value.blocker.reason.trim(),
164
- references: strings(value.blocker.references),
165
- action: parseGateAction(value.blocker.action),
166
- }
167
- : undefined,
168
- discoveries: discoveries ? {
169
- wrongAssumptions: strings(discoveries.wrongAssumptions),
170
- emergedWork: strings(discoveries.emergedWork),
171
- facts: strings(discoveries.facts),
172
- newConstraints: strings(discoveries.newConstraints),
173
- } : undefined,
174
- subGoalEvents: subGoalEvents ? {
175
- completed: strings(subGoalEvents.completed),
176
- blocked: strings(subGoalEvents.blocked),
177
- canceled: strings(subGoalEvents.canceled),
178
- } : undefined,
179
- constraintEvents: constraintEvents ? {
180
- retired: strings(constraintEvents.retired),
181
- } : undefined,
182
- criterionRevisions: Array.isArray(value.criterionRevisions)
183
- ? value.criterionRevisions.filter(isRecord).flatMap((revision) => typeof revision.old === "string" && typeof revision.new === "string" &&
184
- revision.old.trim() && revision.new.trim()
185
- ? [{ old: revision.old.trim(), new: revision.new.trim() }]
186
- : [])
187
- : undefined,
188
- objectiveRefinement,
189
- phaseBoundaryProposal: isRecord(value.phaseBoundaryProposal) &&
190
- typeof value.phaseBoundaryProposal.label === "string" &&
191
- typeof value.phaseBoundaryProposal.reason === "string"
192
- ? { label: value.phaseBoundaryProposal.label.trim(), reason: value.phaseBoundaryProposal.reason.trim() }
193
- : undefined,
194
- contextRequest,
195
- ...(typeof value.agentIntent === "string" && value.agentIntent.trim()
196
- ? { agentIntent: value.agentIntent.trim() }
197
- : {}),
198
- ...(driftClarification ? { driftClarification } : {}),
199
- };
200
- }
201
- /** Derive normalized evidence once for all runtime consumers. */
202
- export function deriveEvidenceView(report, requiredCriteria = [], snapshots = []) {
203
- const envelope = report.evidence;
204
- const reportedFiles = envelope?.files ?? [];
205
- // Provider snapshots are available during live verification. On replay or
206
- // backtrack they are not, so reconstruct observed files from the durable
207
- // provenance attached to the report instead of silently losing them.
208
- const snapshotFiles = snapshots.flatMap((snapshot) => snapshot.files);
209
- const provenanceFiles = reportedFiles.filter((file) => {
210
- const provenance = envelope?.provenance[`file:${file}`];
211
- return provenance?.status === "verified" && provenance.source !== "agent";
212
- });
213
- const observedFiles = [...new Set([...snapshotFiles, ...provenanceFiles])];
214
- const checks = envelope?.checks ?? [];
215
- const verifiedClaims = (envelope?.claims ?? [])
216
- .filter((claim) => claim.evidenceRefs.some((ref) => {
217
- const provenance = envelope?.provenance[ref];
218
- return provenance?.status === "verified" && provenance.source !== "agent";
219
- }))
220
- .map((claim) => claim.targetId);
221
- const contradictedClaims = (envelope?.claims ?? [])
222
- .filter((claim) => claim.evidenceRefs.some((ref) => envelope?.provenance[ref]?.status === "contradicted"))
223
- .map((claim) => claim.targetId);
224
- const unavailableClaims = (envelope?.claims ?? [])
225
- .filter((claim) => claim.evidenceRefs.some((ref) => envelope?.provenance[ref]?.status === "unavailable"))
226
- .map((claim) => claim.targetId);
227
- const verified = new Set(verifiedClaims.map((claim) => claim.trim().toLowerCase()));
228
- const criteriaRemaining = requiredCriteria.filter((criterion) => {
229
- const normalized = criterion.trim().toLowerCase();
230
- const criterionId = deriveCriterionId(normalized);
231
- return !verified.has(normalized) && !verified.has(criterionId);
232
- });
233
- const criteriaMet = requiredCriteria.length > 0
234
- ? requiredCriteria.filter((criterion) => !criteriaRemaining.includes(criterion))
235
- : verifiedClaims;
236
- const countValues = checks
237
- .filter((check) => {
238
- const provenance = envelope?.provenance[`check:${check.name}`];
239
- return provenance?.status === "verified" && provenance.source !== "agent";
240
- })
241
- .map((check) => check.counts)
242
- .filter((value) => Boolean(value));
243
- const testCounts = countValues.length
244
- ? countValues.reduce((sum, value) => ({
245
- passed: sum.passed + value.passed,
246
- failed: sum.failed + value.failed,
247
- skipped: sum.skipped + value.skipped,
248
- }), { passed: 0, failed: 0, skipped: 0 })
249
- : null;
250
- const requiredCommandFailures = snapshots
251
- .filter((snapshot) => snapshot.data.kind === "command" &&
252
- snapshot.data.phase === "after" && snapshot.data.required === true &&
253
- snapshot.data.status !== "passed")
254
- .map((snapshot) => typeof snapshot.data.commandName === "string"
255
- ? snapshot.data.commandName : snapshot.provider);
256
- const hasVerifiedObservation = observedFiles.length > 0 || verifiedClaims.length > 0 ||
257
- checks.some((check) => envelope?.provenance[`check:${check.name}`]?.status === "verified");
258
- const providerStatus = snapshots.length === 0
259
- ? "absent"
260
- : snapshots.some((snapshot) => snapshot.claimCapable === true) && hasVerifiedObservation
261
- ? "verified" : "unavailable";
262
- const progressRatio = requiredCriteria.length > 0
263
- ? criteriaMet.length / requiredCriteria.length
264
- : verifiedClaims.length > 0 ? 1 : null;
265
- return {
266
- reportedFiles: [...reportedFiles],
267
- observedFiles,
268
- checks: [...checks],
269
- verifiedClaims,
270
- contradictedClaims,
271
- unavailableClaims,
272
- criteriaMet,
273
- criteriaRemaining,
274
- progressRatio,
275
- testCounts,
276
- requiredCommandFailures,
277
- providerStatus,
278
- };
279
- }
280
- /** Build the narrow compiler projection consumed by the compiler. */
281
- export function deriveCompilerProjection(report, round, requiredCriteria = [], snapshots = []) {
282
- return {
283
- round,
284
- outcome: report.outcome,
285
- continuation: report.continuation,
286
- summary: report.summary,
287
- violations: report.violations,
288
- evidence: deriveEvidenceView(report, requiredCriteria, snapshots),
289
- discoveries: report.discoveries,
290
- subGoalEvents: report.subGoalEvents,
291
- constraintEvents: report.constraintEvents,
292
- criterionRevisions: report.criterionRevisions,
293
- objectiveRefinement: report.objectiveRefinement,
294
- phaseBoundaryProposal: report.phaseBoundaryProposal,
295
- agentIntent: report.agentIntent,
296
- contextRequest: report.contextRequest,
297
- };
298
- }
299
- /** Rebuild the latest accepted compiler projection directly from events. */
300
- export function latestCompilerProjection(entries, requiredCriteria = []) {
301
- const candidates = entries.flatMap((entry) => {
302
- const report = parseRoundReport(entry.round_report);
303
- const round = typeof entry.round === "number"
304
- ? entry.round
305
- : typeof entry.loop_lineage?.round === "number"
306
- ? entry.loop_lineage.round
307
- : 0;
308
- return report && round > 0
309
- ? [deriveCompilerProjection(report, round, requiredCriteria)]
310
- : [];
311
- });
312
- return candidates.sort((a, b) => b.round - a.round)[0] ?? null;
313
- }
314
- /** Replace agent-supplied provenance with statuses observed by the runtime.
315
- * Unknown agent references remain claims; missing provider references are
316
- * explicitly unavailable rather than silently passing verification. */
317
- export function verifyRoundReportEvidence(report, snapshots) {
318
- if (!report.evidence)
319
- return report;
320
- const observed = new Map();
321
- for (const snapshot of snapshots) {
322
- const observedAt = Number.isFinite(snapshot.timestamp)
323
- ? new Date(snapshot.timestamp).toISOString()
324
- : "1970-01-01T00:00:00.000Z";
325
- const rawStatus = typeof snapshot.data.status === "string"
326
- ? snapshot.data.status
327
- : undefined;
328
- const status = snapshot.claimCapable !== true
329
- ? "unavailable"
330
- : rawStatus === undefined || rawStatus === "passed"
331
- ? "verified"
332
- : rawStatus === "failed" ? "contradicted" : "unavailable";
333
- const detail = typeof snapshot.data.output === "string"
334
- ? snapshot.data.output.slice(0, 500)
335
- : undefined;
336
- const value = {
337
- source: snapshot.provider.startsWith("command:") ? "command" : "provider",
338
- observedAt,
339
- status,
340
- detail,
341
- };
342
- observed.set(`provider:${snapshot.provider}`, value);
343
- observed.set(`command:${snapshot.provider.replace(/^command:/, "")}`, value);
344
- observed.set(`check:${snapshot.provider.replace(/^command:/, "")}`, value);
345
- for (const file of snapshot.files) {
346
- observed.set(`file:${file}`, { ...value, source: "provider" });
347
- }
348
- }
349
- const provenance = {};
350
- for (const check of report.evidence.checks) {
351
- const ref = `check:${check.name}`;
352
- provenance[ref] = observed.get(ref) ?? {
353
- source: "agent",
354
- observedAt: "1970-01-01T00:00:00.000Z",
355
- status: "claimed",
356
- };
357
- }
358
- for (const file of report.evidence.files) {
359
- const ref = `file:${file}`;
360
- provenance[ref] = observed.get(ref) ?? {
361
- source: "agent",
362
- observedAt: "1970-01-01T00:00:00.000Z",
363
- status: "claimed",
364
- };
365
- }
366
- for (const claim of report.evidence.claims) {
367
- for (const ref of claim.evidenceRefs) {
368
- const matchingSnapshot = snapshots.find((snapshot) => ref === `provider:${snapshot.provider}` ||
369
- ref === `command:${snapshot.provider.replace(/^command:/, "")}` ||
370
- ref === `check:${snapshot.provider.replace(/^command:/, "")}`);
371
- const explicitTargets = matchingSnapshot
372
- ? [matchingSnapshot.data.claims, matchingSnapshot.data.criteria, matchingSnapshot.data.verifiedClaims]
373
- .flatMap((value) => Array.isArray(value) ? value.filter((item) => typeof item === "string") : [])
374
- .map((item) => item.trim().toLowerCase())
375
- : [];
376
- const target = claim.targetId.trim().toLowerCase();
377
- const criterionId = /^cr-[a-f0-9]{8}$/.test(target);
378
- const hasObservedFileBinding = matchingSnapshot
379
- ? report.evidence.files.some((file) => matchingSnapshot.files.includes(file))
380
- : false;
381
- const refIsConcrete = ref.startsWith("file:") || ref.startsWith("check:") ||
382
- ref.startsWith("command:") ||
383
- ref.startsWith("criterion:") || (matchingSnapshot !== undefined &&
384
- (explicitTargets.includes(target) || criterionId || hasObservedFileBinding));
385
- const concreteEvidence = refIsConcrete ? observed.get(ref) : undefined;
386
- provenance[ref] = concreteEvidence ?? {
387
- source: "agent",
388
- observedAt: "1970-01-01T00:00:00.000Z",
389
- status: /^(provider|command):/.test(ref) ? "unavailable" : "claimed",
390
- };
391
- }
392
- }
393
- return {
394
- ...report,
395
- evidence: {
396
- ...report.evidence,
397
- provenance,
398
- },
399
- };
400
- }
401
- //# sourceMappingURL=round-report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"round-report.js","sourceRoot":"","sources":["../src/round-report.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- /** LoopForge runtime services — stateless compiler, round-event and metrics boundary.
2
- *
3
- * The public execution path owns session and transaction state; this service
4
- * provides the pure compile and round-event operations used by that path.
5
- * invokeLoopCompile is the primary operation. RuntimeMetrics tracks
6
- * silent-failure counters for observability.
7
- */
8
- import type { LoopStore } from "./loop-store.js";
9
- import { type AgentLoopResult, type LoopForgeRequest, type SessionState } from "./protocol.js";
10
- import type { RoundReport } from "./protocol.js";
11
- /** A single sub-agent delegation record. */
12
- export interface DelegationEntry {
13
- index: number;
14
- agentId: string;
15
- subAgentType: string;
16
- subTask: string;
17
- resultSummary: string;
18
- success: boolean;
19
- discoveredConstraints: string[];
20
- }
21
- export interface RuntimeMetrics {
22
- vaultWriteErrors: number;
23
- sessionStart: number;
24
- }
25
- export declare class RuntimeServices {
26
- state: SessionState | null;
27
- private backend;
28
- private metrics;
29
- private eventWriter;
30
- lastTask: string | null;
31
- constructor(store?: LoopStore);
32
- private resolveBackend;
33
- /** Public accessor for the vault backend — used by runtime/verification gate. */
34
- getBackend(): LoopStore;
35
- private writer;
36
- /** Expose runtime health counters for observability (MCP status, logging). */
37
- getMetrics(): RuntimeMetrics;
38
- private ensureInit;
39
- private persistRoundEvent;
40
- private buildRoundEventEntry;
41
- private persistLoopLineage;
42
- /** Record sub-agent delegations for this round into the vault.
43
- * Written as a lightweight journal entry so the main agent's rolling
44
- * summary can reference delegation history in subsequent rounds. */
45
- recordDelegation(loopId: string, round: number, entries: DelegationEntry[]): void;
46
- hydrateLoopContext(loopId: string): Record<string, unknown> | null;
47
- /** Record a round report and persist the canonical event.
48
- * Compiler views remain ephemeral and are never written as facts.
49
- * P0–P2: Also persists discovered_constraints, objective_refinement,
50
- * and emerged_subtasks for the compiler to consume next round.
51
- * Call this BEFORE invokeLoopCompile for the next round so that
52
- * hydrateLoopContext picks up the latest success flags. */
53
- commitRoundReport(loopId: string, round: number, task: string, roundTransaction?: Record<string, unknown>, roundReport?: RoundReport): boolean;
54
- invokeLoopCompile(request: LoopForgeRequest, hydrateResults?: Record<string, unknown> | null, options?: {
55
- persistLineage?: boolean;
56
- }): AgentLoopResult;
57
- }
58
- export declare function createRuntimeServices(store?: LoopStore): RuntimeServices;
59
- //# sourceMappingURL=runtime-services.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-services.d.ts","sourceRoot":"","sources":["../src/runtime-services.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAOL,KAAK,eAAe,EAGpB,KAAK,gBAAgB,EAErB,KAAK,YAAY,EAElB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAcjD,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAaD,qBAAa,eAAe;IAC1B,KAAK,EAAE,YAAY,GAAG,IAAI,CAAQ;IAClC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,WAAW,CAAqC;IACxD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAEnB,KAAK,CAAC,EAAE,SAAS;IAI7B,OAAO,CAAC,cAAc;IAOtB,iFAAiF;IACjF,UAAU,IAAI,SAAS;IAIvB,OAAO,CAAC,MAAM;IAId,8EAA8E;IAC9E,UAAU,IAAI,cAAc;IAO5B,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,kBAAkB;IAuD1B;;yEAEqE;IACrE,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,eAAe,EAAE,GACzB,IAAI;IA8CP,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgFlE;;;;;gEAK4D;IAC5D,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO;IA8DV,iBAAiB,CACf,OAAO,EAAE,gBAAgB,EACzB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAC/C,OAAO,GAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO,GACzC,eAAe;CAuHnB;AAMD,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,EAAE,SAAS,GAChB,eAAe,CAEjB"}