@qodo/sdk 0.13.3 → 2.0.0-next.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 (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 +1115 -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 +800 -0
  68. package/dist/client/connection.d.ts.map +1 -0
  69. package/dist/client/connection.js +2020 -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 -104
  401. package/dist/api/agent.d.ts.map +0 -1
  402. package/dist/api/agent.js +0 -939
  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,536 @@
1
+ /**
2
+ * `QarRegistryClient` — SDK-process-scoped local registries for consumer-built
3
+ * agents and MCP servers.
4
+ *
5
+ * Surface: `client.qar.registerAgent(spec)` + `client.qar.registerMcp(name, config)`.
6
+ * Returns branded handles (`RegisteredAgentRef` / `RegisteredMcpRef`) the
7
+ * consumer can pass to `tasks.start` and slot into `spawnable_agents`.
8
+ *
9
+ * **Architectural posture.** The local agent body is never serialized to
10
+ * QAR. Registration keeps the spec in-process so the SDK can execute the
11
+ * agent locally (the dispatch loop is the SDK's; QAR remains the
12
+ * runtime / orchestrator that issues `task.start` envelopes). For
13
+ * `agent_id` referenced in a `task.start` payload, the SDK auto-fills
14
+ * the wire's `agent_id` field from `ref.name` — that's the only thing
15
+ * that crosses the wire.
16
+ *
17
+ * **Scope.** In-memory only; no persistence. The registries belong to a
18
+ * `QodoClient` instance — a fresh client starts empty. Re-registering the
19
+ * same name throws `QodoRegistryConflictError` unless `replace: true` is set,
20
+ * so consumers can't silently shadow a previous registration.
21
+ *
22
+ * **No built-in MCPs.** The SDK ships with zero default MCP servers
23
+ * (clean-slate departure from 1.x). The registries start empty;
24
+ * `qar.registerMcp` is the canonical path for adding any consumer MCP.
25
+ */
26
+ import { QodoRegistryConflictError } from './errors.js';
27
+ import { McpClientPool } from './mcp/McpClientPool.js';
28
+ import { A2ARegistry } from './a2a/registerA2A.js';
29
+ /**
30
+ * Type guard for the URL-only SDK1 ergonomic — `{ url, headers?, requestInit? }`
31
+ * with no explicit `transport` field. Structural-shape detection so the SDK
32
+ * can normalize at register-time without forcing consumers to discriminate.
33
+ */
34
+ function isUrlOnlyConfig(config) {
35
+ return (config.transport === undefined &&
36
+ typeof config.url === 'string');
37
+ }
38
+ /**
39
+ * Normalize a {@link McpConfig} to either the canonical
40
+ * remote/stdio/streamable shape (consumed by the pool's `prepareEntry`)
41
+ * or the `'sdk'` in-process shape (which the pool never sees). Returns
42
+ * the input verbatim for the four explicit-discriminator shapes;
43
+ * synthesizes a `'remote-streamable-http'` config from the URL-only
44
+ * shape.
45
+ */
46
+ function normalizeMcpConfig(config) {
47
+ if (isUrlOnlyConfig(config)) {
48
+ // SDK1's `mcpServers: { name: { url, headers? } }` had no explicit
49
+ // transport; the canonical MCP wire protocol today is Streamable
50
+ // HTTP, so default the URL-only shape to that.
51
+ const out = {
52
+ transport: 'remote-streamable-http',
53
+ url: config.url,
54
+ ...(config.headers !== undefined ? { headers: config.headers } : {}),
55
+ ...(config.requestInit !== undefined ? { requestInit: config.requestInit } : {}),
56
+ };
57
+ return out;
58
+ }
59
+ // Already in canonical form (one of the four explicit-discriminator shapes).
60
+ return config;
61
+ }
62
+ // ---------------------------------------------------------------------------
63
+ // QarRegistryClient
64
+ // ---------------------------------------------------------------------------
65
+ export class QarRegistryClient {
66
+ agents = new Map();
67
+ /**
68
+ * S9 — typed A2A endpoint registry. Lazy-allocated on first use so
69
+ * consumers who never register an A2A endpoint pay no extra memory.
70
+ * The bridge that consumes these registrations lives runtime-side in
71
+ * QAR; the SDK keeps registration purely local.
72
+ */
73
+ a2aRegistry = null;
74
+ // Map values are the NORMALIZED shape — URL-only configs are
75
+ // collapsed to `'remote-streamable-http'` by `normalizeMcpConfig` at
76
+ // register-time, so every stored entry has an explicit `transport`
77
+ // discriminator. Public-surface `getMcp` returns the normalized form
78
+ // (the only thing downstream code touches).
79
+ mcps = new Map();
80
+ /**
81
+ * Per-MCP projection policy. Keyed by registered MCP name.
82
+ * `prefixToolNames` defaults to `true` and `unavailability` defaults
83
+ * to `'fail'`; the map only stores the explicit consumer overrides so
84
+ * defaulting at read time keeps the policy lookup branch-free for the
85
+ * common case. Re-registration with `replace: true` rewrites the
86
+ * entry; `unregisterMcp` deletes it.
87
+ */
88
+ mcpPolicies = new Map();
89
+ /**
90
+ * Connection pool for remote / stdio MCPs. Owns one
91
+ * `@modelcontextprotocol/sdk` `Client` instance per registered MCP whose
92
+ * config is NOT `transport: 'sdk'`. The pool is lazy — instantiated only
93
+ * if/when a non-`sdk` config is registered, so consumers that never wire
94
+ * a remote MCP pay no `@modelcontextprotocol/sdk` runtime cost beyond the
95
+ * static import.
96
+ *
97
+ * SDK-transport (`'sdk'`) configs DO NOT enter the pool — their dispatch
98
+ * route is the existing `client.skillsMcpServer` bridge in
99
+ * `QodoClient.attachSkillsMcpBridge()` (and any consumer-built sibling).
100
+ * Pooling them would double-register the qodo-skills tools against a
101
+ * second dispatch path.
102
+ */
103
+ mcpPool = null;
104
+ /**
105
+ * @internal — hook set by `QodoClient` to keep the generic `tool.request`
106
+ * MCP-dispatch bridge attached only while at least one remote / stdio
107
+ * MCP is registered. Without this gate the bridge would shadow the
108
+ * dispatcher's "zero handlers → deny" path for consumers that registered
109
+ * no remote MCPs (any handler returning `undefined` defeats the deny
110
+ * fallback per `ToolClient`'s stack semantics).
111
+ *
112
+ * The QodoClient sets both callbacks once on `connect()`; `disconnect()`
113
+ * clears them. Pre-connect, the hooks are `undefined` — the registry
114
+ * still tracks the count and replays the most recent transition the
115
+ * first time a connect happens.
116
+ */
117
+ remoteMcpHook;
118
+ /** Tally of registered configs whose transport is NOT `'sdk'`. */
119
+ remoteMcpCount = 0;
120
+ /**
121
+ * Register a locally-built agent.
122
+ *
123
+ * Returns a branded `RegisteredAgentRef` the consumer can pass into
124
+ * `tasks.start({ agent_id: ref })` and other forward-looking surfaces
125
+ * (`spawnable_agents`).
126
+ *
127
+ * @throws {QodoRegistryConflictError} when an agent with `spec.name` is
128
+ * already registered and `opts.replace` is not `true`.
129
+ */
130
+ registerAgent(spec, opts) {
131
+ if (spec.name.length === 0) {
132
+ throw new QodoRegistryConflictError('agent', spec.name, 'agent name must be a non-empty string');
133
+ }
134
+ if (this.agents.has(spec.name) && opts?.replace !== true) {
135
+ throw new QodoRegistryConflictError('agent', spec.name, `agent '${spec.name}' is already registered; pass { replace: true } to overwrite`);
136
+ }
137
+ this.agents.set(spec.name, spec);
138
+ return { kind: 'agent', name: spec.name };
139
+ }
140
+ /**
141
+ * Register an MCP server the SDK can dispatch tool calls into.
142
+ *
143
+ * Returns a branded `RegisteredMcpRef` the consumer can reference in
144
+ * `AgentSpec.tools` (string form) or pass to forward-looking dispatch
145
+ * surfaces (the `tool.request` → MCP routing handler).
146
+ *
147
+ * @throws {QodoRegistryConflictError} when an MCP with `name` is already
148
+ * registered and `opts.replace` is not `true`.
149
+ */
150
+ registerMcp(name, config, opts) {
151
+ if (name.length === 0) {
152
+ throw new QodoRegistryConflictError('mcp', name, 'mcp name must be a non-empty string');
153
+ }
154
+ const isReplace = this.mcps.has(name);
155
+ if (isReplace && opts?.replace !== true) {
156
+ throw new QodoRegistryConflictError('mcp', name, `mcp '${name}' is already registered; pass { replace: true } to overwrite`);
157
+ }
158
+ // Normalize SDK1's URL-only shape (`{ url, headers? }` with no
159
+ // explicit `transport`) into the canonical `'remote-streamable-http'`
160
+ // form BEFORE any discrimination. Five surface shapes collapse to
161
+ // four dispatch paths.
162
+ const normalized = normalizeMcpConfig(config);
163
+ const newIsRemote = normalized.transport !== 'sdk';
164
+ // Two-phase commit: validate synchronously before any registry / pool
165
+ // / count mutation. If `McpClientPool.prepareEntry` throws (malformed
166
+ // URL, unsupported discriminator) the registry stays untouched and a
167
+ // subsequent retry can come through cleanly. The prepared `Client +
168
+ // Transport` pair carries no I/O until {@link McpClientPool.commitEntry}
169
+ // is called.
170
+ let prepared = null;
171
+ if (newIsRemote) {
172
+ if (this.mcpPool === null)
173
+ this.mcpPool = new McpClientPool();
174
+ // `newIsRemote` narrowing already excludes the `'sdk'` arm; the
175
+ // remaining union is `PoolableMcpConfig` (URL-only was collapsed
176
+ // upstream by `normalizeMcpConfig`).
177
+ prepared = this.mcpPool.prepareEntry(name, normalized);
178
+ }
179
+ // All synchronous validation passed — safe to commit registry side
180
+ // effects and the close-prior-then-install-new sequence.
181
+ let priorWasRemote = false;
182
+ if (isReplace) {
183
+ const prior = this.mcps.get(name);
184
+ priorWasRemote = prior !== undefined && prior.transport !== 'sdk';
185
+ // Close any pool entry for the replaced name. Idempotent — drops
186
+ // nothing when the prior config was `transport: 'sdk'`.
187
+ this.mcpPool?.removeAndClose(name);
188
+ }
189
+ // Store the NORMALIZED config in the registry so subsequent
190
+ // `getMcp(name)` returns the canonical shape and `_rebuildPoolEntries`
191
+ // doesn't have to re-normalize on reconnect. The URL-only shape was
192
+ // pure consumer-side ergonomic; downstream code (and tests) read
193
+ // off `.transport` and shouldn't have to handle the undefined case.
194
+ this.mcps.set(name, normalized);
195
+ if (prepared !== null && this.mcpPool !== null) {
196
+ // Install the prepared entry + fire the background connect.
197
+ this.mcpPool.commitEntry(name, prepared);
198
+ }
199
+ // Tally + bridge-hook bookkeeping. The count transitions from 0→1 fire
200
+ // `onFirstRegistered`, N>0→0 fires `onLastUnregistered` (delegated to
201
+ // QodoClient so the `tool.request` MCP bridge attaches symmetric to
202
+ // remote-MCP presence and never shadows the dispatcher's deny path).
203
+ const before = this.remoteMcpCount;
204
+ if (newIsRemote && !priorWasRemote)
205
+ this.remoteMcpCount += 1;
206
+ if (!newIsRemote && priorWasRemote)
207
+ this.remoteMcpCount -= 1;
208
+ this.applyRemoteMcpHook(before, this.remoteMcpCount);
209
+ // MCP projection policy. Defaults — `prefixToolNames: true`
210
+ // (matches OpenAI Agents SDK's `include_server_in_tool_names`)
211
+ // and `unavailability: 'fail'` (local-sidecar default; the consumer
212
+ // explicitly opts into degradation on `'warn'`).
213
+ this.mcpPolicies.set(name, {
214
+ prefixToolNames: opts?.prefixToolNames !== false,
215
+ unavailability: opts?.unavailability ?? 'fail',
216
+ });
217
+ return { kind: 'mcp', name };
218
+ }
219
+ applyRemoteMcpHook(before, after) {
220
+ if (this.remoteMcpHook === undefined)
221
+ return;
222
+ if (before === 0 && after > 0)
223
+ this.remoteMcpHook.onFirstRegistered();
224
+ else if (before > 0 && after === 0)
225
+ this.remoteMcpHook.onLastUnregistered();
226
+ }
227
+ /**
228
+ * Remove a previously-registered agent. Returns `true` if the agent was
229
+ * present, `false` if there was nothing to remove. Idempotent.
230
+ */
231
+ unregisterAgent(name) {
232
+ return this.agents.delete(name);
233
+ }
234
+ /** Remove a previously-registered MCP. Idempotent (see `unregisterAgent`). */
235
+ unregisterMcp(name) {
236
+ const prior = this.mcps.get(name);
237
+ const existed = this.mcps.delete(name);
238
+ if (existed) {
239
+ // Fire-and-forget close — `unregisterMcp` is sync so consumers can call
240
+ // it from anywhere (config diffing, hot-reload). The pool's
241
+ // `removeAndClose` logs but does not throw on close failure.
242
+ this.mcpPool?.removeAndClose(name);
243
+ this.mcpPolicies.delete(name);
244
+ if (prior !== undefined && prior.transport !== 'sdk') {
245
+ const before = this.remoteMcpCount;
246
+ this.remoteMcpCount = Math.max(0, before - 1);
247
+ this.applyRemoteMcpHook(before, this.remoteMcpCount);
248
+ }
249
+ }
250
+ return existed;
251
+ }
252
+ /** Lookup — undefined when no agent is registered under that name. */
253
+ getAgent(name) {
254
+ return this.agents.get(name);
255
+ }
256
+ /** Lookup — undefined when no MCP is registered under that name. */
257
+ getMcp(name) {
258
+ return this.mcps.get(name);
259
+ }
260
+ /** Presence check — handy in tests and conditional-register flows. */
261
+ hasAgent(name) {
262
+ return this.agents.has(name);
263
+ }
264
+ hasMcp(name) {
265
+ return this.mcps.has(name);
266
+ }
267
+ // -------------------------------------------------------------------------
268
+ // S9 — A2A endpoint registry. Paired with QAR Q1's outbound A2A bridge.
269
+ //
270
+ // The SDK side is pure typed registration; no A2A protocol library is
271
+ // bundled. Consumers register an endpoint (+ optional auth headers,
272
+ // inline AgentCard, HITL kind override) and pass the returned
273
+ // `RegisteredA2ARef` into graph spawnable_agents lists. The wire-side
274
+ // dispatch lives in QAR — see Q1's `a2a_bridge.py`.
275
+ // -------------------------------------------------------------------------
276
+ /**
277
+ * Register an external A2A endpoint as a spawnable agent.
278
+ *
279
+ * Returns a {@link RegisteredA2ARef} the consumer slots into
280
+ * graph spawnable_agents lists; QAR's outbound A2A bridge resolves
281
+ * the ref to the registered endpoint on dispatch.
282
+ *
283
+ * @throws {QodoRegistryConflictError} on empty name, empty endpoint,
284
+ * or duplicate name without `{ replace: true }`.
285
+ */
286
+ registerA2A(name, config, opts) {
287
+ if (this.a2aRegistry === null)
288
+ this.a2aRegistry = new A2ARegistry();
289
+ return this.a2aRegistry.register(name, config, opts);
290
+ }
291
+ /** Lookup — undefined when no A2A endpoint is registered under that name. */
292
+ getA2A(name) {
293
+ return this.a2aRegistry?.get(name);
294
+ }
295
+ /** Presence check. */
296
+ hasA2A(name) {
297
+ return this.a2aRegistry?.has(name) ?? false;
298
+ }
299
+ /** Snapshot of registered A2A endpoints. Stable order = registration order. */
300
+ listA2A() {
301
+ return this.a2aRegistry?.list() ?? [];
302
+ }
303
+ /**
304
+ * Remove a previously-registered A2A endpoint. Idempotent — returns
305
+ * `false` for unknown names and for callers that never registered an
306
+ * A2A endpoint at all (the registry is lazy-allocated).
307
+ */
308
+ unregisterA2A(name) {
309
+ return this.a2aRegistry?.unregister(name) ?? false;
310
+ }
311
+ /** Snapshot of currently-registered agents. Stable order = registration order. */
312
+ listAgents() {
313
+ return [...this.agents.values()];
314
+ }
315
+ /** Snapshot of currently-registered MCPs (name + config). */
316
+ listMcps() {
317
+ return [...this.mcps.entries()].map(([name, config]) => ({ name, config }));
318
+ }
319
+ /**
320
+ * @internal — list of MCP names registered with `transport: 'sdk'`
321
+ * (in-process handlers). Used by the MCP projection layer in
322
+ * `TaskClient` to widen its "known names" set so a consumer who
323
+ * registers an in-process MCP and references it in `mcpTools` doesn't
324
+ * trip the unknownMcps diagnostic.
325
+ *
326
+ * SDK-transport MCPs have no `tools/list` contract — projection
327
+ * skips them silently (no auto-projected tools). Their tools ship
328
+ * through consumer `tools[]` instead.
329
+ */
330
+ _listSdkTransportMcpNames() {
331
+ const names = [];
332
+ for (const [name, config] of this.mcps) {
333
+ if (config.transport === 'sdk')
334
+ names.push(name);
335
+ }
336
+ return names;
337
+ }
338
+ /**
339
+ * Projection-policy snapshot for the named MCP. Returns the
340
+ * defaults (`prefixToolNames: true`, `unavailability: 'fail'`) when the
341
+ * MCP is not registered — callers walk the registered set first, so
342
+ * a missing entry would be a programming error; defaulting keeps the
343
+ * signature `undefined`-free for the common path.
344
+ */
345
+ getMcpPolicy(name) {
346
+ return (this.mcpPolicies.get(name) ?? {
347
+ prefixToolNames: true,
348
+ unavailability: 'fail',
349
+ });
350
+ }
351
+ /**
352
+ * @internal — used by the MCP projection layer in `TaskClient` to
353
+ * settle catalogs + read the live pool snapshot before the wire write.
354
+ * Returns the pool instance (or `null` when no remote/stdio MCPs are
355
+ * registered).
356
+ */
357
+ _getMcpPool() {
358
+ return this.mcpPool;
359
+ }
360
+ /**
361
+ * Resolve a `string | RegisteredAgentRef` to the wire-shape `agent_id`.
362
+ *
363
+ * Strings pass through verbatim (they're treated as server-static agent
364
+ * ids — QAR is the authority on whether they exist). Non-string inputs
365
+ * are validated against this registry: a ref whose `name` isn't currently
366
+ * registered means either a stale ref (the agent was unregistered) or a
367
+ * lookalike `{ kind: 'agent', name: '...' }` object the consumer
368
+ * constructed manually instead of going through `registerAgent`. Both
369
+ * cases throw `QodoRegistryConflictError` to avoid silently dispatching
370
+ * the unverified `.name` over the wire.
371
+ *
372
+ * @internal Used by `TaskClient` to auto-fill the wire's `agent_id` when
373
+ * the caller passes a ref instead of a bare string.
374
+ */
375
+ /**
376
+ * Await the underlying MCP `Client.connect` for a registered remote
377
+ * / stdio MCP. Resolves when the connection is open and `listTools`
378
+ * has populated the per-MCP tool index; rejects with
379
+ * `QodoMcpClientError` on connection failure.
380
+ *
381
+ * Returns immediately for `transport: 'sdk'` configs (no connection
382
+ * lifecycle) and for unknown names (idempotent — same shape as
383
+ * `unregisterMcp`).
384
+ */
385
+ ready(name) {
386
+ return this.mcpPool?.ready(name) ?? Promise.resolve();
387
+ }
388
+ /**
389
+ * Return the cached tool catalog for a registered remote / stdio
390
+ * MCP. The catalog is populated during `register` (via the MCP
391
+ * SDK's `Client.listTools()`); awaits any in-flight connect.
392
+ *
393
+ * `undefined` for unknown names and for `transport: 'sdk'` configs (the
394
+ * in-process handler doesn't expose a structured tool catalog through
395
+ * this surface — qodo-skills callers go through `client.skillsMcpServer`).
396
+ */
397
+ async listMcpTools(name) {
398
+ return this.mcpPool?.listTools(name);
399
+ }
400
+ /**
401
+ * Invoke a tool against a registered remote / stdio MCP via the
402
+ * canonical `@modelcontextprotocol/sdk` `Client.callTool`. Awaits
403
+ * the underlying connection; throws `QodoMcpClientError` on
404
+ * connection failure and `QodoMcpToolError` on tool-side failure
405
+ * (either transport error or `isError: true` in the MCP envelope).
406
+ *
407
+ * Returns the raw MCP `{ content, isError? }` envelope unchanged — the
408
+ * SDK doesn't repackage; consumers handling the envelope already speak
409
+ * MCP shape (`McpToolResult` mirror in `src/skills/mcp/types.ts`).
410
+ */
411
+ callMcpTool(name, toolName, args) {
412
+ const pool = this.mcpPool;
413
+ if (pool === undefined || pool === null) {
414
+ throw new QodoRegistryConflictError('mcp', name, `mcp '${name}' is not registered (no remote / stdio MCPs on this client)`);
415
+ }
416
+ return pool.callTool(name, toolName, args);
417
+ }
418
+ /**
419
+ * Return the `mcpName` that owns a given tool name, or `undefined`
420
+ * when no registered remote / stdio MCP advertises it.
421
+ *
422
+ * Resolution order:
423
+ * 1. **Prefix form** — `mcpName.toolName` / `mcpName:toolName` /
424
+ * `mcpName/toolName` returns `mcpName` verbatim when an MCP by
425
+ * that name is registered (the suffix isn't validated against
426
+ * the cached catalog — the round-trip itself surfaces unknown
427
+ * tools as a typed `QodoMcpToolError`).
428
+ * 2. **Bare form** — scans the cached tool indices across every
429
+ * registered remote / stdio MCP and returns the first match.
430
+ * Equal-name collisions across MCPs resolve to the
431
+ * earlier-registered server (registration order).
432
+ *
433
+ * Used by `QodoClient`'s generic MCP bridge to route `tool.request`
434
+ * envelopes (carrying ToolCall.name strings) onto `callMcpTool`.
435
+ */
436
+ resolveMcpForTool(toolNameOrPrefixed) {
437
+ return this.mcpPool?.resolveMcpForTool(toolNameOrPrefixed);
438
+ }
439
+ /**
440
+ * @internal — awaits every pending remote/stdio MCP's `connect +
441
+ * listTools` cycle so bare-name resolution in the generic
442
+ * `tool.request` bridge doesn't race-lose against a fast first
443
+ * dispatch. No-op when the pool is empty or every catalog has already
444
+ * settled.
445
+ */
446
+ async _waitForMcpCatalogsToSettle() {
447
+ if (this.mcpPool === null)
448
+ return;
449
+ await this.mcpPool.waitForCatalogsToSettle();
450
+ }
451
+ /**
452
+ * @internal — used by `QodoClient.disconnect()` to close every pooled MCP
453
+ * `Client` on tear-down. Idempotent; safe to call when the pool is empty
454
+ * or already disposed. Registry state (`this.mcps`) is preserved so a
455
+ * subsequent `connect()` can rebuild the pool via {@link _rebuildPoolEntries}.
456
+ */
457
+ async _disposePool() {
458
+ if (this.mcpPool === null)
459
+ return;
460
+ await this.mcpPool.dispose();
461
+ }
462
+ /**
463
+ * @internal — invoked by `QodoClient.connect()` to register the bridge
464
+ * lifecycle callbacks AND immediately fire `onFirstRegistered` if any
465
+ * remote/stdio MCPs were registered pre-connect. Subsequent
466
+ * register/unregister cycles drive the hooks via the transition tally.
467
+ */
468
+ _installRemoteMcpHook(hook) {
469
+ this.remoteMcpHook = hook;
470
+ if (this.remoteMcpCount > 0)
471
+ hook.onFirstRegistered();
472
+ }
473
+ /**
474
+ * @internal — invoked by `QodoClient.disconnect()` to drop the bridge
475
+ * callbacks. The remote/stdio MCP count tally is preserved so a
476
+ * subsequent connect/install reconciles correctly against the registry.
477
+ */
478
+ _clearRemoteMcpHook() {
479
+ this.remoteMcpHook = undefined;
480
+ }
481
+ /**
482
+ * @internal — used by `QodoClient.connect()` to re-instantiate pool
483
+ * entries for remote / stdio configs that survive a disconnect cycle.
484
+ * Idempotent (skips entries already present in the pool); a no-op when
485
+ * the registry has no non-`sdk` configs. Connect failures surface on
486
+ * the first dependent call exactly the same way as eager
487
+ * `registerMcp`-time failures do.
488
+ *
489
+ * Synchronous prepare failures (malformed URL / unsupported transport
490
+ * discriminator that somehow made it into the registry) are
491
+ * **swallowed** at the per-entry level — connect has already committed
492
+ * the WS at this seam, and surfacing the throw would force the
493
+ * consumer to handle a partial-connect failure mode that the original
494
+ * `registerMcp` already enforced as impossible. The skipped entry
495
+ * stays in the registry's `mcps` map and `ready(name)` / `callTool(...)`
496
+ * still reject with the original construction error via the registry's
497
+ * happy path — but `QodoClient.connect()` itself succeeds. Returns
498
+ * the list of names that failed prepare so callers (and tests) can
499
+ * observe the skip.
500
+ */
501
+ _rebuildPoolEntries() {
502
+ const failures = [];
503
+ for (const [name, config] of this.mcps) {
504
+ if (config.transport === 'sdk')
505
+ continue;
506
+ if (this.mcpPool === null)
507
+ this.mcpPool = new McpClientPool();
508
+ if (this.mcpPool._hasEntry(name))
509
+ continue;
510
+ try {
511
+ // `mcps` only stores normalized configs (URL-only is collapsed at
512
+ // register-time), so `transport !== 'sdk'` narrows the remaining
513
+ // union to `PoolableMcpConfig`.
514
+ const prepared = this.mcpPool.prepareEntry(name, config);
515
+ this.mcpPool.commitEntry(name, prepared);
516
+ }
517
+ catch (err) {
518
+ // eslint-disable-next-line no-console
519
+ console.error(`[@qodo/sdk] _rebuildPoolEntries: failed to rebuild pool entry for MCP '${name}': ${err instanceof Error ? err.message : String(err)}`);
520
+ failures.push(name);
521
+ }
522
+ }
523
+ return failures;
524
+ }
525
+ resolveAgentId(idOrRef) {
526
+ if (typeof idOrRef === 'string')
527
+ return idOrRef;
528
+ if (!this.agents.has(idOrRef.name)) {
529
+ throw new QodoRegistryConflictError('agent', idOrRef.name, `agent '${idOrRef.name}' is not registered on this client. ` +
530
+ `Call client.qar.registerAgent({ name: '${idOrRef.name}', ... }) first, ` +
531
+ `or pass the agent id as a string for server-static dispatch.`);
532
+ }
533
+ return idOrRef.name;
534
+ }
535
+ }
536
+ //# sourceMappingURL=QarRegistryClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QarRegistryClient.js","sourceRoot":"","sources":["../../src/client/QarRegistryClient.ts"],"names":[],"mappings":"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"}