loopforge 2.11.0 → 3.2.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/README.md +4 -4
- package/dist/audit.d.ts +50 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +158 -0
- package/dist/audit.js.map +1 -0
- package/dist/canonical-state.d.ts +21 -9
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +34 -16
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +16 -6
- package/dist/cli.js.map +1 -1
- package/dist/cognitive-governance.d.ts +40 -0
- package/dist/cognitive-governance.d.ts.map +1 -0
- package/dist/cognitive-governance.js +126 -0
- package/dist/cognitive-governance.js.map +1 -0
- package/dist/enforcement-gate.d.ts +8 -3
- package/dist/enforcement-gate.d.ts.map +1 -1
- package/dist/enforcement-gate.js +419 -92
- package/dist/enforcement-gate.js.map +1 -1
- package/dist/engine.d.ts +47 -7
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +303 -60
- package/dist/engine.js.map +1 -1
- package/dist/evidence-claims.d.ts +50 -0
- package/dist/evidence-claims.d.ts.map +1 -0
- package/dist/evidence-claims.js +134 -0
- package/dist/evidence-claims.js.map +1 -0
- package/dist/generate-schema.js +6 -1
- package/dist/generate-schema.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +41 -3
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +310 -38
- package/dist/loop-compiler.js.map +1 -1
- package/dist/loop-projection.d.ts +26 -0
- package/dist/loop-projection.d.ts.map +1 -0
- package/dist/loop-projection.js +142 -0
- package/dist/loop-projection.js.map +1 -0
- package/dist/loop-store.d.ts +91 -41
- package/dist/loop-store.d.ts.map +1 -1
- package/dist/loop-store.js +243 -173
- package/dist/loop-store.js.map +1 -1
- package/dist/mcp/round-lifecycle.d.ts +216 -0
- package/dist/mcp/round-lifecycle.d.ts.map +1 -0
- package/dist/mcp/round-lifecycle.js +926 -0
- package/dist/mcp/round-lifecycle.js.map +1 -0
- package/dist/mcp/server.d.ts +3 -2
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +65 -9
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +47 -139
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +284 -784
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/tools.d.ts +23 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +270 -79
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy-metrics.d.ts +11 -0
- package/dist/policy-metrics.d.ts.map +1 -1
- package/dist/policy-metrics.js +118 -21
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +26 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +13 -2
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +34 -1
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +320 -42
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/protocol.d.ts +169 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +39 -0
- package/dist/protocol.js.map +1 -1
- package/dist/replay.d.ts +5 -5
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +9 -8
- package/dist/replay.js.map +1 -1
- package/dist/round-coordinator.d.ts +6 -3
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +38 -19
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +9 -4
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +15 -7
- package/dist/round-driver.js.map +1 -1
- package/dist/round-transaction.d.ts +7 -3
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +93 -88
- package/dist/round-transaction.js.map +1 -1
- package/dist/self-eval.d.ts +31 -1
- package/dist/self-eval.d.ts.map +1 -1
- package/dist/self-eval.js +115 -12
- package/dist/self-eval.js.map +1 -1
- package/dist/storage.d.ts +3 -4
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +5 -4
- package/dist/storage.js.map +1 -1
- package/dist/token-utils.d.ts +20 -7
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +68 -9
- package/dist/token-utils.js.map +1 -1
- package/dist/verification-gate.d.ts +54 -2
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +433 -25
- package/dist/verification-gate.js.map +1 -1
- package/loop_policy.json +35 -8
- package/package.json +3 -2
- package/skills/perception/SKILL.md +24 -6
- 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/policy-metrics.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** In-process policy effectiveness metrics with no runtime dependency. */
|
|
2
2
|
import type { RoundProcessResult } from "./round-coordinator.js";
|
|
3
|
+
import type { VaultEntry } from "./loop-store.js";
|
|
3
4
|
export interface PolicyMetricsSnapshot {
|
|
4
5
|
loopId?: string;
|
|
5
6
|
roundAttempts: number;
|
|
@@ -49,6 +50,16 @@ export declare class PolicyMetricsCollector {
|
|
|
49
50
|
snapshot(loopId?: string): PolicyMetricsSnapshot;
|
|
50
51
|
reset(loopId?: string): void;
|
|
51
52
|
}
|
|
53
|
+
/** v2.12: Derive a metrics snapshot from durable vault entries (3.x A4 port).
|
|
54
|
+
* Committed round decisions, verification flags, and prompt levels are
|
|
55
|
+
* replayed into the same counters the live collector maintains, so a
|
|
56
|
+
* restarted process reports nonzero metrics for persisted loops. */
|
|
57
|
+
export declare function derivePolicyMetrics(loopId: string, entries: VaultEntry[]): PolicyMetricsSnapshot;
|
|
58
|
+
/** v2.12: Fold live in-process observations over a vault-derived snapshot
|
|
59
|
+
* without double-counting committed rounds — the derived snapshot already
|
|
60
|
+
* includes rounds this process committed. Only non-durable fields are
|
|
61
|
+
* overlaid: evidence captures, vault write errors, replays, rejections. */
|
|
62
|
+
export declare function mergePolicyMetrics(derived: PolicyMetricsSnapshot, live: PolicyMetricsSnapshot): PolicyMetricsSnapshot;
|
|
52
63
|
export declare const policyMetrics: PolicyMetricsCollector;
|
|
53
64
|
export declare function getPolicyMetrics(loopId?: string): PolicyMetricsSnapshot;
|
|
54
65
|
export declare function resetPolicyMetrics(loopId?: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-metrics.d.ts","sourceRoot":"","sources":["../src/policy-metrics.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"policy-metrics.d.ts","sourceRoot":"","sources":["../src/policy-metrics.ts"],"names":[],"mappings":"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"}
|
package/dist/policy-metrics.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** In-process policy effectiveness metrics with no runtime dependency. */
|
|
2
|
+
import { isRecord } from "./token-utils.js";
|
|
2
3
|
function empty(loopId) {
|
|
3
4
|
return {
|
|
4
5
|
loopId,
|
|
@@ -118,27 +119,7 @@ export class PolicyMetricsCollector {
|
|
|
118
119
|
}
|
|
119
120
|
snapshot(loopId) {
|
|
120
121
|
const source = loopId ? this.loops.get(loopId) ?? empty(loopId) : this.aggregate;
|
|
121
|
-
|
|
122
|
-
const evidence = source.evidenceCaptures;
|
|
123
|
-
const strategyEffectiveness = {};
|
|
124
|
-
for (const [key, value] of Object.entries(source.strategyEffectiveness)) {
|
|
125
|
-
strategyEffectiveness[key] = {
|
|
126
|
-
...value,
|
|
127
|
-
successRate: value.attempts === 0 ? 0 : value.successes / value.attempts,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
return {
|
|
131
|
-
...source,
|
|
132
|
-
verificationFlags: { ...source.verificationFlags },
|
|
133
|
-
enforcementReasons: { ...source.enforcementReasons },
|
|
134
|
-
evidenceOutcomesByProvider: { ...source.evidenceOutcomesByProvider },
|
|
135
|
-
levels: { ...source.levels },
|
|
136
|
-
strategyEffectiveness,
|
|
137
|
-
acceptanceRate: attempts === 0 ? 0 : source.committedRounds / attempts,
|
|
138
|
-
evidenceAvailabilityRate: evidence === 0 ? 0 : source.evidenceAvailable / evidence,
|
|
139
|
-
// evidenceLatencyMs is a raw sum; derive the average for consumers
|
|
140
|
-
evidenceLatencyAvgMs: evidence === 0 ? 0 : source.evidenceLatencyMs / evidence,
|
|
141
|
-
};
|
|
122
|
+
return snapshotFrom(source);
|
|
142
123
|
}
|
|
143
124
|
reset(loopId) {
|
|
144
125
|
if (loopId) {
|
|
@@ -149,6 +130,122 @@ export class PolicyMetricsCollector {
|
|
|
149
130
|
this.aggregate = empty();
|
|
150
131
|
}
|
|
151
132
|
}
|
|
133
|
+
/** Render a mutable counter set as a public snapshot with derived rates. */
|
|
134
|
+
function snapshotFrom(source) {
|
|
135
|
+
const attempts = source.roundAttempts;
|
|
136
|
+
const evidence = source.evidenceCaptures;
|
|
137
|
+
const strategyEffectiveness = {};
|
|
138
|
+
for (const [key, value] of Object.entries(source.strategyEffectiveness)) {
|
|
139
|
+
strategyEffectiveness[key] = {
|
|
140
|
+
...value,
|
|
141
|
+
successRate: value.attempts === 0 ? 0 : value.successes / value.attempts,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
...source,
|
|
146
|
+
verificationFlags: { ...source.verificationFlags },
|
|
147
|
+
enforcementReasons: { ...source.enforcementReasons },
|
|
148
|
+
evidenceOutcomesByProvider: { ...source.evidenceOutcomesByProvider },
|
|
149
|
+
levels: { ...source.levels },
|
|
150
|
+
strategyEffectiveness,
|
|
151
|
+
acceptanceRate: attempts === 0 ? 0 : source.committedRounds / attempts,
|
|
152
|
+
evidenceAvailabilityRate: evidence === 0 ? 0 : source.evidenceAvailable / evidence,
|
|
153
|
+
// evidenceLatencyMs is a raw sum; derive the average for consumers
|
|
154
|
+
evidenceLatencyAvgMs: evidence === 0 ? 0 : source.evidenceLatencyMs / evidence,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/** v2.12: Derive a metrics snapshot from durable vault entries (3.x A4 port).
|
|
158
|
+
* Committed round decisions, verification flags, and prompt levels are
|
|
159
|
+
* replayed into the same counters the live collector maintains, so a
|
|
160
|
+
* restarted process reports nonzero metrics for persisted loops. */
|
|
161
|
+
export function derivePolicyMetrics(loopId, entries) {
|
|
162
|
+
const metric = empty(loopId);
|
|
163
|
+
for (const entry of entries) {
|
|
164
|
+
const taskId = String(entry.task_id ?? "");
|
|
165
|
+
if (!taskId.startsWith(`loop:${loopId}:r`) || !taskId.endsWith(":feedback"))
|
|
166
|
+
continue;
|
|
167
|
+
if (!isRecord(entry.loop_lineage))
|
|
168
|
+
continue;
|
|
169
|
+
const transaction = entry.loop_lineage.round_transaction;
|
|
170
|
+
if (!isRecord(transaction) || !isRecord(transaction.snapshot))
|
|
171
|
+
continue;
|
|
172
|
+
const snapshot = transaction.snapshot;
|
|
173
|
+
const result = isRecord(snapshot.result) ? snapshot.result : null;
|
|
174
|
+
if (!result)
|
|
175
|
+
continue;
|
|
176
|
+
// v2.14: rounds committed with action="backtrack" were rolled back and
|
|
177
|
+
// are not part of the loop's committed progress — exclude them from
|
|
178
|
+
// committed-round statistics (their redo, when it commits, replaces
|
|
179
|
+
// the same round document).
|
|
180
|
+
if (result.action === "backtrack")
|
|
181
|
+
continue;
|
|
182
|
+
metric.roundAttempts++;
|
|
183
|
+
metric.committedRounds++;
|
|
184
|
+
if (result.action === "stop")
|
|
185
|
+
metric.stoppedRounds++;
|
|
186
|
+
if (result.action === "terminate")
|
|
187
|
+
metric.terminatedRounds++;
|
|
188
|
+
if (result.roundSuccess === true)
|
|
189
|
+
metric.successfulRounds++;
|
|
190
|
+
if (result.gateContradicted === true)
|
|
191
|
+
metric.contradictedRounds++;
|
|
192
|
+
if (Array.isArray(result.verificationFlags)) {
|
|
193
|
+
for (const flag of result.verificationFlags) {
|
|
194
|
+
if (isRecord(flag) && typeof flag.check === "string") {
|
|
195
|
+
increment(metric.verificationFlags, flag.check);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (typeof result.enforcementReason === "string" && result.enforcementReason.length > 0) {
|
|
200
|
+
increment(metric.enforcementReasons, result.enforcementReason);
|
|
201
|
+
}
|
|
202
|
+
const artifact = isRecord(snapshot.promptArtifact) ? snapshot.promptArtifact : null;
|
|
203
|
+
if (artifact && typeof artifact.level === "string") {
|
|
204
|
+
increment(metric.levels, artifact.level);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return snapshotFrom(metric);
|
|
208
|
+
}
|
|
209
|
+
/** v2.12: Fold live in-process observations over a vault-derived snapshot
|
|
210
|
+
* without double-counting committed rounds — the derived snapshot already
|
|
211
|
+
* includes rounds this process committed. Only non-durable fields are
|
|
212
|
+
* overlaid: evidence captures, vault write errors, replays, rejections. */
|
|
213
|
+
export function mergePolicyMetrics(derived, live) {
|
|
214
|
+
const merged = {
|
|
215
|
+
loopId: derived.loopId,
|
|
216
|
+
// v2.14: attempts = committed rounds (durable, all processes) + this
|
|
217
|
+
// process's uncommitted decisions. Rejects and terminates never commit
|
|
218
|
+
// (round-transaction early-returns), so they exist only in the live
|
|
219
|
+
// snapshot — derived can never see them. Previously roundAttempts came
|
|
220
|
+
// from derived alone, making acceptanceRate read 1.0 after any
|
|
221
|
+
// rejections (3 rejects + 1 commit → 1/1 instead of 1/4).
|
|
222
|
+
roundAttempts: derived.roundAttempts + live.rejectedAttempts + live.terminatedRounds,
|
|
223
|
+
committedRounds: derived.committedRounds,
|
|
224
|
+
rejectedAttempts: live.rejectedAttempts,
|
|
225
|
+
// v2.14: terminates never commit, so derived.terminatedRounds is
|
|
226
|
+
// structurally 0; the live count is the only source. Max keeps the
|
|
227
|
+
// count honest if a future version commits terminal rounds.
|
|
228
|
+
terminatedRounds: Math.max(derived.terminatedRounds, live.terminatedRounds),
|
|
229
|
+
stoppedRounds: derived.stoppedRounds,
|
|
230
|
+
replayedTransactions: live.replayedTransactions,
|
|
231
|
+
successfulRounds: derived.successfulRounds,
|
|
232
|
+
contradictedRounds: derived.contradictedRounds,
|
|
233
|
+
verificationFlags: { ...derived.verificationFlags },
|
|
234
|
+
enforcementReasons: { ...derived.enforcementReasons },
|
|
235
|
+
evidenceOutcomesByProvider: { ...live.evidenceOutcomesByProvider },
|
|
236
|
+
evidenceCaptures: live.evidenceCaptures,
|
|
237
|
+
evidenceAvailable: live.evidenceAvailable,
|
|
238
|
+
evidenceUnavailable: live.evidenceUnavailable,
|
|
239
|
+
evidenceFailures: live.evidenceFailures,
|
|
240
|
+
evidenceTimeouts: live.evidenceTimeouts,
|
|
241
|
+
evidenceLatencyMs: live.evidenceLatencyMs,
|
|
242
|
+
vaultWriteErrors: live.vaultWriteErrors,
|
|
243
|
+
vaultWriteReasons: { ...live.vaultWriteReasons },
|
|
244
|
+
levels: { ...derived.levels },
|
|
245
|
+
strategyEffectiveness: { ...derived.strategyEffectiveness },
|
|
246
|
+
};
|
|
247
|
+
return snapshotFrom(merged);
|
|
248
|
+
}
|
|
152
249
|
export const policyMetrics = new PolicyMetricsCollector();
|
|
153
250
|
export function getPolicyMetrics(loopId) {
|
|
154
251
|
return policyMetrics.snapshot(loopId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-metrics.js","sourceRoot":"","sources":["../src/policy-metrics.ts"],"names":[],"mappings":"AAAA,0EAA0E;
|
|
1
|
+
{"version":3,"file":"policy-metrics.js","sourceRoot":"","sources":["../src/policy-metrics.ts"],"names":[],"mappings":"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"}
|
package/dist/policy.d.ts
CHANGED
|
@@ -12,6 +12,13 @@ export interface SummaryPolicy {
|
|
|
12
12
|
/** v2.1: Maximum number of milestone summaries to accumulate.
|
|
13
13
|
* Oldest milestones are evicted when the cap is exceeded. */
|
|
14
14
|
max_milestones: number;
|
|
15
|
+
/** v3.0.1: L1 milestone sampling — when milestones exceed max_milestones,
|
|
16
|
+
* keep this many of the OLDEST milestones as history anchors. The same
|
|
17
|
+
* count of the NEWEST is always kept; the middle is sampled evenly. */
|
|
18
|
+
milestone_head_count: number;
|
|
19
|
+
/** v3.0.1: L1 milestone sampling — this many of the NEWEST milestones are
|
|
20
|
+
* always kept when the cap is exceeded. */
|
|
21
|
+
milestone_tail_count: number;
|
|
15
22
|
/** v2.1: Enable the loop_synthesis paragraph in L2 prompts and state files. */
|
|
16
23
|
enable_loop_synthesis: boolean;
|
|
17
24
|
}
|
|
@@ -76,6 +83,10 @@ export interface PromptPolicy {
|
|
|
76
83
|
* rendered. Default: true. Set to false to restore pre-v2.8 L2
|
|
77
84
|
* behavior. */
|
|
78
85
|
l2_pointer_enabled: boolean;
|
|
86
|
+
/** v3.2: Collapse unchanged L1 content (vs the previous round's persisted
|
|
87
|
+
* presentation) into one-line state-file pointers. Default: true.
|
|
88
|
+
* Set to false to restore pre-v3.2 full L1 rendering. */
|
|
89
|
+
l1_collapse_enabled: boolean;
|
|
79
90
|
/** v2.9: Max emphasize items when level is L2. Default: 5. */
|
|
80
91
|
max_emphasize_l2: number;
|
|
81
92
|
/** v2.9: Max emphasize items when level is L1. Default: 3. */
|
|
@@ -84,6 +95,9 @@ export interface PromptPolicy {
|
|
|
84
95
|
max_expand_l1: number;
|
|
85
96
|
/** v2.9: Max confusion points rendered. Default: 3. */
|
|
86
97
|
max_confusion_points: number;
|
|
98
|
+
/** v2.14: Jaccard threshold for pointing a confusion point at its
|
|
99
|
+
* best-matching state section. Default: 0.15 (15%). */
|
|
100
|
+
confusion_section_threshold: number;
|
|
87
101
|
base_prompt_version: string;
|
|
88
102
|
}
|
|
89
103
|
export interface BackendPolicy {
|
|
@@ -97,6 +111,9 @@ export interface EvolutionPolicy {
|
|
|
97
111
|
progress_stall_threshold: number;
|
|
98
112
|
progress_stall_rounds: number;
|
|
99
113
|
progress_mismatch_threshold: number;
|
|
114
|
+
/** v2.14: Jaccard threshold for task continuity in checkLoopHealth —
|
|
115
|
+
* below this, the loop is considered drifting. Default: 0.2. */
|
|
116
|
+
task_continuity_threshold: number;
|
|
100
117
|
/** v2.1: Jaccard token similarity threshold for intent-action drift
|
|
101
118
|
* detection. When the previous round's next_action and the current
|
|
102
119
|
* round's output_summary have similarity below this threshold, a
|
|
@@ -143,7 +160,6 @@ export interface EvolutionPolicy {
|
|
|
143
160
|
constraint_id_enabled: boolean;
|
|
144
161
|
}
|
|
145
162
|
export interface CheckpointPolicy {
|
|
146
|
-
max_carried_constraints: number;
|
|
147
163
|
outcome_max_chars: number;
|
|
148
164
|
}
|
|
149
165
|
/** Human-readable derived state view. JSON LoopStore documents remain truth. */
|
|
@@ -174,6 +190,11 @@ export interface McpPolicy {
|
|
|
174
190
|
session_lease_ms: number;
|
|
175
191
|
session_lease_renew_interval_ms: number;
|
|
176
192
|
}
|
|
193
|
+
/** v2.12: User/Agent gate governance. The gate is a record layer — it never
|
|
194
|
+
* blocks the verify→enforce→stop decision flow. */
|
|
195
|
+
export interface GatePolicy {
|
|
196
|
+
enabled: boolean;
|
|
197
|
+
}
|
|
177
198
|
export interface LoopPolicy {
|
|
178
199
|
version: string;
|
|
179
200
|
constraints: ConstraintsPolicy;
|
|
@@ -186,6 +207,7 @@ export interface LoopPolicy {
|
|
|
186
207
|
state_file: StateFilePolicy;
|
|
187
208
|
evidence: EvidencePolicy;
|
|
188
209
|
mcp: McpPolicy;
|
|
210
|
+
gate: GatePolicy;
|
|
189
211
|
}
|
|
190
212
|
export declare const DEFAULT_POLICY: LoopPolicy;
|
|
191
213
|
/** Write a full default `loop_policy.json` to the target directory.
|
|
@@ -203,6 +225,9 @@ export declare function writeDefaultPolicy(targetDir: string, force?: boolean):
|
|
|
203
225
|
export declare function loadPolicy(path?: string): LoopPolicy;
|
|
204
226
|
export declare function getPolicy(path?: string): LoopPolicy;
|
|
205
227
|
export declare function resetPolicy(): void;
|
|
228
|
+
/** v3.2: Test-only injection — mirrors resetPolicy so tests can exercise a
|
|
229
|
+
* specific policy configuration (e.g. l1_collapse_enabled=false). */
|
|
230
|
+
export declare function setPolicyForTest(next: LoopPolicy): void;
|
|
206
231
|
export declare function validateLoopId(loopId: string): void;
|
|
207
232
|
export declare function resolveStateDirectory(workspaceRoot: string, configuredDirectory: string): string;
|
|
208
233
|
export declare function writeStateFile(loopId: string, content: string | undefined): void;
|
package/dist/policy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAe7C,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;iDAE6C;IAC7C,kBAAkB,EAAE,MAAM,CAAC;IAC3B;kEAC8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB;;;;yEAIqE;IACrE,8BAA8B,EAAE,OAAO,CAAC;IACxC;;;wEAGoE;IACpE,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;oCAEgC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;yBAEqB;IACrB,8BAA8B,EAAE,OAAO,CAAC;IACxC;;;;;oDAKgD;IAChD,8BAA8B,EAAE,MAAM,CAAC;IACvC;;;;0EAIsE;IACtE,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IAChD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB;gFAC4E;IAC5E,mBAAmB,EAAE,OAAO,CAAC;IAC7B,mEAAmE;IACnE,wBAAwB,EAAE,MAAM,CAAC;IACjC,8DAA8D;IAC9D,4BAA4B,EAAE,MAAM,CAAC;IACrC,qEAAqE;IACrE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,0BAA0B,EAAE,MAAM,CAAC;IACnC;;;;oBAIgB;IAChB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,oCAAoC,EAAE,MAAM,CAAC;IAC7C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2BAA2B,EAAE,MAAM,CAAC;IACpC;;;4DAGwD;IACxD,sBAAsB,EAAE,MAAM,CAAC;IAC/B;wDACoD;IACpD,+BAA+B,EAAE,MAAM,CAAC;IACxC;sEACkE;IAClE,wBAAwB,EAAE,MAAM,CAAC;IACjC;gFAC4E;IAC5E,uBAAuB,EAAE,MAAM,CAAC;IAChC;4EACwE;IACxE,uBAAuB,EAAE,MAAM,CAAC;IAChC;6DACyD;IACzD,kCAAkC,EAAE,MAAM,CAAC;IAC3C;gDAC4C;IAC5C,0BAA0B,EAAE,MAAM,CAAC;IACnC;;wBAEoB;IACpB,iCAAiC,EAAE,MAAM,CAAC;IAC1C;0DACsD;IACtD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,2BAA2B,EAAE,MAAM,CAAC;IACpC;;+CAE2C;IAC3C,0BAA0B,EAAE,MAAM,CAAC;IACnC;;;;uDAImD;IACnD,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
package/dist/policy.js
CHANGED
|
@@ -5,7 +5,7 @@ import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
|
5
5
|
export const DEFAULT_POLICY = {
|
|
6
6
|
version: "2",
|
|
7
7
|
constraints: { retire_window: 3 },
|
|
8
|
-
summary: { window: 5, health_check_interval: 1, milestone_interval: 20, max_milestones: 10, enable_loop_synthesis: true },
|
|
8
|
+
summary: { window: 5, health_check_interval: 1, milestone_interval: 20, max_milestones: 10, milestone_head_count: 3, milestone_tail_count: 3, enable_loop_synthesis: true },
|
|
9
9
|
engine: { feedback_flush_interval: 5, max_circuit_breaker: 3, max_rounds: 20, enforcement_escalation_enabled: true, backtrack_enabled: true, backtrack_max_depth: 3, backtrack_preserve_discoveries: true, drift_clarification_max_streak: 3, backtrack_auto_restore: false },
|
|
10
10
|
prompt: {
|
|
11
11
|
injection_mode: "adaptive",
|
|
@@ -19,10 +19,12 @@ export const DEFAULT_POLICY = {
|
|
|
19
19
|
l2_adaptive_max_chars: 40000,
|
|
20
20
|
l2_adaptive_subgoal_factor: 100,
|
|
21
21
|
l2_pointer_enabled: true,
|
|
22
|
+
l1_collapse_enabled: true,
|
|
22
23
|
max_emphasize_l2: 5,
|
|
23
24
|
max_emphasize_l1: 3,
|
|
24
25
|
max_expand_l1: 1,
|
|
25
26
|
max_confusion_points: 3,
|
|
27
|
+
confusion_section_threshold: 0.15,
|
|
26
28
|
base_prompt_version: "2.0.0",
|
|
27
29
|
},
|
|
28
30
|
backend: { root_dir: ".loopforge" },
|
|
@@ -33,6 +35,7 @@ export const DEFAULT_POLICY = {
|
|
|
33
35
|
progress_stall_threshold: 0.05,
|
|
34
36
|
progress_stall_rounds: 2,
|
|
35
37
|
progress_mismatch_threshold: 0.3,
|
|
38
|
+
task_continuity_threshold: 0.2,
|
|
36
39
|
intent_drift_threshold: 0.15,
|
|
37
40
|
criteria_dedup_threshold: 0.45,
|
|
38
41
|
subgoal_dedup_threshold: 0.6,
|
|
@@ -47,7 +50,7 @@ export const DEFAULT_POLICY = {
|
|
|
47
50
|
constraint_inactive_rounds: 15,
|
|
48
51
|
constraint_id_enabled: true,
|
|
49
52
|
},
|
|
50
|
-
checkpoint: {
|
|
53
|
+
checkpoint: { outcome_max_chars: 200 },
|
|
51
54
|
state_file: {
|
|
52
55
|
enabled: true,
|
|
53
56
|
directory: ".loopforge/state",
|
|
@@ -59,6 +62,9 @@ export const DEFAULT_POLICY = {
|
|
|
59
62
|
session_lease_ms: 30_000,
|
|
60
63
|
session_lease_renew_interval_ms: 10_000,
|
|
61
64
|
},
|
|
65
|
+
gate: {
|
|
66
|
+
enabled: true,
|
|
67
|
+
},
|
|
62
68
|
};
|
|
63
69
|
/** Write a full default `loop_policy.json` to the target directory.
|
|
64
70
|
*
|
|
@@ -124,6 +130,11 @@ export function getPolicy(path) {
|
|
|
124
130
|
export function resetPolicy() {
|
|
125
131
|
policy = null;
|
|
126
132
|
}
|
|
133
|
+
/** v3.2: Test-only injection — mirrors resetPolicy so tests can exercise a
|
|
134
|
+
* specific policy configuration (e.g. l1_collapse_enabled=false). */
|
|
135
|
+
export function setPolicyForTest(next) {
|
|
136
|
+
policy = next;
|
|
137
|
+
}
|
|
127
138
|
const LOOP_ID_RE = /^[a-zA-Z0-9][-a-zA-Z0-9_:.]{0,127}$/;
|
|
128
139
|
export function validateLoopId(loopId) {
|
|
129
140
|
if (typeof loopId !== "string" || !loopId) {
|
package/dist/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* external Agent. Mandatory task, hard-constraint, and verification sections
|
|
5
5
|
* are never truncated; budgets are soft and overflow is recorded.
|
|
6
6
|
*/
|
|
7
|
-
import type { CanonicalLoopState } from "./canonical-state.js";
|
|
7
|
+
import type { CanonicalLoopState, PresentedStateSnapshot } from "./canonical-state.js";
|
|
8
8
|
import type { PromptArtifact, PromptRequests } from "./protocol.js";
|
|
9
|
+
import type { ConstraintMeta, MilestoneSummary, SubGoal } from "./protocol.js";
|
|
9
10
|
import type { PromptLevel, PromptLevelReason } from "./prompt-policy.js";
|
|
10
11
|
export declare const PROMPT_ARTIFACT_SCHEMA_VERSION: 1;
|
|
11
12
|
export declare const BASE_PROMPT_VERSION = "2.0.0";
|
|
@@ -27,6 +28,38 @@ export interface PromptAssemblyInput {
|
|
|
27
28
|
fullStateMarkdown?: string;
|
|
28
29
|
/** v2.9: Model's information needs for this prompt. L0: ignored. */
|
|
29
30
|
promptRequests?: PromptRequests;
|
|
31
|
+
/** v3.2: Previous round's L1 presentation (persisted diff baseline).
|
|
32
|
+
* When present, L1 collapses unchanged content against it. */
|
|
33
|
+
presentedBaseline?: PresentedStateSnapshot | null;
|
|
30
34
|
}
|
|
35
|
+
/** v3.2: The actionable instruction for a verification check. Exported for
|
|
36
|
+
* the coverage test (which imports the CHECK_* constants). */
|
|
37
|
+
export declare function verificationActionFor(check: string): string;
|
|
38
|
+
/** v3.2: Collapse only when at least this many items are unchanged — a tiny
|
|
39
|
+
* unchanged set renders in full (nothing worth saving). */
|
|
40
|
+
export declare const COLLAPSE_MIN_UNCHANGED = 3;
|
|
41
|
+
/** v3.2: Recent-rounds items kept in full when older ones collapse. */
|
|
42
|
+
export declare const KEEP_RECENT_ROUNDS = 3;
|
|
43
|
+
export interface ConstraintDiff {
|
|
44
|
+
/** Constraint texts to render in full (new or violated this round). */
|
|
45
|
+
changed: string[];
|
|
46
|
+
/** Same-ID items unchanged since the baseline. */
|
|
47
|
+
unchangedCount: number;
|
|
48
|
+
/** Baseline items absent now, excluding emphasized items (they were moved
|
|
49
|
+
* to Critical Context, not demoted). */
|
|
50
|
+
removedCount: number;
|
|
51
|
+
}
|
|
52
|
+
export declare function diffConstraints(baseline: PresentedStateSnapshot | null, activeTexts: string[], metadata: ConstraintMeta[], round: number, emphasized: Set<string>): ConstraintDiff;
|
|
53
|
+
export interface SubGoalDiff {
|
|
54
|
+
/** Sub-goals to render in full (new or status transition). */
|
|
55
|
+
changed: SubGoal[];
|
|
56
|
+
unchangedCount: number;
|
|
57
|
+
/** Baseline sub-goals no longer in the active set (done/canceled/blocked). */
|
|
58
|
+
removedCount: number;
|
|
59
|
+
}
|
|
60
|
+
export declare function diffSubGoals(baseline: PresentedStateSnapshot | null, activeSubs: SubGoal[]): SubGoalDiff;
|
|
61
|
+
/** v3.2: True when a milestone boundary was crossed since the baseline —
|
|
62
|
+
* the Recent Rounds section then renders in full (a phase ended). */
|
|
63
|
+
export declare function milestoneBoundaryChanged(baseline: PresentedStateSnapshot | null, milestones: MilestoneSummary[]): boolean;
|
|
31
64
|
export declare function assemblePromptArtifact(input: PromptAssemblyInput): PromptArtifact;
|
|
32
65
|
//# sourceMappingURL=prompt-assembler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-assembler.d.ts","sourceRoot":"","sources":["../src/prompt-assembler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-assembler.d.ts","sourceRoot":"","sources":["../src/prompt-assembler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEvF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAI5B,eAAO,MAAM,8BAA8B,EAAG,CAAU,CAAC;AACzD,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,sBAAsB,EAAE,aAIpC,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;mEAC+D;IAC/D,iBAAiB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACnD;AAqFD;+DAC+D;AAC/D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAmCD;4DAC4D;AAC5D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,IAAI,CAAC;AASpC,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB;6CACyC;IACzC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,sBAAsB,GAAG,IAAI,EACvC,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,EAAE,cAAc,EAAE,EAC1B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,cAAc,CAyBhB;AAED,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,sBAAsB,GAAG,IAAI,EACvC,UAAU,EAAE,OAAO,EAAE,GACpB,WAAW,CAgBb;AAED;sEACsE;AACtE,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,EACvC,UAAU,EAAE,gBAAgB,EAAE,GAC7B,OAAO,CAQT;AAkuBD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAuNjF"}
|