loopforge 3.2.1 → 3.7.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 +74 -71
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +6 -38
- package/dist/audit.js.map +1 -1
- package/dist/canonical-state.d.ts +71 -6
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +176 -29
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +16 -26
- 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/cognitive-governance.d.ts +0 -1
- package/dist/cognitive-governance.d.ts.map +1 -1
- package/dist/cognitive-governance.js +1 -4
- package/dist/cognitive-governance.js.map +1 -1
- package/dist/committed-round.d.ts +100 -0
- package/dist/committed-round.d.ts.map +1 -0
- package/dist/committed-round.js +349 -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 +385 -357
- 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 +65 -16
- package/dist/engine.js.map +1 -1
- package/dist/evidence-claims.d.ts.map +1 -1
- package/dist/evidence-claims.js +15 -39
- package/dist/evidence-claims.js.map +1 -1
- package/dist/evidence-provider.d.ts +35 -17
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +105 -108
- package/dist/evidence-provider.js.map +1 -1
- package/dist/index.d.ts +4 -4
- 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 -10
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +232 -276
- 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 +16 -18
- package/dist/loop-store.d.ts.map +1 -1
- package/dist/loop-store.js +21 -63
- package/dist/loop-store.js.map +1 -1
- package/dist/mcp/round-lifecycle.d.ts +13 -10
- package/dist/mcp/round-lifecycle.d.ts.map +1 -1
- package/dist/mcp/round-lifecycle.js +95 -68
- 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 +17 -5
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +177 -54
- 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 +161 -53
- 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 -31
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +24 -42
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +0 -3
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +124 -191
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/protocol.d.ts +61 -46
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +2 -18
- 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 +34 -29
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +0 -4
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +1 -11
- 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/token-utils.d.ts +7 -3
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +18 -3
- package/dist/token-utils.js.map +1 -1
- package/dist/verification-gate.d.ts +72 -21
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +544 -157
- 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 -17
- package/package.json +2 -2
- package/skills/perception/SKILL.md +137 -136
|
@@ -48,11 +48,12 @@ export type EvidenceProviderFactory = () => EvidenceProvider;
|
|
|
48
48
|
/** Register a provider factory used by policy-driven collectors. */
|
|
49
49
|
export declare function registerEvidenceProvider(name: string, factory: EvidenceProviderFactory): void;
|
|
50
50
|
export declare function unregisterEvidenceProvider(name: string): boolean;
|
|
51
|
-
/** Collects evidence from all configured providers
|
|
51
|
+
/** Collects evidence from all configured providers (always async — the
|
|
52
|
+
* synchronous collect() was removed in v3.7).
|
|
52
53
|
*
|
|
53
54
|
* Usage:
|
|
54
55
|
* const collector = new EvidenceCollector([new GitEvidenceProvider()]);
|
|
55
|
-
* const snapshots = collector.
|
|
56
|
+
* const snapshots = await collector.collectAsync({ phase: "before" });
|
|
56
57
|
* // snapshots = [{ provider: "git", files: [...], data: {...} }]
|
|
57
58
|
*/
|
|
58
59
|
export declare class EvidenceCollector {
|
|
@@ -63,10 +64,6 @@ export declare class EvidenceCollector {
|
|
|
63
64
|
static fromProviderNames(providerNames: string[]): EvidenceCollector;
|
|
64
65
|
/** Build built-ins and explicitly configured command providers. */
|
|
65
66
|
static fromPolicy(): EvidenceCollector;
|
|
66
|
-
/** Run all providers and return non-null snapshots.
|
|
67
|
-
* Providers that return null (e.g. git not available) are silently
|
|
68
|
-
* skipped — the caller handles missing evidence. */
|
|
69
|
-
collect(options?: EvidenceCollectOptions): ProviderSnapshot[];
|
|
70
67
|
/** Capture all providers concurrently with per-provider timeout isolation. */
|
|
71
68
|
collectAsync(options?: EvidenceCollectOptions): Promise<ProviderSnapshot[]>;
|
|
72
69
|
}
|
|
@@ -82,6 +79,13 @@ export interface CommandEvidenceData extends Record<string, unknown> {
|
|
|
82
79
|
stdout: string;
|
|
83
80
|
stderr: string;
|
|
84
81
|
truncated: boolean;
|
|
82
|
+
/** v3.3: Workspace files this command depends on (resolved at capture
|
|
83
|
+
* time from executable + args, plus package.json). The verification gate
|
|
84
|
+
* cross-checks these against the round's git diff to detect verification
|
|
85
|
+
* domain tampering — a command whose entrypoint changed this round is not
|
|
86
|
+
* trustworthy. Forward-slash paths (git convention). Empty = unresolvable
|
|
87
|
+
* (external command like `bash -c`) — the gate fails open. */
|
|
88
|
+
entrypointFiles: string[];
|
|
85
89
|
}
|
|
86
90
|
/** Explicit, shell-free verification command. Disabled unless configured. */
|
|
87
91
|
export declare class CommandEvidenceProvider implements EvidenceProvider {
|
|
@@ -116,19 +120,11 @@ export interface GitFileState {
|
|
|
116
120
|
* On a normal repo (~200ms/command): ~200ms vs ~600ms sequential.
|
|
117
121
|
* On Windows with antivirus (~4s/command): ~4s vs ~12s sequential. */
|
|
118
122
|
export declare function captureGitFileStateAsync(signal?: AbortSignal, timeoutMs?: number): Promise<GitFileState | null>;
|
|
119
|
-
/**
|
|
120
|
-
*
|
|
121
|
-
* @deprecated Use captureGitFileStateAsync() for the primary path.
|
|
122
|
-
* This sync fallback exists for legacy callers that cannot be made async
|
|
123
|
-
* (e.g. reconstructSession during startup). Uses execFileSync — shell-free,
|
|
124
|
-
* unlike the old execSync-based implementation. */
|
|
125
|
-
export declare function captureGitFileState(): GitFileState | null;
|
|
126
|
-
/** Captures git file state (tracked, staged, untracked) via the async
|
|
127
|
-
* captureGitFileStateAsync() when a context is provided, falling back
|
|
128
|
-
* to the synchronous captureGitFileState() for legacy callers. */
|
|
123
|
+
/** v3.7: async capture only — the synchronous captureGitFileState() fallback
|
|
124
|
+
* was removed together with the sync lifecycle (prepareSync). */
|
|
129
125
|
export declare class GitEvidenceProvider implements EvidenceProvider {
|
|
130
126
|
readonly name = "git";
|
|
131
|
-
capture(context?: EvidenceCaptureContext):
|
|
127
|
+
capture(context?: EvidenceCaptureContext): Promise<ProviderSnapshot | null>;
|
|
132
128
|
}
|
|
133
129
|
/** Extract merged file list from evidence snapshots for backward compat
|
|
134
130
|
* with runtimeFilesChanged (string[] | null).
|
|
@@ -141,4 +137,26 @@ export declare function extractFilesFromSnapshots(snapshots: ProviderSnapshot[])
|
|
|
141
137
|
* only added/removed/content-changed paths. */
|
|
142
138
|
export declare function diffSnapshotCollections(before: ProviderSnapshot[], after: ProviderSnapshot[]): ProviderSnapshot[];
|
|
143
139
|
export declare function diffSnapshots(before: ProviderSnapshot[], after: ProviderSnapshot[]): string[] | null;
|
|
140
|
+
/** v3.3.1: Implement the v2.13 policy switch `engine.backtrack_auto_restore` —
|
|
141
|
+
* automatically restore the workspace after a backtrack:
|
|
142
|
+
* 1. `git stash push -u` — every uncommitted change (tracked + untracked)
|
|
143
|
+
* is preserved in a stash, never destroyed (an untracked file the agent
|
|
144
|
+
* created in the failed rounds is not silently deleted).
|
|
145
|
+
* 2. `git reset --hard <restoreHead>` — when the failed rounds created
|
|
146
|
+
* commits, discard them back to the clean round's commit (the v2.12
|
|
147
|
+
* restore-point HEAD).
|
|
148
|
+
*
|
|
149
|
+
* Runs only inside the workspace (cwd, shell: false, 30s timeout), and the
|
|
150
|
+
* caller gates it behind the policy flag — DANGEROUS by design, off by
|
|
151
|
+
* default. Failures are reported, never thrown: the verification gate still
|
|
152
|
+
* checks workspace cleanliness afterwards, and the backtrack prompt already
|
|
153
|
+
* instructs manual restore as the fallback. An empty workspace ("No local
|
|
154
|
+
* changes") is not a failure. */
|
|
155
|
+
export declare function runBacktrackAutoRestore(gitHead: string | undefined, round: number,
|
|
156
|
+
/** v3.3.1: workspace root; injectable so tests can run against a temp
|
|
157
|
+
* repo. Defaults to the process cwd, matching the evidence providers. */
|
|
158
|
+
cwd?: string): Promise<{
|
|
159
|
+
ok: boolean;
|
|
160
|
+
detail: string;
|
|
161
|
+
}>;
|
|
144
162
|
//# sourceMappingURL=evidence-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence-provider.d.ts","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"evidence-provider.d.ts","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { createHash } from "node:crypto";
|
|
11
11
|
import { readFileSync, realpathSync, statSync } from "node:fs";
|
|
12
|
-
import { spawn, execFile,
|
|
13
|
-
import {
|
|
12
|
+
import { spawn, execFile, } from "node:child_process";
|
|
13
|
+
import { relative, resolve, sep } from "node:path";
|
|
14
|
+
import { containInWorkspace } from "./workspace.js";
|
|
14
15
|
import { getPolicy } from "./policy.js";
|
|
15
16
|
import { logEvent } from "./observability.js";
|
|
16
17
|
import { policyMetrics } from "./policy-metrics.js";
|
|
@@ -27,11 +28,12 @@ export function unregisterEvidenceProvider(name) {
|
|
|
27
28
|
return providerFactories.delete(name);
|
|
28
29
|
}
|
|
29
30
|
// ── EvidenceCollector ──────────────────────────────────────────────────────
|
|
30
|
-
/** Collects evidence from all configured providers
|
|
31
|
+
/** Collects evidence from all configured providers (always async — the
|
|
32
|
+
* synchronous collect() was removed in v3.7).
|
|
31
33
|
*
|
|
32
34
|
* Usage:
|
|
33
35
|
* const collector = new EvidenceCollector([new GitEvidenceProvider()]);
|
|
34
|
-
* const snapshots = collector.
|
|
36
|
+
* const snapshots = await collector.collectAsync({ phase: "before" });
|
|
35
37
|
* // snapshots = [{ provider: "git", files: [...], data: {...} }]
|
|
36
38
|
*/
|
|
37
39
|
export class EvidenceCollector {
|
|
@@ -64,44 +66,10 @@ export class EvidenceCollector {
|
|
|
64
66
|
}
|
|
65
67
|
return new EvidenceCollector(providers);
|
|
66
68
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const results = [];
|
|
72
|
-
for (const p of this.providers) {
|
|
73
|
-
const startedAt = Date.now();
|
|
74
|
-
const controller = new AbortController();
|
|
75
|
-
try {
|
|
76
|
-
const snapshot = p.capture({
|
|
77
|
-
signal: controller.signal,
|
|
78
|
-
timeoutMs: options.timeoutMs ?? getPolicy().evidence.timeout_ms,
|
|
79
|
-
loopId: options.loopId,
|
|
80
|
-
phase: options.phase ?? "after",
|
|
81
|
-
});
|
|
82
|
-
if (snapshot && typeof snapshot.then === "function") {
|
|
83
|
-
// Async providers are not awaitable in the synchronous collect()
|
|
84
|
-
// path. Log and skip — callers who need async providers must use
|
|
85
|
-
// collectAsync() instead. Session recovery via reconstructSession()
|
|
86
|
-
// uses collect() as a fallback; the unpause() path replaces it
|
|
87
|
-
// with async evidence after reconstruction.
|
|
88
|
-
void snapshot.catch(() => undefined);
|
|
89
|
-
policyMetrics.recordEvidence(p.name, "failure", Date.now() - startedAt, options.loopId);
|
|
90
|
-
logEvent("evidence_async_provider_in_sync_collect", { provider: p.name });
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
const syncSnapshot = snapshot;
|
|
94
|
-
policyMetrics.recordEvidence(p.name, syncSnapshot ? "available" : "unavailable", Date.now() - startedAt, options.loopId);
|
|
95
|
-
if (syncSnapshot)
|
|
96
|
-
results.push(syncSnapshot);
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
policyMetrics.recordEvidence(p.name, "failure", Date.now() - startedAt, options.loopId);
|
|
100
|
-
logEvent("evidence_provider_error", { provider: p.name, error: String(error) });
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return results;
|
|
104
|
-
}
|
|
69
|
+
// v3.7: the synchronous collect() was removed with the sync lifecycle
|
|
70
|
+
// (prepareSync / captureGitFileState) — evidence collection is always
|
|
71
|
+
// async (collectAsync). It never worked for async providers anyway: they
|
|
72
|
+
// were silently skipped and recorded as failures.
|
|
105
73
|
/** Capture all providers concurrently with per-provider timeout isolation. */
|
|
106
74
|
async collectAsync(options = {}) {
|
|
107
75
|
const timeoutMs = options.timeoutMs ?? getPolicy().evidence.timeout_ms;
|
|
@@ -152,21 +120,48 @@ export class EvidenceCollector {
|
|
|
152
120
|
}
|
|
153
121
|
}
|
|
154
122
|
function commandCwd(configured) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
const actual = realpathSync(lexical);
|
|
163
|
-
const actualRelative = relative(workspace, actual);
|
|
164
|
-
if (actualRelative === ".." || actualRelative.startsWith(`..${sep}`) ||
|
|
165
|
-
isAbsolute(actualRelative) || !statSync(actual).isDirectory()) {
|
|
123
|
+
// v3.3.1: delegated to the shared containment check (workspace.ts) — the
|
|
124
|
+
// command execution boundary must use the same double check as every
|
|
125
|
+
// other workspace path, not a private copy. The cwd must additionally be
|
|
126
|
+
// an existing directory (commands spawn inside it).
|
|
127
|
+
const actual = containInWorkspace(process.cwd(), configured ?? ".");
|
|
128
|
+
if (!statSync(actual).isDirectory()) {
|
|
166
129
|
throw new Error("command cwd resolves outside the workspace");
|
|
167
130
|
}
|
|
168
131
|
return actual;
|
|
169
132
|
}
|
|
133
|
+
/** v3.3: Resolve the workspace files a verification command depends on.
|
|
134
|
+
* Candidates: every arg that resolves to an existing file inside the
|
|
135
|
+
* workspace, a path-shaped executable (e.g. "./scripts/verify.mjs"), and
|
|
136
|
+
* package.json (npm test / script indirection). Directories and non-workspace
|
|
137
|
+
* paths are skipped. Returns forward-slash paths (git convention) so the
|
|
138
|
+
* gate can intersect them with the round's git diff. Empty result = the
|
|
139
|
+
* command's entrypoint cannot be observed (external command) — fail open. */
|
|
140
|
+
function resolveEntrypointFiles(executable, args, cwd) {
|
|
141
|
+
// v3.3.1: entrypoint containment uses the shared workspace check.
|
|
142
|
+
const workspace = process.cwd();
|
|
143
|
+
const candidates = [...args];
|
|
144
|
+
if (executable.includes("/") || executable.includes("\\")) {
|
|
145
|
+
candidates.unshift(executable);
|
|
146
|
+
}
|
|
147
|
+
candidates.push("package.json");
|
|
148
|
+
const found = [];
|
|
149
|
+
for (const candidate of candidates) {
|
|
150
|
+
try {
|
|
151
|
+
const actual = containInWorkspace(workspace, resolve(cwd, candidate));
|
|
152
|
+
if (statSync(actual).isDirectory())
|
|
153
|
+
continue;
|
|
154
|
+
const rel = relative(realpathSync(workspace), actual).split(sep).join("/");
|
|
155
|
+
if (!found.includes(rel))
|
|
156
|
+
found.push(rel);
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
// Not a resolvable workspace file (absent or outside) — not an
|
|
160
|
+
// entrypoint candidate.
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return found;
|
|
164
|
+
}
|
|
170
165
|
/** Explicit, shell-free verification command. Disabled unless configured. */
|
|
171
166
|
export class CommandEvidenceProvider {
|
|
172
167
|
name;
|
|
@@ -209,14 +204,16 @@ export class CommandEvidenceProvider {
|
|
|
209
204
|
const timeoutMs = Math.max(1, Math.min(this.config.timeout_ms, context?.timeoutMs || this.config.timeout_ms));
|
|
210
205
|
let cwd;
|
|
211
206
|
if (!this.config.executable) {
|
|
212
|
-
return Promise.resolve(this.snapshot(phase, "missing", null, null, "", "Command executable is empty", false, 0));
|
|
207
|
+
return Promise.resolve(this.snapshot(phase, "missing", null, null, "", "Command executable is empty", false, 0, []));
|
|
213
208
|
}
|
|
214
209
|
try {
|
|
215
210
|
cwd = commandCwd(this.config.cwd);
|
|
216
211
|
}
|
|
217
212
|
catch (error) {
|
|
218
|
-
return Promise.resolve(this.snapshot(phase, "invalid_cwd", null, null, "", String(error), false, Date.now() - startedAt));
|
|
213
|
+
return Promise.resolve(this.snapshot(phase, "invalid_cwd", null, null, "", String(error), false, Date.now() - startedAt, []));
|
|
219
214
|
}
|
|
215
|
+
// v3.3: Workspace entrypoint files for tamper detection at the gate.
|
|
216
|
+
const entrypointFiles = resolveEntrypointFiles(this.config.executable, this.config.args, cwd);
|
|
220
217
|
return new Promise((resolveCapture) => {
|
|
221
218
|
let stdout = "";
|
|
222
219
|
let stderr = "";
|
|
@@ -251,7 +248,7 @@ export class CommandEvidenceProvider {
|
|
|
251
248
|
if (timer)
|
|
252
249
|
clearTimeout(timer);
|
|
253
250
|
context?.signal.removeEventListener("abort", abort);
|
|
254
|
-
resolveCapture(this.snapshot(phase, status, exitCode, signal, stdout, stderr, truncated, Date.now() - startedAt));
|
|
251
|
+
resolveCapture(this.snapshot(phase, status, exitCode, signal, stdout, stderr, truncated, Date.now() - startedAt, entrypointFiles));
|
|
255
252
|
};
|
|
256
253
|
const abort = () => {
|
|
257
254
|
child.kill();
|
|
@@ -278,7 +275,7 @@ export class CommandEvidenceProvider {
|
|
|
278
275
|
context?.signal.addEventListener("abort", abort, { once: true });
|
|
279
276
|
});
|
|
280
277
|
}
|
|
281
|
-
snapshot(phase, status, exitCode, signal, stdout, stderr, truncated, durationMs) {
|
|
278
|
+
snapshot(phase, status, exitCode, signal, stdout, stderr, truncated, durationMs, entrypointFiles) {
|
|
282
279
|
return {
|
|
283
280
|
provider: this.name,
|
|
284
281
|
timestamp: Date.now(),
|
|
@@ -295,6 +292,7 @@ export class CommandEvidenceProvider {
|
|
|
295
292
|
stdout,
|
|
296
293
|
stderr,
|
|
297
294
|
truncated,
|
|
295
|
+
entrypointFiles,
|
|
298
296
|
},
|
|
299
297
|
};
|
|
300
298
|
}
|
|
@@ -359,60 +357,13 @@ export async function captureGitFileStateAsync(signal, timeoutMs) {
|
|
|
359
357
|
return null;
|
|
360
358
|
}
|
|
361
359
|
}
|
|
362
|
-
/** v1.17 (sync): Capture git file state using sequential execFileSync.
|
|
363
|
-
*
|
|
364
|
-
* @deprecated Use captureGitFileStateAsync() for the primary path.
|
|
365
|
-
* This sync fallback exists for legacy callers that cannot be made async
|
|
366
|
-
* (e.g. reconstructSession during startup). Uses execFileSync — shell-free,
|
|
367
|
-
* unlike the old execSync-based implementation. */
|
|
368
|
-
export function captureGitFileState() {
|
|
369
|
-
try {
|
|
370
|
-
const tracked = execFileSync("git", ["diff", "--name-only"], {
|
|
371
|
-
encoding: "utf-8",
|
|
372
|
-
timeout: 5000,
|
|
373
|
-
}).trim();
|
|
374
|
-
const staged = execFileSync("git", ["diff", "--cached", "--name-only"], {
|
|
375
|
-
encoding: "utf-8",
|
|
376
|
-
timeout: 5000,
|
|
377
|
-
}).trim();
|
|
378
|
-
const untracked = execFileSync("git", ["ls-files", "--others", "--exclude-standard"], {
|
|
379
|
-
encoding: "utf-8",
|
|
380
|
-
timeout: 5000,
|
|
381
|
-
}).trim();
|
|
382
|
-
// v2.13: Capture HEAD commit for backtrack restore point
|
|
383
|
-
let head;
|
|
384
|
-
try {
|
|
385
|
-
head = execFileSync("git", ["rev-parse", "HEAD"], {
|
|
386
|
-
encoding: "utf-8",
|
|
387
|
-
timeout: 5000,
|
|
388
|
-
}).trim();
|
|
389
|
-
}
|
|
390
|
-
catch {
|
|
391
|
-
// Non-git repo or detached state — head stays undefined
|
|
392
|
-
}
|
|
393
|
-
return {
|
|
394
|
-
tracked: tracked.split("\n").filter((f) => f.length > 0).sort(),
|
|
395
|
-
staged: staged.split("\n").filter((f) => f.length > 0).sort(),
|
|
396
|
-
untracked: untracked.split("\n").filter((f) => f.length > 0).sort(),
|
|
397
|
-
head: head || undefined,
|
|
398
|
-
};
|
|
399
|
-
}
|
|
400
|
-
catch {
|
|
401
|
-
return null;
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
360
|
// ── Built-in: GitEvidenceProvider ──────────────────────────────────────────
|
|
405
|
-
/**
|
|
406
|
-
*
|
|
407
|
-
* to the synchronous captureGitFileState() for legacy callers. */
|
|
361
|
+
/** v3.7: async capture only — the synchronous captureGitFileState() fallback
|
|
362
|
+
* was removed together with the sync lifecycle (prepareSync). */
|
|
408
363
|
export class GitEvidenceProvider {
|
|
409
364
|
name = "git";
|
|
410
365
|
capture(context) {
|
|
411
|
-
|
|
412
|
-
? captureGitFileStateAsync(context.signal, context.timeoutMs)
|
|
413
|
-
: captureGitFileState();
|
|
414
|
-
const statePromise = capture instanceof Promise ? capture : Promise.resolve(capture);
|
|
415
|
-
return statePromise.then((state) => {
|
|
366
|
+
return captureGitFileStateAsync(context?.signal, context?.timeoutMs).then((state) => {
|
|
416
367
|
if (!state)
|
|
417
368
|
return null;
|
|
418
369
|
const files = [...new Set([
|
|
@@ -446,7 +397,7 @@ export class GitEvidenceProvider {
|
|
|
446
397
|
head: state.head,
|
|
447
398
|
},
|
|
448
399
|
};
|
|
449
|
-
});
|
|
400
|
+
});
|
|
450
401
|
}
|
|
451
402
|
}
|
|
452
403
|
registerEvidenceProvider("git", () => new GitEvidenceProvider());
|
|
@@ -516,4 +467,50 @@ export function diffSnapshotCollections(before, after) {
|
|
|
516
467
|
export function diffSnapshots(before, after) {
|
|
517
468
|
return extractFilesFromSnapshots(diffSnapshotCollections(before, after));
|
|
518
469
|
}
|
|
470
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
471
|
+
// v3.3.1: Backtrack auto-restore (engine.backtrack_auto_restore)
|
|
472
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
473
|
+
/** v3.3.1: Implement the v2.13 policy switch `engine.backtrack_auto_restore` —
|
|
474
|
+
* automatically restore the workspace after a backtrack:
|
|
475
|
+
* 1. `git stash push -u` — every uncommitted change (tracked + untracked)
|
|
476
|
+
* is preserved in a stash, never destroyed (an untracked file the agent
|
|
477
|
+
* created in the failed rounds is not silently deleted).
|
|
478
|
+
* 2. `git reset --hard <restoreHead>` — when the failed rounds created
|
|
479
|
+
* commits, discard them back to the clean round's commit (the v2.12
|
|
480
|
+
* restore-point HEAD).
|
|
481
|
+
*
|
|
482
|
+
* Runs only inside the workspace (cwd, shell: false, 30s timeout), and the
|
|
483
|
+
* caller gates it behind the policy flag — DANGEROUS by design, off by
|
|
484
|
+
* default. Failures are reported, never thrown: the verification gate still
|
|
485
|
+
* checks workspace cleanliness afterwards, and the backtrack prompt already
|
|
486
|
+
* instructs manual restore as the fallback. An empty workspace ("No local
|
|
487
|
+
* changes") is not a failure. */
|
|
488
|
+
export async function runBacktrackAutoRestore(gitHead, round,
|
|
489
|
+
/** v3.3.1: workspace root; injectable so tests can run against a temp
|
|
490
|
+
* repo. Defaults to the process cwd, matching the evidence providers. */
|
|
491
|
+
cwd = process.cwd()) {
|
|
492
|
+
const run = (args) => new Promise((resolvePromise) => {
|
|
493
|
+
execFile("git", args, {
|
|
494
|
+
cwd,
|
|
495
|
+
shell: false,
|
|
496
|
+
timeout: 30_000,
|
|
497
|
+
}, (error, stdout, stderr) => {
|
|
498
|
+
if (error) {
|
|
499
|
+
resolvePromise({ ok: false, out: String(stderr || error.message) });
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
resolvePromise({ ok: true, out: String(stdout) });
|
|
503
|
+
});
|
|
504
|
+
});
|
|
505
|
+
const steps = [];
|
|
506
|
+
const stash = await run(["stash", "push", "-u", "-m", `loopforge-backtrack-round-${round}`]);
|
|
507
|
+
const workspaceWasClean = stash.out.includes("No local changes");
|
|
508
|
+
steps.push(`stash: ${workspaceWasClean ? "clean (nothing to stash)" : stash.ok ? "ok" : `failed — ${stash.out.trim()}`}`);
|
|
509
|
+
if (gitHead) {
|
|
510
|
+
const reset = await run(["reset", "--hard", gitHead]);
|
|
511
|
+
steps.push(`reset --hard ${gitHead.slice(0, 12)}: ${reset.ok ? "ok" : `failed — ${reset.out.trim()}`}`);
|
|
512
|
+
return { ok: reset.ok, detail: steps.join("; ") };
|
|
513
|
+
}
|
|
514
|
+
return { ok: workspaceWasClean || stash.ok, detail: steps.join("; ") };
|
|
515
|
+
}
|
|
519
516
|
//# sourceMappingURL=evidence-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence-provider.js","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evidence-provider.js","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** LoopForge — Cognitive State Runtime for AI coding agents.
|
|
2
2
|
*
|
|
3
|
-
* TypeScript reference implementation v3.
|
|
3
|
+
* TypeScript reference implementation v3.7.0
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
6
|
* import { LoopForgeEngine, ReplayBackend, compileLoop } from "loopforge";
|
|
@@ -14,15 +14,15 @@
|
|
|
14
14
|
* const server = new McpServer();
|
|
15
15
|
* server.start();
|
|
16
16
|
*/
|
|
17
|
-
export { Mode, AgentStatus, makeExecutionFeedback, makeSelfEvaluation, makeLoopObjective, makeLoopHealth, makeRollingSummary, makeTaskAlignment, makeLoopRoundResult, makeLoopCompileRequest, makeLoopCompileResponse, makeSessionState, makeTaskId,
|
|
17
|
+
export { Mode, AgentStatus, makeExecutionFeedback, makeSelfEvaluation, makeLoopObjective, makeLoopHealth, makeRollingSummary, makeTaskAlignment, makeLoopRoundResult, makeLoopCompileRequest, makeLoopCompileResponse, makeSessionState, makeTaskId, makeEvidenceSnapshot, makeVerificationFlag, makeVerificationResult, makeEnforcementResult, makeMilestoneSummary, makeSubGoal, makeConstraintMeta, } from "./protocol.js";
|
|
18
18
|
export type { ExecutionFeedback, SelfEvaluation, LoopForgeRequest, LoopObjective, LoopHealth, RollingSummary, TaskAlignment, LoopRoundResult, LoopCompileRequest, LoopCompileResponse, LoopForgeResponse, SessionState, AgentLoopResult, WorkerResult, EvidenceSnapshot, VerificationFlag, VerificationResult, EnforcementResult, CriterionRevision, MilestoneSummary, SubGoal, ConstraintMeta, PromptArtifact, } from "./protocol.js";
|
|
19
19
|
export { getPolicy, loadPolicy, resetPolicy, DEFAULT_POLICY, writeStateFile, } from "./policy.js";
|
|
20
20
|
export type { LoopPolicy, ConstraintsPolicy, SummaryPolicy, EnginePolicy, BackendPolicy, PromptPolicy, StateFilePolicy, EvidencePolicy, CommandEvidencePolicy, McpPolicy, } from "./policy.js";
|
|
21
21
|
export { FileLoopStore, queryLoopEntries, LOOP_STORE_SCHEMA_VERSION, } from "./loop-store.js";
|
|
22
|
-
export type { LoopStore, LoopSessionDocument, LoopRoundDocument,
|
|
22
|
+
export type { LoopStore, LoopSessionDocument, LoopRoundDocument, VaultEntry, } from "./loop-store.js";
|
|
23
23
|
export { compileLoop, decideLevel, alignTask, checkLoopHealth, computeGoalTextHash, deriveGoalId, getPreviousRound, buildSelfEvalBlock, buildRollingSummary, } from "./loop-compiler.js";
|
|
24
24
|
export { ReplayBackend } from "./replay.js";
|
|
25
|
-
export { LoopForgeEngine, createEngine,
|
|
25
|
+
export { LoopForgeEngine, createEngine, buildSelfEvaluation, parseExecutionEvidence, parseCriterionRevisions, parseWorkerResults, } from "./engine.js";
|
|
26
26
|
export type { EngineMetrics, DelegationEntry } from "./engine.js";
|
|
27
27
|
export type { StopReason } from "./protocol.js";
|
|
28
28
|
export { McpServer } from "./mcp/server.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,IAAI,EACJ,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** LoopForge — Cognitive State Runtime for AI coding agents.
|
|
2
2
|
*
|
|
3
|
-
* TypeScript reference implementation v3.
|
|
3
|
+
* TypeScript reference implementation v3.7.0
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
6
|
* import { LoopForgeEngine, ReplayBackend, compileLoop } from "loopforge";
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* server.start();
|
|
16
16
|
*/
|
|
17
17
|
// Protocol types
|
|
18
|
-
export { Mode, AgentStatus, makeExecutionFeedback, makeSelfEvaluation, makeLoopObjective, makeLoopHealth, makeRollingSummary, makeTaskAlignment, makeLoopRoundResult, makeLoopCompileRequest, makeLoopCompileResponse, makeSessionState, makeTaskId,
|
|
18
|
+
export { Mode, AgentStatus, makeExecutionFeedback, makeSelfEvaluation, makeLoopObjective, makeLoopHealth, makeRollingSummary, makeTaskAlignment, makeLoopRoundResult, makeLoopCompileRequest, makeLoopCompileResponse, makeSessionState, makeTaskId, makeEvidenceSnapshot, makeVerificationFlag, makeVerificationResult, makeEnforcementResult, makeMilestoneSummary, makeSubGoal, makeConstraintMeta, } from "./protocol.js";
|
|
19
19
|
// Policy
|
|
20
20
|
export { getPolicy, loadPolicy, resetPolicy, DEFAULT_POLICY, writeStateFile, } from "./policy.js";
|
|
21
21
|
// Durable store
|
|
@@ -25,7 +25,7 @@ export { compileLoop, decideLevel, alignTask, checkLoopHealth, computeGoalTextHa
|
|
|
25
25
|
// Replay
|
|
26
26
|
export { ReplayBackend } from "./replay.js";
|
|
27
27
|
// Engine
|
|
28
|
-
export { LoopForgeEngine, createEngine,
|
|
28
|
+
export { LoopForgeEngine, createEngine, buildSelfEvaluation, parseExecutionEvidence, parseCriterionRevisions, parseWorkerResults, } from "./engine.js";
|
|
29
29
|
// MCP (v1.3)
|
|
30
30
|
export { McpServer } from "./mcp/server.js";
|
|
31
31
|
export { SessionManager } from "./mcp/session.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,iBAAiB;AACjB,OAAO,EACL,IAAI,EACJ,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,iBAAiB;AACjB,OAAO,EACL,IAAI,EACJ,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,GACnB,MAAM,eAAe,CAAC;AA4BvB,SAAS;AACT,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AAerB,gBAAgB;AAChB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAQzB,gBAAgB;AAChB,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,SAAS;AACT,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAMrB,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,2BAA2B;AAC3B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,aAAa,EACb,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAWhC,8DAA8D;AAC9D,OAAO,EACL,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAG7B,oCAAoC;AACpC,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,WAAW,EACX,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC"}
|
package/dist/loop-compiler.d.ts
CHANGED
|
@@ -18,9 +18,8 @@ export declare function computeGoalTextHash(text: string): string;
|
|
|
18
18
|
export declare function deriveGoalId(loopId: string, task: string, explicit?: string): string;
|
|
19
19
|
/** v3.2: Read the previous round's persisted L1 presentation snapshot — the
|
|
20
20
|
* diff baseline for L1 collapse. Returns null when the previous round's
|
|
21
|
-
* lineage entry
|
|
22
|
-
*
|
|
23
|
-
* existing fixtures and pre-v3.2 loops on the full-render path. */
|
|
21
|
+
* lineage entry lacks the three presented_* fields (as on L0/L2 compiles),
|
|
22
|
+
* so callers render the full L1 state. */
|
|
24
23
|
export declare function readPresentedBaseline(loopId: string, round: number, context: Record<string, unknown> | null): PresentedStateSnapshot | null;
|
|
25
24
|
export declare function getPreviousRound(loopId: string, round: number, context: Record<string, unknown> | null): PreviousRound | null;
|
|
26
25
|
/** v3.2: Deterministic lessons learned — constraints violated repeatedly or
|
|
@@ -35,6 +34,12 @@ export declare function deriveLessons(loopId: string, context: Record<string, un
|
|
|
35
34
|
* description matches it (Jaccard). Zero persistence — re-derived from the
|
|
36
35
|
* vault every compile. */
|
|
37
36
|
export declare function deriveCriterionStatuses(loopId: string, context: Record<string, unknown> | null, objective: LoopObjective | null, currentRound: number, subGoals: SubGoal[], lastRoundResult?: LoopRoundResult | null): CriterionStatus[];
|
|
37
|
+
/** v2.11: Match two criterion references for deduplication.
|
|
38
|
+
* If either is a criterion ID (cr-XXXXXXXX), uses exact ID comparison.
|
|
39
|
+
* Otherwise falls back to Jaccard similarity.
|
|
40
|
+
* v3.3: exported for the verification gate's windowed criteria-completion
|
|
41
|
+
* scan (R4/R5 exculpatory cross-check). */
|
|
42
|
+
export declare function criteriaMatch(a: string, b: string): boolean;
|
|
38
43
|
export declare function buildRollingSummary(loopId: string, currentRound: number, context: Record<string, unknown> | null, sinceRound?: number, level?: string): RollingSummary | null;
|
|
39
44
|
/** Derive a stable sub-goal ID from its description hash.
|
|
40
45
|
* Exported as the single source of truth (verification-gate imports it). */
|
|
@@ -45,12 +50,6 @@ export declare function deriveConstraintId(text: string): string;
|
|
|
45
50
|
/** v2.11: Derive a stable criterion ID from its text hash (cr-XXXXXXXX).
|
|
46
51
|
* Same hash strategy as SubGoal — deterministic across rounds. */
|
|
47
52
|
export declare function deriveCriterionId(text: string): string;
|
|
48
|
-
/** v2.11: Check whether a user-provided reference looks like a constraint ID.
|
|
49
|
-
* Matches the pattern c-XXXXXXXX where X is a hex digit. */
|
|
50
|
-
export declare function isConstraintId(ref: string): boolean;
|
|
51
|
-
/** v2.11: Check whether a user-provided reference looks like a criterion ID.
|
|
52
|
-
* Matches the pattern cr-XXXXXXXX where X is a hex digit. */
|
|
53
|
-
export declare function isCriterionId(ref: string): boolean;
|
|
54
53
|
export declare function alignTask(proposedTask: string, request: LoopCompileRequest, context: Record<string, unknown> | null): TaskAlignment;
|
|
55
54
|
export declare function checkLoopHealth(loopId: string, request: LoopCompileRequest, context: Record<string, unknown> | null): LoopHealth;
|
|
56
55
|
export declare function decideLevel(request: LoopCompileRequest, context: Record<string, unknown> | null): "l0" | "l1" | "l2";
|
|
@@ -58,6 +57,18 @@ export declare function buildSelfEvalBlock(round: number, prevDriftFlags?: Verif
|
|
|
58
57
|
/** v2.12: L0 is the minimal retry template — the v2.12 declarative fields
|
|
59
58
|
* (outcome/blocker/retroactiveClaims) are L1/L2 additions so the retry
|
|
60
59
|
* prompt stays within its tight budget. */
|
|
61
|
-
level?: "l0" | "l1" | "l2"
|
|
60
|
+
level?: "l0" | "l1" | "l2",
|
|
61
|
+
/** v3.3/v3.4: Whether this round's Current Task IS the ACTIVE Round
|
|
62
|
+
* Contract (derived from committed rounds — compileLoop passes
|
|
63
|
+
* `activeContract != null`). Only then does the template ask the agent
|
|
64
|
+
* to restate/propose it — a generic empty contract template would invite
|
|
65
|
+
* placeholder submissions that trigger round_underspecified noise. */
|
|
66
|
+
hasContract?: boolean,
|
|
67
|
+
/** v3.5: L2-only prose suggesting a Round Contract declaration when the
|
|
68
|
+
* Current Task is NOT one (contract_nudge_on_l2 policy, computed at the
|
|
69
|
+
* compileLoop call site). Mutually exclusive with hasContract. The prose
|
|
70
|
+
* must never contain the JSON key name `round_contract` — contract-less
|
|
71
|
+
* L2 tests assert its lowercase absence. */
|
|
72
|
+
proposalNudge?: boolean): string;
|
|
62
73
|
export declare function compileLoop(request: LoopCompileRequest, context: Record<string, unknown> | null): LoopCompileResponse;
|
|
63
74
|
//# sourceMappingURL=loop-compiler.d.ts.map
|