@qodo/sdk 0.13.4 → 2.0.0-next.1

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 (764) hide show
  1. package/LICENSE +31 -118
  2. package/README.md +133 -121
  3. package/bin/qodo-skills.mjs +13 -0
  4. package/bundled-skills/code-review/SKILL.md +41 -0
  5. package/bundled-skills/pr-summary/SKILL.md +59 -0
  6. package/bundled-skills/test-gen/SKILL.md +47 -0
  7. package/dist/auth/index.browser.d.ts +38 -0
  8. package/dist/auth/index.browser.d.ts.map +1 -0
  9. package/dist/auth/index.browser.js +62 -0
  10. package/dist/auth/index.browser.js.map +1 -0
  11. package/dist/auth/index.d.ts +44 -30
  12. package/dist/auth/index.d.ts.map +1 -1
  13. package/dist/auth/index.js +57 -110
  14. package/dist/auth/index.js.map +1 -1
  15. package/dist/client/AgentsClient.d.ts +33 -0
  16. package/dist/client/AgentsClient.d.ts.map +1 -0
  17. package/dist/client/AgentsClient.js +40 -0
  18. package/dist/client/AgentsClient.js.map +1 -0
  19. package/dist/client/ArtifactsClient.d.ts +43 -0
  20. package/dist/client/ArtifactsClient.d.ts.map +1 -0
  21. package/dist/client/ArtifactsClient.js +54 -0
  22. package/dist/client/ArtifactsClient.js.map +1 -0
  23. package/dist/client/BulletinClient.d.ts +45 -0
  24. package/dist/client/BulletinClient.d.ts.map +1 -0
  25. package/dist/client/BulletinClient.js +51 -0
  26. package/dist/client/BulletinClient.js.map +1 -0
  27. package/dist/client/InfoClient.d.ts +58 -0
  28. package/dist/client/InfoClient.d.ts.map +1 -0
  29. package/dist/client/InfoClient.js +135 -0
  30. package/dist/client/InfoClient.js.map +1 -0
  31. package/dist/client/PipelineClient.d.ts +162 -0
  32. package/dist/client/PipelineClient.d.ts.map +1 -0
  33. package/dist/client/PipelineClient.js +340 -0
  34. package/dist/client/PipelineClient.js.map +1 -0
  35. package/dist/client/QarRegistryClient.d.ts +396 -0
  36. package/dist/client/QarRegistryClient.d.ts.map +1 -0
  37. package/dist/client/QarRegistryClient.js +536 -0
  38. package/dist/client/QarRegistryClient.js.map +1 -0
  39. package/dist/client/QodoClient.d.ts +296 -0
  40. package/dist/client/QodoClient.d.ts.map +1 -0
  41. package/dist/client/QodoClient.js +803 -0
  42. package/dist/client/QodoClient.js.map +1 -0
  43. package/dist/client/SpecsClient.d.ts +121 -0
  44. package/dist/client/SpecsClient.d.ts.map +1 -0
  45. package/dist/client/SpecsClient.js +252 -0
  46. package/dist/client/SpecsClient.js.map +1 -0
  47. package/dist/client/StateClient.d.ts +35 -0
  48. package/dist/client/StateClient.d.ts.map +1 -0
  49. package/dist/client/StateClient.js +36 -0
  50. package/dist/client/StateClient.js.map +1 -0
  51. package/dist/client/TaskClient.d.ts +706 -0
  52. package/dist/client/TaskClient.d.ts.map +1 -0
  53. package/dist/client/TaskClient.js +2522 -0
  54. package/dist/client/TaskClient.js.map +1 -0
  55. package/dist/client/ToolClient.d.ts +278 -0
  56. package/dist/client/ToolClient.d.ts.map +1 -0
  57. package/dist/client/ToolClient.js +1139 -0
  58. package/dist/client/ToolClient.js.map +1 -0
  59. package/dist/client/a2a/index.d.ts +10 -0
  60. package/dist/client/a2a/index.d.ts.map +1 -0
  61. package/dist/client/a2a/index.js +9 -0
  62. package/dist/client/a2a/index.js.map +1 -0
  63. package/dist/client/a2a/registerA2A.d.ts +170 -0
  64. package/dist/client/a2a/registerA2A.d.ts.map +1 -0
  65. package/dist/client/a2a/registerA2A.js +85 -0
  66. package/dist/client/a2a/registerA2A.js.map +1 -0
  67. package/dist/client/connection.d.ts +893 -0
  68. package/dist/client/connection.d.ts.map +1 -0
  69. package/dist/client/connection.js +2189 -0
  70. package/dist/client/connection.js.map +1 -0
  71. package/dist/client/errors.d.ts +735 -0
  72. package/dist/client/errors.d.ts.map +1 -0
  73. package/dist/client/errors.js +921 -0
  74. package/dist/client/errors.js.map +1 -0
  75. package/dist/client/index.d.ts +26 -0
  76. package/dist/client/index.d.ts.map +1 -0
  77. package/dist/client/index.js +20 -0
  78. package/dist/client/index.js.map +1 -0
  79. package/dist/client/inlineGraph.d.ts +66 -0
  80. package/dist/client/inlineGraph.d.ts.map +1 -0
  81. package/dist/client/inlineGraph.js +500 -0
  82. package/dist/client/inlineGraph.js.map +1 -0
  83. package/dist/client/internal/thenable.d.ts +27 -0
  84. package/dist/client/internal/thenable.d.ts.map +1 -0
  85. package/dist/client/internal/thenable.js +31 -0
  86. package/dist/client/internal/thenable.js.map +1 -0
  87. package/dist/client/iterator.d.ts +32 -0
  88. package/dist/client/iterator.d.ts.map +1 -0
  89. package/dist/client/iterator.js +73 -0
  90. package/dist/client/iterator.js.map +1 -0
  91. package/dist/client/mcp/McpClientPool.browser.d.ts +76 -0
  92. package/dist/client/mcp/McpClientPool.browser.d.ts.map +1 -0
  93. package/dist/client/mcp/McpClientPool.browser.js +78 -0
  94. package/dist/client/mcp/McpClientPool.browser.js.map +1 -0
  95. package/dist/client/mcp/McpClientPool.d.ts +236 -0
  96. package/dist/client/mcp/McpClientPool.d.ts.map +1 -0
  97. package/dist/client/mcp/McpClientPool.js +585 -0
  98. package/dist/client/mcp/McpClientPool.js.map +1 -0
  99. package/dist/client/mcp/projection.d.ts +109 -0
  100. package/dist/client/mcp/projection.d.ts.map +1 -0
  101. package/dist/client/mcp/projection.js +446 -0
  102. package/dist/client/mcp/projection.js.map +1 -0
  103. package/dist/client/mcp/substituteEnv.browser.d.ts +18 -0
  104. package/dist/client/mcp/substituteEnv.browser.d.ts.map +1 -0
  105. package/dist/client/mcp/substituteEnv.browser.js +20 -0
  106. package/dist/client/mcp/substituteEnv.browser.js.map +1 -0
  107. package/dist/client/mcp/substituteEnv.d.ts +45 -0
  108. package/dist/client/mcp/substituteEnv.d.ts.map +1 -0
  109. package/dist/client/mcp/substituteEnv.js +63 -0
  110. package/dist/client/mcp/substituteEnv.js.map +1 -0
  111. package/dist/client/observers.d.ts +57 -0
  112. package/dist/client/observers.d.ts.map +1 -0
  113. package/dist/client/observers.js +203 -0
  114. package/dist/client/observers.js.map +1 -0
  115. package/dist/client/options.d.ts +269 -0
  116. package/dist/client/options.d.ts.map +1 -0
  117. package/dist/client/options.js +9 -0
  118. package/dist/client/options.js.map +1 -0
  119. package/dist/client/tools/_readlineApprovalPrompt.browser.d.ts +17 -0
  120. package/dist/client/tools/_readlineApprovalPrompt.browser.d.ts.map +1 -0
  121. package/dist/client/tools/_readlineApprovalPrompt.browser.js +24 -0
  122. package/dist/client/tools/_readlineApprovalPrompt.browser.js.map +1 -0
  123. package/dist/client/tools/_readlineApprovalPrompt.d.ts +33 -0
  124. package/dist/client/tools/_readlineApprovalPrompt.d.ts.map +1 -0
  125. package/dist/client/tools/_readlineApprovalPrompt.js +90 -0
  126. package/dist/client/tools/_readlineApprovalPrompt.js.map +1 -0
  127. package/dist/client/tools/approval.d.ts +280 -0
  128. package/dist/client/tools/approval.d.ts.map +1 -0
  129. package/dist/client/tools/approval.js +229 -0
  130. package/dist/client/tools/approval.js.map +1 -0
  131. package/dist/client/tools/bindFunctionToolDefs.d.ts +156 -0
  132. package/dist/client/tools/bindFunctionToolDefs.d.ts.map +1 -0
  133. package/dist/client/tools/bindFunctionToolDefs.js +360 -0
  134. package/dist/client/tools/bindFunctionToolDefs.js.map +1 -0
  135. package/dist/client/tools/defineFunctionTool.d.ts +277 -0
  136. package/dist/client/tools/defineFunctionTool.d.ts.map +1 -0
  137. package/dist/client/tools/defineFunctionTool.js +190 -0
  138. package/dist/client/tools/defineFunctionTool.js.map +1 -0
  139. package/dist/client/transport.browser.d.ts +20 -0
  140. package/dist/client/transport.browser.d.ts.map +1 -0
  141. package/dist/client/transport.browser.js +29 -0
  142. package/dist/client/transport.browser.js.map +1 -0
  143. package/dist/client/transport.d.ts +47 -0
  144. package/dist/client/transport.d.ts.map +1 -0
  145. package/dist/client/transport.js +102 -0
  146. package/dist/client/transport.js.map +1 -0
  147. package/dist/client/transport.shared.d.ts +30 -0
  148. package/dist/client/transport.shared.d.ts.map +1 -0
  149. package/dist/client/transport.shared.js +40 -0
  150. package/dist/client/transport.shared.js.map +1 -0
  151. package/dist/client/uuid.d.ts +32 -0
  152. package/dist/client/uuid.d.ts.map +1 -0
  153. package/dist/client/uuid.js +65 -0
  154. package/dist/client/uuid.js.map +1 -0
  155. package/dist/index.d.ts +88 -39
  156. package/dist/index.d.ts.map +1 -1
  157. package/dist/index.js +166 -43
  158. package/dist/index.js.map +1 -1
  159. package/dist/observability/attributes.d.ts +136 -0
  160. package/dist/observability/attributes.d.ts.map +1 -0
  161. package/dist/observability/attributes.js +184 -0
  162. package/dist/observability/attributes.js.map +1 -0
  163. package/dist/observability/index.d.ts +14 -0
  164. package/dist/observability/index.d.ts.map +1 -0
  165. package/dist/observability/index.js +11 -0
  166. package/dist/observability/index.js.map +1 -0
  167. package/dist/observability/resolveOTel.browser.d.ts +13 -0
  168. package/dist/observability/resolveOTel.browser.d.ts.map +1 -0
  169. package/dist/observability/resolveOTel.browser.js +14 -0
  170. package/dist/observability/resolveOTel.browser.js.map +1 -0
  171. package/dist/observability/resolveOTel.d.ts +28 -0
  172. package/dist/observability/resolveOTel.d.ts.map +1 -0
  173. package/dist/observability/resolveOTel.js +74 -0
  174. package/dist/observability/resolveOTel.js.map +1 -0
  175. package/dist/observability/spans.d.ts +198 -0
  176. package/dist/observability/spans.d.ts.map +1 -0
  177. package/dist/observability/spans.js +300 -0
  178. package/dist/observability/spans.js.map +1 -0
  179. package/dist/observability/traceContext.d.ts +51 -0
  180. package/dist/observability/traceContext.d.ts.map +1 -0
  181. package/dist/observability/traceContext.js +151 -0
  182. package/dist/observability/traceContext.js.map +1 -0
  183. package/dist/observability/transportMetrics.d.ts +58 -0
  184. package/dist/observability/transportMetrics.d.ts.map +1 -0
  185. package/dist/observability/transportMetrics.js +55 -0
  186. package/dist/observability/transportMetrics.js.map +1 -0
  187. package/dist/qar/agentSpec.d.ts +93 -0
  188. package/dist/qar/agentSpec.d.ts.map +1 -0
  189. package/dist/qar/agentSpec.js +184 -0
  190. package/dist/qar/agentSpec.js.map +1 -0
  191. package/dist/qar/clientEvents.d.ts +86 -0
  192. package/dist/qar/clientEvents.d.ts.map +1 -0
  193. package/dist/qar/clientEvents.js +36 -0
  194. package/dist/qar/clientEvents.js.map +1 -0
  195. package/dist/qar/envelopes.d.ts +227 -0
  196. package/dist/qar/envelopes.d.ts.map +1 -0
  197. package/dist/qar/envelopes.js +67 -0
  198. package/dist/qar/envelopes.js.map +1 -0
  199. package/dist/qar/generated/envelope.d.ts +332 -0
  200. package/dist/qar/generated/envelope.d.ts.map +1 -0
  201. package/dist/qar/generated/envelope.js +15 -0
  202. package/dist/qar/generated/envelope.js.map +1 -0
  203. package/dist/qar/generated/qar-info.d.ts +76 -0
  204. package/dist/qar/generated/qar-info.d.ts.map +1 -0
  205. package/dist/qar/generated/qar-info.js +15 -0
  206. package/dist/qar/generated/qar-info.js.map +1 -0
  207. package/dist/qar/generated/qodo-task-start-payload.d.ts +54 -0
  208. package/dist/qar/generated/qodo-task-start-payload.d.ts.map +1 -0
  209. package/dist/qar/generated/qodo-task-start-payload.js +15 -0
  210. package/dist/qar/generated/qodo-task-start-payload.js.map +1 -0
  211. package/dist/qar/ids.d.ts +19 -0
  212. package/dist/qar/ids.d.ts.map +1 -0
  213. package/dist/qar/ids.js +11 -0
  214. package/dist/qar/ids.js.map +1 -0
  215. package/dist/qar/index.d.ts +24 -0
  216. package/dist/qar/index.d.ts.map +1 -0
  217. package/dist/qar/index.js +16 -0
  218. package/dist/qar/index.js.map +1 -0
  219. package/dist/qar/info.d.ts +37 -0
  220. package/dist/qar/info.d.ts.map +1 -0
  221. package/dist/qar/info.js +17 -0
  222. package/dist/qar/info.js.map +1 -0
  223. package/dist/qar/json.d.ts +14 -0
  224. package/dist/qar/json.d.ts.map +1 -0
  225. package/dist/qar/json.js +9 -0
  226. package/dist/qar/json.js.map +1 -0
  227. package/dist/qar/payloads.d.ts +480 -0
  228. package/dist/qar/payloads.d.ts.map +1 -0
  229. package/dist/qar/payloads.js +37 -0
  230. package/dist/qar/payloads.js.map +1 -0
  231. package/dist/qar/specs.d.ts +604 -0
  232. package/dist/qar/specs.d.ts.map +1 -0
  233. package/dist/qar/specs.js +29 -0
  234. package/dist/qar/specs.js.map +1 -0
  235. package/dist/qar/taskEvents.d.ts +25 -0
  236. package/dist/qar/taskEvents.d.ts.map +1 -0
  237. package/dist/qar/taskEvents.js +22 -0
  238. package/dist/qar/taskEvents.js.map +1 -0
  239. package/dist/qar/trace.d.ts +12 -0
  240. package/dist/qar/trace.d.ts.map +1 -0
  241. package/dist/qar/trace.js +12 -0
  242. package/dist/qar/trace.js.map +1 -0
  243. package/dist/skills/activation.d.ts +177 -0
  244. package/dist/skills/activation.d.ts.map +1 -0
  245. package/dist/skills/activation.js +428 -0
  246. package/dist/skills/activation.js.map +1 -0
  247. package/dist/skills/cli/index.browser.d.ts +18 -0
  248. package/dist/skills/cli/index.browser.d.ts.map +1 -0
  249. package/dist/skills/cli/index.browser.js +27 -0
  250. package/dist/skills/cli/index.browser.js.map +1 -0
  251. package/dist/skills/cli/index.d.ts +37 -0
  252. package/dist/skills/cli/index.d.ts.map +1 -0
  253. package/dist/skills/cli/index.js +494 -0
  254. package/dist/skills/cli/index.js.map +1 -0
  255. package/dist/skills/events.d.ts +255 -0
  256. package/dist/skills/events.d.ts.map +1 -0
  257. package/dist/skills/events.js +224 -0
  258. package/dist/skills/events.js.map +1 -0
  259. package/dist/skills/index.d.ts +45 -0
  260. package/dist/skills/index.d.ts.map +1 -0
  261. package/dist/skills/index.js +34 -0
  262. package/dist/skills/index.js.map +1 -0
  263. package/dist/skills/inject.d.ts +57 -0
  264. package/dist/skills/inject.d.ts.map +1 -0
  265. package/dist/skills/inject.js +162 -0
  266. package/dist/skills/inject.js.map +1 -0
  267. package/dist/skills/lockfile.browser.d.ts +56 -0
  268. package/dist/skills/lockfile.browser.d.ts.map +1 -0
  269. package/dist/skills/lockfile.browser.js +55 -0
  270. package/dist/skills/lockfile.browser.js.map +1 -0
  271. package/dist/skills/lockfile.d.ts +137 -0
  272. package/dist/skills/lockfile.d.ts.map +1 -0
  273. package/dist/skills/lockfile.js +423 -0
  274. package/dist/skills/lockfile.js.map +1 -0
  275. package/dist/skills/manager.browser.d.ts +94 -0
  276. package/dist/skills/manager.browser.d.ts.map +1 -0
  277. package/dist/skills/manager.browser.js +159 -0
  278. package/dist/skills/manager.browser.js.map +1 -0
  279. package/dist/skills/manager.d.ts +362 -0
  280. package/dist/skills/manager.d.ts.map +1 -0
  281. package/dist/skills/manager.js +1386 -0
  282. package/dist/skills/manager.js.map +1 -0
  283. package/dist/skills/mcp/index.d.ts +15 -0
  284. package/dist/skills/mcp/index.d.ts.map +1 -0
  285. package/dist/skills/mcp/index.js +12 -0
  286. package/dist/skills/mcp/index.js.map +1 -0
  287. package/dist/skills/mcp/path.browser.d.ts +27 -0
  288. package/dist/skills/mcp/path.browser.d.ts.map +1 -0
  289. package/dist/skills/mcp/path.browser.js +33 -0
  290. package/dist/skills/mcp/path.browser.js.map +1 -0
  291. package/dist/skills/mcp/path.d.ts +57 -0
  292. package/dist/skills/mcp/path.d.ts.map +1 -0
  293. package/dist/skills/mcp/path.js +150 -0
  294. package/dist/skills/mcp/path.js.map +1 -0
  295. package/dist/skills/mcp/server.browser.d.ts +32 -0
  296. package/dist/skills/mcp/server.browser.d.ts.map +1 -0
  297. package/dist/skills/mcp/server.browser.js +53 -0
  298. package/dist/skills/mcp/server.browser.js.map +1 -0
  299. package/dist/skills/mcp/server.d.ts +144 -0
  300. package/dist/skills/mcp/server.d.ts.map +1 -0
  301. package/dist/skills/mcp/server.js +841 -0
  302. package/dist/skills/mcp/server.js.map +1 -0
  303. package/dist/skills/mcp/types.d.ts +72 -0
  304. package/dist/skills/mcp/types.d.ts.map +1 -0
  305. package/dist/skills/mcp/types.js +20 -0
  306. package/dist/skills/mcp/types.js.map +1 -0
  307. package/dist/skills/mcp/wireDefs.d.ts +58 -0
  308. package/dist/skills/mcp/wireDefs.d.ts.map +1 -0
  309. package/dist/skills/mcp/wireDefs.js +141 -0
  310. package/dist/skills/mcp/wireDefs.js.map +1 -0
  311. package/dist/skills/parser.d.ts +63 -0
  312. package/dist/skills/parser.d.ts.map +1 -0
  313. package/dist/skills/parser.js +755 -0
  314. package/dist/skills/parser.js.map +1 -0
  315. package/dist/skills/prefilter.d.ts +104 -0
  316. package/dist/skills/prefilter.d.ts.map +1 -0
  317. package/dist/skills/prefilter.js +398 -0
  318. package/dist/skills/prefilter.js.map +1 -0
  319. package/dist/skills/preprocess.d.ts +169 -0
  320. package/dist/skills/preprocess.d.ts.map +1 -0
  321. package/dist/skills/preprocess.js +535 -0
  322. package/dist/skills/preprocess.js.map +1 -0
  323. package/dist/skills/render.d.ts +83 -0
  324. package/dist/skills/render.d.ts.map +1 -0
  325. package/dist/skills/render.js +397 -0
  326. package/dist/skills/render.js.map +1 -0
  327. package/dist/skills/sources/index.browser.d.ts +29 -0
  328. package/dist/skills/sources/index.browser.d.ts.map +1 -0
  329. package/dist/skills/sources/index.browser.js +16 -0
  330. package/dist/skills/sources/index.browser.js.map +1 -0
  331. package/dist/skills/sources/index.d.ts +59 -0
  332. package/dist/skills/sources/index.d.ts.map +1 -0
  333. package/dist/skills/sources/index.js +471 -0
  334. package/dist/skills/sources/index.js.map +1 -0
  335. package/dist/skills/sources/walk.browser.d.ts +17 -0
  336. package/dist/skills/sources/walk.browser.d.ts.map +1 -0
  337. package/dist/skills/sources/walk.browser.js +19 -0
  338. package/dist/skills/sources/walk.browser.js.map +1 -0
  339. package/dist/skills/sources/walk.d.ts +68 -0
  340. package/dist/skills/sources/walk.d.ts.map +1 -0
  341. package/dist/skills/sources/walk.js +264 -0
  342. package/dist/skills/sources/walk.js.map +1 -0
  343. package/dist/skills/substitute.d.ts +87 -0
  344. package/dist/skills/substitute.d.ts.map +1 -0
  345. package/dist/skills/substitute.js +322 -0
  346. package/dist/skills/substitute.js.map +1 -0
  347. package/dist/skills/testing/SkillKit.browser.d.ts +62 -0
  348. package/dist/skills/testing/SkillKit.browser.d.ts.map +1 -0
  349. package/dist/skills/testing/SkillKit.browser.js +41 -0
  350. package/dist/skills/testing/SkillKit.browser.js.map +1 -0
  351. package/dist/skills/testing/SkillKit.d.ts +130 -0
  352. package/dist/skills/testing/SkillKit.d.ts.map +1 -0
  353. package/dist/skills/testing/SkillKit.js +316 -0
  354. package/dist/skills/testing/SkillKit.js.map +1 -0
  355. package/dist/skills/testing/index.d.ts +9 -0
  356. package/dist/skills/testing/index.d.ts.map +1 -0
  357. package/dist/skills/testing/index.js +8 -0
  358. package/dist/skills/testing/index.js.map +1 -0
  359. package/dist/skills/trust.d.ts +72 -0
  360. package/dist/skills/trust.d.ts.map +1 -0
  361. package/dist/skills/trust.js +183 -0
  362. package/dist/skills/trust.js.map +1 -0
  363. package/dist/skills/types.d.ts +627 -0
  364. package/dist/skills/types.d.ts.map +1 -0
  365. package/dist/skills/types.js +85 -0
  366. package/dist/skills/types.js.map +1 -0
  367. package/dist/skills/validator.d.ts +95 -0
  368. package/dist/skills/validator.d.ts.map +1 -0
  369. package/dist/skills/validator.js +486 -0
  370. package/dist/skills/validator.js.map +1 -0
  371. package/dist/tracing/PipelineTracer.d.ts +35 -22
  372. package/dist/tracing/PipelineTracer.d.ts.map +1 -1
  373. package/dist/tracing/PipelineTracer.js +106 -61
  374. package/dist/tracing/PipelineTracer.js.map +1 -1
  375. package/dist/tracing/SdkTracer.d.ts +63 -61
  376. package/dist/tracing/SdkTracer.d.ts.map +1 -1
  377. package/dist/tracing/SdkTracer.js +185 -177
  378. package/dist/tracing/SdkTracer.js.map +1 -1
  379. package/dist/tracing/index.d.ts +10 -1
  380. package/dist/tracing/index.d.ts.map +1 -1
  381. package/dist/tracing/index.js +9 -0
  382. package/dist/tracing/index.js.map +1 -1
  383. package/dist/tracing/types.d.ts +89 -16
  384. package/dist/tracing/types.d.ts.map +1 -1
  385. package/dist/tracing/types.js +17 -4
  386. package/dist/tracing/types.js.map +1 -1
  387. package/dist/types.d.ts +6 -1
  388. package/dist/types.d.ts.map +1 -1
  389. package/dist/types.js +4 -0
  390. package/dist/types.js.map +1 -1
  391. package/dist/version.d.ts.map +1 -1
  392. package/dist/version.js +10 -20
  393. package/dist/version.js.map +1 -1
  394. package/package.json +53 -39
  395. package/.claude/skills/qodo-agent/SKILL.md +0 -974
  396. package/.claude/skills/qodo-agent/assets/programmatic-agent.ts +0 -407
  397. package/.claude/skills/qodo-agent/references/builtin-tools.md +0 -342
  398. package/.claude/skills/qodo-agent/references/common-issues.md +0 -537
  399. package/bin/rg +0 -0
  400. package/dist/api/agent.d.ts +0 -105
  401. package/dist/api/agent.d.ts.map +0 -1
  402. package/dist/api/agent.js +0 -963
  403. package/dist/api/agent.js.map +0 -1
  404. package/dist/api/analytics.d.ts +0 -43
  405. package/dist/api/analytics.d.ts.map +0 -1
  406. package/dist/api/analytics.js +0 -163
  407. package/dist/api/analytics.js.map +0 -1
  408. package/dist/api/http.d.ts +0 -5
  409. package/dist/api/http.d.ts.map +0 -1
  410. package/dist/api/http.js +0 -62
  411. package/dist/api/http.js.map +0 -1
  412. package/dist/api/index.d.ts +0 -12
  413. package/dist/api/index.d.ts.map +0 -1
  414. package/dist/api/index.js +0 -17
  415. package/dist/api/index.js.map +0 -1
  416. package/dist/api/taskTracking.d.ts +0 -54
  417. package/dist/api/taskTracking.d.ts.map +0 -1
  418. package/dist/api/taskTracking.js +0 -208
  419. package/dist/api/taskTracking.js.map +0 -1
  420. package/dist/api/types.d.ts +0 -93
  421. package/dist/api/types.d.ts.map +0 -1
  422. package/dist/api/types.js +0 -2
  423. package/dist/api/types.js.map +0 -1
  424. package/dist/api/utils.d.ts +0 -8
  425. package/dist/api/utils.d.ts.map +0 -1
  426. package/dist/api/utils.js +0 -63
  427. package/dist/api/utils.js.map +0 -1
  428. package/dist/api/websocket.d.ts +0 -203
  429. package/dist/api/websocket.d.ts.map +0 -1
  430. package/dist/api/websocket.js +0 -1166
  431. package/dist/api/websocket.js.map +0 -1
  432. package/dist/bin/install-skill.d.ts +0 -14
  433. package/dist/bin/install-skill.d.ts.map +0 -1
  434. package/dist/bin/install-skill.js +0 -125
  435. package/dist/bin/install-skill.js.map +0 -1
  436. package/dist/bin/run-helpers.d.ts +0 -34
  437. package/dist/bin/run-helpers.d.ts.map +0 -1
  438. package/dist/bin/run-helpers.js +0 -186
  439. package/dist/bin/run-helpers.js.map +0 -1
  440. package/dist/bin/run.d.ts +0 -13
  441. package/dist/bin/run.d.ts.map +0 -1
  442. package/dist/bin/run.js +0 -57
  443. package/dist/bin/run.js.map +0 -1
  444. package/dist/clients/index.d.ts +0 -10
  445. package/dist/clients/index.d.ts.map +0 -1
  446. package/dist/clients/index.js +0 -8
  447. package/dist/clients/index.js.map +0 -1
  448. package/dist/clients/info/InfoClient.d.ts +0 -37
  449. package/dist/clients/info/InfoClient.d.ts.map +0 -1
  450. package/dist/clients/info/InfoClient.js +0 -69
  451. package/dist/clients/info/InfoClient.js.map +0 -1
  452. package/dist/clients/info/index.d.ts +0 -4
  453. package/dist/clients/info/index.d.ts.map +0 -1
  454. package/dist/clients/info/index.js +0 -2
  455. package/dist/clients/info/index.js.map +0 -1
  456. package/dist/clients/info/types.d.ts +0 -21
  457. package/dist/clients/info/types.d.ts.map +0 -1
  458. package/dist/clients/info/types.js +0 -2
  459. package/dist/clients/info/types.js.map +0 -1
  460. package/dist/clients/sessions/SessionsClient.d.ts +0 -34
  461. package/dist/clients/sessions/SessionsClient.d.ts.map +0 -1
  462. package/dist/clients/sessions/SessionsClient.js +0 -71
  463. package/dist/clients/sessions/SessionsClient.js.map +0 -1
  464. package/dist/clients/sessions/index.d.ts +0 -4
  465. package/dist/clients/sessions/index.d.ts.map +0 -1
  466. package/dist/clients/sessions/index.js +0 -2
  467. package/dist/clients/sessions/index.js.map +0 -1
  468. package/dist/clients/sessions/types.d.ts +0 -20
  469. package/dist/clients/sessions/types.d.ts.map +0 -1
  470. package/dist/clients/sessions/types.js +0 -2
  471. package/dist/clients/sessions/types.js.map +0 -1
  472. package/dist/clients/tools/ToolsClient.d.ts +0 -39
  473. package/dist/clients/tools/ToolsClient.d.ts.map +0 -1
  474. package/dist/clients/tools/ToolsClient.js +0 -95
  475. package/dist/clients/tools/ToolsClient.js.map +0 -1
  476. package/dist/clients/tools/index.d.ts +0 -4
  477. package/dist/clients/tools/index.d.ts.map +0 -1
  478. package/dist/clients/tools/index.js +0 -2
  479. package/dist/clients/tools/index.js.map +0 -1
  480. package/dist/clients/tools/types.d.ts +0 -14
  481. package/dist/clients/tools/types.d.ts.map +0 -1
  482. package/dist/clients/tools/types.js +0 -2
  483. package/dist/clients/tools/types.js.map +0 -1
  484. package/dist/config/ConfigManager.d.ts +0 -43
  485. package/dist/config/ConfigManager.d.ts.map +0 -1
  486. package/dist/config/ConfigManager.js +0 -472
  487. package/dist/config/ConfigManager.js.map +0 -1
  488. package/dist/config/index.d.ts +0 -6
  489. package/dist/config/index.d.ts.map +0 -1
  490. package/dist/config/index.js +0 -7
  491. package/dist/config/index.js.map +0 -1
  492. package/dist/config/urlConfig.d.ts +0 -15
  493. package/dist/config/urlConfig.d.ts.map +0 -1
  494. package/dist/config/urlConfig.js +0 -75
  495. package/dist/config/urlConfig.js.map +0 -1
  496. package/dist/constants/errors.d.ts +0 -2
  497. package/dist/constants/errors.d.ts.map +0 -1
  498. package/dist/constants/errors.js +0 -2
  499. package/dist/constants/errors.js.map +0 -1
  500. package/dist/constants/index.d.ts +0 -7
  501. package/dist/constants/index.d.ts.map +0 -1
  502. package/dist/constants/index.js +0 -11
  503. package/dist/constants/index.js.map +0 -1
  504. package/dist/constants/tools.d.ts +0 -4
  505. package/dist/constants/tools.d.ts.map +0 -1
  506. package/dist/constants/tools.js +0 -4
  507. package/dist/constants/tools.js.map +0 -1
  508. package/dist/constants/versions.d.ts +0 -2
  509. package/dist/constants/versions.d.ts.map +0 -1
  510. package/dist/constants/versions.js +0 -2
  511. package/dist/constants/versions.js.map +0 -1
  512. package/dist/context/buildUserContext.d.ts +0 -18
  513. package/dist/context/buildUserContext.d.ts.map +0 -1
  514. package/dist/context/buildUserContext.js +0 -34
  515. package/dist/context/buildUserContext.js.map +0 -1
  516. package/dist/context/index.d.ts +0 -9
  517. package/dist/context/index.d.ts.map +0 -1
  518. package/dist/context/index.js +0 -9
  519. package/dist/context/index.js.map +0 -1
  520. package/dist/context/messageManager.d.ts +0 -42
  521. package/dist/context/messageManager.d.ts.map +0 -1
  522. package/dist/context/messageManager.js +0 -322
  523. package/dist/context/messageManager.js.map +0 -1
  524. package/dist/context/taskFocus.d.ts +0 -2
  525. package/dist/context/taskFocus.d.ts.map +0 -1
  526. package/dist/context/taskFocus.js +0 -26
  527. package/dist/context/taskFocus.js.map +0 -1
  528. package/dist/context/userInput.d.ts +0 -3
  529. package/dist/context/userInput.d.ts.map +0 -1
  530. package/dist/context/userInput.js +0 -20
  531. package/dist/context/userInput.js.map +0 -1
  532. package/dist/mcp/MCPManager.d.ts +0 -109
  533. package/dist/mcp/MCPManager.d.ts.map +0 -1
  534. package/dist/mcp/MCPManager.js +0 -592
  535. package/dist/mcp/MCPManager.js.map +0 -1
  536. package/dist/mcp/approvedTools.d.ts +0 -4
  537. package/dist/mcp/approvedTools.d.ts.map +0 -1
  538. package/dist/mcp/approvedTools.js +0 -19
  539. package/dist/mcp/approvedTools.js.map +0 -1
  540. package/dist/mcp/baseServer.d.ts +0 -75
  541. package/dist/mcp/baseServer.d.ts.map +0 -1
  542. package/dist/mcp/baseServer.js +0 -107
  543. package/dist/mcp/baseServer.js.map +0 -1
  544. package/dist/mcp/builtinServers.d.ts +0 -15
  545. package/dist/mcp/builtinServers.d.ts.map +0 -1
  546. package/dist/mcp/builtinServers.js +0 -141
  547. package/dist/mcp/builtinServers.js.map +0 -1
  548. package/dist/mcp/dynamicBEServer.d.ts +0 -20
  549. package/dist/mcp/dynamicBEServer.d.ts.map +0 -1
  550. package/dist/mcp/dynamicBEServer.js +0 -52
  551. package/dist/mcp/dynamicBEServer.js.map +0 -1
  552. package/dist/mcp/index.d.ts +0 -18
  553. package/dist/mcp/index.d.ts.map +0 -1
  554. package/dist/mcp/index.js +0 -23
  555. package/dist/mcp/index.js.map +0 -1
  556. package/dist/mcp/mcpInitialization.d.ts +0 -2
  557. package/dist/mcp/mcpInitialization.d.ts.map +0 -1
  558. package/dist/mcp/mcpInitialization.js +0 -56
  559. package/dist/mcp/mcpInitialization.js.map +0 -1
  560. package/dist/mcp/servers/filesystem.d.ts +0 -44
  561. package/dist/mcp/servers/filesystem.d.ts.map +0 -1
  562. package/dist/mcp/servers/filesystem.js +0 -776
  563. package/dist/mcp/servers/filesystem.js.map +0 -1
  564. package/dist/mcp/servers/git.d.ts +0 -18
  565. package/dist/mcp/servers/git.d.ts.map +0 -1
  566. package/dist/mcp/servers/git.js +0 -441
  567. package/dist/mcp/servers/git.js.map +0 -1
  568. package/dist/mcp/servers/ripgrep.d.ts +0 -39
  569. package/dist/mcp/servers/ripgrep.d.ts.map +0 -1
  570. package/dist/mcp/servers/ripgrep.js +0 -550
  571. package/dist/mcp/servers/ripgrep.js.map +0 -1
  572. package/dist/mcp/servers/shell.d.ts +0 -20
  573. package/dist/mcp/servers/shell.d.ts.map +0 -1
  574. package/dist/mcp/servers/shell.js +0 -519
  575. package/dist/mcp/servers/shell.js.map +0 -1
  576. package/dist/mcp/serversRegistry.d.ts +0 -55
  577. package/dist/mcp/serversRegistry.d.ts.map +0 -1
  578. package/dist/mcp/serversRegistry.js +0 -416
  579. package/dist/mcp/serversRegistry.js.map +0 -1
  580. package/dist/mcp/toolProcessor.d.ts +0 -82
  581. package/dist/mcp/toolProcessor.d.ts.map +0 -1
  582. package/dist/mcp/toolProcessor.js +0 -392
  583. package/dist/mcp/toolProcessor.js.map +0 -1
  584. package/dist/mcp/types.d.ts +0 -29
  585. package/dist/mcp/types.d.ts.map +0 -1
  586. package/dist/mcp/types.js +0 -2
  587. package/dist/mcp/types.js.map +0 -1
  588. package/dist/messages/index.d.ts +0 -8
  589. package/dist/messages/index.d.ts.map +0 -1
  590. package/dist/messages/index.js +0 -7
  591. package/dist/messages/index.js.map +0 -1
  592. package/dist/messages/openai.d.ts +0 -26
  593. package/dist/messages/openai.d.ts.map +0 -1
  594. package/dist/messages/openai.js +0 -55
  595. package/dist/messages/openai.js.map +0 -1
  596. package/dist/messages/types.d.ts +0 -73
  597. package/dist/messages/types.d.ts.map +0 -1
  598. package/dist/messages/types.js +0 -78
  599. package/dist/messages/types.js.map +0 -1
  600. package/dist/parser/index.d.ts +0 -72
  601. package/dist/parser/index.d.ts.map +0 -1
  602. package/dist/parser/index.js +0 -967
  603. package/dist/parser/index.js.map +0 -1
  604. package/dist/parser/types.d.ts +0 -153
  605. package/dist/parser/types.d.ts.map +0 -1
  606. package/dist/parser/types.js +0 -6
  607. package/dist/parser/types.js.map +0 -1
  608. package/dist/parser/utils.d.ts +0 -18
  609. package/dist/parser/utils.d.ts.map +0 -1
  610. package/dist/parser/utils.js +0 -64
  611. package/dist/parser/utils.js.map +0 -1
  612. package/dist/sdk/QodoSDK.d.ts +0 -218
  613. package/dist/sdk/QodoSDK.d.ts.map +0 -1
  614. package/dist/sdk/QodoSDK.js +0 -1115
  615. package/dist/sdk/QodoSDK.js.map +0 -1
  616. package/dist/sdk/artifacts.d.ts +0 -156
  617. package/dist/sdk/artifacts.d.ts.map +0 -1
  618. package/dist/sdk/artifacts.js +0 -166
  619. package/dist/sdk/artifacts.js.map +0 -1
  620. package/dist/sdk/bootstrap.d.ts +0 -16
  621. package/dist/sdk/bootstrap.d.ts.map +0 -1
  622. package/dist/sdk/bootstrap.js +0 -28
  623. package/dist/sdk/bootstrap.js.map +0 -1
  624. package/dist/sdk/builders.d.ts +0 -54
  625. package/dist/sdk/builders.d.ts.map +0 -1
  626. package/dist/sdk/builders.js +0 -117
  627. package/dist/sdk/builders.js.map +0 -1
  628. package/dist/sdk/defaults.d.ts +0 -11
  629. package/dist/sdk/defaults.d.ts.map +0 -1
  630. package/dist/sdk/defaults.js +0 -39
  631. package/dist/sdk/defaults.js.map +0 -1
  632. package/dist/sdk/discovery.d.ts +0 -2
  633. package/dist/sdk/discovery.d.ts.map +0 -1
  634. package/dist/sdk/discovery.js +0 -25
  635. package/dist/sdk/discovery.js.map +0 -1
  636. package/dist/sdk/events.d.ts +0 -269
  637. package/dist/sdk/events.d.ts.map +0 -1
  638. package/dist/sdk/events.js +0 -69
  639. package/dist/sdk/events.js.map +0 -1
  640. package/dist/sdk/exit-expression.d.ts +0 -13
  641. package/dist/sdk/exit-expression.d.ts.map +0 -1
  642. package/dist/sdk/exit-expression.js +0 -35
  643. package/dist/sdk/exit-expression.js.map +0 -1
  644. package/dist/sdk/index.d.ts +0 -17
  645. package/dist/sdk/index.d.ts.map +0 -1
  646. package/dist/sdk/index.js +0 -17
  647. package/dist/sdk/index.js.map +0 -1
  648. package/dist/sdk/middleware.d.ts +0 -59
  649. package/dist/sdk/middleware.d.ts.map +0 -1
  650. package/dist/sdk/middleware.js +0 -69
  651. package/dist/sdk/middleware.js.map +0 -1
  652. package/dist/sdk/pipeline/PipelineBuilder.d.ts +0 -79
  653. package/dist/sdk/pipeline/PipelineBuilder.d.ts.map +0 -1
  654. package/dist/sdk/pipeline/PipelineBuilder.js +0 -129
  655. package/dist/sdk/pipeline/PipelineBuilder.js.map +0 -1
  656. package/dist/sdk/pipeline/PipelineRunner.d.ts +0 -28
  657. package/dist/sdk/pipeline/PipelineRunner.d.ts.map +0 -1
  658. package/dist/sdk/pipeline/PipelineRunner.js +0 -326
  659. package/dist/sdk/pipeline/PipelineRunner.js.map +0 -1
  660. package/dist/sdk/pipeline/compiler.d.ts +0 -24
  661. package/dist/sdk/pipeline/compiler.d.ts.map +0 -1
  662. package/dist/sdk/pipeline/compiler.js +0 -199
  663. package/dist/sdk/pipeline/compiler.js.map +0 -1
  664. package/dist/sdk/pipeline/declarative.d.ts +0 -34
  665. package/dist/sdk/pipeline/declarative.d.ts.map +0 -1
  666. package/dist/sdk/pipeline/declarative.js +0 -9
  667. package/dist/sdk/pipeline/declarative.js.map +0 -1
  668. package/dist/sdk/pipeline/index.d.ts +0 -20
  669. package/dist/sdk/pipeline/index.d.ts.map +0 -1
  670. package/dist/sdk/pipeline/index.js +0 -19
  671. package/dist/sdk/pipeline/index.js.map +0 -1
  672. package/dist/sdk/pipeline/types.d.ts +0 -93
  673. package/dist/sdk/pipeline/types.d.ts.map +0 -1
  674. package/dist/sdk/pipeline/types.js +0 -10
  675. package/dist/sdk/pipeline/types.js.map +0 -1
  676. package/dist/sdk/policies.d.ts +0 -163
  677. package/dist/sdk/policies.d.ts.map +0 -1
  678. package/dist/sdk/policies.js +0 -243
  679. package/dist/sdk/policies.js.map +0 -1
  680. package/dist/sdk/runner/AgentRunner.d.ts +0 -22
  681. package/dist/sdk/runner/AgentRunner.d.ts.map +0 -1
  682. package/dist/sdk/runner/AgentRunner.js +0 -222
  683. package/dist/sdk/runner/AgentRunner.js.map +0 -1
  684. package/dist/sdk/runner/finalize.d.ts +0 -56
  685. package/dist/sdk/runner/finalize.d.ts.map +0 -1
  686. package/dist/sdk/runner/finalize.js +0 -155
  687. package/dist/sdk/runner/finalize.js.map +0 -1
  688. package/dist/sdk/runner/formats.d.ts +0 -7
  689. package/dist/sdk/runner/formats.d.ts.map +0 -1
  690. package/dist/sdk/runner/formats.js +0 -76
  691. package/dist/sdk/runner/formats.js.map +0 -1
  692. package/dist/sdk/runner/index.d.ts +0 -9
  693. package/dist/sdk/runner/index.d.ts.map +0 -1
  694. package/dist/sdk/runner/index.js +0 -9
  695. package/dist/sdk/runner/index.js.map +0 -1
  696. package/dist/sdk/runner/progress.d.ts +0 -3
  697. package/dist/sdk/runner/progress.d.ts.map +0 -1
  698. package/dist/sdk/runner/progress.js +0 -16
  699. package/dist/sdk/runner/progress.js.map +0 -1
  700. package/dist/sdk/schemas.d.ts +0 -72
  701. package/dist/sdk/schemas.d.ts.map +0 -1
  702. package/dist/sdk/schemas.js +0 -282
  703. package/dist/sdk/schemas.js.map +0 -1
  704. package/dist/sdk/trigger-context.d.ts +0 -24
  705. package/dist/sdk/trigger-context.d.ts.map +0 -1
  706. package/dist/sdk/trigger-context.js +0 -136
  707. package/dist/sdk/trigger-context.js.map +0 -1
  708. package/dist/session/SessionContext.d.ts +0 -89
  709. package/dist/session/SessionContext.d.ts.map +0 -1
  710. package/dist/session/SessionContext.js +0 -410
  711. package/dist/session/SessionContext.js.map +0 -1
  712. package/dist/session/environment.d.ts +0 -52
  713. package/dist/session/environment.d.ts.map +0 -1
  714. package/dist/session/environment.js +0 -27
  715. package/dist/session/environment.js.map +0 -1
  716. package/dist/session/history.d.ts +0 -18
  717. package/dist/session/history.d.ts.map +0 -1
  718. package/dist/session/history.js +0 -68
  719. package/dist/session/history.js.map +0 -1
  720. package/dist/session/index.d.ts +0 -10
  721. package/dist/session/index.d.ts.map +0 -1
  722. package/dist/session/index.js +0 -9
  723. package/dist/session/index.js.map +0 -1
  724. package/dist/session/serverData.d.ts +0 -38
  725. package/dist/session/serverData.d.ts.map +0 -1
  726. package/dist/session/serverData.js +0 -261
  727. package/dist/session/serverData.js.map +0 -1
  728. package/dist/tracing/pipelineHelpers.d.ts +0 -29
  729. package/dist/tracing/pipelineHelpers.d.ts.map +0 -1
  730. package/dist/tracing/pipelineHelpers.js +0 -224
  731. package/dist/tracing/pipelineHelpers.js.map +0 -1
  732. package/dist/tracking/Tracker.d.ts +0 -55
  733. package/dist/tracking/Tracker.d.ts.map +0 -1
  734. package/dist/tracking/Tracker.js +0 -217
  735. package/dist/tracking/Tracker.js.map +0 -1
  736. package/dist/tracking/index.d.ts +0 -8
  737. package/dist/tracking/index.d.ts.map +0 -1
  738. package/dist/tracking/index.js +0 -8
  739. package/dist/tracking/index.js.map +0 -1
  740. package/dist/tracking/schemas.d.ts +0 -292
  741. package/dist/tracking/schemas.d.ts.map +0 -1
  742. package/dist/tracking/schemas.js +0 -91
  743. package/dist/tracking/schemas.js.map +0 -1
  744. package/dist/utils/extractSetFlags.d.ts +0 -6
  745. package/dist/utils/extractSetFlags.d.ts.map +0 -1
  746. package/dist/utils/extractSetFlags.js +0 -16
  747. package/dist/utils/extractSetFlags.js.map +0 -1
  748. package/dist/utils/formatTimeAgo.d.ts +0 -2
  749. package/dist/utils/formatTimeAgo.d.ts.map +0 -1
  750. package/dist/utils/formatTimeAgo.js +0 -20
  751. package/dist/utils/formatTimeAgo.js.map +0 -1
  752. package/dist/utils/index.d.ts +0 -12
  753. package/dist/utils/index.d.ts.map +0 -1
  754. package/dist/utils/index.js +0 -12
  755. package/dist/utils/index.js.map +0 -1
  756. package/dist/utils/machineId.d.ts +0 -14
  757. package/dist/utils/machineId.d.ts.map +0 -1
  758. package/dist/utils/machineId.js +0 -66
  759. package/dist/utils/machineId.js.map +0 -1
  760. package/dist/utils/pathUtils.d.ts +0 -22
  761. package/dist/utils/pathUtils.d.ts.map +0 -1
  762. package/dist/utils/pathUtils.js +0 -54
  763. package/dist/utils/pathUtils.js.map +0 -1
  764. package/scripts/download-ripgrep.js +0 -269
@@ -0,0 +1,109 @@
1
+ /**
2
+ * SDK-side MCP tool projection.
3
+ *
4
+ * `projectMcpTools` resolves a consumer's `mcpTools` selector against the
5
+ * live {@link McpClientPool} catalog and produces the concrete
6
+ * `FunctionToolDef[]` shipped to QAR via `AgentSpec.tools`. The function is
7
+ * the SDK's single point of responsibility for the MCP-projection contract:
8
+ *
9
+ * - **Shape A** (`readonly string[]`) — entries are either MCP names
10
+ * (whole-server inclusion) or `<mcp>.<tool>` dotted references
11
+ * (specific tool).
12
+ * - **Shape B** (`{ allowlist?, blocklist? }`) — set difference,
13
+ * same dotted-name resolution as Shape A.
14
+ * - **Shape C** (`(tool: DiscoveredMcpTool) => boolean`) — dynamic
15
+ * filter receiving every discovered tool across every registered MCP.
16
+ *
17
+ * Each match becomes a `FunctionToolDef` carrying the upstream MCP's
18
+ * `inputSchema` + `description` + (new) `annotations`. Tool names are
19
+ * auto-prefixed `<mcp>.<tool>` when the per-MCP `prefixToolNames` policy
20
+ * is on (default); off when the consumer explicitly opted out at
21
+ * `registerMcp` time. Consumer-shipped `tools[]` entries are merged on
22
+ * top — consumer-shipped wins on name collision; consumer-shipped tools
23
+ * escape prefixing because the consumer wrote the name.
24
+ *
25
+ * Diagnostics surface drift between consumer code and the live MCP
26
+ * surface as three buckets:
27
+ *
28
+ * - `unknownMcps` — allowlist entries naming an MCP not in the pool.
29
+ * - `unknownMcpTools` — dotted-name allowlist / override entries whose
30
+ * suffix doesn't match a discovered tool.
31
+ * - `unreachableMcps` — registered MCPs that the selector explicitly
32
+ * *referenced* AND whose catalog is absent (cold start hasn't
33
+ * populated). Note the **referenced** scope: an unreachable MCP that
34
+ * this agent doesn't depend on is silently omitted, NOT flagged.
35
+ * Reference scope:
36
+ * - Shape A (string[]) — bare names + the MCP part of dotted entries.
37
+ * - Shape B allowlist — bare names + dotted MCP parts. Blocklist
38
+ * entries do NOT add references (the consumer is trying to
39
+ * exclude something; if it's already absent, intent is fulfilled).
40
+ * - Shape B blocklist-only (no allowlist) — no references; full
41
+ * reachable surface minus blocks.
42
+ * - Shape C callback — no references; the consumer accepts whatever
43
+ * the live catalog provides.
44
+ * The caller chooses what to do with each diagnostic per the
45
+ * registered `unavailability` policy.
46
+ *
47
+ * Ordering for prompt-cache stability (D17-9): consumer-shipped first
48
+ * (in original insertion order), then projected tools sorted
49
+ * lexicographically by `<mcp>.<tool>`. Stable across runs so Anthropic's
50
+ * prompt-cache prefix matching keeps hitting.
51
+ *
52
+ * The function is pure — same inputs, same outputs — so tests can drive
53
+ * it directly without a live pool. Callers await
54
+ * `pool.waitForCatalogsToSettle()` BEFORE invoking projection so a
55
+ * still-loading MCP doesn't read as unreachable.
56
+ */
57
+ import type { FunctionToolDef, McpToolOverrides, McpToolsSelector } from '../../qar/specs.js';
58
+ import type { McpClientPool } from './McpClientPool.js';
59
+ /**
60
+ * Input to {@link projectMcpTools}. Consumer-facing fields lifted off the
61
+ * `InlineAgentSpec` at the wire boundary.
62
+ */
63
+ export interface ProjectionInput {
64
+ /** The `mcpTools` selector — Shape A / B / C, or `undefined` to skip discovery. */
65
+ readonly mcpTools?: McpToolsSelector;
66
+ /** Consumer-shipped `tools[]` — preserved verbatim (consumer wins on name match). */
67
+ readonly consumerTools?: readonly FunctionToolDef[] | null;
68
+ /** Per-tool description overlay — applied AFTER projection. */
69
+ readonly mcpToolOverrides?: McpToolOverrides;
70
+ }
71
+ /**
72
+ * Result of {@link projectMcpTools}. `tools` is the merged + ordered
73
+ * surface (consumer-shipped first, projected sorted lex); `diagnostics`
74
+ * captures drift the caller may want to raise as typed errors.
75
+ */
76
+ export interface ProjectionResult {
77
+ readonly tools: readonly FunctionToolDef[];
78
+ readonly diagnostics: {
79
+ readonly unknownMcps: readonly string[];
80
+ readonly unknownMcpTools: readonly string[];
81
+ readonly unreachableMcps: readonly string[];
82
+ };
83
+ }
84
+ /**
85
+ * Resolve the MCP selector against the pool and produce the concrete
86
+ * `FunctionToolDef[]` for the wire envelope. See module docblock for the
87
+ * contract.
88
+ *
89
+ * @param input Consumer-side selector + tools[] + overrides.
90
+ * @param pool Live `McpClientPool` (sync-snapshot accessor; the
91
+ * caller is responsible for awaiting
92
+ * `waitForCatalogsToSettle()` first).
93
+ * @param prefixPolicy Per-MCP prefix-on policy. Default `true` when the
94
+ * map is missing an entry — the wire fallback for
95
+ * an MCP registered before the projection ergonomics
96
+ * existed.
97
+ * @param extraKnownMcps Additional MCP names known to the registry but
98
+ * NOT present in the pool. The canonical use case
99
+ * is `transport: 'sdk'` in-process MCPs whose
100
+ * dispatch path bypasses the pool — they have no
101
+ * `tools/list` contract, so the projection layer
102
+ * doesn't auto-project tools for them; but
103
+ * referencing one in `mcpTools` should NOT raise
104
+ * `QodoUnknownMcpError`. Tools for those MCPs ship
105
+ * via consumer `tools[]` instead. Optional;
106
+ * defaults empty.
107
+ */
108
+ export declare function projectMcpTools(input: ProjectionInput, pool: McpClientPool, prefixPolicy: ReadonlyMap<string, boolean>, extraKnownMcps?: ReadonlySet<string>): ProjectionResult;
109
+ //# sourceMappingURL=projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/client/mcp/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAGH,OAAO,KAAK,EAEV,eAAe,EAEf,gBAAgB,EAChB,gBAAgB,EAGjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,oBAAoB,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,qFAAqF;IACrF,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CAAC;IAC3D,+DAA+D;IAC/D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;QAC5C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;KAC7C,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,cAAc,GAAE,WAAW,CAAC,MAAM,CAAmB,GACpD,gBAAgB,CAkLlB"}
@@ -0,0 +1,446 @@
1
+ /**
2
+ * SDK-side MCP tool projection.
3
+ *
4
+ * `projectMcpTools` resolves a consumer's `mcpTools` selector against the
5
+ * live {@link McpClientPool} catalog and produces the concrete
6
+ * `FunctionToolDef[]` shipped to QAR via `AgentSpec.tools`. The function is
7
+ * the SDK's single point of responsibility for the MCP-projection contract:
8
+ *
9
+ * - **Shape A** (`readonly string[]`) — entries are either MCP names
10
+ * (whole-server inclusion) or `<mcp>.<tool>` dotted references
11
+ * (specific tool).
12
+ * - **Shape B** (`{ allowlist?, blocklist? }`) — set difference,
13
+ * same dotted-name resolution as Shape A.
14
+ * - **Shape C** (`(tool: DiscoveredMcpTool) => boolean`) — dynamic
15
+ * filter receiving every discovered tool across every registered MCP.
16
+ *
17
+ * Each match becomes a `FunctionToolDef` carrying the upstream MCP's
18
+ * `inputSchema` + `description` + (new) `annotations`. Tool names are
19
+ * auto-prefixed `<mcp>.<tool>` when the per-MCP `prefixToolNames` policy
20
+ * is on (default); off when the consumer explicitly opted out at
21
+ * `registerMcp` time. Consumer-shipped `tools[]` entries are merged on
22
+ * top — consumer-shipped wins on name collision; consumer-shipped tools
23
+ * escape prefixing because the consumer wrote the name.
24
+ *
25
+ * Diagnostics surface drift between consumer code and the live MCP
26
+ * surface as three buckets:
27
+ *
28
+ * - `unknownMcps` — allowlist entries naming an MCP not in the pool.
29
+ * - `unknownMcpTools` — dotted-name allowlist / override entries whose
30
+ * suffix doesn't match a discovered tool.
31
+ * - `unreachableMcps` — registered MCPs that the selector explicitly
32
+ * *referenced* AND whose catalog is absent (cold start hasn't
33
+ * populated). Note the **referenced** scope: an unreachable MCP that
34
+ * this agent doesn't depend on is silently omitted, NOT flagged.
35
+ * Reference scope:
36
+ * - Shape A (string[]) — bare names + the MCP part of dotted entries.
37
+ * - Shape B allowlist — bare names + dotted MCP parts. Blocklist
38
+ * entries do NOT add references (the consumer is trying to
39
+ * exclude something; if it's already absent, intent is fulfilled).
40
+ * - Shape B blocklist-only (no allowlist) — no references; full
41
+ * reachable surface minus blocks.
42
+ * - Shape C callback — no references; the consumer accepts whatever
43
+ * the live catalog provides.
44
+ * The caller chooses what to do with each diagnostic per the
45
+ * registered `unavailability` policy.
46
+ *
47
+ * Ordering for prompt-cache stability (D17-9): consumer-shipped first
48
+ * (in original insertion order), then projected tools sorted
49
+ * lexicographically by `<mcp>.<tool>`. Stable across runs so Anthropic's
50
+ * prompt-cache prefix matching keeps hitting.
51
+ *
52
+ * The function is pure — same inputs, same outputs — so tests can drive
53
+ * it directly without a live pool. Callers await
54
+ * `pool.waitForCatalogsToSettle()` BEFORE invoking projection so a
55
+ * still-loading MCP doesn't read as unreachable.
56
+ */
57
+ /**
58
+ * Resolve the MCP selector against the pool and produce the concrete
59
+ * `FunctionToolDef[]` for the wire envelope. See module docblock for the
60
+ * contract.
61
+ *
62
+ * @param input Consumer-side selector + tools[] + overrides.
63
+ * @param pool Live `McpClientPool` (sync-snapshot accessor; the
64
+ * caller is responsible for awaiting
65
+ * `waitForCatalogsToSettle()` first).
66
+ * @param prefixPolicy Per-MCP prefix-on policy. Default `true` when the
67
+ * map is missing an entry — the wire fallback for
68
+ * an MCP registered before the projection ergonomics
69
+ * existed.
70
+ * @param extraKnownMcps Additional MCP names known to the registry but
71
+ * NOT present in the pool. The canonical use case
72
+ * is `transport: 'sdk'` in-process MCPs whose
73
+ * dispatch path bypasses the pool — they have no
74
+ * `tools/list` contract, so the projection layer
75
+ * doesn't auto-project tools for them; but
76
+ * referencing one in `mcpTools` should NOT raise
77
+ * `QodoUnknownMcpError`. Tools for those MCPs ship
78
+ * via consumer `tools[]` instead. Optional;
79
+ * defaults empty.
80
+ */
81
+ export function projectMcpTools(input, pool, prefixPolicy, extraKnownMcps = EMPTY_KNOWN_SET) {
82
+ // 0. Resolve registered set + cached catalogs + the "referenced" MCP
83
+ // set the selector explicitly names. The referenced scope is what
84
+ // governs the `unreachableMcps` diagnostic — an MCP the consumer
85
+ // doesn't depend on isn't a failure even if its catalog is cold.
86
+ const registered = pool.listRegisteredNames();
87
+ const registeredSet = new Set(registered);
88
+ // Union pool-registered names with the consumer-supplied "extra known"
89
+ // set so sdk-transport MCPs aren't flagged as unknown.
90
+ for (const name of extraKnownMcps)
91
+ registeredSet.add(name);
92
+ const catalogSnapshot = pool.getCatalogSnapshot();
93
+ const referencedMcps = collectReferencedMcps(input.mcpTools);
94
+ // Per-MCP discovered-tool index. Catalogs with `undefined` cache mean
95
+ // unreachable; recorded in `unreachableMcps` ONLY when the selector
96
+ // referenced the MCP (per the scope rule documented at the top of
97
+ // this file). Catalogs present (even an empty array) are reachable.
98
+ // `extraKnownMcps` entries don't appear here — they have no catalog
99
+ // and shouldn't be flagged as unreachable either; their tools ship
100
+ // through the consumer's `tools[]` directly.
101
+ const discoveredByMcp = new Map();
102
+ const unreachableMcps = [];
103
+ for (const mcpName of registered) {
104
+ const catalog = catalogSnapshot.get(mcpName);
105
+ if (catalog === undefined) {
106
+ if (referencedMcps.has(mcpName)) {
107
+ unreachableMcps.push(mcpName);
108
+ }
109
+ continue;
110
+ }
111
+ const tools = [];
112
+ for (const entry of catalog) {
113
+ tools.push(toDiscovered(mcpName, entry));
114
+ }
115
+ discoveredByMcp.set(mcpName, tools);
116
+ }
117
+ // 1. Walk the selector — produce a Map<projectedName, FunctionToolDef>
118
+ // keyed by the post-prefix name so consumer-shipped collisions
119
+ // win on insertion order.
120
+ const unknownMcps = [];
121
+ const unknownMcpToolsRef = [];
122
+ const projected = new Map();
123
+ const selector = input.mcpTools;
124
+ if (selector !== undefined) {
125
+ if (typeof selector === 'function') {
126
+ // Shape C — run the filter across every discovered tool.
127
+ for (const [mcpName, tools] of discoveredByMcp) {
128
+ const prefixOn = readPrefixPolicy(prefixPolicy, mcpName);
129
+ for (const tool of tools) {
130
+ if (selector(tool)) {
131
+ const projectedName = prefixOn ? `${mcpName}.${tool.name}` : tool.name;
132
+ projected.set(projectedName, toFunctionToolDef(projectedName, tool));
133
+ }
134
+ }
135
+ }
136
+ }
137
+ else if (Array.isArray(selector)) {
138
+ // Shape A — strings; entries with `.` = specific tool, without = whole MCP.
139
+ const arr = selector;
140
+ applyAllowlist(arr, discoveredByMcp, registeredSet, prefixPolicy, projected, unknownMcps, unknownMcpToolsRef);
141
+ }
142
+ else {
143
+ // Shape B — allowlist + blocklist.
144
+ const ab = selector;
145
+ if (ab.allowlist !== undefined) {
146
+ applyAllowlist(ab.allowlist, discoveredByMcp, registeredSet, prefixPolicy, projected, unknownMcps, unknownMcpToolsRef);
147
+ }
148
+ else {
149
+ // Allowlist omitted = include every reachable tool, then
150
+ // subtract blocklist. Matches "subtract from full" semantics.
151
+ for (const [mcpName, tools] of discoveredByMcp) {
152
+ const prefixOn = readPrefixPolicy(prefixPolicy, mcpName);
153
+ for (const tool of tools) {
154
+ const projectedName = prefixOn ? `${mcpName}.${tool.name}` : tool.name;
155
+ projected.set(projectedName, toFunctionToolDef(projectedName, tool));
156
+ }
157
+ }
158
+ }
159
+ if (ab.blocklist !== undefined) {
160
+ applyBlocklist(ab.blocklist, discoveredByMcp, registeredSet, prefixPolicy, projected, unknownMcps, unknownMcpToolsRef);
161
+ }
162
+ }
163
+ }
164
+ // 2. Apply description overlays. Keys are tool names AS PROJECTED
165
+ // (post-prefix). Unknown keys surface as `unknownMcpTools` UNLESS
166
+ // the override targets a tool on an MCP that is unreachable (or
167
+ // a non-projecting sdk-transport MCP) — in which case the tool
168
+ // can never have been projected and flagging it would defeat the
169
+ // `unavailability: 'warn'` graceful-degradation contract. Silently
170
+ // skip those — there's no tool to override; the unreachable
171
+ // diagnostic / warn-policy log already conveys the absence.
172
+ const unreachableMcpsSet = new Set(unreachableMcps);
173
+ if (input.mcpToolOverrides !== undefined) {
174
+ for (const [projectedName, override] of Object.entries(input.mcpToolOverrides)) {
175
+ const existing = projected.get(projectedName);
176
+ if (existing === undefined) {
177
+ if (overrideTargetsNonProjectingMcp(projectedName, unreachableMcpsSet, extraKnownMcps)) {
178
+ // The override's MCP is unreachable or sdk-transport — skip
179
+ // silently. The consumer's intent (frame this tool) is moot
180
+ // when the tool itself isn't available; the warn-policy
181
+ // log already documents the degradation.
182
+ continue;
183
+ }
184
+ unknownMcpToolsRef.push(projectedName);
185
+ continue;
186
+ }
187
+ if (override.description === undefined)
188
+ continue;
189
+ projected.set(projectedName, {
190
+ type: 'function',
191
+ function: {
192
+ ...existing.function,
193
+ description: override.description,
194
+ },
195
+ });
196
+ }
197
+ }
198
+ // 3. Sort projected tools lexicographically by name — D17-9 prompt-cache
199
+ // stability. Consumer-shipped tools (added in step 4) preserve
200
+ // original insertion order.
201
+ const projectedSorted = [...projected.entries()].sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
202
+ // 4. Merge consumer-shipped tools. Consumer-shipped escapes prefixing
203
+ // (their name is verbatim) AND wins on name collision with a
204
+ // projected tool. Final order: consumer-shipped (original order)
205
+ // first, projected (sorted lex) for any name NOT in consumer set.
206
+ const consumerByName = new Map();
207
+ if (input.consumerTools !== undefined && input.consumerTools !== null) {
208
+ for (const tool of input.consumerTools) {
209
+ consumerByName.set(tool.function.name, tool);
210
+ }
211
+ }
212
+ const out = [];
213
+ if (input.consumerTools !== undefined && input.consumerTools !== null) {
214
+ for (const tool of input.consumerTools) {
215
+ out.push(tool);
216
+ }
217
+ }
218
+ for (const [name, tool] of projectedSorted) {
219
+ if (consumerByName.has(name))
220
+ continue;
221
+ out.push(tool);
222
+ }
223
+ return {
224
+ tools: out,
225
+ diagnostics: {
226
+ unknownMcps: dedupe(unknownMcps),
227
+ unknownMcpTools: dedupe(unknownMcpToolsRef),
228
+ unreachableMcps: dedupe(unreachableMcps),
229
+ },
230
+ };
231
+ }
232
+ // ---------------------------------------------------------------------------
233
+ // Internals
234
+ // ---------------------------------------------------------------------------
235
+ function applyAllowlist(entries, discoveredByMcp, registeredSet, prefixPolicy, projected, unknownMcps, unknownMcpTools) {
236
+ for (const entry of entries) {
237
+ const split = splitDotted(entry);
238
+ if (split === null) {
239
+ // Whole-MCP form. Must reference a registered MCP.
240
+ if (!registeredSet.has(entry)) {
241
+ unknownMcps.push(entry);
242
+ continue;
243
+ }
244
+ const tools = discoveredByMcp.get(entry);
245
+ // Tools absent = MCP is unreachable; surfaced separately via
246
+ // `unreachableMcps`. Skip the entry without recording a per-tool
247
+ // miss — the caller's policy decision lives on the unreachable
248
+ // bucket, not here.
249
+ if (tools === undefined)
250
+ continue;
251
+ const prefixOn = readPrefixPolicy(prefixPolicy, entry);
252
+ for (const tool of tools) {
253
+ const projectedName = prefixOn ? `${entry}.${tool.name}` : tool.name;
254
+ projected.set(projectedName, toFunctionToolDef(projectedName, tool));
255
+ }
256
+ }
257
+ else {
258
+ // Specific-tool form (`<mcp>.<tool>`).
259
+ const { mcpName, toolName } = split;
260
+ if (!registeredSet.has(mcpName)) {
261
+ unknownMcps.push(mcpName);
262
+ continue;
263
+ }
264
+ const tools = discoveredByMcp.get(mcpName);
265
+ if (tools === undefined)
266
+ continue; // unreachable — caller policy
267
+ const match = tools.find((t) => t.name === toolName);
268
+ if (match === undefined) {
269
+ unknownMcpTools.push(entry);
270
+ continue;
271
+ }
272
+ const prefixOn = readPrefixPolicy(prefixPolicy, mcpName);
273
+ const projectedName = prefixOn ? `${mcpName}.${toolName}` : toolName;
274
+ projected.set(projectedName, toFunctionToolDef(projectedName, match));
275
+ }
276
+ }
277
+ }
278
+ function applyBlocklist(entries, discoveredByMcp, registeredSet, prefixPolicy, projected, unknownMcps, unknownMcpTools) {
279
+ for (const entry of entries) {
280
+ const split = splitDotted(entry);
281
+ if (split === null) {
282
+ // Whole-MCP block — remove every projected tool whose MCP matches.
283
+ if (!registeredSet.has(entry)) {
284
+ unknownMcps.push(entry);
285
+ continue;
286
+ }
287
+ const prefixOn = readPrefixPolicy(prefixPolicy, entry);
288
+ const tools = discoveredByMcp.get(entry);
289
+ if (tools === undefined)
290
+ continue;
291
+ for (const tool of tools) {
292
+ const projectedName = prefixOn ? `${entry}.${tool.name}` : tool.name;
293
+ projected.delete(projectedName);
294
+ }
295
+ }
296
+ else {
297
+ const { mcpName, toolName } = split;
298
+ if (!registeredSet.has(mcpName)) {
299
+ unknownMcps.push(mcpName);
300
+ continue;
301
+ }
302
+ const tools = discoveredByMcp.get(mcpName);
303
+ if (tools === undefined)
304
+ continue;
305
+ const match = tools.find((t) => t.name === toolName);
306
+ if (match === undefined) {
307
+ unknownMcpTools.push(entry);
308
+ continue;
309
+ }
310
+ const prefixOn = readPrefixPolicy(prefixPolicy, mcpName);
311
+ const projectedName = prefixOn ? `${mcpName}.${toolName}` : toolName;
312
+ projected.delete(projectedName);
313
+ }
314
+ }
315
+ }
316
+ /**
317
+ * Build the set of MCP names the selector explicitly *references* —
318
+ * the scope that governs the `unreachableMcps` diagnostic. Semantics:
319
+ * fail only for what the consumer's selector depends on.
320
+ *
321
+ * - Shape A (string[]) — bare names + the MCP part of dotted entries
322
+ * all count as references.
323
+ * - Shape B allowlist — same scope. Blocklist entries do NOT count
324
+ * (consumer is trying to exclude; if absent, intent fulfilled).
325
+ * - Shape B blocklist-only (no allowlist) — no references. Effective
326
+ * surface is "every reachable tool minus blocks"; unreachable MCPs
327
+ * are silently omitted from the full-surface seed.
328
+ * - Shape C callback — no references. The callback runs across the
329
+ * discovered surface; consumer didn't name specific MCPs.
330
+ * - Undefined selector — no references (no projection runs).
331
+ */
332
+ function collectReferencedMcps(selector) {
333
+ const out = new Set();
334
+ if (selector === undefined)
335
+ return out;
336
+ if (typeof selector === 'function')
337
+ return out;
338
+ if (Array.isArray(selector)) {
339
+ for (const entry of selector) {
340
+ const split = splitDotted(entry);
341
+ out.add(split === null ? entry : split.mcpName);
342
+ }
343
+ return out;
344
+ }
345
+ const ab = selector;
346
+ if (ab.allowlist !== undefined) {
347
+ for (const entry of ab.allowlist) {
348
+ const split = splitDotted(entry);
349
+ out.add(split === null ? entry : split.mcpName);
350
+ }
351
+ }
352
+ // Blocklist entries deliberately NOT added — see docblock.
353
+ return out;
354
+ }
355
+ /**
356
+ * Decide whether a `mcpToolOverrides` key whose tool isn't in the
357
+ * projected set is safe to silently skip (vs flag as
358
+ * `unknownMcpTools`). The key is parsed for an `<mcp>.<tool>` prefix;
359
+ * if the prefix matches an MCP that is unreachable OR a known
360
+ * non-projecting sdk-transport MCP, the override target was never
361
+ * projectable — silent skip preserves the `unavailability: 'warn'`
362
+ * graceful-degradation contract and matches the "ship sdk-transport
363
+ * MCP tools via consumer tools[]" model.
364
+ *
365
+ * Keys without a dot belong to prefix-off MCPs whose owning MCP can't
366
+ * be inferred from the key alone; those still flag as unknownMcpTools
367
+ * to preserve drift detection for the prefix-off case.
368
+ */
369
+ function overrideTargetsNonProjectingMcp(projectedName, unreachableMcps, extraKnownMcps) {
370
+ const split = splitDotted(projectedName);
371
+ if (split === null)
372
+ return false;
373
+ const owningMcp = split.mcpName;
374
+ return unreachableMcps.has(owningMcp) || extraKnownMcps.has(owningMcp);
375
+ }
376
+ /** Parse `<mcp>.<tool>` — returns `null` for entries without a dot. */
377
+ function splitDotted(entry) {
378
+ const idx = entry.indexOf('.');
379
+ if (idx <= 0)
380
+ return null;
381
+ const mcpName = entry.slice(0, idx);
382
+ const toolName = entry.slice(idx + 1);
383
+ if (toolName.length === 0)
384
+ return null;
385
+ return { mcpName, toolName };
386
+ }
387
+ function readPrefixPolicy(prefixPolicy, mcpName) {
388
+ const stored = prefixPolicy.get(mcpName);
389
+ return stored === undefined ? true : stored;
390
+ }
391
+ function toDiscovered(mcpName, entry) {
392
+ const inputSchema = entry.inputSchema !== undefined
393
+ ? entry.inputSchema
394
+ : EMPTY_OBJECT_SCHEMA;
395
+ const out = {
396
+ mcpName,
397
+ name: entry.name,
398
+ inputSchema,
399
+ };
400
+ if (entry.description !== undefined)
401
+ out.description = entry.description;
402
+ if (entry.outputSchema !== undefined) {
403
+ out.outputSchema = entry.outputSchema;
404
+ }
405
+ if (entry.annotations !== undefined) {
406
+ out.annotations = entry.annotations;
407
+ }
408
+ return out;
409
+ }
410
+ function toFunctionToolDef(projectedName, tool) {
411
+ const fn = {
412
+ name: projectedName,
413
+ parameters: tool.inputSchema,
414
+ };
415
+ if (tool.description !== undefined)
416
+ fn.description = tool.description;
417
+ if (tool.annotations !== undefined)
418
+ fn.annotations = tool.annotations;
419
+ return { type: 'function', function: fn };
420
+ }
421
+ function dedupe(arr) {
422
+ if (arr.length <= 1)
423
+ return arr;
424
+ const seen = new Set();
425
+ const out = [];
426
+ for (const item of arr) {
427
+ if (seen.has(item))
428
+ continue;
429
+ seen.add(item);
430
+ out.push(item);
431
+ }
432
+ return out;
433
+ }
434
+ /**
435
+ * Default `inputSchema` for MCPs that didn't ship one. Matches the
436
+ * upstream MCP SDK fallback — `{ type: 'object' }` accepts any args.
437
+ * Kept as a frozen constant so the projection doesn't allocate per-call
438
+ * when most tools have proper schemas.
439
+ */
440
+ const EMPTY_OBJECT_SCHEMA = Object.freeze({ type: 'object' });
441
+ /**
442
+ * Shared empty set used as the default for the optional `extraKnownMcps`
443
+ * parameter so the common no-sdk-transport call path doesn't allocate.
444
+ */
445
+ const EMPTY_KNOWN_SET = new Set();
446
+ //# sourceMappingURL=projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/client/mcp/projection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Browser stub for `substituteEnv.ts`. `process.env` doesn't exist in
3
+ * the browser globals; the SDK's remote-MCP feature is a server-side
4
+ * concern (subprocess + arbitrary fetch authority), so the browser
5
+ * bundle reaches this code only via the McpClientPool import chain —
6
+ * never to actually substitute anything.
7
+ *
8
+ * Returns the input verbatim. If a browser consumer ever wires a remote
9
+ * MCP, the {@link McpClientPool} browser stub rejects the register call
10
+ * before this helper is reached.
11
+ */
12
+ export declare function substituteEnvInString(value: string): string;
13
+ export declare function substituteEnvInHeaders(headers: {
14
+ readonly [key: string]: string;
15
+ } | undefined): {
16
+ [key: string]: string;
17
+ } | undefined;
18
+ //# sourceMappingURL=substituteEnv.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"substituteEnv.browser.d.ts","sourceRoot":"","sources":["../../../src/client/mcp/substituteEnv.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,SAAS,GACtD;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,SAAS,CAGvC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Browser stub for `substituteEnv.ts`. `process.env` doesn't exist in
3
+ * the browser globals; the SDK's remote-MCP feature is a server-side
4
+ * concern (subprocess + arbitrary fetch authority), so the browser
5
+ * bundle reaches this code only via the McpClientPool import chain —
6
+ * never to actually substitute anything.
7
+ *
8
+ * Returns the input verbatim. If a browser consumer ever wires a remote
9
+ * MCP, the {@link McpClientPool} browser stub rejects the register call
10
+ * before this helper is reached.
11
+ */
12
+ export function substituteEnvInString(value) {
13
+ return value;
14
+ }
15
+ export function substituteEnvInHeaders(headers) {
16
+ if (headers === undefined)
17
+ return undefined;
18
+ return { ...headers };
19
+ }
20
+ //# sourceMappingURL=substituteEnv.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"substituteEnv.browser.js","sourceRoot":"","sources":["../../../src/client/mcp/substituteEnv.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAuD;IAEvD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;AACxB,CAAC"}