agentfootprint 12.0.1 → 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.
Files changed (296) hide show
  1. package/AGENTS.md +1 -1
  2. package/CAPABILITIES.md +3 -0
  3. package/ai-instructions/claude-code/SKILL.md +1 -1
  4. package/dist/adapters/mcp/agentcoreRuntime/invoke.js +113 -7
  5. package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
  6. package/dist/adapters/mcp/agentcoreRuntime/session.js +21 -21
  7. package/dist/adapters/mcp/agentcoreRuntime/session.js.map +1 -1
  8. package/dist/adapters/mcp/agentcoreRuntime/transport.js +79 -5
  9. package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
  10. package/dist/core/Agent.js +6 -0
  11. package/dist/core/Agent.js.map +1 -1
  12. package/dist/core/agent/stages/toolCalls.js +4 -0
  13. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  14. package/dist/core/slots/buildToolsSlot.js +8 -0
  15. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  16. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +23 -4
  17. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +112 -6
  18. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
  19. package/dist/esm/adapters/mcp/agentcoreRuntime/session.d.ts +20 -6
  20. package/dist/esm/adapters/mcp/agentcoreRuntime/session.js +21 -21
  21. package/dist/esm/adapters/mcp/agentcoreRuntime/session.js.map +1 -1
  22. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +81 -7
  23. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
  24. package/dist/esm/core/Agent.js +6 -0
  25. package/dist/esm/core/Agent.js.map +1 -1
  26. package/dist/esm/core/agent/stages/toolCalls.js +4 -0
  27. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  28. package/dist/esm/core/slots/buildToolsSlot.d.ts +12 -0
  29. package/dist/esm/core/slots/buildToolsSlot.js +8 -0
  30. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  31. package/dist/esm/events/payloads.d.ts +41 -0
  32. package/dist/esm/events/registry.d.ts +3 -1
  33. package/dist/esm/events/registry.js +2 -0
  34. package/dist/esm/events/registry.js.map +1 -1
  35. package/dist/esm/identity/types.d.ts +7 -3
  36. package/dist/esm/identity/types.js.map +1 -1
  37. package/dist/esm/index.d.ts +1 -1
  38. package/dist/esm/index.js +4 -1
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/lib/boundedJson.d.ts +14 -7
  41. package/dist/esm/lib/boundedJson.js +14 -7
  42. package/dist/esm/lib/boundedJson.js.map +1 -1
  43. package/dist/esm/mcp/callChecks.d.ts +160 -0
  44. package/dist/esm/mcp/callChecks.js +237 -0
  45. package/dist/esm/mcp/callChecks.js.map +1 -0
  46. package/dist/esm/mcp/callLifetime.js +5 -2
  47. package/dist/esm/mcp/callLifetime.js.map +1 -1
  48. package/dist/esm/mcp/clientPort.d.ts +78 -0
  49. package/dist/esm/mcp/clientPort.js +33 -0
  50. package/dist/esm/mcp/clientPort.js.map +1 -0
  51. package/dist/esm/mcp/gatewayTransport.js +13 -3
  52. package/dist/esm/mcp/gatewayTransport.js.map +1 -1
  53. package/dist/esm/mcp/index.d.ts +11 -1
  54. package/dist/esm/mcp/index.js +15 -0
  55. package/dist/esm/mcp/index.js.map +1 -1
  56. package/dist/esm/mcp/listingGenerations.d.ts +54 -0
  57. package/dist/esm/mcp/listingGenerations.js +75 -0
  58. package/dist/esm/mcp/listingGenerations.js.map +1 -0
  59. package/dist/esm/mcp/mcpClient.d.ts +18 -1
  60. package/dist/esm/mcp/mcpClient.js +302 -57
  61. package/dist/esm/mcp/mcpClient.js.map +1 -1
  62. package/dist/esm/mcp/mockMcpClient.js +13 -0
  63. package/dist/esm/mcp/mockMcpClient.js.map +1 -1
  64. package/dist/esm/mcp/pool/boundTool.d.ts +58 -0
  65. package/dist/esm/mcp/pool/boundTool.js +218 -0
  66. package/dist/esm/mcp/pool/boundTool.js.map +1 -0
  67. package/dist/esm/mcp/pool/clientSet.d.ts +73 -0
  68. package/dist/esm/mcp/pool/clientSet.js +152 -0
  69. package/dist/esm/mcp/pool/clientSet.js.map +1 -0
  70. package/dist/esm/mcp/pool/definitions.d.ts +103 -0
  71. package/dist/esm/mcp/pool/definitions.js +168 -0
  72. package/dist/esm/mcp/pool/definitions.js.map +1 -0
  73. package/dist/esm/mcp/pool/errors.d.ts +76 -0
  74. package/dist/esm/mcp/pool/errors.js +91 -0
  75. package/dist/esm/mcp/pool/errors.js.map +1 -0
  76. package/dist/esm/mcp/pool/identityKey.d.ts +57 -0
  77. package/dist/esm/mcp/pool/identityKey.js +94 -0
  78. package/dist/esm/mcp/pool/identityKey.js.map +1 -0
  79. package/dist/esm/mcp/pool/lease.d.ts +36 -0
  80. package/dist/esm/mcp/pool/lease.js +51 -0
  81. package/dist/esm/mcp/pool/lease.js.map +1 -0
  82. package/dist/esm/mcp/pool/listTools.d.ts +33 -0
  83. package/dist/esm/mcp/pool/listTools.js +146 -0
  84. package/dist/esm/mcp/pool/listTools.js.map +1 -0
  85. package/dist/esm/mcp/pool/mcpClientPool.d.ts +121 -0
  86. package/dist/esm/mcp/pool/mcpClientPool.js +151 -0
  87. package/dist/esm/mcp/pool/mcpClientPool.js.map +1 -0
  88. package/dist/esm/mcp/pool/options.d.ts +183 -0
  89. package/dist/esm/mcp/pool/options.js +119 -0
  90. package/dist/esm/mcp/pool/options.js.map +1 -0
  91. package/dist/esm/mcp/pool/plan.d.ts +77 -0
  92. package/dist/esm/mcp/pool/plan.js +134 -0
  93. package/dist/esm/mcp/pool/plan.js.map +1 -0
  94. package/dist/esm/mcp/pool/pool.d.ts +307 -0
  95. package/dist/esm/mcp/pool/pool.js +1071 -0
  96. package/dist/esm/mcp/pool/pool.js.map +1 -0
  97. package/dist/esm/mcp/pool/pooledClient.d.ts +93 -0
  98. package/dist/esm/mcp/pool/pooledClient.js +90 -0
  99. package/dist/esm/mcp/pool/pooledClient.js.map +1 -0
  100. package/dist/esm/mcp/pool/record.d.ts +80 -0
  101. package/dist/esm/mcp/pool/record.js +75 -0
  102. package/dist/esm/mcp/pool/record.js.map +1 -0
  103. package/dist/esm/mcp/pool/sessionEnded.d.ts +24 -0
  104. package/dist/esm/mcp/pool/sessionEnded.js +31 -0
  105. package/dist/esm/mcp/pool/sessionEnded.js.map +1 -0
  106. package/dist/esm/mcp/pool/work.d.ts +116 -0
  107. package/dist/esm/mcp/pool/work.js +213 -0
  108. package/dist/esm/mcp/pool/work.js.map +1 -0
  109. package/dist/esm/mcp/requestGuard.d.ts +70 -0
  110. package/dist/esm/mcp/requestGuard.js +98 -0
  111. package/dist/esm/mcp/requestGuard.js.map +1 -0
  112. package/dist/esm/mcp/requestLedger.d.ts +35 -1
  113. package/dist/esm/mcp/requestLedger.js +76 -3
  114. package/dist/esm/mcp/requestLedger.js.map +1 -1
  115. package/dist/esm/mcp/seriesEvidence.d.ts +10 -6
  116. package/dist/esm/mcp/seriesEvidence.js +16 -7
  117. package/dist/esm/mcp/seriesEvidence.js.map +1 -1
  118. package/dist/esm/mcp/terminate.d.ts +94 -0
  119. package/dist/esm/mcp/terminate.js +184 -0
  120. package/dist/esm/mcp/terminate.js.map +1 -0
  121. package/dist/esm/mcp/throttleRetry.js +71 -7
  122. package/dist/esm/mcp/throttleRetry.js.map +1 -1
  123. package/dist/esm/mcp/toolList.d.ts +90 -0
  124. package/dist/esm/mcp/toolList.js +123 -0
  125. package/dist/esm/mcp/toolList.js.map +1 -0
  126. package/dist/esm/mcp/types.d.ts +197 -3
  127. package/dist/esm/redaction/knownStrings.js +34 -0
  128. package/dist/esm/redaction/knownStrings.js.map +1 -1
  129. package/dist/esm/tool-providers/index.d.ts +2 -2
  130. package/dist/esm/tool-providers/index.js +15 -1
  131. package/dist/esm/tool-providers/index.js.map +1 -1
  132. package/dist/esm/tools/mcpClientUse.d.ts +59 -0
  133. package/dist/esm/tools/mcpClientUse.js +216 -0
  134. package/dist/esm/tools/mcpClientUse.js.map +1 -0
  135. package/dist/esm/tools/toolProvider.d.ts +16 -0
  136. package/dist/esm/tools/toolSessions.d.ts +41 -0
  137. package/dist/esm/tools/toolSessions.js +41 -1
  138. package/dist/esm/tools/toolSessions.js.map +1 -1
  139. package/dist/events/registry.js +2 -0
  140. package/dist/events/registry.js.map +1 -1
  141. package/dist/identity/types.js.map +1 -1
  142. package/dist/index.js +6 -3
  143. package/dist/index.js.map +1 -1
  144. package/dist/lib/boundedJson.js +14 -7
  145. package/dist/lib/boundedJson.js.map +1 -1
  146. package/dist/mcp/callChecks.js +247 -0
  147. package/dist/mcp/callChecks.js.map +1 -0
  148. package/dist/mcp/callLifetime.js +5 -2
  149. package/dist/mcp/callLifetime.js.map +1 -1
  150. package/dist/mcp/clientPort.js +38 -0
  151. package/dist/mcp/clientPort.js.map +1 -0
  152. package/dist/mcp/gatewayTransport.js +13 -3
  153. package/dist/mcp/gatewayTransport.js.map +1 -1
  154. package/dist/mcp/index.js +25 -1
  155. package/dist/mcp/index.js.map +1 -1
  156. package/dist/mcp/listingGenerations.js +80 -0
  157. package/dist/mcp/listingGenerations.js.map +1 -0
  158. package/dist/mcp/mcpClient.js +306 -59
  159. package/dist/mcp/mcpClient.js.map +1 -1
  160. package/dist/mcp/mockMcpClient.js +13 -0
  161. package/dist/mcp/mockMcpClient.js.map +1 -1
  162. package/dist/mcp/pool/boundTool.js +223 -0
  163. package/dist/mcp/pool/boundTool.js.map +1 -0
  164. package/dist/mcp/pool/clientSet.js +157 -0
  165. package/dist/mcp/pool/clientSet.js.map +1 -0
  166. package/dist/mcp/pool/definitions.js +174 -0
  167. package/dist/mcp/pool/definitions.js.map +1 -0
  168. package/dist/mcp/pool/errors.js +96 -0
  169. package/dist/mcp/pool/errors.js.map +1 -0
  170. package/dist/mcp/pool/identityKey.js +99 -0
  171. package/dist/mcp/pool/identityKey.js.map +1 -0
  172. package/dist/mcp/pool/lease.js +55 -0
  173. package/dist/mcp/pool/lease.js.map +1 -0
  174. package/dist/mcp/pool/listTools.js +150 -0
  175. package/dist/mcp/pool/listTools.js.map +1 -0
  176. package/dist/mcp/pool/mcpClientPool.js +155 -0
  177. package/dist/mcp/pool/mcpClientPool.js.map +1 -0
  178. package/dist/mcp/pool/options.js +123 -0
  179. package/dist/mcp/pool/options.js.map +1 -0
  180. package/dist/mcp/pool/plan.js +140 -0
  181. package/dist/mcp/pool/plan.js.map +1 -0
  182. package/dist/mcp/pool/pool.js +1075 -0
  183. package/dist/mcp/pool/pool.js.map +1 -0
  184. package/dist/mcp/pool/pooledClient.js +94 -0
  185. package/dist/mcp/pool/pooledClient.js.map +1 -0
  186. package/dist/mcp/pool/record.js +80 -0
  187. package/dist/mcp/pool/record.js.map +1 -0
  188. package/dist/mcp/pool/sessionEnded.js +35 -0
  189. package/dist/mcp/pool/sessionEnded.js.map +1 -0
  190. package/dist/mcp/pool/work.js +219 -0
  191. package/dist/mcp/pool/work.js.map +1 -0
  192. package/dist/mcp/requestGuard.js +106 -0
  193. package/dist/mcp/requestGuard.js.map +1 -0
  194. package/dist/mcp/requestLedger.js +76 -3
  195. package/dist/mcp/requestLedger.js.map +1 -1
  196. package/dist/mcp/seriesEvidence.js +16 -7
  197. package/dist/mcp/seriesEvidence.js.map +1 -1
  198. package/dist/mcp/terminate.js +193 -0
  199. package/dist/mcp/terminate.js.map +1 -0
  200. package/dist/mcp/throttleRetry.js +71 -7
  201. package/dist/mcp/throttleRetry.js.map +1 -1
  202. package/dist/mcp/toolList.js +128 -0
  203. package/dist/mcp/toolList.js.map +1 -0
  204. package/dist/redaction/knownStrings.js +34 -0
  205. package/dist/redaction/knownStrings.js.map +1 -1
  206. package/dist/tool-providers/index.js +20 -1
  207. package/dist/tool-providers/index.js.map +1 -1
  208. package/dist/tools/mcpClientUse.js +225 -0
  209. package/dist/tools/mcpClientUse.js.map +1 -0
  210. package/dist/tools/toolSessions.js +44 -1
  211. package/dist/tools/toolSessions.js.map +1 -1
  212. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +23 -4
  213. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -1
  214. package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts +20 -6
  215. package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts.map +1 -1
  216. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -1
  217. package/dist/types/core/Agent.d.ts.map +1 -1
  218. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  219. package/dist/types/core/slots/buildToolsSlot.d.ts +12 -0
  220. package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
  221. package/dist/types/events/payloads.d.ts +41 -0
  222. package/dist/types/events/payloads.d.ts.map +1 -1
  223. package/dist/types/events/registry.d.ts +3 -1
  224. package/dist/types/events/registry.d.ts.map +1 -1
  225. package/dist/types/identity/types.d.ts +7 -3
  226. package/dist/types/identity/types.d.ts.map +1 -1
  227. package/dist/types/index.d.ts +1 -1
  228. package/dist/types/index.d.ts.map +1 -1
  229. package/dist/types/lib/boundedJson.d.ts +14 -7
  230. package/dist/types/lib/boundedJson.d.ts.map +1 -1
  231. package/dist/types/mcp/callChecks.d.ts +161 -0
  232. package/dist/types/mcp/callChecks.d.ts.map +1 -0
  233. package/dist/types/mcp/callLifetime.d.ts.map +1 -1
  234. package/dist/types/mcp/clientPort.d.ts +79 -0
  235. package/dist/types/mcp/clientPort.d.ts.map +1 -0
  236. package/dist/types/mcp/gatewayTransport.d.ts.map +1 -1
  237. package/dist/types/mcp/index.d.ts +11 -1
  238. package/dist/types/mcp/index.d.ts.map +1 -1
  239. package/dist/types/mcp/listingGenerations.d.ts +55 -0
  240. package/dist/types/mcp/listingGenerations.d.ts.map +1 -0
  241. package/dist/types/mcp/mcpClient.d.ts +18 -1
  242. package/dist/types/mcp/mcpClient.d.ts.map +1 -1
  243. package/dist/types/mcp/mockMcpClient.d.ts.map +1 -1
  244. package/dist/types/mcp/pool/boundTool.d.ts +59 -0
  245. package/dist/types/mcp/pool/boundTool.d.ts.map +1 -0
  246. package/dist/types/mcp/pool/clientSet.d.ts +74 -0
  247. package/dist/types/mcp/pool/clientSet.d.ts.map +1 -0
  248. package/dist/types/mcp/pool/definitions.d.ts +104 -0
  249. package/dist/types/mcp/pool/definitions.d.ts.map +1 -0
  250. package/dist/types/mcp/pool/errors.d.ts +77 -0
  251. package/dist/types/mcp/pool/errors.d.ts.map +1 -0
  252. package/dist/types/mcp/pool/identityKey.d.ts +58 -0
  253. package/dist/types/mcp/pool/identityKey.d.ts.map +1 -0
  254. package/dist/types/mcp/pool/lease.d.ts +37 -0
  255. package/dist/types/mcp/pool/lease.d.ts.map +1 -0
  256. package/dist/types/mcp/pool/listTools.d.ts +34 -0
  257. package/dist/types/mcp/pool/listTools.d.ts.map +1 -0
  258. package/dist/types/mcp/pool/mcpClientPool.d.ts +122 -0
  259. package/dist/types/mcp/pool/mcpClientPool.d.ts.map +1 -0
  260. package/dist/types/mcp/pool/options.d.ts +184 -0
  261. package/dist/types/mcp/pool/options.d.ts.map +1 -0
  262. package/dist/types/mcp/pool/plan.d.ts +78 -0
  263. package/dist/types/mcp/pool/plan.d.ts.map +1 -0
  264. package/dist/types/mcp/pool/pool.d.ts +308 -0
  265. package/dist/types/mcp/pool/pool.d.ts.map +1 -0
  266. package/dist/types/mcp/pool/pooledClient.d.ts +94 -0
  267. package/dist/types/mcp/pool/pooledClient.d.ts.map +1 -0
  268. package/dist/types/mcp/pool/record.d.ts +81 -0
  269. package/dist/types/mcp/pool/record.d.ts.map +1 -0
  270. package/dist/types/mcp/pool/sessionEnded.d.ts +25 -0
  271. package/dist/types/mcp/pool/sessionEnded.d.ts.map +1 -0
  272. package/dist/types/mcp/pool/work.d.ts +117 -0
  273. package/dist/types/mcp/pool/work.d.ts.map +1 -0
  274. package/dist/types/mcp/requestGuard.d.ts +71 -0
  275. package/dist/types/mcp/requestGuard.d.ts.map +1 -0
  276. package/dist/types/mcp/requestLedger.d.ts +35 -1
  277. package/dist/types/mcp/requestLedger.d.ts.map +1 -1
  278. package/dist/types/mcp/seriesEvidence.d.ts +10 -6
  279. package/dist/types/mcp/seriesEvidence.d.ts.map +1 -1
  280. package/dist/types/mcp/terminate.d.ts +95 -0
  281. package/dist/types/mcp/terminate.d.ts.map +1 -0
  282. package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
  283. package/dist/types/mcp/toolList.d.ts +91 -0
  284. package/dist/types/mcp/toolList.d.ts.map +1 -0
  285. package/dist/types/mcp/types.d.ts +197 -3
  286. package/dist/types/mcp/types.d.ts.map +1 -1
  287. package/dist/types/redaction/knownStrings.d.ts.map +1 -1
  288. package/dist/types/tool-providers/index.d.ts +2 -2
  289. package/dist/types/tool-providers/index.d.ts.map +1 -1
  290. package/dist/types/tools/mcpClientUse.d.ts +60 -0
  291. package/dist/types/tools/mcpClientUse.d.ts.map +1 -0
  292. package/dist/types/tools/toolProvider.d.ts +16 -0
  293. package/dist/types/tools/toolProvider.d.ts.map +1 -1
  294. package/dist/types/tools/toolSessions.d.ts +41 -0
  295. package/dist/types/tools/toolSessions.d.ts.map +1 -1
  296. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../src/mcp/pool/pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * pooledClient — one client INCARNATION: the conversation it serves, the plan it
3
+ * was opened from, its leases, its own tool list, and where it is in its life.
4
+ *
5
+ * Pattern: a plain record the pool owns; no behaviour beyond its own counters.
6
+ * Role: § 5 of the design. A client is OPENING until its open settles, OPEN
7
+ * while it can serve, ENDING from the decision to end it until that
8
+ * ending's work has settled, then ENDED. It is BUSY while any lease is
9
+ * open — the library's, one per operation, or the app's — while an
10
+ * operation that waited for its open has not yet taken its lease (a
11
+ * RESERVATION), and while it opens; IDLE otherwise. A busy client is
12
+ * never evicted, closed for idleness or ended. "Used" is the last lease
13
+ * taken or released.
14
+ *
15
+ * Its `clientId` is the pool's own random id; its `generation` counts the key's
16
+ * incarnations (1 = the key's first client). A replacement is a new record with
17
+ * a new id, a new list and a count of its own: nothing of an old incarnation
18
+ * can match it.
19
+ */
20
+ import type { McpClient, McpTerminateOutcome } from '../types.js';
21
+ import type { ClientPort } from '../clientPort.js';
22
+ import type { RequestGuard } from '../requestGuard.js';
23
+ import { DefinitionList } from './definitions.js';
24
+ import type { PoolKey } from './identityKey.js';
25
+ import type { ClientPlan } from './plan.js';
26
+ import type { Work } from './work.js';
27
+ /** Where a client is in its life. */
28
+ export type ClientState = 'opening' | 'open' | 'ending' | 'ended';
29
+ /** Why a client ended — the record's `reason`. */
30
+ export type EndReason = 'idle' | 'evicted' | 'terminated' | 'closed' | 'expired' | 'handle-lost' | 'abandoned-open';
31
+ /** One client incarnation. */
32
+ export declare class PooledClient {
33
+ readonly key: PoolKey;
34
+ readonly plan: ClientPlan;
35
+ /** 1 = the key's first client, 2 = its first replacement, … */
36
+ readonly generation: number;
37
+ readonly clientId: string;
38
+ state: ClientState;
39
+ /** The ordinary `McpClient`, once opened. */
40
+ client: McpClient | undefined;
41
+ /** The port back (`clientPort.ts`), once opened. */
42
+ port: ClientPort | undefined;
43
+ /** Open leases: one per library operation, one per app lease. */
44
+ leases: number;
45
+ /**
46
+ * Operations waiting for its open, each holding it until it takes its lease —
47
+ * so between the open settling and that lease nothing can evict or end it.
48
+ */
49
+ reserved: number;
50
+ /** The last lease taken or released, on the pool's clock. */
51
+ usedAt: number;
52
+ /** No new lease: `terminate` named it, its session expired, or its handle was lost. */
53
+ closedToNew: boolean;
54
+ /** Its open ran past `initTimeoutMs`: refused to every waiter, still counted until it settles. */
55
+ abandoned: boolean;
56
+ /** Waiting for an ending slot and an operation slot, and why. */
57
+ deferredEnd: EndReason | undefined;
58
+ /** This incarnation's own tool list. */
59
+ readonly list: DefinitionList;
60
+ /**
61
+ * The guard of the open, listing or ending in progress on this client — what
62
+ * a request that is not a pooled tool call is checked against and counted by.
63
+ */
64
+ phase: RequestGuard | undefined;
65
+ /** The open in flight, with the work it owns. */
66
+ opening: {
67
+ readonly ready: Promise<void>;
68
+ readonly work: Work;
69
+ readonly startedAt: number;
70
+ } | undefined;
71
+ /** How long the open took, once it settled within its deadline. */
72
+ initMs: number | undefined;
73
+ /** Why it left its key without an ordinary ending: its session expired, or its handle was lost. */
74
+ lost: 'expired' | 'handle-lost' | undefined;
75
+ /** The outcome of its ending, once one started. */
76
+ endingOutcome: Promise<McpTerminateOutcome> | undefined;
77
+ /**
78
+ * The definitions context its tools are served under now. It starts as its
79
+ * plan's; the app's `share` is asked again at every use, and a changed answer
80
+ * moves it here — its connection, the plan's transport, never changes.
81
+ */
82
+ definitions: {
83
+ readonly context: string;
84
+ readonly shared: boolean;
85
+ };
86
+ constructor(key: PoolKey, plan: ClientPlan,
87
+ /** 1 = the key's first client, 2 = its first replacement, … */
88
+ generation: number, now: number);
89
+ /** Busy: a lease is open, an operation holds it between its open and its lease, or it is still opening. */
90
+ get busy(): boolean;
91
+ /** Can it serve a new lease right now? */
92
+ get serving(): boolean;
93
+ }
@@ -0,0 +1,90 @@
1
+ /**
2
+ * pooledClient — one client INCARNATION: the conversation it serves, the plan it
3
+ * was opened from, its leases, its own tool list, and where it is in its life.
4
+ *
5
+ * Pattern: a plain record the pool owns; no behaviour beyond its own counters.
6
+ * Role: § 5 of the design. A client is OPENING until its open settles, OPEN
7
+ * while it can serve, ENDING from the decision to end it until that
8
+ * ending's work has settled, then ENDED. It is BUSY while any lease is
9
+ * open — the library's, one per operation, or the app's — while an
10
+ * operation that waited for its open has not yet taken its lease (a
11
+ * RESERVATION), and while it opens; IDLE otherwise. A busy client is
12
+ * never evicted, closed for idleness or ended. "Used" is the last lease
13
+ * taken or released.
14
+ *
15
+ * Its `clientId` is the pool's own random id; its `generation` counts the key's
16
+ * incarnations (1 = the key's first client). A replacement is a new record with
17
+ * a new id, a new list and a count of its own: nothing of an old incarnation
18
+ * can match it.
19
+ */
20
+ import { DefinitionList } from './definitions.js';
21
+ /** A random id of the pool's own — never derived from an identity. */
22
+ function newClientId() {
23
+ return globalThis.crypto.randomUUID().replace(/-/g, '').slice(0, 16);
24
+ }
25
+ /** One client incarnation. */
26
+ export class PooledClient {
27
+ key;
28
+ plan;
29
+ generation;
30
+ clientId = newClientId();
31
+ state = 'opening';
32
+ /** The ordinary `McpClient`, once opened. */
33
+ client;
34
+ /** The port back (`clientPort.ts`), once opened. */
35
+ port;
36
+ /** Open leases: one per library operation, one per app lease. */
37
+ leases = 0;
38
+ /**
39
+ * Operations waiting for its open, each holding it until it takes its lease —
40
+ * so between the open settling and that lease nothing can evict or end it.
41
+ */
42
+ reserved = 0;
43
+ /** The last lease taken or released, on the pool's clock. */
44
+ usedAt;
45
+ /** No new lease: `terminate` named it, its session expired, or its handle was lost. */
46
+ closedToNew = false;
47
+ /** Its open ran past `initTimeoutMs`: refused to every waiter, still counted until it settles. */
48
+ abandoned = false;
49
+ /** Waiting for an ending slot and an operation slot, and why. */
50
+ deferredEnd;
51
+ /** This incarnation's own tool list. */
52
+ list = new DefinitionList();
53
+ /**
54
+ * The guard of the open, listing or ending in progress on this client — what
55
+ * a request that is not a pooled tool call is checked against and counted by.
56
+ */
57
+ phase;
58
+ /** The open in flight, with the work it owns. */
59
+ opening;
60
+ /** How long the open took, once it settled within its deadline. */
61
+ initMs;
62
+ /** Why it left its key without an ordinary ending: its session expired, or its handle was lost. */
63
+ lost;
64
+ /** The outcome of its ending, once one started. */
65
+ endingOutcome;
66
+ /**
67
+ * The definitions context its tools are served under now. It starts as its
68
+ * plan's; the app's `share` is asked again at every use, and a changed answer
69
+ * moves it here — its connection, the plan's transport, never changes.
70
+ */
71
+ definitions;
72
+ constructor(key, plan,
73
+ /** 1 = the key's first client, 2 = its first replacement, … */
74
+ generation, now) {
75
+ this.key = key;
76
+ this.plan = plan;
77
+ this.generation = generation;
78
+ this.usedAt = now;
79
+ this.definitions = { context: plan.context, shared: plan.shared };
80
+ }
81
+ /** Busy: a lease is open, an operation holds it between its open and its lease, or it is still opening. */
82
+ get busy() {
83
+ return this.leases > 0 || this.reserved > 0 || this.state === 'opening';
84
+ }
85
+ /** Can it serve a new lease right now? */
86
+ get serving() {
87
+ return this.state === 'open' && !this.closedToNew;
88
+ }
89
+ }
90
+ //# sourceMappingURL=pooledClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pooledClient.js","sourceRoot":"","sources":["../../../../src/mcp/pool/pooledClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAkBlD,sEAAsE;AACtE,SAAS,WAAW;IAClB,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,8BAA8B;AAC9B,MAAM,OAAO,YAAY;IA+CZ;IACA;IAEA;IAjDF,QAAQ,GAAG,WAAW,EAAE,CAAC;IAClC,KAAK,GAAgB,SAAS,CAAC;IAC/B,6CAA6C;IAC7C,MAAM,CAAwB;IAC9B,oDAAoD;IACpD,IAAI,CAAyB;IAC7B,iEAAiE;IACjE,MAAM,GAAG,CAAC,CAAC;IACX;;;OAGG;IACH,QAAQ,GAAG,CAAC,CAAC;IACb,6DAA6D;IAC7D,MAAM,CAAS;IACf,uFAAuF;IACvF,WAAW,GAAG,KAAK,CAAC;IACpB,kGAAkG;IAClG,SAAS,GAAG,KAAK,CAAC;IAClB,iEAAiE;IACjE,WAAW,CAAwB;IACnC,wCAAwC;IAC/B,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC;;;OAGG;IACH,KAAK,CAA2B;IAChC,iDAAiD;IACjD,OAAO,CAEO;IACd,mEAAmE;IACnE,MAAM,CAAqB;IAC3B,mGAAmG;IACnG,IAAI,CAAwC;IAC5C,mDAAmD;IACnD,aAAa,CAA2C;IACxD;;;;OAIG;IACH,WAAW,CAAyD;IAEpE,YACW,GAAY,EACZ,IAAgB;IACzB,+DAA+D;IACtD,UAAkB,EAC3B,GAAW;QAJF,QAAG,GAAH,GAAG,CAAS;QACZ,SAAI,GAAJ,IAAI,CAAY;QAEhB,eAAU,GAAV,UAAU,CAAQ;QAG3B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACpE,CAAC;IAED,2GAA2G;IAC3G,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAC1E,CAAC;IAED,0CAA0C;IAC1C,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IACpD,CAAC;CACF"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * record — what the pool says about itself: one event per use in a run, and a
3
+ * report for what happens outside one.
4
+ *
5
+ * Pattern: facts gathered while a use runs, filed once; reports delivered to the
6
+ * app's `onEvent`, which can never break the pool.
7
+ * Role: § 8 of the design. The record holds ids and outcomes. It never holds
8
+ * identity values, remote session ids or handles, header values, tool
9
+ * arguments, results, definitions, or a server's error text. In a run,
10
+ * every listing and every call files one `agentfootprint.tools.mcp_client`
11
+ * (`tools/mcpClientUse.ts`). Outside a run — idle ends, evictions,
12
+ * terminations, revoked leases, deferred ends and work that settled
13
+ * after its deadline — the pool reports to `onEvent`.
14
+ *
15
+ * Local settlement and remote resolution are different facts, reported apart:
16
+ * an ending can settle here and stay unresolved there.
17
+ */
18
+ import type { ToolsMcpClientPayload } from '../../events/payloads.js';
19
+ import type { McpClientUse } from '../../tools/mcpClientUse.js';
20
+ import type { McpTerminateOutcome } from '../types.js';
21
+ import type { EndReason } from './pooledClient.js';
22
+ import type { WorkKind } from './work.js';
23
+ /** What happens to a pool outside a run, as `onEvent` receives it. Ids and outcomes only. */
24
+ export interface McpPoolReport {
25
+ /**
26
+ * - `'ended'` — a client's ending finished, with its remote outcome;
27
+ * - `'deferred'` — a client to be ended stays in the open set, still counted,
28
+ * until an ending slot and an operation slot free (or its lease ends);
29
+ * - `'lease-revoked'` — an app lease ran past `maxLeaseMs`;
30
+ * - `'settled-late'` — work whose caller was already answered has settled,
31
+ * and its charge is released.
32
+ */
33
+ readonly kind: 'ended' | 'deferred' | 'lease-revoked' | 'settled-late';
34
+ /** The pool's name. */
35
+ readonly server: string;
36
+ /** The pool's own random id for the client, when one is concerned. */
37
+ readonly clientId?: string;
38
+ /** The tool-session digest of the conversation's key, when one is concerned. */
39
+ readonly keyHash?: string;
40
+ /** Why the client ended, or is to end. */
41
+ readonly reason?: EndReason;
42
+ /** `'ended'`: what the remote side answered (`McpTerminateOutcome.remote`). */
43
+ readonly remote?: McpTerminateOutcome['remote'];
44
+ /** `'ended'`: whether the remote ending was confirmed. */
45
+ readonly resolved?: boolean;
46
+ /** `'ended'`: the HTTP status the remote side answered with, when one was read. */
47
+ readonly status?: number;
48
+ /** `'ended'`: a failure's class name, never its message. */
49
+ readonly errorClass?: string;
50
+ /** `'settled-late'`: what the work was doing. */
51
+ readonly work?: WorkKind;
52
+ /** `'ended'`: how long the caller waited; `'settled-late'`: how long it ran past its answer. */
53
+ readonly durationMs: number;
54
+ }
55
+ /** Delivers reports to the app; a throwing handler is swallowed and changes nothing. */
56
+ export declare class Reporter {
57
+ private readonly server;
58
+ private readonly onEvent;
59
+ constructor(server: string, onEvent: ((report: McpPoolReport) => void) | undefined);
60
+ report(report: Omit<McpPoolReport, 'server'>): void;
61
+ }
62
+ /** The facts one pool use gathers while it runs, filed once when it settles. */
63
+ export declare class UseFacts {
64
+ private readonly server;
65
+ private readonly at;
66
+ keyHash: string | undefined;
67
+ clientId: string | undefined;
68
+ generation: number | undefined;
69
+ client: ToolsMcpClientPayload['client'];
70
+ previous: ToolsMcpClientPayload['previous'];
71
+ evidence: ToolsMcpClientPayload['evidence'];
72
+ refusal: ToolsMcpClientPayload['refusal'];
73
+ initMs: number | undefined;
74
+ definitions: ToolsMcpClientPayload['definitions'];
75
+ definitionsAgeMs: number | undefined;
76
+ revalidated: ToolsMcpClientPayload['revalidated'];
77
+ constructor(server: string, at: ToolsMcpClientPayload['at']);
78
+ /** The use, as `tools/mcpClientUse.ts` files it. */
79
+ toUse(): McpClientUse;
80
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * record — what the pool says about itself: one event per use in a run, and a
3
+ * report for what happens outside one.
4
+ *
5
+ * Pattern: facts gathered while a use runs, filed once; reports delivered to the
6
+ * app's `onEvent`, which can never break the pool.
7
+ * Role: § 8 of the design. The record holds ids and outcomes. It never holds
8
+ * identity values, remote session ids or handles, header values, tool
9
+ * arguments, results, definitions, or a server's error text. In a run,
10
+ * every listing and every call files one `agentfootprint.tools.mcp_client`
11
+ * (`tools/mcpClientUse.ts`). Outside a run — idle ends, evictions,
12
+ * terminations, revoked leases, deferred ends and work that settled
13
+ * after its deadline — the pool reports to `onEvent`.
14
+ *
15
+ * Local settlement and remote resolution are different facts, reported apart:
16
+ * an ending can settle here and stay unresolved there.
17
+ */
18
+ /** Delivers reports to the app; a throwing handler is swallowed and changes nothing. */
19
+ export class Reporter {
20
+ server;
21
+ onEvent;
22
+ constructor(server, onEvent) {
23
+ this.server = server;
24
+ this.onEvent = onEvent;
25
+ }
26
+ report(report) {
27
+ if (this.onEvent === undefined)
28
+ return;
29
+ try {
30
+ this.onEvent({ server: this.server, ...report });
31
+ }
32
+ catch {
33
+ // The app's handler is not the pool's work: it changes nothing.
34
+ }
35
+ }
36
+ }
37
+ /** The facts one pool use gathers while it runs, filed once when it settles. */
38
+ export class UseFacts {
39
+ server;
40
+ at;
41
+ keyHash;
42
+ clientId;
43
+ generation;
44
+ client = 'refused';
45
+ previous;
46
+ evidence;
47
+ refusal;
48
+ initMs;
49
+ definitions;
50
+ definitionsAgeMs;
51
+ revalidated;
52
+ constructor(server, at) {
53
+ this.server = server;
54
+ this.at = at;
55
+ }
56
+ /** The use, as `tools/mcpClientUse.ts` files it. */
57
+ toUse() {
58
+ return {
59
+ server: this.server,
60
+ at: this.at,
61
+ client: this.client,
62
+ ...(this.keyHash !== undefined && { keyHash: this.keyHash }),
63
+ ...(this.clientId !== undefined && { clientId: this.clientId }),
64
+ ...(this.generation !== undefined && { generation: this.generation }),
65
+ ...(this.previous !== undefined && { previous: this.previous }),
66
+ ...(this.evidence !== undefined && { evidence: this.evidence }),
67
+ ...(this.refusal !== undefined && { refusal: this.refusal }),
68
+ ...(this.initMs !== undefined && { initMs: this.initMs }),
69
+ ...(this.definitions !== undefined && { definitions: this.definitions }),
70
+ ...(this.definitionsAgeMs !== undefined && { definitionsAgeMs: this.definitionsAgeMs }),
71
+ ...(this.revalidated !== undefined && { revalidated: this.revalidated }),
72
+ };
73
+ }
74
+ }
75
+ //# sourceMappingURL=record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/mcp/pool/record.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAyCH,wFAAwF;AACxF,MAAM,OAAO,QAAQ;IAEA;IACA;IAFnB,YACmB,MAAc,EACd,OAAsD;QADtD,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAA+C;IACtE,CAAC;IAEJ,MAAM,CAAC,MAAqC;QAC1C,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO;QACvC,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;QAClE,CAAC;IACH,CAAC;CACF;AAED,gFAAgF;AAChF,MAAM,OAAO,QAAQ;IAaU;IAAiC;IAZ9D,OAAO,CAAqB;IAC5B,QAAQ,CAAqB;IAC7B,UAAU,CAAqB;IAC/B,MAAM,GAAoC,SAAS,CAAC;IACpD,QAAQ,CAAoC;IAC5C,QAAQ,CAAoC;IAC5C,OAAO,CAAmC;IAC1C,MAAM,CAAqB;IAC3B,WAAW,CAAuC;IAClD,gBAAgB,CAAqB;IACrC,WAAW,CAAuC;IAElD,YAA6B,MAAc,EAAmB,EAA+B;QAAhE,WAAM,GAAN,MAAM,CAAQ;QAAmB,OAAE,GAAF,EAAE,CAA6B;IAAG,CAAC;IAEjG,oDAAoD;IACpD,KAAK;QACH,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACrE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACxE,GAAG,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvF,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;SACzE,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * sessionEnded — the MCP server ended a conversation's session: the library's
3
+ * one `SessionExpiredError`, said the pool's way.
4
+ *
5
+ * Pattern: a subclass that keeps the class and changes only what the pool must.
6
+ * Role: § 5.5 of the design. There is ONE expired-session class
7
+ * (`provider-contract/sessionExpired.ts` · `SessionExpiredError`), so a
8
+ * caller catches a code session's expiry and an MCP session's with the
9
+ * same `instanceof`, under the same rule: only documented evidence
10
+ * raises it. Here the evidence is `'server-404'`: an MCP server answered
11
+ * HTTP 404 to a request that carried the session id it issued.
12
+ *
13
+ * What differs is what the pool may say. The model reads this error as the
14
+ * call's result, so its message is one fixed sentence; it names no remote
15
+ * session id (`sessionId` is the pool's own client id, which the record carries
16
+ * too) and never the server's text. The original error is `cause`, for the app.
17
+ */
18
+ import { SessionExpiredError } from '../../provider-contract/sessionExpired.js';
19
+ /** The one sentence a server-ended session reaches the model as. */
20
+ export declare const SESSION_ENDED_SENTENCE = "The server had already ended the conversation's session when the call this result answers reached it.";
21
+ /** @internal An MCP server ended the session; raised by the pool. Catch `SessionExpiredError`. */
22
+ export declare class ServerEndedSessionError extends SessionExpiredError {
23
+ constructor(server: string, clientId: string, cause: unknown);
24
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * sessionEnded — the MCP server ended a conversation's session: the library's
3
+ * one `SessionExpiredError`, said the pool's way.
4
+ *
5
+ * Pattern: a subclass that keeps the class and changes only what the pool must.
6
+ * Role: § 5.5 of the design. There is ONE expired-session class
7
+ * (`provider-contract/sessionExpired.ts` · `SessionExpiredError`), so a
8
+ * caller catches a code session's expiry and an MCP session's with the
9
+ * same `instanceof`, under the same rule: only documented evidence
10
+ * raises it. Here the evidence is `'server-404'`: an MCP server answered
11
+ * HTTP 404 to a request that carried the session id it issued.
12
+ *
13
+ * What differs is what the pool may say. The model reads this error as the
14
+ * call's result, so its message is one fixed sentence; it names no remote
15
+ * session id (`sessionId` is the pool's own client id, which the record carries
16
+ * too) and never the server's text. The original error is `cause`, for the app.
17
+ */
18
+ import { SessionExpiredError } from '../../provider-contract/sessionExpired.js';
19
+ /** The one sentence a server-ended session reaches the model as. */
20
+ export const SESSION_ENDED_SENTENCE = "The server had already ended the conversation's session when the call this result answers reached it.";
21
+ /** @internal An MCP server ended the session; raised by the pool. Catch `SessionExpiredError`. */
22
+ export class ServerEndedSessionError extends SessionExpiredError {
23
+ constructor(server, clientId, cause) {
24
+ super(server, clientId, 'server-404');
25
+ this.message = SESSION_ENDED_SENTENCE;
26
+ this.name = 'SessionExpiredError';
27
+ if (cause !== undefined)
28
+ Object.defineProperty(this, 'cause', { value: cause, configurable: true, writable: true });
29
+ }
30
+ }
31
+ //# sourceMappingURL=sessionEnded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionEnded.js","sourceRoot":"","sources":["../../../../src/mcp/pool/sessionEnded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,oEAAoE;AACpE,MAAM,CAAC,MAAM,sBAAsB,GACjC,uGAAuG,CAAC;AAE1G,kGAAkG;AAClG,MAAM,OAAO,uBAAwB,SAAQ,mBAAmB;IAC9D,YAAY,MAAc,EAAE,QAAgB,EAAE,KAAc;QAC1D,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/F,CAAC;CACF"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * work — an admitted operation's charge, and the work under it until that work
3
+ * has settled.
4
+ *
5
+ * Pattern: one object per unit of work that is at once the request guard
6
+ * (`mcp/requestGuard.ts`) and the count of what is still running.
7
+ * Role: The pool's third budget (`docs/design/2026-10-mcp-client-pool.md`
8
+ * § 5.3). The accounting unit is the admitted LOGICAL operation: a
9
+ * `tools/call`, a listing (one `list(ctx)` for one conversation), an
10
+ * `acquire` and an ending each take one slot at admission. Setup an
11
+ * operation performs for itself — the open of its key's client, the
12
+ * revalidating `tools/list` of a replacement — runs inside that slot.
13
+ *
14
+ * AN ABORT IS NOT SETTLEMENT. A slot is released only when the operation's
15
+ * logical request has its answer AND every piece of work under it has settled:
16
+ * the `send()` it made, a credential vend, an attempt's `fetch`, an AWS `send`,
17
+ * the open it owns. A caller's timeout answers the caller; it frees nothing.
18
+ * Work that never settles keeps its charge — `stats().unsettled` reports it,
19
+ * and the budget refuses new work rather than admit it against room that does
20
+ * not exist. There is no release that returns capacity sooner.
21
+ */
22
+ import type { RequestGuard } from '../requestGuard.js';
23
+ /** What a unit of work is doing now — what `stats().unsettled` counts it under. */
24
+ export type WorkKind = 'open' | 'listing' | 'call' | 'ending';
25
+ /** What an operation is, as the budget admits it. */
26
+ export type OperationKind = 'listing' | 'call' | 'acquire' | 'ending';
27
+ /** What a request's answer proved, as the pool's fetch read it (`pool.ts`). */
28
+ export type WorkEvidence = 'server-404' | 'handle-lost';
29
+ /**
30
+ * One unit of pooled work: its requests are checked against it at every
31
+ * boundary (`check`), and every promise started for it is counted until it
32
+ * settles (`track`). It is SETTLED once its logical part has finished and the
33
+ * count is zero.
34
+ */
35
+ export declare class Work implements RequestGuard {
36
+ /** What it is doing now. */
37
+ phase: WorkKind;
38
+ private readonly link;
39
+ private pending;
40
+ private finished;
41
+ private done;
42
+ /** Still running underneath when the caller was answered: it lingered. */
43
+ private lingered;
44
+ private readonly listeners;
45
+ /** What `check` asks besides the abort — a call's binding. */
46
+ private extra;
47
+ /** What the latest answered request proved, if anything. */
48
+ evidence: WorkEvidence | undefined;
49
+ constructor(
50
+ /** What it is doing now. */
51
+ phase: WorkKind, sources: readonly (AbortSignal | undefined)[]);
52
+ /** What aborts its own work: its sources, its deadline, its caller detaching. */
53
+ get signal(): AbortSignal;
54
+ /** True once its logical part finished and everything under it settled. */
55
+ get settled(): boolean;
56
+ /** Its caller was answered while work under it still ran. */
57
+ get unsettledPastAnswer(): boolean;
58
+ /** Abort its work with `reason` (a deadline, a detached caller). Idempotent. */
59
+ abort(reason: unknown): void;
60
+ /** Ask `gate` too, each time a request is checked. */
61
+ guardWith(gate: () => void): void;
62
+ /**
63
+ * The send gate: refused once its caller was answered (nothing more is sent
64
+ * for an answered operation), once aborted, or when the extra gate refuses.
65
+ */
66
+ check(): void;
67
+ /** Count `work` until it settles. Never throws; never surfaces its rejection. */
68
+ track(work: PromiseLike<unknown>): void;
69
+ /** Record what a request's answer proved. */
70
+ note(evidence: WorkEvidence): void;
71
+ /**
72
+ * Its logical part is over: the caller has its answer. It settles now, or —
73
+ * when work under it still runs — when that work does.
74
+ */
75
+ finish(): void;
76
+ /** Did it linger — answered while work under it ran? Read once it settled. */
77
+ get settledLate(): boolean;
78
+ /** Call `listener` once it has settled (at once when it already has). */
79
+ onSettled(listener: () => void): void;
80
+ /** A promise that resolves once it has settled. */
81
+ whenSettled(): Promise<void>;
82
+ private settleIfDone;
83
+ }
84
+ /** An admitted operation: a unit of work that holds one slot of the budget. */
85
+ export declare class Operation extends Work {
86
+ readonly kind: OperationKind;
87
+ /** When it was admitted, on the pool's clock. */
88
+ readonly admittedAt: number;
89
+ constructor(kind: OperationKind, phase: WorkKind, sources: readonly (AbortSignal | undefined)[],
90
+ /** When it was admitted, on the pool's clock. */
91
+ admittedAt: number);
92
+ }
93
+ /**
94
+ * The pool-wide operation budget: at most `max` operations charged, each from
95
+ * its admission until it has SETTLED (see the module note). Admission is the
96
+ * only way in; settlement the only way out.
97
+ */
98
+ export declare class OperationBudget {
99
+ readonly max: number;
100
+ private readonly charged;
101
+ private readonly onRelease;
102
+ constructor(max: number);
103
+ /** Operations charged now. */
104
+ get count(): number;
105
+ /** Is there a free slot? */
106
+ get hasRoom(): boolean;
107
+ /**
108
+ * Admit one operation, or `undefined` when the budget is full. The slot is
109
+ * charged from here until the operation settles.
110
+ */
111
+ admit(kind: OperationKind, phase: WorkKind, sources: readonly (AbortSignal | undefined)[], now: number): Operation | undefined;
112
+ /** Call `listener` each time an operation settles and frees its slot. Returns the unsubscribe. */
113
+ whenReleased(listener: (operation: Operation) => void): () => void;
114
+ /** Charged work whose caller was already answered and which has not settled, by what it is doing. */
115
+ unsettled(): Record<WorkKind, number>;
116
+ }