loopforge 2.11.0 → 3.0.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 +145 -128
- package/dist/canonical-event-writer.d.ts +20 -0
- package/dist/canonical-event-writer.d.ts.map +1 -0
- package/dist/canonical-event-writer.js +131 -0
- package/dist/canonical-event-writer.js.map +1 -0
- package/dist/canonical-state.d.ts +20 -16
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +170 -61
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -10
- package/dist/cli.js.map +1 -1
- package/dist/cognitive-governance.d.ts +48 -0
- package/dist/cognitive-governance.d.ts.map +1 -0
- package/dist/cognitive-governance.js +226 -0
- package/dist/cognitive-governance.js.map +1 -0
- package/dist/compiler-subgoals.d.ts +7 -0
- package/dist/compiler-subgoals.d.ts.map +1 -0
- package/dist/compiler-subgoals.js +93 -0
- package/dist/compiler-subgoals.js.map +1 -0
- package/dist/derive-id.d.ts +12 -0
- package/dist/derive-id.d.ts.map +1 -0
- package/dist/derive-id.js +31 -0
- package/dist/derive-id.js.map +1 -0
- package/dist/evidence-provider.d.ts +23 -21
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +34 -74
- package/dist/evidence-provider.js.map +1 -1
- package/dist/generate-schema.js +90 -2
- package/dist/generate-schema.js.map +1 -1
- package/dist/index.d.ts +22 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -16
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +1 -1
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +250 -337
- package/dist/loop-compiler.js.map +1 -1
- package/dist/loop-extras-parser.d.ts +2 -2
- package/dist/loop-extras-parser.d.ts.map +1 -1
- package/dist/loop-extras-parser.js +2 -2
- package/dist/loop-extras-parser.js.map +1 -1
- package/dist/loop-store.d.ts +20 -58
- package/dist/loop-store.d.ts.map +1 -1
- package/dist/loop-store.js +232 -309
- package/dist/loop-store.js.map +1 -1
- package/dist/mcp/server.d.ts +3 -3
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +83 -13
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session-projection.d.ts +5 -0
- package/dist/mcp/session-projection.d.ts.map +1 -0
- package/dist/mcp/session-projection.js +18 -0
- package/dist/mcp/session-projection.js.map +1 -0
- package/dist/mcp/session-queue.d.ts +3 -0
- package/dist/mcp/session-queue.d.ts.map +1 -0
- package/dist/mcp/session-queue.js +18 -0
- package/dist/mcp/session-queue.js.map +1 -0
- package/dist/mcp/session-types.d.ts +72 -0
- package/dist/mcp/session-types.d.ts.map +1 -0
- package/dist/mcp/session-types.js +2 -0
- package/dist/mcp/session-types.js.map +1 -0
- package/dist/mcp/session.d.ts +49 -93
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +544 -245
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/tools.d.ts +26 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +399 -274
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy-metrics.d.ts +17 -1
- package/dist/policy-metrics.d.ts.map +1 -1
- package/dist/policy-metrics.js +164 -1
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +34 -18
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +113 -18
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +5 -3
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +126 -77
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/prompt-policy.d.ts +8 -1
- package/dist/prompt-policy.d.ts.map +1 -1
- package/dist/prompt-policy.js +26 -8
- package/dist/prompt-policy.js.map +1 -1
- package/dist/protocol.d.ts +232 -192
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +15 -100
- package/dist/protocol.js.map +1 -1
- package/dist/replay.d.ts +11 -3
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +51 -14
- package/dist/replay.js.map +1 -1
- package/dist/round-commit-store.d.ts +12 -0
- package/dist/round-commit-store.d.ts.map +1 -0
- package/dist/round-commit-store.js +13 -0
- package/dist/round-commit-store.js.map +1 -0
- package/dist/round-coordinator.d.ts +25 -18
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +83 -71
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +14 -10
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +9 -13
- package/dist/round-driver.js.map +1 -1
- package/dist/round-gate.d.ts +31 -0
- package/dist/round-gate.d.ts.map +1 -0
- package/dist/round-gate.js +259 -0
- package/dist/round-gate.js.map +1 -0
- package/dist/round-recovery.d.ts +17 -0
- package/dist/round-recovery.d.ts.map +1 -0
- package/dist/round-recovery.js +117 -0
- package/dist/round-recovery.js.map +1 -0
- package/dist/round-report.d.ts +16 -0
- package/dist/round-report.d.ts.map +1 -0
- package/dist/round-report.js +401 -0
- package/dist/round-report.js.map +1 -0
- package/dist/round-transaction.d.ts +19 -12
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +102 -88
- package/dist/round-transaction.js.map +1 -1
- package/dist/runtime-services.d.ts +59 -0
- package/dist/runtime-services.d.ts.map +1 -0
- package/dist/runtime-services.js +460 -0
- package/dist/runtime-services.js.map +1 -0
- package/dist/storage.d.ts +3 -9
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +6 -17
- package/dist/storage.js.map +1 -1
- package/dist/token-utils.d.ts +9 -8
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +50 -10
- package/dist/token-utils.js.map +1 -1
- package/dist/vault-format.d.ts +4 -0
- package/dist/vault-format.d.ts.map +1 -0
- package/dist/vault-format.js +4 -0
- package/dist/vault-format.js.map +1 -0
- package/dist/vault-types.d.ts +24 -0
- package/dist/vault-types.d.ts.map +1 -0
- package/dist/vault-types.js +2 -0
- package/dist/vault-types.js.map +1 -0
- package/loop_policy.json +10 -12
- package/loopforge-policy.json +340 -0
- package/package.json +12 -6
- package/skills/perception/SKILL.md +199 -164
- 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/enforcement-gate.d.ts +0 -71
- package/dist/enforcement-gate.d.ts.map +0 -1
- package/dist/enforcement-gate.js +0 -744
- package/dist/enforcement-gate.js.map +0 -1
- package/dist/engine.d.ts +0 -59
- package/dist/engine.d.ts.map +0 -1
- package/dist/engine.js +0 -596
- package/dist/engine.js.map +0 -1
- package/dist/self-eval.d.ts +0 -23
- package/dist/self-eval.d.ts.map +0 -1
- package/dist/self-eval.js +0 -181
- package/dist/self-eval.js.map +0 -1
- package/dist/verification-gate.d.ts +0 -56
- package/dist/verification-gate.d.ts.map +0 -1
- package/dist/verification-gate.js +0 -563
- package/dist/verification-gate.js.map +0 -1
package/dist/self-eval.js
DELETED
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
/** Self-evaluation extraction and parsing — pure functions.
|
|
2
|
-
*
|
|
3
|
-
* These functions parse an Agent's raw output into a structured
|
|
4
|
-
* SelfEvaluation. They have no dependency on Engine state, file I/O,
|
|
5
|
-
* or external services. They are shared by both the MCP tool handler
|
|
6
|
-
* (which receives structured JSON directly) and the legacy invoke
|
|
7
|
-
* path (which regex-scans free-text Agent output).
|
|
8
|
-
*/
|
|
9
|
-
import { makeExecutionEvidence, makeSelfEvaluation, SELF_EVAL_REGEX, } from "./protocol.js";
|
|
10
|
-
// ── Raw parsing helpers ───────────────────────────────────────────────────
|
|
11
|
-
/** Parse ExecutionEvidence from a raw JSON object. */
|
|
12
|
-
export function parseExecutionEvidence(raw) {
|
|
13
|
-
if (!raw || typeof raw !== "object")
|
|
14
|
-
return undefined;
|
|
15
|
-
const testResults = raw.test_results;
|
|
16
|
-
return makeExecutionEvidence({
|
|
17
|
-
files_changed: Array.isArray(raw.files_changed)
|
|
18
|
-
? raw.files_changed.filter((v) => typeof v === "string")
|
|
19
|
-
: [],
|
|
20
|
-
test_results: testResults && typeof testResults.passed === "number"
|
|
21
|
-
? {
|
|
22
|
-
passed: testResults.passed,
|
|
23
|
-
failed: testResults.failed ?? 0,
|
|
24
|
-
skipped: testResults.skipped ?? 0,
|
|
25
|
-
}
|
|
26
|
-
: null,
|
|
27
|
-
success_criteria_met: Array.isArray(raw.success_criteria_met)
|
|
28
|
-
? raw.success_criteria_met.filter((v) => typeof v === "string")
|
|
29
|
-
: [],
|
|
30
|
-
success_criteria_remaining: Array.isArray(raw.success_criteria_remaining)
|
|
31
|
-
? raw.success_criteria_remaining.filter((v) => typeof v === "string")
|
|
32
|
-
: [],
|
|
33
|
-
progress_estimate: typeof raw.progress_estimate === "number"
|
|
34
|
-
? Math.max(0, Math.min(1, raw.progress_estimate))
|
|
35
|
-
: 0.0,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
/** Parse CriterionRevision[] from a raw JSON array. */
|
|
39
|
-
export function parseCriterionRevisions(raw) {
|
|
40
|
-
if (!Array.isArray(raw))
|
|
41
|
-
return [];
|
|
42
|
-
return raw
|
|
43
|
-
.filter((v) => typeof v === "object" && v !== null &&
|
|
44
|
-
typeof v.old === "string" &&
|
|
45
|
-
typeof v.new === "string")
|
|
46
|
-
.map((v) => {
|
|
47
|
-
const r = v;
|
|
48
|
-
return { old: r.old, new: r.new };
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
/** Parse WorkerResult[] from a raw JSON array. */
|
|
52
|
-
export function parseWorkerResults(raw) {
|
|
53
|
-
if (!Array.isArray(raw))
|
|
54
|
-
return [];
|
|
55
|
-
return raw
|
|
56
|
-
.filter((v) => typeof v === "object" && v !== null &&
|
|
57
|
-
typeof v.agentId === "string" &&
|
|
58
|
-
typeof v.subTask === "string" &&
|
|
59
|
-
typeof v.resultSummary === "string")
|
|
60
|
-
.map((v) => {
|
|
61
|
-
const w = v;
|
|
62
|
-
return {
|
|
63
|
-
agentId: w.agentId,
|
|
64
|
-
subAgentType: typeof w.subAgentType === "string" ? w.subAgentType : "general-purpose",
|
|
65
|
-
subTask: w.subTask,
|
|
66
|
-
resultSummary: w.resultSummary,
|
|
67
|
-
success: typeof w.success === "boolean" ? w.success : false,
|
|
68
|
-
discoveredConstraints: Array.isArray(w.discoveredConstraints)
|
|
69
|
-
? w.discoveredConstraints.filter((c) => typeof c === "string")
|
|
70
|
-
: [],
|
|
71
|
-
};
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
// ── Self-evaluation extraction ───────────────────────────────────────────
|
|
75
|
-
/** Extract a structured SelfEvaluation from agent output text.
|
|
76
|
-
* Returns null if no valid self-eval block is found.
|
|
77
|
-
* The agent is instructed to output JSON between the delimiters. */
|
|
78
|
-
export function extractSelfEvaluation(text) {
|
|
79
|
-
const match = text.match(SELF_EVAL_REGEX);
|
|
80
|
-
if (!match)
|
|
81
|
-
return null;
|
|
82
|
-
try {
|
|
83
|
-
const raw = JSON.parse(match[1]);
|
|
84
|
-
if (typeof raw.success !== "boolean")
|
|
85
|
-
return null;
|
|
86
|
-
if (typeof raw.output_summary !== "string")
|
|
87
|
-
return null;
|
|
88
|
-
if (!Array.isArray(raw.constraint_violations))
|
|
89
|
-
return null;
|
|
90
|
-
if (typeof raw.should_continue !== "boolean")
|
|
91
|
-
return null;
|
|
92
|
-
return buildSelfEvaluation(raw);
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/** Build a SelfEvaluation from a parsed JSON object.
|
|
99
|
-
* Lenient parsing: missing optional fields get sensible defaults. */
|
|
100
|
-
export function buildSelfEvaluation(raw) {
|
|
101
|
-
const executionEvidence = parseExecutionEvidence(raw.execution_evidence);
|
|
102
|
-
const retractedConstraints = Array.isArray(raw.retracted_constraints)
|
|
103
|
-
? raw.retracted_constraints.filter((v) => typeof v === "string")
|
|
104
|
-
: [];
|
|
105
|
-
const revisedCriteria = parseCriterionRevisions(raw.revised_success_criteria);
|
|
106
|
-
const wrongAssumptions = Array.isArray(raw.wrong_assumptions)
|
|
107
|
-
? raw.wrong_assumptions.filter((v) => typeof v === "string")
|
|
108
|
-
: [];
|
|
109
|
-
const workerResults = parseWorkerResults(raw.worker_results);
|
|
110
|
-
return makeSelfEvaluation({
|
|
111
|
-
success: typeof raw.success === "boolean" ? raw.success : false,
|
|
112
|
-
output_summary: typeof raw.output_summary === "string" ? raw.output_summary : "",
|
|
113
|
-
constraint_violations: Array.isArray(raw.constraint_violations)
|
|
114
|
-
? raw.constraint_violations.filter((v) => typeof v === "string")
|
|
115
|
-
: [],
|
|
116
|
-
should_continue: typeof raw.should_continue === "boolean" ? raw.should_continue : true,
|
|
117
|
-
discovered_constraints: Array.isArray(raw.discovered_constraints)
|
|
118
|
-
? raw.discovered_constraints.filter((v) => typeof v === "string")
|
|
119
|
-
: [],
|
|
120
|
-
objective_refinement: typeof raw.objective_refinement === "string"
|
|
121
|
-
? raw.objective_refinement
|
|
122
|
-
: "",
|
|
123
|
-
emerged_subtasks: Array.isArray(raw.emerged_subtasks)
|
|
124
|
-
? raw.emerged_subtasks.filter((v) => typeof v === "string")
|
|
125
|
-
: [],
|
|
126
|
-
execution_evidence: executionEvidence,
|
|
127
|
-
retracted_constraints: retractedConstraints,
|
|
128
|
-
revised_success_criteria: revisedCriteria,
|
|
129
|
-
wrong_assumptions: wrongAssumptions,
|
|
130
|
-
worker_results: workerResults,
|
|
131
|
-
compression_checkpoint: typeof raw.compression_checkpoint === "boolean" ? raw.compression_checkpoint : false,
|
|
132
|
-
checkpoint_label: typeof raw.checkpoint_label === "string" ? raw.checkpoint_label : "",
|
|
133
|
-
next_action: typeof raw.next_action === "string" ? raw.next_action : undefined,
|
|
134
|
-
completed_subtasks: Array.isArray(raw.completed_subtasks)
|
|
135
|
-
? raw.completed_subtasks.filter((v) => typeof v === "string")
|
|
136
|
-
: [],
|
|
137
|
-
blocked_subtasks: Array.isArray(raw.blocked_subtasks)
|
|
138
|
-
? raw.blocked_subtasks.filter((v) => typeof v === "string")
|
|
139
|
-
: [],
|
|
140
|
-
canceled_subtasks: Array.isArray(raw.canceled_subtasks)
|
|
141
|
-
? raw.canceled_subtasks.filter((v) => typeof v === "string")
|
|
142
|
-
: [],
|
|
143
|
-
stop_reason: raw.stop_reason === "gave_up" || raw.stop_reason === "blocked" || raw.stop_reason === "needs_human_input"
|
|
144
|
-
? raw.stop_reason
|
|
145
|
-
: undefined,
|
|
146
|
-
drift_clarification: typeof raw.drift_clarification === "string" ? raw.drift_clarification : undefined,
|
|
147
|
-
prompt_requests: parsePromptRequests(raw.prompt_requests),
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
/** Parse a PromptRequests object from raw JSON input.
|
|
151
|
-
* Lenient: missing or invalid fields get sensible defaults.
|
|
152
|
-
* Returns undefined if the raw value is absent or not an object,
|
|
153
|
-
* so makeSelfEvaluation can distinguish "not set" from "empty". */
|
|
154
|
-
function parsePromptRequests(raw) {
|
|
155
|
-
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
156
|
-
return undefined;
|
|
157
|
-
const obj = raw;
|
|
158
|
-
const emphasize = Array.isArray(obj.emphasize)
|
|
159
|
-
? obj.emphasize.filter((v) => typeof v === "string").slice(0, 10)
|
|
160
|
-
: [];
|
|
161
|
-
const validExpands = new Set([
|
|
162
|
-
"milestones", "sub_goals", "constraint_lifecycle",
|
|
163
|
-
"agent_trust", "progress", "loop_synthesis",
|
|
164
|
-
]);
|
|
165
|
-
const expand = Array.isArray(obj.expand)
|
|
166
|
-
? obj.expand.filter((v) => typeof v === "string" && validExpands.has(v))
|
|
167
|
-
: [];
|
|
168
|
-
const confusionPoints = Array.isArray(obj.confusion_points)
|
|
169
|
-
? obj.confusion_points.filter((v) => typeof v === "string").slice(0, 5)
|
|
170
|
-
: [];
|
|
171
|
-
// Return undefined when all fields are empty — semantically equivalent
|
|
172
|
-
// to "not set", avoids carrying an empty object through the pipeline.
|
|
173
|
-
if (emphasize.length === 0 && expand.length === 0 && confusionPoints.length === 0) {
|
|
174
|
-
return undefined;
|
|
175
|
-
}
|
|
176
|
-
return { emphasize, expand, confusion_points: confusionPoints };
|
|
177
|
-
}
|
|
178
|
-
// v2.6: heuristicSelfEvaluation removed — if structured extraction fails,
|
|
179
|
-
// the round is stalled. The 20-line keyword heuristic was dead weight; an
|
|
180
|
-
// agent that can't produce a structured self-evaluation is genuinely stuck.
|
|
181
|
-
//# sourceMappingURL=self-eval.js.map
|
package/dist/self-eval.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"self-eval.js","sourceRoot":"","sources":["../src/self-eval.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/** Verification Gate — Layer 1 cross-round consistency checks.
|
|
2
|
-
*
|
|
3
|
-
* Pure-function module. Validates an agent's SelfEvaluation against the
|
|
4
|
-
* loop's own lineage before it enters the compiler.
|
|
5
|
-
*
|
|
6
|
-
* Verdict semantics:
|
|
7
|
-
* - trusted: all checks passed; flags are informational only.
|
|
8
|
-
* - suspect: one or more warn-level flags; flags become warnings in
|
|
9
|
-
* the next prompt so the agent can clarify.
|
|
10
|
-
* - contradicted: one or more error-level flags; the success flag for
|
|
11
|
-
* this round is excluded from the success trend (NOT
|
|
12
|
-
* modified). Flags become hard constraints — the agent
|
|
13
|
-
* must respond in the next round.
|
|
14
|
-
*/
|
|
15
|
-
import type { VaultEntry } from "./backends/interface.js";
|
|
16
|
-
import type { ProviderSnapshot } from "./evidence-provider.js";
|
|
17
|
-
import type { SelfEvaluation, VerificationResult } from "./protocol.js";
|
|
18
|
-
/** Extract the round number from a vault entry's loop_lineage.
|
|
19
|
-
* Returns 0 if the entry has no lineage or no round field.
|
|
20
|
-
* In practice, persistLoopLineage always writes round ≥ 1, so 0
|
|
21
|
-
* unambiguously means "not a valid round entry" in this context.
|
|
22
|
-
* Exported for reuse by enforcement-gate.ts. */
|
|
23
|
-
export declare function entryRound(entry: VaultEntry): number;
|
|
24
|
-
interface ParsedTestCounts {
|
|
25
|
-
passed: number;
|
|
26
|
-
failed: number;
|
|
27
|
-
skipped: number;
|
|
28
|
-
total: number;
|
|
29
|
-
}
|
|
30
|
-
/** Best-effort parse of test counts from common test-runner output formats.
|
|
31
|
-
*
|
|
32
|
-
* Scans the last 2000 characters of stdout (where summary lines typically
|
|
33
|
-
* appear) and tries patterns in descending specificity order. Returns null
|
|
34
|
-
* when the output format is unrecognized, stdout is empty, or a confident
|
|
35
|
-
* parse cannot be made.
|
|
36
|
-
*
|
|
37
|
-
* Recognized formats: Jest verbose/compact, Mocha, pytest/unittest, Go test,
|
|
38
|
-
* and PHPUnit OK summaries. */
|
|
39
|
-
export declare function parseTestOutput(stdout: string): ParsedTestCounts | null;
|
|
40
|
-
/** Verify a SelfEvaluation against the loop's cross-round lineage.
|
|
41
|
-
*
|
|
42
|
-
* @param selfEval The agent's self-evaluation for the current round.
|
|
43
|
-
* @param currentRound The current round number (1-based).
|
|
44
|
-
* @param vaultEntries Vault entries for this loop (non-feedback only).
|
|
45
|
-
* @param prevSelfEval The agent's self-evaluation from the previous round
|
|
46
|
-
* (null for round 1).
|
|
47
|
-
* @param evidenceSnapshots v1.18: Evidence snapshots from configured providers.
|
|
48
|
-
* Used by checkEvidenceIntegrity for multi-provider
|
|
49
|
-
* cross-validation. Defaults to empty array. */
|
|
50
|
-
export declare function verifySelfEvaluation(selfEval: SelfEvaluation, currentRound: number, vaultEntries: VaultEntry[], prevSelfEval?: SelfEvaluation | null, evidenceSnapshots?: ProviderSnapshot[],
|
|
51
|
-
/** v2.13: Files from skipped backtrack rounds. If the agent's
|
|
52
|
-
* files_changed overlaps significantly with these, the workspace
|
|
53
|
-
* was not properly restored before working. */
|
|
54
|
-
backtrackSkippedFiles?: string[]): VerificationResult;
|
|
55
|
-
export {};
|
|
56
|
-
//# sourceMappingURL=verification-gate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verification-gate.d.ts","sourceRoot":"","sources":["../src/verification-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAoB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAQ1F;;;;iDAIiD;AACjD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEpD;AAkTD,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;gCAQgC;AAChC,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CA4DvE;AA0LD;;;;;;;;;4EAS4E;AAC5E,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,UAAU,EAAE,EAC1B,YAAY,GAAE,cAAc,GAAG,IAAW,EAC1C,iBAAiB,GAAE,gBAAgB,EAAO;AAC1C;;gDAEgD;AAChD,qBAAqB,GAAE,MAAM,EAAO,GACnC,kBAAkB,CAkDpB"}
|