loopforge 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backends/interface.d.ts +4 -3
- package/dist/backends/interface.d.ts.map +1 -1
- package/dist/backends/interface.js +4 -1
- package/dist/backends/interface.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/engine.d.ts +2 -24
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +72 -238
- package/dist/engine.js.map +1 -1
- package/dist/evidence-provider.d.ts +38 -5
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +131 -38
- package/dist/evidence-provider.js.map +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/interop.d.ts +5 -0
- package/dist/interop.d.ts.map +1 -1
- package/dist/interop.js +5 -0
- package/dist/interop.js.map +1 -1
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +4 -2
- package/dist/loop-compiler.js.map +1 -1
- package/dist/loop-extras-parser.d.ts +82 -0
- package/dist/loop-extras-parser.d.ts.map +1 -0
- package/dist/loop-extras-parser.js +217 -0
- package/dist/loop-extras-parser.js.map +1 -0
- package/dist/loop-store.d.ts +26 -4
- package/dist/loop-store.d.ts.map +1 -1
- package/dist/loop-store.js +96 -7
- package/dist/loop-store.js.map +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/session.d.ts +27 -2
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +166 -117
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +1 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy.d.ts +0 -8
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +1 -9
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +25 -4
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/protocol.d.ts +2 -74
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +0 -26
- package/dist/protocol.js.map +1 -1
- package/dist/round-coordinator.d.ts +4 -4
- package/dist/round-coordinator.js +4 -4
- package/dist/self-eval.d.ts +26 -0
- package/dist/self-eval.d.ts.map +1 -0
- package/dist/self-eval.js +154 -0
- package/dist/self-eval.js.map +1 -0
- package/dist/storage.d.ts +3 -2
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +57 -65
- package/dist/storage.js.map +1 -1
- package/dist/verification-gate.d.ts +16 -18
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +149 -94
- package/dist/verification-gate.js.map +1 -1
- package/loop_policy.json +1 -9
- package/package.json +1 -1
- package/dist/runtime.d.ts +0 -94
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -718
- package/dist/runtime.js.map +0 -1
package/dist/protocol.js
CHANGED
|
@@ -195,32 +195,6 @@ export function makeSessionState(taskId) {
|
|
|
195
195
|
feedback_buffer: [],
|
|
196
196
|
};
|
|
197
197
|
}
|
|
198
|
-
// ── Runtime types (v1.2) ──────────────────────────────────────────────────────
|
|
199
|
-
export var RuntimeStatus;
|
|
200
|
-
(function (RuntimeStatus) {
|
|
201
|
-
RuntimeStatus["IDLE"] = "idle";
|
|
202
|
-
RuntimeStatus["RUNNING"] = "running";
|
|
203
|
-
RuntimeStatus["STOPPED"] = "stopped";
|
|
204
|
-
RuntimeStatus["STALLED"] = "stalled";
|
|
205
|
-
/** v1.18: Loop is suspended — can be resumed from currentRound. */
|
|
206
|
-
RuntimeStatus["PAUSED"] = "paused";
|
|
207
|
-
})(RuntimeStatus || (RuntimeStatus = {}));
|
|
208
|
-
/** Map StopReason (internal) → MemoryWriteback outcome (wire format).
|
|
209
|
-
* Shared between runtime.ts and mcp/session.ts — single source of truth. */
|
|
210
|
-
const LEGACY_STOP_REASON_OUTCOME_MAP = {
|
|
211
|
-
completed: "completed",
|
|
212
|
-
failed: "failed",
|
|
213
|
-
blocked: "blocked",
|
|
214
|
-
cancelled: "cancelled",
|
|
215
|
-
circuit_breaker: "circuit_breaker",
|
|
216
|
-
stalled: "stalled",
|
|
217
|
-
max_rounds: "max_rounds",
|
|
218
|
-
executor_failure: "failed",
|
|
219
|
-
enforcement_terminated: "enforcement_terminated",
|
|
220
|
-
paused: "paused",
|
|
221
|
-
task_complete: "completed",
|
|
222
|
-
stopped: "cancelled",
|
|
223
|
-
};
|
|
224
198
|
export function makeEnforcementResult(overrides = {}) {
|
|
225
199
|
return {
|
|
226
200
|
action: "accept",
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** RoundCoordinator — Unified round-boundary state machine (v1.17).
|
|
2
2
|
*
|
|
3
|
-
* Encapsulates the shared round processing pipeline used by
|
|
4
|
-
*
|
|
3
|
+
* Encapsulates the shared round processing pipeline used by
|
|
4
|
+
* SessionManager (mcp/session.ts):
|
|
5
5
|
*
|
|
6
6
|
* verify → enforce → stop decision
|
|
7
7
|
*
|
|
@@ -77,8 +77,8 @@ export declare class RoundCoordinator {
|
|
|
77
77
|
/** Process a single round's self-evaluation through the decision pipeline:
|
|
78
78
|
* verify → enforce → stop decision.
|
|
79
79
|
*
|
|
80
|
-
* This is the single entry point called by
|
|
81
|
-
*
|
|
80
|
+
* This is the single entry point called by SessionManager.
|
|
81
|
+
* The caller is responsible for:
|
|
82
82
|
* - Compiling the next prompt (if action is "continue")
|
|
83
83
|
* - Managing heartbeat / signal handlers (runtime only)
|
|
84
84
|
* - Memory injection (both paths, before calling processRound)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** RoundCoordinator — Unified round-boundary state machine (v1.17).
|
|
2
2
|
*
|
|
3
|
-
* Encapsulates the shared round processing pipeline used by
|
|
4
|
-
*
|
|
3
|
+
* Encapsulates the shared round processing pipeline used by
|
|
4
|
+
* SessionManager (mcp/session.ts):
|
|
5
5
|
*
|
|
6
6
|
* verify → enforce → stop decision
|
|
7
7
|
*
|
|
@@ -30,8 +30,8 @@ export class RoundCoordinator {
|
|
|
30
30
|
/** Process a single round's self-evaluation through the decision pipeline:
|
|
31
31
|
* verify → enforce → stop decision.
|
|
32
32
|
*
|
|
33
|
-
* This is the single entry point called by
|
|
34
|
-
*
|
|
33
|
+
* This is the single entry point called by SessionManager.
|
|
34
|
+
* The caller is responsible for:
|
|
35
35
|
* - Compiling the next prompt (if action is "continue")
|
|
36
36
|
* - Managing heartbeat / signal handlers (runtime only)
|
|
37
37
|
* - Memory injection (both paths, before calling processRound)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Self-evaluation extraction and parsing — pure functions.
|
|
2
|
+
*
|
|
3
|
+
* These functions parse an Agent's raw output into a structured
|
|
4
|
+
* SelfEvaluation. They have no dependency on Engine state, file I/O,
|
|
5
|
+
* or external services. They are shared by both the MCP tool handler
|
|
6
|
+
* (which receives structured JSON directly) and the legacy invoke
|
|
7
|
+
* path (which regex-scans free-text Agent output).
|
|
8
|
+
*/
|
|
9
|
+
import { type CriterionRevision, type ExecutionEvidence, type SelfEvaluation } from "./protocol.js";
|
|
10
|
+
/** Parse ExecutionEvidence from a raw JSON object. */
|
|
11
|
+
export declare function parseExecutionEvidence(raw: Record<string, unknown> | undefined | null): ExecutionEvidence | undefined;
|
|
12
|
+
/** Parse CriterionRevision[] from a raw JSON array. */
|
|
13
|
+
export declare function parseCriterionRevisions(raw: unknown): CriterionRevision[];
|
|
14
|
+
/** Parse WorkerResult[] from a raw JSON array. */
|
|
15
|
+
export declare function parseWorkerResults(raw: unknown): import("./protocol.js").WorkerResult[];
|
|
16
|
+
/** Extract a structured SelfEvaluation from agent output text.
|
|
17
|
+
* Returns null if no valid self-eval block is found.
|
|
18
|
+
* The agent is instructed to output JSON between the delimiters. */
|
|
19
|
+
export declare function extractSelfEvaluation(text: string): SelfEvaluation | null;
|
|
20
|
+
/** Build a SelfEvaluation from a parsed JSON object.
|
|
21
|
+
* Lenient parsing: missing optional fields get sensible defaults. */
|
|
22
|
+
export declare function buildSelfEvaluation(raw: Record<string, unknown>): SelfEvaluation;
|
|
23
|
+
/** Fallback heuristic when structured self-eval extraction fails.
|
|
24
|
+
* Scans agent output for completion and error signals. */
|
|
25
|
+
export declare function heuristicSelfEvaluation(text: string): SelfEvaluation | null;
|
|
26
|
+
//# sourceMappingURL=self-eval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-eval.d.ts","sourceRoot":"","sources":["../src/self-eval.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAIvB,sDAAsD;AACtD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAC9C,iBAAiB,GAAG,SAAS,CAwB/B;AAED,uDAAuD;AACvD,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,GACX,iBAAiB,EAAE,CAWrB;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,GACX,OAAO,eAAe,EAAE,YAAY,EAAE,CAqBxC;AAID;;qEAEqE;AACrE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAczE;AAED;sEACsE;AACtE,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,cAAc,CA0ChB;AAED;2DAC2D;AAC3D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAoB3E"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/** Self-evaluation extraction and parsing — pure functions.
|
|
2
|
+
*
|
|
3
|
+
* These functions parse an Agent's raw output into a structured
|
|
4
|
+
* SelfEvaluation. They have no dependency on Engine state, file I/O,
|
|
5
|
+
* or external services. They are shared by both the MCP tool handler
|
|
6
|
+
* (which receives structured JSON directly) and the legacy invoke
|
|
7
|
+
* path (which regex-scans free-text Agent output).
|
|
8
|
+
*/
|
|
9
|
+
import { makeExecutionEvidence, makeSelfEvaluation, SELF_EVAL_REGEX, } from "./protocol.js";
|
|
10
|
+
// ── Raw parsing helpers ───────────────────────────────────────────────────
|
|
11
|
+
/** Parse ExecutionEvidence from a raw JSON object. */
|
|
12
|
+
export function parseExecutionEvidence(raw) {
|
|
13
|
+
if (!raw || typeof raw !== "object")
|
|
14
|
+
return undefined;
|
|
15
|
+
const testResults = raw.test_results;
|
|
16
|
+
return makeExecutionEvidence({
|
|
17
|
+
files_changed: Array.isArray(raw.files_changed)
|
|
18
|
+
? raw.files_changed.filter((v) => typeof v === "string")
|
|
19
|
+
: [],
|
|
20
|
+
test_results: testResults && typeof testResults.passed === "number"
|
|
21
|
+
? {
|
|
22
|
+
passed: testResults.passed,
|
|
23
|
+
failed: testResults.failed ?? 0,
|
|
24
|
+
skipped: testResults.skipped ?? 0,
|
|
25
|
+
}
|
|
26
|
+
: null,
|
|
27
|
+
success_criteria_met: Array.isArray(raw.success_criteria_met)
|
|
28
|
+
? raw.success_criteria_met.filter((v) => typeof v === "string")
|
|
29
|
+
: [],
|
|
30
|
+
success_criteria_remaining: Array.isArray(raw.success_criteria_remaining)
|
|
31
|
+
? raw.success_criteria_remaining.filter((v) => typeof v === "string")
|
|
32
|
+
: [],
|
|
33
|
+
progress_estimate: typeof raw.progress_estimate === "number"
|
|
34
|
+
? Math.max(0, Math.min(1, raw.progress_estimate))
|
|
35
|
+
: 0.0,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/** Parse CriterionRevision[] from a raw JSON array. */
|
|
39
|
+
export function parseCriterionRevisions(raw) {
|
|
40
|
+
if (!Array.isArray(raw))
|
|
41
|
+
return [];
|
|
42
|
+
return raw
|
|
43
|
+
.filter((v) => typeof v === "object" && v !== null &&
|
|
44
|
+
typeof v.old === "string" &&
|
|
45
|
+
typeof v.new === "string")
|
|
46
|
+
.map((v) => {
|
|
47
|
+
const r = v;
|
|
48
|
+
return { old: r.old, new: r.new };
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/** Parse WorkerResult[] from a raw JSON array. */
|
|
52
|
+
export function parseWorkerResults(raw) {
|
|
53
|
+
if (!Array.isArray(raw))
|
|
54
|
+
return [];
|
|
55
|
+
return raw
|
|
56
|
+
.filter((v) => typeof v === "object" && v !== null &&
|
|
57
|
+
typeof v.agentId === "string" &&
|
|
58
|
+
typeof v.subTask === "string" &&
|
|
59
|
+
typeof v.resultSummary === "string")
|
|
60
|
+
.map((v) => {
|
|
61
|
+
const w = v;
|
|
62
|
+
return {
|
|
63
|
+
agentId: w.agentId,
|
|
64
|
+
subAgentType: typeof w.subAgentType === "string" ? w.subAgentType : "general-purpose",
|
|
65
|
+
subTask: w.subTask,
|
|
66
|
+
resultSummary: w.resultSummary,
|
|
67
|
+
success: typeof w.success === "boolean" ? w.success : false,
|
|
68
|
+
discoveredConstraints: Array.isArray(w.discoveredConstraints)
|
|
69
|
+
? w.discoveredConstraints.filter((c) => typeof c === "string")
|
|
70
|
+
: [],
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// ── Self-evaluation extraction ───────────────────────────────────────────
|
|
75
|
+
/** Extract a structured SelfEvaluation from agent output text.
|
|
76
|
+
* Returns null if no valid self-eval block is found.
|
|
77
|
+
* The agent is instructed to output JSON between the delimiters. */
|
|
78
|
+
export function extractSelfEvaluation(text) {
|
|
79
|
+
const match = text.match(SELF_EVAL_REGEX);
|
|
80
|
+
if (!match)
|
|
81
|
+
return null;
|
|
82
|
+
try {
|
|
83
|
+
const raw = JSON.parse(match[1]);
|
|
84
|
+
if (typeof raw.success !== "boolean")
|
|
85
|
+
return null;
|
|
86
|
+
if (typeof raw.output_summary !== "string")
|
|
87
|
+
return null;
|
|
88
|
+
if (!Array.isArray(raw.constraint_violations))
|
|
89
|
+
return null;
|
|
90
|
+
if (typeof raw.should_continue !== "boolean")
|
|
91
|
+
return null;
|
|
92
|
+
return buildSelfEvaluation(raw);
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/** Build a SelfEvaluation from a parsed JSON object.
|
|
99
|
+
* Lenient parsing: missing optional fields get sensible defaults. */
|
|
100
|
+
export function buildSelfEvaluation(raw) {
|
|
101
|
+
const executionEvidence = parseExecutionEvidence(raw.execution_evidence);
|
|
102
|
+
const retractedConstraints = Array.isArray(raw.retracted_constraints)
|
|
103
|
+
? raw.retracted_constraints.filter((v) => typeof v === "string")
|
|
104
|
+
: [];
|
|
105
|
+
const revisedCriteria = parseCriterionRevisions(raw.revised_success_criteria);
|
|
106
|
+
const wrongAssumptions = Array.isArray(raw.wrong_assumptions)
|
|
107
|
+
? raw.wrong_assumptions.filter((v) => typeof v === "string")
|
|
108
|
+
: [];
|
|
109
|
+
const workerResults = parseWorkerResults(raw.worker_results);
|
|
110
|
+
return makeSelfEvaluation({
|
|
111
|
+
success: typeof raw.success === "boolean" ? raw.success : false,
|
|
112
|
+
output_summary: typeof raw.output_summary === "string" ? raw.output_summary : "",
|
|
113
|
+
constraint_violations: Array.isArray(raw.constraint_violations)
|
|
114
|
+
? raw.constraint_violations.filter((v) => typeof v === "string")
|
|
115
|
+
: [],
|
|
116
|
+
should_continue: typeof raw.should_continue === "boolean" ? raw.should_continue : true,
|
|
117
|
+
discovered_constraints: Array.isArray(raw.discovered_constraints)
|
|
118
|
+
? raw.discovered_constraints.filter((v) => typeof v === "string")
|
|
119
|
+
: [],
|
|
120
|
+
objective_refinement: typeof raw.objective_refinement === "string"
|
|
121
|
+
? raw.objective_refinement
|
|
122
|
+
: "",
|
|
123
|
+
emerged_subtasks: Array.isArray(raw.emerged_subtasks)
|
|
124
|
+
? raw.emerged_subtasks.filter((v) => typeof v === "string")
|
|
125
|
+
: [],
|
|
126
|
+
execution_evidence: executionEvidence,
|
|
127
|
+
retracted_constraints: retractedConstraints,
|
|
128
|
+
revised_success_criteria: revisedCriteria,
|
|
129
|
+
wrong_assumptions: wrongAssumptions,
|
|
130
|
+
worker_results: workerResults,
|
|
131
|
+
compression_checkpoint: typeof raw.compression_checkpoint === "boolean" ? raw.compression_checkpoint : false,
|
|
132
|
+
checkpoint_label: typeof raw.checkpoint_label === "string" ? raw.checkpoint_label : "",
|
|
133
|
+
next_action: typeof raw.next_action === "string" ? raw.next_action : undefined,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/** Fallback heuristic when structured self-eval extraction fails.
|
|
137
|
+
* Scans agent output for completion and error signals. */
|
|
138
|
+
export function heuristicSelfEvaluation(text) {
|
|
139
|
+
const lower = text.toLowerCase();
|
|
140
|
+
const hasError = /error|failed|exception|cannot|unable|失败|错误|异常/.test(lower);
|
|
141
|
+
const hasCompletion = /done|complete|finished|完成|成功/.test(lower);
|
|
142
|
+
const hasRemaining = /remaining|continue|still need|next|todo|剩余|继续|下一步/.test(lower);
|
|
143
|
+
const paragraphs = text.split(/\n\n+/).filter((p) => p.trim().length > 30);
|
|
144
|
+
const summary = paragraphs.length > 0
|
|
145
|
+
? paragraphs[paragraphs.length - 1].trim().slice(0, 300)
|
|
146
|
+
: text.trim().slice(0, 300);
|
|
147
|
+
return makeSelfEvaluation({
|
|
148
|
+
success: !hasError && (hasCompletion || !hasRemaining),
|
|
149
|
+
output_summary: summary || "[heuristic fallback — could not parse structured self-eval]",
|
|
150
|
+
constraint_violations: [],
|
|
151
|
+
should_continue: hasRemaining && !hasError,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=self-eval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-eval.js","sourceRoot":"","sources":["../src/self-eval.ts"],"names":[],"mappings":"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"}
|
package/dist/storage.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** Persistence adapters for session state and committed round lookup. */
|
|
2
2
|
import type { VaultBackend, VaultEntry } from "./backends/interface.js";
|
|
3
|
+
import type { LoopStore } from "./loop-store.js";
|
|
3
4
|
export interface SessionStateStore {
|
|
4
5
|
load(loopId: string): VaultEntry | undefined;
|
|
5
6
|
list(): VaultEntry[];
|
|
@@ -20,8 +21,8 @@ export interface RoundCommitStore {
|
|
|
20
21
|
find(loopId: string, round: number): VaultEntry[];
|
|
21
22
|
}
|
|
22
23
|
export declare class VaultSessionStateStore implements SessionStateStore {
|
|
23
|
-
private readonly
|
|
24
|
-
constructor(
|
|
24
|
+
private readonly store;
|
|
25
|
+
constructor(store: LoopStore);
|
|
25
26
|
load(loopId: string): VaultEntry | undefined;
|
|
26
27
|
list(): VaultEntry[];
|
|
27
28
|
save(entry: VaultEntry, options?: SessionSaveOptions): void;
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AAgBtE,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7C,IAAI,IAAI,UAAU,EAAE,CAAC;IACrB,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC5D,YAAY,CAAC,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,UAAU,GAAG,SAAS,CAAC;IAC1B,UAAU,CAAC,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;IACX,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CACzD;AAED,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAIpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;CACnD;AAED,qBAAa,sBAAuB,YAAW,iBAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,SAAS;IAE7C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAK5C,IAAI,IAAI,UAAU,EAAE;IASpB,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,kBAAuB,GAAG,IAAI;IA2B/D,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,GAAG,SAAa,GACf,UAAU,GAAG,SAAS;IA6CzB,UAAU,CACR,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,GAAG,SAAa,GACf,OAAO;IA4BV,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IA6BtD,OAAO,CAAC,OAAO;CAOhB;AAED,qBAAa,qBAAsB,YAAW,gBAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAElD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE;CAMlD"}
|
package/dist/storage.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** Persistence adapters for session state and committed round lookup. */
|
|
2
|
+
import { LOOP_STORE_SCHEMA_VERSION } from "./loop-store.js";
|
|
2
3
|
function isLeaseOwnerAlive(ownerId) {
|
|
3
4
|
const match = ownerId.match(/^(\d+):/);
|
|
4
5
|
if (!match)
|
|
@@ -23,17 +24,22 @@ export class SessionLeaseConflictError extends Error {
|
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
export class VaultSessionStateStore {
|
|
26
|
-
|
|
27
|
-
constructor(
|
|
28
|
-
this.
|
|
27
|
+
store;
|
|
28
|
+
constructor(store) {
|
|
29
|
+
this.store = store;
|
|
29
30
|
}
|
|
30
31
|
load(loopId) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
entry.task_id === `loop:${loopId}:session`);
|
|
32
|
+
const session = this.store.readSession(loopId);
|
|
33
|
+
return session?.entry;
|
|
34
34
|
}
|
|
35
35
|
list() {
|
|
36
|
-
|
|
36
|
+
const result = [];
|
|
37
|
+
for (const loopId of this.store.listLoopIds()) {
|
|
38
|
+
const session = this.store.readSession(loopId);
|
|
39
|
+
if (session)
|
|
40
|
+
result.push(session.entry);
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
37
43
|
}
|
|
38
44
|
save(entry, options = {}) {
|
|
39
45
|
const loopId = entry.loop_id;
|
|
@@ -41,13 +47,9 @@ export class VaultSessionStateStore {
|
|
|
41
47
|
throw new Error("Session state entry requires loop_id");
|
|
42
48
|
}
|
|
43
49
|
const write = () => {
|
|
44
|
-
const
|
|
45
|
-
const entries = Array.isArray(vault.entries)
|
|
46
|
-
? vault.entries
|
|
47
|
-
: [];
|
|
48
|
-
const existing = entries.find((item) => item.task_type === "session_state" && item.loop_id === loopId);
|
|
50
|
+
const existing = this.store.readSession(loopId);
|
|
49
51
|
if (existing && options.expectedLeaseOwner) {
|
|
50
|
-
const lineage = this.lineage(existing);
|
|
52
|
+
const lineage = this.lineage(existing.entry);
|
|
51
53
|
const owner = typeof lineage.lease_owner === "string"
|
|
52
54
|
? lineage.lease_owner
|
|
53
55
|
: "";
|
|
@@ -55,30 +57,23 @@ export class VaultSessionStateStore {
|
|
|
55
57
|
throw new SessionLeaseConflictError(loopId);
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
const doc = {
|
|
61
|
+
schemaVersion: LOOP_STORE_SCHEMA_VERSION,
|
|
62
|
+
loopId,
|
|
63
|
+
updatedAt: new Date().toISOString(),
|
|
60
64
|
entry,
|
|
61
|
-
|
|
62
|
-
this.
|
|
65
|
+
};
|
|
66
|
+
this.store.writeSession(loopId, doc);
|
|
63
67
|
};
|
|
64
|
-
|
|
65
|
-
this.backend.withLock(write);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
write();
|
|
69
|
-
}
|
|
68
|
+
this.store.withLock(write);
|
|
70
69
|
}
|
|
71
70
|
acquireLease(loopId, ownerId, leaseMs, now = Date.now()) {
|
|
72
71
|
let claimed;
|
|
73
72
|
const write = () => {
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
? vault.entries
|
|
77
|
-
: [];
|
|
78
|
-
const index = entries.findIndex((entry) => entry.task_type === "session_state" && entry.loop_id === loopId);
|
|
79
|
-
if (index < 0)
|
|
73
|
+
const session = this.store.readSession(loopId);
|
|
74
|
+
if (!session)
|
|
80
75
|
return;
|
|
81
|
-
const entry =
|
|
76
|
+
const entry = session.entry;
|
|
82
77
|
const lineage = this.lineage(entry);
|
|
83
78
|
const owner = typeof lineage.lease_owner === "string"
|
|
84
79
|
? lineage.lease_owner
|
|
@@ -104,63 +99,58 @@ export class VaultSessionStateStore {
|
|
|
104
99
|
lease_epoch: owner === ownerId ? previousEpoch : previousEpoch + 1,
|
|
105
100
|
},
|
|
106
101
|
};
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
102
|
+
const doc = {
|
|
103
|
+
schemaVersion: LOOP_STORE_SCHEMA_VERSION,
|
|
104
|
+
loopId,
|
|
105
|
+
updatedAt: new Date(now).toISOString(),
|
|
106
|
+
entry: updated,
|
|
107
|
+
};
|
|
108
|
+
this.store.writeSession(loopId, doc);
|
|
110
109
|
claimed = updated;
|
|
111
110
|
};
|
|
112
|
-
|
|
113
|
-
this.backend.withLock(write);
|
|
114
|
-
else
|
|
115
|
-
write();
|
|
111
|
+
this.store.withLock(write);
|
|
116
112
|
return claimed;
|
|
117
113
|
}
|
|
118
114
|
renewLease(loopId, ownerId, leaseMs, now = Date.now()) {
|
|
119
115
|
let renewed = false;
|
|
120
116
|
const write = () => {
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
? vault.entries
|
|
124
|
-
: [];
|
|
125
|
-
const index = entries.findIndex((entry) => entry.task_type === "session_state" && entry.loop_id === loopId);
|
|
126
|
-
if (index < 0)
|
|
117
|
+
const session = this.store.readSession(loopId);
|
|
118
|
+
if (!session)
|
|
127
119
|
return;
|
|
128
|
-
const entry =
|
|
120
|
+
const entry = session.entry;
|
|
129
121
|
const lineage = this.lineage(entry);
|
|
130
122
|
if (lineage.lease_owner !== ownerId)
|
|
131
123
|
return;
|
|
132
|
-
|
|
124
|
+
const updated = {
|
|
133
125
|
...entry,
|
|
134
126
|
loop_lineage: {
|
|
135
127
|
...lineage,
|
|
136
128
|
lease_expires_at: now + Math.max(1, leaseMs),
|
|
137
129
|
},
|
|
138
130
|
};
|
|
139
|
-
|
|
140
|
-
|
|
131
|
+
const doc = {
|
|
132
|
+
schemaVersion: LOOP_STORE_SCHEMA_VERSION,
|
|
133
|
+
loopId,
|
|
134
|
+
updatedAt: new Date(now).toISOString(),
|
|
135
|
+
entry: updated,
|
|
136
|
+
};
|
|
137
|
+
this.store.writeSession(loopId, doc);
|
|
141
138
|
renewed = true;
|
|
142
139
|
};
|
|
143
|
-
|
|
144
|
-
this.backend.withLock(write);
|
|
145
|
-
else
|
|
146
|
-
write();
|
|
140
|
+
this.store.withLock(write);
|
|
147
141
|
return renewed;
|
|
148
142
|
}
|
|
149
143
|
releaseLease(loopId, ownerId) {
|
|
150
144
|
let released = false;
|
|
151
145
|
const write = () => {
|
|
152
|
-
const
|
|
153
|
-
|
|
154
|
-
? vault.entries
|
|
155
|
-
: [];
|
|
156
|
-
const index = entries.findIndex((entry) => entry.task_type === "session_state" && entry.loop_id === loopId);
|
|
157
|
-
if (index < 0)
|
|
146
|
+
const session = this.store.readSession(loopId);
|
|
147
|
+
if (!session)
|
|
158
148
|
return;
|
|
159
|
-
const entry =
|
|
149
|
+
const entry = session.entry;
|
|
160
150
|
const lineage = this.lineage(entry);
|
|
161
151
|
if (lineage.lease_owner !== ownerId)
|
|
162
152
|
return;
|
|
163
|
-
|
|
153
|
+
const updated = {
|
|
164
154
|
...entry,
|
|
165
155
|
loop_lineage: {
|
|
166
156
|
...lineage,
|
|
@@ -168,14 +158,16 @@ export class VaultSessionStateStore {
|
|
|
168
158
|
lease_expires_at: 0,
|
|
169
159
|
},
|
|
170
160
|
};
|
|
171
|
-
|
|
172
|
-
|
|
161
|
+
const doc = {
|
|
162
|
+
schemaVersion: LOOP_STORE_SCHEMA_VERSION,
|
|
163
|
+
loopId,
|
|
164
|
+
updatedAt: new Date().toISOString(),
|
|
165
|
+
entry: updated,
|
|
166
|
+
};
|
|
167
|
+
this.store.writeSession(loopId, doc);
|
|
173
168
|
released = true;
|
|
174
169
|
};
|
|
175
|
-
|
|
176
|
-
this.backend.withLock(write);
|
|
177
|
-
else
|
|
178
|
-
write();
|
|
170
|
+
this.store.withLock(write);
|
|
179
171
|
return released;
|
|
180
172
|
}
|
|
181
173
|
lineage(entry) {
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAIzE,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAC;IAC3D,CAAC;AACH,CAAC;AA0BD,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAC7B;IAArB,YAAqB,MAAc;QACjC,KAAK,CAAC,8CAA8C,MAAM,EAAE,CAAC,CAAC;QAD3C,WAAM,GAAN,MAAM,CAAQ;QAEjC,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAMD,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,31 +15,29 @@
|
|
|
15
15
|
import type { VaultEntry } from "./backends/interface.js";
|
|
16
16
|
import type { ProviderSnapshot } from "./evidence-provider.js";
|
|
17
17
|
import type { SelfEvaluation, VerificationResult } from "./protocol.js";
|
|
18
|
+
export { type GitFileState, captureGitFileState, captureGitModifiedFiles, } from "./evidence-provider.js";
|
|
18
19
|
/** Extract the round number from a vault entry's loop_lineage.
|
|
19
20
|
* Returns 0 if the entry has no lineage or no round field.
|
|
20
21
|
* In practice, persistLoopLineage always writes round ≥ 1, so 0
|
|
21
22
|
* unambiguously means "not a valid round entry" in this context.
|
|
22
23
|
* Exported for reuse by enforcement-gate.ts. */
|
|
23
24
|
export declare function entryRound(entry: VaultEntry): number;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
staged: string[];
|
|
30
|
-
/** Untracked files not yet known to git (git ls-files --others --exclude-standard). */
|
|
31
|
-
untracked: string[];
|
|
25
|
+
interface ParsedTestCounts {
|
|
26
|
+
passed: number;
|
|
27
|
+
failed: number;
|
|
28
|
+
skipped: number;
|
|
29
|
+
total: number;
|
|
32
30
|
}
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
export declare function
|
|
31
|
+
/** Best-effort parse of test counts from common test-runner output formats.
|
|
32
|
+
*
|
|
33
|
+
* Scans the last 2000 characters of stdout (where summary lines typically
|
|
34
|
+
* appear) and tries patterns in descending specificity order. Returns null
|
|
35
|
+
* when the output format is unrecognized, stdout is empty, or a confident
|
|
36
|
+
* parse cannot be made.
|
|
37
|
+
*
|
|
38
|
+
* Recognized formats: Jest verbose/compact, Mocha, pytest/unittest, Go test,
|
|
39
|
+
* and PHPUnit OK summaries. */
|
|
40
|
+
export declare function parseTestOutput(stdout: string): ParsedTestCounts | null;
|
|
43
41
|
/** Verify a SelfEvaluation against the loop's cross-round lineage.
|
|
44
42
|
*
|
|
45
43
|
* @param selfEval The agent's self-evaluation for the current round.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-gate.d.ts","sourceRoot":"","sources":["../src/verification-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"verification-gate.d.ts","sourceRoot":"","sources":["../src/verification-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAoB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAM1F,OAAO,EACL,KAAK,YAAY,EACjB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAMhC;;;;iDAIiD;AACjD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAGpD;AAqUD,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;gCAQgC;AAChC,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CA4DvE;AA6DD;;;;;;;;;;;;;4EAa4E;AAC5E,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,UAAU,EAAE,EAC1B,YAAY,GAAE,cAAc,GAAG,IAAW,EAC1C,mBAAmB,GAAE,MAAM,EAAE,GAAG,IAAW,EAC3C,iBAAiB,GAAE,gBAAgB,EAAO,GACzC,kBAAkB,CA8CpB"}
|