@continuumdao/continuum-node-sdk 1.3.39 → 1.3.41

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 (258) hide show
  1. package/dist/agent-host-catalog.json +1318 -52
  2. package/dist/core/agent/user-folder.d.ts +22 -0
  3. package/dist/core/agent/user-folder.d.ts.map +1 -0
  4. package/dist/core/agent/user-folder.js +82 -0
  5. package/dist/core/agent/user-folder.js.map +1 -0
  6. package/dist/core/chart/analysis/analyze-tools.d.ts +79 -5
  7. package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -1
  8. package/dist/core/chart/analysis/analyze-tools.js +6 -1
  9. package/dist/core/chart/analysis/analyze-tools.js.map +1 -1
  10. package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts +9 -0
  11. package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts.map +1 -1
  12. package/dist/core/chart/analysis/bollinger-analyze-tools.js +39 -19
  13. package/dist/core/chart/analysis/bollinger-analyze-tools.js.map +1 -1
  14. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts +28 -0
  15. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts.map +1 -1
  16. package/dist/core/chart/analysis/chart-patterns-tools.d.ts +28 -0
  17. package/dist/core/chart/analysis/chart-patterns-tools.d.ts.map +1 -1
  18. package/dist/core/chart/analysis/divergence-analyze-tools.d.ts +15 -0
  19. package/dist/core/chart/analysis/divergence-analyze-tools.d.ts.map +1 -1
  20. package/dist/core/chart/analysis/divergence-analyze-tools.js +2 -0
  21. package/dist/core/chart/analysis/divergence-analyze-tools.js.map +1 -1
  22. package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts +15 -0
  23. package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts.map +1 -1
  24. package/dist/core/chart/analysis/elliott-waves-analyze-tools.js +2 -0
  25. package/dist/core/chart/analysis/elliott-waves-analyze-tools.js.map +1 -1
  26. package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts +4 -2
  27. package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts.map +1 -1
  28. package/dist/core/chart/analysis/moving-averages-analyze-tools.js +23 -23
  29. package/dist/core/chart/analysis/moving-averages-analyze-tools.js.map +1 -1
  30. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts +14 -0
  31. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts.map +1 -1
  32. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js +48 -4
  33. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js.map +1 -1
  34. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -1
  35. package/dist/core/chart/analysis/trade-setups/build-trade.js +4 -1
  36. package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -1
  37. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts +14 -0
  38. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts.map +1 -1
  39. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js +16 -0
  40. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js.map +1 -1
  41. package/dist/core/chart/ohlcv-session-store.d.ts +2 -0
  42. package/dist/core/chart/ohlcv-session-store.d.ts.map +1 -1
  43. package/dist/core/chart/ohlcv-session-store.js +66 -9
  44. package/dist/core/chart/ohlcv-session-store.js.map +1 -1
  45. package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
  46. package/dist/core/chart/overlay-schemas.js +2 -0
  47. package/dist/core/chart/overlay-schemas.js.map +1 -1
  48. package/dist/core/mpc/forge-dry-run-build.d.ts +35 -0
  49. package/dist/core/mpc/forge-dry-run-build.d.ts.map +1 -0
  50. package/dist/core/mpc/forge-dry-run-build.js +200 -0
  51. package/dist/core/mpc/forge-dry-run-build.js.map +1 -0
  52. package/dist/core/mpc/forge-dry-run-request.d.ts +30 -0
  53. package/dist/core/mpc/forge-dry-run-request.d.ts.map +1 -0
  54. package/dist/core/mpc/forge-dry-run-request.js +144 -0
  55. package/dist/core/mpc/forge-dry-run-request.js.map +1 -0
  56. package/dist/core/mpc/join-multisign-request.d.ts.map +1 -1
  57. package/dist/core/mpc/join-multisign-request.js +41 -1
  58. package/dist/core/mpc/join-multisign-request.js.map +1 -1
  59. package/dist/core/mpc/mpc-input-coerce.d.ts +2 -0
  60. package/dist/core/mpc/mpc-input-coerce.d.ts.map +1 -1
  61. package/dist/core/mpc/mpc-input-coerce.js +53 -0
  62. package/dist/core/mpc/mpc-input-coerce.js.map +1 -1
  63. package/dist/core/mpc/schemas.d.ts +61 -2
  64. package/dist/core/mpc/schemas.d.ts.map +1 -1
  65. package/dist/core/mpc/schemas.js +137 -3
  66. package/dist/core/mpc/schemas.js.map +1 -1
  67. package/dist/evm/forge-dry-run-paths.d.ts +13 -0
  68. package/dist/evm/forge-dry-run-paths.d.ts.map +1 -0
  69. package/dist/evm/forge-dry-run-paths.js +39 -0
  70. package/dist/evm/forge-dry-run-paths.js.map +1 -0
  71. package/dist/index.d.ts +5 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +5 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/mcp/agent-chart-data-access-gate.d.ts +1 -1
  76. package/dist/mcp/agent-chart-data-access-gate.d.ts.map +1 -1
  77. package/dist/mcp/agent-chart-data-access-gate.js.map +1 -1
  78. package/dist/mcp/agent-cron-jobs.d.ts +1 -1
  79. package/dist/mcp/agent-cron-jobs.d.ts.map +1 -1
  80. package/dist/mcp/agent-cron-jobs.js +9 -0
  81. package/dist/mcp/agent-cron-jobs.js.map +1 -1
  82. package/dist/mcp/agent-environment-variables.d.ts +1 -1
  83. package/dist/mcp/agent-environment-variables.d.ts.map +1 -1
  84. package/dist/mcp/agent-environment-variables.js +3 -0
  85. package/dist/mcp/agent-environment-variables.js.map +1 -1
  86. package/dist/mcp/agent-host-catalog.d.ts +15 -2
  87. package/dist/mcp/agent-host-catalog.d.ts.map +1 -1
  88. package/dist/mcp/agent-host-catalog.js +52 -12
  89. package/dist/mcp/agent-host-catalog.js.map +1 -1
  90. package/dist/mcp/agent-input-coerce-register.d.ts +8 -0
  91. package/dist/mcp/agent-input-coerce-register.d.ts.map +1 -0
  92. package/dist/mcp/agent-input-coerce-register.js +22 -0
  93. package/dist/mcp/agent-input-coerce-register.js.map +1 -0
  94. package/dist/mcp/agent-input-coerce.d.ts +13 -0
  95. package/dist/mcp/agent-input-coerce.d.ts.map +1 -0
  96. package/dist/mcp/agent-input-coerce.js +292 -0
  97. package/dist/mcp/agent-input-coerce.js.map +1 -0
  98. package/dist/mcp/agent-mcp-servers.d.ts +1 -1
  99. package/dist/mcp/agent-mcp-servers.d.ts.map +1 -1
  100. package/dist/mcp/agent-mcp-servers.js +7 -0
  101. package/dist/mcp/agent-mcp-servers.js.map +1 -1
  102. package/dist/mcp/agent-skills.d.ts +1 -1
  103. package/dist/mcp/agent-skills.d.ts.map +1 -1
  104. package/dist/mcp/agent-skills.js +5 -0
  105. package/dist/mcp/agent-skills.js.map +1 -1
  106. package/dist/mcp/agent-webhooks.d.ts +1 -1
  107. package/dist/mcp/agent-webhooks.d.ts.map +1 -1
  108. package/dist/mcp/agent-webhooks.js +9 -0
  109. package/dist/mcp/agent-webhooks.js.map +1 -1
  110. package/dist/mcp/chart.d.ts +1 -1
  111. package/dist/mcp/chart.d.ts.map +1 -1
  112. package/dist/mcp/chart.js +38 -0
  113. package/dist/mcp/chart.js.map +1 -1
  114. package/dist/mcp/coinbase-public/register.d.ts +1 -1
  115. package/dist/mcp/coinbase-public/register.d.ts.map +1 -1
  116. package/dist/mcp/coinbase-public/register.js +6 -1
  117. package/dist/mcp/coinbase-public/register.js.map +1 -1
  118. package/dist/mcp/coinmarketcap-public/register.d.ts +1 -1
  119. package/dist/mcp/coinmarketcap-public/register.d.ts.map +1 -1
  120. package/dist/mcp/coinmarketcap-public/register.js +14 -1
  121. package/dist/mcp/coinmarketcap-public/register.js.map +1 -1
  122. package/dist/mcp/continuum-docs/config.d.ts +12 -0
  123. package/dist/mcp/continuum-docs/config.d.ts.map +1 -0
  124. package/dist/mcp/continuum-docs/config.js +35 -0
  125. package/dist/mcp/continuum-docs/config.js.map +1 -0
  126. package/dist/mcp/continuum-docs/fetch-page.d.ts +21 -0
  127. package/dist/mcp/continuum-docs/fetch-page.d.ts.map +1 -0
  128. package/dist/mcp/continuum-docs/fetch-page.js +76 -0
  129. package/dist/mcp/continuum-docs/fetch-page.js.map +1 -0
  130. package/dist/mcp/continuum-docs/index-store.d.ts +17 -0
  131. package/dist/mcp/continuum-docs/index-store.d.ts.map +1 -0
  132. package/dist/mcp/continuum-docs/index-store.js +79 -0
  133. package/dist/mcp/continuum-docs/index-store.js.map +1 -0
  134. package/dist/mcp/continuum-docs/markdown-sections.d.ts +16 -0
  135. package/dist/mcp/continuum-docs/markdown-sections.d.ts.map +1 -0
  136. package/dist/mcp/continuum-docs/markdown-sections.js +98 -0
  137. package/dist/mcp/continuum-docs/markdown-sections.js.map +1 -0
  138. package/dist/mcp/continuum-docs/register.d.ts +3 -0
  139. package/dist/mcp/continuum-docs/register.d.ts.map +1 -0
  140. package/dist/mcp/continuum-docs/register.js +69 -0
  141. package/dist/mcp/continuum-docs/register.js.map +1 -0
  142. package/dist/mcp/continuum-docs/search.d.ts +13 -0
  143. package/dist/mcp/continuum-docs/search.d.ts.map +1 -0
  144. package/dist/mcp/continuum-docs/search.js +92 -0
  145. package/dist/mcp/continuum-docs/search.js.map +1 -0
  146. package/dist/mcp/continuum-docs/types.d.ts +81 -0
  147. package/dist/mcp/continuum-docs/types.d.ts.map +1 -0
  148. package/dist/mcp/continuum-docs/types.js +60 -0
  149. package/dist/mcp/continuum-docs/types.js.map +1 -0
  150. package/dist/mcp/deferred/discovery-tools.d.ts +1 -1
  151. package/dist/mcp/deferred/discovery-tools.d.ts.map +1 -1
  152. package/dist/mcp/deferred/discovery-tools.js +57 -15
  153. package/dist/mcp/deferred/discovery-tools.js.map +1 -1
  154. package/dist/mcp/deferred/session.d.ts +15 -2
  155. package/dist/mcp/deferred/session.d.ts.map +1 -1
  156. package/dist/mcp/deferred/session.js +128 -80
  157. package/dist/mcp/deferred/session.js.map +1 -1
  158. package/dist/mcp/deferred/tool-group-map.d.ts +15 -2
  159. package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -1
  160. package/dist/mcp/deferred/tool-group-map.js +624 -72
  161. package/dist/mcp/deferred/tool-group-map.js.map +1 -1
  162. package/dist/mcp/defi/bitquery-api-key.d.ts +1 -1
  163. package/dist/mcp/defi/bitquery-api-key.d.ts.map +1 -1
  164. package/dist/mcp/defi/discovery.d.ts +1 -1
  165. package/dist/mcp/defi/discovery.d.ts.map +1 -1
  166. package/dist/mcp/defi/discovery.js +15 -3
  167. package/dist/mcp/defi/discovery.js.map +1 -1
  168. package/dist/mcp/defi/handler.d.ts +13 -6
  169. package/dist/mcp/defi/handler.d.ts.map +1 -1
  170. package/dist/mcp/defi/mcp-json-schema.d.ts +23 -0
  171. package/dist/mcp/defi/mcp-json-schema.d.ts.map +1 -0
  172. package/dist/mcp/defi/mcp-json-schema.js +173 -0
  173. package/dist/mcp/defi/mcp-json-schema.js.map +1 -0
  174. package/dist/mcp/defi/register-protocol-tools.d.ts +1 -1
  175. package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
  176. package/dist/mcp/defi/register-protocol-tools.js +41 -4
  177. package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
  178. package/dist/mcp/defi/the-graph-api-key.d.ts +1 -1
  179. package/dist/mcp/defi/the-graph-api-key.d.ts.map +1 -1
  180. package/dist/mcp/defi/tool-schemas.d.ts +4 -3
  181. package/dist/mcp/defi/tool-schemas.d.ts.map +1 -1
  182. package/dist/mcp/defi/tool-schemas.js +6 -4
  183. package/dist/mcp/defi/tool-schemas.js.map +1 -1
  184. package/dist/mcp/defi/uniswap-api-key.d.ts +1 -1
  185. package/dist/mcp/defi/uniswap-api-key.d.ts.map +1 -1
  186. package/dist/mcp/defi/venice-api-key.d.ts +1 -1
  187. package/dist/mcp/defi/venice-api-key.d.ts.map +1 -1
  188. package/dist/mcp/docs/search-index.json +2594 -0
  189. package/dist/mcp/group.d.ts +1 -1
  190. package/dist/mcp/group.d.ts.map +1 -1
  191. package/dist/mcp/group.js +3 -3
  192. package/dist/mcp/group.js.map +1 -1
  193. package/dist/mcp/keygen-messaging.d.ts +1 -1
  194. package/dist/mcp/keygen-messaging.d.ts.map +1 -1
  195. package/dist/mcp/keygen-messaging.js +10 -0
  196. package/dist/mcp/keygen-messaging.js.map +1 -1
  197. package/dist/mcp/keygen.d.ts +1 -1
  198. package/dist/mcp/keygen.d.ts.map +1 -1
  199. package/dist/mcp/keygen.js +6 -3
  200. package/dist/mcp/keygen.js.map +1 -1
  201. package/dist/mcp/management-signer.d.ts +1 -1
  202. package/dist/mcp/management-signer.d.ts.map +1 -1
  203. package/dist/mcp/management-signer.js +1 -1
  204. package/dist/mcp/management-signer.js.map +1 -1
  205. package/dist/mcp/mcp-resources.d.ts +1 -1
  206. package/dist/mcp/mcp-resources.d.ts.map +1 -1
  207. package/dist/mcp/mpc.d.ts +1 -1
  208. package/dist/mcp/mpc.d.ts.map +1 -1
  209. package/dist/mcp/mpc.js +57 -7
  210. package/dist/mcp/mpc.js.map +1 -1
  211. package/dist/mcp/node.d.ts +1 -1
  212. package/dist/mcp/node.d.ts.map +1 -1
  213. package/dist/mcp/node.js +7 -1
  214. package/dist/mcp/node.js.map +1 -1
  215. package/dist/mcp/ohlcv-session-wrapper.d.ts +1 -2
  216. package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -1
  217. package/dist/mcp/ohlcv-session-wrapper.js.map +1 -1
  218. package/dist/mcp/register.d.ts +1 -1
  219. package/dist/mcp/register.d.ts.map +1 -1
  220. package/dist/mcp/register.js +6 -6
  221. package/dist/mcp/register.js.map +1 -1
  222. package/dist/mcp/registry/address-book.d.ts +1 -1
  223. package/dist/mcp/registry/address-book.d.ts.map +1 -1
  224. package/dist/mcp/registry/address-book.js +1 -0
  225. package/dist/mcp/registry/address-book.js.map +1 -1
  226. package/dist/mcp/registry/networks.d.ts +1 -1
  227. package/dist/mcp/registry/networks.d.ts.map +1 -1
  228. package/dist/mcp/registry/networks.js +3 -1
  229. package/dist/mcp/registry/networks.js.map +1 -1
  230. package/dist/mcp/registry/tokens.d.ts +1 -1
  231. package/dist/mcp/registry/tokens.d.ts.map +1 -1
  232. package/dist/mcp/registry/tokens.js +2 -0
  233. package/dist/mcp/registry/tokens.js.map +1 -1
  234. package/dist/mcp/resources/chart-analysis.md +1 -1
  235. package/dist/mcp/resources/mpc.md +11 -1
  236. package/dist/mcp/server/http-transport.d.ts +1 -1
  237. package/dist/mcp/server/http-transport.d.ts.map +1 -1
  238. package/dist/mcp/server/http-transport.js +30 -118
  239. package/dist/mcp/server/http-transport.js.map +1 -1
  240. package/dist/mcp/server/index.js +8 -1
  241. package/dist/mcp/server/index.js.map +1 -1
  242. package/dist/mcp/ta/register.d.ts +1 -1
  243. package/dist/mcp/ta/register.d.ts.map +1 -1
  244. package/dist/mcp/ta/register.js +3 -1
  245. package/dist/mcp/ta/register.js.map +1 -1
  246. package/dist/mcp/ta-server/index.js +3 -4
  247. package/dist/mcp/ta-server/index.js.map +1 -1
  248. package/dist/mcp/tool-utils.d.ts +1 -1
  249. package/dist/mcp/tool-utils.d.ts.map +1 -1
  250. package/dist/mcp/trade-tools.d.ts +1 -1
  251. package/dist/mcp/trade-tools.d.ts.map +1 -1
  252. package/dist/mcp/trade-tools.js +5 -0
  253. package/dist/mcp/trade-tools.js.map +1 -1
  254. package/dist/mcp/vpn.d.ts +1 -1
  255. package/dist/mcp/vpn.d.ts.map +1 -1
  256. package/dist/mcp/vpn.js +9 -1
  257. package/dist/mcp/vpn.js.map +1 -1
  258. package/package.json +8 -5
@@ -0,0 +1,81 @@
1
+ import { z } from 'zod';
2
+ export declare const ContinuumDocSectionSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ title: z.ZodString;
5
+ level: z.ZodNumber;
6
+ excerpt: z.ZodString;
7
+ }, z.core.$strict>;
8
+ export declare const ContinuumDocPageSchema: z.ZodObject<{
9
+ path: z.ZodString;
10
+ title: z.ZodString;
11
+ section: z.ZodString;
12
+ headings: z.ZodArray<z.ZodString>;
13
+ sections: z.ZodOptional<z.ZodArray<z.ZodObject<{
14
+ id: z.ZodString;
15
+ title: z.ZodString;
16
+ level: z.ZodNumber;
17
+ excerpt: z.ZodString;
18
+ }, z.core.$strict>>>;
19
+ excerpt: z.ZodString;
20
+ url: z.ZodString;
21
+ }, z.core.$strict>;
22
+ export declare const ContinuumDocsIndexSchema: z.ZodObject<{
23
+ version: z.ZodNumber;
24
+ generatedAt: z.ZodString;
25
+ pages: z.ZodArray<z.ZodObject<{
26
+ path: z.ZodString;
27
+ title: z.ZodString;
28
+ section: z.ZodString;
29
+ headings: z.ZodArray<z.ZodString>;
30
+ sections: z.ZodOptional<z.ZodArray<z.ZodObject<{
31
+ id: z.ZodString;
32
+ title: z.ZodString;
33
+ level: z.ZodNumber;
34
+ excerpt: z.ZodString;
35
+ }, z.core.$strict>>>;
36
+ excerpt: z.ZodString;
37
+ url: z.ZodString;
38
+ }, z.core.$strict>>;
39
+ }, z.core.$strict>;
40
+ export type ContinuumDocPage = z.infer<typeof ContinuumDocPageSchema>;
41
+ export type ContinuumDocSection = z.infer<typeof ContinuumDocSectionSchema>;
42
+ export type ContinuumDocsIndex = z.infer<typeof ContinuumDocsIndexSchema>;
43
+ export declare const SearchContinuumDocsHitSchema: z.ZodObject<{
44
+ path: z.ZodString;
45
+ title: z.ZodString;
46
+ section: z.ZodString;
47
+ excerpt: z.ZodString;
48
+ url: z.ZodString;
49
+ score: z.ZodNumber;
50
+ sectionId: z.ZodOptional<z.ZodString>;
51
+ sectionTitle: z.ZodOptional<z.ZodString>;
52
+ }, z.core.$strict>;
53
+ export declare const SearchContinuumDocsOutputSchema: z.ZodObject<{
54
+ hits: z.ZodArray<z.ZodObject<{
55
+ path: z.ZodString;
56
+ title: z.ZodString;
57
+ section: z.ZodString;
58
+ excerpt: z.ZodString;
59
+ url: z.ZodString;
60
+ score: z.ZodNumber;
61
+ sectionId: z.ZodOptional<z.ZodString>;
62
+ sectionTitle: z.ZodOptional<z.ZodString>;
63
+ }, z.core.$strict>>;
64
+ indexSource: z.ZodEnum<{
65
+ live: "live";
66
+ bundled: "bundled";
67
+ }>;
68
+ indexGeneratedAt: z.ZodOptional<z.ZodString>;
69
+ }, z.core.$strict>;
70
+ export declare const GetContinuumDocOutputSchema: z.ZodObject<{
71
+ path: z.ZodString;
72
+ url: z.ZodString;
73
+ title: z.ZodOptional<z.ZodString>;
74
+ sectionId: z.ZodOptional<z.ZodString>;
75
+ sectionTitle: z.ZodOptional<z.ZodString>;
76
+ content: z.ZodString;
77
+ truncated: z.ZodBoolean;
78
+ offset: z.ZodNumber;
79
+ totalChars: z.ZodNumber;
80
+ }, z.core.$strict>;
81
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,yBAAyB;;;;;kBAO5B,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;kBAUzB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;kBAM3B,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,4BAA4B;;;;;;;;;kBAW/B,CAAC;AAEX,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;kBAMlC,CAAC;AAEX,eAAO,MAAM,2BAA2B;;;;;;;;;;kBAY9B,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { z } from 'zod';
2
+ export const ContinuumDocSectionSchema = z
3
+ .object({
4
+ id: z.string(),
5
+ title: z.string(),
6
+ level: z.number().int().positive(),
7
+ excerpt: z.string(),
8
+ })
9
+ .strict();
10
+ export const ContinuumDocPageSchema = z
11
+ .object({
12
+ path: z.string(),
13
+ title: z.string(),
14
+ section: z.string(),
15
+ headings: z.array(z.string()),
16
+ sections: z.array(ContinuumDocSectionSchema).optional(),
17
+ excerpt: z.string(),
18
+ url: z.string(),
19
+ })
20
+ .strict();
21
+ export const ContinuumDocsIndexSchema = z
22
+ .object({
23
+ version: z.number().int(),
24
+ generatedAt: z.string(),
25
+ pages: z.array(ContinuumDocPageSchema),
26
+ })
27
+ .strict();
28
+ export const SearchContinuumDocsHitSchema = z
29
+ .object({
30
+ path: z.string(),
31
+ title: z.string(),
32
+ section: z.string(),
33
+ excerpt: z.string(),
34
+ url: z.string(),
35
+ score: z.number(),
36
+ sectionId: z.string().optional(),
37
+ sectionTitle: z.string().optional(),
38
+ })
39
+ .strict();
40
+ export const SearchContinuumDocsOutputSchema = z
41
+ .object({
42
+ hits: z.array(SearchContinuumDocsHitSchema),
43
+ indexSource: z.enum(['live', 'bundled']),
44
+ indexGeneratedAt: z.string().optional(),
45
+ })
46
+ .strict();
47
+ export const GetContinuumDocOutputSchema = z
48
+ .object({
49
+ path: z.string(),
50
+ url: z.string(),
51
+ title: z.string().optional(),
52
+ sectionId: z.string().optional(),
53
+ sectionTitle: z.string().optional(),
54
+ content: z.string(),
55
+ truncated: z.boolean(),
56
+ offset: z.number().int().nonnegative(),
57
+ totalChars: z.number().int().nonnegative(),
58
+ })
59
+ .strict();
60
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer } from "@modelcontextprotocol/server";
2
2
  import type { NodeSdkConfig } from '../../config/schema.js';
3
3
  import type { DefiProtocolContext } from '../defi/context.js';
4
4
  import type { DeferredToolSession } from './session.js';
@@ -1 +1 @@
1
- {"version":3,"file":"discovery-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/deferred/discovery-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAEvE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAG5D,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAqCtD,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,mBAAmB,EAC5B,WAAW,CAAC,EAAE,mBAAmB,GAC/B,IAAI,CAoIN"}
1
+ {"version":3,"file":"discovery-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/deferred/discovery-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAG5D,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAsCtD,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,mBAAmB,EAC5B,WAAW,CAAC,EAAE,mBAAmB,GAC/B,IAAI,CA4KN"}
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { getProtocolSkill } from '../defi/catalog-adapter.js';
3
3
  import { markProtocolLoaded } from '../defi/register-protocol-tools.js';
4
+ import { resolveActivateGroupIds } from './tool-group-map.js';
4
5
  const ListGroupsOutputSchema = z.object({
5
6
  groups: z.array(z.object({
6
7
  groupId: z.string(),
@@ -33,6 +34,7 @@ export function registerDeferredDiscoveryTools(server, _config, session, defiCon
33
34
  if (session.isDiscoveryRegistered()) {
34
35
  return;
35
36
  }
37
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. | Could not verify `outputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
36
38
  server.registerTool('list_tool_groups', {
37
39
  description: 'List Continuum MCP tool bundles (groupId, toolCount, loaded, pinned). Call activate_tool_group before using tools in an unloaded bundle.',
38
40
  inputSchema: z.object({}).strict(),
@@ -45,8 +47,9 @@ export function registerDeferredDiscoveryTools(server, _config, session, defiCon
45
47
  structuredContent: payload,
46
48
  };
47
49
  });
50
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. | Could not verify `outputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
48
51
  server.registerTool('search_continuum_tools', {
49
- description: 'Search the Continuum tool catalog by keywords (e.g. chart, ohlcv, multisign). Returns compact hits; call activate_tool_group on the group id before tools/call. For charts: search "chart" then activate_tool_group({ groupId: "chart" }).',
52
+ description: 'Search the Continuum tool catalog by keywords (e.g. chart, ohlcv, multisign). Returns compact hits; call activate_tool_group on the hit group id before tools/call. For charts: activate_tool_group({ groupId: "chart:core" }) or alias "chart"; analysis uses chart:analyze; DeFi load defaults to defi:<protocol>:market-data.',
50
53
  inputSchema: z
51
54
  .object({
52
55
  q: z.string().min(1),
@@ -58,15 +61,21 @@ export function registerDeferredDiscoveryTools(server, _config, session, defiCon
58
61
  }, async ({ q, group, limit }) => {
59
62
  const hits = session.searchTools(q, group, limit ?? 20);
60
63
  const first = hits[0];
61
- const chartQuery = /\b(chart|ohlcv|plot|graph|candlestick|analysis)\b/i.test(q);
62
- const chartLoaded = session.isGroupActive('chart');
64
+ const chartQuery = /\b(chart|ohlcv|plot|graph|candlestick)\b/i.test(q);
65
+ const analysisQuery = /\b(analysis|analyze)\b/i.test(q);
66
+ const chartCoreLoaded = session.isGroupActive('chart:core');
67
+ const chartAnalyzeLoaded = session.isGroupActive('chart:analyze');
63
68
  let suggestion;
64
69
  if (first && !first.loaded) {
65
70
  suggestion = `Call activate_tool_group with groupId "${first.group}" to enable these tools.`;
66
71
  }
67
- else if (chartQuery && !chartLoaded) {
72
+ else if (analysisQuery && !chartAnalyzeLoaded) {
68
73
  suggestion =
69
- 'Call activate_tool_group with groupId "chart" to enable chart and analysis tools.';
74
+ 'Call activate_tool_group with groupId "chart:analyze" to enable analyze_* tools.';
75
+ }
76
+ else if (chartQuery && !chartCoreLoaded) {
77
+ suggestion =
78
+ 'Call activate_tool_group with groupId "chart:core" (or alias "chart") to enable prepare_chart* tools.';
70
79
  }
71
80
  const payload = {
72
81
  hits,
@@ -77,19 +86,26 @@ export function registerDeferredDiscoveryTools(server, _config, session, defiCon
77
86
  structuredContent: payload,
78
87
  };
79
88
  });
89
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. | Could not verify `outputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
80
90
  server.registerTool('activate_tool_group', {
81
- description: 'Activate a tool bundle so its tools appear in tools/list and accept tools/call. Idempotent if already active.',
91
+ description: 'Mark a tool bundle as loaded for search bookkeeping and host LLM expand. Wire tools/list is static (MCP 2026-07-28); mpc-auth filters what the model sees. Idempotent if already active.',
82
92
  inputSchema: z.object({ groupId: z.string().min(1) }).strict(),
83
93
  outputSchema: ActivateOutputSchema,
84
94
  }, async ({ groupId }) => {
95
+ const resolvedIds = resolveActivateGroupIds(groupId);
85
96
  if (groupId.startsWith('defi:') && defiContext) {
86
- const protocolId = groupId.slice('defi:'.length);
97
+ const parts = groupId.slice('defi:'.length).split(':');
98
+ const protocolId = parts[0] ?? '';
99
+ if (!protocolId) {
100
+ throw new Error(`Unknown tool group: ${groupId}`);
101
+ }
87
102
  markProtocolLoaded(defiContext, protocolId);
88
103
  const skill = getProtocolSkill(protocolId);
89
- const toolNames = session.activateGroup(groupId);
104
+ const toolNames = [...new Set(resolvedIds.flatMap(id => session.activateGroup(id)))].sort();
90
105
  const payload = {
91
106
  activated: true,
92
- groupId,
107
+ groupId: resolvedIds[0] ?? groupId,
108
+ requestedGroupId: groupId,
93
109
  toolNames,
94
110
  advisoryTools: [
95
111
  'get_defi_protocol_supported_chains',
@@ -104,19 +120,26 @@ export function registerDeferredDiscoveryTools(server, _config, session, defiCon
104
120
  structuredContent: payload,
105
121
  };
106
122
  }
107
- const toolNames = session.activateGroup(groupId);
123
+ const toolNames = [...new Set(resolvedIds.flatMap(id => session.activateGroup(id)))].sort();
124
+ const known = session.listGroups();
108
125
  if (toolNames.length === 0 &&
109
- !session.listGroups().some(g => g.groupId === groupId)) {
126
+ !resolvedIds.some(id => known.some(g => g.groupId === id))) {
110
127
  throw new Error(`Unknown tool group: ${groupId}`);
111
128
  }
112
- const payload = { activated: true, groupId, toolNames };
129
+ const payload = {
130
+ activated: true,
131
+ groupId: resolvedIds[0] ?? groupId,
132
+ requestedGroupId: groupId,
133
+ toolNames,
134
+ };
113
135
  return {
114
136
  content: [{ type: 'text', text: JSON.stringify(payload) }],
115
137
  structuredContent: payload,
116
138
  };
117
139
  });
140
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. | Could not verify `outputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
118
141
  server.registerTool('deactivate_tool_group', {
119
- description: 'Hide tools in a bundle from tools/list. Pinned groups cannot be deactivated.',
142
+ description: 'Mark a tool bundle as unloaded for search bookkeeping (wire tools/list stays static). Pinned groups cannot be deactivated.',
120
143
  inputSchema: z.object({ groupId: z.string().min(1) }).strict(),
121
144
  outputSchema: z
122
145
  .object({
@@ -126,8 +149,27 @@ export function registerDeferredDiscoveryTools(server, _config, session, defiCon
126
149
  })
127
150
  .strict(),
128
151
  }, async ({ groupId }) => {
129
- const toolNames = session.deactivateGroup(groupId);
130
- const payload = { deactivated: toolNames.length > 0, groupId, toolNames };
152
+ const resolvedIds = resolveActivateGroupIds(groupId);
153
+ // Unloading a bare defi:<protocol> deactivates all packs for that protocol.
154
+ let ids = resolvedIds;
155
+ if (groupId.startsWith('defi:')) {
156
+ const parts = groupId.slice('defi:'.length).split(':');
157
+ if (parts.length === 1 && parts[0]) {
158
+ const proto = parts[0];
159
+ ids = [
160
+ `defi:${proto}:market-data`,
161
+ `defi:${proto}:trading`,
162
+ `defi:${proto}:other`,
163
+ ];
164
+ }
165
+ }
166
+ const toolNames = [...new Set(ids.flatMap(id => session.deactivateGroup(id)))].sort();
167
+ const payload = {
168
+ deactivated: toolNames.length > 0,
169
+ groupId: ids[0] ?? groupId,
170
+ requestedGroupId: groupId,
171
+ toolNames,
172
+ };
131
173
  return {
132
174
  content: [{ type: 'text', text: JSON.stringify(payload) }],
133
175
  structuredContent: payload,
@@ -1 +1 @@
1
- {"version":3,"file":"discovery-tools.js","sourceRoot":"","sources":["../../../src/mcp/deferred/discovery-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AAGtE,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QACzC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;KACxB,CAAC,CACF;CACD,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;QACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC,CACF;IACD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,UAAU,8BAA8B,CAC7C,MAAiB,EACjB,OAAsB,EACtB,OAA4B,EAC5B,WAAiC;IAEjC,IAAI,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;QACrC,OAAO;IACR,CAAC;IAED,MAAM,CAAC,YAAY,CAClB,kBAAkB,EAClB;QACC,WAAW,EACV,0IAA0I;QAC3I,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAClC,YAAY,EAAE,sBAAsB;KACpC,EACD,KAAK,IAAI,EAAE;QACV,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,EAAC,MAAM,EAAC,CAAC;QACzB,OAAO;YACN,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,CAAC;YACjE,iBAAiB,EAAE,OAAO;SAC1B,CAAC;IACH,CAAC,CACD,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,wBAAwB,EACxB;QACC,WAAW,EACV,4OAA4O;QAC7O,WAAW,EAAE,CAAC;aACZ,MAAM,CAAC;YACP,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;SACrD,CAAC;aACD,MAAM,EAAE;QACV,YAAY,EAAE,kBAAkB;KAChC,EACD,KAAK,EAAE,EAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAA8C,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,UAAU,GAAG,oDAAoD,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,UAA8B,CAAC;QACnC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,UAAU,GAAG,0CAA0C,KAAK,CAAC,KAAK,0BAA0B,CAAC;QAC9F,CAAC;aAAM,IAAI,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,UAAU;gBACT,mFAAmF,CAAC;QACtF,CAAC;QACD,MAAM,OAAO,GAAG;YACf,IAAI;YACJ,UAAU;SACV,CAAC;QACF,OAAO;YACN,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,CAAC;YACjE,iBAAiB,EAAE,OAAO;SAC1B,CAAC;IACH,CAAC,CACD,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,qBAAqB,EACrB;QACC,WAAW,EACV,+GAA+G;QAChH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,EAAE;QAC5D,YAAY,EAAE,oBAAoB;KAClC,EACD,KAAK,EAAE,EAAC,OAAO,EAAoB,EAAE,EAAE;QACtC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG;gBACf,SAAS,EAAE,IAAI;gBACf,OAAO;gBACP,SAAS;gBACT,aAAa,EAAE;oBACd,oCAAoC;oBACpC,oCAAoC;oBACpC,yBAAyB;iBACzB;gBACD,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAClC,SAAS,EACR,mEAAmE;aACpE,CAAC;YACF,OAAO;gBACN,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,CAAC;gBACjE,iBAAiB,EAAE,OAAO;aAC1B,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACjD,IACC,SAAS,CAAC,MAAM,KAAK,CAAC;YACtB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EACrD,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,OAAO,GAAG,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC;QACtD,OAAO;YACN,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,CAAC;YACjE,iBAAiB,EAAE,OAAO;SAC1B,CAAC;IACH,CAAC,CACD,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,uBAAuB,EACvB;QACC,WAAW,EACV,8EAA8E;QAC/E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,EAAE;QAC5D,YAAY,EAAE,CAAC;aACb,MAAM,CAAC;YACP,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;YACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9B,CAAC;aACD,MAAM,EAAE;KACV,EACD,KAAK,EAAE,EAAC,OAAO,EAAoB,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,EAAC,WAAW,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC;QACxE,OAAO;YACN,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,CAAC;YACjE,iBAAiB,EAAE,OAAO;SAC1B,CAAC;IACH,CAAC,CACD,CAAC;IAEF,OAAO,CAAC,uBAAuB,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"discovery-tools.js","sourceRoot":"","sources":["../../../src/mcp/deferred/discovery-tools.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { RegisteredTool, McpServer } from "@modelcontextprotocol/server";
3
2
  export type CatalogEntry = {
4
3
  name: string;
5
4
  description: string;
@@ -52,5 +51,19 @@ export declare class DeferredToolSession {
52
51
  markDiscoveryRegistered(): void;
53
52
  isDiscoveryRegistered(): boolean;
54
53
  }
54
+ /**
55
+ * Filler / weak verbs excluded from catalog search tokens. Mirrors mpc-auth
56
+ * continuumCatalogSearchStopwords — keeps short words like "add" from flooding
57
+ * hits via add_* tool-name prefixes.
58
+ */
59
+ export declare const CATALOG_SEARCH_STOPWORDS: ReadonlySet<string>;
60
+ /** Pure catalog search used by DeferredToolSession and utterance tests. */
61
+ export declare function searchToolCatalog(entries: Iterable<Pick<CatalogEntry, 'name' | 'description' | 'groupId' | 'tags'>>, q: string, groupFilter: string | undefined, limit: number, isLoaded?: (groupId: string) => boolean): Array<{
62
+ name: string;
63
+ shortDescription: string;
64
+ group: string;
65
+ loaded: boolean;
66
+ score: number;
67
+ }>;
55
68
  export declare function mcpDeferLoadingFromEnv(): boolean;
56
69
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/mcp/deferred/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAC5E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAYvE,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACxC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B,CAAC;AAEF,qBAAa,mBAAmB;IAW9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVxB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,aAAa,CAAS;gBAGZ,MAAM,EAAE,SAAS,EAClC,YAAY,EAAE,OAAO,EACrB,OAAO,GAAE,0BAA+B;IAazC,0BAA0B,IAAI,IAAI;IAelC,SAAS,CACR,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,cAAc,EAC1B,OAAO,CAAC,EAAE;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAC,GACvD,IAAI;IAgCP,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAapD,OAAO,CAAC,eAAe;IAUvB,sBAAsB,IAAI,IAAI;IAa9B,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAcxC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAyB1C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIvC,UAAU,IAAI,KAAK,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,EAAE,OAAO,CAAC;KACrB,CAAC;IA6BF,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAC7E,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;IAmDF,cAAc,IAAI,MAAM;IAIxB,mBAAmB,IAAI,MAAM;IAQ7B,uBAAuB,IAAI,IAAI;IAI/B,qBAAqB,IAAI,OAAO;CAGhC;AAED,wBAAgB,sBAAsB,IAAI,OAAO,CAUhD"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/mcp/deferred/session.ts"],"names":[],"mappings":"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"}
@@ -56,15 +56,13 @@ export class DeferredToolSession {
56
56
  this.groupTools.set(resolvedGroup, new Set());
57
57
  }
58
58
  this.groupTools.get(resolvedGroup).add(name);
59
+ // MCP 2026-07-28: tools/list must not vary per connection. Always leave tools
60
+ // enabled; mpc-auth (host) filters what the LLM sees. Catalog + activeGroups
61
+ // remain for search_continuum_tools / activate_tool_group semantics.
59
62
  if (!this.deferLoading || options?.skipVisibility) {
60
63
  return;
61
64
  }
62
- if (this.shouldBeVisible(name, resolvedGroup)) {
63
- registered.enable();
64
- }
65
- else {
66
- registered.disable();
67
- }
65
+ registered.enable();
68
66
  }
69
67
  assignToolGroup(name, groupId) {
70
68
  const entry = this.catalog.get(name);
@@ -91,13 +89,9 @@ export class DeferredToolSession {
91
89
  if (!this.deferLoading) {
92
90
  return;
93
91
  }
92
+ // Static catalog: every registered tool stays enabled for tools/list.
94
93
  for (const entry of this.catalog.values()) {
95
- if (this.shouldBeVisible(entry.name, entry.groupId)) {
96
- entry.registered.enable();
97
- }
98
- else {
99
- entry.registered.disable();
100
- }
94
+ entry.registered.enable();
101
95
  }
102
96
  }
103
97
  activateGroup(groupId) {
@@ -105,38 +99,19 @@ export class DeferredToolSession {
105
99
  this.fullActivation.add(groupId);
106
100
  const names = [...(this.groupTools.get(groupId) ?? [])];
107
101
  for (const name of names) {
108
- const entry = this.catalog.get(name);
109
- if (entry) {
110
- entry.registered.enable();
111
- }
102
+ this.catalog.get(name)?.registered.enable();
112
103
  }
113
- void this.server.server.sendToolListChanged().catch(() => { });
104
+ // Do not send list_changed — wire catalog is static; host expands its LLM tool filter.
114
105
  return names.sort();
115
106
  }
116
107
  deactivateGroup(groupId) {
117
- if (this.pinnedGroups.has(groupId) || groupId === 'discovery') {
108
+ if (this.pinnedGroups.has(groupId) || groupId === 'discovery' || groupId === 'docs') {
118
109
  return [];
119
110
  }
120
111
  this.activeGroups.delete(groupId);
121
112
  this.fullActivation.delete(groupId);
122
113
  const names = [...(this.groupTools.get(groupId) ?? [])];
123
- for (const name of names) {
124
- const entry = this.catalog.get(name);
125
- if (entry) {
126
- if (this.pinnedGroups.has(groupId)) {
127
- if (this.shouldBeVisible(name, groupId)) {
128
- entry.registered.enable();
129
- }
130
- else {
131
- entry.registered.disable();
132
- }
133
- }
134
- else {
135
- entry.registered.disable();
136
- }
137
- }
138
- }
139
- void this.server.server.sendToolListChanged().catch(() => { });
114
+ // Keep tools enabled on the wire; only host-side "loaded" bookkeeping changes.
140
115
  return names.sort();
141
116
  }
142
117
  isGroupActive(groupId) {
@@ -153,7 +128,7 @@ export class DeferredToolSession {
153
128
  description: GROUP_DESCRIPTIONS[groupId] ?? groupId,
154
129
  toolCount: tools.size,
155
130
  loaded: this.activeGroups.has(groupId),
156
- pinned: this.pinnedGroups.has(groupId) || groupId === 'discovery',
131
+ pinned: this.pinnedGroups.has(groupId) || groupId === 'discovery' || groupId === 'docs',
157
132
  recommended: recommended.has(groupId),
158
133
  });
159
134
  }
@@ -165,50 +140,8 @@ export class DeferredToolSession {
165
140
  });
166
141
  }
167
142
  searchTools(q, groupFilter, limit) {
168
- const tokens = q
169
- .toLowerCase()
170
- .split(/\s+/)
171
- .filter(Boolean);
172
- const hits = [];
173
- for (const entry of this.catalog.values()) {
174
- if (entry.groupId === 'unknown')
175
- continue;
176
- if (groupFilter) {
177
- const gf = groupFilter.toLowerCase();
178
- if (entry.groupId !== gf &&
179
- !entry.groupId.toLowerCase().startsWith(`${gf}:`) &&
180
- !entry.groupId.toLowerCase().startsWith(gf)) {
181
- continue;
182
- }
183
- }
184
- const hay = [
185
- entry.name,
186
- entry.description,
187
- entry.groupId,
188
- ...entry.tags,
189
- ]
190
- .join(' ')
191
- .toLowerCase();
192
- let score = 0;
193
- for (const t of tokens) {
194
- if (entry.name === t)
195
- score += 10;
196
- else if (entry.name.startsWith(t))
197
- score += 5;
198
- else if (hay.includes(t))
199
- score += 1;
200
- }
201
- if (score > 0) {
202
- hits.push({
203
- name: entry.name,
204
- shortDescription: entry.description.slice(0, 160),
205
- group: entry.groupId,
206
- loaded: this.activeGroups.has(entry.groupId),
207
- score,
208
- });
209
- }
210
- }
211
- return hits.sort((a, b) => b.score - a.score).slice(0, limit);
143
+ const active = this.activeGroups;
144
+ return searchToolCatalog(this.catalog.values(), q, groupFilter, limit, groupId => active.has(groupId));
212
145
  }
213
146
  getCatalogSize() {
214
147
  return this.catalog.size;
@@ -228,6 +161,121 @@ export class DeferredToolSession {
228
161
  return this.discoveryRegistered;
229
162
  }
230
163
  }
164
+ /**
165
+ * Filler / weak verbs excluded from catalog search tokens. Mirrors mpc-auth
166
+ * continuumCatalogSearchStopwords — keeps short words like "add" from flooding
167
+ * hits via add_* tool-name prefixes.
168
+ */
169
+ export const CATALOG_SEARCH_STOPWORDS = new Set([
170
+ 'a',
171
+ 'an',
172
+ 'and',
173
+ 'any',
174
+ 'are',
175
+ 'as',
176
+ 'at',
177
+ 'be',
178
+ 'by',
179
+ 'can',
180
+ 'could',
181
+ 'did',
182
+ 'do',
183
+ 'does',
184
+ 'for',
185
+ 'from',
186
+ 'had',
187
+ 'has',
188
+ 'have',
189
+ 'hello',
190
+ 'help',
191
+ 'hey',
192
+ 'hi',
193
+ 'how',
194
+ 'i',
195
+ 'if',
196
+ 'in',
197
+ 'is',
198
+ 'it',
199
+ 'its',
200
+ 'just',
201
+ 'like',
202
+ 'me',
203
+ 'my',
204
+ 'need',
205
+ 'no',
206
+ 'not',
207
+ 'of',
208
+ 'on',
209
+ 'or',
210
+ 'please',
211
+ 'should',
212
+ 'so',
213
+ 'that',
214
+ 'thanks',
215
+ 'the',
216
+ 'there',
217
+ 'this',
218
+ 'to',
219
+ 'today',
220
+ 'want',
221
+ 'was',
222
+ 'we',
223
+ 'what',
224
+ 'when',
225
+ 'where',
226
+ 'who',
227
+ 'why',
228
+ 'will',
229
+ 'with',
230
+ 'would',
231
+ 'you',
232
+ 'your',
233
+ // Weak verb: add_* tools otherwise outrank real intent tokens (ichimoku, chain, …).
234
+ 'add',
235
+ ]);
236
+ /** Pure catalog search used by DeferredToolSession and utterance tests. */
237
+ export function searchToolCatalog(entries, q, groupFilter, limit, isLoaded = () => false) {
238
+ const tokens = q
239
+ .toLowerCase()
240
+ .split(/\s+/)
241
+ .map(t => t.replace(/^[\s.,!?;:'"()[\]]+|[\s.,!?;:'"()[\]]+$/g, ''))
242
+ .filter(t => t.length > 0 && !CATALOG_SEARCH_STOPWORDS.has(t));
243
+ const hits = [];
244
+ for (const entry of entries) {
245
+ if (entry.groupId === 'unknown')
246
+ continue;
247
+ if (groupFilter) {
248
+ const gf = groupFilter.toLowerCase();
249
+ if (entry.groupId !== gf &&
250
+ !entry.groupId.toLowerCase().startsWith(`${gf}:`) &&
251
+ !entry.groupId.toLowerCase().startsWith(gf)) {
252
+ continue;
253
+ }
254
+ }
255
+ const hay = [entry.name, entry.description, entry.groupId, ...entry.tags]
256
+ .join(' ')
257
+ .toLowerCase();
258
+ let score = 0;
259
+ for (const t of tokens) {
260
+ if (entry.name === t)
261
+ score += 10;
262
+ else if (entry.name.startsWith(t))
263
+ score += 5;
264
+ else if (hay.includes(t))
265
+ score += 1;
266
+ }
267
+ if (score > 0) {
268
+ hits.push({
269
+ name: entry.name,
270
+ shortDescription: entry.description.slice(0, 160),
271
+ group: entry.groupId,
272
+ loaded: isLoaded(entry.groupId),
273
+ score,
274
+ });
275
+ }
276
+ }
277
+ return hits.sort((a, b) => b.score - a.score).slice(0, limit);
278
+ }
231
279
  export function mcpDeferLoadingFromEnv() {
232
280
  const raw = process.env['MCP_DEFER_LOADING'];
233
281
  if (raw === undefined || raw === '') {