@cursor/bdk 0.2.8 → 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 (581) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.d.ts +1 -0
  3. package/dist/bin/agent-serve.d.ts.map +1 -1
  4. package/dist/bin/agent-serve.js +820 -807
  5. package/dist/channels/bitbucket/api.js +305 -321
  6. package/dist/channels/bitbucket/binding.js +97 -61
  7. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  8. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  9. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  10. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  11. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  12. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  13. package/dist/channels/bitbucket/checks.js +9 -21
  14. package/dist/channels/bitbucket/cursor-account.js +1 -1
  15. package/dist/channels/bitbucket/defaults.js +14 -4
  16. package/dist/channels/bitbucket/events.js +1 -2
  17. package/dist/channels/bitbucket/index.d.ts +6 -2
  18. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  19. package/dist/channels/bitbucket/index.js +6 -2
  20. package/dist/channels/bitbucket/replay.js +80 -56
  21. package/dist/channels/bitbucket/state.js +16 -7
  22. package/dist/channels/bitbucket/types.d.ts +11 -2
  23. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  24. package/dist/channels/checks.js +18 -28
  25. package/dist/channels/deployments/deployments-channel.js +26 -34
  26. package/dist/channels/github/api.js +216 -210
  27. package/dist/channels/github/auth.d.ts +5 -1
  28. package/dist/channels/github/auth.d.ts.map +1 -1
  29. package/dist/channels/github/auth.js +157 -174
  30. package/dist/channels/github/binding.js +48 -39
  31. package/dist/channels/github/checks.js +9 -14
  32. package/dist/channels/github/cursor-account.js +6 -11
  33. package/dist/channels/github/defaults.js +105 -130
  34. package/dist/channels/github/forward.js +13 -17
  35. package/dist/channels/github/github-channel.d.ts +43 -2
  36. package/dist/channels/github/github-channel.d.ts.map +1 -1
  37. package/dist/channels/github/github-channel.js +1228 -958
  38. package/dist/channels/github/progress.js +145 -146
  39. package/dist/channels/github/replay.js +30 -39
  40. package/dist/channels/github/state.js +40 -16
  41. package/dist/channels/github/types.d.ts +30 -6
  42. package/dist/channels/github/types.d.ts.map +1 -1
  43. package/dist/channels/gitlab/api.js +100 -114
  44. package/dist/channels/gitlab/binding.js +52 -33
  45. package/dist/channels/gitlab/checks.js +28 -29
  46. package/dist/channels/gitlab/cursor-account.js +1 -1
  47. package/dist/channels/gitlab/defaults.js +9 -3
  48. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  49. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  50. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  51. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  52. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  53. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  54. package/dist/channels/gitlab/index.d.ts +6 -2
  55. package/dist/channels/gitlab/index.d.ts.map +1 -1
  56. package/dist/channels/gitlab/index.js +6 -2
  57. package/dist/channels/gitlab/replay.js +50 -27
  58. package/dist/channels/gitlab/state.js +14 -6
  59. package/dist/channels/gitlab/types.d.ts +13 -2
  60. package/dist/channels/gitlab/types.d.ts.map +1 -1
  61. package/dist/channels/origin/api.js +100 -116
  62. package/dist/channels/origin/binding.js +15 -16
  63. package/dist/channels/origin/checks.js +30 -28
  64. package/dist/channels/origin/defaults.js +50 -65
  65. package/dist/channels/origin/origin-channel.js +266 -272
  66. package/dist/channels/origin/origin-webhook.js +70 -88
  67. package/dist/channels/origin/reactions.js +9 -21
  68. package/dist/channels/origin/state.js +13 -5
  69. package/dist/channels/slack/agentic-delivery.js +426 -478
  70. package/dist/channels/slack/agentic-posted.js +9 -10
  71. package/dist/channels/slack/agentic-signals.js +2 -3
  72. package/dist/channels/slack/api.js +417 -427
  73. package/dist/channels/slack/approvals.js +1 -1
  74. package/dist/channels/slack/assistant.js +37 -47
  75. package/dist/channels/slack/attachments.js +188 -206
  76. package/dist/channels/slack/auth.js +8 -6
  77. package/dist/channels/slack/bot-mentions.js +31 -45
  78. package/dist/channels/slack/channel-watch.js +42 -48
  79. package/dist/channels/slack/cli-project.js +112 -137
  80. package/dist/channels/slack/code-fences.js +3 -5
  81. package/dist/channels/slack/constants.js +2 -2
  82. package/dist/channels/slack/credentials.js +23 -38
  83. package/dist/channels/slack/defaults.js +292 -331
  84. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  85. package/dist/channels/slack/dispatch.js +533 -460
  86. package/dist/channels/slack/doctor.js +200 -214
  87. package/dist/channels/slack/eval-directive.js +79 -96
  88. package/dist/channels/slack/event-id-dedupe.js +1 -1
  89. package/dist/channels/slack/external-policy.js +26 -39
  90. package/dist/channels/slack/footer.js +28 -41
  91. package/dist/channels/slack/inbound.d.ts +1 -0
  92. package/dist/channels/slack/inbound.d.ts.map +1 -1
  93. package/dist/channels/slack/inbound.js +50 -31
  94. package/dist/channels/slack/init.d.ts +1 -5
  95. package/dist/channels/slack/init.d.ts.map +1 -1
  96. package/dist/channels/slack/init.js +42 -59
  97. package/dist/channels/slack/interactive.d.ts +9 -3
  98. package/dist/channels/slack/interactive.d.ts.map +1 -1
  99. package/dist/channels/slack/interactive.js +160 -162
  100. package/dist/channels/slack/links.js +1 -2
  101. package/dist/channels/slack/live-delivery.js +172 -190
  102. package/dist/channels/slack/manifest.d.ts.map +1 -1
  103. package/dist/channels/slack/manifest.js +44 -23
  104. package/dist/channels/slack/message-body.js +2 -2
  105. package/dist/channels/slack/nudge-carrier.js +30 -42
  106. package/dist/channels/slack/nudge-store.js +164 -191
  107. package/dist/channels/slack/paint-start.js +66 -81
  108. package/dist/channels/slack/placeholder.js +123 -152
  109. package/dist/channels/slack/pr-ref.js +1 -1
  110. package/dist/channels/slack/progress-delivery.js +65 -78
  111. package/dist/channels/slack/reasoning-card.js +36 -49
  112. package/dist/channels/slack/recording-sink.js +12 -24
  113. package/dist/channels/slack/reply-options.js +7 -12
  114. package/dist/channels/slack/self-identity.js +27 -35
  115. package/dist/channels/slack/sender-name.d.ts +12 -3
  116. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  117. package/dist/channels/slack/sender-name.js +57 -61
  118. package/dist/channels/slack/setup.js +2 -4
  119. package/dist/channels/slack/slack-channel.d.ts +6 -4
  120. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  121. package/dist/channels/slack/slack-channel.js +441 -308
  122. package/dist/channels/slack/socket-mode.js +38 -52
  123. package/dist/channels/slack/thread-context.js +143 -160
  124. package/dist/channels/slack/tool-approval-events.js +149 -166
  125. package/dist/channels/slack/tool-cards.js +6 -11
  126. package/dist/channels/slack/tool-chip.js +1 -2
  127. package/dist/channels/slack/types.d.ts +15 -17
  128. package/dist/channels/slack/types.d.ts.map +1 -1
  129. package/dist/channels/slack/upload.js +84 -97
  130. package/dist/channels/slack/user-info.js +27 -41
  131. package/dist/channels.js +9 -20
  132. package/dist/dashboard-session-url.js +3 -4
  133. package/dist/docs/404.html +2 -2
  134. package/dist/docs/assets/{app.oyjtOr3W.js → app.DXI7bwox.js} +4 -4
  135. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  136. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  137. package/dist/docs/assets/chunks/{VPLocalSearchBox.D0P6J_UJ.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  138. package/dist/docs/assets/chunks/{arc.B0LY1J1h.js → arc.BOG1yms8.js} +1 -1
  139. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.dPduLUxY.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  140. package/dist/docs/assets/chunks/{baseUniq.B_Ohm21h.js → baseUniq.H044KjKs.js} +1 -1
  141. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.B4zcanaJ.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  142. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D9Iw21nx.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  143. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  144. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DDVwRShI.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DsYcdn1i.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-55IACEB6.BzzQvcYp.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BMiXZ7FX.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.D_mBcLoc.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMVjWVMx.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  150. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BG-FrPv9.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  151. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CkFE1ap3.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  152. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  153. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  154. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  155. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BVNnCTvY.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  156. package/dist/docs/assets/chunks/{dagre-KV5264BT.CDN5PR9l.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DQRUlT-i.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.CoeblYQT.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  159. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DW3ymjl0.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  160. package/dist/docs/assets/chunks/{diagram-TYMM5635.BP0uN4Jw.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  161. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DVFUWEn4.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  162. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.HU-eHspv.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  163. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHNhXijY.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  164. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DkISXcO3.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  165. package/dist/docs/assets/chunks/{graph.CCV0fuRR.js → graph.BVqKRmRo.js} +1 -1
  166. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.bgILzOoc.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  167. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CuryXC0F.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  168. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BL1Pr-wu.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  169. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BbGjvk4l.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  170. package/dist/docs/assets/chunks/{layout.C4PfdldS.js → layout.CGU3gfSf.js} +1 -1
  171. package/dist/docs/assets/chunks/{linear.C3xD1T6X.js → linear.DaihpW_n.js} +1 -1
  172. package/dist/docs/assets/chunks/{min.CzgRAQ9c.js → min.BS-j8kHQ.js} +1 -1
  173. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CA9rSWum.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  174. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B8MprgJu.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  175. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DndDwbKT.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  176. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.Zhfgwlnn.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  177. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.B6RRm6N5.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  178. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bfmz-1PN.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  179. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.gbrdNqgj.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  180. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  181. package/dist/docs/assets/chunks/{theme.gpWjytMh.js → theme.DaplWQhQ.js} +2 -2
  182. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bl1l7M1f.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  183. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Dfle4U0d.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  184. package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +162 -0
  185. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.CM_4lmvZ.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  186. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CHT5X28R.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  187. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  188. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  189. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  191. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  192. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  193. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  194. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  195. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  196. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  197. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  198. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  199. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  200. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  201. package/dist/docs/building-with-agents.html +37 -37
  202. package/dist/docs/building-with-agents.md +2 -0
  203. package/dist/docs/deployment.html +38 -38
  204. package/dist/docs/deployment.md +7 -0
  205. package/dist/docs/evals.html +36 -36
  206. package/dist/docs/guides/agent-to-agent.html +35 -35
  207. package/dist/docs/guides/bitbucket.html +38 -38
  208. package/dist/docs/guides/bitbucket.md +9 -1
  209. package/dist/docs/guides/cloud-agents.html +35 -35
  210. package/dist/docs/guides/convert-automation.html +35 -35
  211. package/dist/docs/guides/github.html +39 -39
  212. package/dist/docs/guides/github.md +20 -4
  213. package/dist/docs/guides/gitlab.html +38 -38
  214. package/dist/docs/guides/gitlab.md +9 -1
  215. package/dist/docs/guides/grokbot-agents.html +35 -35
  216. package/dist/docs/guides/hooks.html +35 -35
  217. package/dist/docs/guides/improve.html +35 -35
  218. package/dist/docs/guides/jev.html +35 -35
  219. package/dist/docs/guides/mcp-oauth.html +35 -35
  220. package/dist/docs/guides/migrate.html +66 -0
  221. package/dist/docs/guides/migrate.md +122 -0
  222. package/dist/docs/guides/opentelemetry.html +35 -35
  223. package/dist/docs/guides/slack.html +35 -35
  224. package/dist/docs/guides/webhooks.html +35 -35
  225. package/dist/docs/hashmap.json +1 -1
  226. package/dist/docs/hillclimbing.html +35 -35
  227. package/dist/docs/index.html +35 -35
  228. package/dist/docs/llms-full.txt +214 -6
  229. package/dist/docs/llms.txt +1 -0
  230. package/dist/docs/quickstart.html +35 -35
  231. package/dist/docs/reference/agent-config.html +35 -35
  232. package/dist/docs/reference/artifacts.html +35 -35
  233. package/dist/docs/reference/channels.html +35 -35
  234. package/dist/docs/reference/cli.html +39 -38
  235. package/dist/docs/reference/cli.md +39 -0
  236. package/dist/docs/reference/connections.html +35 -35
  237. package/dist/docs/reference/evals.html +35 -35
  238. package/dist/docs/reference/extensions.html +35 -35
  239. package/dist/docs/reference/hooks.html +35 -35
  240. package/dist/docs/reference/http-api.html +35 -35
  241. package/dist/docs/reference/instructions.html +35 -35
  242. package/dist/docs/reference/playground.html +35 -35
  243. package/dist/docs/reference/project-layout.html +35 -35
  244. package/dist/docs/reference/prompt.html +35 -35
  245. package/dist/docs/reference/schedules.html +35 -35
  246. package/dist/docs/reference/sessions.html +35 -35
  247. package/dist/docs/reference/skills.html +38 -38
  248. package/dist/docs/reference/subagents.html +35 -35
  249. package/dist/docs/reference/tools.html +35 -35
  250. package/dist/docs/templates/agentic-owners.html +35 -35
  251. package/dist/docs/templates/grokbot-agents.html +35 -35
  252. package/dist/docs/templates/security-reviewer.html +35 -35
  253. package/dist/docs/templates/thermo-quality-review.html +35 -35
  254. package/dist/docs/templates/thermo-review.html +35 -35
  255. package/dist/docs/templates/triage.html +35 -35
  256. package/dist/docs/troubleshooting.html +36 -36
  257. package/dist/docs/troubleshooting.md +1 -0
  258. package/dist/evals/assertions.js +20 -34
  259. package/dist/evals/expect.js +3 -6
  260. package/dist/evals/judge.js +5 -8
  261. package/dist/evals/loaders.js +45 -62
  262. package/dist/evals/matchers.js +2 -3
  263. package/dist/evals/reporters.js +43 -67
  264. package/dist/evals/results.js +1 -1
  265. package/dist/evals/run-facts.js +5 -6
  266. package/dist/evals.js +27 -15
  267. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  268. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +0 -1
  269. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  270. package/dist/extensions/cursor-cloud-agents/lib/backend.js +101 -130
  271. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  272. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  273. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  274. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  275. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  276. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  277. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  278. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  279. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  280. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -1
  281. package/dist/extensions/cursor-cloud-agents/tools/list.js +9 -20
  282. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  283. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  284. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  285. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  286. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  287. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  288. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  289. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  290. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  291. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  292. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  293. package/dist/extensions/jev/extension.js +3 -3
  294. package/dist/extensions/jev/lib/evaluate.js +43 -60
  295. package/dist/extensions/jev/tools/evaluate.js +6 -17
  296. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  297. package/dist/extensions.js +3 -5
  298. package/dist/files-backends/cursor-hosted.js +504 -523
  299. package/dist/files-backends/local-fs.js +72 -134
  300. package/dist/files.js +3 -3
  301. package/dist/filesystem.js +562 -861
  302. package/dist/index.js +16 -35
  303. package/dist/internal/advertise-tools.js +74 -86
  304. package/dist/internal/artifacts-store.js +298 -361
  305. package/dist/internal/as-of.js +2 -4
  306. package/dist/internal/authored-alias-hooks.js +6 -4
  307. package/dist/internal/authored-loaders.js +37 -52
  308. package/dist/internal/bounded-int.js +1 -2
  309. package/dist/internal/bounded.js +13 -24
  310. package/dist/internal/brand.js +1 -1
  311. package/dist/internal/browser-origin-guard.js +4 -4
  312. package/dist/internal/builtin-tools/artifacts.js +15 -27
  313. package/dist/internal/builtin-tools/index.js +2 -3
  314. package/dist/internal/builtin-tools/reminders.js +33 -52
  315. package/dist/internal/channel-architecture.d.ts +21 -0
  316. package/dist/internal/channel-architecture.d.ts.map +1 -0
  317. package/dist/internal/channel-architecture.js +41 -0
  318. package/dist/internal/channel-dispatch.js +3 -4
  319. package/dist/internal/channel-route-dispatch.js +40 -51
  320. package/dist/internal/channel-state.js +1 -1
  321. package/dist/internal/chat-client.js +319 -340
  322. package/dist/internal/cli-ax.js +1262 -1294
  323. package/dist/internal/cli-bitbucket.js +244 -272
  324. package/dist/internal/cli-convert-automation.js +137 -151
  325. package/dist/internal/cli-cursor.js +126 -147
  326. package/dist/internal/cli-deploy.d.ts.map +1 -1
  327. package/dist/internal/cli-deploy.js +1457 -1507
  328. package/dist/internal/cli-docs.js +130 -147
  329. package/dist/internal/cli-github.js +437 -476
  330. package/dist/internal/cli-gitlab.js +259 -288
  331. package/dist/internal/cli-images.js +266 -334
  332. package/dist/internal/cli-manifest.js +25 -37
  333. package/dist/internal/cli-mcp-oauth.js +228 -247
  334. package/dist/internal/cli-mcp.js +358 -383
  335. package/dist/internal/cli-migrate.d.ts +18 -0
  336. package/dist/internal/cli-migrate.d.ts.map +1 -0
  337. package/dist/internal/cli-migrate.js +136 -0
  338. package/dist/internal/cli-skills.js +35 -47
  339. package/dist/internal/cli-slack-manual.d.ts +0 -1
  340. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  341. package/dist/internal/cli-slack-manual.js +175 -204
  342. package/dist/internal/cli-slack.d.ts +1 -1
  343. package/dist/internal/cli-slack.d.ts.map +1 -1
  344. package/dist/internal/cli-slack.js +416 -456
  345. package/dist/internal/cloud-merge.js +7 -3
  346. package/dist/internal/cloud-turn-cost.js +8 -1
  347. package/dist/internal/connection-env.js +5 -6
  348. package/dist/internal/continuation-channel.js +10 -7
  349. package/dist/internal/continuation-identity.js +85 -67
  350. package/dist/internal/conversation-mirror.js +112 -131
  351. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  352. package/dist/internal/cron.js +3 -3
  353. package/dist/internal/cursor/account-mcp.js +147 -146
  354. package/dist/internal/cursor/backend-client.js +290 -320
  355. package/dist/internal/cursor/bound-secret-file.js +3 -3
  356. package/dist/internal/cursor/credentials.d.ts +1 -0
  357. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  358. package/dist/internal/cursor/credentials.js +130 -142
  359. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  360. package/dist/internal/cursor/github-credentials.js +91 -108
  361. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  362. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  363. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  364. package/dist/internal/cursor/session-token.js +36 -48
  365. package/dist/internal/cursor/store-api-client.js +77 -92
  366. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  367. package/dist/internal/cursor-agent-template.js +1 -1
  368. package/dist/internal/cursor-deployment-relay.js +33 -54
  369. package/dist/internal/cursor-event-relay.js +65 -59
  370. package/dist/internal/cursor-relay-core.js +258 -286
  371. package/dist/internal/deferred-channel-session.js +3 -12
  372. package/dist/internal/deploy-client.js +410 -475
  373. package/dist/internal/deploy-manifest.d.ts +17 -0
  374. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  375. package/dist/internal/deploy-manifest.js +71 -21
  376. package/dist/internal/deploy-source.js +31 -43
  377. package/dist/internal/discovery/agent-config.js +45 -59
  378. package/dist/internal/discovery/agent.js +276 -280
  379. package/dist/internal/discovery/channels.js +67 -80
  380. package/dist/internal/discovery/connections.js +286 -296
  381. package/dist/internal/discovery/context.js +2 -13
  382. package/dist/internal/discovery/cursor-plugin.js +223 -259
  383. package/dist/internal/discovery/extension-overlay.js +104 -131
  384. package/dist/internal/discovery/extensions.js +276 -281
  385. package/dist/internal/discovery/fs.js +56 -79
  386. package/dist/internal/discovery/hooks.js +39 -50
  387. package/dist/internal/discovery/info.js +17 -19
  388. package/dist/internal/discovery/instructions.js +58 -71
  389. package/dist/internal/discovery/modules.js +45 -58
  390. package/dist/internal/discovery/project.d.ts.map +1 -1
  391. package/dist/internal/discovery/project.js +192 -215
  392. package/dist/internal/discovery/reminders.js +41 -52
  393. package/dist/internal/discovery/runtime.js +1 -1
  394. package/dist/internal/discovery/schedules.js +71 -82
  395. package/dist/internal/discovery/seed-files.js +21 -32
  396. package/dist/internal/discovery/services.js +74 -96
  397. package/dist/internal/discovery/skills.js +77 -94
  398. package/dist/internal/discovery/subagent.js +79 -95
  399. package/dist/internal/discovery/tools.js +12 -23
  400. package/dist/internal/distribution.js +2 -2
  401. package/dist/internal/docs-site.js +30 -45
  402. package/dist/internal/duration.js +1 -1
  403. package/dist/internal/env-file.js +48 -64
  404. package/dist/internal/eval-judge-model.js +17 -28
  405. package/dist/internal/eval-run-store.js +265 -254
  406. package/dist/internal/eval-runner.d.ts +8 -0
  407. package/dist/internal/eval-runner.d.ts.map +1 -1
  408. package/dist/internal/eval-runner.js +406 -408
  409. package/dist/internal/eval-transport.d.ts +24 -0
  410. package/dist/internal/eval-transport.d.ts.map +1 -0
  411. package/dist/internal/eval-transport.js +22 -0
  412. package/dist/internal/evals-client.js +242 -246
  413. package/dist/internal/event-log.js +72 -120
  414. package/dist/internal/event-mapper.js +30 -31
  415. package/dist/internal/factory-resource-channel.js +16 -30
  416. package/dist/internal/filesystem/errors.js +6 -6
  417. package/dist/internal/filesystem/format.js +10 -13
  418. package/dist/internal/filesystem/merge.js +52 -94
  419. package/dist/internal/filesystem/nearest.js +15 -27
  420. package/dist/internal/filesystem/scratch.js +65 -85
  421. package/dist/internal/filesystem/tools.js +221 -241
  422. package/dist/internal/filesystem/walk.js +76 -143
  423. package/dist/internal/framework-file-storage.js +118 -139
  424. package/dist/internal/framework-storage-selection.js +21 -13
  425. package/dist/internal/frontmatter.js +4 -6
  426. package/dist/internal/github-fanout.js +50 -64
  427. package/dist/internal/guest-network.js +96 -109
  428. package/dist/internal/handleAgentServeTrigger.js +121 -126
  429. package/dist/internal/host-files.js +73 -88
  430. package/dist/internal/host-kv.js +21 -36
  431. package/dist/internal/host-otel.js +22 -19
  432. package/dist/internal/host-platforms.js +49 -63
  433. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  434. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  435. package/dist/internal/hosted-catch-protocol.js +1 -0
  436. package/dist/internal/hosted-catch.d.ts +5 -3
  437. package/dist/internal/hosted-catch.d.ts.map +1 -1
  438. package/dist/internal/hosted-catch.js +84 -93
  439. package/dist/internal/hosted-delivery-protocol.js +32 -8
  440. package/dist/internal/hosted-delivery.d.ts +13 -1
  441. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  442. package/dist/internal/hosted-delivery.js +614 -584
  443. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  444. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  445. package/dist/internal/hosted-eval-cases.js +162 -0
  446. package/dist/internal/hosted-execution-diag.js +38 -30
  447. package/dist/internal/hosted-execution-flush.js +75 -66
  448. package/dist/internal/hosted-execution-latency.js +16 -8
  449. package/dist/internal/hosted-managed-automation.js +2 -2
  450. package/dist/internal/hosting.js +2 -3
  451. package/dist/internal/http-channel-define.js +4 -1
  452. package/dist/internal/http-channel.js +101 -112
  453. package/dist/internal/http-control-plane-session.d.ts +18 -1
  454. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  455. package/dist/internal/http-control-plane-session.js +66 -32
  456. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  457. package/dist/internal/init-interview.js +73 -93
  458. package/dist/internal/init-project.js +182 -214
  459. package/dist/internal/init-scaffold.js +10 -21
  460. package/dist/internal/inline-stdio-mcp.js +80 -86
  461. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  462. package/dist/internal/install-cursor-skills.js +238 -274
  463. package/dist/internal/legacy-command-guard.js +18 -31
  464. package/dist/internal/listen-port.js +34 -45
  465. package/dist/internal/local-control-plane.js +293 -307
  466. package/dist/internal/local-env.js +1 -1
  467. package/dist/internal/local-ingress.js +15 -9
  468. package/dist/internal/log-ring.js +1 -2
  469. package/dist/internal/logs-client.js +207 -227
  470. package/dist/internal/map-pool.js +24 -38
  471. package/dist/internal/mcp-endpoint.js +204 -180
  472. package/dist/internal/mcp-host.js +165 -168
  473. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  474. package/dist/internal/mcp-oauth-persist.js +15 -29
  475. package/dist/internal/mcp-oauth.js +209 -266
  476. package/dist/internal/named-webhook-secret.d.ts +39 -0
  477. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  478. package/dist/internal/named-webhook-secret.js +47 -0
  479. package/dist/internal/open-browser.js +2 -3
  480. package/dist/internal/otel/collector.js +104 -68
  481. package/dist/internal/otel/config.js +24 -37
  482. package/dist/internal/otel/http.js +5 -7
  483. package/dist/internal/otel/mcp.js +3 -12
  484. package/dist/internal/otel/runtime.js +69 -83
  485. package/dist/internal/package-inline-stdio.js +57 -65
  486. package/dist/internal/peer-connections.js +9 -5
  487. package/dist/internal/platform-schedule-sync.js +39 -54
  488. package/dist/internal/platform-timers.js +176 -210
  489. package/dist/internal/playground/static.js +1 -2
  490. package/dist/internal/playground/toolchain.js +37 -53
  491. package/dist/internal/playground-proxy.js +230 -270
  492. package/dist/internal/process-memory-telemetry.js +33 -51
  493. package/dist/internal/prompt-context.js +3 -6
  494. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  495. package/dist/internal/reminder-runner.js +770 -785
  496. package/dist/internal/reminder-schedule.js +1 -1
  497. package/dist/internal/reminder-store.js +57 -78
  498. package/dist/internal/request-error-status.js +1 -3
  499. package/dist/internal/request-headers.js +2 -2
  500. package/dist/internal/resolve-prod-target.js +119 -135
  501. package/dist/internal/resolved-connections.js +16 -6
  502. package/dist/internal/run-client.js +221 -229
  503. package/dist/internal/runtime-dispatch-runner.js +18 -43
  504. package/dist/internal/schedule-runner.js +49 -58
  505. package/dist/internal/scm/pr-url.js +7 -6
  506. package/dist/internal/sdk-runner.js +388 -363
  507. package/dist/internal/serve-restart.js +26 -39
  508. package/dist/internal/server.d.ts.map +1 -1
  509. package/dist/internal/server.js +1283 -1244
  510. package/dist/internal/session-cost.js +7 -9
  511. package/dist/internal/session-engine.d.ts +3 -1
  512. package/dist/internal/session-engine.d.ts.map +1 -1
  513. package/dist/internal/session-engine.js +2801 -2777
  514. package/dist/internal/session-links.js +12 -16
  515. package/dist/internal/session-run-log.js +134 -82
  516. package/dist/internal/session-store.js +133 -164
  517. package/dist/internal/sessions-client.js +97 -118
  518. package/dist/internal/skill-catalog.js +18 -23
  519. package/dist/internal/skills-sync.js +16 -30
  520. package/dist/internal/slack-provision-client.js +90 -116
  521. package/dist/internal/start-log-store.js +48 -67
  522. package/dist/internal/steering.js +1 -2
  523. package/dist/internal/storage-coordinator.js +160 -196
  524. package/dist/internal/store-mirror.js +16 -30
  525. package/dist/internal/stream-progress.js +6 -8
  526. package/dist/internal/terminal-style.js +3 -4
  527. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  528. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  529. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  530. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  531. package/dist/internal/tool-catalog.js +11 -5
  532. package/dist/internal/tool-result.js +1 -1
  533. package/dist/internal/trajectory.js +19 -22
  534. package/dist/internal/turn-cost.js +52 -62
  535. package/dist/internal/turn-governor.js +5 -8
  536. package/dist/internal/turn-lease-store.js +85 -105
  537. package/dist/internal/turn-outbox.js +28 -43
  538. package/dist/internal/update-check.js +231 -259
  539. package/dist/internal/v2-hosting.js +1 -2
  540. package/dist/internal/workspace-sync.js +25 -41
  541. package/dist/internal/workspace.js +111 -139
  542. package/dist/kv/memory-kv.js +27 -51
  543. package/dist/memory.js +106 -148
  544. package/dist/otel.js +5 -8
  545. package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
  546. package/dist/playground/assets/{index-MijLHTbB.js → index-JekUQERK.js} +45 -45
  547. package/dist/playground/index.html +2 -2
  548. package/dist/prompt.js +2 -4
  549. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  550. package/dist/storage-backends/cursor-hosted.js +105 -145
  551. package/dist/storage-backends/file-kv.js +100 -128
  552. package/dist/storage-protocol.js +3 -5
  553. package/dist/storage.js +17 -26
  554. package/dist/types.d.ts +68 -0
  555. package/dist/types.d.ts.map +1 -1
  556. package/dist/types.js +20 -18
  557. package/docs/building-with-agents.md +2 -0
  558. package/docs/deployment.md +7 -0
  559. package/docs/guides/bitbucket.md +9 -1
  560. package/docs/guides/github.md +20 -4
  561. package/docs/guides/gitlab.md +9 -1
  562. package/docs/guides/migrate.md +127 -0
  563. package/docs/reference/cli.md +39 -0
  564. package/docs/troubleshooting.md +1 -0
  565. package/package.json +1 -1
  566. package/skills/debug/SKILL.md +1 -0
  567. package/skills/github/SKILL.md +23 -0
  568. package/skills/migrate-v2/SKILL.md +264 -0
  569. package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +0 -1
  570. package/dist/docs/assets/chunks/channel.CRUyWDV-.js +0 -1
  571. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +0 -1
  572. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +0 -1
  573. package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +0 -1
  574. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +0 -1
  575. package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +0 -162
  576. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  577. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  578. package/dist/playground/assets/index-DPKLl4C_.css +0 -1
  579. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  580. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
  581. /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) {