@cyanheads/mcp-ts-core 0.11.4 → 0.12.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 (366) hide show
  1. package/AGENTS.md +28 -24
  2. package/CLAUDE.md +28 -24
  3. package/README.md +10 -10
  4. package/biome.json +1 -1
  5. package/changelog/0.11.x/0.11.5.md +28 -0
  6. package/changelog/0.12.x/0.12.0.md +96 -0
  7. package/changelog/template.md +55 -16
  8. package/dist/cli/init.js +1 -1
  9. package/dist/cli/init.js.map +1 -1
  10. package/dist/config/index.d.ts +0 -18
  11. package/dist/config/index.d.ts.map +1 -1
  12. package/dist/config/index.js +0 -25
  13. package/dist/config/index.js.map +1 -1
  14. package/dist/core/app.d.ts +5 -7
  15. package/dist/core/app.d.ts.map +1 -1
  16. package/dist/core/app.js +18 -27
  17. package/dist/core/app.js.map +1 -1
  18. package/dist/core/context.d.ts +90 -57
  19. package/dist/core/context.d.ts.map +1 -1
  20. package/dist/core/context.js +32 -33
  21. package/dist/core/context.js.map +1 -1
  22. package/dist/core/gcPressure.d.ts.map +1 -1
  23. package/dist/core/gcPressure.js +3 -4
  24. package/dist/core/gcPressure.js.map +1 -1
  25. package/dist/core/index.d.ts +6 -7
  26. package/dist/core/index.d.ts.map +1 -1
  27. package/dist/core/index.js +10 -2
  28. package/dist/core/index.js.map +1 -1
  29. package/dist/core/serverManifest.d.ts +1 -3
  30. package/dist/core/serverManifest.d.ts.map +1 -1
  31. package/dist/core/serverManifest.js +9 -4
  32. package/dist/core/serverManifest.js.map +1 -1
  33. package/dist/core/worker.d.ts.map +1 -1
  34. package/dist/core/worker.js +32 -35
  35. package/dist/core/worker.js.map +1 -1
  36. package/dist/logs/combined.log +10 -0
  37. package/dist/logs/error.log +6 -0
  38. package/dist/logs/interactions.log +0 -0
  39. package/dist/mcp-server/inputRequired.d.ts +52 -0
  40. package/dist/mcp-server/inputRequired.d.ts.map +1 -0
  41. package/dist/mcp-server/inputRequired.js +76 -0
  42. package/dist/mcp-server/inputRequired.js.map +1 -0
  43. package/dist/mcp-server/notifications.d.ts +33 -31
  44. package/dist/mcp-server/notifications.d.ts.map +1 -1
  45. package/dist/mcp-server/notifications.js +34 -26
  46. package/dist/mcp-server/notifications.js.map +1 -1
  47. package/dist/mcp-server/prompts/prompt-registration.d.ts +2 -2
  48. package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -1
  49. package/dist/mcp-server/prompts/prompt-registration.js +15 -5
  50. package/dist/mcp-server/prompts/prompt-registration.js.map +1 -1
  51. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts +1 -1
  52. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts.map +1 -1
  53. package/dist/mcp-server/resources/resource-registration.d.ts +3 -3
  54. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
  55. package/dist/mcp-server/resources/resource-registration.js +8 -15
  56. package/dist/mcp-server/resources/resource-registration.js.map +1 -1
  57. package/dist/mcp-server/resources/resourceSubscriptions.d.ts +45 -0
  58. package/dist/mcp-server/resources/resourceSubscriptions.d.ts.map +1 -0
  59. package/dist/mcp-server/resources/resourceSubscriptions.js +51 -0
  60. package/dist/mcp-server/resources/resourceSubscriptions.js.map +1 -0
  61. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +3 -5
  62. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -1
  63. package/dist/mcp-server/resources/utils/resourceDefinition.js +1 -1
  64. package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -1
  65. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +8 -15
  66. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  67. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +21 -22
  68. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  69. package/dist/mcp-server/server.d.ts +12 -21
  70. package/dist/mcp-server/server.d.ts.map +1 -1
  71. package/dist/mcp-server/server.js +38 -28
  72. package/dist/mcp-server/server.js.map +1 -1
  73. package/dist/mcp-server/tools/tool-registration.d.ts +11 -33
  74. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
  75. package/dist/mcp-server/tools/tool-registration.js +17 -243
  76. package/dist/mcp-server/tools/tool-registration.js.map +1 -1
  77. package/dist/mcp-server/tools/utils/toolDefinition.d.ts +1 -3
  78. package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -1
  79. package/dist/mcp-server/tools/utils/toolDefinition.js +48 -1
  80. package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -1
  81. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +46 -20
  82. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  83. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +131 -25
  84. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  85. package/dist/mcp-server/transports/ITransport.d.ts +2 -2
  86. package/dist/mcp-server/transports/ITransport.d.ts.map +1 -1
  87. package/dist/mcp-server/transports/auth/authFactory.js +1 -1
  88. package/dist/mcp-server/transports/auth/authFactory.js.map +1 -1
  89. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +1 -1
  90. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -1
  91. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -1
  92. package/dist/mcp-server/transports/auth/lib/authUtils.js +5 -13
  93. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -1
  94. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +5 -11
  95. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -1
  96. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -1
  97. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +9 -22
  98. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -1
  99. package/dist/mcp-server/transports/heartbeat.d.ts.map +1 -1
  100. package/dist/mcp-server/transports/heartbeat.js +4 -8
  101. package/dist/mcp-server/transports/heartbeat.js.map +1 -1
  102. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -1
  103. package/dist/mcp-server/transports/http/httpErrorHandler.js +6 -24
  104. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -1
  105. package/dist/mcp-server/transports/http/httpServer.d.ts +3 -3
  106. package/dist/mcp-server/transports/http/httpServer.d.ts.map +1 -1
  107. package/dist/mcp-server/transports/http/httpServer.js +15 -32
  108. package/dist/mcp-server/transports/http/httpServer.js.map +1 -1
  109. package/dist/mcp-server/transports/http/httpTransport.d.ts +25 -8
  110. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
  111. package/dist/mcp-server/transports/http/httpTransport.js +156 -310
  112. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
  113. package/dist/mcp-server/transports/http/landing-page/assets/styles.d.ts.map +1 -1
  114. package/dist/mcp-server/transports/http/landing-page/assets/styles.js +0 -1
  115. package/dist/mcp-server/transports/http/landing-page/assets/styles.js.map +1 -1
  116. package/dist/mcp-server/transports/http/landing-page/handler.d.ts.map +1 -1
  117. package/dist/mcp-server/transports/http/landing-page/handler.js +4 -8
  118. package/dist/mcp-server/transports/http/landing-page/handler.js.map +1 -1
  119. package/dist/mcp-server/transports/http/landing-page/sections/tools.js +0 -2
  120. package/dist/mcp-server/transports/http/landing-page/sections/tools.js.map +1 -1
  121. package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts.map +1 -1
  122. package/dist/mcp-server/transports/http/protectedResourceMetadata.js +2 -6
  123. package/dist/mcp-server/transports/http/protectedResourceMetadata.js.map +1 -1
  124. package/dist/mcp-server/transports/http/robotsTxt.js +2 -2
  125. package/dist/mcp-server/transports/http/robotsTxt.js.map +1 -1
  126. package/dist/mcp-server/transports/http/serverCard.d.ts.map +1 -1
  127. package/dist/mcp-server/transports/http/serverCard.js +2 -6
  128. package/dist/mcp-server/transports/http/serverCard.js.map +1 -1
  129. package/dist/mcp-server/transports/http/sessionStore.d.ts +48 -45
  130. package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -1
  131. package/dist/mcp-server/transports/http/sessionStore.js +141 -185
  132. package/dist/mcp-server/transports/http/sessionStore.js.map +1 -1
  133. package/dist/mcp-server/transports/manager.d.ts +12 -4
  134. package/dist/mcp-server/transports/manager.d.ts.map +1 -1
  135. package/dist/mcp-server/transports/manager.js +35 -33
  136. package/dist/mcp-server/transports/manager.js.map +1 -1
  137. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +24 -31
  138. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -1
  139. package/dist/mcp-server/transports/stdio/stdioTransport.js +23 -38
  140. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -1
  141. package/dist/mcp-server/types.d.ts +25 -0
  142. package/dist/mcp-server/types.d.ts.map +1 -0
  143. package/dist/mcp-server/types.js +10 -0
  144. package/dist/mcp-server/types.js.map +1 -0
  145. package/dist/services/canvas/core/CanvasInstance.d.ts +2 -2
  146. package/dist/services/canvas/core/CanvasInstance.d.ts.map +1 -1
  147. package/dist/services/canvas/core/CanvasInstance.js.map +1 -1
  148. package/dist/services/canvas/core/CanvasRegistry.d.ts +4 -4
  149. package/dist/services/canvas/core/CanvasRegistry.d.ts.map +1 -1
  150. package/dist/services/canvas/core/CanvasRegistry.js +8 -18
  151. package/dist/services/canvas/core/CanvasRegistry.js.map +1 -1
  152. package/dist/services/canvas/core/DataCanvas.d.ts +5 -5
  153. package/dist/services/canvas/core/DataCanvas.d.ts.map +1 -1
  154. package/dist/services/canvas/core/DataCanvas.js +2 -3
  155. package/dist/services/canvas/core/DataCanvas.js.map +1 -1
  156. package/dist/services/canvas/core/IDataCanvasProvider.d.ts +11 -11
  157. package/dist/services/canvas/core/IDataCanvasProvider.d.ts.map +1 -1
  158. package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts +11 -11
  159. package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
  160. package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +4 -10
  161. package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
  162. package/dist/services/llm/providers/openrouter.provider.d.ts.map +1 -1
  163. package/dist/services/llm/providers/openrouter.provider.js +2 -5
  164. package/dist/services/llm/providers/openrouter.provider.js.map +1 -1
  165. package/dist/services/mirror/core/defineMirror.js +1 -1
  166. package/dist/services/mirror/core/defineMirror.js.map +1 -1
  167. package/dist/services/mirror/types.d.ts +5 -5
  168. package/dist/services/mirror/types.d.ts.map +1 -1
  169. package/dist/services/speech/providers/elevenlabs.provider.js +1 -1
  170. package/dist/services/speech/providers/elevenlabs.provider.js.map +1 -1
  171. package/dist/services/speech/providers/whisper.provider.js +1 -1
  172. package/dist/services/speech/providers/whisper.provider.js.map +1 -1
  173. package/dist/storage/core/StorageService.d.ts +1 -1
  174. package/dist/storage/core/StorageService.d.ts.map +1 -1
  175. package/dist/storage/core/StorageService.js +12 -20
  176. package/dist/storage/core/StorageService.js.map +1 -1
  177. package/dist/storage/core/storageFactory.d.ts.map +1 -1
  178. package/dist/storage/core/storageFactory.js.map +1 -1
  179. package/dist/storage/core/storageValidation.d.ts +1 -1
  180. package/dist/storage/core/storageValidation.d.ts.map +1 -1
  181. package/dist/storage/core/storageValidation.js +2 -2
  182. package/dist/storage/core/storageValidation.js.map +1 -1
  183. package/dist/storage/providers/cloudflare/d1Provider.d.ts +1 -1
  184. package/dist/storage/providers/cloudflare/d1Provider.d.ts.map +1 -1
  185. package/dist/storage/providers/cloudflare/d1Provider.js +4 -12
  186. package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -1
  187. package/dist/storage/providers/cloudflare/kvProvider.d.ts +1 -1
  188. package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -1
  189. package/dist/storage/providers/cloudflare/kvProvider.js +3 -8
  190. package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -1
  191. package/dist/storage/providers/cloudflare/r2Provider.d.ts +1 -1
  192. package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -1
  193. package/dist/storage/providers/cloudflare/r2Provider.js +3 -8
  194. package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -1
  195. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +1 -1
  196. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -1
  197. package/dist/storage/providers/inMemory/inMemoryProvider.js +2 -4
  198. package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -1
  199. package/dist/testing/index.d.ts +35 -12
  200. package/dist/testing/index.d.ts.map +1 -1
  201. package/dist/testing/index.js +53 -38
  202. package/dist/testing/index.js.map +1 -1
  203. package/dist/testing/vitest.d.ts +1 -1
  204. package/dist/testing/vitest.d.ts.map +1 -1
  205. package/dist/types-global/errors.d.ts +28 -15
  206. package/dist/types-global/errors.d.ts.map +1 -1
  207. package/dist/types-global/errors.js +8 -1
  208. package/dist/types-global/errors.js.map +1 -1
  209. package/dist/utils/formatting/diffFormatter.d.ts +5 -5
  210. package/dist/utils/formatting/diffFormatter.d.ts.map +1 -1
  211. package/dist/utils/formatting/diffFormatter.js +7 -20
  212. package/dist/utils/formatting/diffFormatter.js.map +1 -1
  213. package/dist/utils/formatting/tableFormatter.d.ts +3 -3
  214. package/dist/utils/formatting/tableFormatter.d.ts.map +1 -1
  215. package/dist/utils/formatting/tableFormatter.js +6 -17
  216. package/dist/utils/formatting/tableFormatter.js.map +1 -1
  217. package/dist/utils/formatting/treeFormatter.d.ts +3 -3
  218. package/dist/utils/formatting/treeFormatter.d.ts.map +1 -1
  219. package/dist/utils/formatting/treeFormatter.js +5 -18
  220. package/dist/utils/formatting/treeFormatter.js.map +1 -1
  221. package/dist/utils/index.d.ts +4 -2
  222. package/dist/utils/index.d.ts.map +1 -1
  223. package/dist/utils/index.js +2 -2
  224. package/dist/utils/index.js.map +1 -1
  225. package/dist/utils/internal/error-handler/errorHandler.d.ts +1 -1
  226. package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -1
  227. package/dist/utils/internal/error-handler/errorHandler.js +23 -11
  228. package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
  229. package/dist/utils/internal/error-handler/types.d.ts +10 -13
  230. package/dist/utils/internal/error-handler/types.d.ts.map +1 -1
  231. package/dist/utils/internal/logger.d.ts +3 -3
  232. package/dist/utils/internal/logger.d.ts.map +1 -1
  233. package/dist/utils/internal/logger.js +11 -5
  234. package/dist/utils/internal/logger.js.map +1 -1
  235. package/dist/utils/internal/performance.d.ts +1 -1
  236. package/dist/utils/internal/performance.d.ts.map +1 -1
  237. package/dist/utils/internal/performance.js +57 -13
  238. package/dist/utils/internal/performance.js.map +1 -1
  239. package/dist/utils/internal/requestContext.d.ts +79 -55
  240. package/dist/utils/internal/requestContext.d.ts.map +1 -1
  241. package/dist/utils/internal/requestContext.js +77 -32
  242. package/dist/utils/internal/requestContext.js.map +1 -1
  243. package/dist/utils/metrics/tokenCounter.d.ts +3 -3
  244. package/dist/utils/metrics/tokenCounter.d.ts.map +1 -1
  245. package/dist/utils/metrics/tokenCounter.js.map +1 -1
  246. package/dist/utils/network/fetchWithTimeout.d.ts +2 -2
  247. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
  248. package/dist/utils/network/fetchWithTimeout.js +8 -24
  249. package/dist/utils/network/fetchWithTimeout.js.map +1 -1
  250. package/dist/utils/network/retry.d.ts +2 -2
  251. package/dist/utils/network/retry.d.ts.map +1 -1
  252. package/dist/utils/overflow/outlineOnOverflow.d.ts +1 -1
  253. package/dist/utils/overflow/outlineOnOverflow.d.ts.map +1 -1
  254. package/dist/utils/pagination/pagination.d.ts +3 -3
  255. package/dist/utils/pagination/pagination.d.ts.map +1 -1
  256. package/dist/utils/pagination/pagination.js +3 -3
  257. package/dist/utils/pagination/pagination.js.map +1 -1
  258. package/dist/utils/parsing/csvParser.d.ts +2 -2
  259. package/dist/utils/parsing/csvParser.d.ts.map +1 -1
  260. package/dist/utils/parsing/csvParser.js +4 -8
  261. package/dist/utils/parsing/csvParser.js.map +1 -1
  262. package/dist/utils/parsing/dateParser.d.ts +3 -3
  263. package/dist/utils/parsing/dateParser.d.ts.map +1 -1
  264. package/dist/utils/parsing/dateParser.js +3 -2
  265. package/dist/utils/parsing/dateParser.js.map +1 -1
  266. package/dist/utils/parsing/frontmatterParser.d.ts +2 -2
  267. package/dist/utils/parsing/frontmatterParser.d.ts.map +1 -1
  268. package/dist/utils/parsing/frontmatterParser.js +7 -10
  269. package/dist/utils/parsing/frontmatterParser.js.map +1 -1
  270. package/dist/utils/parsing/htmlExtractor.d.ts +2 -2
  271. package/dist/utils/parsing/htmlExtractor.d.ts.map +1 -1
  272. package/dist/utils/parsing/htmlExtractor.js +6 -11
  273. package/dist/utils/parsing/htmlExtractor.js.map +1 -1
  274. package/dist/utils/parsing/jsonParser.d.ts +2 -2
  275. package/dist/utils/parsing/jsonParser.d.ts.map +1 -1
  276. package/dist/utils/parsing/jsonParser.js +4 -8
  277. package/dist/utils/parsing/jsonParser.js.map +1 -1
  278. package/dist/utils/parsing/pdfParser.d.ts +10 -10
  279. package/dist/utils/parsing/pdfParser.d.ts.map +1 -1
  280. package/dist/utils/parsing/pdfParser.js +26 -89
  281. package/dist/utils/parsing/pdfParser.js.map +1 -1
  282. package/dist/utils/parsing/xmlParser.d.ts +2 -2
  283. package/dist/utils/parsing/xmlParser.d.ts.map +1 -1
  284. package/dist/utils/parsing/xmlParser.js +4 -8
  285. package/dist/utils/parsing/xmlParser.js.map +1 -1
  286. package/dist/utils/parsing/yamlParser.d.ts +2 -2
  287. package/dist/utils/parsing/yamlParser.d.ts.map +1 -1
  288. package/dist/utils/parsing/yamlParser.js +4 -8
  289. package/dist/utils/parsing/yamlParser.js.map +1 -1
  290. package/dist/utils/scheduling/scheduler.d.ts.map +1 -1
  291. package/dist/utils/scheduling/scheduler.js +5 -6
  292. package/dist/utils/scheduling/scheduler.js.map +1 -1
  293. package/dist/utils/security/rateLimiter.d.ts +2 -2
  294. package/dist/utils/security/rateLimiter.d.ts.map +1 -1
  295. package/dist/utils/security/rateLimiter.js +1 -1
  296. package/dist/utils/security/rateLimiter.js.map +1 -1
  297. package/dist/utils/telemetry/attributes.d.ts +23 -7
  298. package/dist/utils/telemetry/attributes.d.ts.map +1 -1
  299. package/dist/utils/telemetry/attributes.js +23 -10
  300. package/dist/utils/telemetry/attributes.js.map +1 -1
  301. package/dist/utils/telemetry/trace.d.ts +3 -3
  302. package/dist/utils/telemetry/trace.d.ts.map +1 -1
  303. package/dist/utils/telemetry/trace.js +4 -2
  304. package/dist/utils/telemetry/trace.js.map +1 -1
  305. package/package.json +22 -26
  306. package/scripts/lint-mcp.ts +1 -3
  307. package/scripts/lint-packaging.ts +1 -1
  308. package/skills/add-service/SKILL.md +2 -2
  309. package/skills/add-test/SKILL.md +42 -20
  310. package/skills/add-tool/SKILL.md +68 -19
  311. package/skills/api-canvas/SKILL.md +2 -2
  312. package/skills/api-config/SKILL.md +1 -11
  313. package/skills/api-context/SKILL.md +175 -111
  314. package/skills/api-linter/SKILL.md +2 -2
  315. package/skills/api-telemetry/SKILL.md +8 -12
  316. package/skills/api-testing/SKILL.md +53 -52
  317. package/skills/code-simplifier/SKILL.md +2 -2
  318. package/skills/design-mcp-server/SKILL.md +34 -18
  319. package/skills/field-test/SKILL.md +4 -2
  320. package/skills/git-wrapup/SKILL.md +3 -3
  321. package/skills/polish-docs-meta/SKILL.md +1 -1
  322. package/skills/polish-docs-meta/references/agent-protocol.md +2 -2
  323. package/skills/polish-docs-meta/references/readme.md +1 -1
  324. package/skills/release-and-publish/SKILL.md +3 -1
  325. package/skills/report-issue-framework/SKILL.md +2 -2
  326. package/skills/report-issue-local/SKILL.md +2 -2
  327. package/skills/security-pass/SKILL.md +16 -14
  328. package/templates/.github/CODE_OF_CONDUCT.md +28 -0
  329. package/templates/.github/CONTRIBUTING.md +50 -0
  330. package/templates/.github/SECURITY.md +24 -0
  331. package/templates/AGENTS.md +6 -6
  332. package/templates/CLAUDE.md +6 -6
  333. package/templates/changelog/template.md +55 -16
  334. package/templates/tests/resources/echo.resource.test.ts +16 -9
  335. package/dist/mcp-server/elicitation.d.ts +0 -64
  336. package/dist/mcp-server/elicitation.d.ts.map +0 -1
  337. package/dist/mcp-server/elicitation.js +0 -81
  338. package/dist/mcp-server/elicitation.js.map +0 -1
  339. package/dist/mcp-server/protocolSession.d.ts +0 -34
  340. package/dist/mcp-server/protocolSession.d.ts.map +0 -1
  341. package/dist/mcp-server/protocolSession.js +0 -13
  342. package/dist/mcp-server/protocolSession.js.map +0 -1
  343. package/dist/mcp-server/tasks/core/evictingTaskMessageQueue.d.ts +0 -53
  344. package/dist/mcp-server/tasks/core/evictingTaskMessageQueue.d.ts.map +0 -1
  345. package/dist/mcp-server/tasks/core/evictingTaskMessageQueue.js +0 -65
  346. package/dist/mcp-server/tasks/core/evictingTaskMessageQueue.js.map +0 -1
  347. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts +0 -70
  348. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts.map +0 -1
  349. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js +0 -130
  350. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js.map +0 -1
  351. package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts +0 -109
  352. package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts.map +0 -1
  353. package/dist/mcp-server/tasks/core/storageBackedTaskStore.js +0 -209
  354. package/dist/mcp-server/tasks/core/storageBackedTaskStore.js.map +0 -1
  355. package/dist/mcp-server/tasks/core/taskManager.d.ts +0 -91
  356. package/dist/mcp-server/tasks/core/taskManager.d.ts.map +0 -1
  357. package/dist/mcp-server/tasks/core/taskManager.js +0 -210
  358. package/dist/mcp-server/tasks/core/taskManager.js.map +0 -1
  359. package/dist/mcp-server/tasks/core/taskTypes.d.ts +0 -18
  360. package/dist/mcp-server/tasks/core/taskTypes.d.ts.map +0 -1
  361. package/dist/mcp-server/tasks/core/taskTypes.js +0 -20
  362. package/dist/mcp-server/tasks/core/taskTypes.js.map +0 -1
  363. package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts +0 -101
  364. package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts.map +0 -1
  365. package/dist/mcp-server/tasks/utils/taskToolDefinition.js +0 -14
  366. package/dist/mcp-server/tasks/utils/taskToolDefinition.js.map +0 -1
@@ -1,91 +0,0 @@
1
- import type { config as configType } from '../../../config/index.js';
2
- import type { StorageService } from '../../../storage/core/StorageService.js';
3
- import type { RequestContext } from '../../../utils/internal/requestContext.js';
4
- import { type TaskMessageQueue, type TaskStore } from './taskTypes.js';
5
- /**
6
- * Singleton service that manages task state and message queues for the MCP server.
7
- *
8
- * The TaskManager provides:
9
- * - A shared TaskStore for creating, tracking, and completing tasks
10
- * - A shared TaskMessageQueue for side-channel message delivery
11
- * - Cleanup methods for graceful shutdown
12
- *
13
- * The store type is determined by configuration:
14
- * - `in-memory`: Fast, suitable for development (data lost on restart)
15
- * - `storage`: Persistent, uses configured StorageService backend
16
- *
17
- * @example
18
- * ```typescript
19
- * // Inject via DI
20
- * constructor(@inject(TaskManagerToken) private taskManager: TaskManager) {}
21
- *
22
- * // Access stores
23
- * const taskStore = this.taskManager.getTaskStore();
24
- * const messageQueue = this.taskManager.getMessageQueue();
25
- * ```
26
- *
27
- * @experimental
28
- */
29
- export declare class TaskManager {
30
- private readonly taskStore;
31
- private readonly inMemoryTaskStore;
32
- private readonly messageQueue;
33
- private readonly storeType;
34
- private isShuttingDown;
35
- constructor(config: typeof configType, storageService: StorageService);
36
- /**
37
- * Returns the TaskStore instance for managing task lifecycle.
38
- *
39
- * The TaskStore handles:
40
- * - Task creation with TTL and poll intervals
41
- * - Status updates (working, input_required, completed, failed, cancelled)
42
- * - Result storage and retrieval
43
- * - Task listing with pagination
44
- *
45
- * @returns The singleton TaskStore instance
46
- */
47
- getTaskStore(): TaskStore;
48
- /**
49
- * Returns the TaskMessageQueue instance for side-channel messaging.
50
- *
51
- * The message queue enables:
52
- * - Queuing requests/notifications for delivery via tasks/result
53
- * - FIFO ordering per task
54
- * - Atomic enqueue with size limits
55
- *
56
- * @returns The singleton TaskMessageQueue instance
57
- */
58
- getMessageQueue(): TaskMessageQueue;
59
- /**
60
- * Returns the store type currently in use.
61
- *
62
- * @returns 'in-memory' or 'storage'
63
- */
64
- getStoreType(): 'in-memory' | 'storage';
65
- /**
66
- * Performs cleanup of task resources.
67
- *
68
- * Should be called during graceful server shutdown to:
69
- * - Cancel cleanup timers in the in-memory task store
70
- * - Clear any pending message queues
71
- *
72
- * Note: Storage-backed task stores don't require cleanup as data persists.
73
- *
74
- * @param context - Request context for logging
75
- */
76
- cleanup(context?: RequestContext): void;
77
- /**
78
- * Returns the current task count (for debugging/monitoring).
79
- * Only available for in-memory store; returns `null` for storage-backed store.
80
- *
81
- * @returns The number of tasks currently tracked, or `null` if unavailable
82
- */
83
- getTaskCount(): number | null;
84
- /**
85
- * Checks if the TaskManager is shutting down.
86
- *
87
- * @returns True if cleanup has been initiated
88
- */
89
- isCleaningUp(): boolean;
90
- }
91
- //# sourceMappingURL=taskManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taskManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/core/taskManager.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAOzE,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAiFxB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,cAAc,CAAS;IAE/B,YAAY,MAAM,EAAE,OAAO,UAAU,EAAE,cAAc,EAAE,cAAc,EA4CpE;IAED;;;;;;;;;;OAUG;IACI,YAAY,IAAI,SAAS,CAE/B;IAED;;;;;;;;;OASG;IACI,eAAe,IAAI,gBAAgB,CAEzC;IAED;;;;OAIG;IACI,YAAY,IAAI,WAAW,GAAG,SAAS,CAE7C;IAED;;;;;;;;;;OAUG;IACI,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAqB7C;IAED;;;;;OAKG;IACI,YAAY,IAAI,MAAM,GAAG,IAAI,CAMnC;IAED;;;;OAIG;IACI,YAAY,IAAI,OAAO,CAE7B;CACF"}
@@ -1,210 +0,0 @@
1
- import { logger } from '../../../utils/internal/logger.js';
2
- import { idGenerator } from '../../../utils/security/idGenerator.js';
3
- import { ATTR_MCP_TASK_STATUS, ATTR_MCP_TASK_STORE_TYPE } from '../../../utils/telemetry/attributes.js';
4
- import { createCounter, createObservableGauge } from '../../../utils/telemetry/metrics.js';
5
- import { EvictingTaskMessageQueue } from './evictingTaskMessageQueue.js';
6
- import { SessionAwareTaskStore } from './sessionAwareTaskStore.js';
7
- import { StorageBackedTaskStore } from './storageBackedTaskStore.js';
8
- import { DEFAULT_AUTO_TASK_TTL_MS, InMemoryTaskMessageQueue, InMemoryTaskStore, } from './taskTypes.js';
9
- // ---------------------------------------------------------------------------
10
- // Task lifecycle metrics
11
- // ---------------------------------------------------------------------------
12
- let taskCreatedCounter;
13
- let taskStatusCounter;
14
- function getTaskMetrics() {
15
- taskCreatedCounter ??= createCounter('mcp.tasks.created', 'Total tasks created', '{tasks}');
16
- taskStatusCounter ??= createCounter('mcp.tasks.status_changes', 'Total task status transitions', '{transitions}');
17
- return { taskCreatedCounter, taskStatusCounter };
18
- }
19
- /**
20
- * Wraps a TaskStore to record lifecycle metrics on create, status update,
21
- * and result storage. Delegates all actual logic to the inner store.
22
- */
23
- class InstrumentedTaskStore {
24
- inner;
25
- storeTypeLabel;
26
- constructor(inner, storeTypeLabel) {
27
- this.inner = inner;
28
- this.storeTypeLabel = storeTypeLabel;
29
- }
30
- async createTask(taskParams, requestId, request, sessionId) {
31
- const task = await this.inner.createTask(taskParams, requestId, request, sessionId);
32
- getTaskMetrics().taskCreatedCounter.add(1, {
33
- [ATTR_MCP_TASK_STORE_TYPE]: this.storeTypeLabel,
34
- });
35
- return task;
36
- }
37
- async storeTaskResult(taskId, status, result, sessionId) {
38
- await this.inner.storeTaskResult(taskId, status, result, sessionId);
39
- getTaskMetrics().taskStatusCounter.add(1, {
40
- [ATTR_MCP_TASK_STATUS]: status,
41
- [ATTR_MCP_TASK_STORE_TYPE]: this.storeTypeLabel,
42
- });
43
- }
44
- async updateTaskStatus(taskId, status, statusMessage, sessionId) {
45
- await this.inner.updateTaskStatus(taskId, status, statusMessage, sessionId);
46
- getTaskMetrics().taskStatusCounter.add(1, {
47
- [ATTR_MCP_TASK_STATUS]: status,
48
- [ATTR_MCP_TASK_STORE_TYPE]: this.storeTypeLabel,
49
- });
50
- }
51
- getTask(taskId, sessionId) {
52
- return this.inner.getTask(taskId, sessionId);
53
- }
54
- getTaskResult(taskId, sessionId) {
55
- return this.inner.getTaskResult(taskId, sessionId);
56
- }
57
- listTasks(cursor, sessionId) {
58
- return this.inner.listTasks(cursor, sessionId);
59
- }
60
- }
61
- /**
62
- * Singleton service that manages task state and message queues for the MCP server.
63
- *
64
- * The TaskManager provides:
65
- * - A shared TaskStore for creating, tracking, and completing tasks
66
- * - A shared TaskMessageQueue for side-channel message delivery
67
- * - Cleanup methods for graceful shutdown
68
- *
69
- * The store type is determined by configuration:
70
- * - `in-memory`: Fast, suitable for development (data lost on restart)
71
- * - `storage`: Persistent, uses configured StorageService backend
72
- *
73
- * @example
74
- * ```typescript
75
- * // Inject via DI
76
- * constructor(@inject(TaskManagerToken) private taskManager: TaskManager) {}
77
- *
78
- * // Access stores
79
- * const taskStore = this.taskManager.getTaskStore();
80
- * const messageQueue = this.taskManager.getMessageQueue();
81
- * ```
82
- *
83
- * @experimental
84
- */
85
- export class TaskManager {
86
- taskStore;
87
- inMemoryTaskStore = null;
88
- messageQueue;
89
- storeType;
90
- isShuttingDown = false;
91
- constructor(config, storageService) {
92
- this.storeType = config.tasks.storeType;
93
- // The SDK's queue only ever deletes on `dequeueAll`, so a task the client
94
- // abandons strands its queue for the life of the process. Wrapping it
95
- // bounds queue lifetime by the same TTL the task store applies.
96
- this.messageQueue = new EvictingTaskMessageQueue(new InMemoryTaskMessageQueue(), config.tasks.defaultTtlMs ?? DEFAULT_AUTO_TASK_TTL_MS);
97
- let baseStore;
98
- if (this.storeType === 'storage') {
99
- baseStore = new StorageBackedTaskStore(storageService, {
100
- tenantId: config.tasks.tenantId,
101
- defaultTtl: config.tasks.defaultTtlMs ?? null,
102
- });
103
- }
104
- else {
105
- this.inMemoryTaskStore = new InMemoryTaskStore();
106
- // Wrap with session ownership enforcement — the SDK's InMemoryTaskStore
107
- // ignores sessionId parameters, so SessionAwareTaskStore adds that layer.
108
- baseStore = new SessionAwareTaskStore(this.inMemoryTaskStore);
109
- }
110
- // Wrap with lifecycle metrics (outermost layer)
111
- this.taskStore = new InstrumentedTaskStore(baseStore, this.storeType);
112
- logger.info(`TaskManager initialized with ${this.storeType} task store`, {
113
- operation: 'TaskManager.constructor',
114
- requestId: idGenerator.generate('req'),
115
- timestamp: new Date().toISOString(),
116
- storeType: this.storeType,
117
- ...(this.storeType === 'storage' && { tenantId: config.tasks.tenantId }),
118
- });
119
- // Wire task count to OTel observable gauge
120
- if (this.inMemoryTaskStore) {
121
- const store = this.inMemoryTaskStore;
122
- createObservableGauge('mcp.tasks.active', 'Number of active tasks in the in-memory store', () => store.getAllTasks().length, '{tasks}');
123
- }
124
- }
125
- /**
126
- * Returns the TaskStore instance for managing task lifecycle.
127
- *
128
- * The TaskStore handles:
129
- * - Task creation with TTL and poll intervals
130
- * - Status updates (working, input_required, completed, failed, cancelled)
131
- * - Result storage and retrieval
132
- * - Task listing with pagination
133
- *
134
- * @returns The singleton TaskStore instance
135
- */
136
- getTaskStore() {
137
- return this.taskStore;
138
- }
139
- /**
140
- * Returns the TaskMessageQueue instance for side-channel messaging.
141
- *
142
- * The message queue enables:
143
- * - Queuing requests/notifications for delivery via tasks/result
144
- * - FIFO ordering per task
145
- * - Atomic enqueue with size limits
146
- *
147
- * @returns The singleton TaskMessageQueue instance
148
- */
149
- getMessageQueue() {
150
- return this.messageQueue;
151
- }
152
- /**
153
- * Returns the store type currently in use.
154
- *
155
- * @returns 'in-memory' or 'storage'
156
- */
157
- getStoreType() {
158
- return this.storeType;
159
- }
160
- /**
161
- * Performs cleanup of task resources.
162
- *
163
- * Should be called during graceful server shutdown to:
164
- * - Cancel cleanup timers in the in-memory task store
165
- * - Clear any pending message queues
166
- *
167
- * Note: Storage-backed task stores don't require cleanup as data persists.
168
- *
169
- * @param context - Request context for logging
170
- */
171
- cleanup(context) {
172
- if (this.isShuttingDown) {
173
- return;
174
- }
175
- this.isShuttingDown = true;
176
- const logContext = context ?? {
177
- operation: 'TaskManager.cleanup',
178
- requestId: idGenerator.generate('req'),
179
- timestamp: new Date().toISOString(),
180
- };
181
- logger.info('Cleaning up TaskManager resources...', logContext);
182
- // Only InMemoryTaskStore has cleanup timers
183
- if (this.inMemoryTaskStore) {
184
- this.inMemoryTaskStore.cleanup();
185
- }
186
- logger.info('TaskManager cleanup complete', logContext);
187
- }
188
- /**
189
- * Returns the current task count (for debugging/monitoring).
190
- * Only available for in-memory store; returns `null` for storage-backed store.
191
- *
192
- * @returns The number of tasks currently tracked, or `null` if unavailable
193
- */
194
- getTaskCount() {
195
- if (this.inMemoryTaskStore) {
196
- return this.inMemoryTaskStore.getAllTasks().length;
197
- }
198
- // Storage-backed store doesn't have getAllTasks - would require listing
199
- return null;
200
- }
201
- /**
202
- * Checks if the TaskManager is shutting down.
203
- *
204
- * @returns True if cleanup has been initiated
205
- */
206
- isCleaningUp() {
207
- return this.isShuttingDown;
208
- }
209
- }
210
- //# sourceMappingURL=taskManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taskManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/core/taskManager.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /**
2
- * @fileoverview Re-exports task-related types from the MCP SDK experimental module.
3
- * These types are used for implementing task-based tools that support long-running
4
- * async operations with the "call-now, fetch-later" pattern.
5
- *
6
- * @experimental These APIs are experimental and may change without notice.
7
- * @module src/mcp-server/tasks/core/taskTypes
8
- */
9
- export type { CancelTaskRequest, CancelTaskResult, CreateTaskOptions, CreateTaskRequestHandlerExtra, CreateTaskResult, ErrorMessage, GetTaskPayloadRequest, GetTaskRequest, GetTaskResult, ListTasksRequest, ListTasksResult, QueuedMessage, RelatedTaskMetadata, ResponseMessage, ResultMessage, Task, TaskCreatedMessage, TaskCreationParams, TaskMessageQueue, TaskRequestHandlerExtra, TaskStatusMessage, TaskStatusNotification, TaskStatusNotificationParams, TaskStore, TaskToolExecution, ToolTaskHandler, } from '@modelcontextprotocol/sdk/experimental/tasks';
10
- export { InMemoryTaskMessageQueue, InMemoryTaskStore, isTerminal, takeResult, toArrayAsync, } from '@modelcontextprotocol/sdk/experimental/tasks';
11
- /**
12
- * TTL applied to a task when `TASK_STORE_DEFAULT_TTL_MS` is unset.
13
- *
14
- * Shared so task creation and the bookkeeping that must expire alongside it
15
- * (ownership rows, message queues) cannot drift onto different lifetimes.
16
- */
17
- export declare const DEFAULT_AUTO_TASK_TTL_MS = 120000;
18
- //# sourceMappingURL=taskTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taskTypes.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/core/taskTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,6BAA6B,EAC7B,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,IAAI,EACJ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,SAAS,EACT,iBAAiB,EACjB,eAAe,GAChB,MAAM,8CAA8C,CAAC;AAItD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,8CAA8C,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,SAAU,CAAC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * @fileoverview Re-exports task-related types from the MCP SDK experimental module.
3
- * These types are used for implementing task-based tools that support long-running
4
- * async operations with the "call-now, fetch-later" pattern.
5
- *
6
- * @experimental These APIs are experimental and may change without notice.
7
- * @module src/mcp-server/tasks/core/taskTypes
8
- */
9
- // In-memory implementations (reference implementations)
10
- // Utility functions
11
- // Helper functions for processing task responses
12
- export { InMemoryTaskMessageQueue, InMemoryTaskStore, isTerminal, takeResult, toArrayAsync, } from '@modelcontextprotocol/sdk/experimental/tasks';
13
- /**
14
- * TTL applied to a task when `TASK_STORE_DEFAULT_TTL_MS` is unset.
15
- *
16
- * Shared so task creation and the bookkeeping that must expire alongside it
17
- * (ownership rows, message queues) cannot drift onto different lifetimes.
18
- */
19
- export const DEFAULT_AUTO_TASK_TTL_MS = 120_000;
20
- //# sourceMappingURL=taskTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taskTypes.js","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/core/taskTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkCH,wDAAwD;AACxD,oBAAoB;AACpB,iDAAiD;AACjD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,8CAA8C,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC"}
@@ -1,101 +0,0 @@
1
- /**
2
- * @fileoverview Defines the structure for task-based tool definitions.
3
- * Task tools support long-running async operations with the MCP Tasks API,
4
- * enabling "call-now, fetch-later" execution patterns.
5
- *
6
- * @experimental These APIs are experimental and may change without notice.
7
- * @module src/mcp-server/tasks/utils/taskToolDefinition
8
- */
9
- import type { ZodObject, ZodRawShape } from 'zod';
10
- import type { TaskToolExecution, ToolTaskHandler } from '../../../mcp-server/tasks/core/taskTypes.js';
11
- import type { ToolAnnotations } from '../../../mcp-server/tools/utils/toolDefinition.js';
12
- /**
13
- * Represents a task-based tool definition for long-running async operations.
14
- *
15
- * Unlike regular tools that execute synchronously and return immediately,
16
- * task tools create durable task handles that clients can poll for status
17
- * and retrieve results after completion.
18
- *
19
- * Task tools are registered via `server.experimental.tasks.registerToolTask()`
20
- * and must implement three handlers:
21
- * - `createTask`: Called when the tool is invoked, creates the task and starts work
22
- * - `getTask`: Called to poll task status (tasks/get)
23
- * - `getTaskResult`: Called to retrieve results (tasks/result)
24
- *
25
- * @example
26
- * ```typescript
27
- * const myTaskTool: TaskToolDefinition<typeof InputSchema, typeof OutputSchema> = {
28
- * name: 'long_running_analysis',
29
- * description: 'Performs a long-running analysis operation',
30
- * input: z.object({ data: z.string() }),
31
- * output: z.object({ result: z.string() }),
32
- * execution: { taskSupport: 'required' },
33
- * taskHandlers: {
34
- * createTask: async (args, extra) => {
35
- * const task = await extra.taskStore.createTask({ ttl: 300000 }, ...);
36
- * startBackgroundWork(task.taskId, args);
37
- * return { task };
38
- * },
39
- * getTask: async (_args, extra) => {
40
- * return await extra.taskStore.getTask(extra.taskId);
41
- * },
42
- * getTaskResult: async (_args, extra) => {
43
- * return await extra.taskStore.getTaskResult(extra.taskId);
44
- * }
45
- * }
46
- * };
47
- * ```
48
- *
49
- * @experimental
50
- */
51
- export interface TaskToolDefinition<TInputSchema extends ZodObject<ZodRawShape>, TOutputSchema extends ZodObject<ZodRawShape>> {
52
- /** Protocol-level metadata (e.g., MCP Apps extension `_meta.ui`). */
53
- _meta?: Record<string, unknown>;
54
- /**
55
- * Optional metadata providing hints about the tool's behavior.
56
- */
57
- annotations?: ToolAnnotations;
58
- /**
59
- * A clear, concise description of what the tool does.
60
- * This is sent to the LLM to help it decide when to use the tool.
61
- */
62
- description: string;
63
- /**
64
- * Task execution configuration.
65
- *
66
- * - `taskSupport: 'required'` - Tool MUST be invoked as a task
67
- * - `taskSupport: 'optional'` - Tool can be invoked normally or as a task
68
- *
69
- * Note: `taskSupport: 'forbidden'` is not valid for task tools;
70
- * use a regular ToolDefinition instead.
71
- */
72
- execution: TaskToolExecution;
73
- /** Zod schema for input validation. All fields need `.describe()`. */
74
- input: TInputSchema;
75
- /** Programmatic unique name (snake_case). */
76
- name: string;
77
- /** Zod schema for output validation. */
78
- output?: TOutputSchema;
79
- /**
80
- * The task handlers implementing the task lifecycle.
81
- *
82
- * These handlers are called by the SDK at different points:
83
- * - `createTask`: When the tool is first invoked (tools/call with task param)
84
- * - `getTask`: When polling for status (tasks/get)
85
- * - `getTaskResult`: When retrieving results (tasks/result)
86
- */
87
- taskHandlers: ToolTaskHandler<TInputSchema>;
88
- /**
89
- * An optional, human-readable title for the tool.
90
- * If not provided, derived from `name` or `annotations.title`.
91
- */
92
- title?: string;
93
- }
94
- /**
95
- * Type guard to check if a tool definition is a task tool.
96
- *
97
- * @param def - The tool definition to check
98
- * @returns True if the definition has taskHandlers (is a TaskToolDefinition)
99
- */
100
- export declare function isTaskToolDefinition(def: unknown): def is TaskToolDefinition<ZodObject<ZodRawShape>, ZodObject<ZodRawShape>>;
101
- //# sourceMappingURL=taskToolDefinition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taskToolDefinition.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/utils/taskToolDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,kBAAkB,CACjC,YAAY,SAAS,SAAS,CAAC,WAAW,CAAC,EAC3C,aAAa,SAAS,SAAS,CAAC,WAAW,CAAC;IAE5C,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IACH,SAAS,EAAE,iBAAiB,CAAC;IAE7B,sEAAsE;IACtE,KAAK,EAAE,YAAY,CAAC;IAEpB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IAEb,wCAAwC;IACxC,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB;;;;;;;OAOG;IACH,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAE5C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAQ3E"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Type guard to check if a tool definition is a task tool.
3
- *
4
- * @param def - The tool definition to check
5
- * @returns True if the definition has taskHandlers (is a TaskToolDefinition)
6
- */
7
- export function isTaskToolDefinition(def) {
8
- return (def !== null &&
9
- typeof def === 'object' &&
10
- 'taskHandlers' in def &&
11
- def.taskHandlers !== null &&
12
- typeof def.taskHandlers === 'object');
13
- }
14
- //# sourceMappingURL=taskToolDefinition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taskToolDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/utils/taskToolDefinition.ts"],"names":[],"mappings":"AA0GA;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAY;IAEZ,OAAO,CACL,GAAG,KAAK,IAAI;QACZ,OAAO,GAAG,KAAK,QAAQ;QACvB,cAAc,IAAI,GAAG;QACrB,GAAG,CAAC,YAAY,KAAK,IAAI;QACzB,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,CACrC,CAAC;AACJ,CAAC"}