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.
- package/README.md +136 -182
- 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 +211 -64
- 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 +26 -26
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +45 -71
- 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 +23 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -26
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +2 -2
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +321 -315
- 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 -311
- 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 +123 -19
- 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 +65 -84
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +667 -224
- 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 +401 -254
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy-metrics.d.ts +24 -0
- package/dist/policy-metrics.d.ts.map +1 -1
- package/dist/policy-metrics.js +174 -0
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +74 -12
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +124 -19
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +8 -4
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +533 -86
- 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 +259 -173
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +17 -96
- 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 +53 -22
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +140 -44
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +18 -10
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +11 -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 +23 -12
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +104 -91
- 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/{engine.js → runtime-services.js} +157 -275
- 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 +12 -8
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +56 -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 +13 -7
- package/skills/perception/SKILL.md +200 -90
- 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 -50
- package/dist/enforcement-gate.d.ts.map +0 -1
- package/dist/enforcement-gate.js +0 -501
- 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.map +0 -1
- package/dist/interop.d.ts +0 -35
- package/dist/interop.d.ts.map +0 -1
- package/dist/interop.js +0 -34
- package/dist/interop.js.map +0 -1
- package/dist/run.d.ts +0 -51
- package/dist/run.d.ts.map +0 -1
- package/dist/run.js +0 -200
- package/dist/run.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 -151
- package/dist/self-eval.js.map +0 -1
- package/dist/verification-gate.d.ts +0 -52
- package/dist/verification-gate.d.ts.map +0 -1
- package/dist/verification-gate.js +0 -527
- 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
|
-
*
|
|
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 {
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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(
|
|
181
|
+
return finish(committed);
|
|
226
182
|
}
|
|
227
|
-
|
|
228
|
-
|
|
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
|
-
|
|
234
|
-
|
|
235
|
-
|
|
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}:
|
|
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":"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"}
|