loopforge 3.7.0 → 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/LICENSE +21 -21
- package/README.md +171 -157
- 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 +75 -69
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +276 -168
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +111 -12
- 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 +30 -16
- package/dist/cognitive-facts.js.map +1 -1
- package/dist/cognitive-governance.d.ts +30 -6
- package/dist/cognitive-governance.d.ts.map +1 -1
- package/dist/cognitive-governance.js +74 -18
- package/dist/cognitive-governance.js.map +1 -1
- package/dist/committed-round.d.ts +109 -24
- package/dist/committed-round.d.ts.map +1 -1
- package/dist/committed-round.js +235 -52
- 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 +43 -20
- package/dist/enforcement-gate.d.ts.map +1 -1
- package/dist/enforcement-gate.js +269 -378
- package/dist/enforcement-gate.js.map +1 -1
- package/dist/engine.d.ts +11 -6
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +102 -67
- 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 +91 -90
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +349 -160
- 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 +250 -53
- package/dist/generate-schema.js.map +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +41 -40
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +275 -515
- 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 +40 -21
- package/dist/mcp/round-lifecycle.d.ts.map +1 -1
- package/dist/mcp/round-lifecycle.js +173 -120
- package/dist/mcp/round-lifecycle.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +63 -10
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +53 -7
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +240 -139
- 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 +377 -125
- 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 +65 -95
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +151 -39
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +7 -33
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +313 -473
- 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 +411 -168
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +23 -69
- 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 +55 -16
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +179 -57
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +7 -5
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +2 -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 +23 -9
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +99 -22
- package/dist/round-transaction.js.map +1 -1
- package/dist/self-eval.d.ts +127 -11
- package/dist/self-eval.d.ts.map +1 -1
- package/dist/self-eval.js +517 -36
- 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 +27 -46
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +308 -557
- package/dist/verification-gate.js.map +1 -1
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- 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 +17 -25
- package/package.json +7 -7
- package/skills/perception/SKILL.md +266 -64
package/dist/mcp/server.js
CHANGED
|
@@ -8,7 +8,41 @@ import { appendFileSync } from "node:fs";
|
|
|
8
8
|
import { SessionManager } from "./session.js";
|
|
9
9
|
import { TOOL_HANDLERS, TOOL_SCHEMAS, ToolInputValidationError, validateToolDispatchInput, validateToolOutput, } from "./tools.js";
|
|
10
10
|
import { isRecord } from "../token-utils.js";
|
|
11
|
-
|
|
11
|
+
import { getPolicy } from "../policy.js";
|
|
12
|
+
import { VERSION } from "../version.js";
|
|
13
|
+
const SERVER_INFO = { name: "loopforge-mcp", version: VERSION };
|
|
14
|
+
/** v3.8: Error codes whose fix is a corrected payload the agent may resend.
|
|
15
|
+
* Everything else is a state/transport condition. */
|
|
16
|
+
const RETRYABLE_ERROR_CODES = new Set([
|
|
17
|
+
"evaluation_invalid",
|
|
18
|
+
"contract_invalid",
|
|
19
|
+
"policy_invalid",
|
|
20
|
+
"round_id_required",
|
|
21
|
+
"round_id_mismatch",
|
|
22
|
+
"invalid_argument",
|
|
23
|
+
]);
|
|
24
|
+
/** v3.8: The uniform tool result envelope. A handler returns the stable code in
|
|
25
|
+
* `error` and the human sentence in `errorMessage` (absent → the code is also
|
|
26
|
+
* the message, for the errors whose code IS self-explanatory); every other
|
|
27
|
+
* result is `ok: true` with its payload unchanged. */
|
|
28
|
+
function applyToolEnvelope(output) {
|
|
29
|
+
const code = typeof output.error === "string" ? output.error : null;
|
|
30
|
+
if (code === null)
|
|
31
|
+
return { ok: true, ...output };
|
|
32
|
+
const { error: _error, errorMessage, details, sessionId, roundId, ...rest } = output;
|
|
33
|
+
return {
|
|
34
|
+
ok: false,
|
|
35
|
+
error: {
|
|
36
|
+
code,
|
|
37
|
+
message: typeof errorMessage === "string" && errorMessage.length > 0 ? errorMessage : code,
|
|
38
|
+
retryable: RETRYABLE_ERROR_CODES.has(code),
|
|
39
|
+
...(typeof sessionId === "string" ? { sessionId } : {}),
|
|
40
|
+
...(typeof roundId === "string" ? { roundId } : {}),
|
|
41
|
+
...(details !== undefined ? { details } : {}),
|
|
42
|
+
},
|
|
43
|
+
...rest,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
12
46
|
const SUPPORTED_PROTOCOL_VERSIONS = new Set([
|
|
13
47
|
"2024-11-05",
|
|
14
48
|
"2025-03-26",
|
|
@@ -19,9 +53,16 @@ export const SERVER_INSTRUCTIONS = [
|
|
|
19
53
|
"Use LoopForge directly for long-running work. Start by calling loopforge_status ",
|
|
20
54
|
"with view=all to list loops, then loopforge_status for a matching session or ",
|
|
21
55
|
"loopforge_start for a new one. ",
|
|
56
|
+
// v3.8.1: the report fields named here must exist. The old text asked for
|
|
57
|
+
// "remaining criteria" and "a concrete next action" — `success_criteria_remaining`
|
|
58
|
+
// and `next_action` were both deleted in v3.8, so the runtime was instructing
|
|
59
|
+
// every client to submit fields it would drop.
|
|
22
60
|
"Before each agent-process boundary, call loopforge_next with the roundId from ",
|
|
23
|
-
"the most recent response, honest
|
|
24
|
-
"
|
|
61
|
+
"the most recent response, one honest evaluation (success, output_summary, ",
|
|
62
|
+
"constraint_violations, should_continue) plus an execution_report carrying ",
|
|
63
|
+
"files_changed, tests_reported, criterion_claims and contract_item_claims. ",
|
|
64
|
+
"Claims never verify themselves: only machine observations do. ",
|
|
65
|
+
"Follow reject or backtrack prompts and retry loopforge_next. ",
|
|
25
66
|
"Keep one LoopForge session across outer agent rounds. ",
|
|
26
67
|
"Do not replace these MCP calls with shell or CLI wrappers.",
|
|
27
68
|
].join("");
|
|
@@ -129,8 +170,15 @@ export class McpServer {
|
|
|
129
170
|
instructions: SERVER_INSTRUCTIONS,
|
|
130
171
|
};
|
|
131
172
|
}
|
|
132
|
-
|
|
133
|
-
|
|
173
|
+
// v3.7.1: the two gate tools are hidden when policy.gate.enabled=false
|
|
174
|
+
// (the default) — they are opt-in governance, not a stable surface.
|
|
175
|
+
if (req.method === "tools/list") {
|
|
176
|
+
const tools = getPolicy().gate.enabled
|
|
177
|
+
? TOOL_SCHEMAS
|
|
178
|
+
: TOOL_SCHEMAS.filter((tool) => tool.name !== "loopforge_gate_check" &&
|
|
179
|
+
tool.name !== "loopforge_gate_resolve");
|
|
180
|
+
return { tools };
|
|
181
|
+
}
|
|
134
182
|
if (req.method !== "tools/call") {
|
|
135
183
|
throw new JsonRpcError(-32601, `Unknown method: ${req.method}`);
|
|
136
184
|
}
|
|
@@ -160,11 +208,16 @@ export class McpServer {
|
|
|
160
208
|
throw error;
|
|
161
209
|
}
|
|
162
210
|
const output = await handler(this.mgr, args);
|
|
211
|
+
// v3.8: the uniform tool result envelope — every tool answers with
|
|
212
|
+
// { ok: true, ...payload } or { ok: false, error: ToolError }. Handlers
|
|
213
|
+
// keep returning their in-band error string; this boundary is the single
|
|
214
|
+
// place that turns it into the wire contract.
|
|
215
|
+
const wrapped = applyToolEnvelope(output);
|
|
163
216
|
// v2.14: enforce the declared output contracts — a handler output that
|
|
164
217
|
// violates its outputSchema is a contract bug, surfaced as a clean
|
|
165
218
|
// JSON-RPC error instead of silently shipping a schema-violating result.
|
|
166
219
|
try {
|
|
167
|
-
validateToolOutput(name,
|
|
220
|
+
validateToolOutput(name, wrapped);
|
|
168
221
|
}
|
|
169
222
|
catch (error) {
|
|
170
223
|
if (error instanceof ToolInputValidationError) {
|
|
@@ -172,7 +225,7 @@ export class McpServer {
|
|
|
172
225
|
}
|
|
173
226
|
throw error;
|
|
174
227
|
}
|
|
175
|
-
const isError =
|
|
228
|
+
const isError = wrapped.ok === false;
|
|
176
229
|
// Extract the compiled prompt (present in start/next/resume responses).
|
|
177
230
|
// MCP content annotations signal priority to the host so it can
|
|
178
231
|
// preserve critical assistant-facing content during compaction.
|
|
@@ -190,7 +243,7 @@ export class McpServer {
|
|
|
190
243
|
});
|
|
191
244
|
// Secondary: structured metadata (sessionId, round, level, warnings,
|
|
192
245
|
// enforcementAction, etc.) without the prompt.
|
|
193
|
-
const { prompt: _prompt, ...meta } =
|
|
246
|
+
const { prompt: _prompt, ...meta } = wrapped;
|
|
194
247
|
content.push({
|
|
195
248
|
type: "text",
|
|
196
249
|
text: JSON.stringify(meta),
|
|
@@ -200,7 +253,7 @@ export class McpServer {
|
|
|
200
253
|
else if (isError) {
|
|
201
254
|
content.push({
|
|
202
255
|
type: "text",
|
|
203
|
-
text: JSON.stringify(
|
|
256
|
+
text: JSON.stringify(wrapped),
|
|
204
257
|
annotations: { priority: 1.0, audience: ["user", "assistant"] },
|
|
205
258
|
});
|
|
206
259
|
}
|
|
@@ -208,7 +261,7 @@ export class McpServer {
|
|
|
208
261
|
// Non-prompt tools (status, list, replay, health, pause)
|
|
209
262
|
content.push({
|
|
210
263
|
type: "text",
|
|
211
|
-
text: JSON.stringify(
|
|
264
|
+
text: JSON.stringify(wrapped),
|
|
212
265
|
annotations: { priority: 0.5, audience: ["assistant"] },
|
|
213
266
|
});
|
|
214
267
|
}
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/session.d.ts
CHANGED
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
* advance pipeline. All round processing still goes through the
|
|
13
13
|
* SessionManager → RoundDriver → RoundCoordinator path.
|
|
14
14
|
*/
|
|
15
|
-
import type {
|
|
15
|
+
import type { GateActionDescriptor } from "../protocol.js";
|
|
16
|
+
import type { ExternalContextProvider, LoopTerminalSink } from "../protocol.js";
|
|
17
|
+
import type { ActiveContractView } from "../round-contract.js";
|
|
16
18
|
import type { LoopStore } from "../loop-store.js";
|
|
17
19
|
import type { PolicyMetricsSnapshot } from "../policy-metrics.js";
|
|
18
20
|
import type { SessionStateStore } from "../storage.js";
|
|
@@ -77,28 +79,56 @@ export declare class SessionManager implements SessionRegistry {
|
|
|
77
79
|
* Returns the number of sessions resumed. */
|
|
78
80
|
autoResumeAll(): number;
|
|
79
81
|
list(): McpSessionSummary[];
|
|
80
|
-
/**
|
|
81
|
-
|
|
82
|
+
/** Persist a gate_opened record for a structured preflight. Only
|
|
83
|
+
* user_required actions are recorded — agent_allowed needs no human
|
|
84
|
+
* authorization and opens no record. */
|
|
85
|
+
private recordOpenedGate;
|
|
86
|
+
/** v3.7.1: structured gate preflight. The agent submits a
|
|
87
|
+
* GateActionDescriptor; the runtime classifies it (conservative:
|
|
88
|
+
* anything not provably safe is user_required with reason codes). A
|
|
89
|
+
* user_required verdict persists a gate_opened record bound to
|
|
90
|
+
* loop + round + actionHash; agent_allowed records nothing and returns
|
|
91
|
+
* the evidence suggestion instead. No action is executed and no round
|
|
92
|
+
* advances from this call. */
|
|
93
|
+
checkGate(sessionId: string, roundId: string, action: GateActionDescriptor): Record<string, unknown>;
|
|
82
94
|
/** Record a user decision for a recorded gate. The gateId embeds the
|
|
83
95
|
* canonicalized action hash — if the action changed, the match fails and
|
|
84
96
|
* the old approval expires automatically. */
|
|
85
97
|
resolveGate(sessionId: string, gateId: string, approved: boolean, note?: string): Record<string, unknown>;
|
|
98
|
+
/** The compile context for this round.
|
|
99
|
+
*
|
|
100
|
+
* v3.8.1: delegates to the SHARED implementation in round-lifecycle.ts —
|
|
101
|
+
* the runtime's submission boundary reads the same context (the sub-goal
|
|
102
|
+
* reference space is exactly the compiled set the prompt carried), and two
|
|
103
|
+
* copies would let the projection and the boundary disagree about it. */
|
|
104
|
+
private compileContext;
|
|
86
105
|
/** Typed cognitive state projection for an active session. Derived on
|
|
87
106
|
* demand — zero persistence. Null when nothing meaningful exists yet. */
|
|
88
107
|
getProjection(sessionId: string): Record<string, unknown> | null;
|
|
108
|
+
/** v3.8: Read-only per-round "why" view over committed facts. Never
|
|
109
|
+
* rebuilds history and never writes. */
|
|
110
|
+
getExplain(loopId: string, round?: number): Record<string, unknown>;
|
|
89
111
|
/** Read-only end-of-loop audit (verification view). Never writes. */
|
|
90
112
|
getAudit(loopId: string): Record<string, unknown> | null;
|
|
91
113
|
/** v3.5: The ACTIVE Round Contract governing the session's next round —
|
|
92
114
|
* derived from the committed :feedback evals (the SAME adapter + walker
|
|
93
115
|
* the verification gate uses; display-only, zero persistence). Null when
|
|
94
116
|
* nothing is active (whole-task round). */
|
|
95
|
-
getActiveContract(sessionId: string):
|
|
117
|
+
getActiveContract(sessionId: string): ActiveContractView | null;
|
|
96
118
|
/** v2.12: Policy metrics that survive restarts — vault-derived round
|
|
97
119
|
* statistics (A4 port) folded with this process's live observations.
|
|
98
120
|
* Non-durable fields (evidence, vault errors) come from live only. */
|
|
99
121
|
getPolicyMetrics(loopId: string): PolicyMetricsSnapshot;
|
|
100
|
-
/** Get
|
|
101
|
-
*
|
|
122
|
+
/** Get machine facts about a loop (in-memory or vault).
|
|
123
|
+
*
|
|
124
|
+
* v3.8.1: this view used to report `goal_alignment`, `drift_detected`,
|
|
125
|
+
* `strategy_stability` and `task_continuity`. Every one was a
|
|
126
|
+
* text-similarity verdict rather than a fact, and two were degenerate in
|
|
127
|
+
* THIS method specifically: `task_continuity` was pinned to 1.0 because the
|
|
128
|
+
* request was built with `round: 1`, so `getPreviousRound(loopId, 0)`
|
|
129
|
+
* returned null and the code took its hardcoded `?? 1` branch; and
|
|
130
|
+
* `strategy_stability` was a literal `true`. What remains is counted
|
|
131
|
+
* directly from committed round flags. */
|
|
102
132
|
getHealth(loopId: string): Record<string, unknown> | null;
|
|
103
133
|
/** Core cycle: extract self-eval → record feedback → check stop → compile next.
|
|
104
134
|
* The lease + per-session queue wrap the RoundLifecycle state machine.
|
|
@@ -108,7 +138,23 @@ export declare class SessionManager implements SessionRegistry {
|
|
|
108
138
|
* (from the last start/next/resume response). Anchors the submission so a
|
|
109
139
|
* stale or duplicate submission is not processed against a later round.
|
|
110
140
|
* Optional for library callers — when absent the anchor check is skipped. */
|
|
111
|
-
|
|
141
|
+
/** \`submission\` is the RAW evaluation payload, not a built one.
|
|
142
|
+
*
|
|
143
|
+
* v3.8.1: this method used to carry a partial copy of the submission
|
|
144
|
+
* boundary (an object check plus core-field validation) while the MCP tool
|
|
145
|
+
* handler carried the rest — one rule, three copies, across two layers.
|
|
146
|
+
* The boundary now lives entirely in the runtime
|
|
147
|
+
* (`RoundLifecycle.submissionBoundary`), so every caller — this manager, a
|
|
148
|
+
* library user, a future CLI command — gets the same strictness. */
|
|
149
|
+
/** \`submission\` is the RAW evaluation payload, not a built one.
|
|
150
|
+
*
|
|
151
|
+
* v3.8.1: this method used to carry a partial copy of the submission
|
|
152
|
+
* boundary (an object check plus core-field validation) while the MCP tool
|
|
153
|
+
* handler carried the rest — one rule, three copies, across two layers.
|
|
154
|
+
* The whole boundary now runs HERE, before the queue and before the lease
|
|
155
|
+
* heartbeat, so every caller of the public API gets it and a rejected
|
|
156
|
+
* payload leaves nothing durable behind. */
|
|
157
|
+
advance(sessionId: string, output: string, submission?: unknown, roundId?: string): Promise<AdvanceResult>;
|
|
112
158
|
/** Replay timeline for a session — creates ReplayBackend from the stored backend. */
|
|
113
159
|
replayTimeline(sessionId: string): Record<string, unknown>[] | null;
|
|
114
160
|
/** v3.3.1: Replay a loop straight from the vault — no in-memory session
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
|