agentfootprint 11.4.0 → 12.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/CAPABILITIES.md +3 -1
- package/dist/adapters/code/agentcore.js +295 -214
- package/dist/adapters/code/agentcore.js.map +1 -1
- package/dist/adapters/code/agentcoreClient.js +178 -0
- package/dist/adapters/code/agentcoreClient.js.map +1 -0
- package/dist/adapters/code/agentcoreWire.js +348 -0
- package/dist/adapters/code/agentcoreWire.js.map +1 -0
- package/dist/adapters/code/fileName.js +100 -0
- package/dist/adapters/code/fileName.js.map +1 -0
- package/dist/adapters/code/local.js +529 -183
- package/dist/adapters/code/local.js.map +1 -1
- package/dist/adapters/code/output.js +140 -0
- package/dist/adapters/code/output.js.map +1 -0
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js +7 -6
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js +36 -2
- package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/transport.js +3 -1
- package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
- package/dist/core/codeRunnerTool.js +52 -7
- package/dist/core/codeRunnerTool.js.map +1 -1
- package/dist/doors/providers.js.map +1 -1
- package/dist/esm/adapters/code/agentcore.d.ts +65 -68
- package/dist/esm/adapters/code/agentcore.js +293 -212
- package/dist/esm/adapters/code/agentcore.js.map +1 -1
- package/dist/esm/adapters/code/agentcoreClient.d.ts +193 -0
- package/dist/esm/adapters/code/agentcoreClient.js +173 -0
- package/dist/esm/adapters/code/agentcoreClient.js.map +1 -0
- package/dist/esm/adapters/code/agentcoreWire.d.ts +119 -0
- package/dist/esm/adapters/code/agentcoreWire.js +334 -0
- package/dist/esm/adapters/code/agentcoreWire.js.map +1 -0
- package/dist/esm/adapters/code/fileName.d.ts +43 -0
- package/dist/esm/adapters/code/fileName.js +96 -0
- package/dist/esm/adapters/code/fileName.js.map +1 -0
- package/dist/esm/adapters/code/local.d.ts +91 -12
- package/dist/esm/adapters/code/local.js +528 -182
- package/dist/esm/adapters/code/local.js.map +1 -1
- package/dist/esm/adapters/code/output.d.ts +70 -0
- package/dist/esm/adapters/code/output.js +129 -0
- package/dist/esm/adapters/code/output.js.map +1 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +7 -6
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +7 -6
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +32 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js +35 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +4 -2
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
- package/dist/esm/core/codeRunnerTool.d.ts +15 -3
- package/dist/esm/core/codeRunnerTool.js +52 -7
- package/dist/esm/core/codeRunnerTool.js.map +1 -1
- package/dist/esm/doors/providers.d.ts +1 -1
- package/dist/esm/doors/providers.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +144 -29
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mcp/callLifetime.d.ts +57 -14
- package/dist/esm/mcp/callLifetime.js +67 -19
- package/dist/esm/mcp/callLifetime.js.map +1 -1
- package/dist/esm/mcp/callMarker.d.ts +43 -0
- package/dist/esm/mcp/callMarker.js +69 -0
- package/dist/esm/mcp/callMarker.js.map +1 -0
- package/dist/esm/mcp/connectionRefusals.js +7 -0
- package/dist/esm/mcp/connectionRefusals.js.map +1 -1
- package/dist/esm/mcp/index.d.ts +2 -0
- package/dist/esm/mcp/index.js +3 -0
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/mcp/mcpClient.js +93 -26
- package/dist/esm/mcp/mcpClient.js.map +1 -1
- package/dist/esm/mcp/replay.d.ts +291 -0
- package/dist/esm/mcp/replay.js +405 -0
- package/dist/esm/mcp/replay.js.map +1 -0
- package/dist/esm/mcp/replayUnavailable.d.ts +68 -0
- package/dist/esm/mcp/replayUnavailable.js +87 -0
- package/dist/esm/mcp/replayUnavailable.js.map +1 -0
- package/dist/esm/mcp/requestLedger.d.ts +115 -32
- package/dist/esm/mcp/requestLedger.js +193 -52
- package/dist/esm/mcp/requestLedger.js.map +1 -1
- package/dist/esm/mcp/seriesEvidence.d.ts +73 -15
- package/dist/esm/mcp/seriesEvidence.js +114 -21
- package/dist/esm/mcp/seriesEvidence.js.map +1 -1
- package/dist/esm/mcp/throttleRetry.d.ts +86 -42
- package/dist/esm/mcp/throttleRetry.js +158 -50
- package/dist/esm/mcp/throttleRetry.js.map +1 -1
- package/dist/esm/mcp/toolResult.d.ts +6 -0
- package/dist/esm/mcp/toolResult.js +15 -0
- package/dist/esm/mcp/toolResult.js.map +1 -1
- package/dist/esm/mcp/types.d.ts +73 -8
- package/dist/esm/provider-contract/codeSandbox.d.ts +89 -0
- package/dist/esm/provider-contract/codeSandbox.js +119 -0
- package/dist/esm/provider-contract/codeSandbox.js.map +1 -0
- package/dist/esm/provider-contract/sessionExpired.d.ts +31 -0
- package/dist/esm/provider-contract/sessionExpired.js +40 -0
- package/dist/esm/provider-contract/sessionExpired.js.map +1 -0
- package/dist/esm/provider-contract/types.d.ts +166 -17
- package/dist/esm/provider-contract/types.js +9 -0
- package/dist/esm/provider-contract/types.js.map +1 -1
- package/dist/esm/redaction/knownStrings.js +16 -0
- package/dist/esm/redaction/knownStrings.js.map +1 -1
- package/dist/esm/tool-providers/index.d.ts +2 -2
- package/dist/esm/tool-providers/index.js +4 -0
- package/dist/esm/tool-providers/index.js.map +1 -1
- package/dist/esm/tools/requestEvidence.js +60 -0
- package/dist/esm/tools/requestEvidence.js.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/callLifetime.js +66 -18
- package/dist/mcp/callLifetime.js.map +1 -1
- package/dist/mcp/callMarker.js +74 -0
- package/dist/mcp/callMarker.js.map +1 -0
- package/dist/mcp/connectionRefusals.js +7 -0
- package/dist/mcp/connectionRefusals.js.map +1 -1
- package/dist/mcp/index.js +5 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/mcpClient.js +91 -24
- package/dist/mcp/mcpClient.js.map +1 -1
- package/dist/mcp/replay.js +415 -0
- package/dist/mcp/replay.js.map +1 -0
- package/dist/mcp/replayUnavailable.js +92 -0
- package/dist/mcp/replayUnavailable.js.map +1 -0
- package/dist/mcp/requestLedger.js +193 -52
- package/dist/mcp/requestLedger.js.map +1 -1
- package/dist/mcp/seriesEvidence.js +116 -22
- package/dist/mcp/seriesEvidence.js.map +1 -1
- package/dist/mcp/throttleRetry.js +160 -51
- package/dist/mcp/throttleRetry.js.map +1 -1
- package/dist/mcp/toolResult.js +17 -1
- package/dist/mcp/toolResult.js.map +1 -1
- package/dist/provider-contract/codeSandbox.js +125 -0
- package/dist/provider-contract/codeSandbox.js.map +1 -0
- package/dist/provider-contract/sessionExpired.js +44 -0
- package/dist/provider-contract/sessionExpired.js.map +1 -0
- package/dist/provider-contract/types.js +12 -1
- package/dist/provider-contract/types.js.map +1 -1
- package/dist/redaction/knownStrings.js +16 -0
- package/dist/redaction/knownStrings.js.map +1 -1
- package/dist/tool-providers/index.js +5 -1
- package/dist/tool-providers/index.js.map +1 -1
- package/dist/tools/requestEvidence.js +60 -0
- package/dist/tools/requestEvidence.js.map +1 -1
- package/dist/types/adapters/code/agentcore.d.ts +65 -68
- package/dist/types/adapters/code/agentcore.d.ts.map +1 -1
- package/dist/types/adapters/code/agentcoreClient.d.ts +194 -0
- package/dist/types/adapters/code/agentcoreClient.d.ts.map +1 -0
- package/dist/types/adapters/code/agentcoreWire.d.ts +120 -0
- package/dist/types/adapters/code/agentcoreWire.d.ts.map +1 -0
- package/dist/types/adapters/code/fileName.d.ts +44 -0
- package/dist/types/adapters/code/fileName.d.ts.map +1 -0
- package/dist/types/adapters/code/local.d.ts +91 -12
- package/dist/types/adapters/code/local.d.ts.map +1 -1
- package/dist/types/adapters/code/output.d.ts +71 -0
- package/dist/types/adapters/code/output.d.ts.map +1 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +7 -6
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +32 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -1
- package/dist/types/core/codeRunnerTool.d.ts +15 -3
- package/dist/types/core/codeRunnerTool.d.ts.map +1 -1
- package/dist/types/doors/providers.d.ts +1 -1
- package/dist/types/doors/providers.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +144 -29
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/mcp/callLifetime.d.ts +57 -14
- package/dist/types/mcp/callLifetime.d.ts.map +1 -1
- package/dist/types/mcp/callMarker.d.ts +44 -0
- package/dist/types/mcp/callMarker.d.ts.map +1 -0
- package/dist/types/mcp/index.d.ts +2 -0
- package/dist/types/mcp/index.d.ts.map +1 -1
- package/dist/types/mcp/mcpClient.d.ts.map +1 -1
- package/dist/types/mcp/replay.d.ts +292 -0
- package/dist/types/mcp/replay.d.ts.map +1 -0
- package/dist/types/mcp/replayUnavailable.d.ts +69 -0
- package/dist/types/mcp/replayUnavailable.d.ts.map +1 -0
- package/dist/types/mcp/requestLedger.d.ts +115 -32
- package/dist/types/mcp/requestLedger.d.ts.map +1 -1
- package/dist/types/mcp/seriesEvidence.d.ts +73 -15
- package/dist/types/mcp/seriesEvidence.d.ts.map +1 -1
- package/dist/types/mcp/throttleRetry.d.ts +86 -42
- package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
- package/dist/types/mcp/toolResult.d.ts +6 -0
- package/dist/types/mcp/toolResult.d.ts.map +1 -1
- package/dist/types/mcp/types.d.ts +73 -8
- package/dist/types/mcp/types.d.ts.map +1 -1
- package/dist/types/provider-contract/codeSandbox.d.ts +90 -0
- package/dist/types/provider-contract/codeSandbox.d.ts.map +1 -0
- package/dist/types/provider-contract/sessionExpired.d.ts +32 -0
- package/dist/types/provider-contract/sessionExpired.d.ts.map +1 -0
- package/dist/types/provider-contract/types.d.ts +166 -17
- package/dist/types/provider-contract/types.d.ts.map +1 -1
- package/dist/types/redaction/knownStrings.d.ts.map +1 -1
- package/dist/types/tool-providers/index.d.ts +2 -2
- package/dist/types/tool-providers/index.d.ts.map +1 -1
- package/dist/types/tools/requestEvidence.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/mcp/callLifetime.js
CHANGED
|
@@ -16,29 +16,55 @@
|
|
|
16
16
|
* the call. The link is undone when the call settles: the SDK keeps its
|
|
17
17
|
* abort listener on the signal it was given, and a link that outlived the
|
|
18
18
|
* call would cancel a request that had already finished.
|
|
19
|
-
* 2. ITS
|
|
20
|
-
* the
|
|
19
|
+
* 2. ITS MARKER is issued when the connection has a ledger, with its ticket
|
|
20
|
+
* when the call carries the run's evidence port: a library-private string
|
|
21
|
+
* in the request's `_meta` (`callMarker.ts`), which ties the request to
|
|
22
|
+
* the call even when the SDK copies the params, and which the transport
|
|
23
|
+
* takes out before anything is sent.
|
|
21
24
|
* 3. ITS SETTLING ENDS ITS SERIES. However `callTool` settles — answered,
|
|
22
25
|
* failed, or given up by the SDK (its own timeout) — a retry series still
|
|
23
26
|
* sending the request is cut there and then, inside the call: it files
|
|
24
27
|
* `cancelled` before the call's result is read, and sends nothing more.
|
|
28
|
+
* 4. ITS VERDICT REACHES ITS RECORD. A series that has ended waits for the
|
|
29
|
+
* call to settle before it files, because only the call can say whether
|
|
30
|
+
* the answer completed — a 200 can carry a tool error. The call leaves its
|
|
31
|
+
* verdict in the request's shared replay facts (`replay.ts` ·
|
|
32
|
+
* `RequestReplay`) before it settles the series' wait.
|
|
33
|
+
* 5. "MAY HAVE RUN" IS RAISED HERE — footprintjs's law, under the
|
|
34
|
+
* `'app-authorized'` policy (`replay.ts` · `RequestReplay`, its
|
|
35
|
+
* `uncertain`). A received refusal or error is preserved: a 429, a 503,
|
|
36
|
+
* a JSON-RPC or tool error — or a chain in which every attempt received
|
|
37
|
+
* one — keeps the server's error as it came, its effect still `unknown`.
|
|
38
|
+
* A call that genuinely lacked an answer somewhere — an attempt with no
|
|
39
|
+
* response at all, or a request the HTTP layer accepted whose JSON-RPC
|
|
40
|
+
* answer never came — and then fails, fails with footprintjs's
|
|
41
|
+
* `UnknownEffectError`, its final error (a later refusal's, or the
|
|
42
|
+
* timeout) as the `cause`: that error alone would read as "failed, try
|
|
43
|
+
* again". A call that completes returns normally. Under `'compatibility'`
|
|
44
|
+
* the caller sees the error it always did; the record still says the
|
|
45
|
+
* effect is unknown. A cancellation never raises it: a call its caller
|
|
46
|
+
* cancelled ends with the caller's reason, as it always did.
|
|
25
47
|
*
|
|
26
|
-
* In dev mode, a ticket that no request was
|
|
27
|
-
* settled, when a `tools/call` request DID go out, is named once per
|
|
28
|
-
* the params, so the call's
|
|
29
|
-
*
|
|
30
|
-
* `notifications/cancelled`).
|
|
48
|
+
* In dev mode, a ticket that no request was matched to by the time the call
|
|
49
|
+
* settled, when a `tools/call` request DID go out, is named once per
|
|
50
|
+
* connection: the SDK rebuilt the params without the marker, so the call's
|
|
51
|
+
* attempts could not be matched to it. Its cancellation still reached the
|
|
52
|
+
* request (1, and the ledger's own watch on `notifications/cancelled`). Under
|
|
53
|
+
* `'app-authorized'` such a request is never sent at all
|
|
54
|
+
* (`replayUnavailable.ts`).
|
|
31
55
|
*/
|
|
32
56
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
57
|
exports.openCall = void 0;
|
|
34
58
|
const footprintjs_1 = require("footprintjs");
|
|
35
59
|
const abort_js_1 = require("../lib/abort.js");
|
|
36
60
|
const requestEvidence_js_1 = require("../tools/requestEvidence.js");
|
|
61
|
+
const callMarker_js_1 = require("./callMarker.js");
|
|
37
62
|
/**
|
|
38
63
|
* Open one call.
|
|
39
64
|
*
|
|
40
|
-
* @param params the request's params
|
|
41
|
-
* the
|
|
65
|
+
* @param params the request's params. The call sends them marked
|
|
66
|
+
* (`OpenCall.params`): the marker, not the object, is how the ledger knows
|
|
67
|
+
* the request is this call's — it survives an SDK that copies the params.
|
|
42
68
|
* @param ctx the call's context: its signal, and the run's evidence port if any.
|
|
43
69
|
* @param clientSignal the client's own `signal` (`McpClientOptions.signal`).
|
|
44
70
|
* @param ledger the connection's ledger, when the library built its transport.
|
|
@@ -54,15 +80,37 @@ function openCall(params, ctx, clientSignal, ledger, server) {
|
|
|
54
80
|
? undefined
|
|
55
81
|
: { sink, signal: (0, abort_js_1.eitherSignal)(signal, settled?.signal) };
|
|
56
82
|
const sentBefore = ledger?.toolCallsSent ?? 0;
|
|
57
|
-
|
|
58
|
-
|
|
83
|
+
// Every call on a watched connection gets a marker, ticket or not: under
|
|
84
|
+
// 'app-authorized' its request must be matched to it either way. The call
|
|
85
|
+
// holds its entry, so what it reads survives the connection closing.
|
|
86
|
+
const issued = ledger?.issue(ticket);
|
|
87
|
+
let mayHaveRun = false;
|
|
59
88
|
return {
|
|
89
|
+
params: issued === undefined ? params : (0, callMarker_js_1.markParams)(params, issued.marker),
|
|
60
90
|
...(signal !== undefined && { signal }),
|
|
61
|
-
|
|
91
|
+
failed: (error, verdict) => {
|
|
92
|
+
// A call its caller cancelled ends with the caller's reason, whatever its
|
|
93
|
+
// series did; the record still says what is known of its effect.
|
|
94
|
+
if (verdict === 'completed' || signal?.aborted === true)
|
|
95
|
+
return error;
|
|
96
|
+
const replay = issued?.request?.replay;
|
|
97
|
+
if (replay === undefined || !replay.uncertain)
|
|
98
|
+
return error;
|
|
99
|
+
mayHaveRun = true;
|
|
100
|
+
// The key, when one was sent, is an argument VALUE: it stays with the
|
|
101
|
+
// caller, who sent it, and never rides an error a run may record.
|
|
102
|
+
return new footprintjs_1.UnknownEffectError({ system: server, attempts: replay.sent, cause: error });
|
|
103
|
+
},
|
|
104
|
+
close: (verdict) => {
|
|
105
|
+
// The verdict first: settling the series' wait files its record.
|
|
106
|
+
issued?.request?.replay.settle(verdict, mayHaveRun);
|
|
107
|
+
// By its own entry, never the params object: a copy cannot keep a watch alive.
|
|
108
|
+
if (issued !== undefined)
|
|
109
|
+
ledger?.settle(issued);
|
|
62
110
|
settled?.abort(callSettled());
|
|
63
111
|
link?.unlink();
|
|
64
112
|
if (ticket !== undefined && ledger !== undefined) {
|
|
65
|
-
noteUnbound(ledger,
|
|
113
|
+
noteUnbound(ledger, issued?.request !== undefined, sentBefore, server);
|
|
66
114
|
}
|
|
67
115
|
},
|
|
68
116
|
};
|
|
@@ -89,15 +137,15 @@ function callSettled() {
|
|
|
89
137
|
});
|
|
90
138
|
}
|
|
91
139
|
/** Dev mode, once per connection: a request went out for this call, but the ledger never matched it. */
|
|
92
|
-
function noteUnbound(ledger,
|
|
93
|
-
if (!(0, footprintjs_1.isDevMode)() ||
|
|
140
|
+
function noteUnbound(ledger, matched, sentBefore, server) {
|
|
141
|
+
if (!(0, footprintjs_1.isDevMode)() || matched || ledger.toolCallsSent <= sentBefore)
|
|
94
142
|
return;
|
|
95
143
|
if (!ledger.firstUnbound())
|
|
96
144
|
return;
|
|
97
145
|
// eslint-disable-next-line no-console
|
|
98
146
|
console.warn(`[agentfootprint] mcpClient[${server}]: a tool call's request could not be matched to ` +
|
|
99
|
-
'the call, so its retry attempts were not recorded in the run. The MCP SDK
|
|
100
|
-
"request's
|
|
101
|
-
'cancellation still reached the request.');
|
|
147
|
+
'the call, so its retry attempts were not recorded in the run. The MCP SDK sent the ' +
|
|
148
|
+
"request without the call's `_meta` marker: it rebuilt the request's params. The call " +
|
|
149
|
+
'itself is unaffected, and its cancellation still reached the request.');
|
|
102
150
|
}
|
|
103
151
|
//# sourceMappingURL=callLifetime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callLifetime.js","sourceRoot":"","sources":["../../src/mcp/callLifetime.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"callLifetime.js","sourceRoot":"","sources":["../../src/mcp/callLifetime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* callMarker — a library-private marker that ties one MCP tool call to the one
|
|
4
|
+
* request the SDK sends for it, whatever the SDK copies on the way.
|
|
5
|
+
*
|
|
6
|
+
* Pattern: mark at the call, take at the transport.
|
|
7
|
+
* Role: The correlation hop of the request ledger (`requestLedger.ts`). The
|
|
8
|
+
* call puts its marker in the request's own `_meta` bag
|
|
9
|
+
* (`markParams`); the MCP SDK carries `_meta` through to the
|
|
10
|
+
* transport — the very object, or a copy of it (`structuredClone`, a
|
|
11
|
+
* spread) — and the ledger's watched `send` takes the marker out again
|
|
12
|
+
* (`takeMarker`) before the transport serializes the request. The
|
|
13
|
+
* server receives the bytes it always did: the marker never leaves the
|
|
14
|
+
* client.
|
|
15
|
+
*
|
|
16
|
+
* An object's identity does not survive a copy; a string inside it does. So an
|
|
17
|
+
* SDK that copies the params still delivers the marker, and the request is
|
|
18
|
+
* matched to its call by the call's own word, never by guessing from content
|
|
19
|
+
* (two calls with the same arguments are the case content matching gets wrong).
|
|
20
|
+
* An SDK that rebuilds the params and drops `_meta` delivers nothing: the
|
|
21
|
+
* request then matches no call, and the ledger says so (`requestLedger.ts`).
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.takeMarker = exports.markParams = exports.CALL_MARKER_KEY = void 0;
|
|
25
|
+
/** The `_meta` key the marker rides under. Never sent: `takeMarker` removes it. */
|
|
26
|
+
exports.CALL_MARKER_KEY = 'agentfootprint/call-ref';
|
|
27
|
+
/**
|
|
28
|
+
* `params` with `marker` added to its `_meta` bag: a new object, with every
|
|
29
|
+
* other key in its place; `params` itself is not changed. A `_meta` that was
|
|
30
|
+
* absent is added, after the other keys, so `takeMarker` can remove it whole.
|
|
31
|
+
*/
|
|
32
|
+
function markParams(params, marker) {
|
|
33
|
+
const meta = recordOf(params._meta) ?? {};
|
|
34
|
+
return { ...params, _meta: { ...meta, [exports.CALL_MARKER_KEY]: marker } };
|
|
35
|
+
}
|
|
36
|
+
exports.markParams = markParams;
|
|
37
|
+
/**
|
|
38
|
+
* The marker a JSON-RPC message carries in `params._meta`, and the message
|
|
39
|
+
* without it. The message is never changed in place: the SDK's object stays
|
|
40
|
+
* the SDK's. Without the marker, the params are what they were before
|
|
41
|
+
* `markParams`: a `_meta` the marker alone filled is removed, and any other
|
|
42
|
+
* entry, the SDK's own included, keeps its place.
|
|
43
|
+
*/
|
|
44
|
+
function takeMarker(message) {
|
|
45
|
+
const fields = recordOf(message);
|
|
46
|
+
const params = recordOf(fields?.['params']);
|
|
47
|
+
const meta = recordOf(params?.['_meta']);
|
|
48
|
+
if (fields === undefined ||
|
|
49
|
+
params === undefined ||
|
|
50
|
+
meta === undefined ||
|
|
51
|
+
!Object.prototype.hasOwnProperty.call(meta, exports.CALL_MARKER_KEY)) {
|
|
52
|
+
return { message };
|
|
53
|
+
}
|
|
54
|
+
const { [exports.CALL_MARKER_KEY]: marker, ...rest } = meta;
|
|
55
|
+
// A copy keeps every key in its place: `_meta` is replaced where it stood, or
|
|
56
|
+
// removed when the marker alone filled it.
|
|
57
|
+
const unmarked = { ...params };
|
|
58
|
+
if (Object.keys(rest).length > 0)
|
|
59
|
+
unmarked['_meta'] = rest;
|
|
60
|
+
else
|
|
61
|
+
delete unmarked['_meta'];
|
|
62
|
+
return {
|
|
63
|
+
...(typeof marker === 'string' && { marker }),
|
|
64
|
+
message: { ...fields, params: unmarked },
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
exports.takeMarker = takeMarker;
|
|
68
|
+
/** A plain object's own fields, or `undefined` for anything else. */
|
|
69
|
+
function recordOf(value) {
|
|
70
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value)
|
|
71
|
+
? value
|
|
72
|
+
: undefined;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=callMarker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callMarker.js","sourceRoot":"","sources":["../../src/mcp/callMarker.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;AAEH,mFAAmF;AACtE,QAAA,eAAe,GAAG,yBAAyB,CAAC;AAEzD;;;;GAIG;AACH,SAAgB,UAAU,CAAmB,MAAS,EAAE,MAAc;IACpE,MAAM,IAAI,GAAG,QAAQ,CAAE,MAAuC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5E,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,uBAAe,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;AACtE,CAAC;AAHD,gCAGC;AASD;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,OAAgB;IACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,IACE,MAAM,KAAK,SAAS;QACpB,MAAM,KAAK,SAAS;QACpB,IAAI,KAAK,SAAS;QAClB,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAe,CAAC,EAC5D,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IACD,MAAM,EAAE,CAAC,uBAAe,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACpD,8EAA8E;IAC9E,2CAA2C;IAC3C,MAAM,QAAQ,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IACxD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;;QACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO;QACL,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,EAAE,MAAM,EAAE,CAAC;QAC7C,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;KACzC,CAAC;AACJ,CAAC;AAtBD,gCAsBC;AAED,qEAAqE;AACrE,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAA2C;QAC9C,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
|
|
@@ -69,6 +69,13 @@ const BUILT_BY_THE_TRANSPORT = [
|
|
|
69
69
|
'`agentfootprint/providers`) and hand THAT to your transport — it is the same ' +
|
|
70
70
|
'implementation, applied where you build it.',
|
|
71
71
|
],
|
|
72
|
+
[
|
|
73
|
+
'replay',
|
|
74
|
+
'The replay declaration is asked by the retry series inside that transport, and a ' +
|
|
75
|
+
'connection you built has none of ours: `retryingFetch` keeps the compatibility ' +
|
|
76
|
+
'policy (a 429 retried for every tool, the assumption recorded nowhere). Pass ' +
|
|
77
|
+
'`transport` instead to have tool calls sent again only as you declare.',
|
|
78
|
+
],
|
|
72
79
|
[
|
|
73
80
|
'clientInfo',
|
|
74
81
|
'Pass it to the SDK `Client` constructor instead: `new Client(clientInfo, { capabilities: {} })`.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionRefusals.js","sourceRoot":"","sources":["../../src/mcp/connectionRefusals.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAIH,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAEvE;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CACtC,IAA6C,EAC7C,IAAY;IAEZ,MAAM,EAAE,GAAG,aAAa,IAAI,GAAG,CAAC;IAChC,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,iCAAiC;IACjC,MAAM,KAAK,GAAG,IAAoD,CAAC;IAEnE,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,kFAAkF;gBACrF,oDAAoD,CACvD,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IAED,sDAAsD;IACtD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,sBAAsB,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,0BAA0B,MAAM,6BAA6B;gBAChE,oEAAoE,MAAM,QAAQ;gBAClF,6DAA6D,KAAK,EAAE,CACvE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAhCD,4DAgCC;AAED;;;;;GAKG;AACH,MAAM,sBAAsB,GAExB;IACF;QACE,iBAAiB;QACjB,gFAAgF;YAC9E,+EAA+E;YAC/E,6CAA6C;KAChD;IACD;QACE,YAAY;QACZ,kGAAkG;KACnG;IACD;QACE,WAAW;QACX,gGAAgG;KACjG;IACD;QACE,KAAK;QACL,+EAA+E;YAC7E,wCAAwC;KAC3C;IACD;QACE,SAAS;QACT,uFAAuF;KACxF;CACF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,SAAS,gBAAgB,CAAC,UAAmB,EAAE,EAAU;IACvD,MAAM,OAAO,GAAG,CAAC,UAAU,IAAI,EAAE,CAAsC,CAAC;IACxE,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACxC,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,6BAA6B,MAAM,yCAAyC;gBAC/E,oFAAoF;gBACpF,kFAAkF;gBAClF,uDAAuD,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"connectionRefusals.js","sourceRoot":"","sources":["../../src/mcp/connectionRefusals.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAIH,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAEvE;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CACtC,IAA6C,EAC7C,IAAY;IAEZ,MAAM,EAAE,GAAG,aAAa,IAAI,GAAG,CAAC;IAChC,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,iCAAiC;IACjC,MAAM,KAAK,GAAG,IAAoD,CAAC;IAEnE,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,kFAAkF;gBACrF,oDAAoD,CACvD,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IAED,sDAAsD;IACtD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,sBAAsB,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,0BAA0B,MAAM,6BAA6B;gBAChE,oEAAoE,MAAM,QAAQ;gBAClF,6DAA6D,KAAK,EAAE,CACvE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAhCD,4DAgCC;AAED;;;;;GAKG;AACH,MAAM,sBAAsB,GAExB;IACF;QACE,iBAAiB;QACjB,gFAAgF;YAC9E,+EAA+E;YAC/E,6CAA6C;KAChD;IACD;QACE,QAAQ;QACR,mFAAmF;YACjF,iFAAiF;YACjF,+EAA+E;YAC/E,wEAAwE;KAC3E;IACD;QACE,YAAY;QACZ,kGAAkG;KACnG;IACD;QACE,WAAW;QACX,gGAAgG;KACjG;IACD;QACE,KAAK;QACL,+EAA+E;YAC7E,wCAAwC;KAC3C;IACD;QACE,SAAS;QACT,uFAAuF;KACxF;CACF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,SAAS,gBAAgB,CAAC,UAAmB,EAAE,EAAU;IACvD,MAAM,OAAO,GAAG,CAAC,UAAU,IAAI,EAAE,CAAsC,CAAC;IACxE,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACxC,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,6BAA6B,MAAM,yCAAyC;gBAC/E,oFAAoF;gBACpF,kFAAkF;gBAClF,uDAAuD,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.retryingFetch = exports.GatewayAuthorizationRequiredError = exports.gatewayTransport = exports.mockMcpClient = exports.MCP_TOOL_EXTRAS_KEY = exports.mcpServe = exports.mcpClient = void 0;
|
|
3
|
+
exports.McpReplayUnavailableError = exports.retryingFetch = exports.GatewayAuthorizationRequiredError = exports.gatewayTransport = exports.mockMcpClient = exports.MCP_TOOL_EXTRAS_KEY = exports.mcpServe = exports.mcpClient = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* MCP — Model Context Protocol, both directions. `mcpClient` connects to
|
|
6
6
|
* someone else's MCP server and registers its tools on your Agent;
|
|
@@ -25,4 +25,8 @@ Object.defineProperty(exports, "GatewayAuthorizationRequiredError", { enumerable
|
|
|
25
25
|
// apply the SAME implementation instead of silently going without it.
|
|
26
26
|
var throttleRetry_js_1 = require("./throttleRetry.js");
|
|
27
27
|
Object.defineProperty(exports, "retryingFetch", { enumerable: true, get: function () { return throttleRetry_js_1.retryingFetch; } });
|
|
28
|
+
// A call under 'app-authorized' that a connection cannot honour is refused
|
|
29
|
+
// before it is sent, with a typed reason.
|
|
30
|
+
var replayUnavailable_js_1 = require("./replayUnavailable.js");
|
|
31
|
+
Object.defineProperty(exports, "McpReplayUnavailableError", { enumerable: true, get: function () { return replayUnavailable_js_1.McpReplayUnavailableError; } });
|
|
28
32
|
//# sourceMappingURL=index.js.map
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAClB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,8EAA8E;AAC9E,0EAA0E;AAC1E,iDAA0E;AAAjE,oHAAA,mBAAmB,OAAA;AAC5B,uDAAgG;AAAvF,iHAAA,aAAa,OAAA;AACtB,6DAI+B;AAH7B,uHAAA,gBAAgB,OAAA;AAChB,wIAAA,iCAAiC,OAAA;AAGnC,6EAA6E;AAC7E,4EAA4E;AAC5E,sEAAsE;AACtE,uDAAmD;AAA1C,iHAAA,aAAa,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAClB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,8EAA8E;AAC9E,0EAA0E;AAC1E,iDAA0E;AAAjE,oHAAA,mBAAmB,OAAA;AAC5B,uDAAgG;AAAvF,iHAAA,aAAa,OAAA;AACtB,6DAI+B;AAH7B,uHAAA,gBAAgB,OAAA;AAChB,wIAAA,iCAAiC,OAAA;AAGnC,6EAA6E;AAC7E,4EAA4E;AAC5E,sEAAsE;AACtE,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AAgBtB,2EAA2E;AAC3E,0CAA0C;AAC1C,+DAAoG;AAA3F,iIAAA,yBAAyB,OAAA"}
|
package/dist/mcp/mcpClient.js
CHANGED
|
@@ -45,12 +45,15 @@
|
|
|
45
45
|
*/
|
|
46
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
47
|
exports.mcpClient = void 0;
|
|
48
|
+
const footprintjs_1 = require("footprintjs");
|
|
48
49
|
const toolExtras_js_1 = require("./toolExtras.js");
|
|
49
50
|
const toolResult_js_1 = require("./toolResult.js");
|
|
50
51
|
const gatewayTransport_js_1 = require("./gatewayTransport.js");
|
|
51
52
|
const throttleRetry_js_1 = require("./throttleRetry.js");
|
|
52
53
|
const requestLedger_js_1 = require("./requestLedger.js");
|
|
53
54
|
const callLifetime_js_1 = require("./callLifetime.js");
|
|
55
|
+
const replayUnavailable_js_1 = require("./replayUnavailable.js");
|
|
56
|
+
const replay_js_1 = require("./replay.js");
|
|
54
57
|
const connectionRefusals_js_1 = require("./connectionRefusals.js");
|
|
55
58
|
const sdkLoadFailure_js_1 = require("./sdkLoadFailure.js");
|
|
56
59
|
const transportUrl_js_1 = require("./transportUrl.js");
|
|
@@ -90,7 +93,12 @@ async function mcpClient(opts) {
|
|
|
90
93
|
// Before anything connects: an option that names a behaviour which cannot
|
|
91
94
|
// happen on the chosen arm is a defect, not a preference.
|
|
92
95
|
(0, connectionRefusals_js_1.refuseConflictingOptions)(opts, name);
|
|
93
|
-
|
|
96
|
+
// The app's replay declaration — who may send a tool call again — read and
|
|
97
|
+
// checked once, here, before anything connects (`replay.ts`).
|
|
98
|
+
const replay = (0, replay_js_1.replayDeclarationOf)(opts.replay, `mcpClient[${name}]`);
|
|
99
|
+
const strict = replay.policy === 'app-authorized';
|
|
100
|
+
const { connection, ledger } = await openConnection(opts, replay, name);
|
|
101
|
+
const unlisted = new Set();
|
|
94
102
|
// Tool cache so consumers calling `.tools()` more than once don't
|
|
95
103
|
// hammer the server. `.refresh()` invalidates it.
|
|
96
104
|
let cache = null;
|
|
@@ -106,7 +114,8 @@ async function mcpClient(opts) {
|
|
|
106
114
|
const listed = opts.signal
|
|
107
115
|
? await connection.listTools(undefined, { signal: opts.signal })
|
|
108
116
|
: await connection.listTools();
|
|
109
|
-
|
|
117
|
+
noteUnlisted(replay, listed.tools, name, unlisted);
|
|
118
|
+
return listed.tools.map((t) => wrapMcpTool(name, connection, t, opts.signal, resultMode, ledger, strict));
|
|
110
119
|
};
|
|
111
120
|
return {
|
|
112
121
|
name,
|
|
@@ -126,7 +135,13 @@ async function mcpClient(opts) {
|
|
|
126
135
|
return;
|
|
127
136
|
closed = true;
|
|
128
137
|
cache = null;
|
|
129
|
-
|
|
138
|
+
try {
|
|
139
|
+
await connection.close();
|
|
140
|
+
}
|
|
141
|
+
finally {
|
|
142
|
+
// Nothing this connection sent is awaited any more, however it closed.
|
|
143
|
+
ledger?.close();
|
|
144
|
+
}
|
|
130
145
|
},
|
|
131
146
|
};
|
|
132
147
|
}
|
|
@@ -140,7 +155,7 @@ exports.mcpClient = mcpClient;
|
|
|
140
155
|
* A call with neither `connection` nor `sdk` reaches `resolveClient` with two
|
|
141
156
|
* `undefined` arguments and takes the identical path it always took.
|
|
142
157
|
*/
|
|
143
|
-
async function openConnection(opts) {
|
|
158
|
+
async function openConnection(opts, replay, name) {
|
|
144
159
|
if (opts.connection !== undefined)
|
|
145
160
|
return { connection: opts.connection };
|
|
146
161
|
if (opts._client !== undefined)
|
|
@@ -148,17 +163,17 @@ async function openConnection(opts) {
|
|
|
148
163
|
// `refuseConflictingOptions` has already refused the case where this is
|
|
149
164
|
// absent, so the assertion documents that guarantee rather than assuming it.
|
|
150
165
|
const transport = opts.transport;
|
|
151
|
-
return resolveClient(transport, opts.clientInfo, opts.signal, opts.retryOnThrottle, opts.sdk);
|
|
166
|
+
return resolveClient(transport, opts.clientInfo, opts.signal, opts.retryOnThrottle, opts.sdk, replay, name);
|
|
152
167
|
}
|
|
153
168
|
// ─── SDK construction (lazy require, unless the caller supplied it) ─
|
|
154
|
-
async function resolveClient(transport, clientInfo, signal, retryOnThrottle, sdk) {
|
|
169
|
+
async function resolveClient(transport, clientInfo, signal, retryOnThrottle, sdk, replay, name = 'mcp') {
|
|
155
170
|
if (sdk !== undefined)
|
|
156
171
|
assertSdk(sdk, transport.transport);
|
|
157
172
|
const mod = sdk ?? loadClientModule();
|
|
158
173
|
const client = new mod.Client(clientInfo ?? DEFAULT_CLIENT_INFO, {
|
|
159
174
|
capabilities: {},
|
|
160
175
|
});
|
|
161
|
-
const built = await buildTransport(transport, retryOnThrottle, sdk);
|
|
176
|
+
const built = await buildTransport(transport, retryOnThrottle, sdk, replay, name);
|
|
162
177
|
// Same rule as callTool: options ride beside the transport, never inside it.
|
|
163
178
|
if (signal)
|
|
164
179
|
await client.connect(built.transport, { signal });
|
|
@@ -208,7 +223,7 @@ function loadClientModule() {
|
|
|
208
223
|
}));
|
|
209
224
|
}
|
|
210
225
|
}
|
|
211
|
-
async function buildTransport(t, retryOnThrottle, sdk) {
|
|
226
|
+
async function buildTransport(t, retryOnThrottle, sdk, replay, name = 'mcp') {
|
|
212
227
|
if (t.transport === 'stdio') {
|
|
213
228
|
// Deliberately NOT served by `sdk`: stdio spawns a subprocess, so it can
|
|
214
229
|
// never run in a browser, and `client/stdio.js` is the SDK's one client
|
|
@@ -253,9 +268,23 @@ async function buildTransport(t, retryOnThrottle, sdk) {
|
|
|
253
268
|
//
|
|
254
269
|
// The ledger joins the same series, so each request a dispatched tool call
|
|
255
270
|
// sends files its attempts into that call's run; the transport's `send` is
|
|
256
|
-
// watched to bind each request to its call (`requestLedger.ts`).
|
|
257
|
-
//
|
|
258
|
-
|
|
271
|
+
// watched to bind each request to its call (`requestLedger.ts`). The app's
|
|
272
|
+
// replay declaration joins with it: the series asks it before sending a tool
|
|
273
|
+
// call again (`replay.ts`). `retryOnThrottle: false` turns off the 429 rule
|
|
274
|
+
// and nothing else: when the declaration still needs a series — a tool
|
|
275
|
+
// declared repeatable on 'network', or the 'app-authorized' policy — the
|
|
276
|
+
// series stays, with that rule switched off (`seriesWithoutThrottle`).
|
|
277
|
+
// Otherwise a fetch that runs no series gets neither ledger nor declaration:
|
|
278
|
+
// there is nothing to file and nothing is sent again.
|
|
279
|
+
const retried = (inner) => retryOnThrottle === false && replay !== undefined && (0, replay_js_1.needsSeries)(replay)
|
|
280
|
+
? (0, throttleRetry_js_1.seriesWithoutThrottle)(inner)
|
|
281
|
+
: (0, throttleRetry_js_1.retryingFetch)(inner, retryOnThrottle);
|
|
282
|
+
// Under 'app-authorized' the ledger refuses a request it cannot match to its
|
|
283
|
+
// call, and awaits each matched request's answer (`requestLedger.ts`).
|
|
284
|
+
const ledger = new requestLedger_js_1.RequestLedger({
|
|
285
|
+
server: name,
|
|
286
|
+
strict: replay?.policy === 'app-authorized',
|
|
287
|
+
});
|
|
259
288
|
if (t.transport === 'gateway') {
|
|
260
289
|
// The consumer's own `fetch` (9.32.0) goes UNDERNEATH the vending, not
|
|
261
290
|
// beside it: `createVendingFetch` resolves the credential, applies it to
|
|
@@ -264,8 +293,8 @@ async function buildTransport(t, retryOnThrottle, sdk) {
|
|
|
264
293
|
// credential is still vended per request. Passing `undefined` is the
|
|
265
294
|
// default global `fetch`, which is byte-identical to every release before
|
|
266
295
|
// the seam existed.
|
|
267
|
-
const gatewayFetch = (
|
|
268
|
-
const ledgered = gatewayFetch && (0, throttleRetry_js_1.ledgeredFetch)(gatewayFetch, ledger);
|
|
296
|
+
const gatewayFetch = retried((0, gatewayTransport_js_1.createVendingFetch)(t, t.fetch));
|
|
297
|
+
const ledgered = gatewayFetch && (0, throttleRetry_js_1.ledgeredFetch)(gatewayFetch, ledger, replay);
|
|
269
298
|
return watched(new httpMod.StreamableHTTPClientTransport((0, transportUrl_js_1.transportUrl)(t.url, 'mcpClient'), {
|
|
270
299
|
fetch: ledgered ?? gatewayFetch,
|
|
271
300
|
}), ledgered && ledger);
|
|
@@ -274,8 +303,8 @@ async function buildTransport(t, retryOnThrottle, sdk) {
|
|
|
274
303
|
// are given. The SDK folds `requestInit.headers` into the `init.headers` it
|
|
275
304
|
// hands the custom fetch, so a signer sees the static headers and has the
|
|
276
305
|
// final word over the bytes — see `McpHttpTransport.fetch`.
|
|
277
|
-
const httpFetch = (
|
|
278
|
-
const ledgered = httpFetch && (0, throttleRetry_js_1.ledgeredFetch)(httpFetch, ledger);
|
|
306
|
+
const httpFetch = retried(t.fetch);
|
|
307
|
+
const ledgered = httpFetch && (0, throttleRetry_js_1.ledgeredFetch)(httpFetch, ledger, replay);
|
|
279
308
|
const fetch = ledgered ?? httpFetch;
|
|
280
309
|
return watched(new httpMod.StreamableHTTPClientTransport((0, transportUrl_js_1.transportUrl)(t.url, 'mcpClient'), {
|
|
281
310
|
...(t.headers && { requestInit: { headers: { ...t.headers } } }),
|
|
@@ -310,8 +339,26 @@ function loadHttpModule(transport) {
|
|
|
310
339
|
}));
|
|
311
340
|
}
|
|
312
341
|
}
|
|
342
|
+
/**
|
|
343
|
+
* Dev mode, once per client and name: a replay entry for a tool the server does
|
|
344
|
+
* not list applies to nothing — a misspelled name would leave a tool that makes
|
|
345
|
+
* changes outside the side-effect guard, so it is named.
|
|
346
|
+
*/
|
|
347
|
+
function noteUnlisted(replay, listed, server, noted) {
|
|
348
|
+
if (replay.tools.size === 0 || !(0, footprintjs_1.isDevMode)())
|
|
349
|
+
return;
|
|
350
|
+
const names = new Set(listed.map((tool) => tool.name));
|
|
351
|
+
for (const tool of replay.tools.keys()) {
|
|
352
|
+
if (names.has(tool) || noted.has(tool))
|
|
353
|
+
continue;
|
|
354
|
+
noted.add(tool);
|
|
355
|
+
// eslint-disable-next-line no-console
|
|
356
|
+
console.warn(`[agentfootprint] mcpClient[${server}]: \`replay.tools\` names ${JSON.stringify(tool)}, ` +
|
|
357
|
+
"which the server does not list, so the entry applies to nothing. Check the name against the server's tool list.");
|
|
358
|
+
}
|
|
359
|
+
}
|
|
313
360
|
// ─── Tool wrapping ─────────────────────────────────────────────────
|
|
314
|
-
function wrapMcpTool(serverName, connection, mcp, signal, resultMode, ledger) {
|
|
361
|
+
function wrapMcpTool(serverName, connection, mcp, signal, resultMode, ledger, strict = false) {
|
|
315
362
|
const tool = {
|
|
316
363
|
schema: {
|
|
317
364
|
name: mcp.name,
|
|
@@ -353,20 +400,40 @@ function wrapMcpTool(serverName, connection, mcp, signal, resultMode, ledger) {
|
|
|
353
400
|
...(ctx?.time !== undefined && { _meta: (0, toolExtras_js_1.callMetaOf)(ctx.time) }),
|
|
354
401
|
};
|
|
355
402
|
// The call's lifetime (`callLifetime.ts`): its context's signal and the
|
|
356
|
-
// client's cancel the SDK request while it runs;
|
|
357
|
-
//
|
|
358
|
-
// SDK
|
|
359
|
-
// attempts into the call's run; and
|
|
360
|
-
//
|
|
403
|
+
// client's cancel the SDK request while it runs; the call puts a private
|
|
404
|
+
// marker in its params' `_meta` (`call.params`), which ties the request
|
|
405
|
+
// the SDK sends to this call — through any copy the SDK makes — so the
|
|
406
|
+
// retry series that sends it files its attempts into the call's run; and
|
|
407
|
+
// however the call settles, a series still sending is cut, inside the
|
|
408
|
+
// call. The transport takes the marker out: the server receives the
|
|
409
|
+
// request it always did.
|
|
410
|
+
//
|
|
411
|
+
// How it settles is its verdict: `completed` when the server answered and
|
|
412
|
+
// not with an error (a result it then cannot decode still completed).
|
|
413
|
+
// Under 'app-authorized', a call that genuinely lacked an answer somewhere
|
|
414
|
+
// and does not complete fails as "may have run"; a received refusal or
|
|
415
|
+
// error is delivered as it came (`callLifetime.ts`). That contract needs
|
|
416
|
+
// each request matched to its call and each answer seen: a connection
|
|
417
|
+
// that cannot establish both refuses the call here, before anything is
|
|
418
|
+
// sent (`replayUnavailable.ts`).
|
|
419
|
+
const unavailable = strict ? (0, replayUnavailable_js_1.unavailableBeforeSending)(ledger) : undefined;
|
|
420
|
+
if (unavailable !== undefined) {
|
|
421
|
+
throw new replayUnavailable_js_1.McpReplayUnavailableError(unavailable, serverName, mcp.name);
|
|
422
|
+
}
|
|
361
423
|
const call = (0, callLifetime_js_1.openCall)(params, ctx, signal, ledger, serverName);
|
|
424
|
+
let verdict = 'failed';
|
|
362
425
|
try {
|
|
363
426
|
const result = call.signal
|
|
364
|
-
? await connection.callTool(params, undefined, { signal: call.signal })
|
|
365
|
-
: await connection.callTool(params);
|
|
427
|
+
? await connection.callTool(call.params, undefined, { signal: call.signal })
|
|
428
|
+
: await connection.callTool(call.params);
|
|
429
|
+
verdict = (0, toolResult_js_1.isToolError)(result) ? 'tool-error' : 'completed';
|
|
366
430
|
return (0, toolResult_js_1.readToolResult)(result, mcp.name, serverName, resultMode);
|
|
367
431
|
}
|
|
432
|
+
catch (error) {
|
|
433
|
+
throw call.failed(error, verdict);
|
|
434
|
+
}
|
|
368
435
|
finally {
|
|
369
|
-
call.close();
|
|
436
|
+
call.close(verdict);
|
|
370
437
|
}
|
|
371
438
|
},
|
|
372
439
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../src/mcp/mcpClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../src/mcp/mcpClient.ts"],"names":[],"mappings":"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"}
|