@namzu/sdk 3.1.0 → 3.3.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 (297) hide show
  1. package/CHANGELOG.md +221 -0
  2. package/dist/advisory/__tests__/consultation-context.test.d.ts +2 -0
  3. package/dist/advisory/__tests__/consultation-context.test.d.ts.map +1 -0
  4. package/dist/advisory/__tests__/consultation-context.test.js +124 -0
  5. package/dist/advisory/__tests__/consultation-context.test.js.map +1 -0
  6. package/dist/advisory/context.d.ts +25 -0
  7. package/dist/advisory/context.d.ts.map +1 -1
  8. package/dist/advisory/context.js +18 -0
  9. package/dist/advisory/context.js.map +1 -1
  10. package/dist/advisory/executor.d.ts.map +1 -1
  11. package/dist/advisory/executor.js +25 -3
  12. package/dist/advisory/executor.js.map +1 -1
  13. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  14. package/dist/agents/SupervisorAgent.js +6 -0
  15. package/dist/agents/SupervisorAgent.js.map +1 -1
  16. package/dist/agents/__tests__/supervisor-hands-down-hitl.test.d.ts +2 -0
  17. package/dist/agents/__tests__/supervisor-hands-down-hitl.test.d.ts.map +1 -0
  18. package/dist/agents/__tests__/supervisor-hands-down-hitl.test.js +112 -0
  19. package/dist/agents/__tests__/supervisor-hands-down-hitl.test.js.map +1 -0
  20. package/dist/compaction/__tests__/context-reducer.test.d.ts +2 -0
  21. package/dist/compaction/__tests__/context-reducer.test.d.ts.map +1 -0
  22. package/dist/compaction/__tests__/context-reducer.test.js +197 -0
  23. package/dist/compaction/__tests__/context-reducer.test.js.map +1 -0
  24. package/dist/compaction/factory.d.ts +7 -0
  25. package/dist/compaction/factory.d.ts.map +1 -1
  26. package/dist/compaction/factory.js +7 -0
  27. package/dist/compaction/factory.js.map +1 -1
  28. package/dist/compaction/index.d.ts +2 -0
  29. package/dist/compaction/index.d.ts.map +1 -1
  30. package/dist/compaction/index.js +1 -0
  31. package/dist/compaction/index.js.map +1 -1
  32. package/dist/compaction/interface.d.ts +13 -0
  33. package/dist/compaction/interface.d.ts.map +1 -1
  34. package/dist/compaction/managers/null.d.ts +3 -0
  35. package/dist/compaction/managers/null.d.ts.map +1 -1
  36. package/dist/compaction/managers/null.js +3 -0
  37. package/dist/compaction/managers/null.js.map +1 -1
  38. package/dist/compaction/managers/slidingWindow.d.ts +6 -0
  39. package/dist/compaction/managers/slidingWindow.d.ts.map +1 -1
  40. package/dist/compaction/managers/slidingWindow.js +6 -0
  41. package/dist/compaction/managers/slidingWindow.js.map +1 -1
  42. package/dist/compaction/managers/structured.d.ts +10 -0
  43. package/dist/compaction/managers/structured.d.ts.map +1 -1
  44. package/dist/compaction/managers/structured.js +10 -0
  45. package/dist/compaction/managers/structured.js.map +1 -1
  46. package/dist/compaction/reducer.d.ts +86 -0
  47. package/dist/compaction/reducer.d.ts.map +1 -0
  48. package/dist/compaction/reducer.js +77 -0
  49. package/dist/compaction/reducer.js.map +1 -0
  50. package/dist/connector/builtins/__tests__/oauth2-auth.test.d.ts +2 -0
  51. package/dist/connector/builtins/__tests__/oauth2-auth.test.d.ts.map +1 -0
  52. package/dist/connector/builtins/__tests__/oauth2-auth.test.js +54 -0
  53. package/dist/connector/builtins/__tests__/oauth2-auth.test.js.map +1 -0
  54. package/dist/connector/builtins/http.d.ts.map +1 -1
  55. package/dist/connector/builtins/http.js +24 -2
  56. package/dist/connector/builtins/http.js.map +1 -1
  57. package/dist/connector/builtins/http.test.js +18 -2
  58. package/dist/connector/builtins/http.test.js.map +1 -1
  59. package/dist/connector/index.d.ts +3 -2
  60. package/dist/connector/index.d.ts.map +1 -1
  61. package/dist/connector/index.js +2 -1
  62. package/dist/connector/index.js.map +1 -1
  63. package/dist/connector/mcp/__tests__/prompt-as-tool.test.d.ts +2 -0
  64. package/dist/connector/mcp/__tests__/prompt-as-tool.test.d.ts.map +1 -0
  65. package/dist/connector/mcp/__tests__/prompt-as-tool.test.js +122 -0
  66. package/dist/connector/mcp/__tests__/prompt-as-tool.test.js.map +1 -0
  67. package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.d.ts +2 -0
  68. package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.d.ts.map +1 -0
  69. package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.js +214 -0
  70. package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.js.map +1 -0
  71. package/dist/connector/mcp/client.d.ts +52 -1
  72. package/dist/connector/mcp/client.d.ts.map +1 -1
  73. package/dist/connector/mcp/client.js +86 -0
  74. package/dist/connector/mcp/client.js.map +1 -1
  75. package/dist/connector/mcp/discovery.d.ts +27 -2
  76. package/dist/connector/mcp/discovery.d.ts.map +1 -1
  77. package/dist/connector/mcp/discovery.js +58 -5
  78. package/dist/connector/mcp/discovery.js.map +1 -1
  79. package/dist/connector/mcp/index.d.ts +4 -3
  80. package/dist/connector/mcp/index.d.ts.map +1 -1
  81. package/dist/connector/mcp/index.js +3 -2
  82. package/dist/connector/mcp/index.js.map +1 -1
  83. package/dist/connector/mcp/policy.d.ts +17 -0
  84. package/dist/connector/mcp/policy.d.ts.map +1 -1
  85. package/dist/connector/mcp/policy.js +18 -7
  86. package/dist/connector/mcp/policy.js.map +1 -1
  87. package/dist/connector/mcp/prompt-adapter.d.ts +39 -0
  88. package/dist/connector/mcp/prompt-adapter.d.ts.map +1 -0
  89. package/dist/connector/mcp/prompt-adapter.js +113 -0
  90. package/dist/connector/mcp/prompt-adapter.js.map +1 -0
  91. package/dist/connector/mcp/server.d.ts +42 -1
  92. package/dist/connector/mcp/server.d.ts.map +1 -1
  93. package/dist/connector/mcp/server.js +77 -4
  94. package/dist/connector/mcp/server.js.map +1 -1
  95. package/dist/manager/agent/__tests__/depth-limit-authority.test.d.ts +2 -0
  96. package/dist/manager/agent/__tests__/depth-limit-authority.test.d.ts.map +1 -0
  97. package/dist/manager/agent/__tests__/depth-limit-authority.test.js +58 -0
  98. package/dist/manager/agent/__tests__/depth-limit-authority.test.js.map +1 -0
  99. package/dist/manager/agent/__tests__/hitl-across-spawn.test.d.ts +2 -0
  100. package/dist/manager/agent/__tests__/hitl-across-spawn.test.d.ts.map +1 -0
  101. package/dist/manager/agent/__tests__/hitl-across-spawn.test.js +226 -0
  102. package/dist/manager/agent/__tests__/hitl-across-spawn.test.js.map +1 -0
  103. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  104. package/dist/manager/agent/lifecycle.js +13 -0
  105. package/dist/manager/agent/lifecycle.js.map +1 -1
  106. package/dist/plugin/__tests__/discovery-scopes.test.d.ts +2 -0
  107. package/dist/plugin/__tests__/discovery-scopes.test.d.ts.map +1 -0
  108. package/dist/plugin/__tests__/discovery-scopes.test.js +97 -0
  109. package/dist/plugin/__tests__/discovery-scopes.test.js.map +1 -0
  110. package/dist/plugin/__tests__/enable-contributions.test.js +5 -1
  111. package/dist/plugin/__tests__/enable-contributions.test.js.map +1 -1
  112. package/dist/plugin/__tests__/mcp-admission.test.d.ts +2 -0
  113. package/dist/plugin/__tests__/mcp-admission.test.d.ts.map +1 -0
  114. package/dist/plugin/__tests__/mcp-admission.test.js +227 -0
  115. package/dist/plugin/__tests__/mcp-admission.test.js.map +1 -0
  116. package/dist/plugin/lifecycle.d.ts +41 -0
  117. package/dist/plugin/lifecycle.d.ts.map +1 -1
  118. package/dist/plugin/lifecycle.js +39 -1
  119. package/dist/plugin/lifecycle.js.map +1 -1
  120. package/dist/plugin/loader.d.ts +39 -3
  121. package/dist/plugin/loader.d.ts.map +1 -1
  122. package/dist/plugin/loader.js +37 -4
  123. package/dist/plugin/loader.js.map +1 -1
  124. package/dist/public-runtime.d.ts +4 -2
  125. package/dist/public-runtime.d.ts.map +1 -1
  126. package/dist/public-runtime.js +5 -2
  127. package/dist/public-runtime.js.map +1 -1
  128. package/dist/public-types.d.ts +2 -2
  129. package/dist/public-types.d.ts.map +1 -1
  130. package/dist/rag/__tests__/namespace-isolation.test.d.ts +2 -0
  131. package/dist/rag/__tests__/namespace-isolation.test.d.ts.map +1 -0
  132. package/dist/rag/__tests__/namespace-isolation.test.js +80 -0
  133. package/dist/rag/__tests__/namespace-isolation.test.js.map +1 -0
  134. package/dist/rag/ingestion.d.ts.map +1 -1
  135. package/dist/rag/ingestion.js +1 -0
  136. package/dist/rag/ingestion.js.map +1 -1
  137. package/dist/rag/retriever.d.ts.map +1 -1
  138. package/dist/rag/retriever.js +2 -0
  139. package/dist/rag/retriever.js.map +1 -1
  140. package/dist/rag/vector-store.d.ts.map +1 -1
  141. package/dist/rag/vector-store.js +6 -0
  142. package/dist/rag/vector-store.js.map +1 -1
  143. package/dist/registry/tool/execute.d.ts.map +1 -1
  144. package/dist/registry/tool/execute.js +113 -109
  145. package/dist/registry/tool/execute.js.map +1 -1
  146. package/dist/runtime/query/__tests__/per-step-skills.test.d.ts +10 -0
  147. package/dist/runtime/query/__tests__/per-step-skills.test.d.ts.map +1 -0
  148. package/dist/runtime/query/__tests__/per-step-skills.test.js +122 -0
  149. package/dist/runtime/query/__tests__/per-step-skills.test.js.map +1 -0
  150. package/dist/runtime/query/__tests__/per-step-tool-choice.test.d.ts +2 -0
  151. package/dist/runtime/query/__tests__/per-step-tool-choice.test.d.ts.map +1 -0
  152. package/dist/runtime/query/__tests__/per-step-tool-choice.test.js +153 -0
  153. package/dist/runtime/query/__tests__/per-step-tool-choice.test.js.map +1 -0
  154. package/dist/runtime/query/__tests__/resume-run.test.d.ts +2 -0
  155. package/dist/runtime/query/__tests__/resume-run.test.d.ts.map +1 -0
  156. package/dist/runtime/query/__tests__/resume-run.test.js +211 -0
  157. package/dist/runtime/query/__tests__/resume-run.test.js.map +1 -0
  158. package/dist/runtime/query/index.d.ts +10 -0
  159. package/dist/runtime/query/index.d.ts.map +1 -1
  160. package/dist/runtime/query/index.js +26 -0
  161. package/dist/runtime/query/index.js.map +1 -1
  162. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  163. package/dist/runtime/query/iteration/index.js +50 -33
  164. package/dist/runtime/query/iteration/index.js.map +1 -1
  165. package/dist/runtime/query/iteration/phases/compaction-model-routing.test.d.ts +2 -0
  166. package/dist/runtime/query/iteration/phases/compaction-model-routing.test.d.ts.map +1 -0
  167. package/dist/runtime/query/iteration/phases/compaction-model-routing.test.js +96 -0
  168. package/dist/runtime/query/iteration/phases/compaction-model-routing.test.js.map +1 -0
  169. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  170. package/dist/runtime/query/iteration/phases/compaction.js +95 -5
  171. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  172. package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.d.ts +2 -0
  173. package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.d.ts.map +1 -0
  174. package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.js +180 -0
  175. package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.js.map +1 -0
  176. package/dist/runtime/query/iteration/phases/context.d.ts +9 -0
  177. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  178. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  179. package/dist/runtime/query/resume-run.d.ts +70 -0
  180. package/dist/runtime/query/resume-run.d.ts.map +1 -0
  181. package/dist/runtime/query/resume-run.js +46 -0
  182. package/dist/runtime/query/resume-run.js.map +1 -0
  183. package/dist/telemetry/__tests__/model-call-span.test.d.ts +2 -0
  184. package/dist/telemetry/__tests__/model-call-span.test.d.ts.map +1 -0
  185. package/dist/telemetry/__tests__/model-call-span.test.js +152 -0
  186. package/dist/telemetry/__tests__/model-call-span.test.js.map +1 -0
  187. package/dist/telemetry/__tests__/span-closure.test.d.ts +2 -0
  188. package/dist/telemetry/__tests__/span-closure.test.d.ts.map +1 -0
  189. package/dist/telemetry/__tests__/span-closure.test.js +124 -0
  190. package/dist/telemetry/__tests__/span-closure.test.js.map +1 -0
  191. package/dist/tools/advisory/index.js +1 -1
  192. package/dist/tools/advisory/index.js.map +1 -1
  193. package/dist/tools/coordinator/__tests__/plan-dependencies.test.d.ts +2 -0
  194. package/dist/tools/coordinator/__tests__/plan-dependencies.test.d.ts.map +1 -0
  195. package/dist/tools/coordinator/__tests__/plan-dependencies.test.js +126 -0
  196. package/dist/tools/coordinator/__tests__/plan-dependencies.test.js.map +1 -0
  197. package/dist/tools/coordinator/index.d.ts.map +1 -1
  198. package/dist/tools/coordinator/index.js +13 -1
  199. package/dist/tools/coordinator/index.js.map +1 -1
  200. package/dist/tools/coordinator/plan-dependencies.d.ts +43 -0
  201. package/dist/tools/coordinator/plan-dependencies.d.ts.map +1 -0
  202. package/dist/tools/coordinator/plan-dependencies.js +148 -0
  203. package/dist/tools/coordinator/plan-dependencies.js.map +1 -0
  204. package/dist/types/agent/base.d.ts +26 -0
  205. package/dist/types/agent/base.d.ts.map +1 -1
  206. package/dist/types/agent/supervisor.d.ts +15 -0
  207. package/dist/types/agent/supervisor.d.ts.map +1 -1
  208. package/dist/types/agent/task.d.ts +17 -0
  209. package/dist/types/agent/task.d.ts.map +1 -1
  210. package/dist/types/agent/task.js.map +1 -1
  211. package/dist/types/connector/core.d.ts +34 -0
  212. package/dist/types/connector/core.d.ts.map +1 -1
  213. package/dist/types/connector/definition.d.ts +10 -0
  214. package/dist/types/connector/definition.d.ts.map +1 -1
  215. package/dist/types/connector/mcp.d.ts +13 -0
  216. package/dist/types/connector/mcp.d.ts.map +1 -1
  217. package/dist/types/rag/retrieval.d.ts +16 -0
  218. package/dist/types/rag/retrieval.d.ts.map +1 -1
  219. package/dist/types/rag/storage.d.ts +9 -0
  220. package/dist/types/rag/storage.d.ts.map +1 -1
  221. package/dist/types/rag/vector.d.ts +11 -0
  222. package/dist/types/rag/vector.d.ts.map +1 -1
  223. package/dist/types/router/task-router.d.ts +19 -0
  224. package/dist/types/router/task-router.d.ts.map +1 -1
  225. package/dist/types/run/prepare-step.d.ts +56 -3
  226. package/dist/types/run/prepare-step.d.ts.map +1 -1
  227. package/dist/types/toolset/index.d.ts +22 -0
  228. package/dist/types/toolset/index.d.ts.map +1 -1
  229. package/package.json +1 -1
  230. package/src/advisory/__tests__/consultation-context.test.ts +191 -0
  231. package/src/advisory/context.ts +32 -0
  232. package/src/advisory/executor.ts +30 -3
  233. package/src/agents/SupervisorAgent.ts +6 -0
  234. package/src/agents/__tests__/supervisor-hands-down-hitl.test.ts +131 -0
  235. package/src/compaction/__tests__/context-reducer.test.ts +239 -0
  236. package/src/compaction/factory.ts +7 -0
  237. package/src/compaction/index.ts +8 -0
  238. package/src/compaction/interface.ts +13 -0
  239. package/src/compaction/managers/null.ts +3 -0
  240. package/src/compaction/managers/slidingWindow.ts +6 -0
  241. package/src/compaction/managers/structured.ts +10 -0
  242. package/src/compaction/reducer.ts +154 -0
  243. package/src/connector/builtins/__tests__/oauth2-auth.test.ts +73 -0
  244. package/src/connector/builtins/http.test.ts +28 -2
  245. package/src/connector/builtins/http.ts +26 -2
  246. package/src/connector/index.ts +7 -2
  247. package/src/connector/mcp/__tests__/prompt-as-tool.test.ts +157 -0
  248. package/src/connector/mcp/__tests__/prompts-and-lifecycle.test.ts +286 -0
  249. package/src/connector/mcp/client.ts +95 -0
  250. package/src/connector/mcp/discovery.ts +67 -5
  251. package/src/connector/mcp/index.ts +8 -3
  252. package/src/connector/mcp/policy.ts +23 -8
  253. package/src/connector/mcp/prompt-adapter.ts +139 -0
  254. package/src/connector/mcp/server.ts +101 -3
  255. package/src/manager/agent/__tests__/depth-limit-authority.test.ts +74 -0
  256. package/src/manager/agent/__tests__/hitl-across-spawn.test.ts +273 -0
  257. package/src/manager/agent/lifecycle.ts +12 -0
  258. package/src/plugin/__tests__/discovery-scopes.test.ts +133 -0
  259. package/src/plugin/__tests__/enable-contributions.test.ts +5 -1
  260. package/src/plugin/__tests__/mcp-admission.test.ts +286 -0
  261. package/src/plugin/lifecycle.ts +68 -1
  262. package/src/plugin/loader.ts +57 -3
  263. package/src/public-runtime.ts +10 -0
  264. package/src/public-types.ts +5 -0
  265. package/src/rag/__tests__/namespace-isolation.test.ts +109 -0
  266. package/src/rag/ingestion.ts +1 -0
  267. package/src/rag/retriever.ts +2 -0
  268. package/src/rag/vector-store.ts +5 -0
  269. package/src/registry/tool/execute.ts +123 -119
  270. package/src/runtime/query/__tests__/per-step-skills.test.ts +154 -0
  271. package/src/runtime/query/__tests__/per-step-tool-choice.test.ts +180 -0
  272. package/src/runtime/query/__tests__/resume-run.test.ts +262 -0
  273. package/src/runtime/query/index.ts +39 -0
  274. package/src/runtime/query/iteration/index.ts +55 -34
  275. package/src/runtime/query/iteration/phases/compaction-model-routing.test.ts +125 -0
  276. package/src/runtime/query/iteration/phases/compaction.ts +106 -5
  277. package/src/runtime/query/iteration/phases/context-reducer-dispatch.test.ts +238 -0
  278. package/src/runtime/query/iteration/phases/context.ts +11 -0
  279. package/src/runtime/query/resume-run.ts +93 -0
  280. package/src/telemetry/__tests__/model-call-span.test.ts +195 -0
  281. package/src/telemetry/__tests__/span-closure.test.ts +153 -0
  282. package/src/tools/advisory/index.ts +1 -1
  283. package/src/tools/coordinator/__tests__/plan-dependencies.test.ts +186 -0
  284. package/src/tools/coordinator/index.ts +14 -1
  285. package/src/tools/coordinator/plan-dependencies.ts +175 -0
  286. package/src/types/agent/base.ts +27 -0
  287. package/src/types/agent/supervisor.ts +15 -0
  288. package/src/types/agent/task.ts +18 -0
  289. package/src/types/connector/core.ts +34 -0
  290. package/src/types/connector/definition.ts +10 -0
  291. package/src/types/connector/mcp.ts +14 -0
  292. package/src/types/rag/retrieval.ts +16 -0
  293. package/src/types/rag/storage.ts +9 -0
  294. package/src/types/rag/vector.ts +11 -0
  295. package/src/types/router/task-router.ts +19 -0
  296. package/src/types/run/prepare-step.ts +58 -3
  297. package/src/types/toolset/index.ts +22 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-as-tool.test.js","sourceRoot":"","sources":["../../../../src/connector/mcp/__tests__/prompt-as-tool.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prompts-and-lifecycle.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts-and-lifecycle.test.d.ts","sourceRoot":"","sources":["../../../../src/connector/mcp/__tests__/prompts-and-lifecycle.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,214 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { JSON_RPC_METHOD_NOT_FOUND } from '../../../constants/mcp/index.js';
3
+ import { MCPClient } from '../client.js';
4
+ import { MCPServer } from '../server.js';
5
+ /**
6
+ * The half of MCP that is not tools.
7
+ *
8
+ * `MCPPromptDefinition` and `MCPPromptArgument` were declared when the types
9
+ * were written; no client method ever asked for a prompt and no server branch
10
+ * ever served one. `MCPLifecycleEvent` and `MCPEventListener` were declared
11
+ * beside them and nothing ever emitted one, so a host could learn that a
12
+ * server had died only by noticing calls had started failing.
13
+ */
14
+ function fakeTransport() {
15
+ const sent = [];
16
+ let onMessage;
17
+ const transport = {
18
+ connect: async () => undefined,
19
+ close: async () => undefined,
20
+ send: async (m) => {
21
+ sent.push(m);
22
+ },
23
+ onMessage: (h) => {
24
+ onMessage = h;
25
+ },
26
+ onClose: () => undefined,
27
+ onError: () => undefined,
28
+ };
29
+ return { transport, sent, deliver: (m) => onMessage?.(m) };
30
+ }
31
+ const toolProvider = {
32
+ listTools: () => [],
33
+ callTool: async () => ({ content: [{ type: 'text', text: 'ok' }] }),
34
+ };
35
+ function promptProvider(over = {}) {
36
+ const prompts = [
37
+ {
38
+ name: 'summarize',
39
+ description: 'Summarize a file',
40
+ arguments: [
41
+ { name: 'path', required: true },
42
+ { name: 'style', required: false },
43
+ ],
44
+ },
45
+ ];
46
+ const messages = [
47
+ { role: 'user', content: { type: 'text', text: 'summarize it' } },
48
+ ];
49
+ return {
50
+ listPrompts: () => prompts,
51
+ getPrompt: async () => ({ description: 'Summarize a file', messages }),
52
+ ...over,
53
+ };
54
+ }
55
+ async function ask(t, method, params = {}) {
56
+ t.deliver({ jsonrpc: '2.0', id: 1, method, params });
57
+ await new Promise((r) => setTimeout(r, 0));
58
+ return t.sent.at(-1);
59
+ }
60
+ describe('a server serves the prompts it publishes', () => {
61
+ it('lists them', async () => {
62
+ const t = fakeTransport();
63
+ const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider());
64
+ await server.start(t.transport);
65
+ const reply = await ask(t, 'prompts/list');
66
+ expect(reply.result.prompts[0]?.name).toBe('summarize');
67
+ });
68
+ it('returns the messages the server composed', async () => {
69
+ const t = fakeTransport();
70
+ const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider());
71
+ await server.start(t.transport);
72
+ const reply = await ask(t, 'prompts/get', {
73
+ name: 'summarize',
74
+ arguments: { path: 'a.ts' },
75
+ });
76
+ expect(reply.result.messages[0]?.content).toEqual({
77
+ type: 'text',
78
+ text: 'summarize it',
79
+ });
80
+ });
81
+ it('advertises the capability only when something is behind it', async () => {
82
+ const withPrompts = fakeTransport();
83
+ const without = fakeTransport();
84
+ const a = new MCPServer({ name: 'a' }, toolProvider, undefined, promptProvider());
85
+ const b = new MCPServer({ name: 'b' }, toolProvider);
86
+ await a.start(withPrompts.transport);
87
+ await b.start(without.transport);
88
+ const withCap = await ask(withPrompts, 'initialize');
89
+ const withoutCap = await ask(without, 'initialize');
90
+ // A capability advertised without a provider is a promise the next
91
+ // call breaks.
92
+ expect(withCap.result.capabilities.prompts).toBeDefined();
93
+ expect(withoutCap.result.capabilities.prompts).toBeUndefined();
94
+ });
95
+ it('refuses a required argument the caller omitted', async () => {
96
+ const t = fakeTransport();
97
+ const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider());
98
+ await server.start(t.transport);
99
+ const reply = await ask(t, 'prompts/get', { name: 'summarize', arguments: {} });
100
+ // Checked from the declaration, so every provider does not have to
101
+ // re-implement it or forget to.
102
+ expect(reply.error?.message).toContain('path');
103
+ });
104
+ it('accepts an optional argument being absent', async () => {
105
+ const t = fakeTransport();
106
+ const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider());
107
+ await server.start(t.transport);
108
+ const reply = await ask(t, 'prompts/get', {
109
+ name: 'summarize',
110
+ arguments: { path: 'a.ts' },
111
+ });
112
+ expect(reply.error).toBeUndefined();
113
+ });
114
+ it('refuses a prompt it does not publish', async () => {
115
+ const t = fakeTransport();
116
+ const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider());
117
+ await server.start(t.transport);
118
+ const reply = await ask(t, 'prompts/get', { name: 'nonexistent' });
119
+ expect(reply.error?.message).toContain('nonexistent');
120
+ });
121
+ });
122
+ describe('"none" and "not here" are different answers', () => {
123
+ it('says method-not-found for prompts when there is no provider', async () => {
124
+ const t = fakeTransport();
125
+ const server = new MCPServer({ name: 'srv' }, toolProvider);
126
+ await server.start(t.transport);
127
+ const reply = await ask(t, 'prompts/list');
128
+ expect(reply.error?.code).toBe(JSON_RPC_METHOD_NOT_FOUND);
129
+ });
130
+ it('says method-not-found for resources when there is no provider', async () => {
131
+ const t = fakeTransport();
132
+ const server = new MCPServer({ name: 'srv' }, toolProvider);
133
+ await server.start(t.transport);
134
+ const reply = await ask(t, 'resources/list');
135
+ // This used to answer `{ resources: [] }` for a capability
136
+ // `initialize` never advertised — telling a client "none" where the
137
+ // truth is "not here". The two send a client in opposite directions.
138
+ expect(reply.error?.code).toBe(JSON_RPC_METHOD_NOT_FOUND);
139
+ });
140
+ it('uses the protocol code for an unknown method, not a generic failure', async () => {
141
+ const t = fakeTransport();
142
+ const server = new MCPServer({ name: 'srv' }, toolProvider);
143
+ await server.start(t.transport);
144
+ const reply = await ask(t, 'completely/unknown');
145
+ expect(reply.error?.code).toBe(JSON_RPC_METHOD_NOT_FOUND);
146
+ });
147
+ it('still reports a provider failure as an internal error', async () => {
148
+ const t = fakeTransport();
149
+ const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider({
150
+ listPrompts: () => {
151
+ throw new Error('provider exploded');
152
+ },
153
+ }));
154
+ await server.start(t.transport);
155
+ const reply = await ask(t, 'prompts/list');
156
+ // A broken provider is not the same as an unimplemented method, and
157
+ // collapsing the two would tell a client to stop asking for something
158
+ // that works tomorrow.
159
+ expect(reply.error?.code).toBe(-32603);
160
+ });
161
+ });
162
+ describe('a client says out loud what it already knew', () => {
163
+ function failingClient() {
164
+ // `connect` failing is the simplest path that actually emits. A
165
+ // never-connected client's `disconnect` returns early and emits
166
+ // nothing — an easy way to write a test that proves nothing, which is
167
+ // what the first version of these did.
168
+ return new MCPClient({
169
+ serverName: 'srv',
170
+ transport: { type: 'stdio', command: 'definitely-not-a-real-binary-xyz', args: [] },
171
+ });
172
+ }
173
+ /**
174
+ * Covered here: the transport-error emitter. `connect`'s own catch emits
175
+ * the same event and is NOT pinned — a spawn failure surfaces through the
176
+ * transport first, so the catch is the second line of defence rather than
177
+ * the path this reaches. Reaching it needs a connection that opens and
178
+ * then fails negotiation, which this fake cannot stage; said rather than
179
+ * left for a mutation run to discover.
180
+ */
181
+ it('reports a failure to whoever is listening', async () => {
182
+ const client = failingClient();
183
+ const seen = [];
184
+ client.onLifecycle((e) => seen.push(e.type));
185
+ await client.connect().catch(() => undefined);
186
+ expect(seen).toContain('mcp_client_error');
187
+ });
188
+ it('stops reporting once the listener unsubscribes', async () => {
189
+ const client = failingClient();
190
+ const seen = vi.fn();
191
+ const off = client.onLifecycle(seen);
192
+ off();
193
+ await client.connect().catch(() => undefined);
194
+ // `onNotification` returns nothing, so a listener registered there
195
+ // cannot be removed and keeps a disposed host object alive for as
196
+ // long as the client. This is that bug not repeated.
197
+ expect(seen).not.toHaveBeenCalled();
198
+ });
199
+ it('leaves other listeners working when one throws', async () => {
200
+ const client = failingClient();
201
+ const survivor = vi.fn();
202
+ client.onLifecycle(() => {
203
+ throw new Error('observer bug');
204
+ });
205
+ client.onLifecycle(survivor);
206
+ await client.connect().catch(() => undefined);
207
+ // These fire from inside transport callbacks and from `connect`'s
208
+ // failure path, so an escaping exception would surface as a connection
209
+ // error — blaming the server for a bug in the host's own observer, and
210
+ // silencing every listener registered after the broken one.
211
+ expect(survivor).toHaveBeenCalled();
212
+ });
213
+ });
214
+ //# sourceMappingURL=prompts-and-lifecycle.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts-and-lifecycle.test.js","sourceRoot":"","sources":["../../../../src/connector/mcp/__tests__/prompts-and-lifecycle.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAO3E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC;;;;;;;;GAQG;AAEH,SAAS,aAAa;IAKrB,MAAM,IAAI,GAAwB,EAAE,CAAA;IACpC,IAAI,SAAuD,CAAA;IAC3D,MAAM,SAAS,GAAiB;QAC/B,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;QAC9B,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;QAC5B,IAAI,EAAE,KAAK,EAAE,CAAoB,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACb,CAAC;QACD,SAAS,EAAE,CAAC,CAAiC,EAAE,EAAE;YAChD,SAAS,GAAG,CAAC,CAAA;QACd,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;QACxB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;KACG,CAAA;IAC5B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED,MAAM,YAAY,GAA0B;IAC3C,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;IACnB,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;CACnE,CAAA;AAED,SAAS,cAAc,CAAC,OAAyC,EAAE;IAClE,MAAM,OAAO,GAA0B;QACtC;YACC,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,kBAAkB;YAC/B,SAAS,EAAE;gBACV,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;aAClC;SACD;KACD,CAAA;IACD,MAAM,QAAQ,GAAuB;QACpC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE;KACjE,CAAA;IACD,OAAO;QACN,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO;QAC1B,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC;QACtE,GAAG,IAAI;KACP,CAAA;AACF,CAAC;AAED,KAAK,UAAU,GAAG,CACjB,CAAmC,EACnC,MAAc,EACd,SAAkC,EAAE;IAEpC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAuB,CAAC,CAAA;IACzE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAGlB,CAAA;AACF,CAAC;AAED,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAE1C,MAAM,CAAE,KAAK,CAAC,MAA6C,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAChG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE;YACzC,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC3B,CAAC,CAAA;QAEF,MAAM,CAAE,KAAK,CAAC,MAA2C,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC;YACvF,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;SACpB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,WAAW,GAAG,aAAa,EAAE,CAAA;QACnC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;QAC/B,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACjF,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;QACpD,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QACpC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEhC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAEnD,mEAAmE;QACnE,eAAe;QACf,MAAM,CACJ,OAAO,CAAC,MAAoD,CAAC,YAAY,CAAC,OAAO,CAClF,CAAC,WAAW,EAAE,CAAA;QACf,MAAM,CACJ,UAAU,CAAC,MAAoD,CAAC,YAAY,CAAC,OAAO,CACrF,CAAC,aAAa,EAAE,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;QAE/E,mEAAmE;QACnE,gCAAgC;QAChC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE;YACzC,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC3B,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;QAElE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC5D,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,CAAA;QAC3D,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAE1C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,CAAA;QAC3D,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;QAE5C,2DAA2D;QAC3D,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,CAAA;QAC3D,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAA;QAEhD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAC3B,EAAE,IAAI,EAAE,KAAK,EAAE,EACf,YAAY,EACZ,SAAS,EACT,cAAc,CAAC;YACd,WAAW,EAAE,GAAG,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YACrC,CAAC;SACD,CAAC,CACF,CAAA;QACD,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAE1C,oEAAoE;QACpE,sEAAsE;QACtE,uBAAuB;QACvB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC5D,SAAS,aAAa;QACrB,gEAAgE;QAChE,gEAAgE;QAChE,sEAAsE;QACtE,uCAAuC;QACvC,OAAO,IAAI,SAAS,CAAC;YACpB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kCAAkC,EAAE,IAAI,EAAE,EAAE,EAAE;SACnF,CAAC,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;QAC9B,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAE5C,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAE7C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;QAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACpC,GAAG,EAAE,CAAA;QACL,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAE7C,mEAAmE;QACnE,kEAAkE;QAClE,qDAAqD;QACrD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;QAC9B,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QACxB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAE5B,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAE7C,kEAAkE;QAClE,uEAAuE;QACvE,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { MCPClientConfig, MCPClientState, MCPContentBlock, MCPInitializeResult, MCPResource, MCPResourceTemplate, MCPToolDefinition, MCPToolResult } from '../../types/connector/index.js';
1
+ import type { MCPClientConfig, MCPClientState, MCPContentBlock, MCPEventListener, MCPInitializeResult, MCPPromptDefinition, MCPPromptMessage, MCPResource, MCPResourceTemplate, MCPToolDefinition, MCPToolResult } from '../../types/connector/index.js';
2
2
  import type { MCPClientId } from '../../types/ids/index.js';
3
3
  export declare class MCPClient {
4
4
  readonly id: MCPClientId;
@@ -11,6 +11,7 @@ export declare class MCPClient {
11
11
  private pendingRequests;
12
12
  private nextRequestId;
13
13
  private notificationHandlers;
14
+ private lifecycleListeners;
14
15
  private log;
15
16
  private readonly config;
16
17
  constructor(config: MCPClientConfig);
@@ -22,6 +23,33 @@ export declare class MCPClient {
22
23
  callTool(name: string, args?: Record<string, unknown>): Promise<MCPToolResult>;
23
24
  listResources(): Promise<MCPResource[]>;
24
25
  readResource(uri: string): Promise<MCPContentBlock[]>;
26
+ /**
27
+ * The prompts a server publishes.
28
+ *
29
+ * A prompt is the server's own wording for a task it knows how to set
30
+ * up — the half of MCP that is not tools. `MCPPromptDefinition` and
31
+ * `MCPPromptArgument` were declared when the types were written and no
32
+ * method ever asked for one, so a server offering prompts had them
33
+ * silently ignored.
34
+ *
35
+ * Paged through the same reader as every other list, which is the point
36
+ * of it being generic: a server that pages its prompts does not get
37
+ * silently truncated to page one the way the tool list once was.
38
+ */
39
+ listPrompts(): Promise<MCPPromptDefinition[]>;
40
+ /**
41
+ * Fetch one prompt, with its arguments filled in.
42
+ *
43
+ * Returns the messages the SERVER composed. They are data to be shown to
44
+ * a model, never instructions to this client: a prompt arriving from a
45
+ * remote server is exactly the untrusted-content case, and treating its
46
+ * text as direction would let a server steer the agent by publishing a
47
+ * prompt nobody asked to run.
48
+ */
49
+ getPrompt(name: string, args?: Record<string, string>): Promise<{
50
+ description?: string;
51
+ messages: MCPPromptMessage[];
52
+ }>;
25
53
  listResourceTemplates(): Promise<MCPResourceTemplate[]>;
26
54
  /**
27
55
  * Read a paged list to the end.
@@ -42,6 +70,29 @@ export declare class MCPClient {
42
70
  */
43
71
  private listAllPages;
44
72
  onNotification(handler: (method: string, params?: Record<string, unknown>) => void): void;
73
+ /**
74
+ * Watch this client come up, go down, or fail.
75
+ *
76
+ * `MCPLifecycleEvent` and `MCPEventListener` were declared with the rest
77
+ * of the MCP types and nothing ever emitted one, so a host could observe
78
+ * a server dying only by noticing that calls had started failing. The
79
+ * four transitions below already existed and already mutated `status`;
80
+ * this adds no state, it just says out loud what the client already
81
+ * knew.
82
+ *
83
+ * Returns an unsubscribe. `onNotification` above does not, which is the
84
+ * bug this avoids repeating: a listener that cannot be removed keeps a
85
+ * disposed host object alive for as long as the client lives.
86
+ */
87
+ onLifecycle(listener: MCPEventListener): () => void;
88
+ /**
89
+ * A listener that throws must not take the transport down with it.
90
+ *
91
+ * These fire from inside transport callbacks and from the failure path
92
+ * of `connect`, so an exception here would surface as a connection
93
+ * error — blaming the server for a bug in the host's own observer.
94
+ */
95
+ private emitLifecycle;
45
96
  private createTransport;
46
97
  /**
47
98
  * Send a JSON-RPC request and wait for its reply, bounded by a timer.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,cAAc,EAEd,eAAe,EACf,mBAAmB,EAEnB,WAAW,EACX,mBAAmB,EAEnB,iBAAiB,EACjB,aAAa,EAGb,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAqB3D,qBAAa,SAAS;IACrB,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAA;IACxB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,UAAU,CAAC,CAAoC;IACvD,OAAO,CAAC,kBAAkB,CAAC,CAAuB;IAClD,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,eAAe,CAMpB;IACH,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,oBAAoB,CACzB;IACH,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,eAAe;IAO7B,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAiEvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC,WAAW,IAAI,OAAO;IAItB,QAAQ,IAAI,cAAc;IAYpB,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAKzC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAS9E,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKvC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQrD,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAK7D;;;;;;;;;;;;;;;;OAgBG;YACW,YAAY;IAwB1B,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIzF,OAAO,CAAC,eAAe;IAcvB;;;;;;;;;;;OAWG;YACW,OAAO;IA4CrB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;YAaV,MAAM;IASpB,OAAO,CAAC,aAAa;IAiDrB,OAAO,CAAC,gBAAgB;CAOxB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,cAAc,EAEd,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EAGnB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EAEnB,iBAAiB,EACjB,aAAa,EAGb,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAqB3D,qBAAa,SAAS;IACrB,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAA;IACxB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,UAAU,CAAC,CAAoC;IACvD,OAAO,CAAC,kBAAkB,CAAC,CAAuB;IAClD,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,eAAe,CAMpB;IACH,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,oBAAoB,CACzB;IACH,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,eAAe;IAO7B,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAyEvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC,WAAW,IAAI,OAAO;IAItB,QAAQ,IAAI,cAAc;IAYpB,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAKzC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAS9E,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKvC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQ3D;;;;;;;;;;;;OAYG;IACG,WAAW,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAKnD;;;;;;;;OAQG;IACG,SAAS,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IAY5D,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAK7D;;;;;;;;;;;;;;;;OAgBG;YACW,YAAY;IAwB1B,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIzF;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAQnD;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,eAAe;IAcvB;;;;;;;;;;;OAWG;YACW,OAAO;IA4CrB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;YAaV,MAAM;IASpB,OAAO,CAAC,aAAa;IAiDrB,OAAO,CAAC,gBAAgB;CAOxB"}
@@ -20,6 +20,7 @@ export class MCPClient {
20
20
  pendingRequests = new Map();
21
21
  nextRequestId = 1;
22
22
  notificationHandlers = [];
23
+ lifecycleListeners = [];
23
24
  log;
24
25
  config;
25
26
  constructor(config) {
@@ -38,12 +39,14 @@ export class MCPClient {
38
39
  this.transport.onClose(() => {
39
40
  this.status = 'disconnected';
40
41
  this.log.info('MCP transport closed');
42
+ this.emitLifecycle({ type: 'mcp_client_disconnected', clientId: this.id });
41
43
  this.rejectAllPending(`MCP transport to "${this.config.serverName}" closed`);
42
44
  });
43
45
  this.transport.onError((err) => {
44
46
  this.status = 'error';
45
47
  this.error = err.message;
46
48
  this.log.error('MCP transport error', { error: err.message });
49
+ this.emitLifecycle({ type: 'mcp_client_error', clientId: this.id, error: err.message });
47
50
  this.rejectAllPending(`MCP transport to "${this.config.serverName}" failed: ${err.message}`);
48
51
  });
49
52
  await this.transport.connect();
@@ -72,6 +75,11 @@ export class MCPClient {
72
75
  await this.notify('notifications/initialized', {});
73
76
  this.status = 'connected';
74
77
  this.connectedAt = Date.now();
78
+ this.emitLifecycle({
79
+ type: 'mcp_client_connected',
80
+ clientId: this.id,
81
+ serverName: this.config.serverName,
82
+ });
75
83
  this.log.info(`Connected to MCP server: ${result.serverInfo.name}`);
76
84
  return result;
77
85
  }
@@ -79,6 +87,7 @@ export class MCPClient {
79
87
  this.status = 'error';
80
88
  this.error = toErrorMessage(err);
81
89
  this.log.error('MCP connection failed', { error: this.error });
90
+ this.emitLifecycle({ type: 'mcp_client_error', clientId: this.id, error: this.error });
82
91
  throw err;
83
92
  }
84
93
  }
@@ -90,6 +99,7 @@ export class MCPClient {
90
99
  this.status = 'disconnected';
91
100
  this.connectedAt = undefined;
92
101
  this.log.info('MCP client disconnected');
102
+ this.emitLifecycle({ type: 'mcp_client_disconnected', clientId: this.id });
93
103
  }
94
104
  isConnected() {
95
105
  return this.status === 'connected';
@@ -126,6 +136,43 @@ export class MCPClient {
126
136
  const result = (await this.request('resources/read', { uri }));
127
137
  return result.contents;
128
138
  }
139
+ /**
140
+ * The prompts a server publishes.
141
+ *
142
+ * A prompt is the server's own wording for a task it knows how to set
143
+ * up — the half of MCP that is not tools. `MCPPromptDefinition` and
144
+ * `MCPPromptArgument` were declared when the types were written and no
145
+ * method ever asked for one, so a server offering prompts had them
146
+ * silently ignored.
147
+ *
148
+ * Paged through the same reader as every other list, which is the point
149
+ * of it being generic: a server that pages its prompts does not get
150
+ * silently truncated to page one the way the tool list once was.
151
+ */
152
+ async listPrompts() {
153
+ this.requireConnected();
154
+ return await this.listAllPages('prompts/list', 'prompts');
155
+ }
156
+ /**
157
+ * Fetch one prompt, with its arguments filled in.
158
+ *
159
+ * Returns the messages the SERVER composed. They are data to be shown to
160
+ * a model, never instructions to this client: a prompt arriving from a
161
+ * remote server is exactly the untrusted-content case, and treating its
162
+ * text as direction would let a server steer the agent by publishing a
163
+ * prompt nobody asked to run.
164
+ */
165
+ async getPrompt(name, args) {
166
+ this.requireConnected();
167
+ const result = (await this.request('prompts/get', {
168
+ name,
169
+ arguments: args ?? {},
170
+ }));
171
+ return {
172
+ ...(result.description !== undefined ? { description: result.description } : {}),
173
+ messages: result.messages ?? [],
174
+ };
175
+ }
129
176
  async listResourceTemplates() {
130
177
  this.requireConnected();
131
178
  return await this.listAllPages('resources/templates/list', 'resourceTemplates');
@@ -167,6 +214,45 @@ export class MCPClient {
167
214
  onNotification(handler) {
168
215
  this.notificationHandlers.push(handler);
169
216
  }
217
+ /**
218
+ * Watch this client come up, go down, or fail.
219
+ *
220
+ * `MCPLifecycleEvent` and `MCPEventListener` were declared with the rest
221
+ * of the MCP types and nothing ever emitted one, so a host could observe
222
+ * a server dying only by noticing that calls had started failing. The
223
+ * four transitions below already existed and already mutated `status`;
224
+ * this adds no state, it just says out loud what the client already
225
+ * knew.
226
+ *
227
+ * Returns an unsubscribe. `onNotification` above does not, which is the
228
+ * bug this avoids repeating: a listener that cannot be removed keeps a
229
+ * disposed host object alive for as long as the client lives.
230
+ */
231
+ onLifecycle(listener) {
232
+ this.lifecycleListeners.push(listener);
233
+ return () => {
234
+ const index = this.lifecycleListeners.indexOf(listener);
235
+ if (index >= 0)
236
+ this.lifecycleListeners.splice(index, 1);
237
+ };
238
+ }
239
+ /**
240
+ * A listener that throws must not take the transport down with it.
241
+ *
242
+ * These fire from inside transport callbacks and from the failure path
243
+ * of `connect`, so an exception here would surface as a connection
244
+ * error — blaming the server for a bug in the host's own observer.
245
+ */
246
+ emitLifecycle(event) {
247
+ for (const listener of this.lifecycleListeners) {
248
+ try {
249
+ listener(event);
250
+ }
251
+ catch (err) {
252
+ this.log.warn('MCP lifecycle listener threw', { error: toErrorMessage(err) });
253
+ }
254
+ }
255
+ }
170
256
  createTransport(config) {
171
257
  switch (config.type) {
172
258
  case 'stdio':
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAe,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EACN,8BAA8B,EAC9B,yBAAyB,EACzB,oBAAoB,EACpB,+BAA+B,GAC/B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE1C,0DAA0D;AAC1D,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AAEjE,MAAM,OAAO,SAAS;IACZ,EAAE,CAAa;IAChB,SAAS,CAAc;IACvB,MAAM,GAAwB,cAAc,CAAA;IAC5C,UAAU,CAAqC;IAC/C,kBAAkB,CAAwB;IAC1C,WAAW,CAAS;IACpB,KAAK,CAAS;IACd,eAAe,GAAG,IAAI,GAAG,EAM9B,CAAA;IACK,aAAa,GAAG,CAAC,CAAA;IACjB,oBAAoB,GAC3B,EAAE,CAAA;IACK,GAAG,CAAQ;IACF,MAAM,CAAiB;IAExC,YAAY,MAAuB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,mBAAmB,EAAE,CAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC,GAAG,GAAG,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAA;QAC9E,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;QAE1B,IAAI,CAAC;YACJ,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,MAAM,GAAG,cAAc,CAAA;gBAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;gBACrC,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,UAAU,UAAU,CAAC,CAAA;YAC7E,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;gBACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAA;gBACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC7D,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,UAAU,aAAa,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YAC7F,CAAC,CAAC,CAAA;YAEF,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;YAE9B,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;gBAChD,eAAe,EAAE,oBAAoB;gBACrC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE;gBAC5C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,iBAAiB;aACvD,CAAC,CAAwB,CAAA;YAE1B,gEAAgE;YAChE,kEAAkE;YAClE,gEAAgE;YAChE,wDAAwD;YACxD,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAA;YACzC,IAAI,UAAU,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzE,MAAM,IAAI,KAAK,CACd,eAAe,IAAI,CAAC,MAAM,CAAC,UAAU,kCAAkC,UAAU,KAAK;oBACrF,8CAA8C,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC7F,CAAA;YACF,CAAC;YACD,IAAI,UAAU,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;gBACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oDAAoD,EAAE;oBACnE,SAAS,EAAE,oBAAoB;oBAC/B,UAAU;iBACV,CAAC,CAAA;YACH,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;YACnC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAA;YAE7C,MAAM,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAA;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;YAEnE,OAAO,MAAM,CAAA;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;YACrB,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;YAChC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;YAC9D,MAAM,GAAG,CAAA;QACV,CAAC;IACF,CAAC;IAED,KAAK,CAAC,UAAU;QACf,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc;YAAE,OAAM;QAE1C,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAA;QAEhD,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,cAAc,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACzC,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,CAAA;IACnC,CAAC;IAED,QAAQ;QACP,OAAO;YACN,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAA;IACF,CAAC;IAED,KAAK,CAAC,SAAS;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAA8B;QAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAChD,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE;SACrB,CAAC,CAAkB,CAAA;QACpB,OAAO,MAAM,CAAA;IACd,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,CAE5D,CAAA;QACD,OAAO,MAAM,CAAC,QAAQ,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,qBAAqB;QAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,CAAA;IAChF,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,KAAK,CAAC,YAAY,CAAI,MAAc,EAAE,KAAa;QAC1D,MAAM,KAAK,GAAQ,EAAE,CAAA;QACrB,IAAI,MAA0B,CAAA;QAE9B,KAAK,IAAI,IAAI,GAAG,CAAC,GAAI,IAAI,EAAE,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAGjF,CAAA;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAI,KAAa,CAAC,CAAA;YAEvD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAA;YAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC/D,IAAI,IAAI,IAAI,cAAc,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACd,GAAG,MAAM,8BAA8B,cAAc,WAAW,KAAK,CAAC,MAAM,6GAA6G,CACzL,CAAA;YACF,CAAC;YACD,MAAM,GAAG,IAAI,CAAA;QACd,CAAC;IACF,CAAC;IAED,cAAc,CAAC,OAAmE;QACjF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAEO,eAAe,CAAC,MAAyB;QAChD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,OAAO;gBACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;YAClC,KAAK,UAAU;gBACd,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAA;YACpC,KAAK,iBAAiB,CAAC;YACvB,KAAK,iBAAiB;gBACrB,OAAO,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAA;YAC3C;gBACC,MAAM,IAAI,KAAK,CAAC,mCAAoC,MAA4B,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1F,CAAC;IACF,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,MAA+B;QACpE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAC/B,MAAM,OAAO,GAAsB;YAClC,OAAO,EAAE,KAAK;YACd,EAAE;YACF,MAAM;YACN,MAAM;SACN,CAAA;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,8BAA8B,CAAA;QAEhF,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;oBAC9B,MAAM;oBACN,SAAS;iBACT,CAAC,CAAA;gBACF,MAAM,CACL,IAAI,KAAK,CACR,gBAAgB,MAAM,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,qBAAqB,SAAS,IAAI,CACvF,CACD,CAAA;YACF,CAAC,EAAE,SAAS,CAAC,CAAA;YAEb,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE;gBAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,OAAO,CAAC,KAAK,CAAC,CAAA;gBACf,CAAC;gBACD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;oBACf,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,MAAM,CAAC,GAAG,CAAC,CAAA;gBACZ,CAAC;aACD,CAAC,CAAA;YAEF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1C,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAC/B,MAAM,CAAC,GAAG,CAAC,CAAA;YACZ,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACK,gBAAgB,CAAC,MAAc;QACtC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC;YAAE,OAAM;QAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE;YAC/C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAC9B,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;YAChC,MAAM;SACN,CAAC,CAAA;QACF,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAChD,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAClC,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,MAA+B;QACnE,MAAM,OAAO,GAAsB;YAClC,OAAO,EAAE,KAAK;YACd,MAAM;YACN,MAAM;SACN,CAAA;QACD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAEO,aAAa,CAAC,OAA0B;QAC/C,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACpD,IAAI,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBACvC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBACnB,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;gBACvF,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAChC,CAAC;gBACD,OAAM;YACP,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAChD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACjD,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YACxC,CAAC;YACD,OAAM;QACP,CAAC;QAED,iEAAiE;QACjE,4DAA4D;QAC5D,gEAAgE;QAChE,mEAAmE;QACnE,gEAAgE;QAChE,kDAAkD;QAClD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oDAAoD,EAAE;gBACnE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;aACtB,CAAC,CAAA;YACF,KAAK,IAAI,CAAC,SAAS;iBACjB,IAAI,CAAC;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,KAAK,EAAE;oBACN,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,qBAAqB,OAAO,CAAC,MAAM,EAAE;iBAC9C;aACD,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACd,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE;oBACvD,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;iBAC1B,CAAC,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACF,CAAC;IAEO,gBAAgB;QACvB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACd,cAAc,IAAI,CAAC,MAAM,CAAC,UAAU,+BAA+B,IAAI,CAAC,MAAM,GAAG,CACjF,CAAA;QACF,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { MCPDiscoveredTool } from '../../types/connector/index.js';
1
+ import type { MCPDiscoveredTool, MCPPromptDefinition } from '../../types/connector/index.js';
2
2
  import type { ToolDefinition } from '../../types/tool/index.js';
3
3
  import { type Logger } from '../../utils/logger.js';
4
4
  import type { MCPClient } from './client.js';
@@ -32,13 +32,38 @@ export declare class MCPToolDiscovery {
32
32
  private clients;
33
33
  private log;
34
34
  private options;
35
- /** Last admitted tool set per client, for drift detection. */
35
+ /**
36
+ * Last admitted tool set per SERVER, for drift detection.
37
+ *
38
+ * Keyed by server name rather than client id, and the difference is the
39
+ * whole point. A client id is minted per connection, so on the path a
40
+ * real MCP server actually takes — a plugin enabling, connecting, and
41
+ * being disabled again — every discovery was the first one that id had
42
+ * ever seen, and drift could not fire however many times the server
43
+ * changed underneath. The threat is a server that advertises something
44
+ * benign when a host approves it and something else afterwards, which is
45
+ * a property of the SERVER across connections.
46
+ */
36
47
  private lastSeen;
37
48
  constructor(clients: MCPClient[], options?: MCPToolDiscoveryOptions);
38
49
  addClient(client: MCPClient): void;
39
50
  removeClient(clientId: string): void;
40
51
  discoverAll(): Promise<MCPDiscoveredTool[]>;
41
52
  discoverFrom(client: MCPClient): Promise<MCPDiscoveredTool[]>;
53
+ /**
54
+ * The prompts a server publishes, through the same admission gate its
55
+ * tools go through.
56
+ *
57
+ * A server publishing a prompt is the same trust question as one
58
+ * publishing a tool: the remote side must not decide what enters the
59
+ * agent's registry. Policy is matched on the prompt's own name, as the
60
+ * server reports it, before any namespacing.
61
+ *
62
+ * A server that does not implement prompts answers method-not-found;
63
+ * that is an ordinary answer, not a failure, so it yields none rather
64
+ * than taking discovery down.
65
+ */
66
+ discoverPromptsFrom(client: MCPClient): Promise<MCPPromptDefinition[]>;
42
67
  toToolDefinitions(): Promise<ToolDefinition[]>;
43
68
  private detectDrift;
44
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,gCAAgC,CAAA;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,uBAAuB,CAAA;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,aAAa,EAIlB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,uBAAuB;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;IAC3D;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,KAAK,IAAI,CAAA;IACjG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,OAAO,CAAyB;IACxC,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAyC;gBAE7C,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,uBAA4B;IAMvE,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIlC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK9B,WAAW,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAuB3C,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA4B7D,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAWpD,OAAO,CAAC,WAAW;CAiBnB"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,mBAAmB,EAEnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,uBAAuB,CAAA;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,aAAa,EAKlB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,uBAAuB;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;IAC3D;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,KAAK,IAAI,CAAA;IACjG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,OAAO,CAAyB;IACxC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,QAAQ,CAAyC;gBAE7C,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,uBAA4B;IAMvE,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIlC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS9B,WAAW,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAuB3C,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA4BnE;;;;;;;;;;;;OAYG;IACG,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA6BtE,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAWpD,OAAO,CAAC,WAAW;CAiBnB"}