@cursor/bdk 0.2.9 → 0.2.11

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 (569) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.js +803 -812
  3. package/dist/channels/bitbucket/api.js +305 -321
  4. package/dist/channels/bitbucket/binding.js +97 -61
  5. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  6. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  7. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  8. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  9. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  10. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  11. package/dist/channels/bitbucket/checks.js +9 -21
  12. package/dist/channels/bitbucket/cursor-account.js +1 -1
  13. package/dist/channels/bitbucket/defaults.js +14 -4
  14. package/dist/channels/bitbucket/events.js +1 -2
  15. package/dist/channels/bitbucket/index.d.ts +6 -2
  16. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  17. package/dist/channels/bitbucket/index.js +6 -2
  18. package/dist/channels/bitbucket/replay.js +80 -56
  19. package/dist/channels/bitbucket/state.js +16 -7
  20. package/dist/channels/bitbucket/types.d.ts +11 -2
  21. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  22. package/dist/channels/checks.js +18 -28
  23. package/dist/channels/deployments/deployments-channel.js +26 -34
  24. package/dist/channels/github/api.js +216 -210
  25. package/dist/channels/github/auth.d.ts +5 -1
  26. package/dist/channels/github/auth.d.ts.map +1 -1
  27. package/dist/channels/github/auth.js +157 -174
  28. package/dist/channels/github/binding.js +48 -39
  29. package/dist/channels/github/checks.js +9 -14
  30. package/dist/channels/github/cursor-account.js +6 -11
  31. package/dist/channels/github/defaults.js +105 -130
  32. package/dist/channels/github/forward.js +13 -17
  33. package/dist/channels/github/github-channel.d.ts +43 -2
  34. package/dist/channels/github/github-channel.d.ts.map +1 -1
  35. package/dist/channels/github/github-channel.js +1228 -958
  36. package/dist/channels/github/progress.js +145 -146
  37. package/dist/channels/github/replay.js +30 -39
  38. package/dist/channels/github/state.js +40 -16
  39. package/dist/channels/github/types.d.ts +30 -6
  40. package/dist/channels/github/types.d.ts.map +1 -1
  41. package/dist/channels/gitlab/api.js +100 -114
  42. package/dist/channels/gitlab/binding.js +52 -33
  43. package/dist/channels/gitlab/checks.js +28 -29
  44. package/dist/channels/gitlab/cursor-account.js +1 -1
  45. package/dist/channels/gitlab/defaults.js +9 -3
  46. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  47. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  48. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  49. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  50. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  51. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  52. package/dist/channels/gitlab/index.d.ts +6 -2
  53. package/dist/channels/gitlab/index.d.ts.map +1 -1
  54. package/dist/channels/gitlab/index.js +6 -2
  55. package/dist/channels/gitlab/replay.js +50 -27
  56. package/dist/channels/gitlab/state.js +14 -6
  57. package/dist/channels/gitlab/types.d.ts +13 -2
  58. package/dist/channels/gitlab/types.d.ts.map +1 -1
  59. package/dist/channels/origin/api.js +100 -116
  60. package/dist/channels/origin/binding.js +15 -16
  61. package/dist/channels/origin/checks.js +30 -28
  62. package/dist/channels/origin/defaults.js +50 -65
  63. package/dist/channels/origin/origin-channel.js +266 -272
  64. package/dist/channels/origin/origin-webhook.js +70 -88
  65. package/dist/channels/origin/reactions.js +9 -21
  66. package/dist/channels/origin/state.js +13 -5
  67. package/dist/channels/slack/agentic-delivery.js +426 -478
  68. package/dist/channels/slack/agentic-posted.js +9 -10
  69. package/dist/channels/slack/agentic-signals.js +2 -3
  70. package/dist/channels/slack/api.js +417 -427
  71. package/dist/channels/slack/approvals.js +1 -1
  72. package/dist/channels/slack/assistant.js +37 -47
  73. package/dist/channels/slack/attachments.js +188 -206
  74. package/dist/channels/slack/auth.js +8 -6
  75. package/dist/channels/slack/bot-mentions.js +31 -45
  76. package/dist/channels/slack/channel-watch.js +42 -48
  77. package/dist/channels/slack/cli-project.js +112 -137
  78. package/dist/channels/slack/code-fences.js +3 -5
  79. package/dist/channels/slack/constants.js +2 -2
  80. package/dist/channels/slack/credentials.js +23 -38
  81. package/dist/channels/slack/defaults.js +292 -331
  82. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  83. package/dist/channels/slack/dispatch.js +533 -460
  84. package/dist/channels/slack/doctor.js +200 -214
  85. package/dist/channels/slack/eval-directive.js +79 -96
  86. package/dist/channels/slack/event-id-dedupe.js +1 -1
  87. package/dist/channels/slack/external-policy.js +26 -39
  88. package/dist/channels/slack/footer.js +28 -41
  89. package/dist/channels/slack/inbound.d.ts +1 -0
  90. package/dist/channels/slack/inbound.d.ts.map +1 -1
  91. package/dist/channels/slack/inbound.js +50 -31
  92. package/dist/channels/slack/init.d.ts +1 -5
  93. package/dist/channels/slack/init.d.ts.map +1 -1
  94. package/dist/channels/slack/init.js +42 -59
  95. package/dist/channels/slack/interactive.d.ts +9 -3
  96. package/dist/channels/slack/interactive.d.ts.map +1 -1
  97. package/dist/channels/slack/interactive.js +160 -162
  98. package/dist/channels/slack/links.js +1 -2
  99. package/dist/channels/slack/live-delivery.js +172 -190
  100. package/dist/channels/slack/manifest.d.ts.map +1 -1
  101. package/dist/channels/slack/manifest.js +44 -23
  102. package/dist/channels/slack/message-body.js +2 -2
  103. package/dist/channels/slack/nudge-carrier.js +30 -42
  104. package/dist/channels/slack/nudge-store.js +164 -191
  105. package/dist/channels/slack/paint-start.js +66 -81
  106. package/dist/channels/slack/placeholder.js +123 -152
  107. package/dist/channels/slack/pr-ref.js +1 -1
  108. package/dist/channels/slack/progress-delivery.js +65 -78
  109. package/dist/channels/slack/reasoning-card.js +36 -49
  110. package/dist/channels/slack/recording-sink.js +12 -24
  111. package/dist/channels/slack/reply-options.js +7 -12
  112. package/dist/channels/slack/self-identity.js +27 -35
  113. package/dist/channels/slack/sender-name.d.ts +12 -3
  114. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  115. package/dist/channels/slack/sender-name.js +57 -61
  116. package/dist/channels/slack/setup.js +2 -4
  117. package/dist/channels/slack/slack-channel.d.ts +6 -4
  118. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  119. package/dist/channels/slack/slack-channel.js +441 -308
  120. package/dist/channels/slack/socket-mode.js +38 -52
  121. package/dist/channels/slack/thread-context.js +143 -160
  122. package/dist/channels/slack/tool-approval-events.js +149 -166
  123. package/dist/channels/slack/tool-cards.js +6 -11
  124. package/dist/channels/slack/tool-chip.js +1 -2
  125. package/dist/channels/slack/types.d.ts +15 -17
  126. package/dist/channels/slack/types.d.ts.map +1 -1
  127. package/dist/channels/slack/upload.js +84 -97
  128. package/dist/channels/slack/user-info.js +27 -41
  129. package/dist/channels.js +9 -20
  130. package/dist/dashboard-session-url.js +3 -4
  131. package/dist/docs/404.html +2 -2
  132. package/dist/docs/assets/{app.BNhEdGa8.js → app.DXI7bwox.js} +4 -4
  133. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  134. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  135. package/dist/docs/assets/chunks/{VPLocalSearchBox.DIdUV1Ph.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  136. package/dist/docs/assets/chunks/{arc.lELI4_SR.js → arc.BOG1yms8.js} +1 -1
  137. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.iCMdvuoM.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  138. package/dist/docs/assets/chunks/{baseUniq.C1-nDJBf.js → baseUniq.H044KjKs.js} +1 -1
  139. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.ClemzBox.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  140. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BqTak6cR.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  141. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  142. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CUS3qs_R.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  143. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.dz5fdHcl.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  144. package/dist/docs/assets/chunks/{chunk-55IACEB6.D6BEBmve.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.B5uK4ID9.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.PgOJgNQs.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CvkTrCii.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnSfKYsB.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.MZH6v5UC.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  150. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  151. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  152. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  153. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BBbw_YZi.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  154. package/dist/docs/assets/chunks/{dagre-KV5264BT.CNJB2l7E.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  155. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.BQzlnFfq.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  156. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DkgqqZMz.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DIT8L7H_.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-TYMM5635.3xLPZWGJ.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  159. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.5_IHz8jF.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  160. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BGUCXz8A.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  161. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DbfFavS1.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  162. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.D2yKdeNW.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  163. package/dist/docs/assets/chunks/{graph.CSCxwHba.js → graph.BVqKRmRo.js} +1 -1
  164. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.FDeb6xHY.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  165. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DbeYs9VL.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  166. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CWjKINpx.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  167. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.B4FrAlwz.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  168. package/dist/docs/assets/chunks/{layout.DFGxQ9ab.js → layout.CGU3gfSf.js} +1 -1
  169. package/dist/docs/assets/chunks/{linear.BmjZ-G59.js → linear.DaihpW_n.js} +1 -1
  170. package/dist/docs/assets/chunks/{min.DZSxulMW.js → min.BS-j8kHQ.js} +1 -1
  171. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CHLi3-aN.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  172. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DteG-CkU.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  173. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D458ipN3.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  174. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DcFgUxst.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  175. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.BwQAMmSA.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  176. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.B_Xdsrh9.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  177. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.CdfDW6-C.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  178. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  179. package/dist/docs/assets/chunks/{theme.sfdL3srp.js → theme.DaplWQhQ.js} +2 -2
  180. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.56-4hXaC.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  181. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CvZSQBO7.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  182. package/dist/docs/assets/chunks/{wardley-RL74JXVD.C9qc8k39.js → wardley-RL74JXVD.iXazD3Z7.js} +1 -1
  183. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.D9s0nihi.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  184. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.BVJSpYrC.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  185. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  186. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  187. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  188. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  189. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  191. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  192. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  193. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  194. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  195. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  196. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  197. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  198. package/dist/docs/building-with-agents.html +37 -37
  199. package/dist/docs/building-with-agents.md +2 -0
  200. package/dist/docs/deployment.html +38 -38
  201. package/dist/docs/deployment.md +7 -0
  202. package/dist/docs/evals.html +36 -36
  203. package/dist/docs/guides/agent-to-agent.html +35 -35
  204. package/dist/docs/guides/bitbucket.html +38 -38
  205. package/dist/docs/guides/bitbucket.md +9 -1
  206. package/dist/docs/guides/cloud-agents.html +35 -35
  207. package/dist/docs/guides/convert-automation.html +35 -35
  208. package/dist/docs/guides/github.html +39 -39
  209. package/dist/docs/guides/github.md +20 -4
  210. package/dist/docs/guides/gitlab.html +38 -38
  211. package/dist/docs/guides/gitlab.md +9 -1
  212. package/dist/docs/guides/grokbot-agents.html +35 -35
  213. package/dist/docs/guides/hooks.html +35 -35
  214. package/dist/docs/guides/improve.html +35 -35
  215. package/dist/docs/guides/jev.html +35 -35
  216. package/dist/docs/guides/mcp-oauth.html +35 -35
  217. package/dist/docs/guides/migrate.html +66 -0
  218. package/dist/docs/guides/migrate.md +122 -0
  219. package/dist/docs/guides/opentelemetry.html +35 -35
  220. package/dist/docs/guides/slack.html +35 -35
  221. package/dist/docs/guides/webhooks.html +35 -35
  222. package/dist/docs/hashmap.json +1 -1
  223. package/dist/docs/hillclimbing.html +35 -35
  224. package/dist/docs/index.html +35 -35
  225. package/dist/docs/llms-full.txt +214 -6
  226. package/dist/docs/llms.txt +1 -0
  227. package/dist/docs/quickstart.html +35 -35
  228. package/dist/docs/reference/agent-config.html +35 -35
  229. package/dist/docs/reference/artifacts.html +35 -35
  230. package/dist/docs/reference/channels.html +35 -35
  231. package/dist/docs/reference/cli.html +39 -38
  232. package/dist/docs/reference/cli.md +39 -0
  233. package/dist/docs/reference/connections.html +35 -35
  234. package/dist/docs/reference/evals.html +35 -35
  235. package/dist/docs/reference/extensions.html +35 -35
  236. package/dist/docs/reference/hooks.html +35 -35
  237. package/dist/docs/reference/http-api.html +35 -35
  238. package/dist/docs/reference/instructions.html +35 -35
  239. package/dist/docs/reference/playground.html +35 -35
  240. package/dist/docs/reference/project-layout.html +35 -35
  241. package/dist/docs/reference/prompt.html +35 -35
  242. package/dist/docs/reference/schedules.html +35 -35
  243. package/dist/docs/reference/sessions.html +35 -35
  244. package/dist/docs/reference/skills.html +35 -35
  245. package/dist/docs/reference/subagents.html +35 -35
  246. package/dist/docs/reference/tools.html +35 -35
  247. package/dist/docs/templates/agentic-owners.html +35 -35
  248. package/dist/docs/templates/grokbot-agents.html +35 -35
  249. package/dist/docs/templates/security-reviewer.html +35 -35
  250. package/dist/docs/templates/thermo-quality-review.html +35 -35
  251. package/dist/docs/templates/thermo-review.html +35 -35
  252. package/dist/docs/templates/triage.html +35 -35
  253. package/dist/docs/troubleshooting.html +36 -36
  254. package/dist/docs/troubleshooting.md +1 -0
  255. package/dist/evals/assertions.js +20 -34
  256. package/dist/evals/expect.js +3 -6
  257. package/dist/evals/judge.js +5 -8
  258. package/dist/evals/loaders.js +45 -62
  259. package/dist/evals/matchers.js +2 -3
  260. package/dist/evals/reporters.js +43 -67
  261. package/dist/evals/results.js +1 -1
  262. package/dist/evals/run-facts.js +5 -6
  263. package/dist/evals.js +27 -15
  264. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  265. package/dist/extensions/cursor-cloud-agents/lib/backend.js +100 -126
  266. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  267. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  268. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  269. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  270. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  271. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  272. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  273. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  274. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  275. package/dist/extensions/cursor-cloud-agents/tools/list.js +8 -19
  276. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  277. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  278. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  279. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  280. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  281. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  282. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  283. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  284. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  285. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  286. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  287. package/dist/extensions/jev/extension.js +3 -3
  288. package/dist/extensions/jev/lib/evaluate.js +43 -60
  289. package/dist/extensions/jev/tools/evaluate.js +6 -17
  290. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  291. package/dist/extensions.js +3 -5
  292. package/dist/files-backends/cursor-hosted.js +504 -523
  293. package/dist/files-backends/local-fs.js +72 -134
  294. package/dist/files.js +3 -3
  295. package/dist/filesystem.js +562 -861
  296. package/dist/index.js +16 -35
  297. package/dist/internal/advertise-tools.js +74 -86
  298. package/dist/internal/artifacts-store.js +298 -361
  299. package/dist/internal/as-of.js +2 -4
  300. package/dist/internal/authored-alias-hooks.js +6 -4
  301. package/dist/internal/authored-loaders.js +37 -52
  302. package/dist/internal/bounded-int.js +1 -2
  303. package/dist/internal/bounded.js +13 -24
  304. package/dist/internal/brand.js +1 -1
  305. package/dist/internal/browser-origin-guard.js +4 -4
  306. package/dist/internal/builtin-tools/artifacts.js +15 -27
  307. package/dist/internal/builtin-tools/index.js +2 -3
  308. package/dist/internal/builtin-tools/reminders.js +33 -52
  309. package/dist/internal/channel-architecture.d.ts +21 -0
  310. package/dist/internal/channel-architecture.d.ts.map +1 -0
  311. package/dist/internal/channel-architecture.js +41 -0
  312. package/dist/internal/channel-dispatch.js +3 -4
  313. package/dist/internal/channel-route-dispatch.js +40 -51
  314. package/dist/internal/channel-state.js +1 -1
  315. package/dist/internal/chat-client.js +319 -340
  316. package/dist/internal/cli-ax.js +1262 -1294
  317. package/dist/internal/cli-bitbucket.js +244 -272
  318. package/dist/internal/cli-convert-automation.js +137 -151
  319. package/dist/internal/cli-cursor.js +126 -147
  320. package/dist/internal/cli-deploy.d.ts.map +1 -1
  321. package/dist/internal/cli-deploy.js +1457 -1507
  322. package/dist/internal/cli-docs.js +130 -147
  323. package/dist/internal/cli-github.js +437 -476
  324. package/dist/internal/cli-gitlab.js +259 -288
  325. package/dist/internal/cli-images.js +266 -334
  326. package/dist/internal/cli-manifest.js +25 -37
  327. package/dist/internal/cli-mcp-oauth.js +228 -247
  328. package/dist/internal/cli-mcp.js +358 -383
  329. package/dist/internal/cli-migrate.js +73 -90
  330. package/dist/internal/cli-skills.js +35 -47
  331. package/dist/internal/cli-slack-manual.d.ts +0 -1
  332. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  333. package/dist/internal/cli-slack-manual.js +175 -204
  334. package/dist/internal/cli-slack.d.ts +1 -1
  335. package/dist/internal/cli-slack.d.ts.map +1 -1
  336. package/dist/internal/cli-slack.js +416 -456
  337. package/dist/internal/cloud-merge.js +7 -3
  338. package/dist/internal/cloud-turn-cost.js +8 -1
  339. package/dist/internal/connection-env.js +5 -6
  340. package/dist/internal/continuation-channel.js +10 -7
  341. package/dist/internal/continuation-identity.js +85 -67
  342. package/dist/internal/conversation-mirror.js +112 -131
  343. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  344. package/dist/internal/cron.js +3 -3
  345. package/dist/internal/cursor/account-mcp.js +147 -146
  346. package/dist/internal/cursor/backend-client.js +290 -320
  347. package/dist/internal/cursor/bound-secret-file.js +3 -3
  348. package/dist/internal/cursor/credentials.js +127 -142
  349. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  350. package/dist/internal/cursor/github-credentials.js +91 -108
  351. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  352. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  353. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  354. package/dist/internal/cursor/session-token.js +36 -48
  355. package/dist/internal/cursor/store-api-client.js +77 -92
  356. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  357. package/dist/internal/cursor-agent-template.js +1 -1
  358. package/dist/internal/cursor-deployment-relay.js +33 -54
  359. package/dist/internal/cursor-event-relay.js +65 -59
  360. package/dist/internal/cursor-relay-core.js +258 -286
  361. package/dist/internal/deferred-channel-session.js +3 -12
  362. package/dist/internal/deploy-client.d.ts.map +1 -1
  363. package/dist/internal/deploy-client.js +413 -475
  364. package/dist/internal/deploy-manifest.d.ts +17 -0
  365. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  366. package/dist/internal/deploy-manifest.js +71 -21
  367. package/dist/internal/deploy-source.js +31 -43
  368. package/dist/internal/discovery/agent-config.js +45 -59
  369. package/dist/internal/discovery/agent.js +276 -280
  370. package/dist/internal/discovery/channels.js +67 -80
  371. package/dist/internal/discovery/connections.js +286 -296
  372. package/dist/internal/discovery/context.js +2 -13
  373. package/dist/internal/discovery/cursor-plugin.js +223 -259
  374. package/dist/internal/discovery/extension-overlay.js +104 -131
  375. package/dist/internal/discovery/extensions.js +276 -281
  376. package/dist/internal/discovery/fs.js +56 -79
  377. package/dist/internal/discovery/hooks.js +39 -50
  378. package/dist/internal/discovery/info.js +17 -19
  379. package/dist/internal/discovery/instructions.js +58 -71
  380. package/dist/internal/discovery/modules.js +45 -58
  381. package/dist/internal/discovery/project.d.ts.map +1 -1
  382. package/dist/internal/discovery/project.js +192 -215
  383. package/dist/internal/discovery/reminders.js +41 -52
  384. package/dist/internal/discovery/runtime.js +1 -1
  385. package/dist/internal/discovery/schedules.js +71 -82
  386. package/dist/internal/discovery/seed-files.js +21 -32
  387. package/dist/internal/discovery/services.js +74 -96
  388. package/dist/internal/discovery/skills.js +77 -94
  389. package/dist/internal/discovery/subagent.js +79 -95
  390. package/dist/internal/discovery/tools.js +12 -23
  391. package/dist/internal/distribution.js +2 -2
  392. package/dist/internal/docs-site.js +30 -45
  393. package/dist/internal/duration.js +1 -1
  394. package/dist/internal/env-file.js +48 -64
  395. package/dist/internal/eval-judge-model.js +17 -28
  396. package/dist/internal/eval-run-store.js +265 -254
  397. package/dist/internal/eval-runner.d.ts +8 -0
  398. package/dist/internal/eval-runner.d.ts.map +1 -1
  399. package/dist/internal/eval-runner.js +406 -408
  400. package/dist/internal/eval-transport.d.ts +24 -0
  401. package/dist/internal/eval-transport.d.ts.map +1 -0
  402. package/dist/internal/eval-transport.js +22 -0
  403. package/dist/internal/evals-client.js +242 -246
  404. package/dist/internal/event-log.js +72 -120
  405. package/dist/internal/event-mapper.js +30 -31
  406. package/dist/internal/factory-resource-channel.js +16 -30
  407. package/dist/internal/filesystem/errors.js +6 -6
  408. package/dist/internal/filesystem/format.js +10 -13
  409. package/dist/internal/filesystem/merge.js +52 -94
  410. package/dist/internal/filesystem/nearest.js +15 -27
  411. package/dist/internal/filesystem/scratch.js +65 -85
  412. package/dist/internal/filesystem/tools.js +221 -241
  413. package/dist/internal/filesystem/walk.js +76 -143
  414. package/dist/internal/framework-file-storage.js +118 -139
  415. package/dist/internal/framework-storage-selection.js +21 -13
  416. package/dist/internal/frontmatter.js +4 -6
  417. package/dist/internal/github-fanout.js +50 -64
  418. package/dist/internal/guest-network.js +96 -109
  419. package/dist/internal/handleAgentServeTrigger.js +121 -126
  420. package/dist/internal/host-files.js +73 -88
  421. package/dist/internal/host-kv.js +21 -36
  422. package/dist/internal/host-otel.js +22 -19
  423. package/dist/internal/host-platforms.js +49 -63
  424. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  425. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  426. package/dist/internal/hosted-catch-protocol.js +1 -0
  427. package/dist/internal/hosted-catch.d.ts +5 -3
  428. package/dist/internal/hosted-catch.d.ts.map +1 -1
  429. package/dist/internal/hosted-catch.js +84 -93
  430. package/dist/internal/hosted-delivery-protocol.js +32 -8
  431. package/dist/internal/hosted-delivery.d.ts +13 -1
  432. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  433. package/dist/internal/hosted-delivery.js +614 -584
  434. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  435. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  436. package/dist/internal/hosted-eval-cases.js +162 -0
  437. package/dist/internal/hosted-execution-diag.js +38 -30
  438. package/dist/internal/hosted-execution-flush.js +75 -66
  439. package/dist/internal/hosted-execution-latency.js +16 -8
  440. package/dist/internal/hosted-managed-automation.js +2 -2
  441. package/dist/internal/hosting.js +2 -3
  442. package/dist/internal/http-channel-define.js +4 -1
  443. package/dist/internal/http-channel.js +101 -112
  444. package/dist/internal/http-control-plane-session.d.ts +18 -1
  445. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  446. package/dist/internal/http-control-plane-session.js +66 -32
  447. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  448. package/dist/internal/init-interview.js +73 -93
  449. package/dist/internal/init-project.js +182 -214
  450. package/dist/internal/init-scaffold.js +10 -21
  451. package/dist/internal/inline-stdio-mcp.js +80 -86
  452. package/dist/internal/install-cursor-skills.js +231 -273
  453. package/dist/internal/legacy-command-guard.js +18 -31
  454. package/dist/internal/listen-port.js +34 -45
  455. package/dist/internal/local-control-plane.js +293 -307
  456. package/dist/internal/local-env.js +1 -1
  457. package/dist/internal/local-ingress.js +15 -9
  458. package/dist/internal/log-ring.js +1 -2
  459. package/dist/internal/logs-client.js +207 -227
  460. package/dist/internal/map-pool.js +24 -38
  461. package/dist/internal/mcp-endpoint.js +204 -180
  462. package/dist/internal/mcp-host.js +165 -168
  463. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  464. package/dist/internal/mcp-oauth-persist.js +15 -29
  465. package/dist/internal/mcp-oauth.js +209 -266
  466. package/dist/internal/named-webhook-secret.d.ts +39 -0
  467. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  468. package/dist/internal/named-webhook-secret.js +47 -0
  469. package/dist/internal/open-browser.js +2 -3
  470. package/dist/internal/otel/collector.js +104 -68
  471. package/dist/internal/otel/config.js +24 -37
  472. package/dist/internal/otel/http.js +5 -7
  473. package/dist/internal/otel/mcp.js +3 -12
  474. package/dist/internal/otel/runtime.js +69 -83
  475. package/dist/internal/package-inline-stdio.js +57 -65
  476. package/dist/internal/peer-connections.js +9 -5
  477. package/dist/internal/platform-schedule-sync.js +39 -54
  478. package/dist/internal/platform-timers.js +176 -210
  479. package/dist/internal/playground/static.js +1 -2
  480. package/dist/internal/playground/toolchain.js +37 -53
  481. package/dist/internal/playground-proxy.js +230 -270
  482. package/dist/internal/process-memory-telemetry.js +33 -51
  483. package/dist/internal/prompt-context.js +3 -6
  484. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  485. package/dist/internal/reminder-runner.js +770 -785
  486. package/dist/internal/reminder-schedule.js +1 -1
  487. package/dist/internal/reminder-store.js +57 -78
  488. package/dist/internal/request-error-status.js +1 -3
  489. package/dist/internal/request-headers.js +2 -2
  490. package/dist/internal/resolve-prod-target.js +119 -135
  491. package/dist/internal/resolved-connections.js +16 -6
  492. package/dist/internal/run-client.js +221 -229
  493. package/dist/internal/runtime-dispatch-runner.js +18 -43
  494. package/dist/internal/schedule-runner.js +49 -58
  495. package/dist/internal/scm/pr-url.js +7 -6
  496. package/dist/internal/sdk-runner.js +388 -363
  497. package/dist/internal/serve-restart.js +26 -39
  498. package/dist/internal/server.d.ts.map +1 -1
  499. package/dist/internal/server.js +1283 -1244
  500. package/dist/internal/session-cost.js +7 -9
  501. package/dist/internal/session-engine.d.ts +3 -1
  502. package/dist/internal/session-engine.d.ts.map +1 -1
  503. package/dist/internal/session-engine.js +2801 -2777
  504. package/dist/internal/session-links.js +12 -16
  505. package/dist/internal/session-run-log.js +134 -82
  506. package/dist/internal/session-store.js +133 -164
  507. package/dist/internal/sessions-client.js +97 -118
  508. package/dist/internal/skill-catalog.js +18 -23
  509. package/dist/internal/skills-sync.js +16 -30
  510. package/dist/internal/slack-provision-client.js +90 -116
  511. package/dist/internal/start-log-store.js +48 -67
  512. package/dist/internal/steering.js +1 -2
  513. package/dist/internal/storage-coordinator.js +160 -196
  514. package/dist/internal/store-mirror.js +16 -30
  515. package/dist/internal/stream-progress.js +6 -8
  516. package/dist/internal/terminal-style.js +3 -4
  517. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  518. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  519. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  520. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  521. package/dist/internal/tool-catalog.js +11 -5
  522. package/dist/internal/tool-result.js +1 -1
  523. package/dist/internal/trajectory.js +19 -22
  524. package/dist/internal/turn-cost.js +52 -62
  525. package/dist/internal/turn-governor.js +5 -8
  526. package/dist/internal/turn-lease-store.js +85 -105
  527. package/dist/internal/turn-outbox.js +28 -43
  528. package/dist/internal/update-check.js +231 -259
  529. package/dist/internal/v2-hosting.js +1 -2
  530. package/dist/internal/workspace-sync.js +25 -41
  531. package/dist/internal/workspace.js +111 -139
  532. package/dist/kv/memory-kv.js +27 -51
  533. package/dist/memory.js +106 -148
  534. package/dist/otel.js +5 -8
  535. package/dist/playground/assets/{index-Co4CUVTQ.js → index-Be0-1hw2.js} +45 -45
  536. package/dist/playground/assets/index-Clz6uHj9.css +1 -0
  537. package/dist/playground/index.html +2 -2
  538. package/dist/prompt.js +2 -4
  539. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  540. package/dist/storage-backends/cursor-hosted.js +105 -145
  541. package/dist/storage-backends/file-kv.js +100 -128
  542. package/dist/storage-protocol.js +3 -5
  543. package/dist/storage.js +17 -26
  544. package/dist/types.d.ts +68 -0
  545. package/dist/types.d.ts.map +1 -1
  546. package/dist/types.js +20 -18
  547. package/docs/building-with-agents.md +2 -0
  548. package/docs/deployment.md +7 -0
  549. package/docs/guides/bitbucket.md +9 -1
  550. package/docs/guides/github.md +20 -4
  551. package/docs/guides/gitlab.md +9 -1
  552. package/docs/guides/migrate.md +127 -0
  553. package/docs/reference/cli.md +39 -0
  554. package/docs/troubleshooting.md +1 -0
  555. package/package.json +1 -1
  556. package/skills/debug/SKILL.md +1 -0
  557. package/skills/github/SKILL.md +23 -0
  558. package/skills/migrate-v2/SKILL.md +51 -10
  559. package/dist/docs/assets/chunks/@localSearchIndexroot.BJ8UZggu.js +0 -1
  560. package/dist/docs/assets/chunks/channel.BTJ5J9FI.js +0 -1
  561. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D4BZ3cVV.js +0 -1
  562. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D4BZ3cVV.js +0 -1
  563. package/dist/docs/assets/chunks/clone.62tX-O-1.js +0 -1
  564. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DkTs1aEU.js +0 -1
  565. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  566. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  567. package/dist/playground/assets/index-C1g_PTTZ.css +0 -1
  568. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  569. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
@@ -5,22 +5,6 @@
5
5
  * Each tool is a `defineTool` whose runtime `inputSchema` accepts those
6
6
  * fields plus the native aliases the harness still sends.
7
7
  */
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
- var __asyncValues = (this && this.__asyncValues) || function (o) {
18
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
19
- var m = o[Symbol.asyncIterator], i;
20
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
21
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
22
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
23
- };
24
8
  import { Buffer } from "node:buffer";
25
9
  import { minimatch } from "minimatch";
26
10
  import { z } from "zod";
@@ -80,11 +64,10 @@ export function rootFileToolsFromAuthored(tools) {
80
64
  * no-file-name allowlist means the default-on file layer.
81
65
  */
82
66
  export function hostFileToolsFromAuthored(tools) {
83
- var _a;
84
67
  if (tools === undefined) {
85
68
  return undefined;
86
69
  }
87
- return (_a = rootFileToolsFromAuthored(tools)) !== null && _a !== void 0 ? _a : [];
70
+ return rootFileToolsFromAuthored(tools) ?? [];
88
71
  }
89
72
  const HOST_DEFAULT_SYNTHESIZED_NAMES = SYNTHESIZED_FILE_SYSTEM_TOOL_NAMES.filter(name => name !== "SemanticSearch");
90
73
  /**
@@ -116,7 +99,7 @@ function aliasKeys(aliases) {
116
99
  if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
117
100
  return raw;
118
101
  }
119
- const input = Object.assign({}, raw);
102
+ const input = { ...raw };
120
103
  for (const [from, to] of Object.entries(aliases)) {
121
104
  if (input[to] === undefined && input[from] !== undefined) {
122
105
  input[to] = input[from];
@@ -138,7 +121,7 @@ function parseGrepOutputMode(value) {
138
121
  return "content";
139
122
  }
140
123
  function contextLineCount(specific, both) {
141
- const value = specific !== null && specific !== void 0 ? specific : both;
124
+ const value = specific ?? both;
142
125
  if (value === undefined || !Number.isFinite(value)) {
143
126
  return 0;
144
127
  }
@@ -149,7 +132,7 @@ function compileToolGrepPattern(pattern, options) {
149
132
  const flags = `${options.caseInsensitive === true ? "i" : ""}${options.multiline === true ? "s" : ""}`;
150
133
  return new RegExp(pattern, flags === "" ? undefined : flags);
151
134
  }
152
- catch (_a) {
135
+ catch {
153
136
  throw new InvalidGrepPatternError(pattern);
154
137
  }
155
138
  }
@@ -159,23 +142,23 @@ function compileToolGrepPattern(pattern, options) {
159
142
  * directory or omitted path uses `FileSystem.glob`, which applies the
160
143
  * mount's own root. Slash-free globs are recursive, matching line grep.
161
144
  */
162
- function collectMultilineGrepFiles(root, input) {
163
- return __awaiter(this, void 0, void 0, function* () {
164
- var _a;
165
- const listed = yield collectListOrStat(root, input.path);
166
- if (listed.kind === "file") {
167
- const filePath = (_a = input.path) !== null && _a !== void 0 ? _a : "";
168
- if (input.glob !== undefined && !fileMatchesGrepGlob(filePath, input.glob)) {
169
- return [];
170
- }
171
- return [filePath];
172
- }
173
- if (listed.kind === "missing") {
145
+ async function collectMultilineGrepFiles(root, input) {
146
+ const listed = await collectListOrStat(root, input.path);
147
+ if (listed.kind === "file") {
148
+ const filePath = input.path ?? "";
149
+ if (input.glob !== undefined && !fileMatchesGrepGlob(filePath, input.glob)) {
174
150
  return [];
175
151
  }
176
- const entries = yield collectGlob(root, Object.assign({ pattern: recursiveGrepGlob(input.glob) }, (input.path === undefined ? {} : { dir: input.path })));
177
- return entries.map(entry => entry.path);
152
+ return [filePath];
153
+ }
154
+ if (listed.kind === "missing") {
155
+ return [];
156
+ }
157
+ const entries = await collectGlob(root, {
158
+ pattern: recursiveGrepGlob(input.glob),
159
+ ...(input.path === undefined ? {} : { dir: input.path }),
178
160
  });
161
+ return entries.map(entry => entry.path);
179
162
  }
180
163
  function recursiveGrepGlob(glob) {
181
164
  if (glob === undefined || glob.length === 0) {
@@ -200,7 +183,6 @@ function fileMatchesGrepGlob(filePath, globPattern) {
200
183
  return false;
201
184
  }
202
185
  function multilineHitsInContent(path, content, regex) {
203
- var _a;
204
186
  const global = new RegExp(regex.source, regex.flags.includes("g") ? regex.flags : `${regex.flags}g`);
205
187
  const hits = [];
206
188
  let match = global.exec(content);
@@ -208,7 +190,7 @@ function multilineHitsInContent(path, content, regex) {
208
190
  hits.push({
209
191
  path,
210
192
  lineNumber: content.slice(0, match.index).split("\n").length,
211
- line: (_a = content.slice(match.index).split("\n")[0]) !== null && _a !== void 0 ? _a : "",
193
+ line: content.slice(match.index).split("\n")[0] ?? "",
212
194
  });
213
195
  if (match[0].length === 0) {
214
196
  global.lastIndex += 1;
@@ -217,94 +199,103 @@ function multilineHitsInContent(path, content, regex) {
217
199
  }
218
200
  return hits;
219
201
  }
220
- function collectMultilineGrepMatches(root, input, opts) {
221
- return __awaiter(this, void 0, void 0, function* () {
222
- const regex = compileToolGrepPattern(input.pattern, {
223
- caseInsensitive: input.caseInsensitive,
224
- multiline: true,
225
- });
226
- const files = yield collectMultilineGrepFiles(root, input);
227
- const matches = [];
228
- const offset = opts.offset !== undefined && opts.offset > 0 ? opts.offset : 0;
229
- const headLimit = opts.headLimit !== undefined && opts.headLimit > 0 ? opts.headLimit : undefined;
230
- let skippedItems = 0;
231
- let takenItems = 0;
232
- for (const filePath of files) {
233
- let content;
234
- try {
235
- content = yield root.read(filePath);
236
- }
237
- catch (_a) {
238
- continue;
239
- }
240
- if (typeof content !== "string") {
241
- continue;
242
- }
243
- const hits = multilineHitsInContent(filePath, content, regex);
244
- if (hits.length === 0) {
245
- continue;
246
- }
247
- if (opts.outputMode === "content") {
248
- for (const hit of hits) {
249
- if (skippedItems < offset) {
250
- skippedItems++;
251
- continue;
252
- }
253
- matches.push(hit);
254
- takenItems++;
255
- if (headLimit !== undefined && takenItems >= headLimit) {
256
- return matches;
257
- }
258
- }
259
- continue;
260
- }
261
- if (skippedItems < offset) {
262
- skippedItems++;
263
- continue;
264
- }
265
- if (headLimit !== undefined && takenItems >= headLimit) {
266
- break;
267
- }
268
- matches.push(...hits);
269
- takenItems++;
270
- }
271
- return matches;
202
+ async function collectMultilineGrepMatches(root, input, opts) {
203
+ const regex = compileToolGrepPattern(input.pattern, {
204
+ caseInsensitive: input.caseInsensitive,
205
+ multiline: true,
272
206
  });
273
- }
274
- function attachGrepContext(root, matches, context) {
275
- return __awaiter(this, void 0, void 0, function* () {
276
- if (context.before === 0 && context.after === 0) {
277
- return matches;
207
+ const files = await collectMultilineGrepFiles(root, input);
208
+ const matches = [];
209
+ const offset = opts.offset !== undefined && opts.offset > 0 ? opts.offset : 0;
210
+ const headLimit = opts.headLimit !== undefined && opts.headLimit > 0 ? opts.headLimit : undefined;
211
+ let skippedItems = 0;
212
+ let takenItems = 0;
213
+ for (const filePath of files) {
214
+ let content;
215
+ try {
216
+ content = await root.read(filePath);
217
+ }
218
+ catch {
219
+ continue;
220
+ }
221
+ if (typeof content !== "string") {
222
+ continue;
223
+ }
224
+ const hits = multilineHitsInContent(filePath, content, regex);
225
+ if (hits.length === 0) {
226
+ continue;
278
227
  }
279
- const linesByPath = new Map();
280
- const hits = [];
281
- for (const match of matches) {
282
- let lines = linesByPath.get(match.path);
283
- if (lines === undefined) {
284
- try {
285
- const content = yield root.read(match.path);
286
- lines = typeof content === "string" ? content.split("\n") : [];
228
+ if (opts.outputMode === "content") {
229
+ for (const hit of hits) {
230
+ if (skippedItems < offset) {
231
+ skippedItems++;
232
+ continue;
287
233
  }
288
- catch (_a) {
289
- lines = [];
234
+ matches.push(hit);
235
+ takenItems++;
236
+ if (headLimit !== undefined && takenItems >= headLimit) {
237
+ return matches;
290
238
  }
291
- linesByPath.set(match.path, lines);
292
239
  }
293
- const index = match.lineNumber - 1;
294
- hits.push(Object.assign(Object.assign(Object.assign({}, match), (context.before > 0
240
+ continue;
241
+ }
242
+ if (skippedItems < offset) {
243
+ skippedItems++;
244
+ continue;
245
+ }
246
+ if (headLimit !== undefined && takenItems >= headLimit) {
247
+ break;
248
+ }
249
+ matches.push(...hits);
250
+ takenItems++;
251
+ }
252
+ return matches;
253
+ }
254
+ async function attachGrepContext(root, matches, context) {
255
+ if (context.before === 0 && context.after === 0) {
256
+ return matches;
257
+ }
258
+ const linesByPath = new Map();
259
+ const hits = [];
260
+ for (const match of matches) {
261
+ let lines = linesByPath.get(match.path);
262
+ if (lines === undefined) {
263
+ try {
264
+ const content = await root.read(match.path);
265
+ lines = typeof content === "string" ? content.split("\n") : [];
266
+ }
267
+ catch {
268
+ lines = [];
269
+ }
270
+ linesByPath.set(match.path, lines);
271
+ }
272
+ const index = match.lineNumber - 1;
273
+ hits.push({
274
+ ...match,
275
+ ...(context.before > 0
295
276
  ? {
296
277
  beforeContext: lines.slice(Math.max(0, index - context.before), Math.max(0, index)),
297
278
  }
298
- : {})), (context.after > 0
279
+ : {}),
280
+ ...(context.after > 0
299
281
  ? { afterContext: lines.slice(index + 1, index + 1 + context.after) }
300
- : {})));
301
- }
302
- return hits;
303
- });
282
+ : {}),
283
+ });
284
+ }
285
+ return hits;
304
286
  }
305
287
  function discovered(name, definition, contract) {
306
288
  const effect = typeof definition.effect === "function" ? "dynamic" : definition.effect;
307
- return Object.assign(Object.assign({ name, description: definition.description, inputSchema: toolInputJsonSchema(contract.input), outputSchema: toolOutputJsonSchema(contract.output), execution: "server", needsApproval: false }, (effect === undefined ? {} : { effect })), { definition });
289
+ return {
290
+ name,
291
+ description: definition.description,
292
+ inputSchema: toolInputJsonSchema(contract.input),
293
+ outputSchema: toolOutputJsonSchema(contract.output),
294
+ execution: "server",
295
+ needsApproval: false,
296
+ ...(effect === undefined ? {} : { effect }),
297
+ definition,
298
+ };
308
299
  }
309
300
  const readInputSchema = z.preprocess(aliasKeys({}), z.object({
310
301
  path: z.string(),
@@ -316,40 +307,38 @@ function readTool(root) {
316
307
  description: "Reads a file from the local filesystem. This tool can also read image files when called with the appropriate path. Formats supported: jpeg/jpg, png, gif, webp.",
317
308
  inputSchema: readInputSchema,
318
309
  effect: "read",
319
- execute(_a) {
320
- return __awaiter(this, arguments, void 0, function* ({ path, offset, limit }) {
321
- let content;
322
- try {
323
- content = yield root.read(path);
324
- }
325
- catch (error) {
326
- if (isFileNotFoundError(error)) {
327
- const hint = yield nearestNeighborMissHint(root, path);
328
- if (hint !== undefined) {
329
- return hint;
330
- }
310
+ async execute({ path, offset, limit }) {
311
+ let content;
312
+ try {
313
+ content = await root.read(path);
314
+ }
315
+ catch (error) {
316
+ if (isFileNotFoundError(error)) {
317
+ const hint = await nearestNeighborMissHint(root, path);
318
+ if (hint !== undefined) {
319
+ return hint;
331
320
  }
332
- throw error;
333
321
  }
334
- const image = fileSystemImage(content, path);
335
- if (image !== undefined) {
336
- return {
337
- content: [
338
- { type: "text", text: `Read image file: ${path}` },
339
- {
340
- type: "image",
341
- data: Buffer.from(image.bytes).toString("base64"),
342
- mimeType: image.mimeType,
343
- },
344
- ],
345
- };
346
- }
347
- const text = fileSystemText(content);
348
- const totalLines = lineCount(text);
349
- return formatNumberedLines(sliceReadContent(text, offset, limit), {
350
- startLine: slicedReadStartLine(totalLines, offset),
351
- totalLines,
352
- });
322
+ throw error;
323
+ }
324
+ const image = fileSystemImage(content, path);
325
+ if (image !== undefined) {
326
+ return {
327
+ content: [
328
+ { type: "text", text: `Read image file: ${path}` },
329
+ {
330
+ type: "image",
331
+ data: Buffer.from(image.bytes).toString("base64"),
332
+ mimeType: image.mimeType,
333
+ },
334
+ ],
335
+ };
336
+ }
337
+ const text = fileSystemText(content);
338
+ const totalLines = lineCount(text);
339
+ return formatNumberedLines(sliceReadContent(text, offset, limit), {
340
+ startLine: slicedReadStartLine(totalLines, offset),
341
+ totalLines,
353
342
  });
354
343
  },
355
344
  }), { input: sdkReadArgs, output: sdkReadResult });
@@ -368,23 +357,21 @@ Other details:
368
357
  - The result does not display dot-files and dot-directories.`,
369
358
  inputSchema: lsInputSchema,
370
359
  effect: "read",
371
- execute(_a) {
372
- return __awaiter(this, arguments, void 0, function* ({ path, ignore }) {
373
- const listed = yield lsFromList(root, path, ignore);
374
- if (listed.status === "error") {
375
- if (listed.error.message.startsWith("Path is not a directory:")) {
376
- return `not a directory: ${path} — Read it.`;
377
- }
378
- if (listed.error.message.startsWith("Path does not exist:")) {
379
- const hint = yield nearestNeighborMissHint(root, path);
380
- if (hint !== undefined) {
381
- return hint;
382
- }
360
+ async execute({ path, ignore }) {
361
+ const listed = await lsFromList(root, path, ignore);
362
+ if (listed.status === "error") {
363
+ if (listed.error.message.startsWith("Path is not a directory:")) {
364
+ return `not a directory: ${path} — Read it.`;
365
+ }
366
+ if (listed.error.message.startsWith("Path does not exist:")) {
367
+ const hint = await nearestNeighborMissHint(root, path);
368
+ if (hint !== undefined) {
369
+ return hint;
383
370
  }
384
- throw new Error(`Error listing directory: ${listed.error.message}`);
385
371
  }
386
- return formatLsTree(listed.value.directoryTreeRoot);
387
- });
372
+ throw new Error(`Error listing directory: ${listed.error.message}`);
373
+ }
374
+ return formatLsTree(listed.value.directoryTreeRoot);
388
375
  },
389
376
  }), { input: sdkLsArgs, output: sdkLsResult });
390
377
  }
@@ -408,12 +395,14 @@ Tool to search for files matching a glob pattern
408
395
  `,
409
396
  inputSchema: globInputSchema,
410
397
  effect: "read",
411
- execute(_a) {
412
- return __awaiter(this, arguments, void 0, function* ({ globPattern, targetDirectory }) {
413
- const dir = targetDirectory !== null && targetDirectory !== void 0 ? targetDirectory : "/";
414
- const files = (yield collectGlob(root, Object.assign(Object.assign({ pattern: globPattern }, (targetDirectory === undefined ? {} : { dir: targetDirectory })), { limit: FILE_SYSTEM_SCAN_LIMIT }))).map(entry => entry.path);
415
- return formatGlobOutput(dir, files);
416
- });
398
+ async execute({ globPattern, targetDirectory }) {
399
+ const dir = targetDirectory ?? "/";
400
+ const files = (await collectGlob(root, {
401
+ pattern: globPattern,
402
+ ...(targetDirectory === undefined ? {} : { dir: targetDirectory }),
403
+ limit: FILE_SYSTEM_SCAN_LIMIT,
404
+ })).map(entry => entry.path);
405
+ return formatGlobOutput(dir, files);
417
406
  },
418
407
  }), { input: sdkGlobArgs, output: sdkGlobResult });
419
408
  }
@@ -454,21 +443,28 @@ function grepTool(root) {
454
443
  description: `A search tool built on ripgrep. Results are capped to several thousand output lines for responsiveness; when truncation occurs, the results report "at least" counts, but are otherwise accurate.`,
455
444
  inputSchema: grepInputSchema,
456
445
  effect: "read",
457
- execute(input) {
458
- return __awaiter(this, void 0, void 0, function* () {
459
- const outputMode = parseGrepOutputMode(input.outputMode);
460
- const query = Object.assign(Object.assign(Object.assign({ pattern: input.pattern }, (input.path === undefined ? {} : { path: input.path })), (input.glob === undefined ? {} : { glob: input.glob })), { caseInsensitive: input.caseInsensitive === true });
461
- const page = Object.assign(Object.assign({ outputMode }, (input.headLimit === undefined ? {} : { headLimit: input.headLimit })), (input.offset === undefined ? {} : { offset: input.offset }));
462
- const matches = input.multiline === true
463
- ? yield collectMultilineGrepMatches(root, query, page)
464
- : yield collectGrepMatches(root, query, page);
465
- const before = contextLineCount(input.contextBefore, input.context);
466
- const after = contextLineCount(input.contextAfter, input.context);
467
- const hits = outputMode === "content"
468
- ? yield attachGrepContext(root, matches, { before, after })
469
- : matches;
470
- return formatGrepOutput(shapeGrepUnion(hits, outputMode));
471
- });
446
+ async execute(input) {
447
+ const outputMode = parseGrepOutputMode(input.outputMode);
448
+ const query = {
449
+ pattern: input.pattern,
450
+ ...(input.path === undefined ? {} : { path: input.path }),
451
+ ...(input.glob === undefined ? {} : { glob: input.glob }),
452
+ caseInsensitive: input.caseInsensitive === true,
453
+ };
454
+ const page = {
455
+ outputMode,
456
+ ...(input.headLimit === undefined ? {} : { headLimit: input.headLimit }),
457
+ ...(input.offset === undefined ? {} : { offset: input.offset }),
458
+ };
459
+ const matches = input.multiline === true
460
+ ? await collectMultilineGrepMatches(root, query, page)
461
+ : await collectGrepMatches(root, query, page);
462
+ const before = contextLineCount(input.contextBefore, input.context);
463
+ const after = contextLineCount(input.contextAfter, input.context);
464
+ const hits = outputMode === "content"
465
+ ? await attachGrepContext(root, matches, { before, after })
466
+ : matches;
467
+ return formatGrepOutput(shapeGrepUnion(hits, outputMode));
472
468
  },
473
469
  }), { input: sdkGrepArgs, output: sdkGrepResult });
474
470
  }
@@ -482,11 +478,9 @@ function writeTool(root) {
482
478
  description: "Writes a file to the local filesystem.",
483
479
  inputSchema: writeInputSchema,
484
480
  effect: "write",
485
- execute(_a) {
486
- return __awaiter(this, arguments, void 0, function* ({ path, fileText }) {
487
- yield root.write(path, fileText);
488
- return formatWriteOutput(path);
489
- });
481
+ async execute({ path, fileText }) {
482
+ await root.write(path, fileText);
483
+ return formatWriteOutput(path);
490
484
  },
491
485
  }), { input: sdkWriteArgs, output: sdkWriteResult });
492
486
  }
@@ -505,16 +499,17 @@ function strReplaceTool(root) {
505
499
  description: "Performs exact string replacements in files.",
506
500
  inputSchema: strReplaceInputSchema,
507
501
  effect: "write",
508
- execute(_a) {
509
- return __awaiter(this, arguments, void 0, function* ({ path, oldText, newText, replaceAll }) {
510
- const { occurrencesModified } = yield strReplaceOnFileSystem(root, Object.assign({ path,
511
- oldText,
512
- newText }, (replaceAll === undefined ? {} : { replaceAll })));
513
- return formatStrReplaceOutput({
514
- path,
515
- replaceAll: replaceAll === true,
516
- occurrencesModified,
517
- });
502
+ async execute({ path, oldText, newText, replaceAll }) {
503
+ const { occurrencesModified } = await strReplaceOnFileSystem(root, {
504
+ path,
505
+ oldText,
506
+ newText,
507
+ ...(replaceAll === undefined ? {} : { replaceAll }),
508
+ });
509
+ return formatStrReplaceOutput({
510
+ path,
511
+ replaceAll: replaceAll === true,
512
+ occurrencesModified,
518
513
  });
519
514
  },
520
515
  }), { input: sdkStrReplaceArgs, output: sdkEditResult });
@@ -530,11 +525,9 @@ function deleteTool(root) {
530
525
  - The file cannot be deleted`,
531
526
  inputSchema: deleteInputSchema,
532
527
  effect: "write",
533
- execute(_a) {
534
- return __awaiter(this, arguments, void 0, function* ({ path }) {
535
- yield root.delete(path);
536
- return "";
537
- });
528
+ async execute({ path }) {
529
+ await root.delete(path);
530
+ return "";
538
531
  },
539
532
  }), { input: sdkDeleteArgs, output: sdkDeleteResult });
540
533
  }
@@ -549,31 +542,20 @@ function semanticSearchTool(root) {
549
542
  description: "`SemanticSearch`: semantic search that finds code by meaning, not exact text",
550
543
  inputSchema: semanticSearchInputSchema,
551
544
  effect: "read",
552
- execute(_a) {
553
- return __awaiter(this, arguments, void 0, function* ({ query, targetDirectories, numResults }) {
554
- var _b, e_1, _c, _d;
555
- const cap = numResults !== undefined && numResults > 0 ? numResults : undefined;
556
- const hits = [];
557
- try {
558
- for (var _e = true, _f = __asyncValues(root.search(Object.assign(Object.assign({ query }, (targetDirectories === undefined ? {} : { targetDirectories })), (cap === undefined ? {} : { maxResults: cap })))), _g; _g = yield _f.next(), _b = _g.done, !_b; _e = true) {
559
- _d = _g.value;
560
- _e = false;
561
- const hit = _d;
562
- hits.push(hit);
563
- if (cap !== undefined && hits.length >= cap) {
564
- break;
565
- }
566
- }
567
- }
568
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
569
- finally {
570
- try {
571
- if (!_e && !_b && (_c = _f.return)) yield _c.call(_f);
572
- }
573
- finally { if (e_1) throw e_1.error; }
545
+ async execute({ query, targetDirectories, numResults }) {
546
+ const cap = numResults !== undefined && numResults > 0 ? numResults : undefined;
547
+ const hits = [];
548
+ for await (const hit of root.search({
549
+ query,
550
+ ...(targetDirectories === undefined ? {} : { targetDirectories }),
551
+ ...(cap === undefined ? {} : { maxResults: cap }),
552
+ })) {
553
+ hits.push(hit);
554
+ if (cap !== undefined && hits.length >= cap) {
555
+ break;
574
556
  }
575
- return hits.map(hit => `${hit.path}: ${hit.snippet}`).join("\n");
576
- });
557
+ }
558
+ return hits.map(hit => `${hit.path}: ${hit.snippet}`).join("\n");
577
559
  },
578
560
  }), { input: sdkSemSearchArgs, output: sdkSemSearchResult });
579
561
  }
@@ -603,22 +585,20 @@ export function fileSystemTool(root, name, input = {}) {
603
585
  return FILE_SYSTEM_TOOL_FACTORIES[canonical](root);
604
586
  }
605
587
  /** Validate and run the same tool a turn or `callTool` would. */
606
- export function runFileSystemTool(root_1, name_1) {
607
- return __awaiter(this, arguments, void 0, function* (root, name, input = {}) {
608
- const tool = fileSystemTool(root, name, input);
609
- if (tool === undefined) {
610
- throw new Error(`Unknown file system tool: ${name}`);
611
- }
612
- const execute = tool.definition.execute;
613
- if (typeof execute !== "function") {
614
- throw new Error(`File system tool ${name} has no execute`);
615
- }
616
- const validation = validateToolInput(tool.definition.inputSchema, input);
617
- if (!validation.ok) {
618
- throw new Error(validation.message);
619
- }
620
- return execute(validation.value, {});
621
- });
588
+ export async function runFileSystemTool(root, name, input = {}) {
589
+ const tool = fileSystemTool(root, name, input);
590
+ if (tool === undefined) {
591
+ throw new Error(`Unknown file system tool: ${name}`);
592
+ }
593
+ const execute = tool.definition.execute;
594
+ if (typeof execute !== "function") {
595
+ throw new Error(`File system tool ${name} has no execute`);
596
+ }
597
+ const validation = validateToolInput(tool.definition.inputSchema, input);
598
+ if (!validation.ok) {
599
+ throw new Error(validation.message);
600
+ }
601
+ return execute(validation.value, {});
622
602
  }
623
603
  export function synthesizeFileSystemTools(root, filter) {
624
604
  const tools = [];