loopforge 3.2.1 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -67
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +7 -34
- package/dist/audit.js.map +1 -1
- package/dist/canonical-state.d.ts +71 -4
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +176 -9
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +16 -18
- package/dist/cli.js.map +1 -1
- package/dist/cognitive-facts.d.ts +17 -0
- package/dist/cognitive-facts.d.ts.map +1 -0
- package/dist/cognitive-facts.js +99 -0
- package/dist/cognitive-facts.js.map +1 -0
- package/dist/committed-round.d.ts +59 -0
- package/dist/committed-round.d.ts.map +1 -0
- package/dist/committed-round.js +222 -0
- package/dist/committed-round.js.map +1 -0
- package/dist/enforcement-gate.d.ts +4 -2
- package/dist/enforcement-gate.d.ts.map +1 -1
- package/dist/enforcement-gate.js +339 -301
- package/dist/enforcement-gate.js.map +1 -1
- package/dist/engine.d.ts +16 -4
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +63 -15
- package/dist/engine.js.map +1 -1
- package/dist/evidence-claims.d.ts.map +1 -1
- package/dist/evidence-claims.js +21 -39
- package/dist/evidence-claims.js.map +1 -1
- package/dist/evidence-provider.d.ts +29 -0
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +93 -16
- package/dist/evidence-provider.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +21 -4
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +244 -66
- package/dist/loop-compiler.js.map +1 -1
- package/dist/loop-projection.d.ts +5 -25
- package/dist/loop-projection.d.ts.map +1 -1
- package/dist/loop-projection.js +18 -134
- package/dist/loop-projection.js.map +1 -1
- package/dist/loop-store.d.ts +5 -2
- package/dist/loop-store.d.ts.map +1 -1
- package/dist/loop-store.js.map +1 -1
- package/dist/mcp/round-lifecycle.d.ts +6 -8
- package/dist/mcp/round-lifecycle.d.ts.map +1 -1
- package/dist/mcp/round-lifecycle.js +61 -52
- package/dist/mcp/round-lifecycle.js.map +1 -1
- package/dist/mcp/server.js +3 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +14 -3
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +174 -52
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/tools.d.ts +12 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +160 -52
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy-metrics.d.ts +0 -7
- package/dist/policy-metrics.d.ts.map +1 -1
- package/dist/policy-metrics.js +15 -55
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +22 -20
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +24 -38
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +120 -140
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/protocol.d.ts +57 -23
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +10 -4
- package/dist/protocol.js.map +1 -1
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +21 -22
- package/dist/replay.js.map +1 -1
- package/dist/round-contract.d.ts +64 -0
- package/dist/round-contract.d.ts.map +1 -0
- package/dist/round-contract.js +80 -0
- package/dist/round-contract.js.map +1 -0
- package/dist/round-coordinator.d.ts +5 -3
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +33 -29
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +0 -1
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +0 -1
- package/dist/round-driver.js.map +1 -1
- package/dist/round-transaction.d.ts +0 -1
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +0 -1
- package/dist/round-transaction.js.map +1 -1
- package/dist/self-eval.d.ts +29 -34
- package/dist/self-eval.d.ts.map +1 -1
- package/dist/self-eval.js +112 -148
- package/dist/self-eval.js.map +1 -1
- package/dist/verification-gate.d.ts +53 -12
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +462 -90
- package/dist/verification-gate.js.map +1 -1
- package/dist/workspace.d.ts +29 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +61 -0
- package/dist/workspace.js.map +1 -0
- package/loop_policy.json +5 -13
- package/package.json +1 -1
- package/skills/perception/SKILL.md +135 -136
package/dist/self-eval.js
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
/**
|
|
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).
|
|
1
|
+
/** Structured self-evaluation parsing and normalization — pure functions.
|
|
2
|
+
* The MCP boundary validates required fields before these helpers run.
|
|
8
3
|
*/
|
|
9
|
-
import { makeExecutionEvidence, makeSelfEvaluation,
|
|
4
|
+
import { makeExecutionEvidence, makeSelfEvaluation, } from "./protocol.js";
|
|
10
5
|
// ── Raw parsing helpers ───────────────────────────────────────────────────
|
|
6
|
+
function boundedString(value, maxChars) {
|
|
7
|
+
return typeof value === "string" ? value.slice(0, maxChars) : undefined;
|
|
8
|
+
}
|
|
9
|
+
function boundedStringArray(value, maxItems, maxChars) {
|
|
10
|
+
return Array.isArray(value)
|
|
11
|
+
? value
|
|
12
|
+
.filter((item) => typeof item === "string")
|
|
13
|
+
.map((item) => item.slice(0, maxChars))
|
|
14
|
+
.slice(0, maxItems)
|
|
15
|
+
: [];
|
|
16
|
+
}
|
|
17
|
+
function nonNegativeInteger(value) {
|
|
18
|
+
return typeof value === "number" && Number.isFinite(value)
|
|
19
|
+
? Math.max(0, Math.trunc(value))
|
|
20
|
+
: 0;
|
|
21
|
+
}
|
|
11
22
|
/** v2.12: Parse retroactive claims — {round ≥ 1, claim non-empty}, capped at
|
|
12
23
|
* 20 entries. Invalid entries are silently dropped (lenient parsing). */
|
|
13
24
|
function parseRetroactiveClaims(raw) {
|
|
@@ -31,27 +42,26 @@ function parseRetroactiveClaims(raw) {
|
|
|
31
42
|
}
|
|
32
43
|
/** Parse ExecutionEvidence from a raw JSON object. */
|
|
33
44
|
export function parseExecutionEvidence(raw) {
|
|
34
|
-
if (!raw || typeof raw !== "object")
|
|
45
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
35
46
|
return undefined;
|
|
36
|
-
const testResults = raw.test_results
|
|
47
|
+
const testResults = raw.test_results && typeof raw.test_results === "object" &&
|
|
48
|
+
!Array.isArray(raw.test_results)
|
|
49
|
+
? raw.test_results
|
|
50
|
+
: undefined;
|
|
37
51
|
return makeExecutionEvidence({
|
|
38
|
-
files_changed:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
test_results: testResults && typeof testResults.passed === "number"
|
|
52
|
+
files_changed: boundedStringArray(raw.files_changed, 200, 500),
|
|
53
|
+
test_results: testResults && typeof testResults.passed === "number" &&
|
|
54
|
+
Number.isFinite(testResults.passed)
|
|
42
55
|
? {
|
|
43
|
-
passed: testResults.passed,
|
|
44
|
-
failed: testResults.failed
|
|
45
|
-
skipped: testResults.skipped
|
|
56
|
+
passed: nonNegativeInteger(testResults.passed),
|
|
57
|
+
failed: nonNegativeInteger(testResults.failed),
|
|
58
|
+
skipped: nonNegativeInteger(testResults.skipped),
|
|
46
59
|
}
|
|
47
60
|
: null,
|
|
48
|
-
success_criteria_met:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
? raw.success_criteria_remaining.filter((v) => typeof v === "string")
|
|
53
|
-
: [],
|
|
54
|
-
progress_estimate: typeof raw.progress_estimate === "number"
|
|
61
|
+
success_criteria_met: boundedStringArray(raw.success_criteria_met, 100, 500),
|
|
62
|
+
success_criteria_remaining: boundedStringArray(raw.success_criteria_remaining, 100, 500),
|
|
63
|
+
progress_estimate: typeof raw.progress_estimate === "number" &&
|
|
64
|
+
Number.isFinite(raw.progress_estimate)
|
|
55
65
|
? Math.max(0, Math.min(1, raw.progress_estimate))
|
|
56
66
|
: 0.0,
|
|
57
67
|
});
|
|
@@ -64,9 +74,10 @@ export function parseCriterionRevisions(raw) {
|
|
|
64
74
|
.filter((v) => typeof v === "object" && v !== null &&
|
|
65
75
|
typeof v.old === "string" &&
|
|
66
76
|
typeof v.new === "string")
|
|
77
|
+
.slice(0, 20)
|
|
67
78
|
.map((v) => {
|
|
68
79
|
const r = v;
|
|
69
|
-
return { old: r.old, new: r.new };
|
|
80
|
+
return { old: r.old.slice(0, 500), new: r.new.slice(0, 500) };
|
|
70
81
|
});
|
|
71
82
|
}
|
|
72
83
|
/** Parse WorkerResult[] from a raw JSON array. */
|
|
@@ -78,31 +89,25 @@ export function parseWorkerResults(raw) {
|
|
|
78
89
|
typeof v.agentId === "string" &&
|
|
79
90
|
typeof v.subTask === "string" &&
|
|
80
91
|
typeof v.resultSummary === "string")
|
|
92
|
+
.slice(0, 20)
|
|
81
93
|
.map((v) => {
|
|
82
94
|
const w = v;
|
|
83
95
|
return {
|
|
84
|
-
agentId: w.agentId,
|
|
85
|
-
subAgentType: typeof w.subAgentType === "string"
|
|
86
|
-
|
|
87
|
-
|
|
96
|
+
agentId: w.agentId.slice(0, 200),
|
|
97
|
+
subAgentType: typeof w.subAgentType === "string"
|
|
98
|
+
? w.subAgentType.slice(0, 100)
|
|
99
|
+
: "general-purpose",
|
|
100
|
+
subTask: w.subTask.slice(0, 500),
|
|
101
|
+
resultSummary: w.resultSummary.slice(0, 1000),
|
|
88
102
|
success: typeof w.success === "boolean" ? w.success : false,
|
|
89
103
|
// v2.12: Declared outcome wins; derived from success when absent.
|
|
90
104
|
outcome: w.outcome === "success" || w.outcome === "partial" || w.outcome === "failed"
|
|
91
105
|
? w.outcome
|
|
92
106
|
: undefined,
|
|
93
|
-
discoveredConstraints:
|
|
94
|
-
? w.discoveredConstraints.filter((c) => typeof c === "string")
|
|
95
|
-
: [],
|
|
107
|
+
discoveredConstraints: boundedStringArray(w.discoveredConstraints, 50, 500),
|
|
96
108
|
};
|
|
97
109
|
});
|
|
98
110
|
}
|
|
99
|
-
// ── Self-evaluation extraction ───────────────────────────────────────────
|
|
100
|
-
/** Extract a structured SelfEvaluation from agent output text.
|
|
101
|
-
* Returns null if no valid self-eval block is found.
|
|
102
|
-
* The agent is instructed to output JSON between the delimiters. */
|
|
103
|
-
export function extractSelfEvaluation(text) {
|
|
104
|
-
return extractSelfEvaluationWithDiagnostics(text).selfEval;
|
|
105
|
-
}
|
|
106
111
|
/** v2.12: The effective round outcome — declared outcome wins, otherwise
|
|
107
112
|
* derived from `success`. "partial" can only be declared explicitly (never
|
|
108
113
|
* silently derived from success=false, which would quietly change the
|
|
@@ -119,85 +124,37 @@ export function effectiveOutcome(selfEval) {
|
|
|
119
124
|
export function effectiveSuccess(selfEval) {
|
|
120
125
|
return effectiveOutcome(selfEval) === "success";
|
|
121
126
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
let outcome = "partial";
|
|
130
|
-
// NOTE: \b is ASCII-word based, so CJK keywords are matched without it.
|
|
131
|
-
if (/(?:completed?|success|done|finished)\b|完成|成功/i.test(trimmed))
|
|
132
|
-
outcome = "success";
|
|
133
|
-
else if (/(?:failed?|error|cannot|unable)\b|失败|错误/i.test(trimmed))
|
|
134
|
-
outcome = "failed";
|
|
135
|
-
const summary = trimmed.length > 200 ? `${trimmed.slice(0, 197)}...` : trimmed;
|
|
136
|
-
return { outcome, summary };
|
|
137
|
-
}
|
|
138
|
-
/** v2.12: Extraction with a structured failure reason. Behavior identical
|
|
139
|
-
* to extractSelfEvaluation on success; the reason powers the stalled
|
|
140
|
-
* diagnostic message so the agent knows exactly what to fix. */
|
|
141
|
-
export function extractSelfEvaluationWithDiagnostics(text) {
|
|
142
|
-
const match = text.match(SELF_EVAL_REGEX);
|
|
143
|
-
if (!match)
|
|
144
|
-
return { selfEval: null, reason: "no_eval_block" };
|
|
145
|
-
let parsed;
|
|
146
|
-
try {
|
|
147
|
-
parsed = JSON.parse(match[1]);
|
|
148
|
-
}
|
|
149
|
-
catch {
|
|
150
|
-
return { selfEval: null, reason: "json_parse_failed" };
|
|
151
|
-
}
|
|
152
|
-
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
153
|
-
return { selfEval: null, reason: "json_parse_failed" };
|
|
154
|
-
}
|
|
155
|
-
const record = parsed;
|
|
156
|
-
if (typeof record.success !== "boolean" ||
|
|
157
|
-
typeof record.output_summary !== "string" ||
|
|
158
|
-
!Array.isArray(record.constraint_violations) ||
|
|
159
|
-
typeof record.should_continue !== "boolean") {
|
|
160
|
-
return { selfEval: null, reason: "missing_required_fields" };
|
|
161
|
-
}
|
|
162
|
-
return { selfEval: buildSelfEvaluation(record), reason: null };
|
|
163
|
-
}
|
|
164
|
-
/** v2.12: Field-level validation gaps — diagnostics only. Collects what
|
|
165
|
-
* buildSelfEvaluation silently tolerates, without changing acceptance. */
|
|
166
|
-
export function collectSelfEvalGaps(raw) {
|
|
167
|
-
const gaps = [];
|
|
168
|
-
if (typeof raw.success !== "boolean")
|
|
169
|
-
gaps.push({ field: "success", issue: "must be a boolean" });
|
|
170
|
-
if (typeof raw.output_summary !== "string") {
|
|
171
|
-
gaps.push({ field: "output_summary", issue: "must be a string" });
|
|
172
|
-
}
|
|
173
|
-
if (!Array.isArray(raw.constraint_violations)) {
|
|
174
|
-
gaps.push({ field: "constraint_violations", issue: "must be an array" });
|
|
127
|
+
export function validateCoreSelfEvaluation(raw) {
|
|
128
|
+
const missing = [];
|
|
129
|
+
const invalid = [];
|
|
130
|
+
const required = ["success", "output_summary", "constraint_violations", "should_continue"];
|
|
131
|
+
for (const field of required) {
|
|
132
|
+
if (!(field in raw))
|
|
133
|
+
missing.push(field);
|
|
175
134
|
}
|
|
176
|
-
if (typeof raw.
|
|
177
|
-
|
|
135
|
+
if ("success" in raw && typeof raw.success !== "boolean") {
|
|
136
|
+
invalid.push({ field: "success", expected: "boolean" });
|
|
178
137
|
}
|
|
179
|
-
if (
|
|
180
|
-
|
|
138
|
+
if ("output_summary" in raw && typeof raw.output_summary !== "string") {
|
|
139
|
+
invalid.push({ field: "output_summary", expected: "string" });
|
|
181
140
|
}
|
|
182
|
-
if (
|
|
183
|
-
|
|
141
|
+
if ("constraint_violations" in raw &&
|
|
142
|
+
(!Array.isArray(raw.constraint_violations) ||
|
|
143
|
+
raw.constraint_violations.some((value) => typeof value !== "string"))) {
|
|
144
|
+
invalid.push({ field: "constraint_violations", expected: "array of strings" });
|
|
184
145
|
}
|
|
185
|
-
if (
|
|
186
|
-
|
|
146
|
+
if ("should_continue" in raw && typeof raw.should_continue !== "boolean") {
|
|
147
|
+
invalid.push({ field: "should_continue", expected: "boolean" });
|
|
187
148
|
}
|
|
188
|
-
return
|
|
149
|
+
return { missing, invalid };
|
|
189
150
|
}
|
|
190
151
|
/** Build a SelfEvaluation from a parsed JSON object.
|
|
191
152
|
* Lenient parsing: missing optional fields get sensible defaults. */
|
|
192
153
|
export function buildSelfEvaluation(raw) {
|
|
193
154
|
const executionEvidence = parseExecutionEvidence(raw.execution_evidence);
|
|
194
|
-
const retractedConstraints =
|
|
195
|
-
? raw.retracted_constraints.filter((v) => typeof v === "string")
|
|
196
|
-
: [];
|
|
155
|
+
const retractedConstraints = boundedStringArray(raw.retracted_constraints, 50, 500);
|
|
197
156
|
const revisedCriteria = parseCriterionRevisions(raw.revised_success_criteria);
|
|
198
|
-
const wrongAssumptions =
|
|
199
|
-
? raw.wrong_assumptions.filter((v) => typeof v === "string")
|
|
200
|
-
: [];
|
|
157
|
+
const wrongAssumptions = boundedStringArray(raw.wrong_assumptions, 50, 500);
|
|
201
158
|
const workerResults = parseWorkerResults(raw.worker_results);
|
|
202
159
|
return makeSelfEvaluation({
|
|
203
160
|
success: typeof raw.success === "boolean" ? raw.success : false,
|
|
@@ -206,32 +163,20 @@ export function buildSelfEvaluation(raw) {
|
|
|
206
163
|
? raw.constraint_violations.filter((v) => typeof v === "string")
|
|
207
164
|
: [],
|
|
208
165
|
should_continue: typeof raw.should_continue === "boolean" ? raw.should_continue : true,
|
|
209
|
-
discovered_constraints:
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
objective_refinement: typeof raw.objective_refinement === "string"
|
|
213
|
-
? raw.objective_refinement
|
|
214
|
-
: "",
|
|
215
|
-
emerged_subtasks: Array.isArray(raw.emerged_subtasks)
|
|
216
|
-
? raw.emerged_subtasks.filter((v) => typeof v === "string")
|
|
217
|
-
: [],
|
|
166
|
+
discovered_constraints: boundedStringArray(raw.discovered_constraints, 50, 500),
|
|
167
|
+
objective_refinement: boundedString(raw.objective_refinement, 1000) ?? "",
|
|
168
|
+
emerged_subtasks: boundedStringArray(raw.emerged_subtasks, 50, 500),
|
|
218
169
|
execution_evidence: executionEvidence,
|
|
219
170
|
retracted_constraints: retractedConstraints,
|
|
220
171
|
revised_success_criteria: revisedCriteria,
|
|
221
172
|
wrong_assumptions: wrongAssumptions,
|
|
222
173
|
worker_results: workerResults,
|
|
223
174
|
compression_checkpoint: typeof raw.compression_checkpoint === "boolean" ? raw.compression_checkpoint : false,
|
|
224
|
-
checkpoint_label:
|
|
225
|
-
next_action:
|
|
226
|
-
completed_subtasks:
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
blocked_subtasks: Array.isArray(raw.blocked_subtasks)
|
|
230
|
-
? raw.blocked_subtasks.filter((v) => typeof v === "string")
|
|
231
|
-
: [],
|
|
232
|
-
canceled_subtasks: Array.isArray(raw.canceled_subtasks)
|
|
233
|
-
? raw.canceled_subtasks.filter((v) => typeof v === "string")
|
|
234
|
-
: [],
|
|
175
|
+
checkpoint_label: boundedString(raw.checkpoint_label, 200) ?? "",
|
|
176
|
+
next_action: boundedString(raw.next_action, 500),
|
|
177
|
+
completed_subtasks: boundedStringArray(raw.completed_subtasks, 50, 500),
|
|
178
|
+
blocked_subtasks: boundedStringArray(raw.blocked_subtasks, 50, 500),
|
|
179
|
+
canceled_subtasks: boundedStringArray(raw.canceled_subtasks, 50, 500),
|
|
235
180
|
stop_reason: raw.stop_reason === "gave_up" || raw.stop_reason === "blocked" || raw.stop_reason === "needs_human_input"
|
|
236
181
|
? raw.stop_reason
|
|
237
182
|
: undefined,
|
|
@@ -246,39 +191,58 @@ export function buildSelfEvaluation(raw) {
|
|
|
246
191
|
no_change_reason: typeof raw.no_change_reason === "string" && raw.no_change_reason.trim().length > 0
|
|
247
192
|
? raw.no_change_reason.slice(0, 200)
|
|
248
193
|
: undefined,
|
|
249
|
-
drift_clarification:
|
|
194
|
+
drift_clarification: boundedString(raw.drift_clarification, 1000),
|
|
250
195
|
prompt_requests: parsePromptRequests(raw.prompt_requests),
|
|
196
|
+
round_contract: parseRoundContract(raw.round_contract),
|
|
251
197
|
});
|
|
252
198
|
}
|
|
199
|
+
/** Parse a RoundContract object from raw JSON input. Lenient: non-string
|
|
200
|
+
* entries are dropped, strings are trimmed and capped. An object that IS
|
|
201
|
+
* present is returned even with empty arrays — an empty contract is a
|
|
202
|
+
* real declaration the round_underspecified check must see. Returns
|
|
203
|
+
* undefined only when the raw value is absent or not an object. */
|
|
204
|
+
export function parseRoundContract(raw) {
|
|
205
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
206
|
+
return undefined;
|
|
207
|
+
const obj = raw;
|
|
208
|
+
const capStrings = (value, max, cap) => Array.isArray(value)
|
|
209
|
+
? value
|
|
210
|
+
.filter((v) => typeof v === "string")
|
|
211
|
+
.map((v) => v.trim().slice(0, max))
|
|
212
|
+
.filter(Boolean)
|
|
213
|
+
.slice(0, cap)
|
|
214
|
+
: [];
|
|
215
|
+
return {
|
|
216
|
+
work_item: typeof obj.work_item === "string" && obj.work_item.trim().length > 0
|
|
217
|
+
? obj.work_item.trim().slice(0, 200)
|
|
218
|
+
: undefined,
|
|
219
|
+
done_when: capStrings(obj.done_when, 200, 20),
|
|
220
|
+
verification_plan: capStrings(obj.verification_plan, 200, 20),
|
|
221
|
+
scope: capStrings(obj.scope, 500, 50),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
253
224
|
/** Parse a PromptRequests object from raw JSON input.
|
|
254
225
|
* Lenient: missing or invalid fields get sensible defaults.
|
|
255
226
|
* Returns undefined if the raw value is absent or not an object,
|
|
256
|
-
* so makeSelfEvaluation can distinguish "not set" from "empty".
|
|
257
|
-
|
|
227
|
+
* so makeSelfEvaluation can distinguish "not set" from "empty".
|
|
228
|
+
* Exported for the engine's last_round_result rebuild — the MCP
|
|
229
|
+
* lifecycle assembles prompt_requests into the request, but every
|
|
230
|
+
* compile path funnels through engine.invokeLoopCompile, whose
|
|
231
|
+
* field-by-field reconstruction must preserve them (v3.3.1). */
|
|
232
|
+
export function parsePromptRequests(raw) {
|
|
258
233
|
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
259
234
|
return undefined;
|
|
260
235
|
const obj = raw;
|
|
261
|
-
const emphasize =
|
|
262
|
-
|
|
263
|
-
: [];
|
|
264
|
-
const validExpands = new Set([
|
|
265
|
-
"milestones", "sub_goals", "constraint_lifecycle",
|
|
266
|
-
"agent_trust", "progress", "loop_synthesis",
|
|
267
|
-
]);
|
|
268
|
-
const expand = Array.isArray(obj.expand)
|
|
269
|
-
? obj.expand.filter((v) => typeof v === "string" && validExpands.has(v))
|
|
270
|
-
: [];
|
|
271
|
-
const confusionPoints = Array.isArray(obj.confusion_points)
|
|
272
|
-
? obj.confusion_points.filter((v) => typeof v === "string").slice(0, 5)
|
|
273
|
-
: [];
|
|
236
|
+
const emphasize = boundedStringArray(obj.emphasize, 5, 500);
|
|
237
|
+
const confusionPoints = boundedStringArray(obj.confusion_points, 3, 200);
|
|
274
238
|
// Return undefined when all fields are empty — semantically equivalent
|
|
275
239
|
// to "not set", avoids carrying an empty object through the pipeline.
|
|
276
|
-
if (emphasize.length === 0 &&
|
|
240
|
+
if (emphasize.length === 0 && confusionPoints.length === 0) {
|
|
277
241
|
return undefined;
|
|
278
242
|
}
|
|
279
|
-
return { emphasize,
|
|
243
|
+
return { emphasize, confusion_points: confusionPoints };
|
|
280
244
|
}
|
|
281
|
-
//
|
|
282
|
-
//
|
|
283
|
-
//
|
|
245
|
+
// Free-text inference is intentionally absent. Invalid core fields are
|
|
246
|
+
// rejected before round advancement and may be resubmitted with the same
|
|
247
|
+
// roundId without changing session, gate, metric, or vault state.
|
|
284
248
|
//# sourceMappingURL=self-eval.js.map
|
package/dist/self-eval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-eval.js","sourceRoot":"","sources":["../src/self-eval.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"self-eval.js","sourceRoot":"","sources":["../src/self-eval.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,20 +30,65 @@ export declare const CHECK_RETRACT_FRESH_CONSTRAINT = "retract_fresh_constraint"
|
|
|
30
30
|
export declare const CHECK_EVIDENCE_INTEGRITY = "evidence_integrity";
|
|
31
31
|
export declare const CHECK_REQUIRED_COMMAND_FAILED = "required_command_failed";
|
|
32
32
|
export declare const CHECK_COMMAND_EVIDENCE_MISMATCH = "command_evidence_mismatch";
|
|
33
|
+
/** v3.3: Verification domain integrity — a command entrypoint (run-tests.sh,
|
|
34
|
+
* package.json, …) changed in the same round the command ran. The runtime
|
|
35
|
+
* executed a script the agent just rewrote, so the observation has no
|
|
36
|
+
* stable baseline: error. Test-file changes are normal dev activity (TDD):
|
|
37
|
+
* warn-only, see CHECK_TEST_FILES_MODIFIED. */
|
|
38
|
+
export declare const CHECK_VERIFICATION_ENTRYPOINT_MODIFIED = "verification_entrypoint_modified";
|
|
39
|
+
/** v3.3: Test files changed in the same round a verification command passed.
|
|
40
|
+
* Warn-only — the command result stays usable. */
|
|
41
|
+
export declare const CHECK_TEST_FILES_MODIFIED = "test_files_modified";
|
|
33
42
|
export declare const CHECK_INTENT_DRIFT = "intent_drift";
|
|
34
43
|
export declare const CHECK_SUBGOAL_DRIFT = "subgoal_drift";
|
|
35
44
|
export declare const CHECK_BACKTRACK_WORKSPACE_NOT_RESTORED = "backtrack_workspace_not_restored";
|
|
36
45
|
export declare const CHECK_CRITERIA_CLAIMS_UNVERIFIED = "criteria_claims_unverified";
|
|
37
|
-
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
export declare const
|
|
46
|
+
/** Contract proposed with an empty done_when — nothing is promised, so
|
|
47
|
+
* nothing can be verified at the boundary. Warn: the contract can be fixed
|
|
48
|
+
* by re-declaring next round. */
|
|
49
|
+
export declare const CHECK_ROUND_UNDERSPECIFIED = "round_underspecified";
|
|
50
|
+
/** done_when items exist but verification_plan is empty or names commands
|
|
51
|
+
* that are not configured AND enabled in policy.evidence.commands — the
|
|
52
|
+
* completion claims could never be machine-checked. Warn. */
|
|
53
|
+
export declare const CHECK_ROUND_UNVERIFIABLE = "round_unverifiable";
|
|
54
|
+
/** The round's actual git changes include files outside the ACTIVE
|
|
55
|
+
* contract's declared scope. Warn + drift_clarification exemption
|
|
56
|
+
* (R7-style). */
|
|
57
|
+
export declare const CHECK_ROUND_SCOPE_DRIFT = "round_scope_drift";
|
|
58
|
+
/** success claimed under the ACTIVE contract whose done_when items are
|
|
59
|
+
* either claimed met without machine-verified evidence or silently dropped
|
|
60
|
+
* (not in success_criteria_met NOR success_criteria_remaining). Error. */
|
|
61
|
+
export declare const CHECK_PREMATURE_BOUNDARY = "premature_boundary";
|
|
62
|
+
/** v3.5: Closing a Round Contract is a success-class claim and must be
|
|
63
|
+
* machine-backed. The eval's met claims satisfy every done_when of the
|
|
64
|
+
* ACTIVE contract but its verification_plan commands did not pass this
|
|
65
|
+
* round. Error; warn under evidence.machine_backed_success "warn"; never
|
|
66
|
+
* downgraded by no_change_reason (all done_when met contradicts "no
|
|
67
|
+
* change"). Fail-open: plan names no longer configured+enabled are not
|
|
68
|
+
* required (cannot observe). */
|
|
69
|
+
export declare const CHECK_CONTRACT_COMPLETION_UNVERIFIED = "contract_completion_unverified";
|
|
70
|
+
/** v3.5: The ACTIVE contract is still open (not completed, not blocked)
|
|
71
|
+
* while a different contract was proposed — the proposal is ignored until
|
|
72
|
+
* the active one closes. Warn: the walker still ignores it; this only
|
|
73
|
+
* surfaces the otherwise-silent state. */
|
|
74
|
+
export declare const CHECK_CONTRACT_PREMATURE = "contract_premature";
|
|
41
75
|
/** Extract the round number from a vault entry's loop_lineage.
|
|
42
76
|
* Returns 0 if the entry has no lineage or no round field.
|
|
43
77
|
* In practice, persistLoopLineage always writes round ≥ 1, so 0
|
|
44
78
|
* unambiguously means "not a valid round entry" in this context.
|
|
45
79
|
* Exported for reuse by enforcement-gate.ts. */
|
|
46
80
|
export declare function entryRound(entry: VaultEntry): number;
|
|
81
|
+
/** Normalize a contract scope entry: backslashes → forward slashes, strip
|
|
82
|
+
* leading "./", trim, strip trailing slashes. "." / "./" / "" normalize to
|
|
83
|
+
* "" = the repository root (everything is in scope). */
|
|
84
|
+
export declare function normalizeScopeEntry(path: string): string;
|
|
85
|
+
/** Whether a git-diff file path falls inside any declared scope entry:
|
|
86
|
+
* exact file match, or the file lives under a declared directory. The ""
|
|
87
|
+
* entry (repo root) matches everything. Git paths are always workspace-
|
|
88
|
+
* relative with forward slashes. */
|
|
89
|
+
export declare function isFileInScope(file: string, scope: string[]): boolean;
|
|
90
|
+
/** Git-diff files outside the declared scope (the round_scope_drift signal). */
|
|
91
|
+
export declare function collectOutOfScopeFiles(files: string[], scope: string[]): string[];
|
|
47
92
|
export interface EvidenceStatus {
|
|
48
93
|
/** Whether this round produced a machine-verified observation. */
|
|
49
94
|
providerStatus: "verified" | "unavailable" | "absent";
|
|
@@ -61,13 +106,7 @@ export interface EvidenceStatus {
|
|
|
61
106
|
* of letting evidence-dependent checks silently disappear when snapshots are
|
|
62
107
|
* missing — the fix for the "weakest when it matters most" gap. */
|
|
63
108
|
export declare function deriveEvidenceStatus(selfEval: SelfEvaluation, evidenceSnapshots: ProviderSnapshot[]): EvidenceStatus;
|
|
64
|
-
/**
|
|
65
|
-
* each of the last `lookback` committed rounds, rebuilt from the feedback
|
|
66
|
-
* entries' roundEvidence snapshots (already persisted at commit). Returns
|
|
67
|
-
* null when fewer than `lookback` rounds carry git snapshots — the machine
|
|
68
|
-
* signal is unavailable and callers (R4/R5 on the heuristic path) keep
|
|
69
|
-
* their legacy skip. The snapshot shape is parsed defensively here because
|
|
70
|
-
* this module must not import round-transaction (import cycle). */
|
|
109
|
+
/** Per-round machine progress over decoded committed history. */
|
|
71
110
|
export declare function machineProgressSeries(vaultEntries: VaultEntry[], currentRound: number, lookback: number): boolean[] | null;
|
|
72
111
|
interface ParsedTestCounts {
|
|
73
112
|
passed: number;
|
|
@@ -89,7 +128,9 @@ export declare function parseTestOutput(stdout: string): ParsedTestCounts | null
|
|
|
89
128
|
*
|
|
90
129
|
* @param selfEval The agent's self-evaluation for the current round.
|
|
91
130
|
* @param currentRound The current round number (1-based).
|
|
92
|
-
* @param vaultEntries Vault entries for this loop (
|
|
131
|
+
* @param vaultEntries Vault entries for this loop (committed lineage
|
|
132
|
+
* entries AND :feedback entries — the feedback
|
|
133
|
+
* entries feed the ACTIVE-contract derivation).
|
|
93
134
|
* @param prevSelfEval The agent's self-evaluation from the previous round
|
|
94
135
|
* (null for round 1).
|
|
95
136
|
* @param evidenceSnapshots v1.18: Evidence snapshots from configured providers.
|
|
@@ -1 +1 @@
|
|
|
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,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"verification-gate.d.ts","sourceRoot":"","sources":["../src/verification-gate.ts"],"names":[],"mappings":"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"}
|