@qodo/sdk 0.13.4 → 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 -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
@@ -1,69 +0,0 @@
1
- /**
2
- * Public Tool Middleware API for SDK consumers.
3
- *
4
- * Middleware hooks run around tool execution, allowing consumers to inspect,
5
- * modify, or log tool calls and results without touching internal code.
6
- *
7
- * Safety guarantees:
8
- * - Protected fields (identifier, server_name, session_id) cannot be overwritten
9
- * - User middleware is wrapped in a configurable timeout (default 10 s)
10
- * - Errors in middleware are caught and reported, never crash the run
11
- */
12
- /** Default timeout for user-registered middleware hooks (ms). */
13
- export const MIDDLEWARE_TIMEOUT_MS = 10_000;
14
- /**
15
- * Fields on ToolData that middleware is NOT allowed to overwrite.
16
- * These are set by the engine and are essential for routing / identity.
17
- */
18
- export const PROTECTED_TOOL_FIELDS = new Set([
19
- 'identifier',
20
- 'server_name',
21
- 'session_id',
22
- ]);
23
- /**
24
- * Error class for middleware failures.
25
- * Contains the middleware name and phase for diagnostics.
26
- */
27
- export class ToolMiddlewareError extends Error {
28
- middlewareName;
29
- phase;
30
- cause;
31
- constructor(message, middlewareName, phase, cause) {
32
- super(message);
33
- this.middlewareName = middlewareName;
34
- this.phase = phase;
35
- this.cause = cause;
36
- this.name = 'ToolMiddlewareError';
37
- }
38
- }
39
- /**
40
- * Strip protected fields from a partial ToolData override.
41
- */
42
- export function stripProtectedFields(partial) {
43
- const cleaned = { ...partial };
44
- for (const field of PROTECTED_TOOL_FIELDS) {
45
- delete cleaned[field];
46
- }
47
- return cleaned;
48
- }
49
- /**
50
- * Wrap an async function with a timeout.
51
- * Rejects with ToolMiddlewareError if the timeout expires.
52
- */
53
- export function withTimeout(fn, timeoutMs, middlewareName, phase) {
54
- return new Promise((resolve, reject) => {
55
- const timer = setTimeout(() => {
56
- reject(new ToolMiddlewareError(`Middleware "${middlewareName}" timed out after ${timeoutMs}ms in ${phase}`, middlewareName, phase));
57
- }, timeoutMs);
58
- Promise.resolve(fn())
59
- .then((result) => {
60
- clearTimeout(timer);
61
- resolve(result);
62
- })
63
- .catch((err) => {
64
- clearTimeout(timer);
65
- reject(err);
66
- });
67
- });
68
- }
69
- //# sourceMappingURL=middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/sdk/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,YAAY;IACZ,aAAa;IACb,YAAY;CACb,CAAC,CAAC;AAyBH;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAG1B;IACA;IACA;IAJlB,YACE,OAAe,EACC,cAAsB,EACtB,KAAmC,EACnC,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,mBAAc,GAAd,cAAc,CAAQ;QACtB,UAAK,GAAL,KAAK,CAA8B;QACnC,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA0B;IAC7D,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,qBAAqB,EAAE,CAAC;QAC1C,OAAQ,OAAe,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,EAAwB,EACxB,SAAiB,EACjB,cAAsB,EACtB,KAAmC;IAEnC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CACJ,IAAI,mBAAmB,CACrB,eAAe,cAAc,qBAAqB,SAAS,SAAS,KAAK,EAAE,EAC3E,cAAc,EACd,KAAK,CACN,CACF,CAAC;QACJ,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;aAClB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,79 +0,0 @@
1
- /**
2
- * Fluent builder for constructing typed pipelines.
3
- *
4
- * Usage:
5
- * const pipeline = sdkPipeline<{ repo: string }>()
6
- * .step('lint', async ({ state, run }) => {
7
- * const result = await run('lint', { args: { path: state.repo } });
8
- * return { lintOutput: result.result.final_output };
9
- * })
10
- * .step('review', async ({ state, run }) => {
11
- * const result = await run('review', { extraInstructions: state.lintOutput });
12
- * return { reviewOutput: result.result.final_output };
13
- * })
14
- * .build();
15
- */
16
- import type { PipelineEntry, StepFn, GateFn, ErrorStrategy } from './types.js';
17
- export interface StepOptions<TState, TOut> {
18
- /** Error recovery strategy (default: 'throw'). */
19
- onError?: ErrorStrategy<TState, TOut>;
20
- }
21
- /**
22
- * Immutable pipeline builder that tracks accumulated state type TState.
23
- *
24
- * Each .step() call produces a new builder whose TState is the intersection
25
- * of the previous state and the step's output type. This gives full type
26
- * inference through the chain without explicit generics at each step.
27
- */
28
- export declare class PipelineBuilder<TState extends Record<string, any>, TInit extends Record<string, any> = TState> {
29
- constructor(entries?: PipelineEntry<TState>[]);
30
- /**
31
- * Add a sequential step to the pipeline.
32
- *
33
- * The step function receives the accumulated state and must return an
34
- * object whose keys are merged into the state for subsequent steps.
35
- */
36
- step<TOut extends Record<string, any>>(name: string, fn: StepFn<TState, TOut>, options?: StepOptions<TState, TOut>): PipelineBuilder<TState & TOut, TInit>;
37
- /**
38
- * Add a group of steps that execute in parallel.
39
- *
40
- * All steps in the group receive the same snapshot of state. Their
41
- * outputs are merged (Object.assign order matches declaration order).
42
- */
43
- parallel<TOut extends Record<string, any>>(steps: Array<{
44
- name: string;
45
- fn: StepFn<TState, TOut>;
46
- onError?: ErrorStrategy<TState, TOut>;
47
- }>): PipelineBuilder<TState & TOut, TInit>;
48
- /**
49
- * Add a pipeline-level gate.
50
- *
51
- * When the predicate returns false, all subsequent entries are skipped.
52
- */
53
- gate(predicate: GateFn<TState>, options?: {
54
- name?: string;
55
- }): PipelineBuilder<TState, TInit>;
56
- /**
57
- * Add a pipeline-level branch (if/else fork).
58
- *
59
- * When the condition returns true, the `true` path executes;
60
- * otherwise the optional `false` path executes.
61
- * Both branches must produce the same output type `TOut`.
62
- */
63
- branch<TOut extends Record<string, any>>(condition: GateFn<TState>, paths: {
64
- true: (b: PipelineBuilder<TState, TState>) => PipelineBuilder<TState & TOut, TState>;
65
- false?: (b: PipelineBuilder<TState, TState>) => PipelineBuilder<TState & TOut, TState>;
66
- }, options?: {
67
- name?: string;
68
- }): PipelineBuilder<TState & TOut, TInit>;
69
- /**
70
- * Finalize the pipeline definition.
71
- *
72
- * Returns the frozen list of entries for the runner to execute.
73
- */
74
- build(): Pipeline<TState, TInit>;
75
- }
76
- export declare class Pipeline<TState extends Record<string, any>, TInit extends Record<string, any> = TState> {
77
- constructor(entries: readonly PipelineEntry<TState>[]);
78
- }
79
- //# sourceMappingURL=PipelineBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PipelineBuilder.d.ts","sourceRoot":"","sources":["../../../src/sdk/pipeline/PipelineBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAKV,aAAa,EACb,MAAM,EACN,MAAM,EACN,aAAa,EACd,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,WAAW,CAAC,MAAM,EAAE,IAAI;IACvC,kDAAkD;IAClD,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CACvC;AAMD;;;;;;GAMG;AACH,qBAAa,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;gBAI7F,OAAO,GAAE,aAAa,CAAC,MAAM,CAAC,EAAO;IAIjD;;;;;OAKG;IACH,IAAI,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EACxB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAClC,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC;IAaxC;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvC,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KACvC,CAAC,GACD,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC;IAexC;;;;OAIG;IACH,IAAI,CACF,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EACzB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;IAYjC;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EACzB,KAAK,EAAE;QACL,IAAI,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;QACrF,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;KACxF,EACD,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC;IAmBxC;;;;OAIG;IACH,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;CAGjC;AAMD,qBAAa,QAAQ,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;gBAItF,OAAO,EAAE,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE;CAGtD"}
@@ -1,129 +0,0 @@
1
- /**
2
- * Fluent builder for constructing typed pipelines.
3
- *
4
- * Usage:
5
- * const pipeline = sdkPipeline<{ repo: string }>()
6
- * .step('lint', async ({ state, run }) => {
7
- * const result = await run('lint', { args: { path: state.repo } });
8
- * return { lintOutput: result.result.final_output };
9
- * })
10
- * .step('review', async ({ state, run }) => {
11
- * const result = await run('review', { extraInstructions: state.lintOutput });
12
- * return { reviewOutput: result.result.final_output };
13
- * })
14
- * .build();
15
- */
16
- // ---------------------------------------------------------------------------
17
- // Builder
18
- // ---------------------------------------------------------------------------
19
- /**
20
- * Immutable pipeline builder that tracks accumulated state type TState.
21
- *
22
- * Each .step() call produces a new builder whose TState is the intersection
23
- * of the previous state and the step's output type. This gives full type
24
- * inference through the chain without explicit generics at each step.
25
- */
26
- export class PipelineBuilder {
27
- /** @internal */
28
- _entries;
29
- constructor(entries = []) {
30
- this._entries = entries;
31
- }
32
- /**
33
- * Add a sequential step to the pipeline.
34
- *
35
- * The step function receives the accumulated state and must return an
36
- * object whose keys are merged into the state for subsequent steps.
37
- */
38
- step(name, fn, options) {
39
- const entry = {
40
- name,
41
- fn,
42
- onError: options?.onError ?? 'throw',
43
- };
44
- // Cast is safe: we widen TState to TState & TOut going forward
45
- return new PipelineBuilder([
46
- ...this._entries,
47
- entry,
48
- ]);
49
- }
50
- /**
51
- * Add a group of steps that execute in parallel.
52
- *
53
- * All steps in the group receive the same snapshot of state. Their
54
- * outputs are merged (Object.assign order matches declaration order).
55
- */
56
- parallel(steps) {
57
- const group = {
58
- kind: 'parallel',
59
- steps: steps.map((s) => ({
60
- name: s.name,
61
- fn: s.fn,
62
- onError: s.onError ?? 'throw',
63
- })),
64
- };
65
- return new PipelineBuilder([
66
- ...this._entries,
67
- group,
68
- ]);
69
- }
70
- /**
71
- * Add a pipeline-level gate.
72
- *
73
- * When the predicate returns false, all subsequent entries are skipped.
74
- */
75
- gate(predicate, options) {
76
- const entry = {
77
- kind: 'gate',
78
- name: options?.name ?? `gate-${this._entries.length}`,
79
- fn: predicate,
80
- };
81
- return new PipelineBuilder([
82
- ...this._entries,
83
- entry,
84
- ]);
85
- }
86
- /**
87
- * Add a pipeline-level branch (if/else fork).
88
- *
89
- * When the condition returns true, the `true` path executes;
90
- * otherwise the optional `false` path executes.
91
- * Both branches must produce the same output type `TOut`.
92
- */
93
- branch(condition, paths, options) {
94
- const trueBranch = paths.true(new PipelineBuilder());
95
- const falseBranch = paths.false
96
- ? paths.false(new PipelineBuilder())
97
- : new PipelineBuilder();
98
- const entry = {
99
- kind: 'branch',
100
- name: options?.name ?? `branch-${this._entries.length}`,
101
- condition,
102
- trueEntries: Object.freeze([...trueBranch._entries]),
103
- falseEntries: Object.freeze([...falseBranch._entries]),
104
- };
105
- return new PipelineBuilder([
106
- ...this._entries,
107
- entry,
108
- ]);
109
- }
110
- /**
111
- * Finalize the pipeline definition.
112
- *
113
- * Returns the frozen list of entries for the runner to execute.
114
- */
115
- build() {
116
- return new Pipeline(Object.freeze([...this._entries]));
117
- }
118
- }
119
- // ---------------------------------------------------------------------------
120
- // Pipeline (frozen, executable definition)
121
- // ---------------------------------------------------------------------------
122
- export class Pipeline {
123
- /** @internal */
124
- entries;
125
- constructor(entries) {
126
- this.entries = entries;
127
- }
128
- }
129
- //# sourceMappingURL=PipelineBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PipelineBuilder.js","sourceRoot":"","sources":["../../../src/sdk/pipeline/PipelineBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsBH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IAC1B,gBAAgB;IACP,QAAQ,CAA0B;IAE3C,YAAY,UAAmC,EAAE;QAC/C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,IAAI,CACF,IAAY,EACZ,EAAwB,EACxB,OAAmC;QAEnC,MAAM,KAAK,GAA+B;YACxC,IAAI;YACJ,EAAE;YACF,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO;SACrC,CAAC;QACF,+DAA+D;QAC/D,OAAO,IAAI,eAAe,CAAuB;YAC/C,GAAG,IAAI,CAAC,QAAiB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CACN,KAIE;QAEF,MAAM,KAAK,GAA0B;YACnC,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,EAAE,EAAE,CAAC,CAAC,EAAyB;gBAC/B,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO;aAC9B,CAAC,CAAC;SACJ,CAAC;QACF,OAAO,IAAI,eAAe,CAAuB;YAC/C,GAAG,IAAI,CAAC,QAAiB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,IAAI,CACF,SAAyB,EACzB,OAA2B;QAE3B,MAAM,KAAK,GAAyB;YAClC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACrD,EAAE,EAAE,SAAS;SACd,CAAC;QACF,OAAO,IAAI,eAAe,CAAgB;YACxC,GAAG,IAAI,CAAC,QAAiB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CACJ,SAAyB,EACzB,KAGC,EACD,OAA2B;QAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,eAAe,EAAkB,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK;YAC7B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,eAAe,EAAkB,CAAC;YACpD,CAAC,CAAC,IAAI,eAAe,EAAkB,CAAC;QAE1C,MAAM,KAAK,GAA2B;YACpC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,UAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACvD,SAAS;YACT,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAA4B;YAC/E,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAA4B;SAClF,CAAC;QACF,OAAO,IAAI,eAAe,CAAuB;YAC/C,GAAG,IAAI,CAAC,QAAiB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,OAAO,IAAI,QAAQ,CAAgB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAA4B,CAAC,CAAC;IACnG,CAAC;CACF;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,MAAM,OAAO,QAAQ;IACnB,gBAAgB;IACP,OAAO,CAAmC;IAEnD,YAAY,OAAyC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Executes a Pipeline definition against a QodoSDK instance.
3
- *
4
- * The runner is intentionally decoupled from the builder so that a single
5
- * pipeline definition can be executed multiple times with different SDK
6
- * instances and initial states.
7
- */
8
- import type { QodoSDK } from '../QodoSDK.js';
9
- import type { Pipeline } from './PipelineBuilder.js';
10
- import type { PipelineResult } from './types.js';
11
- import type { QodoSdkEvent } from '../events.js';
12
- export declare class PipelineExecutionError extends Error {
13
- readonly stepName: string;
14
- readonly cause?: Error | undefined;
15
- constructor(message: string, stepName: string, cause?: Error | undefined);
16
- }
17
- /**
18
- * Callback type for pipeline event notifications.
19
- */
20
- export interface PipelineEventCallback {
21
- (event: QodoSdkEvent): void;
22
- }
23
- /**
24
- * Execute a pipeline with the given SDK instance and initial state.
25
- * Optionally accepts an event callback to receive pipeline execution events.
26
- */
27
- export declare function runPipeline<TState extends Record<string, any>, TInit extends Record<string, any> = TState>(sdk: QodoSDK, pipeline: Pipeline<TState, TInit>, initialState: TInit, onEvent?: PipelineEventCallback): Promise<PipelineResult<TState>>;
28
- //# sourceMappingURL=PipelineRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PipelineRunner.d.ts","sourceRoot":"","sources":["../../../src/sdk/pipeline/PipelineRunner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAuC,MAAM,eAAe,CAAC;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAMV,cAAc,EAGf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,qBAAa,sBAAuB,SAAQ,KAAK;aAG7B,QAAQ,EAAE,MAAM;aAChB,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAC9G,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EACjC,YAAY,EAAE,KAAK,EACnB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAoFjC"}
@@ -1,326 +0,0 @@
1
- /**
2
- * Executes a Pipeline definition against a QodoSDK instance.
3
- *
4
- * The runner is intentionally decoupled from the builder so that a single
5
- * pipeline definition can be executed multiple times with different SDK
6
- * instances and initial states.
7
- */
8
- import { SdkEventType, SDK_PROTOCOL_V2 } from '../events.js';
9
- export class PipelineExecutionError extends Error {
10
- stepName;
11
- cause;
12
- constructor(message, stepName, cause) {
13
- super(message);
14
- this.stepName = stepName;
15
- this.cause = cause;
16
- this.name = 'PipelineExecutionError';
17
- }
18
- }
19
- /**
20
- * Execute a pipeline with the given SDK instance and initial state.
21
- * Optionally accepts an event callback to receive pipeline execution events.
22
- */
23
- export async function runPipeline(sdk, pipeline, initialState, onEvent) {
24
- const pipelineStart = Date.now();
25
- // State starts as TInit and accumulates step outputs to become TState at runtime
26
- let state = { ...initialState };
27
- const stepLogs = [];
28
- let seq = 0;
29
- const runId = `pipeline-${Date.now()}`;
30
- // Collect all step names for the started event.
31
- const allStepNames = collectStepNames(pipeline);
32
- emitEvent(onEvent, runId, seq++, SdkEventType.PipelineStarted, {
33
- entry_count: pipeline.entries.length,
34
- step_names: allStepNames,
35
- });
36
- try {
37
- const entries = pipeline.entries;
38
- for (let i = 0; i < entries.length; i++) {
39
- const entry = entries[i];
40
- if (isPipelineGate(entry)) {
41
- const { passed, nextSeq } = await evaluatePipelineGate(entry, state, onEvent, runId, seq);
42
- seq = nextSeq;
43
- if (!passed) {
44
- for (let j = i + 1; j < entries.length; j++) {
45
- addSkipLogs(entries[j], stepLogs);
46
- }
47
- break;
48
- }
49
- continue;
50
- }
51
- if (isPipelineBranch(entry)) {
52
- const { newState, logs, nextSeq } = await executeBranch(sdk, entry, state, onEvent, runId, seq);
53
- seq = nextSeq;
54
- state = { ...state, ...newState };
55
- stepLogs.push(...logs);
56
- continue;
57
- }
58
- if (isParallelGroup(entry)) {
59
- const { newState, logs, nextSeq } = await executeParallelGroup(sdk, entry, state, onEvent, runId, seq);
60
- seq = nextSeq;
61
- state = { ...state, ...newState };
62
- stepLogs.push(...logs);
63
- }
64
- else {
65
- const { newState, log, nextSeq } = await executeStep(sdk, entry, state, false, onEvent, runId, seq);
66
- seq = nextSeq;
67
- state = { ...state, ...newState };
68
- stepLogs.push(log);
69
- }
70
- }
71
- const completed = stepLogs.filter((s) => s.status === 'completed').length;
72
- const skipped = stepLogs.filter((s) => s.status === 'skipped').length;
73
- emitEvent(onEvent, runId, seq++, SdkEventType.PipelineCompleted, {
74
- duration_ms: Date.now() - pipelineStart,
75
- steps_completed: completed,
76
- steps_skipped: skipped,
77
- });
78
- return { state, steps: stepLogs };
79
- }
80
- catch (err) {
81
- const error = err instanceof Error ? err : new Error(String(err));
82
- const stepName = err instanceof PipelineExecutionError ? err.stepName : 'unknown';
83
- emitEvent(onEvent, runId, seq++, SdkEventType.PipelineError, {
84
- step_name: stepName,
85
- message: error.message,
86
- cause: err instanceof PipelineExecutionError ? err.cause : undefined,
87
- });
88
- throw err;
89
- }
90
- }
91
- // ---------------------------------------------------------------------------
92
- // Internal helpers
93
- // ---------------------------------------------------------------------------
94
- function isParallelGroup(entry) {
95
- return entry.kind === 'parallel';
96
- }
97
- function isPipelineGate(entry) {
98
- return entry.kind === 'gate';
99
- }
100
- function isPipelineBranch(entry) {
101
- return entry.kind === 'branch';
102
- }
103
- function collectEntryNames(entries) {
104
- const names = [];
105
- for (const entry of entries) {
106
- if (isPipelineGate(entry)) {
107
- names.push(entry.name);
108
- }
109
- else if (isPipelineBranch(entry)) {
110
- names.push(entry.name);
111
- names.push(...collectEntryNames(entry.trueEntries));
112
- names.push(...collectEntryNames(entry.falseEntries));
113
- }
114
- else if (isParallelGroup(entry)) {
115
- for (const step of entry.steps) {
116
- names.push(step.name);
117
- }
118
- }
119
- else {
120
- names.push(entry.name);
121
- }
122
- }
123
- return names;
124
- }
125
- function collectStepNames(pipeline) {
126
- return collectEntryNames(pipeline.entries);
127
- }
128
- function emitEvent(onEvent, runId, seq, type, data) {
129
- if (!onEvent)
130
- return;
131
- onEvent({
132
- protocol: SDK_PROTOCOL_V2,
133
- type,
134
- timestamp: Date.now(),
135
- seq,
136
- run_id: runId,
137
- session_id: '',
138
- data,
139
- });
140
- }
141
- async function evaluatePipelineGate(gate, state, onEvent, runId, seq) {
142
- let passed;
143
- try {
144
- passed = await gate.fn(state);
145
- }
146
- catch {
147
- passed = false;
148
- }
149
- emitEvent(onEvent, runId, seq++, SdkEventType.PipelineGateEvaluated, {
150
- step_name: gate.name,
151
- passed,
152
- pipeline_level: true,
153
- });
154
- return { passed, nextSeq: seq };
155
- }
156
- async function executeBranch(sdk, branch, state, onEvent, runId, seq) {
157
- let conditionResult;
158
- try {
159
- conditionResult = await branch.condition(state);
160
- }
161
- catch {
162
- conditionResult = false;
163
- }
164
- emitEvent(onEvent, runId, seq++, SdkEventType.PipelineBranchEvaluated, {
165
- branch_name: branch.name,
166
- condition_result: conditionResult,
167
- });
168
- const chosenEntries = conditionResult ? branch.trueEntries : branch.falseEntries;
169
- const skippedEntries = conditionResult ? branch.falseEntries : branch.trueEntries;
170
- const logs = [];
171
- let branchState = {};
172
- // Execute chosen path entries sequentially
173
- let currentState = state;
174
- for (let i = 0; i < chosenEntries.length; i++) {
175
- const entry = chosenEntries[i];
176
- if (isPipelineGate(entry)) {
177
- const { passed, nextSeq } = await evaluatePipelineGate(entry, currentState, onEvent, runId, seq);
178
- seq = nextSeq;
179
- if (!passed) {
180
- for (let j = i + 1; j < chosenEntries.length; j++) {
181
- addSkipLogs(chosenEntries[j], logs);
182
- }
183
- break;
184
- }
185
- continue;
186
- }
187
- if (isPipelineBranch(entry)) {
188
- const { newState, logs: branchLogs, nextSeq } = await executeBranch(sdk, entry, currentState, onEvent, runId, seq);
189
- seq = nextSeq;
190
- currentState = { ...currentState, ...newState };
191
- branchState = { ...branchState, ...newState };
192
- logs.push(...branchLogs);
193
- continue;
194
- }
195
- if (isParallelGroup(entry)) {
196
- const { newState, logs: groupLogs, nextSeq } = await executeParallelGroup(sdk, entry, currentState, onEvent, runId, seq);
197
- seq = nextSeq;
198
- currentState = { ...currentState, ...newState };
199
- branchState = { ...branchState, ...newState };
200
- logs.push(...groupLogs);
201
- }
202
- else {
203
- const { newState, log, nextSeq } = await executeStep(sdk, entry, currentState, false, onEvent, runId, seq);
204
- seq = nextSeq;
205
- currentState = { ...currentState, ...newState };
206
- branchState = { ...branchState, ...newState };
207
- logs.push(log);
208
- }
209
- }
210
- // Add skip logs for the non-taken path
211
- for (const entry of skippedEntries) {
212
- addSkipLogs(entry, logs);
213
- }
214
- // Add a branch log entry
215
- logs.unshift({
216
- name: branch.name,
217
- status: 'completed',
218
- durationMs: 0,
219
- branchTaken: conditionResult ? 'true' : 'false',
220
- });
221
- return { newState: branchState, logs, nextSeq: seq };
222
- }
223
- function addSkipLogs(entry, logs) {
224
- if (isPipelineGate(entry)) {
225
- logs.push({ name: entry.name, status: 'skipped', durationMs: 0 });
226
- }
227
- else if (isPipelineBranch(entry)) {
228
- logs.push({ name: entry.name, status: 'skipped', durationMs: 0 });
229
- for (const sub of entry.trueEntries)
230
- addSkipLogs(sub, logs);
231
- for (const sub of entry.falseEntries)
232
- addSkipLogs(sub, logs);
233
- }
234
- else if (isParallelGroup(entry)) {
235
- for (const step of entry.steps) {
236
- logs.push({ name: step.name, status: 'skipped', durationMs: 0 });
237
- }
238
- }
239
- else {
240
- logs.push({ name: entry.name, status: 'skipped', durationMs: 0 });
241
- }
242
- }
243
- async function executeStep(sdk, step, state, parallel, onEvent, runId, seq) {
244
- const start = Date.now();
245
- emitEvent(onEvent, runId, seq++, SdkEventType.PipelineStepStarted, {
246
- step_name: step.name,
247
- parallel,
248
- });
249
- // Build step context
250
- const ctx = {
251
- state,
252
- run: (commandOrPrompt, options) => {
253
- return sdk.run(commandOrPrompt, options);
254
- },
255
- stepName: step.name,
256
- };
257
- try {
258
- const output = await step.fn(ctx);
259
- const log = { name: step.name, status: 'completed', durationMs: Date.now() - start };
260
- emitEvent(onEvent, runId, seq++, SdkEventType.PipelineStepCompleted, {
261
- step_name: step.name,
262
- status: 'completed',
263
- duration_ms: log.durationMs,
264
- });
265
- return { newState: output ?? {}, log, nextSeq: seq };
266
- }
267
- catch (err) {
268
- const error = err instanceof Error ? err : new Error(String(err));
269
- if (step.onError === 'skip') {
270
- const log = {
271
- name: step.name,
272
- status: 'skipped',
273
- durationMs: Date.now() - start,
274
- error: error.message,
275
- };
276
- emitEvent(onEvent, runId, seq++, SdkEventType.PipelineStepCompleted, {
277
- step_name: step.name,
278
- status: 'skipped',
279
- duration_ms: log.durationMs,
280
- error: error.message,
281
- });
282
- return { newState: {}, log, nextSeq: seq };
283
- }
284
- if (typeof step.onError === 'function') {
285
- try {
286
- const recovered = await step.onError(error, state);
287
- const log = { name: step.name, status: 'completed', durationMs: Date.now() - start };
288
- emitEvent(onEvent, runId, seq++, SdkEventType.PipelineStepCompleted, {
289
- step_name: step.name,
290
- status: 'completed',
291
- duration_ms: log.durationMs,
292
- });
293
- return { newState: recovered ?? {}, log, nextSeq: seq };
294
- }
295
- catch (recoveryErr) {
296
- throw new PipelineExecutionError(`Step "${step.name}" recovery failed: ${recoveryErr?.message || recoveryErr}`, step.name, recoveryErr instanceof Error ? recoveryErr : undefined);
297
- }
298
- }
299
- // 'throw' (default)
300
- throw new PipelineExecutionError(`Step "${step.name}" failed: ${error.message}`, step.name, error);
301
- }
302
- }
303
- async function executeParallelGroup(sdk, group, state, onEvent, runId, seq) {
304
- // Each parallel step gets its own starting seq to avoid conflicts.
305
- // We'll collect events and replay them after all settle.
306
- const results = await Promise.allSettled(group.steps.map((step, i) => executeStep(sdk, step, state, true, onEvent, runId, seq + (i * 10))));
307
- // Advance seq past all parallel steps.
308
- seq += group.steps.length * 10;
309
- let merged = {};
310
- const logs = [];
311
- for (let i = 0; i < results.length; i++) {
312
- const result = results[i];
313
- if (result.status === 'fulfilled') {
314
- merged = { ...merged, ...result.value.newState };
315
- logs.push(result.value.log);
316
- }
317
- else {
318
- // If any parallel step throws (after its own onError handling),
319
- // the entire parallel group fails.
320
- const stepName = group.steps[i].name;
321
- throw new PipelineExecutionError(`Parallel step "${stepName}" failed: ${result.reason?.message || result.reason}`, stepName, result.reason instanceof Error ? result.reason : undefined);
322
- }
323
- }
324
- return { newState: merged, logs, nextSeq: seq };
325
- }
326
- //# sourceMappingURL=PipelineRunner.js.map