@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
package/LICENSE CHANGED
@@ -1,118 +1,31 @@
1
- Qodo SDK Software License Agreement
2
-
3
- Copyright (c) 2024-2025 Qodo Ltd. All Rights Reserved.
4
-
5
- IMPORTANT: READ THIS LICENSE AGREEMENT CAREFULLY BEFORE USING THIS SOFTWARE.
6
-
7
- 1. DEFINITIONS
8
-
9
- "Software" means the Qodo SDK, including all source code, object code, documentation,
10
- and any updates or modifications provided by Qodo Ltd.
11
-
12
- "Licensee" means the individual or entity that has agreed to this License.
13
-
14
- "Authorized Use" means use of the Software solely in connection with Qodo's services
15
- and with a valid API key or subscription obtained from Qodo Ltd.
16
-
17
- 2. LICENSE GRANT
18
-
19
- Subject to the terms of this Agreement, Qodo Ltd. grants Licensee a limited,
20
- non-exclusive, non-transferable, revocable license to use the Software solely for
21
- Authorized Use in connection with Qodo's services.
22
-
23
- 3. RESTRICTIONS
24
-
25
- Licensee shall NOT:
26
-
27
- (a) Copy, reproduce, or duplicate the Software except as necessary for Authorized Use;
28
-
29
- (b) Modify, adapt, translate, reverse engineer, decompile, disassemble, or create
30
- derivative works based on the Software;
31
-
32
- (c) Distribute, sublicense, lease, rent, loan, or otherwise transfer the Software
33
- to any third party;
34
-
35
- (d) Remove, alter, or obscure any proprietary notices, labels, or marks on the Software;
36
-
37
- (e) Use the Software to build a competing product or service;
38
-
39
- (f) Use the Software without a valid API key or subscription from Qodo Ltd.;
40
-
41
- (g) Circumvent any technical limitations or access controls in the Software;
42
-
43
- (h) Use the Software in any manner that violates applicable laws or regulations.
44
-
45
- 4. INTELLECTUAL PROPERTY
46
-
47
- The Software is proprietary to Qodo Ltd. and is protected by copyright, trade secret,
48
- and other intellectual property laws. Qodo Ltd. retains all right, title, and interest
49
- in and to the Software, including all intellectual property rights therein. No title
50
- to or ownership of the Software is transferred to Licensee.
51
-
52
- 5. CONFIDENTIALITY
53
-
54
- Licensee acknowledges that the Software contains trade secrets and confidential
55
- information of Qodo Ltd. Licensee agrees to maintain the confidentiality of the
56
- Software and not to disclose it to any third party without Qodo's prior written consent.
57
-
58
- 6. NO WARRANTY
59
-
60
- THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
61
- INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
62
- PARTICULAR PURPOSE, AND NONINFRINGEMENT. QODO LTD. DOES NOT WARRANT THAT THE
63
- SOFTWARE WILL BE ERROR-FREE OR UNINTERRUPTED.
64
-
65
- 7. LIMITATION OF LIABILITY
66
-
67
- IN NO EVENT SHALL QODO LTD. BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
68
- CONSEQUENTIAL, OR PUNITIVE DAMAGES, OR ANY LOSS OF PROFITS, REVENUE, DATA, OR
69
- USE, ARISING OUT OF OR RELATED TO THIS AGREEMENT OR THE SOFTWARE, EVEN IF QODO
70
- LTD. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. QODO LTD.'S TOTAL
71
- LIABILITY SHALL NOT EXCEED THE AMOUNTS PAID BY LICENSEE FOR THE SOFTWARE IN THE
72
- TWELVE (12) MONTHS PRECEDING THE CLAIM.
73
-
74
- 8. TERMINATION
75
-
76
- This license is effective until terminated. Qodo Ltd. may terminate this license
77
- immediately upon written notice if Licensee breaches any term of this Agreement.
78
- Upon termination, Licensee must cease all use of the Software and destroy all
79
- copies in Licensee's possession or control.
80
-
81
- 9. AUDIT RIGHTS
82
-
83
- Qodo Ltd. reserves the right to audit Licensee's use of the Software to verify
84
- compliance with this Agreement. Licensee agrees to cooperate with such audits
85
- and provide reasonable access to relevant records.
86
-
87
- 10. EXPORT COMPLIANCE
88
-
89
- Licensee agrees to comply with all applicable export and import laws and regulations
90
- in connection with the use of the Software.
91
-
92
- 11. GOVERNING LAW
93
-
94
- This Agreement shall be governed by and construed in accordance with the laws of
95
- the State of Israel, without regard to its conflict of laws principles. Any disputes
96
- arising under this Agreement shall be subject to the exclusive jurisdiction of the
97
- courts located in Tel Aviv, Israel.
98
-
99
- 12. ENTIRE AGREEMENT
100
-
101
- This Agreement constitutes the entire agreement between the parties concerning the
102
- subject matter hereof and supersedes all prior or contemporaneous agreements,
103
- representations, warranties, and understandings.
104
-
105
- 13. SEVERABILITY
106
-
107
- If any provision of this Agreement is held to be unenforceable, the remaining
108
- provisions shall continue in full force and effect.
109
-
110
- 14. CONTACT
111
-
112
- For licensing inquiries or permissions, contact:
113
- Qodo Ltd.
114
- Email: support@qodo.ai
115
- Website: https://www.qodo.ai
116
-
117
- BY USING THIS SOFTWARE, YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT,
118
- UNDERSTAND IT, AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
1
+ The Qodo SDK License
2
+
3
+ Copyright (c) 2024-2026 Qodo Ltd.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9
+ of the Software, and to permit persons to whom the Software is furnished to do
10
+ so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ EXCEPTION: Notwithstanding the permissions above, the Software may not be used,
16
+ in whole or substantial part, to develop, host, or operate any product or
17
+ service whose primary purpose is to provide AI agent runtime, agent
18
+ orchestration, agent lifecycle management, or substantially similar
19
+ capabilities to third parties on a commercial basis. This Exception does not
20
+ restrict: (a) building software agents that consume the Qodo Agent Runtime or
21
+ interoperate with services of Qodo Ltd.; (b) internal use of the Software
22
+ within a single organization; or (c) modification of the Software for any of
23
+ the foregoing permitted purposes.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
+ SOFTWARE.
package/README.md CHANGED
@@ -2,91 +2,134 @@
2
2
 
3
3
  Official TypeScript SDK for building AI-powered agents with Qodo.
4
4
 
5
+ > **Migrating from 1.x?** The full 1.x → 2.0 upgrade guide is at [`docs/sdk2/migration-from-1x.md`](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/migration-from-1x.md), with paired side-by-side examples in [`examples/migration-rosetta/`](https://github.com/qodo-ai/qodo-ts-sdk/tree/main/examples/migration-rosetta).
6
+ >
7
+ > **1.x users (legacy line, published as `0.13.x`):** the SDK is moving to a 2.0 trunk that targets the new Qodo Agent Runtime (QAR). The legacy line continues on the `release/1.x` branch with security and critical-bug patches only, on a calendar tied to command-backend's Sept 2026 EOL.
8
+
5
9
  ## Installation
6
10
 
7
11
  ```bash
8
- npm install @qodo/sdk zod
12
+ # 2.0 (alpha — the canonical advertised API)
13
+ npm install @qodo/sdk@next
14
+
15
+ # 1.x (legacy, command-backend-native — published as 0.13.x)
16
+ npm install @qodo/sdk
9
17
  ```
10
18
 
11
- **Requirements:** Node.js >= 18, ESM only
19
+ `@qodo/sdk@latest` resolves to the 1.x line until 2.0 GA flips the dist-tag (Sept 2026). Until then, install 2.0 explicitly with `@next`.
12
20
 
13
- ## Quick Start
21
+ **Requirements:** Node.js >= 20, ESM only
14
22
 
15
- ```typescript
16
- import { QodoSDK } from '@qodo/sdk';
23
+ ## Quick Start (2.0)
17
24
 
18
- const sdk = new QodoSDK();
25
+ ```typescript
26
+ import { QodoClient } from '@qodo/sdk';
19
27
 
20
- // Simple prompt
21
- const result = await sdk.prompt('Analyze this codebase and summarize the main components.');
22
- console.log(result.result.final_output);
28
+ const client = new QodoClient({
29
+ baseUrl: 'https://qar.qodo.ai',
30
+ auth: 'env', // reads QODO_API_KEY; ~/.qodo/auth.key fallback
31
+ });
32
+ await client.connect();
33
+
34
+ for await (const ev of client.tasks.start({
35
+ agent_id: 'my-agent',
36
+ input: { user_query: 'Analyze this codebase and summarize the main components.' },
37
+ })) {
38
+ switch (ev.kind) {
39
+ case 'task.delta':
40
+ process.stdout.write(JSON.stringify(ev.payload.delta) + '\n');
41
+ break;
42
+ case 'task.done':
43
+ console.log(`\n[done status=${ev.payload.status}]`);
44
+ break;
45
+ case 'error':
46
+ console.error(`[error ${ev.payload.code}] ${ev.payload.message}`);
47
+ break;
48
+ }
49
+ }
23
50
 
24
- await sdk.dispose();
51
+ await client.disconnect();
25
52
  ```
26
53
 
27
- ### Streaming
54
+ `for await` is the canonical streaming primitive — there's no separate `run()` / `stream()` / `prompt()`. The full vocabulary of envelope kinds plus `qar.client.*` lifecycle events for reconnect/replay is documented in the [Public API reference](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/public-api.md).
55
+
56
+ ### Cross-pod session identity (opt-in)
57
+
58
+ For consumers that need cross-pod serialization of "the same logical work-unit" — Slack thread, GitHub PR, customer issue — pass `idempotencyKey` to opt into QAR's deterministic session-id derivation. Two pods receiving the same `(tenant_id, idempotencyKey)` derive the same `session_id` and serialize through QAR's lease table; without the field, every call gets a fresh `session_id` (DX default — right for one-shot scripts and single-process consumers).
28
59
 
29
60
  ```typescript
30
- import { QodoSDK, SdkEventType, matchSdkEvent } from '@qodo/sdk';
61
+ const stream = client.tasks.startWithAgent(
62
+ { agent: myAgent, input: { user_query: 'review this PR' } },
63
+ // Encode your fine scope into the key — two-layer scoping principle:
64
+ // tenant_id is added server-side; the consumer-supplied key carries
65
+ // the finer subject (PR number, thread id, issue id).
66
+ { idempotencyKey: `${owner}/${repo}:pr:${prNumber}` },
67
+ );
68
+
69
+ // `stream.taskId` is synchronous and equals the FIRST outbound
70
+ // task.start.message_id. Use it for the pre-admission cancel race —
71
+ // `client.tasks.cancel(stream.taskId)` immediately after the start call.
72
+ console.log('taskId:', stream.taskId);
73
+
74
+ // `stream.admittedTaskId` is a Promise that resolves to the SERVER's
75
+ // canonical task_id once `task.started` arrives. On the omitted-key
76
+ // path it equals `taskId`. On the opt-in deterministic-key path with
77
+ // admission_in_progress retries it MAY DIFFER from `taskId` — the SDK
78
+ // rotates message_ids per retry while the canonical id is whatever
79
+ // the winning attempt's `task.started` reports. Use this id for
80
+ // cancel / continue / resubscribe AFTER admission completes.
81
+ const admittedTaskId = await stream.admittedTaskId;
82
+
83
+ // `stream.sessionId` resolves on the same admission ack. Await it
84
+ // before any cross-pod operation (e.g. forwarding to another pod via
85
+ // Bulletin for `task.resubscribe`).
86
+ const sessionId = await stream.sessionId;
87
+
88
+ for await (const ev of stream) { /* … */ }
89
+ ```
31
90
 
32
- const sdk = new QodoSDK();
91
+ Both `admittedTaskId` and `sessionId` settle independently of consumer iteration — the SDK's internal admission driver advances the retry loop and resolves/rejects both Promises within `PENDING_ADMISSION_TIMEOUT` (5 min default). `await stream.sessionId` BEFORE the first `for await` cannot hang.
33
92
 
34
- for await (const ev of sdk.streamPrompt('Explain this repository structure.')) {
35
- matchSdkEvent(ev, {
36
- [SdkEventType.MessageDelta]: (e) => process.stdout.write(e.data.delta),
37
- [SdkEventType.Final]: (e) => console.log('\n--- Done ---'),
38
- default: () => {},
39
- });
40
- }
93
+ **Validation**: keys must be 1–512 **Unicode code points** with no NUL byte. Invalid keys throw `QodoIdempotencyKeyValidationError` synchronously, before the wire round-trip.
41
94
 
42
- await sdk.dispose();
43
- ```
95
+ **Don't pass `Date.now()` or a fresh `randomUUID()` per call** — the first collides on rapid-fire calls within clock resolution; the second works but defeats the purpose. Omit the field instead and let the server mint.
44
96
 
45
- ### Interactive Mode
97
+ **Lost-ack retry semantics**: the omitted-key path is intentionally non-idempotent across `task.start` retries. The SDK does NOT silently retry transport-failed `task.start` envelopes when `idempotencyKey` is absent — a retry without a sticky key starts a SECOND fresh session. Consumers requiring lost-ack idempotency MUST pass a deterministic key (domain-derived or a sticky per-attempt UUIDv7).
46
98
 
47
- Enable `interactiveMode` for chat applications where the agent should ask clarifying questions:
99
+ **`admission_in_progress` retry**: when two pods race the same `(tenant_id, idempotencyKey)`, QAR returns the retryable `admission_in_progress` error. The SDK honors the server's `retry_after_ms` hint when present and falls back to exponential backoff with jitter (initial 100 ms, doubling, capped at 5 min) otherwise. After the cap the SDK throws `QodoAdmissionTimeoutError` carrying the scoped `session_id` so the caller can `task.resubscribe` if recovery is possible. The terminal `admission_stalled` server emission surfaces immediately as `QodoAdmissionStalledError` (same `sessionId` field).
48
100
 
49
- ```typescript
50
- const sdk = new QodoSDK({
51
- interactiveMode: true, // Agent can ask clarifying questions
52
- });
53
- ```
101
+ Full design rationale and worked examples: [QAR D-16 ADR](https://github.com/qodo-ai/qodo-agent-runtime/blob/ec7705f96ecadf728d27ea022c51923a75ec93f8/knowledge/decisions/D-16-session-identity.md).
54
102
 
55
- By default, the SDK operates non-interactively (ideal for CI/CD and automation).
103
+ ### Tools
56
104
 
57
- ### Structured Output with Zod
105
+ Register a handler for inbound `tool.request` envelopes. The wire is parallel-batched: `req.payload.calls: ToolCall[]` (always a list, even for a single call) plus a required `req.payload.node_name`. Return one `ToolResponseResult` per call (positional array) or — when you know every request is single-call — a single result that the SDK auto-batches.
58
106
 
59
107
  ```typescript
60
- import { QodoSDK, sdkAgent, sdkCommand } from '@qodo/sdk';
61
- import { z } from 'zod';
62
-
63
- const agent = sdkAgent({
64
- commands: {
65
- analyze: sdkCommand({
66
- name: 'analyze',
67
- description: 'Analyze code quality',
68
- instructions: 'Analyze the provided code and return structured feedback.',
69
- args: z.object({
70
- file: z.string().describe('Path to the file to analyze'),
71
- }),
72
- output: z.object({
73
- issues: z.array(z.object({
74
- line: z.number().describe('Line number'),
75
- severity: z.enum(['info', 'warning', 'error']).describe('Issue severity'),
76
- message: z.string().describe('Issue description'),
77
- })).describe('List of issues found'),
78
- summary: z.string().describe('Brief summary of code quality'),
79
- }),
80
- }),
81
- },
82
- });
108
+ import { ToolDeniedError } from '@qodo/sdk';
109
+
110
+ const sub = client.tools.onRequest((req) =>
111
+ req.payload.calls.map((call) => {
112
+ if (call.name === 'echo') {
113
+ return { outcome: 'success', result: { echoed: call.arguments } };
114
+ }
115
+ if (call.name.startsWith('forbidden_')) {
116
+ // Return-style denial keeps per-call attribution; a `throw new
117
+ // ToolDeniedError(...)` would deny the whole batch.
118
+ return { outcome: 'denied', error: 'blocked by policy' };
119
+ }
120
+ return { outcome: 'error', error: `unknown tool: ${call.name}` };
121
+ }),
122
+ );
123
+ // later: sub.unsubscribe();
124
+ ```
83
125
 
84
- const sdk = QodoSDK.fromAgent(agent);
85
- const result = await sdk.run('analyze', { args: { file: 'src/main.ts' } });
86
- console.log(result.result.structured_output);
126
+ Stacking handlers compose approval middleware (policy first, dispatcher second). Deep dive in the [Tools guide](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/tools.md).
87
127
 
88
- await sdk.dispose();
89
- ```
128
+ ### Migrating from 1.x
129
+
130
+ TL;DR: `QodoSDK` → `QodoClient`, `sdk.run/stream/prompt` → `for await client.tasks.start({...})`, `sdkAgent`/`sdkCommand` removed (agents are server-side now), `IDERetrievalRequest` → `ToolRequestEnvelope`, `Resume`/`ResumeAck` machinery removed (server-driven replay), `onTransportEvent` removed (lifecycle events on the same iterator). Auth is unchanged.
131
+
132
+ Full guide with per-export migration table: [`docs/sdk2/migration-from-1x.md`](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/migration-from-1x.md). Paired side-by-side examples: [`examples/migration-rosetta/`](https://github.com/qodo-ai/qodo-ts-sdk/tree/main/examples/migration-rosetta).
90
133
 
91
134
  ## Authentication
92
135
 
@@ -98,87 +141,56 @@ export QODO_API_KEY=your_api_key_here
98
141
  mkdir -p ~/.qodo && echo "your_api_key_here" > ~/.qodo/auth.key
99
142
  ```
100
143
 
101
- ## Optional Dependencies
102
-
103
- The SDK includes built-in tool servers that work out of the box. Some tools have optional system dependencies for enhanced functionality:
104
-
105
- | Tool | Dependency | Purpose | Install |
106
- |------|------------|---------|---------|
107
- | `ripgrep_search` | [ripgrep](https://github.com/BurntSushi/ripgrep) | Fast code/text search | See below |
108
- | `git_*` | git | Git operations | Usually pre-installed |
109
- | `shell_execute` | shell | Command execution | Built-in |
110
-
111
- ### Ripgrep
112
-
113
- For the `ripgrep_search` tool, you have two options:
114
-
115
- **Option 1: Install `@vscode/ripgrep` (Recommended)**
116
-
117
- ```bash
118
- npm install @vscode/ripgrep
119
- ```
120
-
121
- This bundles ripgrep binaries for all platforms - no system installation needed. The SDK auto-detects it.
122
-
123
- **Option 2: System ripgrep**
124
-
125
- ```bash
126
- # macOS
127
- brew install ripgrep
128
-
129
- # Ubuntu/Debian
130
- apt install ripgrep
144
+ In code, `auth: 'env'` reads `QODO_API_KEY` first and falls back to `~/.qodo/auth.key`. Pass `auth: { apiKey: '...' }` to supply the token directly, or `auth: { provider: () => Promise<string> }` to plug in a custom token source.
131
145
 
132
- # Windows
133
- choco install ripgrep
134
- ```
146
+ ## TypeScript / Node
135
147
 
136
- If ripgrep is not available, the `ripgrep_search` tool will be unavailable and the SDK will log a warning. All other functionality works normally.
148
+ Full type definitions ship in the package. The SDK targets ES2022 + NodeNext modules, requires Node.js >= 20, and is ESM only `require()` is not supported. See the [Public API reference](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/public-api.md) for the canonical exported surface.
137
149
 
138
- ## Claude Code Skill
150
+ ## Documentation
139
151
 
140
- The SDK ships with a Claude Code skill that provides context-aware assistance when building Qodo agents. Install it with:
152
+ > Full documentation lives in the repository. Repository access is currently restricted to Qodo organization members if you need a deep reference link to resolve, contact [support@qodo.ai](mailto:support@qodo.ai).
141
153
 
142
- ```bash
143
- # Install to your project
144
- npx @qodo/sdk install-skill
154
+ ### 2.0 (canonical)
145
155
 
146
- # Or install globally (available in all projects)
147
- npx @qodo/sdk install-skill --global
148
- ```
156
+ **Learn the SDK** (in order):
149
157
 
150
- Once installed, use `/qodo-agent` in Claude Code to get help with agent configuration, SDK APIs, and common patterns.
158
+ | Track | Description |
159
+ |-------|-------------|
160
+ | [Tutorial](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/tutorial/00-overview.md) | 8 chapters: `npm install` → first task → tools → MCP → HITL → multi-agent → OTel → production checklist |
161
+ | [Concept guides](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/concepts/00-index.md) | Mental model behind each primitive: agent spec, tools, HITL, skills, sessions, observability, error handling |
162
+ | [Use cases](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/usecases.md) | Three flagship reference implementations: doc-qa, slack-bot, agentic-docs-updater |
163
+ | [Cookbook](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/cookbook/00-index.md) | Lookup-shaped recipes: cancel, resume, reconnect, MCP subset, HITL, multi-agent, OTel, errors, testing, auth |
151
164
 
152
- ## Documentation
165
+ **Reference** (every field, every error):
153
166
 
154
167
  | Guide | Description |
155
168
  |-------|-------------|
156
- | [Getting Started](docs/getting-started.md) | Installation, setup, core concepts |
157
- | [API Reference](docs/api-reference.md) | QodoSDK class, methods, options |
158
- | [Agent Configuration](docs/agent-configuration.md) | Commands, modes, triggers, TOML/YAML |
159
- | [Event Streaming](docs/event-streaming.md) | All events, handlers, patterns |
160
- | [Tool Servers](docs/tool-servers.md) | Filesystem, git, shell, ripgrep tools |
161
- | [Schema Builders](docs/schema-builders.md) | sdkAgent, sdkCommand, Zod integration |
162
- | [Utilities](docs/utilities.md) | InfoClient, SessionsClient, Tracker |
169
+ | [Migration from 1.x](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/migration-from-1x.md) | Canonical 1.x → 2.0 upgrade guide; per-export table, recipes, FAQ |
170
+ | [Public API](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/public-api.md) | `QodoClient`, connect, `tasks.start/continue/cancel`, errors, backpressure |
171
+ | [Tools](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/tools.md) | `client.tools.onRequest` / `respond`, stacking, error mapping |
172
+ | [MCP tools](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/mcp-tools.md) | `mcpTools` projection, auto-discovery, fallback bridge |
173
+ | [Reconnect + replay](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/reconnect-replay.md) | Auto-reconnect, `tasks.resubscribe`, `replay_anchor_missing` |
174
+ | [Observability](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/observability.md) | OTel attribute taxonomy, span boundaries, skip-list, cardinality |
175
+ | [Event surfaces](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/sdk2/event-surfaces.md) | `bulletin` / `artifacts` / `state` / `agents` observers |
176
+ | [Release policy](https://github.com/qodo-ai/qodo-ts-sdk/blob/main/docs/release-policy.md) | Versioning, branch rules, backport policy, EOL calendar |
163
177
 
164
178
  ## Examples
165
179
 
166
- See the [`examples/`](examples/) directory:
180
+ End-to-end runnable scripts live in [`examples/`](https://github.com/qodo-ai/qodo-ts-sdk/tree/main/examples). Most are env-gated on `QAR_BASE_URL` and exit cleanly when unset — safe to clone and run.
167
181
 
168
- - `run-chat.mjs` - Simple blocking execution
169
- - `stream-chat.mjs` - Streaming with event handling
170
- - `agent-object.mjs` - Code-defined agent with Zod schemas
171
- - `approval-policy.mjs` - Custom tool approval policies
182
+ - [`examples/sdk2/`](https://github.com/qodo-ai/qodo-ts-sdk/tree/main/examples/sdk2) — `hello-task`, `tool-roundtrip`, `multi-agent-observer`, MCP auto-discovery, end-to-end live-cluster smoke.
183
+ - [`examples/tutorial/`](https://github.com/qodo-ai/qodo-ts-sdk/tree/main/examples/tutorial) companion code for the tutorial chapters (HITL, MCP, OTel, multi-agent).
184
+ - [`examples/usecases/`](https://github.com/qodo-ai/qodo-ts-sdk/tree/main/examples/usecases) three flagship reference implementations: doc-qa, slack-bot, agentic-docs-updater.
185
+ - [`examples/migration-rosetta/`](https://github.com/qodo-ai/qodo-ts-sdk/tree/main/examples/migration-rosetta) paired 1.x/2.0 files for every common upgrade pattern.
172
186
 
173
187
  ```bash
188
+ export QAR_BASE_URL=https://qar.dev.qodo.ai
174
189
  export QODO_API_KEY=your_key
175
- node examples/run-chat.mjs
190
+ export QAR_AGENT_ID=health
191
+ npx tsx examples/sdk2/hello-task.ts
176
192
  ```
177
193
 
178
- ## TypeScript
179
-
180
- Full type definitions included. See [API Reference](docs/api-reference.md#typescript-exports) for all exports.
181
-
182
194
  ## License
183
195
 
184
- See [LICENSE](LICENSE) file.
196
+ See [LICENSE](LICENSE). The SDK ships under an MIT-style license with a protective exception that bars re-use to build competing AI agent runtimes; consumer agents that interoperate with the Qodo Agent Runtime are unaffected.
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * `qodo-skills` CLI binary entrypoint (T-0011).
4
+ *
5
+ * Defers to `dist/skills/cli/index.js#runSkillsCli`; the bin shim is
6
+ * intentionally tiny so the published artifact stays minimal and the
7
+ * implementation can grow inside `src/skills/cli/`.
8
+ */
9
+
10
+ import { runSkillsCli, defaultCliIo } from '../dist/skills/cli/index.js';
11
+
12
+ const code = await runSkillsCli(process.argv.slice(2), defaultCliIo());
13
+ process.exit(code);
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: code-review
3
+ description: Review a pull request diff for security issues, performance regressions, correctness bugs, and adherence to the project's conventions. Trigger keywords — review, PR review, code review, audit code, look at this change, what's wrong with this diff, check my pull request.
4
+ when_to_use: When the user asks for feedback on a diff, a pull request URL, a changeset, a commit, or a series of files they have just edited. Especially useful before merging or when the user explicitly invites criticism.
5
+ vendor: qodo
6
+ version: 1.0.0
7
+ ---
8
+
9
+ # Code review
10
+
11
+ You are reviewing a code change. Be specific, actionable, and concise.
12
+
13
+ ## What to check
14
+
15
+ Walk the diff once per dimension and only report findings you'd defend in a PR review:
16
+
17
+ - **Correctness**: logic errors, off-by-one, null handling, race conditions, exception swallowing, control-flow gaps. Match the change against the intent the author stated (commit message, PR description).
18
+ - **Security**: injection (SQL, command, prompt), insecure deserialisation, secrets in code, weak crypto, broken auth, IDOR, SSRF. Where the diff touches I/O boundaries, check input validation. Where it touches identity, check authorisation.
19
+ - **Performance**: N+1 queries, accidental quadratic loops, unbounded buffers, missing cancellation in long-running async work. Don't speculate; cite the loop or the call site.
20
+ - **Style and conventions**: only call out drift from patterns visible elsewhere in the codebase. Project-specific conventions trump general best practice — read the surrounding code before judging.
21
+
22
+ ## Output format
23
+
24
+ Group findings by severity: **Blocker**, **High**, **Medium**, **Low**, **Nit**. For each, write one line:
25
+
26
+ ```
27
+ [Severity] path/to/file.ext:Lstart-Lend — finding. Suggested fix or "consider <X>".
28
+ ```
29
+
30
+ Skip the dimension entirely if you have nothing for it. A short review is a confidence signal; padding with low-value nits is noise. If the change is clean, say so explicitly.
31
+
32
+ ## What NOT to do
33
+
34
+ - Don't restate what the diff does. The reviewer can read it.
35
+ - Don't suggest renames or formatting unless they'd land in the next style commit anyway.
36
+ - Don't propose refactors outside the diff's scope unless they're load-bearing for the change.
37
+ - Don't quote large blocks of code back; cite line ranges.
38
+
39
+ ## Calibration
40
+
41
+ If the change is genuinely good, say `LGTM — <one-line why>` and stop. Reviewers who never approve cleanly become noise the author learns to ignore.
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: pr-summary
3
+ description: Generate a pull-request summary from a diff or list of files. Produces a short title, a 2-3 bullet "what changed", and a test-plan checklist. Trigger keywords — summarize PR, write a PR description, draft pull request, describe this diff, what does this change do, generate pr summary.
4
+ when_to_use: When the user is preparing to open or update a pull request and asks for a summary, description, or release-note-style writeup of a diff. Especially useful when the diff spans multiple files and the author wants the framing extracted before they edit it.
5
+ vendor: qodo
6
+ version: 1.0.0
7
+ ---
8
+
9
+ # PR summary
10
+
11
+ Generate a pull-request description that a reviewer can act on in under a minute.
12
+
13
+ ## Output template
14
+
15
+ ```markdown
16
+ ## Title
17
+
18
+ <one short imperative line, ≤70 chars, no trailing punctuation>
19
+
20
+ ## Summary
21
+
22
+ - <what changed, one bullet>
23
+ - <why it changed, one bullet>
24
+ - <any caller-facing impact, one bullet — skip if none>
25
+
26
+ ## Test plan
27
+
28
+ - [ ] <how the change was verified locally>
29
+ - [ ] <regression scope the reviewer should re-check>
30
+ - [ ] <any manual steps for staging / production>
31
+ ```
32
+
33
+ ## Style rules
34
+
35
+ - **Title is imperative present**: "Add X", "Fix Y", "Remove Z". Not "Added", "Fixes".
36
+ - **Summary explains the why, not the what**. The diff already shows the what. The reviewer needs the motivation: bug context, design decision, ticket goal.
37
+ - **Test plan is the reviewer's checklist**, not a confession of what you did. Frame each item as something someone else could run.
38
+ - **No marketing language**. No "improved", "enhanced", "simplified" without specifics. Either cite a metric or describe the concrete change.
39
+ - **No co-author trailers** unless explicitly requested. The user controls attribution.
40
+
41
+ ## When the diff is large
42
+
43
+ If you're summarising more than ~500 lines or 10+ files, group the summary by sub-system rather than flat-listing every change. Each subsection gets one bullet:
44
+
45
+ ```markdown
46
+ ### `src/auth/`
47
+ - <one bullet>
48
+
49
+ ### `tests/`
50
+ - <one bullet>
51
+ ```
52
+
53
+ ## When the diff is trivial
54
+
55
+ A one-line summary is appropriate. Don't pad to fit the template — concise descriptions beat templated boilerplate. Output the title plus one bullet.
56
+
57
+ ## See also
58
+
59
+ When the author also wants line-by-line review notes, suggest `qodo/code-review` instead. PR summary is the framing; code review is the gate.
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: test-gen
3
+ description: Generate unit or integration tests for a target file or function. Picks the project's existing test framework, mirrors the surrounding test style, and covers the happy path plus the edge cases the implementation guards against. Trigger keywords — write tests, generate tests, add coverage, test this function, missing tests, what cases am I missing.
4
+ when_to_use: When the user has just written, modified, or pointed at code that lacks coverage and asks for tests. Especially useful when the test framework + style are already established in the project — this skill mirrors the existing tests rather than imposing a generic template.
5
+ arguments:
6
+ - name: target
7
+ description: Path to the file (or function within a file) that needs tests. Optional — defaults to the file the user is currently discussing.
8
+ vendor: qodo
9
+ version: 1.0.0
10
+ ---
11
+
12
+ # Test generation
13
+
14
+ Generate tests that match how the project already writes them.
15
+
16
+ ## Before writing anything
17
+
18
+ Read these in order so the generated tests fit:
19
+
20
+ 1. **The target file.** Identify the public surface, the failure modes the implementation explicitly guards against, and any nontrivial invariants.
21
+ 2. **The nearest existing test file** in the project (same directory, sibling `tests/` directory, or `__tests__/`). Mirror its imports, naming convention, fixture pattern, assertion style. If the project uses `describe/it`, don't switch to `test()`. If the project uses `assert`, don't switch to `expect`.
22
+ 3. **The project's test runner config** (`vitest.config`, `jest.config`, `package.json` scripts). Confirm the runner before assuming.
23
+
24
+ If no existing tests are present, fall back to the framework the package.json declares, in this priority: `vitest` → `jest` → `mocha` → `node:test`. Output the chosen runner in a one-line preamble so the user can redirect.
25
+
26
+ ## What to cover
27
+
28
+ For each public function or class method exposed by the target:
29
+
30
+ - **Happy path**: the documented contract, single test.
31
+ - **Boundary cases**: empty input, single-element input, the largest input the implementation explicitly handles. Skip unbounded "what if N=10^9" speculation.
32
+ - **Documented error paths**: each `throw`, each `return null/undefined`, each `if (!X)` early return. One test per branch.
33
+ - **Side effects**: if the function writes to disk, the network, or shared state, assert the effect — not just the return value.
34
+
35
+ ## What NOT to do
36
+
37
+ - Don't write tests for trivial getters/setters, pure pass-throughs, or generated code.
38
+ - Don't mock the system under test. Mock its collaborators.
39
+ - Don't assert on log output unless the log is part of the documented contract.
40
+ - Don't add `test.todo` placeholders; either write the test or omit it.
41
+ - Don't pad the suite. A focused 6-test file beats a 30-test file padded with permutations.
42
+
43
+ ## Output
44
+
45
+ Write the test file. If the project uses a `tests/` mirror tree, place it there. If it uses sibling `*.test.ts` files, place it next to the target. Match the existing convention — don't introduce a new layout.
46
+
47
+ After writing, run the test command (if known) and report the result. If any test fails, fix the test (not the implementation) unless you've found a genuine bug — in which case, flag it explicitly.