@cursor/bdk 0.2.9 → 0.2.10

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 (570) 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/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  197. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  198. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  199. package/dist/docs/building-with-agents.html +37 -37
  200. package/dist/docs/building-with-agents.md +2 -0
  201. package/dist/docs/deployment.html +38 -38
  202. package/dist/docs/deployment.md +7 -0
  203. package/dist/docs/evals.html +36 -36
  204. package/dist/docs/guides/agent-to-agent.html +35 -35
  205. package/dist/docs/guides/bitbucket.html +38 -38
  206. package/dist/docs/guides/bitbucket.md +9 -1
  207. package/dist/docs/guides/cloud-agents.html +35 -35
  208. package/dist/docs/guides/convert-automation.html +35 -35
  209. package/dist/docs/guides/github.html +39 -39
  210. package/dist/docs/guides/github.md +20 -4
  211. package/dist/docs/guides/gitlab.html +38 -38
  212. package/dist/docs/guides/gitlab.md +9 -1
  213. package/dist/docs/guides/grokbot-agents.html +35 -35
  214. package/dist/docs/guides/hooks.html +35 -35
  215. package/dist/docs/guides/improve.html +35 -35
  216. package/dist/docs/guides/jev.html +35 -35
  217. package/dist/docs/guides/mcp-oauth.html +35 -35
  218. package/dist/docs/guides/migrate.html +66 -0
  219. package/dist/docs/guides/migrate.md +122 -0
  220. package/dist/docs/guides/opentelemetry.html +35 -35
  221. package/dist/docs/guides/slack.html +35 -35
  222. package/dist/docs/guides/webhooks.html +35 -35
  223. package/dist/docs/hashmap.json +1 -1
  224. package/dist/docs/hillclimbing.html +35 -35
  225. package/dist/docs/index.html +35 -35
  226. package/dist/docs/llms-full.txt +214 -6
  227. package/dist/docs/llms.txt +1 -0
  228. package/dist/docs/quickstart.html +35 -35
  229. package/dist/docs/reference/agent-config.html +35 -35
  230. package/dist/docs/reference/artifacts.html +35 -35
  231. package/dist/docs/reference/channels.html +35 -35
  232. package/dist/docs/reference/cli.html +39 -38
  233. package/dist/docs/reference/cli.md +39 -0
  234. package/dist/docs/reference/connections.html +35 -35
  235. package/dist/docs/reference/evals.html +35 -35
  236. package/dist/docs/reference/extensions.html +35 -35
  237. package/dist/docs/reference/hooks.html +35 -35
  238. package/dist/docs/reference/http-api.html +35 -35
  239. package/dist/docs/reference/instructions.html +35 -35
  240. package/dist/docs/reference/playground.html +35 -35
  241. package/dist/docs/reference/project-layout.html +35 -35
  242. package/dist/docs/reference/prompt.html +35 -35
  243. package/dist/docs/reference/schedules.html +35 -35
  244. package/dist/docs/reference/sessions.html +35 -35
  245. package/dist/docs/reference/skills.html +38 -38
  246. package/dist/docs/reference/subagents.html +35 -35
  247. package/dist/docs/reference/tools.html +35 -35
  248. package/dist/docs/templates/agentic-owners.html +35 -35
  249. package/dist/docs/templates/grokbot-agents.html +35 -35
  250. package/dist/docs/templates/security-reviewer.html +35 -35
  251. package/dist/docs/templates/thermo-quality-review.html +35 -35
  252. package/dist/docs/templates/thermo-review.html +35 -35
  253. package/dist/docs/templates/triage.html +35 -35
  254. package/dist/docs/troubleshooting.html +36 -36
  255. package/dist/docs/troubleshooting.md +1 -0
  256. package/dist/evals/assertions.js +20 -34
  257. package/dist/evals/expect.js +3 -6
  258. package/dist/evals/judge.js +5 -8
  259. package/dist/evals/loaders.js +45 -62
  260. package/dist/evals/matchers.js +2 -3
  261. package/dist/evals/reporters.js +43 -67
  262. package/dist/evals/results.js +1 -1
  263. package/dist/evals/run-facts.js +5 -6
  264. package/dist/evals.js +27 -15
  265. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  266. package/dist/extensions/cursor-cloud-agents/lib/backend.js +100 -126
  267. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  268. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  269. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  270. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  271. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  272. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  273. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  274. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  275. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  276. package/dist/extensions/cursor-cloud-agents/tools/list.js +8 -19
  277. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  278. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  279. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  280. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  281. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  282. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  283. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  284. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  285. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  286. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  287. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  288. package/dist/extensions/jev/extension.js +3 -3
  289. package/dist/extensions/jev/lib/evaluate.js +43 -60
  290. package/dist/extensions/jev/tools/evaluate.js +6 -17
  291. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  292. package/dist/extensions.js +3 -5
  293. package/dist/files-backends/cursor-hosted.js +504 -523
  294. package/dist/files-backends/local-fs.js +72 -134
  295. package/dist/files.js +3 -3
  296. package/dist/filesystem.js +562 -861
  297. package/dist/index.js +16 -35
  298. package/dist/internal/advertise-tools.js +74 -86
  299. package/dist/internal/artifacts-store.js +298 -361
  300. package/dist/internal/as-of.js +2 -4
  301. package/dist/internal/authored-alias-hooks.js +6 -4
  302. package/dist/internal/authored-loaders.js +37 -52
  303. package/dist/internal/bounded-int.js +1 -2
  304. package/dist/internal/bounded.js +13 -24
  305. package/dist/internal/brand.js +1 -1
  306. package/dist/internal/browser-origin-guard.js +4 -4
  307. package/dist/internal/builtin-tools/artifacts.js +15 -27
  308. package/dist/internal/builtin-tools/index.js +2 -3
  309. package/dist/internal/builtin-tools/reminders.js +33 -52
  310. package/dist/internal/channel-architecture.d.ts +21 -0
  311. package/dist/internal/channel-architecture.d.ts.map +1 -0
  312. package/dist/internal/channel-architecture.js +41 -0
  313. package/dist/internal/channel-dispatch.js +3 -4
  314. package/dist/internal/channel-route-dispatch.js +40 -51
  315. package/dist/internal/channel-state.js +1 -1
  316. package/dist/internal/chat-client.js +319 -340
  317. package/dist/internal/cli-ax.js +1262 -1294
  318. package/dist/internal/cli-bitbucket.js +244 -272
  319. package/dist/internal/cli-convert-automation.js +137 -151
  320. package/dist/internal/cli-cursor.js +126 -147
  321. package/dist/internal/cli-deploy.d.ts.map +1 -1
  322. package/dist/internal/cli-deploy.js +1457 -1507
  323. package/dist/internal/cli-docs.js +130 -147
  324. package/dist/internal/cli-github.js +437 -476
  325. package/dist/internal/cli-gitlab.js +259 -288
  326. package/dist/internal/cli-images.js +266 -334
  327. package/dist/internal/cli-manifest.js +25 -37
  328. package/dist/internal/cli-mcp-oauth.js +228 -247
  329. package/dist/internal/cli-mcp.js +358 -383
  330. package/dist/internal/cli-migrate.js +73 -90
  331. package/dist/internal/cli-skills.js +35 -47
  332. package/dist/internal/cli-slack-manual.d.ts +0 -1
  333. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  334. package/dist/internal/cli-slack-manual.js +175 -204
  335. package/dist/internal/cli-slack.d.ts +1 -1
  336. package/dist/internal/cli-slack.d.ts.map +1 -1
  337. package/dist/internal/cli-slack.js +416 -456
  338. package/dist/internal/cloud-merge.js +7 -3
  339. package/dist/internal/cloud-turn-cost.js +8 -1
  340. package/dist/internal/connection-env.js +5 -6
  341. package/dist/internal/continuation-channel.js +10 -7
  342. package/dist/internal/continuation-identity.js +85 -67
  343. package/dist/internal/conversation-mirror.js +112 -131
  344. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  345. package/dist/internal/cron.js +3 -3
  346. package/dist/internal/cursor/account-mcp.js +147 -146
  347. package/dist/internal/cursor/backend-client.js +290 -320
  348. package/dist/internal/cursor/bound-secret-file.js +3 -3
  349. package/dist/internal/cursor/credentials.js +127 -142
  350. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  351. package/dist/internal/cursor/github-credentials.js +91 -108
  352. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  353. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  354. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  355. package/dist/internal/cursor/session-token.js +36 -48
  356. package/dist/internal/cursor/store-api-client.js +77 -92
  357. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  358. package/dist/internal/cursor-agent-template.js +1 -1
  359. package/dist/internal/cursor-deployment-relay.js +33 -54
  360. package/dist/internal/cursor-event-relay.js +65 -59
  361. package/dist/internal/cursor-relay-core.js +258 -286
  362. package/dist/internal/deferred-channel-session.js +3 -12
  363. package/dist/internal/deploy-client.js +410 -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-DXm_VXAQ.css +1 -0
  536. package/dist/playground/assets/{index-Co4CUVTQ.js → index-JekUQERK.js} +45 -45
  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
  570. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
@@ -15,15 +15,6 @@
15
15
  * - `call_tool` — call one of the agent's deterministic server tools
16
16
  * directly (no model turn). Registered only when server tools exist.
17
17
  */
18
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
19
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
20
- return new (P || (P = Promise))(function (resolve, reject) {
21
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
22
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
23
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
24
- step((generator = generator.apply(thisArg, _arguments || [])).next());
25
- });
26
- };
27
18
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
28
19
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
29
20
  import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
@@ -58,46 +49,43 @@ const DEFAULT_WAIT_SECONDS = 50;
58
49
  * so Origin diverges on purpose. Do not extract a shared package, and do
59
50
  * not port the abort race here, in that stack.
60
51
  */
61
- export function handleStatelessMcpRequest(args) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- var _a;
64
- const logger = (_a = args.logger) !== null && _a !== void 0 ? _a : (() => { });
65
- if (args.request.method !== "POST") {
66
- // Stateless server: no server-initiated SSE stream (GET) and no
67
- // transport sessions to delete (DELETE). 405 per the MCP spec;
68
- // clients treat it as "streaming unsupported" and carry on.
69
- return new Response(JSON.stringify({
70
- jsonrpc: "2.0",
71
- error: { code: -32000, message: "Method not allowed." },
72
- id: null,
73
- }), {
74
- status: 405,
75
- headers: { "content-type": "application/json", allow: "POST" },
76
- });
77
- }
78
- const server = args.buildServer();
79
- const transport = new WebStandardStreamableHTTPServerTransport({
80
- sessionIdGenerator: undefined,
81
- enableJsonResponse: true,
52
+ export async function handleStatelessMcpRequest(args) {
53
+ const logger = args.logger ?? (() => { });
54
+ if (args.request.method !== "POST") {
55
+ // Stateless server: no server-initiated SSE stream (GET) and no
56
+ // transport sessions to delete (DELETE). 405 per the MCP spec;
57
+ // clients treat it as "streaming unsupported" and carry on.
58
+ return new Response(JSON.stringify({
59
+ jsonrpc: "2.0",
60
+ error: { code: -32000, message: "Method not allowed." },
61
+ id: null,
62
+ }), {
63
+ status: 405,
64
+ headers: { "content-type": "application/json", allow: "POST" },
82
65
  });
83
- try {
84
- yield server.connect(transport);
85
- // JSON-response mode materializes the full body before resolving,
86
- // so closing in `finally` never truncates a streamed response.
87
- return yield transport.handleRequest(args.request);
88
- }
89
- catch (error) {
90
- logger(`[bdk] ${args.label} request failed: ${describeError(error)}`);
91
- return new Response(JSON.stringify({
92
- jsonrpc: "2.0",
93
- error: { code: -32603, message: "Internal server error." },
94
- id: null,
95
- }), { status: 500, headers: { "content-type": "application/json" } });
96
- }
97
- finally {
98
- void server.close().catch(() => { });
99
- }
66
+ }
67
+ const server = args.buildServer();
68
+ const transport = new WebStandardStreamableHTTPServerTransport({
69
+ sessionIdGenerator: undefined,
70
+ enableJsonResponse: true,
100
71
  });
72
+ try {
73
+ await server.connect(transport);
74
+ // JSON-response mode materializes the full body before resolving,
75
+ // so closing in `finally` never truncates a streamed response.
76
+ return await transport.handleRequest(args.request);
77
+ }
78
+ catch (error) {
79
+ logger(`[bdk] ${args.label} request failed: ${describeError(error)}`);
80
+ return new Response(JSON.stringify({
81
+ jsonrpc: "2.0",
82
+ error: { code: -32603, message: "Internal server error." },
83
+ id: null,
84
+ }), { status: 500, headers: { "content-type": "application/json" } });
85
+ }
86
+ finally {
87
+ void server.close().catch(() => { });
88
+ }
101
89
  }
102
90
  /** Tool names the MCP surface exposes for `project` (info projection). */
103
91
  export function mcpEndpointToolNames(project) {
@@ -111,7 +99,12 @@ export function createAgentMcpEndpoint(args) {
111
99
  const { engine, logger } = args;
112
100
  return {
113
101
  handle(request, auth) {
114
- return handleStatelessMcpRequest(Object.assign({ request, buildServer: () => buildAgentMcpServer(engine, auth), label: "mcp endpoint" }, (logger === undefined ? {} : { logger })));
102
+ return handleStatelessMcpRequest({
103
+ request,
104
+ buildServer: () => buildAgentMcpServer(engine, auth),
105
+ label: "mcp endpoint",
106
+ ...(logger === undefined ? {} : { logger }),
107
+ });
115
108
  },
116
109
  };
117
110
  }
@@ -126,11 +119,16 @@ export function createToolMcpEndpoint(args) {
126
119
  // binding, but tools/list and tools/call forward to `host.mcp` for
127
120
  // that connection (see buildConnectionBridgeMcpServer).
128
121
  const connection = url.searchParams.get("connection");
129
- return handleStatelessMcpRequest(Object.assign({ request, buildServer: () => connection === null
122
+ return handleStatelessMcpRequest({
123
+ request,
124
+ buildServer: () => connection === null
130
125
  ? buildToolMcpServer(engine, sessionId)
131
- : buildConnectionBridgeMcpServer(engine, sessionId, connection), label: connection === null
126
+ : buildConnectionBridgeMcpServer(engine, sessionId, connection),
127
+ label: connection === null
132
128
  ? "tool mcp endpoint"
133
- : `connection bridge mcp endpoint (${connection})` }, (logger === undefined ? {} : { logger })));
129
+ : `connection bridge mcp endpoint (${connection})`,
130
+ ...(logger === undefined ? {} : { logger }),
131
+ });
134
132
  },
135
133
  };
136
134
  }
@@ -141,10 +139,14 @@ function buildToolMcpServer(engine, sessionId) {
141
139
  });
142
140
  const tools = engine.project.agent.tools.filter(tool => tool.execution === "server");
143
141
  server.setRequestHandler(ListToolsRequestSchema, () => Promise.resolve({
144
- tools: tools.map(tool => (Object.assign({ name: tool.name, description: tool.description, inputSchema: tool.inputSchema }, (tool.outputSchema === undefined ? {} : { outputSchema: tool.outputSchema })))),
142
+ tools: tools.map(tool => ({
143
+ name: tool.name,
144
+ description: tool.description,
145
+ inputSchema: tool.inputSchema,
146
+ ...(tool.outputSchema === undefined ? {} : { outputSchema: tool.outputSchema }),
147
+ })),
145
148
  }));
146
- server.setRequestHandler(CallToolRequestSchema, (request) => __awaiter(this, void 0, void 0, function* () {
147
- var _a;
149
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
148
150
  if (sessionId === null || sessionId === "") {
149
151
  return errorResult("Missing AgentSDK session binding.");
150
152
  }
@@ -152,9 +154,9 @@ function buildToolMcpServer(engine, sessionId) {
152
154
  if (tool === undefined) {
153
155
  return errorResult(`Unknown server tool "${request.params.name}".`);
154
156
  }
155
- const result = yield engine.callActiveServerTool(sessionId, tool.name, (_a = request.params.arguments) !== null && _a !== void 0 ? _a : {});
157
+ const result = await engine.callActiveServerTool(sessionId, tool.name, request.params.arguments ?? {});
156
158
  return sdkResultToMcpResult(result);
157
- }));
159
+ });
158
160
  return server;
159
161
  }
160
162
  /**
@@ -194,25 +196,32 @@ function buildConnectionBridgeMcpServer(engine, sessionId, connectionName) {
194
196
  }
195
197
  return undefined;
196
198
  };
197
- server.setRequestHandler(ListToolsRequestSchema, () => __awaiter(this, void 0, void 0, function* () {
199
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
198
200
  const reason = rejected();
199
201
  if (reason !== undefined) {
200
202
  throw new Error(reason);
201
203
  }
202
- const tools = yield engine.runWithMcpPark(sessionId !== null && sessionId !== void 0 ? sessionId : "", "tools/list", () => engine.host.mcp.listTools(connectionName));
204
+ const tools = await engine.runWithMcpPark(sessionId ?? "", "tools/list", () => engine.host.mcp.listTools(connectionName));
203
205
  return {
204
- tools: tools.map(tool => { var _a; return (Object.assign(Object.assign(Object.assign(Object.assign({ name: tool.name }, (tool.description === undefined ? {} : { description: tool.description })), { inputSchema: (_a = tool.inputSchema) !== null && _a !== void 0 ? _a : { type: "object" } }), (tool.outputSchema === undefined ? {} : { outputSchema: tool.outputSchema })), (tool.annotations === undefined ? {} : { annotations: tool.annotations }))); }),
206
+ tools: tools.map(tool => ({
207
+ name: tool.name,
208
+ ...(tool.description === undefined ? {} : { description: tool.description }),
209
+ inputSchema: tool.inputSchema ?? { type: "object" },
210
+ ...(tool.outputSchema === undefined ? {} : { outputSchema: tool.outputSchema }),
211
+ // Already bounded to the MCP-spec fields at listing time (mcp-host).
212
+ ...(tool.annotations === undefined ? {} : { annotations: tool.annotations }),
213
+ })),
205
214
  };
206
- }));
207
- server.setRequestHandler(CallToolRequestSchema, (request) => __awaiter(this, void 0, void 0, function* () {
215
+ });
216
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
208
217
  const reason = rejected();
209
218
  if (reason !== undefined) {
210
219
  return errorResult(reason);
211
220
  }
212
221
  // The one tool path that never reaches `executeServerTool`, so it asks
213
222
  // the policy itself.
214
- const answer = yield engine.bridgedCallAnswer({
215
- sessionId: sessionId !== null && sessionId !== void 0 ? sessionId : "",
223
+ const answer = await engine.bridgedCallAnswer({
224
+ sessionId: sessionId ?? "",
216
225
  connectionName,
217
226
  toolName: request.params.name,
218
227
  input: request.params.arguments,
@@ -221,19 +230,22 @@ function buildConnectionBridgeMcpServer(engine, sessionId, connectionName) {
221
230
  return sdkResultToMcpResult(answer.result);
222
231
  }
223
232
  try {
224
- const result = yield engine.runWithMcpPark(sessionId !== null && sessionId !== void 0 ? sessionId : "", request.params.name, () => { var _a; return engine.host.mcp.callTool(connectionName, request.params.name, (_a = request.params.arguments) !== null && _a !== void 0 ? _a : {}); });
225
- return Object.assign(Object.assign({
233
+ const result = await engine.runWithMcpPark(sessionId ?? "", request.params.name, () => engine.host.mcp.callTool(connectionName, request.params.name, request.params.arguments ?? {}));
234
+ return {
226
235
  // The host client already speaks MCP, so the content array is valid
227
236
  // CallToolResult content; HostMcpCallResult just types the tail of
228
237
  // the union open-endedly.
229
- content: result.content }, (result.isError === undefined ? {} : { isError: result.isError })), (result.structuredContent === undefined
230
- ? {}
231
- : { structuredContent: result.structuredContent }));
238
+ content: result.content,
239
+ ...(result.isError === undefined ? {} : { isError: result.isError }),
240
+ ...(result.structuredContent === undefined
241
+ ? {}
242
+ : { structuredContent: result.structuredContent }),
243
+ };
232
244
  }
233
245
  catch (error) {
234
246
  return errorResult(`MCP connection "${connectionName}" is not reachable from the serve host: ${describeError(error)}`);
235
247
  }
236
- }));
248
+ });
237
249
  return server;
238
250
  }
239
251
  // ============================================================================
@@ -258,18 +270,18 @@ function buildAgentMcpServer(engine, auth) {
258
270
  .optional()
259
271
  .describe(`How long to wait for the turn to finish before returning status "running" (default ${DEFAULT_WAIT_SECONDS}).`),
260
272
  },
261
- }, (_a) => __awaiter(this, [_a], void 0, function* ({ message, sessionId, waitSeconds }) {
273
+ }, async ({ message, sessionId, waitSeconds }) => {
262
274
  try {
263
- const targetSessionId = yield (sessionId === undefined
275
+ const targetSessionId = await (sessionId === undefined
264
276
  ? startSession(engine, auth, message)
265
277
  : followUpSession(engine, auth, sessionId, message));
266
- const payload = yield waitForReply(engine, targetSessionId, waitSeconds !== null && waitSeconds !== void 0 ? waitSeconds : DEFAULT_WAIT_SECONDS);
278
+ const payload = await waitForReply(engine, targetSessionId, waitSeconds ?? DEFAULT_WAIT_SECONDS);
267
279
  return toToolResult(payload);
268
280
  }
269
281
  catch (error) {
270
282
  return errorResult(describeError(error));
271
283
  }
272
- }));
284
+ });
273
285
  server.registerTool("check", {
274
286
  description: 'Wait for (or poll) a session started with ask. Returns the final reply once the turn completes, or status "running" to keep waiting. Use waitSeconds: 0 for a non-blocking poll.',
275
287
  inputSchema: {
@@ -281,16 +293,16 @@ function buildAgentMcpServer(engine, auth) {
281
293
  .optional()
282
294
  .describe(`How long to wait for the running turn before returning status "running" (default ${DEFAULT_WAIT_SECONDS}).`),
283
295
  },
284
- }, (_a) => __awaiter(this, [_a], void 0, function* ({ sessionId, waitSeconds }) {
296
+ }, async ({ sessionId, waitSeconds }) => {
285
297
  try {
286
- yield requireOwnedSession(engine, auth, sessionId);
287
- const payload = yield waitForReply(engine, sessionId, waitSeconds !== null && waitSeconds !== void 0 ? waitSeconds : DEFAULT_WAIT_SECONDS);
298
+ await requireOwnedSession(engine, auth, sessionId);
299
+ const payload = await waitForReply(engine, sessionId, waitSeconds ?? DEFAULT_WAIT_SECONDS);
288
300
  return toToolResult(payload);
289
301
  }
290
302
  catch (error) {
291
303
  return errorResult(describeError(error));
292
304
  }
293
- }));
305
+ });
294
306
  const serverTools = agent.tools.filter(tool => tool.execution === "server");
295
307
  if (serverTools.length > 0) {
296
308
  server.registerTool("call_tool", {
@@ -308,20 +320,32 @@ function buildAgentMcpServer(engine, auth) {
308
320
  .optional()
309
321
  .describe("Run the tool inside an existing session (recorded on its event stream). Omit for an ephemeral scratch workspace."),
310
322
  },
311
- }, (_a) => __awaiter(this, [_a], void 0, function* ({ toolName, input, sessionId }) {
323
+ }, async ({ toolName, input, sessionId }) => {
312
324
  try {
313
325
  if (sessionId !== undefined) {
314
- yield requireOwnedSession(engine, auth, sessionId);
326
+ await requireOwnedSession(engine, auth, sessionId);
315
327
  }
316
- const outcome = yield engine.callTool(toolName, input !== null && input !== void 0 ? input : {}, Object.assign({ auth }, (sessionId === undefined ? {} : { sessionId })));
317
- return Object.assign({ content: [
328
+ const outcome = await engine.callTool(toolName, input ?? {}, {
329
+ auth,
330
+ ...(sessionId === undefined ? {} : { sessionId }),
331
+ });
332
+ return {
333
+ content: [
318
334
  {
319
335
  type: "text",
320
- text: JSON.stringify(Object.assign({ toolName: outcome.toolName, isError: outcome.isError, result: outcome.result, durationMs: outcome.durationMs }, (outcome.errorMessage === undefined
321
- ? {}
322
- : { errorMessage: outcome.errorMessage }))),
336
+ text: JSON.stringify({
337
+ toolName: outcome.toolName,
338
+ isError: outcome.isError,
339
+ result: outcome.result,
340
+ durationMs: outcome.durationMs,
341
+ ...(outcome.errorMessage === undefined
342
+ ? {}
343
+ : { errorMessage: outcome.errorMessage }),
344
+ }),
323
345
  },
324
- ] }, (outcome.isError ? { isError: true } : {}));
346
+ ],
347
+ ...(outcome.isError ? { isError: true } : {}),
348
+ };
325
349
  }
326
350
  catch (error) {
327
351
  if (error instanceof UnknownToolError) {
@@ -335,7 +359,7 @@ function buildAgentMcpServer(engine, auth) {
335
359
  }
336
360
  return errorResult(describeError(error));
337
361
  }
338
- }));
362
+ });
339
363
  }
340
364
  return server;
341
365
  }
@@ -358,109 +382,103 @@ function buildAskDescription(project) {
358
382
  // ============================================================================
359
383
  // Session helpers
360
384
  // ============================================================================
361
- function startSession(engine, auth, message) {
362
- return __awaiter(this, void 0, void 0, function* () {
363
- const session = yield engine.send(MCP_CHANNEL_ID, message, { auth });
364
- return session.id;
365
- });
385
+ async function startSession(engine, auth, message) {
386
+ const session = await engine.send(MCP_CHANNEL_ID, message, { auth });
387
+ return session.id;
366
388
  }
367
- function followUpSession(engine, auth, sessionId, message) {
368
- return __awaiter(this, void 0, void 0, function* () {
369
- const record = yield requireOwnedSession(engine, auth, sessionId);
370
- if (record.mode === "task") {
371
- throw new Error(`Session ${sessionId} is a fire-and-forget task session; it does not accept follow-ups.`);
372
- }
373
- if (record.continuationKey === null) {
374
- throw new Error(`Session ${sessionId} is not addressable for follow-ups (no active continuation).`);
375
- }
376
- // Send as the session owner after the ownership gate above, mirroring the
377
- // HTTP follow-up route (machine callers address sessions by id; the HTTP
378
- // continuation token is not rotated).
379
- yield engine.send(record.channelId, message, {
380
- auth: record.auth,
381
- continuationToken: record.continuationKey,
382
- });
383
- return sessionId;
389
+ async function followUpSession(engine, auth, sessionId, message) {
390
+ const record = await requireOwnedSession(engine, auth, sessionId);
391
+ if (record.mode === "task") {
392
+ throw new Error(`Session ${sessionId} is a fire-and-forget task session; it does not accept follow-ups.`);
393
+ }
394
+ if (record.continuationKey === null) {
395
+ throw new Error(`Session ${sessionId} is not addressable for follow-ups (no active continuation).`);
396
+ }
397
+ // Send as the session owner after the ownership gate above, mirroring the
398
+ // HTTP follow-up route (machine callers address sessions by id; the HTTP
399
+ // continuation token is not rotated).
400
+ await engine.send(record.channelId, message, {
401
+ auth: record.auth,
402
+ continuationToken: record.continuationKey,
384
403
  });
404
+ return sessionId;
385
405
  }
386
- function requireOwnedSession(engine, auth, sessionId) {
387
- return __awaiter(this, void 0, void 0, function* () {
388
- const record = yield engine.sessions.get(sessionId);
389
- if (record === undefined) {
390
- throw new UnknownSessionError(sessionId);
391
- }
392
- if (!samePrincipal(record.auth, auth)) {
393
- throw new Error(`Session ${sessionId} belongs to a different principal; use the credentials that created it.`);
394
- }
395
- return record;
396
- });
406
+ async function requireOwnedSession(engine, auth, sessionId) {
407
+ const record = await engine.sessions.get(sessionId);
408
+ if (record === undefined) {
409
+ throw new UnknownSessionError(sessionId);
410
+ }
411
+ if (!samePrincipal(record.auth, auth)) {
412
+ throw new Error(`Session ${sessionId} belongs to a different principal; use the credentials that created it.`);
413
+ }
414
+ return record;
397
415
  }
398
- function waitForReply(engine, sessionId, waitSeconds) {
399
- return __awaiter(this, void 0, void 0, function* () {
400
- const waitMs = Math.max(0, Math.min(waitSeconds, MAX_WAIT_SECONDS)) * 1000;
401
- const outcome = yield raceTimeout(engine.waitForCompletion(sessionId), waitMs);
402
- if (outcome === undefined) {
403
- return {
404
- status: "running",
405
- sessionId,
406
- note: `The turn is still running. Call check with { "sessionId": "${sessionId}" } to keep waiting.`,
407
- };
408
- }
409
- return toReplyPayload(engine, sessionId, outcome);
410
- });
416
+ async function waitForReply(engine, sessionId, waitSeconds) {
417
+ const waitMs = Math.max(0, Math.min(waitSeconds, MAX_WAIT_SECONDS)) * 1000;
418
+ const outcome = await raceTimeout(engine.waitForCompletion(sessionId), waitMs);
419
+ if (outcome === undefined) {
420
+ return {
421
+ status: "running",
422
+ sessionId,
423
+ note: `The turn is still running. Call check with { "sessionId": "${sessionId}" } to keep waiting.`,
424
+ };
425
+ }
426
+ return toReplyPayload(engine, sessionId, outcome);
411
427
  }
412
- function toReplyPayload(engine, sessionId, outcome) {
413
- return __awaiter(this, void 0, void 0, function* () {
414
- var _a, _b;
415
- if (outcome.status === "finished") {
416
- let reply = outcome.result;
417
- if (reply === undefined || reply === "") {
418
- // The engine's in-memory outcome is gone after a host restart; fall
419
- // back to the durable event log for the last completed turn.
420
- reply = yield latestReplyFromEvents(engine, sessionId);
421
- }
422
- return Object.assign({ status: "completed", sessionId }, (reply === undefined ? {} : { reply }));
423
- }
424
- if (outcome.status === "cancelled") {
425
- return {
426
- status: "cancelled",
427
- sessionId,
428
- errorMessage: (_a = outcome.errorMessage) !== null && _a !== void 0 ? _a : "The turn was cancelled.",
429
- };
428
+ async function toReplyPayload(engine, sessionId, outcome) {
429
+ if (outcome.status === "finished") {
430
+ let reply = outcome.result;
431
+ if (reply === undefined || reply === "") {
432
+ // The engine's in-memory outcome is gone after a host restart; fall
433
+ // back to the durable event log for the last completed turn.
434
+ reply = await latestReplyFromEvents(engine, sessionId);
430
435
  }
431
436
  return {
432
- status: "error",
437
+ status: "completed",
433
438
  sessionId,
434
- errorMessage: (_b = outcome.errorMessage) !== null && _b !== void 0 ? _b : "The turn failed.",
439
+ ...(reply === undefined ? {} : { reply }),
435
440
  };
436
- });
441
+ }
442
+ if (outcome.status === "cancelled") {
443
+ return {
444
+ status: "cancelled",
445
+ sessionId,
446
+ errorMessage: outcome.errorMessage ?? "The turn was cancelled.",
447
+ };
448
+ }
449
+ return {
450
+ status: "error",
451
+ sessionId,
452
+ errorMessage: outcome.errorMessage ?? "The turn failed.",
453
+ };
437
454
  }
438
- function latestReplyFromEvents(engine, sessionId) {
439
- return __awaiter(this, void 0, void 0, function* () {
440
- let events;
441
- try {
442
- events = yield engine.listEvents(sessionId);
455
+ async function latestReplyFromEvents(engine, sessionId) {
456
+ let events;
457
+ try {
458
+ events = await engine.listEvents(sessionId);
459
+ }
460
+ catch {
461
+ return undefined;
462
+ }
463
+ for (let i = events.length - 1; i >= 0; i--) {
464
+ const event = events[i];
465
+ if (event === undefined) {
466
+ continue;
443
467
  }
444
- catch (_a) {
445
- return undefined;
468
+ if (event.type === "turn.completed" && event.data.result !== undefined) {
469
+ return event.data.result;
446
470
  }
447
- for (let i = events.length - 1; i >= 0; i--) {
448
- const event = events[i];
449
- if (event === undefined) {
450
- continue;
451
- }
452
- if (event.type === "turn.completed" && event.data.result !== undefined) {
453
- return event.data.result;
454
- }
455
- if (event.type === "message.completed" && event.data.text !== "") {
456
- return event.data.text;
457
- }
471
+ if (event.type === "message.completed" && event.data.text !== "") {
472
+ return event.data.text;
458
473
  }
459
- return undefined;
460
- });
474
+ }
475
+ return undefined;
461
476
  }
462
477
  function toToolResult(payload) {
463
- return Object.assign({ content: [{ type: "text", text: JSON.stringify(payload) }] }, (payload.status === "error" ? { isError: true } : {}));
478
+ return {
479
+ content: [{ type: "text", text: JSON.stringify(payload) }],
480
+ ...(payload.status === "error" ? { isError: true } : {}),
481
+ };
464
482
  }
465
483
  function errorResult(message) {
466
484
  return {
@@ -470,24 +488,30 @@ function errorResult(message) {
470
488
  }
471
489
  function sdkResultToMcpResult(result) {
472
490
  if (isSdkToolEnvelope(result)) {
473
- return Object.assign(Object.assign({ content: result.content.map(toMcpContent) }, (result.isError === true ? { isError: true } : {})), (result.structuredContent === undefined
474
- ? {}
475
- : { structuredContent: result.structuredContent }));
491
+ return {
492
+ content: result.content.map(toMcpContent),
493
+ ...(result.isError === true ? { isError: true } : {}),
494
+ ...(result.structuredContent === undefined
495
+ ? {}
496
+ : { structuredContent: result.structuredContent }),
497
+ };
476
498
  }
477
499
  if (typeof result === "string") {
478
500
  return { content: [{ type: "text", text: result }] };
479
501
  }
480
- return Object.assign({ content: [{ type: "text", text: JSON.stringify(result) }] }, (isJsonObject(result) ? { structuredContent: result } : {}));
502
+ return {
503
+ content: [{ type: "text", text: JSON.stringify(result) }],
504
+ ...(isJsonObject(result) ? { structuredContent: result } : {}),
505
+ };
481
506
  }
482
507
  function toMcpContent(content) {
483
- var _a;
484
508
  if (content.type === "text") {
485
509
  return content;
486
510
  }
487
511
  return {
488
512
  type: "image",
489
513
  data: content.data,
490
- mimeType: (_a = content.mimeType) !== null && _a !== void 0 ? _a : "application/octet-stream",
514
+ mimeType: content.mimeType ?? "application/octet-stream",
491
515
  };
492
516
  }
493
517
  function isSdkToolEnvelope(result) {