loopforge 3.7.1 → 3.8.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 +171 -169
- package/dist/audit.d.ts +53 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +106 -22
- package/dist/audit.js.map +1 -1
- package/dist/canonical-state.d.ts +52 -67
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +134 -147
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +103 -4
- package/dist/cli.js.map +1 -1
- package/dist/cognitive-facts.d.ts +13 -0
- package/dist/cognitive-facts.d.ts.map +1 -1
- package/dist/cognitive-facts.js +28 -13
- package/dist/cognitive-facts.js.map +1 -1
- package/dist/committed-round.d.ts +103 -21
- package/dist/committed-round.d.ts.map +1 -1
- package/dist/committed-round.js +188 -45
- package/dist/committed-round.js.map +1 -1
- package/dist/contract-items.d.ts +55 -0
- package/dist/contract-items.d.ts.map +1 -0
- package/dist/contract-items.js +180 -0
- package/dist/contract-items.js.map +1 -0
- package/dist/enforcement-gate.d.ts +20 -2
- package/dist/enforcement-gate.d.ts.map +1 -1
- package/dist/enforcement-gate.js +197 -386
- package/dist/enforcement-gate.js.map +1 -1
- package/dist/engine.d.ts +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +53 -38
- package/dist/engine.js.map +1 -1
- package/dist/evidence-claims.d.ts +4 -4
- package/dist/evidence-claims.d.ts.map +1 -1
- package/dist/evidence-claims.js +16 -14
- package/dist/evidence-claims.js.map +1 -1
- package/dist/evidence-provider.d.ts +85 -89
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +328 -184
- package/dist/evidence-provider.js.map +1 -1
- package/dist/explain.d.ts +76 -0
- package/dist/explain.d.ts.map +1 -0
- package/dist/explain.js +127 -0
- package/dist/explain.js.map +1 -0
- package/dist/generate-schema.js +152 -16
- package/dist/generate-schema.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +40 -53
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +229 -553
- package/dist/loop-compiler.js.map +1 -1
- package/dist/loop-extras-parser.d.ts +0 -1
- package/dist/loop-extras-parser.d.ts.map +1 -1
- package/dist/loop-extras-parser.js +0 -4
- package/dist/loop-extras-parser.js.map +1 -1
- package/dist/loop-projection.d.ts.map +1 -1
- package/dist/loop-projection.js +3 -1
- package/dist/loop-projection.js.map +1 -1
- package/dist/mcp/round-lifecycle.d.ts +30 -21
- package/dist/mcp/round-lifecycle.d.ts.map +1 -1
- package/dist/mcp/round-lifecycle.js +47 -103
- package/dist/mcp/round-lifecycle.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +51 -7
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +39 -23
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +148 -163
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/submission-boundary.d.ts +89 -0
- package/dist/mcp/submission-boundary.d.ts.map +1 -0
- package/dist/mcp/submission-boundary.js +203 -0
- package/dist/mcp/submission-boundary.js.map +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +249 -128
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy-metrics.js +2 -2
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +55 -93
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +149 -38
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +1 -32
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +282 -435
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/prompt-policy.d.ts +1 -4
- package/dist/prompt-policy.d.ts.map +1 -1
- package/dist/prompt-policy.js +6 -7
- package/dist/prompt-policy.js.map +1 -1
- package/dist/protocol.d.ts +365 -142
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +21 -66
- package/dist/protocol.js.map +1 -1
- package/dist/replay.js +2 -2
- package/dist/replay.js.map +1 -1
- package/dist/round-contract.d.ts +69 -57
- package/dist/round-contract.d.ts.map +1 -1
- package/dist/round-contract.js +104 -64
- package/dist/round-contract.js.map +1 -1
- package/dist/round-coordinator.d.ts +36 -16
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +166 -102
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +3 -5
- 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-facts.d.ts +96 -0
- package/dist/round-facts.d.ts.map +1 -0
- package/dist/round-facts.js +216 -0
- package/dist/round-facts.js.map +1 -0
- package/dist/round-transaction.d.ts +19 -9
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +90 -22
- package/dist/round-transaction.js.map +1 -1
- package/dist/self-eval.d.ts +87 -9
- package/dist/self-eval.d.ts.map +1 -1
- package/dist/self-eval.js +396 -27
- package/dist/self-eval.js.map +1 -1
- package/dist/subgoal-state.d.ts +77 -0
- package/dist/subgoal-state.d.ts.map +1 -0
- package/dist/subgoal-state.js +198 -0
- package/dist/subgoal-state.js.map +1 -0
- package/dist/token-utils.d.ts +52 -19
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +83 -72
- package/dist/token-utils.js.map +1 -1
- package/dist/verification-gate.d.ts +14 -31
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +178 -496
- package/dist/verification-gate.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workspace.d.ts +9 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +17 -0
- package/dist/workspace.js.map +1 -1
- package/loop_policy.json +6 -30
- package/package.json +1 -1
- package/skills/perception/SKILL.md +243 -79
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence-claims.js","sourceRoot":"","sources":["../src/evidence-claims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"evidence-claims.js","sourceRoot":"","sources":["../src/evidence-claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
/** EvidenceProvider — Pluggable
|
|
1
|
+
/** EvidenceProvider — Pluggable machine-observation capture (v1.18 / v3.8).
|
|
2
2
|
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* v3.8: providers produce `MachineObservation`s, not ad-hoc snapshots. A
|
|
4
|
+
* configured provider ALWAYS yields an observation: unavailability, timeouts,
|
|
5
|
+
* errors and aborts are recorded as observations with the matching status and
|
|
6
|
+
* are never silently filtered out of the round's factual record. Only
|
|
7
|
+
* observations can create a `verified` fact — agent self-reports never can.
|
|
6
8
|
*
|
|
7
|
-
* Built-in
|
|
8
|
-
*
|
|
9
|
+
* Built-in: GitEvidenceProvider — git file state capture with parallel async
|
|
10
|
+
* execution (v2.0.1), plus explicitly configured shell-free command providers.
|
|
9
11
|
*/
|
|
10
|
-
import type {
|
|
11
|
-
|
|
12
|
-
export interface ProviderSnapshot {
|
|
13
|
-
/** Provider name (e.g. "git", "jest", "eslint"). */
|
|
14
|
-
provider: string;
|
|
15
|
-
/** Unix-ms timestamp of capture. */
|
|
16
|
-
timestamp: number;
|
|
17
|
-
/** File paths relevant to this evidence (for backward compat with
|
|
18
|
-
* runtimeFilesChanged). */
|
|
19
|
-
files: string[];
|
|
20
|
-
/** Provider-specific structured data. */
|
|
21
|
-
data: Record<string, unknown>;
|
|
22
|
-
}
|
|
12
|
+
import type { CommandObservation, ConfiguredCapability, EvidenceCapability, GitObservation, MachineObservation, ObservedCapability } from "./protocol.js";
|
|
13
|
+
import type { CommandEvidencePolicy, LoopPolicy } from "./policy.js";
|
|
23
14
|
/** Interface for evidence capture providers.
|
|
24
15
|
*
|
|
25
16
|
* Implementations may be synchronous or asynchronous. Async implementations
|
|
@@ -33,12 +24,16 @@ export interface EvidenceCaptureContext {
|
|
|
33
24
|
/** Workspace root override (tests capture against temp repos). */
|
|
34
25
|
cwd?: string;
|
|
35
26
|
}
|
|
36
|
-
export type EvidenceCaptureResult =
|
|
27
|
+
export type EvidenceCaptureResult = MachineObservation | null | Promise<MachineObservation | null>;
|
|
37
28
|
export interface EvidenceProvider {
|
|
38
29
|
/** Unique provider name. Used in policy to enable/disable. */
|
|
39
30
|
readonly name: string;
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
31
|
+
/** Observation kind this provider produces (used for the synthetic
|
|
32
|
+
* unavailable/timeout/error observations too). */
|
|
33
|
+
readonly kind: MachineObservation["kind"];
|
|
34
|
+
/** Capture an observation. Returns null when the provider is structurally
|
|
35
|
+
* unavailable (e.g. not a git repository); the collector converts that
|
|
36
|
+
* into an explicit `unavailable` observation rather than dropping it. */
|
|
42
37
|
capture(context?: EvidenceCaptureContext): EvidenceCaptureResult;
|
|
43
38
|
}
|
|
44
39
|
export interface EvidenceCollectOptions {
|
|
@@ -50,52 +45,74 @@ export type EvidenceProviderFactory = () => EvidenceProvider;
|
|
|
50
45
|
/** Register a provider factory used by policy-driven collectors. */
|
|
51
46
|
export declare function registerEvidenceProvider(name: string, factory: EvidenceProviderFactory): void;
|
|
52
47
|
export declare function unregisterEvidenceProvider(name: string): boolean;
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
48
|
+
/** v3.8: Whether a provider factory is registered for this name. Readiness
|
|
49
|
+
* of the RUNTIME (PATH resolution, executables) is a `doctor` concern and is
|
|
50
|
+
* deliberately not part of the hashed capability. */
|
|
51
|
+
export declare function isProviderRegistered(name: string): boolean;
|
|
52
|
+
/** v3.8: The ONE machine-backed predicate. A command observation proves a
|
|
53
|
+
* claim only when it is an after-phase command that PASSED and whose
|
|
54
|
+
* entrypoint was not modified in the same round. Before-phase observations
|
|
55
|
+
* are the baseline and never evidence. When no git delta is available the
|
|
56
|
+
* entrypoint arm fails open (matching the historical behaviour).
|
|
55
57
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
*/
|
|
58
|
+
* v3.8 replaced two divergent implementations (the gate excluded tampered
|
|
59
|
+
* commands, evidence-claims did not) with this single function. */
|
|
60
|
+
export declare function isPassedAfterObservation(observation: MachineObservation, gitChangedFiles: ReadonlySet<string> | null): boolean;
|
|
61
|
+
/** v3.8: The changed-file set of a round's git observation, or null when no
|
|
62
|
+
* git observation exists (entrypoint checks then fail open). */
|
|
63
|
+
export declare function gitChangedFiles(observations: ReadonlyArray<MachineObservation>): Set<string> | null;
|
|
64
|
+
/** v3.8: Live capability derived from observations. Rendered only — never
|
|
65
|
+
* hashed, never persisted independently (it is a pure function of the
|
|
66
|
+
* observations it is given). */
|
|
67
|
+
export declare function deriveObservedCapability(observations: ReadonlyArray<MachineObservation>, configured: ConfiguredCapability): ObservedCapability;
|
|
68
|
+
/** v3.8: Human-readable capability warnings for start/resume/status. A loop
|
|
69
|
+
* with no machine verification can still run — its success claims are simply
|
|
70
|
+
* recorded as `insufficient` instead of `verified`. */
|
|
71
|
+
export declare function capabilityWarnings(configured: ConfiguredCapability, observed?: ObservedCapability): string[];
|
|
72
|
+
/** v3.8: The ONE capability derivation. Everything that speaks about
|
|
73
|
+
* capability — `RoundDriver.prepare()`, MCP start/resume/next/status, the
|
|
74
|
+
* capability warnings — reads this, so the surfaces cannot drift into
|
|
75
|
+
* different stories about what the runtime can observe.
|
|
76
|
+
*
|
|
77
|
+
* `available` is provider-REGISTRY state (code, not policy): it is rendered
|
|
78
|
+
* and reported by `doctor`, never hashed. The hashed half stays
|
|
79
|
+
* `deriveConfiguredCapability(policy)` inside the canonical state. */
|
|
80
|
+
export declare function deriveEvidenceCapability(policy: LoopPolicy, observations?: ReadonlyArray<MachineObservation>): EvidenceCapability;
|
|
81
|
+
/** Collects observations from all configured providers (always async).
|
|
82
|
+
*
|
|
83
|
+
* v3.8: every configured provider produces exactly one observation per
|
|
84
|
+
* collection. A provider that returns null, throws, times out, or is aborted
|
|
85
|
+
* yields an observation with `unavailable` / `error` / `timeout` / `aborted`
|
|
86
|
+
* — the round's factual record keeps the gap instead of hiding it. */
|
|
61
87
|
export declare class EvidenceCollector {
|
|
62
88
|
private providers;
|
|
63
89
|
constructor(providers: EvidenceProvider[]);
|
|
64
|
-
/** Build the collector described by loop_policy.json.
|
|
65
|
-
*
|
|
90
|
+
/** Build the collector described by loop_policy.json. Every configured name
|
|
91
|
+
* yields exactly one provider, in configuration order: a name with no
|
|
92
|
+
* registered factory gets `unregisteredProvider`, which records
|
|
93
|
+
* `unavailable` rather than letting a configured provider vanish without a
|
|
94
|
+
* trace. */
|
|
66
95
|
static fromProviderNames(providerNames: string[]): EvidenceCollector;
|
|
67
96
|
/** Build built-ins and explicitly configured command providers. */
|
|
68
97
|
static fromPolicy(): EvidenceCollector;
|
|
69
98
|
/** Capture all providers concurrently with per-provider timeout isolation. */
|
|
70
|
-
collectAsync(options?: EvidenceCollectOptions): Promise<
|
|
71
|
-
}
|
|
72
|
-
export interface CommandEvidenceData extends Record<string, unknown> {
|
|
73
|
-
kind: "command";
|
|
74
|
-
commandName: string;
|
|
75
|
-
required: boolean;
|
|
76
|
-
phase: "before" | "after";
|
|
77
|
-
status: "passed" | "failed" | "timeout" | "missing" | "invalid_cwd" | "aborted";
|
|
78
|
-
exitCode: number | null;
|
|
79
|
-
signal: string | null;
|
|
80
|
-
durationMs: number;
|
|
81
|
-
stdout: string;
|
|
82
|
-
stderr: string;
|
|
83
|
-
truncated: boolean;
|
|
84
|
-
/** v3.3: Workspace files this command depends on (resolved at capture
|
|
85
|
-
* time from executable + args, plus package.json). The verification gate
|
|
86
|
-
* cross-checks these against the round's git diff to detect verification
|
|
87
|
-
* domain tampering — a command whose entrypoint changed this round is not
|
|
88
|
-
* trustworthy. Forward-slash paths (git convention). Empty = unresolvable
|
|
89
|
-
* (external command like `bash -c`) — the gate fails open. */
|
|
90
|
-
entrypointFiles: string[];
|
|
99
|
+
collectAsync(options?: EvidenceCollectOptions): Promise<MachineObservation[]>;
|
|
91
100
|
}
|
|
101
|
+
/** The workspace files a command's execution depends on, resolved
|
|
102
|
+
* statically: the script it names on its own command line, plus package.json
|
|
103
|
+
* when a package manager is what runs it. Exported for the pure-function
|
|
104
|
+
* test — spawning a real package manager is not portable (a bare `npm`
|
|
105
|
+
* cannot be spawned without a shell, and the runtime uses `shell: false`). */
|
|
106
|
+
export declare function resolveEntrypointFiles(executable: string, args: string[], cwd: string): string[];
|
|
92
107
|
/** Explicit, shell-free verification command. Disabled unless configured. */
|
|
93
108
|
export declare class CommandEvidenceProvider implements EvidenceProvider {
|
|
94
109
|
readonly name: string;
|
|
110
|
+
readonly kind: "command";
|
|
95
111
|
private readonly config;
|
|
112
|
+
private readonly configHash;
|
|
96
113
|
constructor(config: CommandEvidencePolicy);
|
|
97
|
-
capture(context?: EvidenceCaptureContext): Promise<
|
|
98
|
-
private
|
|
114
|
+
capture(context?: EvidenceCaptureContext): Promise<CommandObservation | null>;
|
|
115
|
+
private observation;
|
|
99
116
|
}
|
|
100
117
|
/** v1.17: Result of capturing git file state across all three categories. */
|
|
101
118
|
export interface GitFileState {
|
|
@@ -125,43 +142,22 @@ export declare function captureGitFileStateAsync(signal?: AbortSignal, timeoutMs
|
|
|
125
142
|
/** Workspace root; injectable so tests can capture against a temp repo.
|
|
126
143
|
* Defaults to the process cwd, matching the evidence providers. */
|
|
127
144
|
cwd?: string): Promise<GitFileState | null>;
|
|
128
|
-
/** v3.7: async capture only — the synchronous captureGitFileState() fallback
|
|
129
|
-
* was removed together with the sync lifecycle (prepareSync). */
|
|
130
145
|
export declare class GitEvidenceProvider implements EvidenceProvider {
|
|
131
146
|
readonly name = "git";
|
|
132
|
-
|
|
147
|
+
readonly kind: "git";
|
|
148
|
+
capture(context?: EvidenceCaptureContext): Promise<GitObservation | null>;
|
|
133
149
|
}
|
|
134
|
-
/** Extract merged file list from
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* Looks for the "git" provider first; falls back to merging all
|
|
138
|
-
* providers' files arrays (deduplicated). */
|
|
139
|
-
export declare function extractFilesFromSnapshots(snapshots: ProviderSnapshot[]): string[] | null;
|
|
140
|
-
/** Return provider snapshots narrowed to evidence produced during this round.
|
|
141
|
-
* The full provider payload remains available in data, while files contains
|
|
142
|
-
* only added/removed/content-changed paths. */
|
|
143
|
-
export declare function diffSnapshotCollections(before: ProviderSnapshot[], after: ProviderSnapshot[]): ProviderSnapshot[];
|
|
144
|
-
export declare function diffSnapshots(before: ProviderSnapshot[], after: ProviderSnapshot[]): string[] | null;
|
|
145
|
-
/** v3.3.1: Implement the v2.13 policy switch `engine.backtrack_auto_restore` —
|
|
146
|
-
* automatically restore the workspace after a backtrack:
|
|
147
|
-
* 1. `git stash push -u` — every uncommitted change (tracked + untracked)
|
|
148
|
-
* is preserved in a stash, never destroyed (an untracked file the agent
|
|
149
|
-
* created in the failed rounds is not silently deleted).
|
|
150
|
-
* 2. `git reset --hard <restoreHead>` — when the failed rounds created
|
|
151
|
-
* commits, discard them back to the clean round's commit (the v2.12
|
|
152
|
-
* restore-point HEAD).
|
|
150
|
+
/** Extract merged file list from observations for backward compat with
|
|
151
|
+
* runtimeFilesChanged (string[] | null).
|
|
153
152
|
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
ok: boolean;
|
|
165
|
-
detail: string;
|
|
166
|
-
}>;
|
|
153
|
+
* Looks for the "git" provider first; falls back to merging all providers'
|
|
154
|
+
* files arrays (deduplicated). */
|
|
155
|
+
export declare function extractFilesFromSnapshots(observations: MachineObservation[]): string[] | null;
|
|
156
|
+
/** v3.8: The round delta of two observation collections (before → after):
|
|
157
|
+
* files that appeared, disappeared, or changed content. The full payload of
|
|
158
|
+
* each after-observation is preserved; only `files` is narrowed. This is the
|
|
159
|
+
* single derivation the transaction persists and every reader consumes. */
|
|
160
|
+
export declare function diffSnapshotCollections(before: MachineObservation[], after: MachineObservation[]): MachineObservation[];
|
|
161
|
+
/** Compute a diff between two observation collections (before → after). */
|
|
162
|
+
export declare function diffSnapshots(before: MachineObservation[], after: MachineObservation[]): string[] | null;
|
|
167
163
|
//# 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
|
|
1
|
+
{"version":3,"file":"evidence-provider.d.ts","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"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"}
|