@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
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Construction options for `QodoClient` and friends.
3
+ *
4
+ * Strict — no `any` at the public surface. Optional fields that may grow over
5
+ * time (e.g. `headers`, `transport`) carry an index-signature-free interface so
6
+ * adding a key is a SemVer-additive change rather than a silent extension.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/client/options.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Browser stub for {@link readlineApprovalPrompt}. The Node version
3
+ * imports `readline` to drive an interactive stdin prompt; in the
4
+ * browser the import is a hard error at bundle time. This stub
5
+ * always deterministic-denies — there is no meaningful "default
6
+ * approval flow" in a browser bundle; the consumer MUST register an
7
+ * explicit `ApprovalHandler` via
8
+ * `client.tools.setApprovalHandler(...)`.
9
+ *
10
+ * Wired via `package.json#browser` (per the existing pattern
11
+ * established by `transport.browser.ts` /
12
+ * `resolveOTel.browser.ts`); module-resolution swap is automatic at
13
+ * bundle time.
14
+ */
15
+ import type { ApprovalDecision } from './approval.js';
16
+ export declare function readlineApprovalPrompt(toolName: string, _prompt: string): Promise<ApprovalDecision>;
17
+ //# sourceMappingURL=_readlineApprovalPrompt.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_readlineApprovalPrompt.browser.d.ts","sourceRoot":"","sources":["../../../src/client/tools/_readlineApprovalPrompt.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAS3B"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Browser stub for {@link readlineApprovalPrompt}. The Node version
3
+ * imports `readline` to drive an interactive stdin prompt; in the
4
+ * browser the import is a hard error at bundle time. This stub
5
+ * always deterministic-denies — there is no meaningful "default
6
+ * approval flow" in a browser bundle; the consumer MUST register an
7
+ * explicit `ApprovalHandler` via
8
+ * `client.tools.setApprovalHandler(...)`.
9
+ *
10
+ * Wired via `package.json#browser` (per the existing pattern
11
+ * established by `transport.browser.ts` /
12
+ * `resolveOTel.browser.ts`); module-resolution swap is automatic at
13
+ * bundle time.
14
+ */
15
+ export async function readlineApprovalPrompt(toolName, _prompt) {
16
+ return {
17
+ decision: 'deny',
18
+ reason: `defineFunctionTool(${toolName}): no \`ApprovalHandler\` registered in browser ` +
19
+ 'context — register one with `client.tools.setApprovalHandler(...)` before ' +
20
+ 'dispatching a task that uses requireApproval-gated tools. Browser bundles have ' +
21
+ 'no stdin to default to; deterministic-deny keeps the approval surface safe.',
22
+ };
23
+ }
24
+ //# sourceMappingURL=_readlineApprovalPrompt.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_readlineApprovalPrompt.browser.js","sourceRoot":"","sources":["../../../src/client/tools/_readlineApprovalPrompt.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,OAAe;IAEf,OAAO;QACL,QAAQ,EAAE,MAAM;QAChB,MAAM,EACJ,sBAAsB,QAAQ,kDAAkD;YAChF,4EAA4E;YAC5E,iFAAiF;YACjF,6EAA6E;KAChF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Node-only readline prompt for the default approval handler. Lives
3
+ * in its own file so the browser bundle can swap it for a stub via
4
+ * package.json's `"browser"` field (mirroring the existing
5
+ * `transport.browser.ts` / `manager.browser.ts` pattern). Keeping
6
+ * the `readline` import in this file means the rest of
7
+ * `approval.ts` — types, normalization, annotation merging,
8
+ * `resolveApproval` — stays bundler-safe.
9
+ *
10
+ * The Node version reads `process.stdin` when `isTTY` is true and
11
+ * deterministic-denies otherwise. The browser stub
12
+ * (`_readlineApprovalPrompt.browser.ts`) always deterministic-denies
13
+ * with a message explaining that the consumer must register an
14
+ * explicit `ApprovalHandler`.
15
+ */
16
+ import type { ApprovalDecision } from './approval.js';
17
+ /**
18
+ * Prompt for a yes/no approval on stdin. Returns the resolved
19
+ * {@link ApprovalDecision}. In non-TTY contexts (daemon, web worker,
20
+ * CI), returns `{ decision: 'deny' }` with a typed reason explaining
21
+ * how to register a custom handler.
22
+ *
23
+ * Concurrent invocations queue on a module-level mutex so multiple
24
+ * `requireApproval`-gated tools in one `tool.request` batch don't
25
+ * interleave on the shared stdin (see comment on `promptQueue`).
26
+ *
27
+ * The Node `readline` import is statically resolvable in this file —
28
+ * which is intentional: bundlers walking `approval.ts` see the
29
+ * import path (via the per-file alias in `package.json#browser`) and
30
+ * substitute the browser stub instead.
31
+ */
32
+ export declare function readlineApprovalPrompt(toolName: string, prompt: string): Promise<ApprovalDecision>;
33
+ //# sourceMappingURL=_readlineApprovalPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_readlineApprovalPrompt.d.ts","sourceRoot":"","sources":["../../../src/client/tools/_readlineApprovalPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAkBtD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAU3B"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Node-only readline prompt for the default approval handler. Lives
3
+ * in its own file so the browser bundle can swap it for a stub via
4
+ * package.json's `"browser"` field (mirroring the existing
5
+ * `transport.browser.ts` / `manager.browser.ts` pattern). Keeping
6
+ * the `readline` import in this file means the rest of
7
+ * `approval.ts` — types, normalization, annotation merging,
8
+ * `resolveApproval` — stays bundler-safe.
9
+ *
10
+ * The Node version reads `process.stdin` when `isTTY` is true and
11
+ * deterministic-denies otherwise. The browser stub
12
+ * (`_readlineApprovalPrompt.browser.ts`) always deterministic-denies
13
+ * with a message explaining that the consumer must register an
14
+ * explicit `ApprovalHandler`.
15
+ */
16
+ /**
17
+ * Module-level mutex serializing concurrent stdin prompts.
18
+ *
19
+ * `FunctionToolRouter.dispatch` runs every per-call handler via
20
+ * `Promise.all`, which is correct for parallel side-effect tools —
21
+ * but the default approval flow uses readline on `process.stdin`,
22
+ * and concurrent readline interfaces over the same stdin interleave
23
+ * (multiple prompts visible at once, keystrokes routing
24
+ * non-deterministically to whichever interface read first). The
25
+ * fix is local to the default handler: chain promises so prompts
26
+ * run one-at-a-time on the shared stdin. Production override
27
+ * handlers (Slack, web UI) don't share stdin, so they don't need
28
+ * this — they bypass the mutex entirely.
29
+ */
30
+ let promptQueue = Promise.resolve();
31
+ /**
32
+ * Prompt for a yes/no approval on stdin. Returns the resolved
33
+ * {@link ApprovalDecision}. In non-TTY contexts (daemon, web worker,
34
+ * CI), returns `{ decision: 'deny' }` with a typed reason explaining
35
+ * how to register a custom handler.
36
+ *
37
+ * Concurrent invocations queue on a module-level mutex so multiple
38
+ * `requireApproval`-gated tools in one `tool.request` batch don't
39
+ * interleave on the shared stdin (see comment on `promptQueue`).
40
+ *
41
+ * The Node `readline` import is statically resolvable in this file —
42
+ * which is intentional: bundlers walking `approval.ts` see the
43
+ * import path (via the per-file alias in `package.json#browser`) and
44
+ * substitute the browser stub instead.
45
+ */
46
+ export async function readlineApprovalPrompt(toolName, prompt) {
47
+ // Chain on the queue tail so the next prompt only starts once
48
+ // the previous one resolves. Wrap so a thrown prompt doesn't
49
+ // poison the chain — `.catch(() => undefined)` keeps the next
50
+ // waiter unblocked.
51
+ const myTurn = promptQueue.catch(() => undefined).then(() => runPromptOnce(toolName, prompt));
52
+ promptQueue = myTurn;
53
+ return myTurn;
54
+ }
55
+ async function runPromptOnce(toolName, prompt) {
56
+ const stdin = typeof process !== 'undefined' && process.stdin
57
+ ? process.stdin
58
+ : undefined;
59
+ if (stdin === undefined || stdin.isTTY !== true) {
60
+ return {
61
+ decision: 'deny',
62
+ reason: `defineFunctionTool(${toolName}): no \`ApprovalHandler\` registered and ` +
63
+ 'stdin is not a TTY — register one with ' +
64
+ '`client.tools.setApprovalHandler(...)` before dispatching a task that uses ' +
65
+ 'requireApproval-gated tools. Default behavior is deterministic-deny to keep ' +
66
+ 'the approval surface safe by default.',
67
+ };
68
+ }
69
+ const readline = await import('readline');
70
+ const rl = readline.createInterface({
71
+ input: process.stdin,
72
+ output: process.stdout,
73
+ });
74
+ try {
75
+ const answer = await new Promise((resolve) => {
76
+ rl.question(`${prompt} [y/N] `, (input) => {
77
+ resolve(input);
78
+ });
79
+ });
80
+ const normalized = answer.trim().toLowerCase();
81
+ if (normalized === 'y' || normalized === 'yes') {
82
+ return { decision: 'approve' };
83
+ }
84
+ return { decision: 'deny', reason: 'approver said no' };
85
+ }
86
+ finally {
87
+ rl.close();
88
+ }
89
+ }
90
+ //# sourceMappingURL=_readlineApprovalPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_readlineApprovalPrompt.js","sourceRoot":"","sources":["../../../src/client/tools/_readlineApprovalPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;;;;;;GAaG;AACH,IAAI,WAAW,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,MAAc;IAEd,8DAA8D;IAC9D,6DAA6D;IAC7D,8DAA8D;IAC9D,oBAAoB;IACpB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC1D,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAChC,CAAC;IACF,WAAW,GAAG,MAAM,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,QAAgB,EAChB,MAAc;IAEd,MAAM,KAAK,GACT,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK;QAC7C,CAAC,CAAE,OAAO,CAAC,KAAsC;QACjD,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,MAAM,EACJ,sBAAsB,QAAQ,2CAA2C;gBACzE,yCAAyC;gBACzC,6EAA6E;gBAC7E,8EAA8E;gBAC9E,uCAAuC;SAC1C,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACnD,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC1D,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * `requireApproval` — ergonomic HITL shorthand on `defineFunctionTool`
3
+ * (S4). Closes the gap identified by the 2026-05-21 ADK comparison
4
+ * (see `docs/sdk2/research/2026-05-21-google-adk-vs-qodo-ts-sdk.md`,
5
+ * Opportunity 5 — ADK's `FunctionTool(my_fn, require_confirmation=True)`
6
+ * is one line; qodo-ts-sdk's pre-S4 surface required ~10 lines across
7
+ * annotations + name-based gate + `onRequest` resolution).
8
+ *
9
+ * The flag composes onto the existing three-layer HITL model documented
10
+ * in `docs/sdk2/concepts/03-hitl.md`:
11
+ *
12
+ * - **Layer 1 (instruction).** `defineFunctionTool({ description })`
13
+ * already shapes the LLM's choice to call the tool. The optional
14
+ * `prompt` on `ApprovalConfig` becomes the human-facing prompt at
15
+ * resolution time — not an instruction to the model.
16
+ * - **Layer 2 (schema).** QAR currently owns `HITLBlock` synthesis on
17
+ * the wire (name-based, server-side, deployment-driven). S4 does
18
+ * NOT attempt to push a synthetic `HITLBlock` onto QAR's
19
+ * `tool.request` envelope; doing so would require a wire-side ADR
20
+ * and a QAR change. Instead, S4 synthesizes the equivalent
21
+ * decision-making flow SDK-side at dispatch time.
22
+ * - **Layer 3 (trust-tier gate).** The actual gate moves into the SDK
23
+ * for tools the consumer marked with `requireApproval`. Before the
24
+ * handler runs, the router asks the consumer's
25
+ * `ApprovalHandler` to approve / deny. Approve → handler invoked
26
+ * with the parsed Zod args. Deny → `outcome: 'denied'` returned to
27
+ * the LLM. Denial is a recoverable error (not a pipeline-fatal one);
28
+ * the agent loop sees the rejection as a normal tool-result and can
29
+ * decide whether to retry, ask the user, or give up.
30
+ *
31
+ * Annotation passthrough is **advisory**, not the gate. The MCP spec
32
+ * explicitly tags `Tool.annotations` as untrusted (see
33
+ * `docs/sdk2/concepts/03-hitl.md` § Dynamic HITL); the runtime's
34
+ * name-based policy is what holds when an MCP misbehaves. S4 still
35
+ * merges `sensitivity`-driven hints (`destructiveHint`, `openWorldHint`)
36
+ * onto the produced `FunctionToolDef.function.annotations` so downstream
37
+ * observability (OTel span attrs, Shape C dynamic filters reading
38
+ * `annotations.destructiveHint`) can see them — but the consumer-side
39
+ * approval flow IS the SDK-level gate.
40
+ */
41
+ import type { JsonObject } from '../../qar/json.js';
42
+ import type { ToolCall, ToolResponseResult } from '../../qar/payloads.js';
43
+ import type { McpToolAnnotations } from '../../qar/specs.js';
44
+ /**
45
+ * Sensitivity tier carried on an {@link ApprovalConfig}. Picks the
46
+ * advisory annotation overlay applied to the produced
47
+ * `FunctionToolDef.function.annotations`:
48
+ *
49
+ * - `'low'` — no overlay. The flag still gates dispatch through the
50
+ * consumer's `ApprovalHandler`; advisory annotations remain at
51
+ * whatever the consumer passed in.
52
+ * - `'pii'` — adds `destructiveHint: true`. Signals "this tool sees
53
+ * user data; treat the call site carefully" to downstream filters.
54
+ * - `'secret'` — adds `destructiveHint: true` AND `openWorldHint:
55
+ * true`. Signals "this tool touches external state or secret-tier
56
+ * data". Equivalent (semantically) to QAR's
57
+ * `Sensitivity.SECRET` HITL classification — see
58
+ * `docs/sdk2/concepts/03-hitl.md` § Bubble routing.
59
+ *
60
+ * Sensitivity is purely the annotation overlay knob; it does NOT
61
+ * change SDK-side dispatch logic. The same approval flow fires
62
+ * regardless of tier — the tier is metadata for downstream consumers.
63
+ */
64
+ export type ApprovalSensitivity = 'low' | 'pii' | 'secret';
65
+ /**
66
+ * UX shape requested at the approval surface. Mirrors the three
67
+ * `HITLBlock` kinds from `docs/sdk2/concepts/03-hitl.md`:
68
+ *
69
+ * - `'approval'` — yes/no decision. The {@link ApprovalDecision}'s
70
+ * `decision` discriminates `'approve'` vs `'deny'`; the optional
71
+ * `reason` carries free-form text. Default kind when
72
+ * `requireApproval: true` is set without an explicit
73
+ * {@link ApprovalConfig}.
74
+ * - `'choice'` — closed-set picker. The {@link ApprovalHandler}
75
+ * returns `{ decision: 'approve', selection: '<option-id>' }` when
76
+ * a positive option is chosen and `{ decision: 'deny' }` otherwise.
77
+ * S4 does not parameterize the option list — for a custom option
78
+ * set, drop down to the manual `onRequest` shape (full HITL
79
+ * control). `'choice'` here is a hint to the handler that the
80
+ * consumer expects a closed-set UI.
81
+ * - `'input'` — free-form text response. The handler returns
82
+ * `{ decision: 'approve', input: '<text>' }`; the text flows back
83
+ * to the underlying function-tool handler via the
84
+ * {@link ApprovalDecision.input} field so the handler can pass it
85
+ * forward when invoked.
86
+ *
87
+ * The kind is an authoring-time hint to the {@link ApprovalHandler} —
88
+ * it does not change the dispatch wire (no `HITLBlock` is synthesized
89
+ * onto QAR's envelope).
90
+ */
91
+ export type ApprovalKind = 'approval' | 'choice' | 'input';
92
+ /**
93
+ * Configuration for a `requireApproval`-gated tool. Every field is
94
+ * optional; passing `requireApproval: true` (the boolean form) is
95
+ * equivalent to passing
96
+ * `{ kind: 'approval', sensitivity: 'low' }`.
97
+ *
98
+ * Fields are advisory hints to the {@link ApprovalHandler} the
99
+ * consumer registers via `client.tools.setApprovalHandler(...)`. The
100
+ * SDK passes the full {@link ApprovalConfig} through unchanged so
101
+ * production handlers can render richer UIs (custom prompts,
102
+ * deadline-driven escalation, sensitivity-keyed audit routing).
103
+ */
104
+ export interface ApprovalConfig {
105
+ /**
106
+ * UX shape requested at the resolver. See {@link ApprovalKind}.
107
+ * Defaults to `'approval'`.
108
+ */
109
+ readonly kind?: ApprovalKind;
110
+ /**
111
+ * Sensitivity tier. Drives the annotation overlay applied to the
112
+ * produced `FunctionToolDef.function.annotations` (advisory). Does
113
+ * not change SDK-side dispatch logic. Defaults to `'low'`.
114
+ */
115
+ readonly sensitivity?: ApprovalSensitivity;
116
+ /**
117
+ * Soft deadline (ms) the handler should observe before escalating
118
+ * or auto-denying. The SDK does NOT enforce this timeout (a
119
+ * blocking stdin prompt happily blocks past it); the value is
120
+ * passed through to the handler so production overrides can wire
121
+ * their own timer.
122
+ */
123
+ readonly deadlineMs?: number;
124
+ /**
125
+ * Human-facing prompt rendered at the resolver. Defaults to a
126
+ * canned string built from the tool name and arguments. Useful
127
+ * when the tool's `description` is too verbose for an approval UI.
128
+ */
129
+ readonly prompt?: string;
130
+ }
131
+ /**
132
+ * Decision returned by an {@link ApprovalHandler}:
133
+ *
134
+ * - `{ decision: 'approve' }` — the handler runs with the original
135
+ * parsed args. Optional `input` is passed through to the handler
136
+ * on the per-call context for `'input'`-kind approvals.
137
+ * - `{ decision: 'deny' }` — the handler does NOT run; the SDK
138
+ * returns `{ outcome: 'denied' }` to QAR with the optional
139
+ * `reason` as the error message.
140
+ *
141
+ * Throwing from the handler is also valid — every throw maps to
142
+ * `outcome: 'denied'` (`ToolDeniedError`) or `outcome: 'error'` (any
143
+ * other Error). Use throws for "the resolver UI broke", returns for
144
+ * "the resolver decided".
145
+ */
146
+ export type ApprovalDecision = {
147
+ readonly decision: 'approve';
148
+ /** Optional free-text input for `'input'`-kind approvals. */
149
+ readonly input?: string;
150
+ /** Optional selection identifier for `'choice'`-kind approvals. */
151
+ readonly selection?: string;
152
+ } | {
153
+ readonly decision: 'deny';
154
+ /** Optional rejection reason; surfaces as the `outcome: 'denied'` error message. */
155
+ readonly reason?: string;
156
+ };
157
+ /**
158
+ * Per-call payload passed to an {@link ApprovalHandler}. Carries
159
+ * everything the resolver needs to render the prompt: the requested
160
+ * UX shape ({@link ApprovalConfig}), the inbound `ToolCall`, and the
161
+ * originating graph node name.
162
+ */
163
+ export interface ApprovalRequest {
164
+ /** The tool name being gated. Matches `FunctionToolDef.function.name`. */
165
+ readonly toolName: string;
166
+ /** The full approval configuration declared on the tool. */
167
+ readonly config: ApprovalConfig;
168
+ /** The inbound `ToolCall` (raw args, `tool_call_id`, optional HITL block). */
169
+ readonly call: ToolCall;
170
+ /**
171
+ * Zod-parsed argument bag — the same shape the function-tool
172
+ * handler would receive on approve. Reflects `.default()` /
173
+ * `.transform()` / `.refine()` chains applied by the consumer's
174
+ * schema, so the approver sees the canonical args the handler will
175
+ * actually run with (not the raw wire bag). The default
176
+ * {@link ApprovalRequest.prompt} renders against this when present;
177
+ * falls back to {@link ToolCall.arguments} only if Zod parsing
178
+ * isn't yet available (e.g. when `resolveApproval` is invoked
179
+ * outside the router for unit tests).
180
+ */
181
+ readonly parsedArguments?: JsonObject;
182
+ /** Originating graph node name (echoed back on `tool.response`). */
183
+ readonly nodeName: string;
184
+ /**
185
+ * Pre-rendered human prompt — the `config.prompt` value when set,
186
+ * else a canned `"Approve <tool>(<args>)?"` string. Handlers can
187
+ * render this verbatim or build their own from the parts above.
188
+ */
189
+ readonly prompt: string;
190
+ }
191
+ /**
192
+ * Handler signature for `client.tools.setApprovalHandler(...)`.
193
+ *
194
+ * Returns synchronously or asynchronously. Throws map to denials
195
+ * (`ToolDeniedError` → `outcome: 'denied'`) or errors (`outcome:
196
+ * 'error'`) per the function-tool handler contract.
197
+ */
198
+ export type ApprovalHandler = (req: ApprovalRequest) => ApprovalDecision | Promise<ApprovalDecision>;
199
+ /**
200
+ * Default approval handler. Behavior:
201
+ *
202
+ * - If `process.stdin.isTTY` (interactive Node CLI) — prompt via
203
+ * `readline` with a yes/no question. `y` / `yes` → approve;
204
+ * anything else → deny. Useful for tutorials, scripts,
205
+ * `examples/usecases/*`.
206
+ * - Otherwise (non-TTY, daemon, web worker, browser bundle, CI) —
207
+ * deterministically deny with a typed error message so the
208
+ * consumer's stack trace points at the missing
209
+ * `setApprovalHandler` registration instead of getting a
210
+ * mysterious "tool denied" from QAR. Auto-approving in
211
+ * non-interactive contexts would silently defeat the gate — the
212
+ * wrong default for an approval surface.
213
+ *
214
+ * Override via `client.tools.setApprovalHandler(fn)`. Production
215
+ * apps that route approvals to Slack / a web UI / a pager should
216
+ * register an explicit handler at startup; the default is the
217
+ * "I have an stdin" fallback for the simplest cases.
218
+ *
219
+ * **Concurrency.** `FunctionToolRouter.dispatch` fires per-call
220
+ * handlers via `Promise.all`. Multiple `requireApproval`-gated
221
+ * calls in one `tool.request` batch would otherwise open multiple
222
+ * readline interfaces on the same `process.stdin` and interleave —
223
+ * see {@link readlineApprovalPrompt} for the module-level
224
+ * promise-chain mutex that serializes the default stdin prompts
225
+ * (regression test in `tests/require-approval.test.ts`
226
+ * § readlineApprovalPrompt mutex).
227
+ * Consumer-override handlers (Slack, web UI) don't share stdin and
228
+ * stay parallel by design — serializing them would hurt batch
229
+ * latency in production.
230
+ */
231
+ export declare const defaultApprovalHandler: ApprovalHandler;
232
+ /**
233
+ * Resolve an approval request against the supplied handler. Maps
234
+ * thrown errors (handler bugs, denial-by-throw) to the wire
235
+ * `ToolResponseResult` shape:
236
+ *
237
+ * - Handler returns `{ decision: 'approve' }` → returns the
238
+ * {@link ApprovalDecision} so the caller can pass through the
239
+ * optional `input` / `selection` payload to the function-tool
240
+ * handler.
241
+ * - Handler returns `{ decision: 'deny' }` → returns the
242
+ * pre-formatted `{ outcome: 'denied' }` response item. The
243
+ * caller MUST NOT invoke the function-tool handler.
244
+ * - Handler throws `ToolDeniedError` → mapped to `outcome: 'denied'`.
245
+ * - Handler throws any other Error → mapped to `outcome: 'error'`
246
+ * with the error message (capped by the dispatcher's existing
247
+ * `MAX_ERROR_LEN` boundary).
248
+ *
249
+ * The two-arm return shape (`'approve' | { outcome: 'denied' | 'error' }`)
250
+ * lets the caller skip the function-tool handler invocation entirely
251
+ * on rejection — no need for an `if (decision === 'deny')` follow-up
252
+ * branch.
253
+ */
254
+ export declare function resolveApproval(handler: ApprovalHandler, toolName: string, config: ApprovalConfig, call: ToolCall, nodeName: string, parsedArguments?: JsonObject): Promise<ApprovalDecision | {
255
+ readonly _denial: ToolResponseResult;
256
+ }>;
257
+ /**
258
+ * Merge the consumer-supplied `annotations` (if any) with the
259
+ * sensitivity-driven advisory overlay. Consumer values WIN on
260
+ * collision — `requireApproval` is a shorthand, not a forced
261
+ * override. Set sensitivity to opt into the overlay; leave
262
+ * `annotations` undefined to accept it verbatim.
263
+ *
264
+ * Returns `undefined` when neither side contributes a field
265
+ * (so the produced `FunctionToolDef` stays free of an empty
266
+ * `annotations: {}` object — every wire byte counts).
267
+ */
268
+ export declare function mergeApprovalAnnotations(base: McpToolAnnotations | undefined, config: ApprovalConfig): McpToolAnnotations | undefined;
269
+ /**
270
+ * Normalize the consumer-facing `requireApproval` value into the
271
+ * internal {@link ApprovalConfig} shape. `true` → `{ kind:
272
+ * 'approval', sensitivity: 'low' }`; an explicit
273
+ * {@link ApprovalConfig} is returned as-is; `false` / `undefined`
274
+ * returns `undefined` (gate disabled).
275
+ *
276
+ * Centralizing the normalization here keeps `defineFunctionTool` and
277
+ * the router from re-implementing the boolean → object widening.
278
+ */
279
+ export declare function normalizeApprovalConfig(value: boolean | ApprovalConfig | undefined): ApprovalConfig | undefined;
280
+ //# sourceMappingURL=approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../../src/client/tools/approval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,GACD;IACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC;IACtC,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,EAAE,eAAe,KACjB,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,sBAAsB,EAAE,eACa,CAAC;AAmCnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,UAAU,GAC3B,OAAO,CAAC,gBAAgB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAwDtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,kBAAkB,GAAG,SAAS,EACpC,MAAM,EAAE,cAAc,GACrB,kBAAkB,GAAG,SAAS,CAoBhC;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,GAC1C,cAAc,GAAG,SAAS,CAI5B"}