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