loopforge 2.7.0 → 3.0.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 (173) hide show
  1. package/README.md +136 -182
  2. package/dist/canonical-event-writer.d.ts +20 -0
  3. package/dist/canonical-event-writer.d.ts.map +1 -0
  4. package/dist/canonical-event-writer.js +131 -0
  5. package/dist/canonical-event-writer.js.map +1 -0
  6. package/dist/canonical-state.d.ts +20 -16
  7. package/dist/canonical-state.d.ts.map +1 -1
  8. package/dist/canonical-state.js +211 -64
  9. package/dist/canonical-state.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +11 -10
  12. package/dist/cli.js.map +1 -1
  13. package/dist/cognitive-governance.d.ts +48 -0
  14. package/dist/cognitive-governance.d.ts.map +1 -0
  15. package/dist/cognitive-governance.js +226 -0
  16. package/dist/cognitive-governance.js.map +1 -0
  17. package/dist/compiler-subgoals.d.ts +7 -0
  18. package/dist/compiler-subgoals.d.ts.map +1 -0
  19. package/dist/compiler-subgoals.js +93 -0
  20. package/dist/compiler-subgoals.js.map +1 -0
  21. package/dist/derive-id.d.ts +12 -0
  22. package/dist/derive-id.d.ts.map +1 -0
  23. package/dist/derive-id.js +31 -0
  24. package/dist/derive-id.js.map +1 -0
  25. package/dist/evidence-provider.d.ts +26 -26
  26. package/dist/evidence-provider.d.ts.map +1 -1
  27. package/dist/evidence-provider.js +45 -71
  28. package/dist/evidence-provider.js.map +1 -1
  29. package/dist/generate-schema.js +90 -2
  30. package/dist/generate-schema.js.map +1 -1
  31. package/dist/index.d.ts +23 -29
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +16 -26
  34. package/dist/index.js.map +1 -1
  35. package/dist/loop-compiler.d.ts +2 -2
  36. package/dist/loop-compiler.d.ts.map +1 -1
  37. package/dist/loop-compiler.js +321 -315
  38. package/dist/loop-compiler.js.map +1 -1
  39. package/dist/loop-extras-parser.d.ts +2 -2
  40. package/dist/loop-extras-parser.d.ts.map +1 -1
  41. package/dist/loop-extras-parser.js +2 -2
  42. package/dist/loop-extras-parser.js.map +1 -1
  43. package/dist/loop-store.d.ts +20 -58
  44. package/dist/loop-store.d.ts.map +1 -1
  45. package/dist/loop-store.js +232 -311
  46. package/dist/loop-store.js.map +1 -1
  47. package/dist/mcp/server.d.ts +3 -3
  48. package/dist/mcp/server.d.ts.map +1 -1
  49. package/dist/mcp/server.js +123 -19
  50. package/dist/mcp/server.js.map +1 -1
  51. package/dist/mcp/session-projection.d.ts +5 -0
  52. package/dist/mcp/session-projection.d.ts.map +1 -0
  53. package/dist/mcp/session-projection.js +18 -0
  54. package/dist/mcp/session-projection.js.map +1 -0
  55. package/dist/mcp/session-queue.d.ts +3 -0
  56. package/dist/mcp/session-queue.d.ts.map +1 -0
  57. package/dist/mcp/session-queue.js +18 -0
  58. package/dist/mcp/session-queue.js.map +1 -0
  59. package/dist/mcp/session-types.d.ts +72 -0
  60. package/dist/mcp/session-types.d.ts.map +1 -0
  61. package/dist/mcp/session-types.js +2 -0
  62. package/dist/mcp/session-types.js.map +1 -0
  63. package/dist/mcp/session.d.ts +65 -84
  64. package/dist/mcp/session.d.ts.map +1 -1
  65. package/dist/mcp/session.js +667 -224
  66. package/dist/mcp/session.js.map +1 -1
  67. package/dist/mcp/tools.d.ts +26 -1
  68. package/dist/mcp/tools.d.ts.map +1 -1
  69. package/dist/mcp/tools.js +401 -254
  70. package/dist/mcp/tools.js.map +1 -1
  71. package/dist/policy-metrics.d.ts +24 -0
  72. package/dist/policy-metrics.d.ts.map +1 -1
  73. package/dist/policy-metrics.js +174 -0
  74. package/dist/policy-metrics.js.map +1 -1
  75. package/dist/policy.d.ts +74 -12
  76. package/dist/policy.d.ts.map +1 -1
  77. package/dist/policy.js +124 -19
  78. package/dist/policy.js.map +1 -1
  79. package/dist/prompt-assembler.d.ts +8 -4
  80. package/dist/prompt-assembler.d.ts.map +1 -1
  81. package/dist/prompt-assembler.js +533 -86
  82. package/dist/prompt-assembler.js.map +1 -1
  83. package/dist/prompt-policy.d.ts +8 -1
  84. package/dist/prompt-policy.d.ts.map +1 -1
  85. package/dist/prompt-policy.js +26 -8
  86. package/dist/prompt-policy.js.map +1 -1
  87. package/dist/protocol.d.ts +259 -173
  88. package/dist/protocol.d.ts.map +1 -1
  89. package/dist/protocol.js +17 -96
  90. package/dist/protocol.js.map +1 -1
  91. package/dist/replay.d.ts +11 -3
  92. package/dist/replay.d.ts.map +1 -1
  93. package/dist/replay.js +51 -14
  94. package/dist/replay.js.map +1 -1
  95. package/dist/round-commit-store.d.ts +12 -0
  96. package/dist/round-commit-store.d.ts.map +1 -0
  97. package/dist/round-commit-store.js +13 -0
  98. package/dist/round-commit-store.js.map +1 -0
  99. package/dist/round-coordinator.d.ts +53 -22
  100. package/dist/round-coordinator.d.ts.map +1 -1
  101. package/dist/round-coordinator.js +140 -44
  102. package/dist/round-coordinator.js.map +1 -1
  103. package/dist/round-driver.d.ts +18 -10
  104. package/dist/round-driver.d.ts.map +1 -1
  105. package/dist/round-driver.js +11 -13
  106. package/dist/round-driver.js.map +1 -1
  107. package/dist/round-gate.d.ts +31 -0
  108. package/dist/round-gate.d.ts.map +1 -0
  109. package/dist/round-gate.js +259 -0
  110. package/dist/round-gate.js.map +1 -0
  111. package/dist/round-recovery.d.ts +17 -0
  112. package/dist/round-recovery.d.ts.map +1 -0
  113. package/dist/round-recovery.js +117 -0
  114. package/dist/round-recovery.js.map +1 -0
  115. package/dist/round-report.d.ts +16 -0
  116. package/dist/round-report.d.ts.map +1 -0
  117. package/dist/round-report.js +401 -0
  118. package/dist/round-report.js.map +1 -0
  119. package/dist/round-transaction.d.ts +23 -12
  120. package/dist/round-transaction.d.ts.map +1 -1
  121. package/dist/round-transaction.js +104 -91
  122. package/dist/round-transaction.js.map +1 -1
  123. package/dist/runtime-services.d.ts +59 -0
  124. package/dist/runtime-services.d.ts.map +1 -0
  125. package/dist/{engine.js → runtime-services.js} +157 -275
  126. package/dist/runtime-services.js.map +1 -0
  127. package/dist/storage.d.ts +3 -9
  128. package/dist/storage.d.ts.map +1 -1
  129. package/dist/storage.js +6 -17
  130. package/dist/storage.js.map +1 -1
  131. package/dist/token-utils.d.ts +12 -8
  132. package/dist/token-utils.d.ts.map +1 -1
  133. package/dist/token-utils.js +56 -10
  134. package/dist/token-utils.js.map +1 -1
  135. package/dist/vault-format.d.ts +4 -0
  136. package/dist/vault-format.d.ts.map +1 -0
  137. package/dist/vault-format.js +4 -0
  138. package/dist/vault-format.js.map +1 -0
  139. package/dist/vault-types.d.ts +24 -0
  140. package/dist/vault-types.d.ts.map +1 -0
  141. package/dist/vault-types.js +2 -0
  142. package/dist/vault-types.js.map +1 -0
  143. package/loop_policy.json +10 -12
  144. package/loopforge-policy.json +340 -0
  145. package/package.json +13 -7
  146. package/skills/perception/SKILL.md +200 -90
  147. package/dist/backends/interface.d.ts +0 -39
  148. package/dist/backends/interface.d.ts.map +0 -1
  149. package/dist/backends/interface.js +0 -6
  150. package/dist/backends/interface.js.map +0 -1
  151. package/dist/enforcement-gate.d.ts +0 -50
  152. package/dist/enforcement-gate.d.ts.map +0 -1
  153. package/dist/enforcement-gate.js +0 -501
  154. package/dist/enforcement-gate.js.map +0 -1
  155. package/dist/engine.d.ts +0 -59
  156. package/dist/engine.d.ts.map +0 -1
  157. package/dist/engine.js.map +0 -1
  158. package/dist/interop.d.ts +0 -35
  159. package/dist/interop.d.ts.map +0 -1
  160. package/dist/interop.js +0 -34
  161. package/dist/interop.js.map +0 -1
  162. package/dist/run.d.ts +0 -51
  163. package/dist/run.d.ts.map +0 -1
  164. package/dist/run.js +0 -200
  165. package/dist/run.js.map +0 -1
  166. package/dist/self-eval.d.ts +0 -23
  167. package/dist/self-eval.d.ts.map +0 -1
  168. package/dist/self-eval.js +0 -151
  169. package/dist/self-eval.js.map +0 -1
  170. package/dist/verification-gate.d.ts +0 -52
  171. package/dist/verification-gate.d.ts.map +0 -1
  172. package/dist/verification-gate.js +0 -527
  173. package/dist/verification-gate.js.map +0 -1
@@ -2,15 +2,18 @@
2
2
  *
3
3
  * A logical round has one deterministic roundId. Rejected attempts keep the
4
4
  * same identity and before snapshot; only accepted decisions are committed to
5
- * feedback storage. The committed feedback embeds the decision so replay after
5
+ * round-event storage. The committed event embeds the decision so replay after
6
6
  * a process crash is idempotent.
7
7
  */
8
8
  import { diffSnapshotCollections } from "./evidence-provider.js";
9
9
  import { RoundCoordinator, } from "./round-coordinator.js";
10
10
  import { logEvent } from "./observability.js";
11
+ import { isRecord } from "./token-utils.js";
11
12
  import { policyMetrics } from "./policy-metrics.js";
12
- import { VaultRoundCommitStore } from "./storage.js";
13
- export const ROUND_TRANSACTION_SCHEMA_VERSION = 1;
13
+ import { parseRoundReport, verifyRoundReportEvidence } from "./round-report.js";
14
+ import { VaultRoundCommitStore } from "./round-commit-store.js";
15
+ import { validateLoopId } from "./policy.js";
16
+ export const ROUND_TRANSACTION_FORMAT = "loopforge.round-transaction";
14
17
  export function makeRoundId(loopId, round) {
15
18
  if (!Number.isInteger(round) || round < 1) {
16
19
  throw new Error(`Invalid round number: ${round}`);
@@ -20,7 +23,7 @@ export function makeRoundId(loopId, round) {
20
23
  export function prepareRoundTransaction(loopId, round, beforeEvidence, promptArtifact) {
21
24
  const now = Date.now();
22
25
  return {
23
- schemaVersion: ROUND_TRANSACTION_SCHEMA_VERSION,
26
+ format: ROUND_TRANSACTION_FORMAT,
24
27
  roundId: makeRoundId(loopId, round),
25
28
  loopId,
26
29
  round,
@@ -51,19 +54,16 @@ export function prepareRejectedAttempt(rejected, promptArtifact) {
51
54
  phase: "prompted",
52
55
  afterEvidence: undefined,
53
56
  roundEvidence: undefined,
54
- evaluation: undefined,
57
+ roundReport: undefined,
55
58
  result: undefined,
56
59
  promptArtifact,
57
60
  updatedAt: Date.now(),
58
61
  };
59
62
  }
60
- function isRecord(value) {
61
- return value !== null && typeof value === "object" && !Array.isArray(value);
62
- }
63
63
  function isProcessResult(value) {
64
64
  if (!isRecord(value))
65
65
  return false;
66
- return ["continue", "stop", "reject", "terminate"].includes(String(value.action)) && Array.isArray(value.verificationFlags);
66
+ return ["continue", "stop", "reject", "terminate", "backtrack"].includes(String(value.action)) && Array.isArray(value.verificationFlags);
67
67
  }
68
68
  function parseProviderSnapshots(value) {
69
69
  if (!Array.isArray(value))
@@ -73,7 +73,9 @@ function parseProviderSnapshots(value) {
73
73
  if (!isRecord(item))
74
74
  return null;
75
75
  if (typeof item.provider !== "string" ||
76
+ !item.provider.trim() ||
76
77
  typeof item.timestamp !== "number" ||
78
+ !Number.isFinite(item.timestamp) ||
77
79
  !Array.isArray(item.files) ||
78
80
  !item.files.every((file) => typeof file === "string") ||
79
81
  !isRecord(item.data))
@@ -86,11 +88,19 @@ function parseProviderSnapshots(value) {
86
88
  export function parseRoundTransactionSnapshot(value) {
87
89
  if (!isRecord(value))
88
90
  return null;
89
- if (value.schemaVersion !== ROUND_TRANSACTION_SCHEMA_VERSION)
91
+ if ("evaluation" in value || "legacyReport" in value || "roundProjection" in value)
92
+ return null;
93
+ if (value.format !== ROUND_TRANSACTION_FORMAT)
90
94
  return null;
91
95
  if (typeof value.roundId !== "string" || typeof value.loopId !== "string") {
92
96
  return null;
93
97
  }
98
+ try {
99
+ validateLoopId(value.loopId);
100
+ }
101
+ catch {
102
+ return null;
103
+ }
94
104
  if (!Number.isInteger(value.round) || value.round < 1)
95
105
  return null;
96
106
  if (!Number.isInteger(value.attempt) || value.attempt < 1)
@@ -113,12 +123,18 @@ export function parseRoundTransactionSnapshot(value) {
113
123
  return null;
114
124
  if (value.result !== undefined && !isProcessResult(value.result))
115
125
  return null;
126
+ if (value.roundReport !== undefined && !parseRoundReport(value.roundReport))
127
+ return null;
116
128
  if (value.promptArtifact !== undefined) {
117
129
  if (!isRecord(value.promptArtifact))
118
130
  return null;
119
131
  const artifact = value.promptArtifact;
120
- if (artifact.schemaVersion !== 1 ||
132
+ if (artifact.format !== "loopforge.prompt" ||
121
133
  typeof artifact.roundId !== "string" ||
134
+ artifact.roundId !== value.roundId ||
135
+ !Number.isInteger(artifact.attempt) ||
136
+ artifact.attempt < 1 ||
137
+ artifact.attempt !== value.attempt ||
122
138
  typeof artifact.renderedPrompt !== "string" ||
123
139
  typeof artifact.promptHash !== "string" ||
124
140
  typeof artifact.stateHash !== "string" ||
@@ -151,98 +167,95 @@ export class RoundTransactionCoordinator {
151
167
  policyMetrics.recordRound(snapshot.loopId, outcome.result, outcome.replayed);
152
168
  return outcome;
153
169
  };
154
- try {
155
- const expectedRoundId = makeRoundId(snapshot.loopId, snapshot.round);
156
- if (snapshot.roundId !== expectedRoundId) {
157
- throw new Error(`Round snapshot identity mismatch: ${snapshot.roundId} !== ${expectedRoundId}`);
158
- }
159
- const committed = this.readCommitted(snapshot);
160
- if (committed) {
161
- logEvent("round_transaction_replay", {
162
- loopId: snapshot.loopId,
163
- round: snapshot.round,
164
- roundId: snapshot.roundId,
165
- });
166
- return finish(committed);
167
- }
168
- const attempt = snapshot.phase === "rejected"
169
- ? snapshot.attempt + 1
170
- : snapshot.attempt;
171
- const roundEvidence = diffSnapshotCollections(snapshot.beforeEvidence, input.actualEvidence);
172
- const coordinator = new RoundCoordinator(this.backend);
173
- const result = coordinator.processRound({
174
- loopId: snapshot.loopId,
175
- task: input.task,
176
- currentRound: snapshot.round,
177
- maxRounds: input.maxRounds,
178
- selfEval: input.selfEval,
179
- extractionSucceeded: input.extractionSucceeded,
180
- lastSelfEval: input.lastSelfEval,
181
- consecutiveRejections: input.consecutiveRejections,
182
- evidenceSnapshots: roundEvidence,
183
- successTrajectory: input.successTrajectory,
184
- });
185
- const evaluated = {
186
- ...snapshot,
187
- attempt,
188
- phase: "evaluated",
189
- afterEvidence: input.actualEvidence,
190
- roundEvidence,
191
- evaluation: input.selfEval,
192
- result,
193
- updatedAt: Date.now(),
194
- };
195
- if (result.action === "reject" || result.action === "terminate") {
196
- const terminalPhase = result.action === "reject" ? "rejected" : "terminated";
197
- return finish({
198
- snapshot: { ...evaluated, phase: terminalPhase, updatedAt: Date.now() },
199
- result,
200
- replayed: false,
201
- });
202
- }
203
- const committedSnapshot = {
204
- ...evaluated,
205
- phase: "committed",
206
- updatedAt: Date.now(),
207
- };
208
- const metadata = {
209
- schema_version: ROUND_TRANSACTION_SCHEMA_VERSION,
210
- round_id: snapshot.roundId,
211
- snapshot: committedSnapshot,
212
- result,
213
- };
214
- this.engine.autoFeedback(input.selfEval, snapshot.loopId, snapshot.round, input.task, metadata);
215
- const persisted = this.readCommitted(committedSnapshot);
216
- if (!persisted) {
217
- throw new Error(`Round transaction commit failed: ${snapshot.roundId}`);
218
- }
219
- logEvent("round_transaction_commit", {
170
+ const expectedRoundId = makeRoundId(snapshot.loopId, snapshot.round);
171
+ if (snapshot.roundId !== expectedRoundId) {
172
+ throw new Error(`Round snapshot identity mismatch: ${snapshot.roundId} !== ${expectedRoundId}`);
173
+ }
174
+ const committed = this.readCommitted(snapshot);
175
+ if (committed) {
176
+ logEvent("round_transaction_replay", {
220
177
  loopId: snapshot.loopId,
221
178
  round: snapshot.round,
222
179
  roundId: snapshot.roundId,
223
- action: result.action,
224
180
  });
225
- return finish({ snapshot: committedSnapshot, result, replayed: false });
181
+ return finish(committed);
226
182
  }
227
- catch (error) {
228
- throw error;
183
+ const attempt = snapshot.phase === "rejected"
184
+ ? snapshot.attempt + 1
185
+ : snapshot.attempt;
186
+ const roundEvidence = diffSnapshotCollections(snapshot.beforeEvidence, input.actualEvidence);
187
+ const sourceReport = input.roundReport ?? null;
188
+ if (!sourceReport)
189
+ throw new Error("RoundTransaction requires a canonical RoundReport");
190
+ const verifiedReport = verifyRoundReportEvidence(sourceReport, roundEvidence);
191
+ const coordinator = new RoundCoordinator(this.backend);
192
+ const result = coordinator.processRound({
193
+ loopId: snapshot.loopId,
194
+ task: input.task,
195
+ currentRound: snapshot.round,
196
+ maxRounds: input.maxRounds,
197
+ roundReport: verifiedReport,
198
+ previousProjection: input.previousProjection,
199
+ consecutiveRejections: input.consecutiveRejections,
200
+ evidenceSnapshots: roundEvidence,
201
+ successTrajectory: input.successTrajectory,
202
+ backtrackSkippedFiles: input.backtrackSkippedFiles,
203
+ backtrackTargetGitHead: input.backtrackTargetGitHead,
204
+ expectedAction: input.expectedAction,
205
+ escalatedRejectionChecks: input.escalatedRejectionChecks,
206
+ }, input.driftClarificationStreak ?? 0);
207
+ const evaluated = {
208
+ ...snapshot,
209
+ attempt,
210
+ phase: "evaluated",
211
+ afterEvidence: input.actualEvidence,
212
+ roundEvidence,
213
+ roundReport: verifiedReport,
214
+ result,
215
+ updatedAt: Date.now(),
216
+ };
217
+ if (result.action === "reject" || result.action === "terminate") {
218
+ const terminalPhase = result.action === "reject" ? "rejected" : "terminated";
219
+ return finish({
220
+ snapshot: { ...evaluated, phase: terminalPhase, updatedAt: Date.now() },
221
+ result,
222
+ replayed: false,
223
+ });
229
224
  }
225
+ const committedSnapshot = {
226
+ ...evaluated,
227
+ phase: "committed",
228
+ updatedAt: Date.now(),
229
+ };
230
+ const metadata = {
231
+ format: ROUND_TRANSACTION_FORMAT,
232
+ round_id: snapshot.roundId,
233
+ snapshot: committedSnapshot,
234
+ result,
235
+ };
236
+ this.engine.commitRoundReport(snapshot.loopId, snapshot.round, input.task, metadata, verifiedReport);
237
+ const persisted = this.readCommitted(committedSnapshot);
238
+ if (!persisted) {
239
+ throw new Error(`Round transaction commit failed: ${snapshot.roundId}`);
240
+ }
241
+ logEvent("round_transaction_commit", {
242
+ loopId: snapshot.loopId,
243
+ round: snapshot.round,
244
+ roundId: snapshot.roundId,
245
+ action: result.action,
246
+ });
247
+ return finish({ snapshot: committedSnapshot, result, replayed: false });
230
248
  }
231
249
  /** Recover an already committed decision without evaluating or writing. */
232
250
  recover(snapshot) {
233
- try {
234
- const outcome = this.readCommitted(snapshot);
235
- if (outcome) {
236
- policyMetrics.recordRound(snapshot.loopId, outcome.result, true);
237
- }
238
- return outcome;
239
- }
240
- catch (error) {
241
- throw error;
251
+ const outcome = this.readCommitted(snapshot);
252
+ if (outcome) {
253
+ policyMetrics.recordRound(snapshot.loopId, outcome.result, true);
242
254
  }
255
+ return outcome;
243
256
  }
244
257
  readCommitted(expected) {
245
- const taskId = `loop:${expected.loopId}:r${expected.round}:feedback`;
258
+ const taskId = `loop:${expected.loopId}:r${expected.round}:event`;
246
259
  const entries = this.commitStore.find(expected.loopId, expected.round);
247
260
  for (const entry of entries) {
248
261
  if (entry.task_id !== taskId)
@@ -1 +1 @@
1
- {"version":3,"file":"round-transaction.js","sourceRoot":"","sources":["../src/round-transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"round-transaction.js","sourceRoot":"","sources":["../src/round-transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
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
@@ -0,0 +1 @@
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"}