@cursor/bdk 0.2.9 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.js +803 -812
  3. package/dist/channels/bitbucket/api.js +305 -321
  4. package/dist/channels/bitbucket/binding.js +97 -61
  5. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  6. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  7. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  8. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  9. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  10. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  11. package/dist/channels/bitbucket/checks.js +9 -21
  12. package/dist/channels/bitbucket/cursor-account.js +1 -1
  13. package/dist/channels/bitbucket/defaults.js +14 -4
  14. package/dist/channels/bitbucket/events.js +1 -2
  15. package/dist/channels/bitbucket/index.d.ts +6 -2
  16. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  17. package/dist/channels/bitbucket/index.js +6 -2
  18. package/dist/channels/bitbucket/replay.js +80 -56
  19. package/dist/channels/bitbucket/state.js +16 -7
  20. package/dist/channels/bitbucket/types.d.ts +11 -2
  21. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  22. package/dist/channels/checks.js +18 -28
  23. package/dist/channels/deployments/deployments-channel.js +26 -34
  24. package/dist/channels/github/api.js +216 -210
  25. package/dist/channels/github/auth.d.ts +5 -1
  26. package/dist/channels/github/auth.d.ts.map +1 -1
  27. package/dist/channels/github/auth.js +157 -174
  28. package/dist/channels/github/binding.js +48 -39
  29. package/dist/channels/github/checks.js +9 -14
  30. package/dist/channels/github/cursor-account.js +6 -11
  31. package/dist/channels/github/defaults.js +105 -130
  32. package/dist/channels/github/forward.js +13 -17
  33. package/dist/channels/github/github-channel.d.ts +43 -2
  34. package/dist/channels/github/github-channel.d.ts.map +1 -1
  35. package/dist/channels/github/github-channel.js +1228 -958
  36. package/dist/channels/github/progress.js +145 -146
  37. package/dist/channels/github/replay.js +30 -39
  38. package/dist/channels/github/state.js +40 -16
  39. package/dist/channels/github/types.d.ts +30 -6
  40. package/dist/channels/github/types.d.ts.map +1 -1
  41. package/dist/channels/gitlab/api.js +100 -114
  42. package/dist/channels/gitlab/binding.js +52 -33
  43. package/dist/channels/gitlab/checks.js +28 -29
  44. package/dist/channels/gitlab/cursor-account.js +1 -1
  45. package/dist/channels/gitlab/defaults.js +9 -3
  46. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  47. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  48. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  49. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  50. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  51. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  52. package/dist/channels/gitlab/index.d.ts +6 -2
  53. package/dist/channels/gitlab/index.d.ts.map +1 -1
  54. package/dist/channels/gitlab/index.js +6 -2
  55. package/dist/channels/gitlab/replay.js +50 -27
  56. package/dist/channels/gitlab/state.js +14 -6
  57. package/dist/channels/gitlab/types.d.ts +13 -2
  58. package/dist/channels/gitlab/types.d.ts.map +1 -1
  59. package/dist/channels/origin/api.js +100 -116
  60. package/dist/channels/origin/binding.js +15 -16
  61. package/dist/channels/origin/checks.js +30 -28
  62. package/dist/channels/origin/defaults.js +50 -65
  63. package/dist/channels/origin/origin-channel.js +266 -272
  64. package/dist/channels/origin/origin-webhook.js +70 -88
  65. package/dist/channels/origin/reactions.js +9 -21
  66. package/dist/channels/origin/state.js +13 -5
  67. package/dist/channels/slack/agentic-delivery.js +426 -478
  68. package/dist/channels/slack/agentic-posted.js +9 -10
  69. package/dist/channels/slack/agentic-signals.js +2 -3
  70. package/dist/channels/slack/api.js +417 -427
  71. package/dist/channels/slack/approvals.js +1 -1
  72. package/dist/channels/slack/assistant.js +37 -47
  73. package/dist/channels/slack/attachments.js +188 -206
  74. package/dist/channels/slack/auth.js +8 -6
  75. package/dist/channels/slack/bot-mentions.js +31 -45
  76. package/dist/channels/slack/channel-watch.js +42 -48
  77. package/dist/channels/slack/cli-project.js +112 -137
  78. package/dist/channels/slack/code-fences.js +3 -5
  79. package/dist/channels/slack/constants.js +2 -2
  80. package/dist/channels/slack/credentials.js +23 -38
  81. package/dist/channels/slack/defaults.js +292 -331
  82. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  83. package/dist/channels/slack/dispatch.js +533 -460
  84. package/dist/channels/slack/doctor.js +200 -214
  85. package/dist/channels/slack/eval-directive.js +79 -96
  86. package/dist/channels/slack/event-id-dedupe.js +1 -1
  87. package/dist/channels/slack/external-policy.js +26 -39
  88. package/dist/channels/slack/footer.js +28 -41
  89. package/dist/channels/slack/inbound.d.ts +1 -0
  90. package/dist/channels/slack/inbound.d.ts.map +1 -1
  91. package/dist/channels/slack/inbound.js +50 -31
  92. package/dist/channels/slack/init.d.ts +1 -5
  93. package/dist/channels/slack/init.d.ts.map +1 -1
  94. package/dist/channels/slack/init.js +42 -59
  95. package/dist/channels/slack/interactive.d.ts +9 -3
  96. package/dist/channels/slack/interactive.d.ts.map +1 -1
  97. package/dist/channels/slack/interactive.js +160 -162
  98. package/dist/channels/slack/links.js +1 -2
  99. package/dist/channels/slack/live-delivery.js +172 -190
  100. package/dist/channels/slack/manifest.d.ts.map +1 -1
  101. package/dist/channels/slack/manifest.js +44 -23
  102. package/dist/channels/slack/message-body.js +2 -2
  103. package/dist/channels/slack/nudge-carrier.js +30 -42
  104. package/dist/channels/slack/nudge-store.js +164 -191
  105. package/dist/channels/slack/paint-start.js +66 -81
  106. package/dist/channels/slack/placeholder.js +123 -152
  107. package/dist/channels/slack/pr-ref.js +1 -1
  108. package/dist/channels/slack/progress-delivery.js +65 -78
  109. package/dist/channels/slack/reasoning-card.js +36 -49
  110. package/dist/channels/slack/recording-sink.js +12 -24
  111. package/dist/channels/slack/reply-options.js +7 -12
  112. package/dist/channels/slack/self-identity.js +27 -35
  113. package/dist/channels/slack/sender-name.d.ts +12 -3
  114. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  115. package/dist/channels/slack/sender-name.js +57 -61
  116. package/dist/channels/slack/setup.js +2 -4
  117. package/dist/channels/slack/slack-channel.d.ts +6 -4
  118. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  119. package/dist/channels/slack/slack-channel.js +441 -308
  120. package/dist/channels/slack/socket-mode.js +38 -52
  121. package/dist/channels/slack/thread-context.js +143 -160
  122. package/dist/channels/slack/tool-approval-events.js +149 -166
  123. package/dist/channels/slack/tool-cards.js +6 -11
  124. package/dist/channels/slack/tool-chip.js +1 -2
  125. package/dist/channels/slack/types.d.ts +15 -17
  126. package/dist/channels/slack/types.d.ts.map +1 -1
  127. package/dist/channels/slack/upload.js +84 -97
  128. package/dist/channels/slack/user-info.js +27 -41
  129. package/dist/channels.js +9 -20
  130. package/dist/dashboard-session-url.js +3 -4
  131. package/dist/docs/404.html +2 -2
  132. package/dist/docs/assets/{app.BNhEdGa8.js → app.DXI7bwox.js} +4 -4
  133. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  134. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  135. package/dist/docs/assets/chunks/{VPLocalSearchBox.DIdUV1Ph.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  136. package/dist/docs/assets/chunks/{arc.lELI4_SR.js → arc.BOG1yms8.js} +1 -1
  137. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.iCMdvuoM.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  138. package/dist/docs/assets/chunks/{baseUniq.C1-nDJBf.js → baseUniq.H044KjKs.js} +1 -1
  139. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.ClemzBox.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  140. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BqTak6cR.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  141. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  142. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CUS3qs_R.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  143. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.dz5fdHcl.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  144. package/dist/docs/assets/chunks/{chunk-55IACEB6.D6BEBmve.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.B5uK4ID9.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.PgOJgNQs.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CvkTrCii.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnSfKYsB.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.MZH6v5UC.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  150. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  151. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  152. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  153. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BBbw_YZi.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  154. package/dist/docs/assets/chunks/{dagre-KV5264BT.CNJB2l7E.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  155. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.BQzlnFfq.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  156. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DkgqqZMz.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DIT8L7H_.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-TYMM5635.3xLPZWGJ.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  159. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.5_IHz8jF.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  160. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BGUCXz8A.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  161. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DbfFavS1.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  162. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.D2yKdeNW.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  163. package/dist/docs/assets/chunks/{graph.CSCxwHba.js → graph.BVqKRmRo.js} +1 -1
  164. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.FDeb6xHY.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  165. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DbeYs9VL.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  166. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CWjKINpx.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  167. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.B4FrAlwz.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  168. package/dist/docs/assets/chunks/{layout.DFGxQ9ab.js → layout.CGU3gfSf.js} +1 -1
  169. package/dist/docs/assets/chunks/{linear.BmjZ-G59.js → linear.DaihpW_n.js} +1 -1
  170. package/dist/docs/assets/chunks/{min.DZSxulMW.js → min.BS-j8kHQ.js} +1 -1
  171. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CHLi3-aN.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  172. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DteG-CkU.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  173. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D458ipN3.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  174. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DcFgUxst.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  175. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.BwQAMmSA.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  176. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.B_Xdsrh9.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  177. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.CdfDW6-C.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  178. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  179. package/dist/docs/assets/chunks/{theme.sfdL3srp.js → theme.DaplWQhQ.js} +2 -2
  180. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.56-4hXaC.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  181. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CvZSQBO7.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  182. package/dist/docs/assets/chunks/{wardley-RL74JXVD.C9qc8k39.js → wardley-RL74JXVD.iXazD3Z7.js} +1 -1
  183. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.D9s0nihi.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  184. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.BVJSpYrC.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  185. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  186. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  187. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  188. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  189. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  191. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  192. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  193. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  194. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  195. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  196. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  197. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  198. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  199. package/dist/docs/building-with-agents.html +37 -37
  200. package/dist/docs/building-with-agents.md +2 -0
  201. package/dist/docs/deployment.html +38 -38
  202. package/dist/docs/deployment.md +7 -0
  203. package/dist/docs/evals.html +36 -36
  204. package/dist/docs/guides/agent-to-agent.html +35 -35
  205. package/dist/docs/guides/bitbucket.html +38 -38
  206. package/dist/docs/guides/bitbucket.md +9 -1
  207. package/dist/docs/guides/cloud-agents.html +35 -35
  208. package/dist/docs/guides/convert-automation.html +35 -35
  209. package/dist/docs/guides/github.html +39 -39
  210. package/dist/docs/guides/github.md +20 -4
  211. package/dist/docs/guides/gitlab.html +38 -38
  212. package/dist/docs/guides/gitlab.md +9 -1
  213. package/dist/docs/guides/grokbot-agents.html +35 -35
  214. package/dist/docs/guides/hooks.html +35 -35
  215. package/dist/docs/guides/improve.html +35 -35
  216. package/dist/docs/guides/jev.html +35 -35
  217. package/dist/docs/guides/mcp-oauth.html +35 -35
  218. package/dist/docs/guides/migrate.html +66 -0
  219. package/dist/docs/guides/migrate.md +122 -0
  220. package/dist/docs/guides/opentelemetry.html +35 -35
  221. package/dist/docs/guides/slack.html +35 -35
  222. package/dist/docs/guides/webhooks.html +35 -35
  223. package/dist/docs/hashmap.json +1 -1
  224. package/dist/docs/hillclimbing.html +35 -35
  225. package/dist/docs/index.html +35 -35
  226. package/dist/docs/llms-full.txt +214 -6
  227. package/dist/docs/llms.txt +1 -0
  228. package/dist/docs/quickstart.html +35 -35
  229. package/dist/docs/reference/agent-config.html +35 -35
  230. package/dist/docs/reference/artifacts.html +35 -35
  231. package/dist/docs/reference/channels.html +35 -35
  232. package/dist/docs/reference/cli.html +39 -38
  233. package/dist/docs/reference/cli.md +39 -0
  234. package/dist/docs/reference/connections.html +35 -35
  235. package/dist/docs/reference/evals.html +35 -35
  236. package/dist/docs/reference/extensions.html +35 -35
  237. package/dist/docs/reference/hooks.html +35 -35
  238. package/dist/docs/reference/http-api.html +35 -35
  239. package/dist/docs/reference/instructions.html +35 -35
  240. package/dist/docs/reference/playground.html +35 -35
  241. package/dist/docs/reference/project-layout.html +35 -35
  242. package/dist/docs/reference/prompt.html +35 -35
  243. package/dist/docs/reference/schedules.html +35 -35
  244. package/dist/docs/reference/sessions.html +35 -35
  245. package/dist/docs/reference/skills.html +38 -38
  246. package/dist/docs/reference/subagents.html +35 -35
  247. package/dist/docs/reference/tools.html +35 -35
  248. package/dist/docs/templates/agentic-owners.html +35 -35
  249. package/dist/docs/templates/grokbot-agents.html +35 -35
  250. package/dist/docs/templates/security-reviewer.html +35 -35
  251. package/dist/docs/templates/thermo-quality-review.html +35 -35
  252. package/dist/docs/templates/thermo-review.html +35 -35
  253. package/dist/docs/templates/triage.html +35 -35
  254. package/dist/docs/troubleshooting.html +36 -36
  255. package/dist/docs/troubleshooting.md +1 -0
  256. package/dist/evals/assertions.js +20 -34
  257. package/dist/evals/expect.js +3 -6
  258. package/dist/evals/judge.js +5 -8
  259. package/dist/evals/loaders.js +45 -62
  260. package/dist/evals/matchers.js +2 -3
  261. package/dist/evals/reporters.js +43 -67
  262. package/dist/evals/results.js +1 -1
  263. package/dist/evals/run-facts.js +5 -6
  264. package/dist/evals.js +27 -15
  265. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  266. package/dist/extensions/cursor-cloud-agents/lib/backend.js +100 -126
  267. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  268. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  269. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  270. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  271. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  272. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  273. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  274. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  275. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  276. package/dist/extensions/cursor-cloud-agents/tools/list.js +8 -19
  277. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  278. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  279. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  280. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  281. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  282. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  283. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  284. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  285. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  286. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  287. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  288. package/dist/extensions/jev/extension.js +3 -3
  289. package/dist/extensions/jev/lib/evaluate.js +43 -60
  290. package/dist/extensions/jev/tools/evaluate.js +6 -17
  291. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  292. package/dist/extensions.js +3 -5
  293. package/dist/files-backends/cursor-hosted.js +504 -523
  294. package/dist/files-backends/local-fs.js +72 -134
  295. package/dist/files.js +3 -3
  296. package/dist/filesystem.js +562 -861
  297. package/dist/index.js +16 -35
  298. package/dist/internal/advertise-tools.js +74 -86
  299. package/dist/internal/artifacts-store.js +298 -361
  300. package/dist/internal/as-of.js +2 -4
  301. package/dist/internal/authored-alias-hooks.js +6 -4
  302. package/dist/internal/authored-loaders.js +37 -52
  303. package/dist/internal/bounded-int.js +1 -2
  304. package/dist/internal/bounded.js +13 -24
  305. package/dist/internal/brand.js +1 -1
  306. package/dist/internal/browser-origin-guard.js +4 -4
  307. package/dist/internal/builtin-tools/artifacts.js +15 -27
  308. package/dist/internal/builtin-tools/index.js +2 -3
  309. package/dist/internal/builtin-tools/reminders.js +33 -52
  310. package/dist/internal/channel-architecture.d.ts +21 -0
  311. package/dist/internal/channel-architecture.d.ts.map +1 -0
  312. package/dist/internal/channel-architecture.js +41 -0
  313. package/dist/internal/channel-dispatch.js +3 -4
  314. package/dist/internal/channel-route-dispatch.js +40 -51
  315. package/dist/internal/channel-state.js +1 -1
  316. package/dist/internal/chat-client.js +319 -340
  317. package/dist/internal/cli-ax.js +1262 -1294
  318. package/dist/internal/cli-bitbucket.js +244 -272
  319. package/dist/internal/cli-convert-automation.js +137 -151
  320. package/dist/internal/cli-cursor.js +126 -147
  321. package/dist/internal/cli-deploy.d.ts.map +1 -1
  322. package/dist/internal/cli-deploy.js +1457 -1507
  323. package/dist/internal/cli-docs.js +130 -147
  324. package/dist/internal/cli-github.js +437 -476
  325. package/dist/internal/cli-gitlab.js +259 -288
  326. package/dist/internal/cli-images.js +266 -334
  327. package/dist/internal/cli-manifest.js +25 -37
  328. package/dist/internal/cli-mcp-oauth.js +228 -247
  329. package/dist/internal/cli-mcp.js +358 -383
  330. package/dist/internal/cli-migrate.js +73 -90
  331. package/dist/internal/cli-skills.js +35 -47
  332. package/dist/internal/cli-slack-manual.d.ts +0 -1
  333. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  334. package/dist/internal/cli-slack-manual.js +175 -204
  335. package/dist/internal/cli-slack.d.ts +1 -1
  336. package/dist/internal/cli-slack.d.ts.map +1 -1
  337. package/dist/internal/cli-slack.js +416 -456
  338. package/dist/internal/cloud-merge.js +7 -3
  339. package/dist/internal/cloud-turn-cost.js +8 -1
  340. package/dist/internal/connection-env.js +5 -6
  341. package/dist/internal/continuation-channel.js +10 -7
  342. package/dist/internal/continuation-identity.js +85 -67
  343. package/dist/internal/conversation-mirror.js +112 -131
  344. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  345. package/dist/internal/cron.js +3 -3
  346. package/dist/internal/cursor/account-mcp.js +147 -146
  347. package/dist/internal/cursor/backend-client.js +290 -320
  348. package/dist/internal/cursor/bound-secret-file.js +3 -3
  349. package/dist/internal/cursor/credentials.js +127 -142
  350. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  351. package/dist/internal/cursor/github-credentials.js +91 -108
  352. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  353. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  354. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  355. package/dist/internal/cursor/session-token.js +36 -48
  356. package/dist/internal/cursor/store-api-client.js +77 -92
  357. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  358. package/dist/internal/cursor-agent-template.js +1 -1
  359. package/dist/internal/cursor-deployment-relay.js +33 -54
  360. package/dist/internal/cursor-event-relay.js +65 -59
  361. package/dist/internal/cursor-relay-core.js +258 -286
  362. package/dist/internal/deferred-channel-session.js +3 -12
  363. package/dist/internal/deploy-client.js +410 -475
  364. package/dist/internal/deploy-manifest.d.ts +17 -0
  365. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  366. package/dist/internal/deploy-manifest.js +71 -21
  367. package/dist/internal/deploy-source.js +31 -43
  368. package/dist/internal/discovery/agent-config.js +45 -59
  369. package/dist/internal/discovery/agent.js +276 -280
  370. package/dist/internal/discovery/channels.js +67 -80
  371. package/dist/internal/discovery/connections.js +286 -296
  372. package/dist/internal/discovery/context.js +2 -13
  373. package/dist/internal/discovery/cursor-plugin.js +223 -259
  374. package/dist/internal/discovery/extension-overlay.js +104 -131
  375. package/dist/internal/discovery/extensions.js +276 -281
  376. package/dist/internal/discovery/fs.js +56 -79
  377. package/dist/internal/discovery/hooks.js +39 -50
  378. package/dist/internal/discovery/info.js +17 -19
  379. package/dist/internal/discovery/instructions.js +58 -71
  380. package/dist/internal/discovery/modules.js +45 -58
  381. package/dist/internal/discovery/project.d.ts.map +1 -1
  382. package/dist/internal/discovery/project.js +192 -215
  383. package/dist/internal/discovery/reminders.js +41 -52
  384. package/dist/internal/discovery/runtime.js +1 -1
  385. package/dist/internal/discovery/schedules.js +71 -82
  386. package/dist/internal/discovery/seed-files.js +21 -32
  387. package/dist/internal/discovery/services.js +74 -96
  388. package/dist/internal/discovery/skills.js +77 -94
  389. package/dist/internal/discovery/subagent.js +79 -95
  390. package/dist/internal/discovery/tools.js +12 -23
  391. package/dist/internal/distribution.js +2 -2
  392. package/dist/internal/docs-site.js +30 -45
  393. package/dist/internal/duration.js +1 -1
  394. package/dist/internal/env-file.js +48 -64
  395. package/dist/internal/eval-judge-model.js +17 -28
  396. package/dist/internal/eval-run-store.js +265 -254
  397. package/dist/internal/eval-runner.d.ts +8 -0
  398. package/dist/internal/eval-runner.d.ts.map +1 -1
  399. package/dist/internal/eval-runner.js +406 -408
  400. package/dist/internal/eval-transport.d.ts +24 -0
  401. package/dist/internal/eval-transport.d.ts.map +1 -0
  402. package/dist/internal/eval-transport.js +22 -0
  403. package/dist/internal/evals-client.js +242 -246
  404. package/dist/internal/event-log.js +72 -120
  405. package/dist/internal/event-mapper.js +30 -31
  406. package/dist/internal/factory-resource-channel.js +16 -30
  407. package/dist/internal/filesystem/errors.js +6 -6
  408. package/dist/internal/filesystem/format.js +10 -13
  409. package/dist/internal/filesystem/merge.js +52 -94
  410. package/dist/internal/filesystem/nearest.js +15 -27
  411. package/dist/internal/filesystem/scratch.js +65 -85
  412. package/dist/internal/filesystem/tools.js +221 -241
  413. package/dist/internal/filesystem/walk.js +76 -143
  414. package/dist/internal/framework-file-storage.js +118 -139
  415. package/dist/internal/framework-storage-selection.js +21 -13
  416. package/dist/internal/frontmatter.js +4 -6
  417. package/dist/internal/github-fanout.js +50 -64
  418. package/dist/internal/guest-network.js +96 -109
  419. package/dist/internal/handleAgentServeTrigger.js +121 -126
  420. package/dist/internal/host-files.js +73 -88
  421. package/dist/internal/host-kv.js +21 -36
  422. package/dist/internal/host-otel.js +22 -19
  423. package/dist/internal/host-platforms.js +49 -63
  424. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  425. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  426. package/dist/internal/hosted-catch-protocol.js +1 -0
  427. package/dist/internal/hosted-catch.d.ts +5 -3
  428. package/dist/internal/hosted-catch.d.ts.map +1 -1
  429. package/dist/internal/hosted-catch.js +84 -93
  430. package/dist/internal/hosted-delivery-protocol.js +32 -8
  431. package/dist/internal/hosted-delivery.d.ts +13 -1
  432. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  433. package/dist/internal/hosted-delivery.js +614 -584
  434. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  435. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  436. package/dist/internal/hosted-eval-cases.js +162 -0
  437. package/dist/internal/hosted-execution-diag.js +38 -30
  438. package/dist/internal/hosted-execution-flush.js +75 -66
  439. package/dist/internal/hosted-execution-latency.js +16 -8
  440. package/dist/internal/hosted-managed-automation.js +2 -2
  441. package/dist/internal/hosting.js +2 -3
  442. package/dist/internal/http-channel-define.js +4 -1
  443. package/dist/internal/http-channel.js +101 -112
  444. package/dist/internal/http-control-plane-session.d.ts +18 -1
  445. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  446. package/dist/internal/http-control-plane-session.js +66 -32
  447. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  448. package/dist/internal/init-interview.js +73 -93
  449. package/dist/internal/init-project.js +182 -214
  450. package/dist/internal/init-scaffold.js +10 -21
  451. package/dist/internal/inline-stdio-mcp.js +80 -86
  452. package/dist/internal/install-cursor-skills.js +231 -273
  453. package/dist/internal/legacy-command-guard.js +18 -31
  454. package/dist/internal/listen-port.js +34 -45
  455. package/dist/internal/local-control-plane.js +293 -307
  456. package/dist/internal/local-env.js +1 -1
  457. package/dist/internal/local-ingress.js +15 -9
  458. package/dist/internal/log-ring.js +1 -2
  459. package/dist/internal/logs-client.js +207 -227
  460. package/dist/internal/map-pool.js +24 -38
  461. package/dist/internal/mcp-endpoint.js +204 -180
  462. package/dist/internal/mcp-host.js +165 -168
  463. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  464. package/dist/internal/mcp-oauth-persist.js +15 -29
  465. package/dist/internal/mcp-oauth.js +209 -266
  466. package/dist/internal/named-webhook-secret.d.ts +39 -0
  467. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  468. package/dist/internal/named-webhook-secret.js +47 -0
  469. package/dist/internal/open-browser.js +2 -3
  470. package/dist/internal/otel/collector.js +104 -68
  471. package/dist/internal/otel/config.js +24 -37
  472. package/dist/internal/otel/http.js +5 -7
  473. package/dist/internal/otel/mcp.js +3 -12
  474. package/dist/internal/otel/runtime.js +69 -83
  475. package/dist/internal/package-inline-stdio.js +57 -65
  476. package/dist/internal/peer-connections.js +9 -5
  477. package/dist/internal/platform-schedule-sync.js +39 -54
  478. package/dist/internal/platform-timers.js +176 -210
  479. package/dist/internal/playground/static.js +1 -2
  480. package/dist/internal/playground/toolchain.js +37 -53
  481. package/dist/internal/playground-proxy.js +230 -270
  482. package/dist/internal/process-memory-telemetry.js +33 -51
  483. package/dist/internal/prompt-context.js +3 -6
  484. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  485. package/dist/internal/reminder-runner.js +770 -785
  486. package/dist/internal/reminder-schedule.js +1 -1
  487. package/dist/internal/reminder-store.js +57 -78
  488. package/dist/internal/request-error-status.js +1 -3
  489. package/dist/internal/request-headers.js +2 -2
  490. package/dist/internal/resolve-prod-target.js +119 -135
  491. package/dist/internal/resolved-connections.js +16 -6
  492. package/dist/internal/run-client.js +221 -229
  493. package/dist/internal/runtime-dispatch-runner.js +18 -43
  494. package/dist/internal/schedule-runner.js +49 -58
  495. package/dist/internal/scm/pr-url.js +7 -6
  496. package/dist/internal/sdk-runner.js +388 -363
  497. package/dist/internal/serve-restart.js +26 -39
  498. package/dist/internal/server.d.ts.map +1 -1
  499. package/dist/internal/server.js +1283 -1244
  500. package/dist/internal/session-cost.js +7 -9
  501. package/dist/internal/session-engine.d.ts +3 -1
  502. package/dist/internal/session-engine.d.ts.map +1 -1
  503. package/dist/internal/session-engine.js +2801 -2777
  504. package/dist/internal/session-links.js +12 -16
  505. package/dist/internal/session-run-log.js +134 -82
  506. package/dist/internal/session-store.js +133 -164
  507. package/dist/internal/sessions-client.js +97 -118
  508. package/dist/internal/skill-catalog.js +18 -23
  509. package/dist/internal/skills-sync.js +16 -30
  510. package/dist/internal/slack-provision-client.js +90 -116
  511. package/dist/internal/start-log-store.js +48 -67
  512. package/dist/internal/steering.js +1 -2
  513. package/dist/internal/storage-coordinator.js +160 -196
  514. package/dist/internal/store-mirror.js +16 -30
  515. package/dist/internal/stream-progress.js +6 -8
  516. package/dist/internal/terminal-style.js +3 -4
  517. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  518. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  519. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  520. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  521. package/dist/internal/tool-catalog.js +11 -5
  522. package/dist/internal/tool-result.js +1 -1
  523. package/dist/internal/trajectory.js +19 -22
  524. package/dist/internal/turn-cost.js +52 -62
  525. package/dist/internal/turn-governor.js +5 -8
  526. package/dist/internal/turn-lease-store.js +85 -105
  527. package/dist/internal/turn-outbox.js +28 -43
  528. package/dist/internal/update-check.js +231 -259
  529. package/dist/internal/v2-hosting.js +1 -2
  530. package/dist/internal/workspace-sync.js +25 -41
  531. package/dist/internal/workspace.js +111 -139
  532. package/dist/kv/memory-kv.js +27 -51
  533. package/dist/memory.js +106 -148
  534. package/dist/otel.js +5 -8
  535. package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
  536. package/dist/playground/assets/{index-Co4CUVTQ.js → index-JekUQERK.js} +45 -45
  537. package/dist/playground/index.html +2 -2
  538. package/dist/prompt.js +2 -4
  539. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  540. package/dist/storage-backends/cursor-hosted.js +105 -145
  541. package/dist/storage-backends/file-kv.js +100 -128
  542. package/dist/storage-protocol.js +3 -5
  543. package/dist/storage.js +17 -26
  544. package/dist/types.d.ts +68 -0
  545. package/dist/types.d.ts.map +1 -1
  546. package/dist/types.js +20 -18
  547. package/docs/building-with-agents.md +2 -0
  548. package/docs/deployment.md +7 -0
  549. package/docs/guides/bitbucket.md +9 -1
  550. package/docs/guides/github.md +20 -4
  551. package/docs/guides/gitlab.md +9 -1
  552. package/docs/guides/migrate.md +127 -0
  553. package/docs/reference/cli.md +39 -0
  554. package/docs/troubleshooting.md +1 -0
  555. package/package.json +1 -1
  556. package/skills/debug/SKILL.md +1 -0
  557. package/skills/github/SKILL.md +23 -0
  558. package/skills/migrate-v2/SKILL.md +51 -10
  559. package/dist/docs/assets/chunks/@localSearchIndexroot.BJ8UZggu.js +0 -1
  560. package/dist/docs/assets/chunks/channel.BTJ5J9FI.js +0 -1
  561. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D4BZ3cVV.js +0 -1
  562. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D4BZ3cVV.js +0 -1
  563. package/dist/docs/assets/chunks/clone.62tX-O-1.js +0 -1
  564. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DkTs1aEU.js +0 -1
  565. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  566. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  567. package/dist/playground/assets/index-C1g_PTTZ.css +0 -1
  568. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  569. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
  570. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
@@ -15,9 +15,13 @@ export function mergeCloudOptions(args) {
15
15
  if (override === undefined) {
16
16
  return base;
17
17
  }
18
- return Object.assign(Object.assign(Object.assign({}, base), override), (base.envVars !== undefined || override.envVars !== undefined
19
- ? { envVars: Object.assign(Object.assign({}, base.envVars), override.envVars) }
20
- : {}));
18
+ return {
19
+ ...base,
20
+ ...override,
21
+ ...(base.envVars !== undefined || override.envVars !== undefined
22
+ ? { envVars: { ...base.envVars, ...override.envVars } }
23
+ : {}),
24
+ };
21
25
  }
22
26
  /**
23
27
  * Session turn runtime: a per-session `cloud` attach forces cloud even when
@@ -86,7 +86,14 @@ export function applyCloudUsageToEvents(events, billed, model) {
86
86
  if (patch === undefined || event.type !== "turn.completed") {
87
87
  return event;
88
88
  }
89
- return Object.assign(Object.assign({}, event), { data: Object.assign(Object.assign(Object.assign({}, event.data), { usage: patch.usage }), (patch.cost === undefined ? {} : { cost: patch.cost })) });
89
+ return {
90
+ ...event,
91
+ data: {
92
+ ...event.data,
93
+ usage: patch.usage,
94
+ ...(patch.cost === undefined ? {} : { cost: patch.cost }),
95
+ },
96
+ };
90
97
  });
91
98
  }
92
99
  function turnCostFromBilled(model, cost) {
@@ -24,7 +24,7 @@ function credentials(transport) {
24
24
  return undefined;
25
25
  }
26
26
  function expand(value, env) {
27
- return value.replace(ENV_TEMPLATE, (_match, name) => { var _a; return (_a = env[name]) !== null && _a !== void 0 ? _a : ""; });
27
+ return value.replace(ENV_TEMPLATE, (_match, name) => env[name] ?? "");
28
28
  }
29
29
  /** The same object back when nothing templates, so callers can compare by identity. */
30
30
  function expandRecord(values, env) {
@@ -35,7 +35,7 @@ function expandRecord(values, env) {
35
35
  let changed = false;
36
36
  for (const [key, value] of Object.entries(values)) {
37
37
  expanded[key] = expand(value, env);
38
- changed || (changed = expanded[key] !== value);
38
+ changed ||= expanded[key] !== value;
39
39
  }
40
40
  return changed ? expanded : values;
41
41
  }
@@ -47,19 +47,18 @@ function expandRecord(values, env) {
47
47
  export function resolveConnectionEnvTemplates(transport, env = process.env) {
48
48
  if ("url" in transport) {
49
49
  const headers = expandRecord(transport.headers, env);
50
- return headers === transport.headers ? transport : Object.assign(Object.assign({}, transport), { headers });
50
+ return headers === transport.headers ? transport : { ...transport, headers };
51
51
  }
52
52
  if ("command" in transport) {
53
53
  const spawnEnv = expandRecord(transport.env, env);
54
- return spawnEnv === transport.env ? transport : Object.assign(Object.assign({}, transport), { env: spawnEnv });
54
+ return spawnEnv === transport.env ? transport : { ...transport, env: spawnEnv };
55
55
  }
56
56
  return transport;
57
57
  }
58
58
  /** Variables a transport templates that the environment does not define, in first-seen order. */
59
59
  export function unresolvedConnectionEnvNames(transport, env = process.env) {
60
- var _a;
61
60
  const missing = new Set();
62
- for (const value of Object.values((_a = credentials(transport)) !== null && _a !== void 0 ? _a : {})) {
61
+ for (const value of Object.values(credentials(transport) ?? {})) {
63
62
  for (const match of value.matchAll(ENV_TEMPLATE)) {
64
63
  const name = match[1];
65
64
  if (name !== undefined && env[name] === undefined) {
@@ -62,7 +62,7 @@ export function channelContinuationIdentity(definition) {
62
62
  return defaultContinuationSelector();
63
63
  }
64
64
  export function httpContinuationIdentity(httpChannel) {
65
- return normalizeIdentity(httpChannel === null || httpChannel === void 0 ? void 0 : httpChannel.continuation, "http");
65
+ return normalizeIdentity(httpChannel?.continuation, "http");
66
66
  }
67
67
  /**
68
68
  * Stamp `/v2` continuation defaults onto channel constructors that omitted
@@ -113,8 +113,7 @@ export function warnOmittedContinuationDowngrades(input) {
113
113
  }
114
114
  }
115
115
  function omittedContinuationDowngradeMessage(kind, downgrade) {
116
- var _a;
117
- const membership = (_a = omittedV2TypedType(kind)) !== null && _a !== void 0 ? _a : kind;
116
+ const membership = omittedV2TypedType(kind) ?? kind;
118
117
  return (`omitted continuation stamped ${downgrade.selector} because ` +
119
118
  `${downgrade.unexpected.join(", ")} ${downgrade.unexpected.length === 1 ? "is" : "are"} not in the ${membership} membership; every delivery on this ` +
120
119
  `channel starts a fresh session. Pin continuation: "${downgrade.selector}" ` +
@@ -135,12 +134,16 @@ function stampOmittedChannelContinuation(definition, version) {
135
134
  }
136
135
  /** Kind-specific event lists on `ChannelMeta`; a definition sets at most one. */
137
136
  export function channelDeclaredEventTypes(meta) {
138
- var _a, _b, _c, _d, _e, _f;
139
- return ((_f = (_e = (_d = (_c = (_b = (_a = meta === null || meta === void 0 ? void 0 : meta.githubWebhookEvents) !== null && _a !== void 0 ? _a : meta === null || meta === void 0 ? void 0 : meta.originWebhookEvents) !== null && _b !== void 0 ? _b : meta === null || meta === void 0 ? void 0 : meta.gitlabWebhookEvents) !== null && _c !== void 0 ? _c : meta === null || meta === void 0 ? void 0 : meta.bitbucketWebhookEvents) !== null && _d !== void 0 ? _d : meta === null || meta === void 0 ? void 0 : meta.deploymentEventTypes) !== null && _e !== void 0 ? _e : meta === null || meta === void 0 ? void 0 : meta.factoryEventTypes) !== null && _f !== void 0 ? _f : meta === null || meta === void 0 ? void 0 : meta.slackEventTypes);
137
+ return (meta?.githubWebhookEvents ??
138
+ meta?.originWebhookEvents ??
139
+ meta?.gitlabWebhookEvents ??
140
+ meta?.bitbucketWebhookEvents ??
141
+ meta?.deploymentEventTypes ??
142
+ meta?.factoryEventTypes ??
143
+ meta?.slackEventTypes);
140
144
  }
141
145
  export function handshakeChannelContinuation(input) {
142
- var _a;
143
- const kind = (_a = input.definition.meta) === null || _a === void 0 ? void 0 : _a.kind;
146
+ const kind = input.definition.meta?.kind;
144
147
  const eventTypes = channelDeclaredEventTypes(input.definition.meta);
145
148
  const result = handshakeContinuation({
146
149
  kind,
@@ -65,7 +65,7 @@ export const BUILTINS = [
65
65
  {
66
66
  type: "thread",
67
67
  kind: "slack",
68
- events: ["message", "app_mention"],
68
+ events: ["message", "app_mention", "reaction_added", "block_actions"],
69
69
  format: "{channelId}:{threadTs}",
70
70
  },
71
71
  {
@@ -216,20 +216,16 @@ export function defaultContinuationSelector(kind, version = "v1", eventTypes) {
216
216
  }
217
217
  /** Typed selector when every declared event is in the type's membership. */
218
218
  function membershipOrNone(eventTypes, type, typed, none) {
219
- var _a;
220
- var _b;
221
- const allowed = new Set((_b = (_a = builtinForType(type)) === null || _a === void 0 ? void 0 : _a.events) !== null && _b !== void 0 ? _b : []);
222
- if ((eventTypes !== null && eventTypes !== void 0 ? eventTypes : []).some(event => !allowed.has(event))) {
219
+ const allowed = new Set(builtinForType(type)?.events ?? []);
220
+ if ((eventTypes ?? []).some(event => !allowed.has(event))) {
223
221
  return none;
224
222
  }
225
223
  return typed;
226
224
  }
227
225
  function githubV2Default(eventTypes) {
228
- var _a, _b;
229
- var _c, _d;
230
- const events = eventTypes !== null && eventTypes !== void 0 ? eventTypes : [];
231
- const issueEvents = new Set((_c = (_a = builtinForType("issue")) === null || _a === void 0 ? void 0 : _a.events) !== null && _c !== void 0 ? _c : []);
232
- const prEvents = new Set((_d = (_b = builtinForType("pr")) === null || _b === void 0 ? void 0 : _b.events) !== null && _d !== void 0 ? _d : []);
226
+ const events = eventTypes ?? [];
227
+ const issueEvents = new Set(builtinForType("issue")?.events ?? []);
228
+ const prEvents = new Set(builtinForType("pr")?.events ?? []);
233
229
  if (events.length > 0 && events.every(event => issueEvents.has(event))) {
234
230
  return "github.issue/v2";
235
231
  }
@@ -255,7 +251,7 @@ export function omittedV2TypedType(kind) {
255
251
  * silent on omitted selectors (type `none` is always admitted).
256
252
  */
257
253
  export function omittedV2MembershipDowngrade(kind, eventTypes) {
258
- const events = eventTypes !== null && eventTypes !== void 0 ? eventTypes : [];
254
+ const events = eventTypes ?? [];
259
255
  if (events.length === 0) {
260
256
  return undefined;
261
257
  }
@@ -280,10 +276,10 @@ export function parseContinuationSelector(selector) {
280
276
  if (!isContinuationSelector(selector)) {
281
277
  return undefined;
282
278
  }
283
- return Object.assign({ selector }, SELECTOR_FIELDS[selector]);
279
+ return { selector, ...SELECTOR_FIELDS[selector] };
284
280
  }
285
281
  function resolveContinuation(raw, kind) {
286
- const selector = raw !== null && raw !== void 0 ? raw : defaultContinuationSelector(kind);
282
+ const selector = raw ?? defaultContinuationSelector(kind);
287
283
  const parsed = parseContinuationSelector(selector);
288
284
  if (parsed === undefined) {
289
285
  throw new V2EngineError(`v2: invalid continuation selector ${JSON.stringify(selector)}`);
@@ -310,7 +306,6 @@ function builtinForType(type) {
310
306
  return BUILTINS.find(builtin => builtin.type === type);
311
307
  }
312
308
  function formatConversationKey(type, fields) {
313
- var _a, _b;
314
309
  switch (type) {
315
310
  case "pr":
316
311
  return `github-pr:${fields.fullName}#${fields.number}`;
@@ -323,7 +318,7 @@ function formatConversationKey(type, fields) {
323
318
  case "bitbucket-pr":
324
319
  return `bitbucket-pr:${fields.fullName}#${fields.number}`;
325
320
  case "thread":
326
- return slackThreadKey((_a = fields.channelId) !== null && _a !== void 0 ? _a : "", (_b = fields.threadTs) !== null && _b !== void 0 ? _b : "");
321
+ return slackThreadKey(fields.channelId ?? "", fields.threadTs ?? "");
327
322
  case "deployment":
328
323
  return `deployments:${fields.deploymentId}`;
329
324
  case "change-monitor-checkpoint":
@@ -391,7 +386,6 @@ export function mintClaim(claim) {
391
386
  }
392
387
  }
393
388
  export function handshakeContinuation(input) {
394
- var _a;
395
389
  if (input.identity === undefined) {
396
390
  return { ok: true };
397
391
  }
@@ -418,7 +412,7 @@ export function handshakeContinuation(input) {
418
412
  error: `v2: unknown continuation type ${parsed.type}`,
419
413
  };
420
414
  }
421
- const eventTypes = (_a = input.eventTypes) !== null && _a !== void 0 ? _a : [];
415
+ const eventTypes = input.eventTypes ?? [];
422
416
  const allowed = new Set(builtin.events);
423
417
  const unexpected = eventTypes.filter(event => !allowed.has(event));
424
418
  if (unexpected.length > 0) {
@@ -447,7 +441,7 @@ export function extractContinuation(type, eventName, payload) {
447
441
  case "issue":
448
442
  return extractGitHub(type, eventName, payload);
449
443
  case "thread":
450
- return extractSlack(payload);
444
+ return extractSlack(eventName, payload);
451
445
  case "origin-pr":
452
446
  return extractOrigin(payload);
453
447
  case "gitlab-mr":
@@ -511,7 +505,10 @@ export function bindMailboxContinuationSend(send, mailbox) {
511
505
  if (mailbox === undefined) {
512
506
  return send;
513
507
  }
514
- return (message, options) => { var _a; return send(message, Object.assign(Object.assign({}, options), { mailboxContinuation: (_a = options === null || options === void 0 ? void 0 : options.mailboxContinuation) !== null && _a !== void 0 ? _a : mailbox })); };
508
+ return (message, options) => send(message, {
509
+ ...options,
510
+ mailboxContinuation: options?.mailboxContinuation ?? mailbox,
511
+ });
515
512
  }
516
513
  function extractGitHub(type, eventName, payload) {
517
514
  const record = asRecord(payload);
@@ -532,27 +529,25 @@ function extractGitHub(type, eventName, payload) {
532
529
  })}`;
533
530
  }
534
531
  function githubBoundConversation(eventName, payload) {
535
- var _a, _b;
536
- var _c;
537
532
  switch (eventName) {
538
533
  case "pull_request":
539
534
  case "pull_request_review":
540
535
  case "pull_request_review_comment":
541
536
  case "pull_request_review_thread": {
542
- const number = positiveInt((_a = asRecord(payload.pull_request)) === null || _a === void 0 ? void 0 : _a.number);
537
+ const number = positiveInt(asRecord(payload.pull_request)?.number);
543
538
  return number === undefined ? undefined : { type: "pr", number };
544
539
  }
545
540
  case "issues": {
546
- const number = positiveInt((_b = asRecord(payload.issue)) === null || _b === void 0 ? void 0 : _b.number);
541
+ const number = positiveInt(asRecord(payload.issue)?.number);
547
542
  return number === undefined ? undefined : { type: "issue", number };
548
543
  }
549
544
  case "issue_comment": {
550
545
  const issue = asRecord(payload.issue);
551
- const number = positiveInt(issue === null || issue === void 0 ? void 0 : issue.number);
546
+ const number = positiveInt(issue?.number);
552
547
  if (number === undefined) {
553
548
  return undefined;
554
549
  }
555
- return (issue === null || issue === void 0 ? void 0 : issue.pull_request) !== undefined && issue.pull_request !== null
550
+ return issue?.pull_request !== undefined && issue.pull_request !== null
556
551
  ? { type: "pr", number }
557
552
  : { type: "issue", number };
558
553
  }
@@ -562,45 +557,74 @@ function githubBoundConversation(eventName, payload) {
562
557
  }
563
558
  case "check_run": {
564
559
  const checkRun = asRecord(payload.check_run);
565
- const number = (_c = firstPullRequestNumber(checkRun)) !== null && _c !== void 0 ? _c : firstPullRequestNumber(asRecord(checkRun === null || checkRun === void 0 ? void 0 : checkRun.check_suite));
560
+ const number = firstPullRequestNumber(checkRun) ?? firstPullRequestNumber(asRecord(checkRun?.check_suite));
566
561
  return number === undefined ? undefined : { type: "pr", number };
567
562
  }
568
563
  default:
569
564
  return undefined;
570
565
  }
571
566
  }
572
- function extractSlack(payload) {
573
- var _a, _b, _c, _d, _e, _f, _g;
567
+ function extractSlack(eventName, payload) {
574
568
  const record = asRecord(payload);
575
569
  if (record === undefined) {
576
570
  return undefined;
577
571
  }
578
- // Events-API deliveries are the full event_callback body, so the
579
- // identity fields live under `event`. Top-level fields still win for
580
- // pre-flattened payloads (Socket Mode local dev, tests). Keep in
581
- // lockstep with the control-plane twin (SlackThreadExtractor).
582
- const event = asRecord(record.event);
583
- const channelId = (_c = (_b = (_a = nonEmpty(record.channelId)) !== null && _a !== void 0 ? _a : nonEmpty(record.channel_id)) !== null && _b !== void 0 ? _b : nonEmpty(record.channel)) !== null && _c !== void 0 ? _c : nonEmpty(event === null || event === void 0 ? void 0 : event.channel);
584
- const threadTs = (_g = (_f = (_e = (_d = nonEmpty(record.threadTs)) !== null && _d !== void 0 ? _d : nonEmpty(record.thread_ts)) !== null && _e !== void 0 ? _e : nonEmpty(event === null || event === void 0 ? void 0 : event.thread_ts)) !== null && _f !== void 0 ? _f : nonEmpty(record.ts)) !== null && _g !== void 0 ? _g : nonEmpty(event === null || event === void 0 ? void 0 : event.ts);
572
+ const { channelId, threadTs } = slackThreadFields(eventName, record);
585
573
  if (channelId === undefined) {
586
574
  return undefined;
587
575
  }
588
576
  if (!isSlackImChannel(channelId) && threadTs === undefined) {
589
577
  return undefined;
590
578
  }
591
- return `cont:${slackThreadKey(channelId, threadTs !== null && threadTs !== void 0 ? threadTs : "")}`;
579
+ return `cont:${slackThreadKey(channelId, threadTs ?? "")}`;
580
+ }
581
+ /**
582
+ * Top-level fields win for pre-flattened payloads (Socket Mode local dev,
583
+ * tests). Events-API deliveries are the full event_callback body, so
584
+ * message identity lives under `event`; a reaction continues the thread
585
+ * rooted at the reacted-to message (`event.item`, as
586
+ * `parseReactionAddedEvent` does) and a Block Kit click — the interactivity
587
+ * payload — the thread of the message carrying the element (as
588
+ * `parseSlackBlockAction` does). Keep in lockstep with the control-plane
589
+ * twin (SlackThreadExtractor).
590
+ */
591
+ function slackThreadFields(eventName, record) {
592
+ const flatChannelId = nonEmpty(record.channelId) ?? nonEmpty(record.channel_id) ?? nonEmpty(record.channel);
593
+ const flatThreadTs = nonEmpty(record.threadTs) ?? nonEmpty(record.thread_ts);
594
+ if (eventName === "reaction_added") {
595
+ const item = asRecord(asRecord(record.event)?.item);
596
+ return {
597
+ channelId: flatChannelId ?? nonEmpty(item?.channel),
598
+ threadTs: flatThreadTs ?? nonEmpty(item?.ts),
599
+ };
600
+ }
601
+ if (eventName === "block_actions") {
602
+ const message = asRecord(record.message);
603
+ return {
604
+ channelId: flatChannelId ?? nonEmpty(asRecord(record.channel)?.id),
605
+ threadTs: flatThreadTs ??
606
+ nonEmpty(message?.thread_ts) ??
607
+ nonEmpty(asRecord(record.container)?.thread_ts) ??
608
+ nonEmpty(message?.ts),
609
+ };
610
+ }
611
+ const event = asRecord(record.event);
612
+ return {
613
+ channelId: flatChannelId ?? nonEmpty(event?.channel),
614
+ threadTs: flatThreadTs ?? nonEmpty(event?.thread_ts) ?? nonEmpty(record.ts) ?? nonEmpty(event?.ts),
615
+ };
592
616
  }
593
617
  function extractOrigin(payload) {
594
- var _a, _b;
595
- var _c, _d, _e, _f;
596
618
  const record = originExtractRecord(payload);
597
619
  if (record === undefined) {
598
620
  return undefined;
599
621
  }
600
- const inner = (_c = asRecord(record.pullRequest)) !== null && _c !== void 0 ? _c : asRecord(record.pull_request);
601
- const number = positiveInt(inner === null || inner === void 0 ? void 0 : inner.number);
602
- const repository = (_d = asRecord(record.repository)) !== null && _d !== void 0 ? _d : asRecord(inner === null || inner === void 0 ? void 0 : inner.repository);
603
- const fullName = (_f = (_e = nonEmpty((_a = asRecord(repository)) === null || _a === void 0 ? void 0 : _a.fullName)) !== null && _e !== void 0 ? _e : nonEmpty((_b = asRecord(repository)) === null || _b === void 0 ? void 0 : _b.full_name)) !== null && _f !== void 0 ? _f : originFullName(repository);
622
+ const inner = asRecord(record.pullRequest) ?? asRecord(record.pull_request);
623
+ const number = positiveInt(inner?.number);
624
+ const repository = asRecord(record.repository) ?? asRecord(inner?.repository);
625
+ const fullName = nonEmpty(asRecord(repository)?.fullName) ??
626
+ nonEmpty(asRecord(repository)?.full_name) ??
627
+ originFullName(repository);
604
628
  if (number === undefined || fullName === undefined) {
605
629
  return undefined;
606
630
  }
@@ -611,12 +635,11 @@ function extractOrigin(payload) {
611
635
  * also accepts the compact `{ pullRequest, repository }` shape.
612
636
  */
613
637
  function originExtractRecord(payload) {
614
- var _a;
615
638
  const record = asRecord(payload);
616
639
  if (record === undefined) {
617
640
  return undefined;
618
641
  }
619
- const nested = asRecord((_a = asRecord(record.event)) === null || _a === void 0 ? void 0 : _a.payload);
642
+ const nested = asRecord(asRecord(record.event)?.payload);
620
643
  if (nested !== undefined && asRecord(record.pullRequest) === undefined) {
621
644
  return nested;
622
645
  }
@@ -630,28 +653,27 @@ function originExtractRecord(payload) {
630
653
  * the payload carries a `merge_request`.
631
654
  */
632
655
  function extractGitlab(eventName, payload) {
633
- var _a, _b, _c, _d, _e, _f;
634
656
  const record = asRecord(payload);
635
657
  if (record === undefined) {
636
658
  return undefined;
637
659
  }
638
- const fullName = (_b = nonEmpty((_a = asRecord(record.project)) === null || _a === void 0 ? void 0 : _a.path_with_namespace)) === null || _b === void 0 ? void 0 : _b.toLowerCase();
660
+ const fullName = nonEmpty(asRecord(record.project)?.path_with_namespace)?.toLowerCase();
639
661
  if (fullName === undefined) {
640
662
  return undefined;
641
663
  }
642
664
  let number;
643
665
  switch (eventName) {
644
666
  case "merge_request":
645
- number = positiveInt((_c = asRecord(record.object_attributes)) === null || _c === void 0 ? void 0 : _c.iid);
667
+ number = positiveInt(asRecord(record.object_attributes)?.iid);
646
668
  break;
647
669
  case "note":
648
- if (((_d = asRecord(record.object_attributes)) === null || _d === void 0 ? void 0 : _d.noteable_type) !== "MergeRequest") {
670
+ if (asRecord(record.object_attributes)?.noteable_type !== "MergeRequest") {
649
671
  return undefined;
650
672
  }
651
- number = positiveInt((_e = asRecord(record.merge_request)) === null || _e === void 0 ? void 0 : _e.iid);
673
+ number = positiveInt(asRecord(record.merge_request)?.iid);
652
674
  break;
653
675
  case "pipeline":
654
- number = positiveInt((_f = asRecord(record.merge_request)) === null || _f === void 0 ? void 0 : _f.iid);
676
+ number = positiveInt(asRecord(record.merge_request)?.iid);
655
677
  break;
656
678
  default:
657
679
  return undefined;
@@ -669,22 +691,19 @@ function extractGitlab(eventName, payload) {
669
691
  * shares a key.
670
692
  */
671
693
  function extractBitbucket(payload) {
672
- var _a;
673
- var _b, _c;
674
694
  const record = asRecord(payload);
675
695
  if (record === undefined) {
676
696
  return undefined;
677
697
  }
678
- const pullRequest = (_b = asRecord(record.pullrequest)) !== null && _b !== void 0 ? _b : asRecord(record.pullRequest);
679
- const number = positiveInt(pullRequest === null || pullRequest === void 0 ? void 0 : pullRequest.id);
680
- const fullName = bitbucketFullName((_c = asRecord(record.repository)) !== null && _c !== void 0 ? _c : asRecord((_a = asRecord(pullRequest === null || pullRequest === void 0 ? void 0 : pullRequest.toRef)) === null || _a === void 0 ? void 0 : _a.repository));
698
+ const pullRequest = asRecord(record.pullrequest) ?? asRecord(record.pullRequest);
699
+ const number = positiveInt(pullRequest?.id);
700
+ const fullName = bitbucketFullName(asRecord(record.repository) ?? asRecord(asRecord(pullRequest?.toRef)?.repository));
681
701
  if (number === undefined || fullName === undefined) {
682
702
  return undefined;
683
703
  }
684
704
  return `cont:${formatConversationKey("bitbucket-pr", { fullName, number })}`;
685
705
  }
686
706
  function bitbucketFullName(repository) {
687
- var _a;
688
707
  if (repository === undefined) {
689
708
  return undefined;
690
709
  }
@@ -692,7 +711,7 @@ function bitbucketFullName(repository) {
692
711
  if (cloud !== undefined) {
693
712
  return cloud.toLowerCase();
694
713
  }
695
- const projectKey = nonEmpty((_a = asRecord(repository.project)) === null || _a === void 0 ? void 0 : _a.key);
714
+ const projectKey = nonEmpty(asRecord(repository.project)?.key);
696
715
  const slug = nonEmpty(repository.slug);
697
716
  if (projectKey === undefined || slug === undefined) {
698
717
  return undefined;
@@ -701,25 +720,25 @@ function bitbucketFullName(repository) {
701
720
  }
702
721
  function extractNamedResource(type, field, payload, wrapper) {
703
722
  const record = asRecord(payload);
704
- const source = wrapper === undefined ? record : asRecord(record === null || record === void 0 ? void 0 : record[wrapper]);
705
- const value = nonEmpty(source === null || source === void 0 ? void 0 : source[wrapper === undefined ? field : "name"]);
723
+ const source = wrapper === undefined ? record : asRecord(record?.[wrapper]);
724
+ const value = nonEmpty(source?.[wrapper === undefined ? field : "name"]);
706
725
  if (value === undefined) {
707
726
  return undefined;
708
727
  }
709
728
  return `cont:${formatConversationKey(type, { [field]: value })}`;
710
729
  }
711
730
  function githubFullName(payload) {
712
- var _a;
713
731
  const repository = asRecord(payload.repository);
714
- return (_a = nonEmpty(repository === null || repository === void 0 ? void 0 : repository.full_name)) !== null && _a !== void 0 ? _a : originFullName(repository);
732
+ return nonEmpty(repository?.full_name) ?? originFullName(repository);
715
733
  }
716
734
  function originFullName(repository) {
717
- var _a, _b, _c;
718
- var _d, _e, _f;
719
735
  if (repository === undefined) {
720
736
  return undefined;
721
737
  }
722
- const owner = (_f = (_e = (_d = nonEmpty((_a = asRecord(repository.owner)) === null || _a === void 0 ? void 0 : _a.slug)) !== null && _d !== void 0 ? _d : nonEmpty(repository.owner)) !== null && _e !== void 0 ? _e : nonEmpty((_b = asRecord(repository.owner)) === null || _b === void 0 ? void 0 : _b.login)) !== null && _f !== void 0 ? _f : nonEmpty((_c = asRecord(repository.owner)) === null || _c === void 0 ? void 0 : _c.name);
738
+ const owner = nonEmpty(asRecord(repository.owner)?.slug) ??
739
+ nonEmpty(repository.owner) ??
740
+ nonEmpty(asRecord(repository.owner)?.login) ??
741
+ nonEmpty(asRecord(repository.owner)?.name);
723
742
  const name = nonEmpty(repository.name);
724
743
  if (owner === undefined || name === undefined) {
725
744
  return undefined;
@@ -727,12 +746,11 @@ function originFullName(repository) {
727
746
  return `${owner}/${name}`;
728
747
  }
729
748
  function firstPullRequestNumber(record) {
730
- var _a;
731
- const pullRequests = record === null || record === void 0 ? void 0 : record.pull_requests;
749
+ const pullRequests = record?.pull_requests;
732
750
  if (!Array.isArray(pullRequests) || pullRequests.length === 0) {
733
751
  return undefined;
734
752
  }
735
- return positiveInt((_a = asRecord(pullRequests[0])) === null || _a === void 0 ? void 0 : _a.number);
753
+ return positiveInt(asRecord(pullRequests[0])?.number);
736
754
  }
737
755
  function asRecord(value) {
738
756
  return typeof value === "object" && value !== null && !Array.isArray(value)