@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
@@ -13,15 +13,6 @@
13
13
  * (so `servers` filters apply there too); without one they omit the bridge
14
14
  * and fall back to the account's natively hydrated connectors.
15
15
  */
16
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
- return new (P || (P = Promise))(function (resolve, reject) {
19
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
- step((generator = generator.apply(thisArg, _arguments || [])).next());
23
- });
24
- };
25
16
  import { randomBytes } from "node:crypto";
26
17
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
27
18
  import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
@@ -35,12 +26,12 @@ import { isLoopbackAddress } from "../net.js";
35
26
  import { sanitizeMcpToolName, suffixMcpToolName } from "../sanitize-mcp-tool-name.js";
36
27
  import { colorEnabledFor, formatTerminalBox, stdoutPalette, terminalHyperlink, } from "../terminal-style.js";
37
28
  /** Catalog freshness window; a miss inside it re-uses the cached listing. */
38
- const CATALOG_TTL_MS = 60000;
29
+ const CATALOG_TTL_MS = 60_000;
39
30
  /**
40
31
  * Unknown-tool lookups force a refresh, but never more often than this —
41
32
  * a model hallucinating tool names cannot turn into a backend hot loop.
42
33
  */
43
- const FORCE_REFRESH_MIN_INTERVAL_MS = 5000;
34
+ const FORCE_REFRESH_MIN_INTERVAL_MS = 5_000;
44
35
  /** Dashboard Integrations & MCP — reconnect team / account connectors. */
45
36
  export const CURSOR_ACCOUNT_MCP_DASHBOARD_URL = "https://cursor.com/dashboard/integrations";
46
37
  /** Cursor app Settings → MCP (Connect / Authenticate on the named row). */
@@ -51,20 +42,22 @@ export const CURSOR_ACCOUNT_MCP_SETTINGS_DEEPLINK = "cursor://anysphere.cursor-d
51
42
  * the account (see {@link CursorAccountMcpBridge.logPreflight}).
52
43
  */
53
44
  export function collectCursorAccountConnections(mounts) {
54
- var _a;
55
45
  const bySlug = new Map();
56
46
  for (const { slug, project } of mounts) {
57
47
  const refs = [];
58
48
  for (const connection of [
59
49
  ...project.agent.connections,
60
- ...((_a = project.agent.hostConnections) !== null && _a !== void 0 ? _a : []),
50
+ ...(project.agent.hostConnections ?? []),
61
51
  ]) {
62
52
  if (!isCursorAccountTransport(connection.transport)) {
63
53
  continue;
64
54
  }
65
- refs.push(Object.assign({ name: connection.name }, (connection.transport.servers === undefined
66
- ? {}
67
- : { servers: [...connection.transport.servers] })));
55
+ refs.push({
56
+ name: connection.name,
57
+ ...(connection.transport.servers === undefined
58
+ ? {}
59
+ : { servers: [...connection.transport.servers] }),
60
+ });
68
61
  }
69
62
  if (refs.length > 0) {
70
63
  bySlug.set(slug, refs);
@@ -86,21 +79,26 @@ export function resolveCursorAccountConnections(args) {
86
79
  const serverBase = trimTrailingSlash(args.serverUrl);
87
80
  const publicBase = args.publicUrl === undefined ? undefined : trimTrailingSlash(args.publicUrl);
88
81
  const headers = { authorization: `Bearer ${args.bridgeSecret}` };
89
- return args.refs.map(ref => (Object.assign(Object.assign(Object.assign({ name: ref.name, localUrl: `${serverBase}${args.basePath}${cursorAccountMcpPath(ref.name)}` }, (publicBase === undefined
90
- ? {}
91
- : {
92
- cloudUrl: `${publicBase}${args.basePath}${cursorAccountMcpPath(ref.name)}`,
93
- })), { headers }), (ref.servers === undefined ? {} : { accountServersFilter: ref.servers }))));
82
+ return args.refs.map(ref => ({
83
+ name: ref.name,
84
+ localUrl: `${serverBase}${args.basePath}${cursorAccountMcpPath(ref.name)}`,
85
+ ...(publicBase === undefined
86
+ ? {}
87
+ : {
88
+ cloudUrl: `${publicBase}${args.basePath}${cursorAccountMcpPath(ref.name)}`,
89
+ }),
90
+ headers,
91
+ ...(ref.servers === undefined ? {} : { accountServersFilter: ref.servers }),
92
+ }));
94
93
  }
95
94
  export class CursorAccountMcpBridge {
96
95
  constructor(args) {
97
- var _a, _b;
98
96
  /** Per-boot shared secret; resolved connections carry it as a bearer. */
99
97
  this.secret = randomBytes(32).toString("hex");
100
98
  this.catalogs = new Map();
101
99
  this.client = args.client;
102
- this.logger = (_a = args.logger) !== null && _a !== void 0 ? _a : (() => { });
103
- this.palette = (_b = args.palette) !== null && _b !== void 0 ? _b : stdoutPalette();
100
+ this.logger = args.logger ?? (() => { });
101
+ this.palette = args.palette ?? stdoutPalette();
104
102
  this.secretPolicy = bearerAuth(this.secret);
105
103
  this.allowRemoteCallers = args.allowRemoteCallers === true;
106
104
  }
@@ -110,12 +108,12 @@ export class CursorAccountMcpBridge {
110
108
  * `publicUrl` (cloud turns arrive through that ingress with the secret).
111
109
  */
112
110
  authPolicy() {
113
- return (request, info) => __awaiter(this, void 0, void 0, function* () {
111
+ return async (request, info) => {
114
112
  const loopback = info.requestIp !== null && isLoopbackAddress(info.requestIp);
115
113
  if (!loopback && !this.allowRemoteCallers) {
116
114
  return null;
117
115
  }
118
- if ((yield this.secretPolicy(request, info)) === null) {
116
+ if ((await this.secretPolicy(request, info)) === null) {
119
117
  return null;
120
118
  }
121
119
  return {
@@ -123,15 +121,14 @@ export class CursorAccountMcpBridge {
123
121
  principalId: "cursor-account-bridge",
124
122
  principalType: "runtime",
125
123
  };
126
- });
124
+ };
127
125
  }
128
126
  /**
129
127
  * Handle one streamable-HTTP MCP request for the connection described by
130
128
  * `ref` (stateless: fresh server per POST, like the per-agent endpoint).
131
129
  */
132
130
  handle(request, ref, decorate) {
133
- var _a;
134
- const sessionId = (_a = new URL(request.url).searchParams.get("agentkitSessionId")) !== null && _a !== void 0 ? _a : "";
131
+ const sessionId = new URL(request.url).searchParams.get("agentkitSessionId") ?? "";
135
132
  return handleStatelessMcpRequest({
136
133
  request,
137
134
  buildServer: () => this.buildServer(ref, sessionId, decorate),
@@ -148,89 +145,92 @@ export class CursorAccountMcpBridge {
148
145
  * Returns a promise that settles when every ref's log lines are written —
149
146
  * callers may ignore it; tests can await it.
150
147
  */
151
- probeAuthUrl(ref) {
152
- return __awaiter(this, void 0, void 0, function* () {
153
- const identifiers = ref.servers !== undefined && ref.servers.length > 0
154
- ? [...ref.servers]
155
- : (yield this.client.getAvailableMcpServers()).map(server => { var _a; return (_a = server.serverIdentifier) !== null && _a !== void 0 ? _a : server.name; });
156
- const urls = yield probeConnectorAuthUrls({
157
- client: this.client,
158
- identifiers,
159
- });
160
- for (const url of urls.values()) {
161
- if (url !== "") {
162
- return url;
163
- }
164
- }
165
- return undefined;
148
+ async probeAuthUrl(ref) {
149
+ const identifiers = ref.servers !== undefined && ref.servers.length > 0
150
+ ? [...ref.servers]
151
+ : (await this.client.getAvailableMcpServers()).map(server => server.serverIdentifier ?? server.name);
152
+ const urls = await probeConnectorAuthUrls({
153
+ client: this.client,
154
+ identifiers,
166
155
  });
156
+ for (const url of urls.values()) {
157
+ if (url !== "") {
158
+ return url;
159
+ }
160
+ }
161
+ return undefined;
167
162
  }
168
163
  logPreflight(refs) {
169
164
  return Promise.all(refs.map(ref => this.runPreflight(ref))).then(() => undefined);
170
165
  }
171
- runPreflight(ref) {
172
- return __awaiter(this, void 0, void 0, function* () {
173
- try {
174
- const catalog = yield this.getCatalog(ref);
175
- const errorDetails = new Map();
176
- const needsAuthNames = catalog.servers
177
- .filter(server => server.status === "needsAuth")
178
- .map(server => server.serverIdentifier);
179
- const [authUrls] = yield Promise.all([
180
- probeConnectorAuthUrls({
181
- client: this.client,
182
- identifiers: needsAuthNames,
183
- }),
184
- Promise.all(catalog.servers
185
- .filter(server => server.status === "error")
186
- .map((server) => __awaiter(this, void 0, void 0, function* () {
187
- const detail = yield diagnoseConnectorError(this.client, server.serverIdentifier);
188
- if (detail !== undefined) {
189
- errorDetails.set(server.serverIdentifier, detail);
190
- }
191
- }))),
192
- ]);
193
- const unhealthy = catalog.servers.some(server => server.status === "needsAuth" || server.status === "error");
194
- if (catalog.servers.length === 0 || unhealthy) {
195
- this.logger(formatCursorAccountMcpWarningBox({
196
- connectionName: ref.name,
197
- servers: catalog.servers.map(server => ({
198
- serverIdentifier: server.serverIdentifier,
199
- status: server.status,
200
- toolCount: server.tools.length,
201
- errorDetail: errorDetails.get(server.serverIdentifier),
202
- authUrl: authUrls.get(server.serverIdentifier),
203
- })),
204
- palette: this.palette,
205
- }));
206
- return;
207
- }
208
- const summary = catalog.servers
209
- .map(server => formatServerStatusSummary(server, errorDetails.get(server.serverIdentifier)))
210
- .join(", ");
211
- this.logger(`${LOG_PREFIX} Cursor account MCP connection "${ref.name}": ${summary}`);
212
- }
213
- catch (error) {
214
- this.logger(`${LOG_PREFIX} Cursor account MCP connection "${ref.name}" preflight failed: ${describeError(error)}`);
166
+ async runPreflight(ref) {
167
+ try {
168
+ const catalog = await this.getCatalog(ref);
169
+ const errorDetails = new Map();
170
+ const needsAuthNames = catalog.servers
171
+ .filter(server => server.status === "needsAuth")
172
+ .map(server => server.serverIdentifier);
173
+ const [authUrls] = await Promise.all([
174
+ probeConnectorAuthUrls({
175
+ client: this.client,
176
+ identifiers: needsAuthNames,
177
+ }),
178
+ Promise.all(catalog.servers
179
+ .filter(server => server.status === "error")
180
+ .map(async (server) => {
181
+ const detail = await diagnoseConnectorError(this.client, server.serverIdentifier);
182
+ if (detail !== undefined) {
183
+ errorDetails.set(server.serverIdentifier, detail);
184
+ }
185
+ })),
186
+ ]);
187
+ const unhealthy = catalog.servers.some(server => server.status === "needsAuth" || server.status === "error");
188
+ if (catalog.servers.length === 0 || unhealthy) {
189
+ this.logger(formatCursorAccountMcpWarningBox({
190
+ connectionName: ref.name,
191
+ servers: catalog.servers.map(server => ({
192
+ serverIdentifier: server.serverIdentifier,
193
+ status: server.status,
194
+ toolCount: server.tools.length,
195
+ errorDetail: errorDetails.get(server.serverIdentifier),
196
+ authUrl: authUrls.get(server.serverIdentifier),
197
+ })),
198
+ palette: this.palette,
199
+ }));
200
+ return;
215
201
  }
216
- });
202
+ const summary = catalog.servers
203
+ .map(server => formatServerStatusSummary(server, errorDetails.get(server.serverIdentifier)))
204
+ .join(", ");
205
+ this.logger(`${LOG_PREFIX} Cursor account MCP connection "${ref.name}": ${summary}`);
206
+ }
207
+ catch (error) {
208
+ this.logger(`${LOG_PREFIX} Cursor account MCP connection "${ref.name}" preflight failed: ${describeError(error)}`);
209
+ }
217
210
  }
218
211
  buildServer(ref, sessionId, decorate) {
219
212
  const server = new Server({ name: `cursor-account:${ref.name}`, version: "0.1.0" }, {
220
213
  capabilities: { tools: {} },
221
214
  instructions: "Tools from the Cursor account's MCP connectors. Every call executes on the Cursor backend with the account's stored credentials.",
222
215
  });
223
- server.setRequestHandler(ListToolsRequestSchema, () => __awaiter(this, void 0, void 0, function* () {
224
- const catalog = yield this.getCatalog(ref);
216
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
217
+ const catalog = await this.getCatalog(ref);
225
218
  return {
226
- tools: catalog.tools.map(tool => (Object.assign(Object.assign({ name: tool.exposedName, description: tool.description, inputSchema: tool.inputSchema }, (tool.outputSchema === undefined ? {} : { outputSchema: tool.outputSchema })), (tool.annotations === undefined ? {} : { annotations: tool.annotations })))),
219
+ tools: catalog.tools.map(tool => ({
220
+ name: tool.exposedName,
221
+ description: tool.description,
222
+ inputSchema: tool.inputSchema,
223
+ ...(tool.outputSchema === undefined ? {} : { outputSchema: tool.outputSchema }),
224
+ // Already bounded to the MCP-spec fields at the backend-client
225
+ // parse; absent stays absent so classifiers fail closed.
226
+ ...(tool.annotations === undefined ? {} : { annotations: tool.annotations }),
227
+ })),
227
228
  };
228
- }));
229
- server.setRequestHandler(CallToolRequestSchema, (request) => __awaiter(this, void 0, void 0, function* () {
230
- var _a;
231
- const tool = yield this.findTool(ref, request.params.name);
229
+ });
230
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
231
+ const tool = await this.findTool(ref, request.params.name);
232
232
  if (tool === undefined) {
233
- const catalog = yield this.getCatalog(ref);
233
+ const catalog = await this.getCatalog(ref);
234
234
  const unhealthy = catalog.servers.filter(server => server.status !== "connected");
235
235
  const statusHint = unhealthy.length === 0
236
236
  ? ""
@@ -248,10 +248,10 @@ export class CursorAccountMcpBridge {
248
248
  };
249
249
  }
250
250
  try {
251
- const executed = yield this.client.executeAccountMcpTool({
251
+ const executed = await this.client.executeAccountMcpTool({
252
252
  serverIdentifier: tool.serverIdentifier,
253
253
  toolName: tool.backendName,
254
- args: (_a = request.params.arguments) !== null && _a !== void 0 ? _a : {},
254
+ args: request.params.arguments ?? {},
255
255
  });
256
256
  const decorated = decorate === undefined ? executed : decorate(sessionId, executed);
257
257
  return {
@@ -271,20 +271,18 @@ export class CursorAccountMcpBridge {
271
271
  isError: true,
272
272
  };
273
273
  }
274
- }));
274
+ });
275
275
  return server;
276
276
  }
277
277
  /** Resolve a tool by exposed name, refreshing once when it is unknown. */
278
- findTool(ref, exposedName) {
279
- return __awaiter(this, void 0, void 0, function* () {
280
- const catalog = yield this.getCatalog(ref);
281
- const hit = catalog.byExposedName.get(exposedName);
282
- if (hit !== undefined) {
283
- return hit;
284
- }
285
- const fresh = yield this.getCatalog(ref, { forceRefresh: true });
286
- return fresh.byExposedName.get(exposedName);
287
- });
278
+ async findTool(ref, exposedName) {
279
+ const catalog = await this.getCatalog(ref);
280
+ const hit = catalog.byExposedName.get(exposedName);
281
+ if (hit !== undefined) {
282
+ return hit;
283
+ }
284
+ const fresh = await this.getCatalog(ref, { forceRefresh: true });
285
+ return fresh.byExposedName.get(exposedName);
288
286
  }
289
287
  /**
290
288
  * Fetch (or join) the catalog for `ref`'s server filter. Staleness and
@@ -292,7 +290,6 @@ export class CursorAccountMcpBridge {
292
290
  * promise; fresh entries use {@link CatalogEntry.freshAtMs} for TTL.
293
291
  */
294
292
  getCatalog(ref, options) {
295
- var _a;
296
293
  const key = ref.servers === undefined ? "*" : [...ref.servers].sort().join("\n");
297
294
  const entry = this.catalogs.get(key);
298
295
  if (entry !== undefined) {
@@ -300,14 +297,14 @@ export class CursorAccountMcpBridge {
300
297
  return entry.promise;
301
298
  }
302
299
  const age = Date.now() - entry.freshAtMs;
303
- const maxAge = (options === null || options === void 0 ? void 0 : options.forceRefresh) === true ? FORCE_REFRESH_MIN_INTERVAL_MS : CATALOG_TTL_MS;
300
+ const maxAge = options?.forceRefresh === true ? FORCE_REFRESH_MIN_INTERVAL_MS : CATALOG_TTL_MS;
304
301
  if (age < maxAge) {
305
302
  return entry.promise;
306
303
  }
307
304
  }
308
305
  const fresh = {
309
306
  promise: this.client
310
- .listAccountMcpTools((_a = ref.servers) !== null && _a !== void 0 ? _a : [])
307
+ .listAccountMcpTools(ref.servers ?? [])
311
308
  .then(servers => {
312
309
  const catalog = buildCatalog(servers);
313
310
  fresh.freshAtMs = Date.now();
@@ -368,7 +365,15 @@ function buildCatalog(servers) {
368
365
  suffixIndex++;
369
366
  exposedName = suffixMcpToolName(base, suffixIndex);
370
367
  }
371
- const entry = Object.assign(Object.assign({ exposedName, backendName: tool.name, serverIdentifier, description: tool.description, inputSchema: tool.inputSchema }, (tool.outputSchema === undefined ? {} : { outputSchema: tool.outputSchema })), (tool.annotations === undefined ? {} : { annotations: tool.annotations }));
368
+ const entry = {
369
+ exposedName,
370
+ backendName: tool.name,
371
+ serverIdentifier,
372
+ description: tool.description,
373
+ inputSchema: tool.inputSchema,
374
+ ...(tool.outputSchema === undefined ? {} : { outputSchema: tool.outputSchema }),
375
+ ...(tool.annotations === undefined ? {} : { annotations: tool.annotations }),
376
+ };
372
377
  tools.push(entry);
373
378
  byExposedName.set(entry.exposedName, entry);
374
379
  });
@@ -404,8 +409,7 @@ function formatWarningStatusRow(server, nameWidth, hyperlinks) {
404
409
  }
405
410
  }
406
411
  function connectUrl(authUrl) {
407
- var _a;
408
- const minted = (_a = authUrl === null || authUrl === void 0 ? void 0 : authUrl.trim()) !== null && _a !== void 0 ? _a : "";
412
+ const minted = authUrl?.trim() ?? "";
409
413
  if (minted.startsWith("https://") && !minted.includes("\u001b") && !minted.includes("\u0007")) {
410
414
  return minted;
411
415
  }
@@ -416,10 +420,9 @@ function connectUrl(authUrl) {
416
420
  * One box replaces the old stacked `[bdk]` log lines.
417
421
  */
418
422
  export function formatCursorAccountMcpWarningBox(args) {
419
- var _a, _b;
420
- const palette = (_a = args.palette) !== null && _a !== void 0 ? _a : stdoutPalette();
421
- const hyperlinks = (_b = args.hyperlinks) !== null && _b !== void 0 ? _b : colorEnabledFor();
422
- const copy = warningCopy(Object.assign(Object.assign({}, args), { hyperlinks }));
423
+ const palette = args.palette ?? stdoutPalette();
424
+ const hyperlinks = args.hyperlinks ?? colorEnabledFor();
425
+ const copy = warningCopy({ ...args, hyperlinks });
423
426
  return `\n${formatTerminalBox([copy.title, "", ...copy.intro, ...copy.actions], {
424
427
  color: palette.yellow,
425
428
  padding: 2,
@@ -480,31 +483,29 @@ export function formatServerStatusSummary(server, errorDetail) {
480
483
  * returns the status enum today, so probe ExecuteSandMcpTool (ping) and surface
481
484
  * the backend failure text (e.g. `HTTP MCP tool execution failed: fetch failed`).
482
485
  */
483
- export function diagnoseConnectorError(client, serverIdentifier) {
484
- return __awaiter(this, void 0, void 0, function* () {
485
- try {
486
- const result = yield client.executeAccountMcpTool({
487
- serverIdentifier,
488
- // Conventional health tool; even a tool-not-found path usually still
489
- // surfaces the same transport failure when the connector is down.
490
- toolName: `${serverIdentifier}-ping`,
491
- args: {},
492
- });
493
- const text = result.content
494
- .filter((part) => part.type === "text")
495
- .map(part => part.text.trim())
496
- .filter(part => part.length > 0)
497
- .join(" ");
498
- if (result.isError) {
499
- return text.length > 0 ? text : "backend reported an error with no detail";
500
- }
501
- // Listing said error but ping succeeded — surface that inconsistency.
502
- return text.length > 0
503
- ? `listing reported error but probe succeeded: ${text}`
504
- : "listing reported error but probe succeeded";
505
- }
506
- catch (error) {
507
- return describeError(error);
486
+ export async function diagnoseConnectorError(client, serverIdentifier) {
487
+ try {
488
+ const result = await client.executeAccountMcpTool({
489
+ serverIdentifier,
490
+ // Conventional health tool; even a tool-not-found path usually still
491
+ // surfaces the same transport failure when the connector is down.
492
+ toolName: `${serverIdentifier}-ping`,
493
+ args: {},
494
+ });
495
+ const text = result.content
496
+ .filter((part) => part.type === "text")
497
+ .map(part => part.text.trim())
498
+ .filter(part => part.length > 0)
499
+ .join(" ");
500
+ if (result.isError) {
501
+ return text.length > 0 ? text : "backend reported an error with no detail";
508
502
  }
509
- });
503
+ // Listing said error but ping succeeded — surface that inconsistency.
504
+ return text.length > 0
505
+ ? `listing reported error but probe succeeded: ${text}`
506
+ : "listing reported error but probe succeeded";
507
+ }
508
+ catch (error) {
509
+ return describeError(error);
510
+ }
510
511
  }