agentfootprint 12.1.0 → 12.2.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/AGENTS.md +1 -1
- package/CAPABILITIES.md +3 -1
- package/ai-instructions/claude-code/SKILL.md +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js +113 -7
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/session.js +21 -21
- package/dist/adapters/mcp/agentcoreRuntime/session.js.map +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/transport.js +79 -5
- package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
- package/dist/core/Agent.js +6 -0
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/stages/toolCalls.js +4 -0
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js +8 -0
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +23 -4
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +112 -6
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/session.d.ts +20 -6
- package/dist/esm/adapters/mcp/agentcoreRuntime/session.js +21 -21
- package/dist/esm/adapters/mcp/agentcoreRuntime/session.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +81 -7
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
- package/dist/esm/core/Agent.js +6 -0
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/stages/toolCalls.js +4 -0
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/slots/buildToolsSlot.d.ts +12 -0
- package/dist/esm/core/slots/buildToolsSlot.js +8 -0
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +41 -0
- package/dist/esm/events/registry.d.ts +3 -1
- package/dist/esm/events/registry.js +2 -0
- package/dist/esm/events/registry.js.map +1 -1
- package/dist/esm/identity/types.d.ts +7 -3
- package/dist/esm/identity/types.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/boundedJson.d.ts +14 -7
- package/dist/esm/lib/boundedJson.js +14 -7
- package/dist/esm/lib/boundedJson.js.map +1 -1
- package/dist/esm/mcp/callLifetime.js +5 -2
- package/dist/esm/mcp/callLifetime.js.map +1 -1
- package/dist/esm/mcp/clientPort.d.ts +78 -0
- package/dist/esm/mcp/clientPort.js +33 -0
- package/dist/esm/mcp/clientPort.js.map +1 -0
- package/dist/esm/mcp/gatewayTransport.js +13 -3
- package/dist/esm/mcp/gatewayTransport.js.map +1 -1
- package/dist/esm/mcp/index.d.ts +9 -1
- package/dist/esm/mcp/index.js +8 -0
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/mcp/mcpClient.d.ts +18 -1
- package/dist/esm/mcp/mcpClient.js +203 -43
- package/dist/esm/mcp/mcpClient.js.map +1 -1
- package/dist/esm/mcp/mockMcpClient.js +13 -0
- package/dist/esm/mcp/mockMcpClient.js.map +1 -1
- package/dist/esm/mcp/pool/boundTool.d.ts +58 -0
- package/dist/esm/mcp/pool/boundTool.js +218 -0
- package/dist/esm/mcp/pool/boundTool.js.map +1 -0
- package/dist/esm/mcp/pool/clientSet.d.ts +73 -0
- package/dist/esm/mcp/pool/clientSet.js +152 -0
- package/dist/esm/mcp/pool/clientSet.js.map +1 -0
- package/dist/esm/mcp/pool/definitions.d.ts +103 -0
- package/dist/esm/mcp/pool/definitions.js +168 -0
- package/dist/esm/mcp/pool/definitions.js.map +1 -0
- package/dist/esm/mcp/pool/errors.d.ts +76 -0
- package/dist/esm/mcp/pool/errors.js +91 -0
- package/dist/esm/mcp/pool/errors.js.map +1 -0
- package/dist/esm/mcp/pool/identityKey.d.ts +57 -0
- package/dist/esm/mcp/pool/identityKey.js +94 -0
- package/dist/esm/mcp/pool/identityKey.js.map +1 -0
- package/dist/esm/mcp/pool/lease.d.ts +36 -0
- package/dist/esm/mcp/pool/lease.js +51 -0
- package/dist/esm/mcp/pool/lease.js.map +1 -0
- package/dist/esm/mcp/pool/listTools.d.ts +33 -0
- package/dist/esm/mcp/pool/listTools.js +146 -0
- package/dist/esm/mcp/pool/listTools.js.map +1 -0
- package/dist/esm/mcp/pool/mcpClientPool.d.ts +121 -0
- package/dist/esm/mcp/pool/mcpClientPool.js +151 -0
- package/dist/esm/mcp/pool/mcpClientPool.js.map +1 -0
- package/dist/esm/mcp/pool/options.d.ts +183 -0
- package/dist/esm/mcp/pool/options.js +119 -0
- package/dist/esm/mcp/pool/options.js.map +1 -0
- package/dist/esm/mcp/pool/plan.d.ts +77 -0
- package/dist/esm/mcp/pool/plan.js +134 -0
- package/dist/esm/mcp/pool/plan.js.map +1 -0
- package/dist/esm/mcp/pool/pool.d.ts +307 -0
- package/dist/esm/mcp/pool/pool.js +1071 -0
- package/dist/esm/mcp/pool/pool.js.map +1 -0
- package/dist/esm/mcp/pool/pooledClient.d.ts +93 -0
- package/dist/esm/mcp/pool/pooledClient.js +90 -0
- package/dist/esm/mcp/pool/pooledClient.js.map +1 -0
- package/dist/esm/mcp/pool/record.d.ts +80 -0
- package/dist/esm/mcp/pool/record.js +75 -0
- package/dist/esm/mcp/pool/record.js.map +1 -0
- package/dist/esm/mcp/pool/sessionEnded.d.ts +24 -0
- package/dist/esm/mcp/pool/sessionEnded.js +31 -0
- package/dist/esm/mcp/pool/sessionEnded.js.map +1 -0
- package/dist/esm/mcp/pool/work.d.ts +116 -0
- package/dist/esm/mcp/pool/work.js +213 -0
- package/dist/esm/mcp/pool/work.js.map +1 -0
- package/dist/esm/mcp/requestGuard.d.ts +70 -0
- package/dist/esm/mcp/requestGuard.js +98 -0
- package/dist/esm/mcp/requestGuard.js.map +1 -0
- package/dist/esm/mcp/requestLedger.d.ts +35 -1
- package/dist/esm/mcp/requestLedger.js +76 -3
- package/dist/esm/mcp/requestLedger.js.map +1 -1
- package/dist/esm/mcp/seriesEvidence.d.ts +10 -6
- package/dist/esm/mcp/seriesEvidence.js +16 -7
- package/dist/esm/mcp/seriesEvidence.js.map +1 -1
- package/dist/esm/mcp/terminate.d.ts +94 -0
- package/dist/esm/mcp/terminate.js +184 -0
- package/dist/esm/mcp/terminate.js.map +1 -0
- package/dist/esm/mcp/throttleRetry.js +71 -7
- package/dist/esm/mcp/throttleRetry.js.map +1 -1
- package/dist/esm/mcp/types.d.ts +85 -7
- package/dist/esm/redaction/knownStrings.js +34 -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 +7 -1
- package/dist/esm/tool-providers/index.js.map +1 -1
- package/dist/esm/tools/mcpClientUse.d.ts +59 -0
- package/dist/esm/tools/mcpClientUse.js +216 -0
- package/dist/esm/tools/mcpClientUse.js.map +1 -0
- package/dist/esm/tools/toolProvider.d.ts +16 -0
- package/dist/esm/tools/toolSessions.d.ts +41 -0
- package/dist/esm/tools/toolSessions.js +41 -1
- package/dist/esm/tools/toolSessions.js.map +1 -1
- package/dist/events/registry.js +2 -0
- package/dist/events/registry.js.map +1 -1
- package/dist/identity/types.js.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/boundedJson.js +14 -7
- package/dist/lib/boundedJson.js.map +1 -1
- package/dist/mcp/callLifetime.js +5 -2
- package/dist/mcp/callLifetime.js.map +1 -1
- package/dist/mcp/clientPort.js +38 -0
- package/dist/mcp/clientPort.js.map +1 -0
- package/dist/mcp/gatewayTransport.js +13 -3
- package/dist/mcp/gatewayTransport.js.map +1 -1
- package/dist/mcp/index.js +16 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/mcpClient.js +207 -45
- package/dist/mcp/mcpClient.js.map +1 -1
- package/dist/mcp/mockMcpClient.js +13 -0
- package/dist/mcp/mockMcpClient.js.map +1 -1
- package/dist/mcp/pool/boundTool.js +223 -0
- package/dist/mcp/pool/boundTool.js.map +1 -0
- package/dist/mcp/pool/clientSet.js +157 -0
- package/dist/mcp/pool/clientSet.js.map +1 -0
- package/dist/mcp/pool/definitions.js +174 -0
- package/dist/mcp/pool/definitions.js.map +1 -0
- package/dist/mcp/pool/errors.js +96 -0
- package/dist/mcp/pool/errors.js.map +1 -0
- package/dist/mcp/pool/identityKey.js +99 -0
- package/dist/mcp/pool/identityKey.js.map +1 -0
- package/dist/mcp/pool/lease.js +55 -0
- package/dist/mcp/pool/lease.js.map +1 -0
- package/dist/mcp/pool/listTools.js +150 -0
- package/dist/mcp/pool/listTools.js.map +1 -0
- package/dist/mcp/pool/mcpClientPool.js +155 -0
- package/dist/mcp/pool/mcpClientPool.js.map +1 -0
- package/dist/mcp/pool/options.js +123 -0
- package/dist/mcp/pool/options.js.map +1 -0
- package/dist/mcp/pool/plan.js +140 -0
- package/dist/mcp/pool/plan.js.map +1 -0
- package/dist/mcp/pool/pool.js +1075 -0
- package/dist/mcp/pool/pool.js.map +1 -0
- package/dist/mcp/pool/pooledClient.js +94 -0
- package/dist/mcp/pool/pooledClient.js.map +1 -0
- package/dist/mcp/pool/record.js +80 -0
- package/dist/mcp/pool/record.js.map +1 -0
- package/dist/mcp/pool/sessionEnded.js +35 -0
- package/dist/mcp/pool/sessionEnded.js.map +1 -0
- package/dist/mcp/pool/work.js +219 -0
- package/dist/mcp/pool/work.js.map +1 -0
- package/dist/mcp/requestGuard.js +106 -0
- package/dist/mcp/requestGuard.js.map +1 -0
- package/dist/mcp/requestLedger.js +76 -3
- package/dist/mcp/requestLedger.js.map +1 -1
- package/dist/mcp/seriesEvidence.js +16 -7
- package/dist/mcp/seriesEvidence.js.map +1 -1
- package/dist/mcp/terminate.js +193 -0
- package/dist/mcp/terminate.js.map +1 -0
- package/dist/mcp/throttleRetry.js +71 -7
- package/dist/mcp/throttleRetry.js.map +1 -1
- package/dist/redaction/knownStrings.js +34 -0
- package/dist/redaction/knownStrings.js.map +1 -1
- package/dist/tool-providers/index.js +12 -1
- package/dist/tool-providers/index.js.map +1 -1
- package/dist/tools/mcpClientUse.js +225 -0
- package/dist/tools/mcpClientUse.js.map +1 -0
- package/dist/tools/toolSessions.js +44 -1
- package/dist/tools/toolSessions.js.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +23 -4
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts +20 -6
- package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/slots/buildToolsSlot.d.ts +12 -0
- package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +41 -0
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/events/registry.d.ts +3 -1
- package/dist/types/events/registry.d.ts.map +1 -1
- package/dist/types/identity/types.d.ts +7 -3
- package/dist/types/identity/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/boundedJson.d.ts +14 -7
- package/dist/types/lib/boundedJson.d.ts.map +1 -1
- package/dist/types/mcp/callLifetime.d.ts.map +1 -1
- package/dist/types/mcp/clientPort.d.ts +79 -0
- package/dist/types/mcp/clientPort.d.ts.map +1 -0
- package/dist/types/mcp/gatewayTransport.d.ts.map +1 -1
- package/dist/types/mcp/index.d.ts +9 -1
- package/dist/types/mcp/index.d.ts.map +1 -1
- package/dist/types/mcp/mcpClient.d.ts +18 -1
- package/dist/types/mcp/mcpClient.d.ts.map +1 -1
- package/dist/types/mcp/mockMcpClient.d.ts.map +1 -1
- package/dist/types/mcp/pool/boundTool.d.ts +59 -0
- package/dist/types/mcp/pool/boundTool.d.ts.map +1 -0
- package/dist/types/mcp/pool/clientSet.d.ts +74 -0
- package/dist/types/mcp/pool/clientSet.d.ts.map +1 -0
- package/dist/types/mcp/pool/definitions.d.ts +104 -0
- package/dist/types/mcp/pool/definitions.d.ts.map +1 -0
- package/dist/types/mcp/pool/errors.d.ts +77 -0
- package/dist/types/mcp/pool/errors.d.ts.map +1 -0
- package/dist/types/mcp/pool/identityKey.d.ts +58 -0
- package/dist/types/mcp/pool/identityKey.d.ts.map +1 -0
- package/dist/types/mcp/pool/lease.d.ts +37 -0
- package/dist/types/mcp/pool/lease.d.ts.map +1 -0
- package/dist/types/mcp/pool/listTools.d.ts +34 -0
- package/dist/types/mcp/pool/listTools.d.ts.map +1 -0
- package/dist/types/mcp/pool/mcpClientPool.d.ts +122 -0
- package/dist/types/mcp/pool/mcpClientPool.d.ts.map +1 -0
- package/dist/types/mcp/pool/options.d.ts +184 -0
- package/dist/types/mcp/pool/options.d.ts.map +1 -0
- package/dist/types/mcp/pool/plan.d.ts +78 -0
- package/dist/types/mcp/pool/plan.d.ts.map +1 -0
- package/dist/types/mcp/pool/pool.d.ts +308 -0
- package/dist/types/mcp/pool/pool.d.ts.map +1 -0
- package/dist/types/mcp/pool/pooledClient.d.ts +94 -0
- package/dist/types/mcp/pool/pooledClient.d.ts.map +1 -0
- package/dist/types/mcp/pool/record.d.ts +81 -0
- package/dist/types/mcp/pool/record.d.ts.map +1 -0
- package/dist/types/mcp/pool/sessionEnded.d.ts +25 -0
- package/dist/types/mcp/pool/sessionEnded.d.ts.map +1 -0
- package/dist/types/mcp/pool/work.d.ts +117 -0
- package/dist/types/mcp/pool/work.d.ts.map +1 -0
- package/dist/types/mcp/requestGuard.d.ts +71 -0
- package/dist/types/mcp/requestGuard.d.ts.map +1 -0
- package/dist/types/mcp/requestLedger.d.ts +35 -1
- package/dist/types/mcp/requestLedger.d.ts.map +1 -1
- package/dist/types/mcp/seriesEvidence.d.ts +10 -6
- package/dist/types/mcp/seriesEvidence.d.ts.map +1 -1
- package/dist/types/mcp/terminate.d.ts +95 -0
- package/dist/types/mcp/terminate.d.ts.map +1 -0
- package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
- package/dist/types/mcp/types.d.ts +85 -7
- package/dist/types/mcp/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/mcpClientUse.d.ts +60 -0
- package/dist/types/tools/mcpClientUse.d.ts.map +1 -0
- package/dist/types/tools/toolProvider.d.ts +16 -0
- package/dist/types/tools/toolProvider.d.ts.map +1 -1
- package/dist/types/tools/toolSessions.d.ts +41 -0
- package/dist/types/tools/toolSessions.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestLedger.js","sourceRoot":"","sources":["../../../src/mcp/requestLedger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"requestLedger.js","sourceRoot":"","sources":["../../../src/mcp/requestLedger.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,11 +119,13 @@ export declare class SeriesEvidence {
|
|
|
119
119
|
/**
|
|
120
120
|
* The series delivered a response. It is the last attempt's — an answer, or a
|
|
121
121
|
* refusal it will not ask again after. A refusal it MEANT to ask again after
|
|
122
|
-
* is delivered when the
|
|
123
|
-
*
|
|
124
|
-
*
|
|
122
|
+
* is delivered when the series stopped inside the wait: the deadline landed
|
|
123
|
+
* there (`no-time-left`), or a pooled call's send gate refused the next
|
|
124
|
+
* attempt before it was sent (`stoppedBy`, `not-permitted`). The end says
|
|
125
|
+
* which, during the `wait`; the attempt that was never sent has no row.
|
|
126
|
+
* Filed when the call has read it.
|
|
125
127
|
*/
|
|
126
|
-
delivered(): void;
|
|
128
|
+
delivered(stoppedBy?: DeclineReason): void;
|
|
127
129
|
/**
|
|
128
130
|
* The series threw. The end is the last attempt's when that attempt ended it
|
|
129
131
|
* (a failure, a timed-out request). The rest is defensive — footprintjs 10.6's
|
|
@@ -131,9 +133,11 @@ export declare class SeriesEvidence {
|
|
|
131
133
|
* as one: a deadline that had passed before the first request (`timed-out`,
|
|
132
134
|
* no `during`, nothing sent) or one a future runner reports from inside a wait
|
|
133
135
|
* (`during: 'wait'`); anything else is filed as a failure the record cannot
|
|
134
|
-
* account for, so a request is never left unfiled.
|
|
136
|
+
* account for, so a request is never left unfiled. A pooled call's send gate
|
|
137
|
+
* that refused the next attempt before it was sent ends it as `stoppedBy`,
|
|
138
|
+
* during the `wait`. Filed when the call settles.
|
|
135
139
|
*/
|
|
136
|
-
threw(outOfTime: boolean): void;
|
|
140
|
+
threw(outOfTime: boolean, stoppedBy?: DeclineReason): void;
|
|
137
141
|
private add;
|
|
138
142
|
/**
|
|
139
143
|
* File `end` once the call has settled — its verdict is what says whether an
|
|
@@ -121,18 +121,20 @@ export class SeriesEvidence {
|
|
|
121
121
|
/**
|
|
122
122
|
* The series delivered a response. It is the last attempt's — an answer, or a
|
|
123
123
|
* refusal it will not ask again after. A refusal it MEANT to ask again after
|
|
124
|
-
* is delivered when the
|
|
125
|
-
*
|
|
126
|
-
*
|
|
124
|
+
* is delivered when the series stopped inside the wait: the deadline landed
|
|
125
|
+
* there (`no-time-left`), or a pooled call's send gate refused the next
|
|
126
|
+
* attempt before it was sent (`stoppedBy`, `not-permitted`). The end says
|
|
127
|
+
* which, during the `wait`; the attempt that was never sent has no row.
|
|
128
|
+
* Filed when the call has read it.
|
|
127
129
|
*/
|
|
128
|
-
delivered() {
|
|
130
|
+
delivered(stoppedBy) {
|
|
129
131
|
const last = this.last;
|
|
130
132
|
if (last === undefined) {
|
|
131
133
|
this.fileWhenSettled(UNACCOUNTED);
|
|
132
134
|
return;
|
|
133
135
|
}
|
|
134
136
|
this.fileWhenSettled(last.reason === 'retryable'
|
|
135
|
-
? { ...endOf(last), reason: 'no-time-left', during: 'wait' }
|
|
137
|
+
? { ...endOf(last), reason: stoppedBy ?? 'no-time-left', during: 'wait' }
|
|
136
138
|
: endOf(last));
|
|
137
139
|
}
|
|
138
140
|
/**
|
|
@@ -142,14 +144,21 @@ export class SeriesEvidence {
|
|
|
142
144
|
* as one: a deadline that had passed before the first request (`timed-out`,
|
|
143
145
|
* no `during`, nothing sent) or one a future runner reports from inside a wait
|
|
144
146
|
* (`during: 'wait'`); anything else is filed as a failure the record cannot
|
|
145
|
-
* account for, so a request is never left unfiled.
|
|
147
|
+
* account for, so a request is never left unfiled. A pooled call's send gate
|
|
148
|
+
* that refused the next attempt before it was sent ends it as `stoppedBy`,
|
|
149
|
+
* during the `wait`. Filed when the call settles.
|
|
146
150
|
*/
|
|
147
|
-
threw(outOfTime) {
|
|
151
|
+
threw(outOfTime, stoppedBy) {
|
|
148
152
|
const last = this.last;
|
|
149
153
|
if (last !== undefined && last.reason !== 'retryable') {
|
|
150
154
|
this.fileWhenSettled(endOf(last));
|
|
151
155
|
return;
|
|
152
156
|
}
|
|
157
|
+
// A pooled call's send gate refused the next attempt before it was sent.
|
|
158
|
+
if (last !== undefined && stoppedBy !== undefined) {
|
|
159
|
+
this.fileWhenSettled({ ...endOf(last), reason: stoppedBy, during: 'wait' });
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
153
162
|
if (!outOfTime) {
|
|
154
163
|
this.fileWhenSettled(UNACCOUNTED);
|
|
155
164
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seriesEvidence.js","sourceRoot":"","sources":["../../../src/mcp/seriesEvidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAYH,OAAO,EACL,wBAAwB,GAGzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAsB,MAAM,aAAa,CAAC;AA8ClE,MAAM,MAAM,GACV,qEAAqE,CAAC;AACxE,MAAM,WAAW,GACf,oDAAoD,CAAC;AAEvD,2EAA2E;AAC3E,MAAM,OAAO,cAAc;IAYN;IACA;IACA;IAbF,IAAI,GAAyB,EAAE,CAAC;IACzC,OAAO,GAAG,CAAC,CAAC;IACZ,IAAI,CAAiC;IACrC,KAAK,GAAG,KAAK,CAAC;IACd,OAAO,GAAG,KAAK,CAAC;IACxB,uFAAuF;IACtE,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IACnD,2EAA2E;IACnE,MAAM,CAAiC;IAE/C,YACmB,IAAyB,EACzB,KAAmB,EACnB,UAAuB;QAFvB,SAAI,GAAJ,IAAI,CAAqB;QACzB,UAAK,GAAL,KAAK,CAAc;QACnB,eAAU,GAAV,UAAU,CAAa;IACvC,CAAC;IAEJ,+EAA+E;IAC/E,OAAO,CACL,MAAqB,EACrB,IAA6B,EAC7B,QAAwB,EACxB,KAAoB;QAEpB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5D,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAClF,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,CAAS,EAAE,UAAmB;QACxC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,GAAG,CAAC;YACP,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;OAKG;IACH,SAAS;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC;YACR,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,WAAW;YACnB,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAe,EAAE,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"seriesEvidence.js","sourceRoot":"","sources":["../../../src/mcp/seriesEvidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* terminate — ending a client's remote session, and saying what the remote side
|
|
3
|
+
* answered.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: a pass-through `fetch` that reads one status + one bounded procedure.
|
|
6
|
+
* Role: `McpClient.terminate()` (`mcpClient.ts`). The MCP SDK's
|
|
7
|
+
* `StreamableHTTPClientTransport.close()` only aborts the requests in
|
|
8
|
+
* flight; `terminateSession()` is the one method that sends the
|
|
9
|
+
* Streamable HTTP `DELETE` carrying `Mcp-Session-Id`. It treats a 405
|
|
10
|
+
* as success, so the status is read here, by a pass-through `fetch`
|
|
11
|
+
* the library installs on every transport it builds — it changes no
|
|
12
|
+
* request and reads only a `DELETE`'s answer.
|
|
13
|
+
*
|
|
14
|
+
* The procedure, at most once per client:
|
|
15
|
+
*
|
|
16
|
+
* 1. no session id was ever issued → `'no-session'`, nothing is sent;
|
|
17
|
+
* 2. otherwise the transport's own `terminateSession()`, bounded by
|
|
18
|
+
* `TOOL_TEARDOWN_TIMEOUT_MS` (the tool-session tier's `withTimeout`, shared):
|
|
19
|
+
* at the deadline the request is aborted and the outcome is `'timed-out'`;
|
|
20
|
+
* 3. a local close, whatever happened.
|
|
21
|
+
*
|
|
22
|
+
* ONE DEADLINE ANSWERS THE CALLER: the remote answer and the local close are
|
|
23
|
+
* waited for together for at most `TOOL_TEARDOWN_TIMEOUT_MS` of ELAPSED time,
|
|
24
|
+
* measured by timers started together at the start — never by reading the wall
|
|
25
|
+
* clock, so a clock stepped back cannot stretch it. A close that finishes in
|
|
26
|
+
* time is finished before the caller hears; one that hangs does not hold the
|
|
27
|
+
* answer. The work's own settlement — the `DELETE`, a `fetch` that ignores its
|
|
28
|
+
* abort, the close — may come later, and is returned apart (`settled`): the MCP
|
|
29
|
+
* client pool keeps an ending charged until then. The clock (`now`) only
|
|
30
|
+
* measures `durationMs`.
|
|
31
|
+
*
|
|
32
|
+
* Never vendor-aware: the one port is the Streamable HTTP `DELETE`. A transport
|
|
33
|
+
* that turns it into something else (AgentCore Runtime's `StopRuntimeSession`)
|
|
34
|
+
* answers it like a server would.
|
|
35
|
+
*/
|
|
36
|
+
import type { McpClient, McpTerminateOutcome } from './types.js';
|
|
37
|
+
/** An `McpClient` that can end its remote session. */
|
|
38
|
+
export type TerminableMcpClient = McpClient & {
|
|
39
|
+
terminate(): Promise<McpTerminateOutcome>;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Can `client` end its remote session? Reads the member, never assumes it —
|
|
43
|
+
* the feature-detection law (`provider-contract/types.ts` · `canStageCodeInputs`).
|
|
44
|
+
* True for `mcpClient()` and `mockMcpClient()`; false for a hand-written client
|
|
45
|
+
* without `terminate`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function canTerminate(client: unknown): client is TerminableMcpClient;
|
|
48
|
+
/** What ending one client came to: the caller's answer, and when the work under it settled. */
|
|
49
|
+
export interface Ending {
|
|
50
|
+
/** Answers by `TOOL_TEARDOWN_TIMEOUT_MS`. Never rejects. */
|
|
51
|
+
readonly outcome: Promise<McpTerminateOutcome>;
|
|
52
|
+
/** Resolves once every piece of work the ending started has settled. Never rejects. */
|
|
53
|
+
readonly settled: Promise<void>;
|
|
54
|
+
}
|
|
55
|
+
/** The slice of the SDK's Streamable HTTP transport the procedure uses. */
|
|
56
|
+
export interface TerminableTransport {
|
|
57
|
+
readonly sessionId?: string;
|
|
58
|
+
terminateSession(): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* What the pass-through `fetch` saw of a transport's `DELETE` requests: the
|
|
62
|
+
* status of the latest answer, and the signal it links into each one while an
|
|
63
|
+
* ending is under way.
|
|
64
|
+
*/
|
|
65
|
+
export declare class DeleteWatch {
|
|
66
|
+
private status;
|
|
67
|
+
private cut;
|
|
68
|
+
/** Arm for one ending: forget the last status, link `cut` into its `DELETE`. */
|
|
69
|
+
arm(cut: AbortSignal): void;
|
|
70
|
+
/** The status the latest `DELETE` was answered with, if one was. */
|
|
71
|
+
get answered(): number | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* `inner` (the global `fetch` when `undefined`, looked up at call time),
|
|
74
|
+
* passed through untouched except that a `DELETE`'s answer status is read and
|
|
75
|
+
* an armed ending's signal is linked into it.
|
|
76
|
+
*/
|
|
77
|
+
fetch(inner: ((input: string | URL, init?: RequestInit) => Promise<Response>) | undefined): (input: string | URL, init?: RequestInit) => Promise<Response>;
|
|
78
|
+
}
|
|
79
|
+
/** The outcome for an ending that sent nothing. */
|
|
80
|
+
export declare function outcomeWithout(remote: 'no-session' | 'unavailable', durationMs?: number): McpTerminateOutcome;
|
|
81
|
+
/**
|
|
82
|
+
* An ending that sends nothing — `remote` says why — only the local close:
|
|
83
|
+
* the caller is answered when the close finishes or at `timeoutMs`, whichever
|
|
84
|
+
* comes first; `settled` waits for the close itself.
|
|
85
|
+
*/
|
|
86
|
+
export declare function endLocally(remote: 'no-session' | 'unavailable', close: () => Promise<void>, now?: () => number, timeoutMs?: number): Ending;
|
|
87
|
+
/**
|
|
88
|
+
* End `transport`'s session, then close locally with `close` — the procedure
|
|
89
|
+
* in the module note. `watch` is the `DeleteWatch` installed on the transport's
|
|
90
|
+
* fetch. `now` is the clock the duration is measured with.
|
|
91
|
+
*/
|
|
92
|
+
export declare function endSession(transport: TerminableTransport, watch: DeleteWatch, close: () => Promise<void>, now?: () => number, timeoutMs?: number): Ending;
|
|
93
|
+
/** A failure's class name, never its message. */
|
|
94
|
+
export declare function classOf(error: unknown): string;
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* terminate — ending a client's remote session, and saying what the remote side
|
|
3
|
+
* answered.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: a pass-through `fetch` that reads one status + one bounded procedure.
|
|
6
|
+
* Role: `McpClient.terminate()` (`mcpClient.ts`). The MCP SDK's
|
|
7
|
+
* `StreamableHTTPClientTransport.close()` only aborts the requests in
|
|
8
|
+
* flight; `terminateSession()` is the one method that sends the
|
|
9
|
+
* Streamable HTTP `DELETE` carrying `Mcp-Session-Id`. It treats a 405
|
|
10
|
+
* as success, so the status is read here, by a pass-through `fetch`
|
|
11
|
+
* the library installs on every transport it builds — it changes no
|
|
12
|
+
* request and reads only a `DELETE`'s answer.
|
|
13
|
+
*
|
|
14
|
+
* The procedure, at most once per client:
|
|
15
|
+
*
|
|
16
|
+
* 1. no session id was ever issued → `'no-session'`, nothing is sent;
|
|
17
|
+
* 2. otherwise the transport's own `terminateSession()`, bounded by
|
|
18
|
+
* `TOOL_TEARDOWN_TIMEOUT_MS` (the tool-session tier's `withTimeout`, shared):
|
|
19
|
+
* at the deadline the request is aborted and the outcome is `'timed-out'`;
|
|
20
|
+
* 3. a local close, whatever happened.
|
|
21
|
+
*
|
|
22
|
+
* ONE DEADLINE ANSWERS THE CALLER: the remote answer and the local close are
|
|
23
|
+
* waited for together for at most `TOOL_TEARDOWN_TIMEOUT_MS` of ELAPSED time,
|
|
24
|
+
* measured by timers started together at the start — never by reading the wall
|
|
25
|
+
* clock, so a clock stepped back cannot stretch it. A close that finishes in
|
|
26
|
+
* time is finished before the caller hears; one that hangs does not hold the
|
|
27
|
+
* answer. The work's own settlement — the `DELETE`, a `fetch` that ignores its
|
|
28
|
+
* abort, the close — may come later, and is returned apart (`settled`): the MCP
|
|
29
|
+
* client pool keeps an ending charged until then. The clock (`now`) only
|
|
30
|
+
* measures `durationMs`.
|
|
31
|
+
*
|
|
32
|
+
* Never vendor-aware: the one port is the Streamable HTTP `DELETE`. A transport
|
|
33
|
+
* that turns it into something else (AgentCore Runtime's `StopRuntimeSession`)
|
|
34
|
+
* answers it like a server would.
|
|
35
|
+
*/
|
|
36
|
+
import { eitherSignal } from '../lib/abort.js';
|
|
37
|
+
import { isLocalSessionHandleLost, TOOL_TEARDOWN_TIMEOUT_MS, ToolTeardownTimeoutError, withTimeout, } from '../tools/toolSessions.js';
|
|
38
|
+
/**
|
|
39
|
+
* Can `client` end its remote session? Reads the member, never assumes it —
|
|
40
|
+
* the feature-detection law (`provider-contract/types.ts` · `canStageCodeInputs`).
|
|
41
|
+
* True for `mcpClient()` and `mockMcpClient()`; false for a hand-written client
|
|
42
|
+
* without `terminate`.
|
|
43
|
+
*/
|
|
44
|
+
export function canTerminate(client) {
|
|
45
|
+
if (client === null || typeof client !== 'object')
|
|
46
|
+
return false;
|
|
47
|
+
try {
|
|
48
|
+
return typeof client.terminate === 'function';
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* What the pass-through `fetch` saw of a transport's `DELETE` requests: the
|
|
56
|
+
* status of the latest answer, and the signal it links into each one while an
|
|
57
|
+
* ending is under way.
|
|
58
|
+
*/
|
|
59
|
+
export class DeleteWatch {
|
|
60
|
+
status;
|
|
61
|
+
cut;
|
|
62
|
+
/** Arm for one ending: forget the last status, link `cut` into its `DELETE`. */
|
|
63
|
+
arm(cut) {
|
|
64
|
+
this.status = undefined;
|
|
65
|
+
this.cut = cut;
|
|
66
|
+
}
|
|
67
|
+
/** The status the latest `DELETE` was answered with, if one was. */
|
|
68
|
+
get answered() {
|
|
69
|
+
return this.status;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* `inner` (the global `fetch` when `undefined`, looked up at call time),
|
|
73
|
+
* passed through untouched except that a `DELETE`'s answer status is read and
|
|
74
|
+
* an armed ending's signal is linked into it.
|
|
75
|
+
*/
|
|
76
|
+
fetch(inner) {
|
|
77
|
+
const send = inner ?? ((input, init) => globalThis.fetch(input, init));
|
|
78
|
+
return async (input, init) => {
|
|
79
|
+
if ((init?.method ?? 'GET').toUpperCase() !== 'DELETE')
|
|
80
|
+
return send(input, init);
|
|
81
|
+
const signal = this.cut === undefined ? init?.signal : eitherSignal(init?.signal ?? undefined, this.cut);
|
|
82
|
+
const response = await send(input, signal === undefined ? init : { ...init, signal });
|
|
83
|
+
this.status = response.status;
|
|
84
|
+
return response;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/** The outcome for an ending that sent nothing. */
|
|
89
|
+
export function outcomeWithout(remote, durationMs = 0) {
|
|
90
|
+
return { remote, resolved: remote === 'no-session', durationMs };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* An ending that sends nothing — `remote` says why — only the local close:
|
|
94
|
+
* the caller is answered when the close finishes or at `timeoutMs`, whichever
|
|
95
|
+
* comes first; `settled` waits for the close itself.
|
|
96
|
+
*/
|
|
97
|
+
export function endLocally(remote, close, now = Date.now, timeoutMs = TOOL_TEARDOWN_TIMEOUT_MS) {
|
|
98
|
+
const startedAt = now();
|
|
99
|
+
const closing = settle(close);
|
|
100
|
+
return {
|
|
101
|
+
outcome: within(closing, timeoutMs).then(() => outcomeWithout(remote, Math.max(0, now() - startedAt))),
|
|
102
|
+
settled: closing,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* End `transport`'s session, then close locally with `close` — the procedure
|
|
107
|
+
* in the module note. `watch` is the `DeleteWatch` installed on the transport's
|
|
108
|
+
* fetch. `now` is the clock the duration is measured with.
|
|
109
|
+
*/
|
|
110
|
+
export function endSession(transport, watch, close, now = Date.now, timeoutMs = TOOL_TEARDOWN_TIMEOUT_MS) {
|
|
111
|
+
if (transport.sessionId === undefined)
|
|
112
|
+
return endLocally('no-session', close, now, timeoutMs);
|
|
113
|
+
const startedAt = now();
|
|
114
|
+
const deadline = new AbortController();
|
|
115
|
+
watch.arm(deadline.signal);
|
|
116
|
+
// The transport's own termination; its promise is the work this ending
|
|
117
|
+
// waits for, however long the caller is answered before it.
|
|
118
|
+
const work = Promise.resolve().then(() => transport.terminateSession());
|
|
119
|
+
const remote = withTimeout(() => work, timeoutMs, 'MCP session termination').then(() => answered(watch.answered, startedAt, now), (error) => {
|
|
120
|
+
if (error instanceof ToolTeardownTimeoutError) {
|
|
121
|
+
deadline.abort(error);
|
|
122
|
+
return finished('timed-out', startedAt, now);
|
|
123
|
+
}
|
|
124
|
+
return failedWith(error, watch.answered, startedAt, now);
|
|
125
|
+
});
|
|
126
|
+
// Closed locally once the remote side has its answer, whatever it is.
|
|
127
|
+
const closing = remote.then(() => settle(close));
|
|
128
|
+
// The caller's wait for that close starts NOW, beside the remote one: both
|
|
129
|
+
// end at the same elapsed deadline, whatever the wall clock does meanwhile.
|
|
130
|
+
const outcome = within(closing, timeoutMs).then(() => remote);
|
|
131
|
+
return {
|
|
132
|
+
outcome,
|
|
133
|
+
settled: Promise.allSettled([work, closing]).then(() => undefined),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/** `close()`, never rejecting. */
|
|
137
|
+
function settle(close) {
|
|
138
|
+
return Promise.resolve()
|
|
139
|
+
.then(close)
|
|
140
|
+
.then(() => undefined, () => undefined);
|
|
141
|
+
}
|
|
142
|
+
/** `work`, or `ms` of elapsed time from now — whichever comes first. Never rejects; the work goes on. */
|
|
143
|
+
function within(work, ms) {
|
|
144
|
+
return withTimeout(() => work, ms, 'MCP local close').then(() => undefined, () => undefined);
|
|
145
|
+
}
|
|
146
|
+
/** The SDK resolved: a 2xx, or a 405 it treats as success. */
|
|
147
|
+
function answered(status, startedAt, now) {
|
|
148
|
+
if (status === 405)
|
|
149
|
+
return finished('not-offered', startedAt, now, status);
|
|
150
|
+
if (status !== undefined && status >= 200 && status < 300) {
|
|
151
|
+
return finished('terminated', startedAt, now, status);
|
|
152
|
+
}
|
|
153
|
+
// Resolved without an answer this watch saw: nothing was sent.
|
|
154
|
+
return finished('no-session', startedAt, now, status);
|
|
155
|
+
}
|
|
156
|
+
/** The SDK rejected: a 404, another status, a lost handle, or no answer at all. */
|
|
157
|
+
function failedWith(error, status, startedAt, now) {
|
|
158
|
+
if (isLocalSessionHandleLost(error)) {
|
|
159
|
+
return finished('handle-lost', startedAt, now, undefined, classOf(error));
|
|
160
|
+
}
|
|
161
|
+
if (status === 404)
|
|
162
|
+
return finished('already-gone', startedAt, now, status);
|
|
163
|
+
return finished('failed', startedAt, now, status, classOf(error));
|
|
164
|
+
}
|
|
165
|
+
function finished(remote, startedAt, now, status, errorClass) {
|
|
166
|
+
return {
|
|
167
|
+
remote,
|
|
168
|
+
resolved: remote === 'terminated' || remote === 'already-gone' || remote === 'no-session',
|
|
169
|
+
...(status !== undefined && { status }),
|
|
170
|
+
...(errorClass !== undefined && { errorClass }),
|
|
171
|
+
durationMs: Math.max(0, now() - startedAt),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
/** A failure's class name, never its message. */
|
|
175
|
+
export function classOf(error) {
|
|
176
|
+
if (error instanceof Error) {
|
|
177
|
+
const ctor = error.constructor;
|
|
178
|
+
if (typeof ctor?.name === 'string' && ctor.name !== '')
|
|
179
|
+
return ctor.name;
|
|
180
|
+
return error.name;
|
|
181
|
+
}
|
|
182
|
+
return typeof error;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=terminate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../src/mcp/terminate.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,6 +105,7 @@ import { attempt, } from 'footprintjs';
|
|
|
105
105
|
import { abortErrorOf, eitherSignal, linkedController } from '../lib/abort.js';
|
|
106
106
|
import { exponentialBackoff, statedWaitFirst } from './backoff.js';
|
|
107
107
|
import { COMPATIBILITY, permit, replayTargetOf, RequestReplay, thrownFailure, } from './replay.js';
|
|
108
|
+
import { guardOf, withGuard } from './requestGuard.js';
|
|
108
109
|
import { SeriesEvidence, } from './seriesEvidence.js';
|
|
109
110
|
/** HTTP 429, with the server's own `Retry-After` when it sent one. */
|
|
110
111
|
export function throttled(response) {
|
|
@@ -342,6 +343,16 @@ class Series {
|
|
|
342
343
|
permitted;
|
|
343
344
|
/** The attempt sent and not yet recorded — what a cancellation cuts in flight. */
|
|
344
345
|
inFlight;
|
|
346
|
+
/**
|
|
347
|
+
* The send gate of the pooled operation this request belongs to
|
|
348
|
+
* (`requestGuard.ts`) — on the request's `init`, or on its ledger claim.
|
|
349
|
+
* Absent for a request no pool sent.
|
|
350
|
+
*/
|
|
351
|
+
gate;
|
|
352
|
+
/** The attempt the gate stopped before it was sent: it has no row. */
|
|
353
|
+
gateStopped;
|
|
354
|
+
/** The error the latest failed attempt ended with — what a gate stop ends the series on. */
|
|
355
|
+
lastError;
|
|
345
356
|
constructor(rules, input, init, declaration, ledger) {
|
|
346
357
|
this.rules = rules;
|
|
347
358
|
this.input = input;
|
|
@@ -354,6 +365,7 @@ class Series {
|
|
|
354
365
|
const { maxElapsedMs } = this.owner;
|
|
355
366
|
this.deadline = Number.isFinite(maxElapsedMs) ? this.startedAt + maxElapsedMs : undefined;
|
|
356
367
|
const claimed = ledger?.claim(init?.body);
|
|
368
|
+
this.gate = guardOf(init) ?? claimed?.guard;
|
|
357
369
|
const ticket = claimed?.ticket;
|
|
358
370
|
// A request no ledger claimed keeps its facts here, with no answer to watch.
|
|
359
371
|
this.shared = claimed?.replay ?? new RequestReplay('', false);
|
|
@@ -445,6 +457,20 @@ class Series {
|
|
|
445
457
|
* streaming for as long as the caller's own signal allows.
|
|
446
458
|
*/
|
|
447
459
|
async send(inner, t) {
|
|
460
|
+
// A pooled operation's send gate, asked before every attempt — the first
|
|
461
|
+
// was asked by the pool's own fetch an instant before the series began; a
|
|
462
|
+
// later one is asked here, after the wait, before anything is sent. A
|
|
463
|
+
// binding that went stale or an operation out of time sends nothing more:
|
|
464
|
+
// the attempt is never sent, so it has no row (`report`).
|
|
465
|
+
if (t.attempt > 1 && this.gate !== undefined) {
|
|
466
|
+
try {
|
|
467
|
+
this.gate.check();
|
|
468
|
+
}
|
|
469
|
+
catch (refusal) {
|
|
470
|
+
this.gateStopped = t.attempt;
|
|
471
|
+
throw refusal;
|
|
472
|
+
}
|
|
473
|
+
}
|
|
448
474
|
this.attemptNo = t.attempt;
|
|
449
475
|
// From here the request is SENT — counted, as a row, however the attempt ends.
|
|
450
476
|
this.inFlight = t.attempt;
|
|
@@ -457,8 +483,15 @@ class Series {
|
|
|
457
483
|
const cut = this.cutsInFlight ? linkedController(t.signal) : undefined;
|
|
458
484
|
const signal = eitherSignal(this.signal, cut?.controller.signal);
|
|
459
485
|
try {
|
|
460
|
-
const
|
|
461
|
-
|
|
486
|
+
const sent = cut === undefined ? this.init : { ...this.init, ...(signal && { signal }) };
|
|
487
|
+
// The gate rides every attempt's `init`, so the vending fetch and the AWS
|
|
488
|
+
// command ask it after their own waits (`requestGuard.ts`).
|
|
489
|
+
const init = this.gate !== undefined && guardOf(sent) === undefined ? withGuard(sent, this.gate) : sent;
|
|
490
|
+
const pending = inner(this.input, init);
|
|
491
|
+
// An attempt this series gives up on — a cut, a deadline — may still be
|
|
492
|
+
// running underneath: it stays counted under the operation until it settles.
|
|
493
|
+
this.gate?.track(pending);
|
|
494
|
+
const response = await pending;
|
|
462
495
|
this.seen = { attempt: t.attempt, status: response.status };
|
|
463
496
|
const refused = await this.recognise(response, signal);
|
|
464
497
|
if (refused === undefined)
|
|
@@ -501,6 +534,11 @@ class Series {
|
|
|
501
534
|
retryOn(error) {
|
|
502
535
|
this.plannedWaitMs = 0;
|
|
503
536
|
this.permitted = undefined;
|
|
537
|
+
// An attempt the gate stopped was never sent: nothing follows it, and the
|
|
538
|
+
// failure the series ends on stays the last attempt that was.
|
|
539
|
+
if (this.gateStopped !== undefined)
|
|
540
|
+
return this.decline('not-permitted');
|
|
541
|
+
this.lastError = error;
|
|
504
542
|
const refused = this.latest;
|
|
505
543
|
const refusal = refused !== undefined && error === refused.refusal ? refused : undefined;
|
|
506
544
|
// What failed: a refusal a rule recognised, or a request that failed in
|
|
@@ -509,6 +547,10 @@ class Series {
|
|
|
509
547
|
const failure = refusal === undefined ? thrownFailure(error) : refusalOf(refusal.rule);
|
|
510
548
|
if (failure === undefined)
|
|
511
549
|
return this.decline('not-retryable');
|
|
550
|
+
// The pooled operation's gate, asked before a repeat is planned: a stale
|
|
551
|
+
// binding or an operation out of time permits nothing more to be sent.
|
|
552
|
+
if (!this.gateAllows())
|
|
553
|
+
return this.decline('not-permitted');
|
|
512
554
|
const decision = permit(this.declaration, this.target, failure);
|
|
513
555
|
if (!decision.repeat)
|
|
514
556
|
return this.decline(decision.declined);
|
|
@@ -541,6 +583,18 @@ class Series {
|
|
|
541
583
|
this.declined = reason;
|
|
542
584
|
return false;
|
|
543
585
|
}
|
|
586
|
+
/** Whether the pooled operation's gate lets another attempt be sent. True with no gate. */
|
|
587
|
+
gateAllows() {
|
|
588
|
+
if (this.gate === undefined)
|
|
589
|
+
return true;
|
|
590
|
+
try {
|
|
591
|
+
this.gate.check();
|
|
592
|
+
return true;
|
|
593
|
+
}
|
|
594
|
+
catch {
|
|
595
|
+
return false;
|
|
596
|
+
}
|
|
597
|
+
}
|
|
544
598
|
elapsedAfter(waitMs) {
|
|
545
599
|
return Date.now() - this.startedAt + waitMs;
|
|
546
600
|
}
|
|
@@ -551,6 +605,9 @@ class Series {
|
|
|
551
605
|
* cost the run its evidence.
|
|
552
606
|
*/
|
|
553
607
|
report(record) {
|
|
608
|
+
// Stopped by the gate before it was sent: no row, nothing to count.
|
|
609
|
+
if (record.attempt === this.gateStopped)
|
|
610
|
+
return;
|
|
554
611
|
const refused = this.latest;
|
|
555
612
|
if (this.inFlight === record.attempt)
|
|
556
613
|
this.inFlight = undefined;
|
|
@@ -621,14 +678,21 @@ class Series {
|
|
|
621
678
|
throw abortErrorOf(this.cancel);
|
|
622
679
|
}
|
|
623
680
|
// The series ended on a refusal — attempts spent, a ceiling reached, no
|
|
624
|
-
// time left
|
|
625
|
-
|
|
681
|
+
// time left, or a pooled operation's gate that permits nothing more. The
|
|
682
|
+
// server's answer is delivered as it sent it.
|
|
683
|
+
const stopped = this.gateStopped !== undefined;
|
|
684
|
+
// A gate stop is the decision the record ends on — never a deadline the
|
|
685
|
+
// series did not reach, never an attempt that was not sent.
|
|
686
|
+
const stoppedBy = stopped ? 'not-permitted' : undefined;
|
|
687
|
+
if (this.latest !== undefined && (error === this.latest.refusal || stopped)) {
|
|
626
688
|
this.shared.deliveredStatus(this.latest.response.status);
|
|
627
|
-
this.evidence?.delivered();
|
|
689
|
+
this.evidence?.delivered(stoppedBy);
|
|
628
690
|
return this.latest.response;
|
|
629
691
|
}
|
|
630
|
-
this.evidence?.threw(this.deadline !== undefined && Date.now() >= this.deadline);
|
|
631
|
-
|
|
692
|
+
this.evidence?.threw(this.deadline !== undefined && Date.now() >= this.deadline, stoppedBy);
|
|
693
|
+
// A gate stop after a failure with no answer ends on that failure: the
|
|
694
|
+
// attempt that was sent is the one the caller hears about.
|
|
695
|
+
throw stopped ? this.lastError : error;
|
|
632
696
|
}
|
|
633
697
|
supersede() {
|
|
634
698
|
if (this.latest !== undefined)
|