@cursor/bdk 0.2.8 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.d.ts +1 -0
  3. package/dist/bin/agent-serve.d.ts.map +1 -1
  4. package/dist/bin/agent-serve.js +820 -807
  5. package/dist/channels/bitbucket/api.js +305 -321
  6. package/dist/channels/bitbucket/binding.js +97 -61
  7. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  8. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  9. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  10. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  11. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  12. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  13. package/dist/channels/bitbucket/checks.js +9 -21
  14. package/dist/channels/bitbucket/cursor-account.js +1 -1
  15. package/dist/channels/bitbucket/defaults.js +14 -4
  16. package/dist/channels/bitbucket/events.js +1 -2
  17. package/dist/channels/bitbucket/index.d.ts +6 -2
  18. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  19. package/dist/channels/bitbucket/index.js +6 -2
  20. package/dist/channels/bitbucket/replay.js +80 -56
  21. package/dist/channels/bitbucket/state.js +16 -7
  22. package/dist/channels/bitbucket/types.d.ts +11 -2
  23. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  24. package/dist/channels/checks.js +18 -28
  25. package/dist/channels/deployments/deployments-channel.js +26 -34
  26. package/dist/channels/github/api.js +216 -210
  27. package/dist/channels/github/auth.d.ts +5 -1
  28. package/dist/channels/github/auth.d.ts.map +1 -1
  29. package/dist/channels/github/auth.js +157 -174
  30. package/dist/channels/github/binding.js +48 -39
  31. package/dist/channels/github/checks.js +9 -14
  32. package/dist/channels/github/cursor-account.js +6 -11
  33. package/dist/channels/github/defaults.js +105 -130
  34. package/dist/channels/github/forward.js +13 -17
  35. package/dist/channels/github/github-channel.d.ts +43 -2
  36. package/dist/channels/github/github-channel.d.ts.map +1 -1
  37. package/dist/channels/github/github-channel.js +1228 -958
  38. package/dist/channels/github/progress.js +145 -146
  39. package/dist/channels/github/replay.js +30 -39
  40. package/dist/channels/github/state.js +40 -16
  41. package/dist/channels/github/types.d.ts +30 -6
  42. package/dist/channels/github/types.d.ts.map +1 -1
  43. package/dist/channels/gitlab/api.js +100 -114
  44. package/dist/channels/gitlab/binding.js +52 -33
  45. package/dist/channels/gitlab/checks.js +28 -29
  46. package/dist/channels/gitlab/cursor-account.js +1 -1
  47. package/dist/channels/gitlab/defaults.js +9 -3
  48. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  49. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  50. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  51. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  52. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  53. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  54. package/dist/channels/gitlab/index.d.ts +6 -2
  55. package/dist/channels/gitlab/index.d.ts.map +1 -1
  56. package/dist/channels/gitlab/index.js +6 -2
  57. package/dist/channels/gitlab/replay.js +50 -27
  58. package/dist/channels/gitlab/state.js +14 -6
  59. package/dist/channels/gitlab/types.d.ts +13 -2
  60. package/dist/channels/gitlab/types.d.ts.map +1 -1
  61. package/dist/channels/origin/api.js +100 -116
  62. package/dist/channels/origin/binding.js +15 -16
  63. package/dist/channels/origin/checks.js +30 -28
  64. package/dist/channels/origin/defaults.js +50 -65
  65. package/dist/channels/origin/origin-channel.js +266 -272
  66. package/dist/channels/origin/origin-webhook.js +70 -88
  67. package/dist/channels/origin/reactions.js +9 -21
  68. package/dist/channels/origin/state.js +13 -5
  69. package/dist/channels/slack/agentic-delivery.js +426 -478
  70. package/dist/channels/slack/agentic-posted.js +9 -10
  71. package/dist/channels/slack/agentic-signals.js +2 -3
  72. package/dist/channels/slack/api.js +417 -427
  73. package/dist/channels/slack/approvals.js +1 -1
  74. package/dist/channels/slack/assistant.js +37 -47
  75. package/dist/channels/slack/attachments.js +188 -206
  76. package/dist/channels/slack/auth.js +8 -6
  77. package/dist/channels/slack/bot-mentions.js +31 -45
  78. package/dist/channels/slack/channel-watch.js +42 -48
  79. package/dist/channels/slack/cli-project.js +112 -137
  80. package/dist/channels/slack/code-fences.js +3 -5
  81. package/dist/channels/slack/constants.js +2 -2
  82. package/dist/channels/slack/credentials.js +23 -38
  83. package/dist/channels/slack/defaults.js +292 -331
  84. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  85. package/dist/channels/slack/dispatch.js +533 -460
  86. package/dist/channels/slack/doctor.js +200 -214
  87. package/dist/channels/slack/eval-directive.js +79 -96
  88. package/dist/channels/slack/event-id-dedupe.js +1 -1
  89. package/dist/channels/slack/external-policy.js +26 -39
  90. package/dist/channels/slack/footer.js +28 -41
  91. package/dist/channels/slack/inbound.d.ts +1 -0
  92. package/dist/channels/slack/inbound.d.ts.map +1 -1
  93. package/dist/channels/slack/inbound.js +50 -31
  94. package/dist/channels/slack/init.d.ts +1 -5
  95. package/dist/channels/slack/init.d.ts.map +1 -1
  96. package/dist/channels/slack/init.js +42 -59
  97. package/dist/channels/slack/interactive.d.ts +9 -3
  98. package/dist/channels/slack/interactive.d.ts.map +1 -1
  99. package/dist/channels/slack/interactive.js +160 -162
  100. package/dist/channels/slack/links.js +1 -2
  101. package/dist/channels/slack/live-delivery.js +172 -190
  102. package/dist/channels/slack/manifest.d.ts.map +1 -1
  103. package/dist/channels/slack/manifest.js +44 -23
  104. package/dist/channels/slack/message-body.js +2 -2
  105. package/dist/channels/slack/nudge-carrier.js +30 -42
  106. package/dist/channels/slack/nudge-store.js +164 -191
  107. package/dist/channels/slack/paint-start.js +66 -81
  108. package/dist/channels/slack/placeholder.js +123 -152
  109. package/dist/channels/slack/pr-ref.js +1 -1
  110. package/dist/channels/slack/progress-delivery.js +65 -78
  111. package/dist/channels/slack/reasoning-card.js +36 -49
  112. package/dist/channels/slack/recording-sink.js +12 -24
  113. package/dist/channels/slack/reply-options.js +7 -12
  114. package/dist/channels/slack/self-identity.js +27 -35
  115. package/dist/channels/slack/sender-name.d.ts +12 -3
  116. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  117. package/dist/channels/slack/sender-name.js +57 -61
  118. package/dist/channels/slack/setup.js +2 -4
  119. package/dist/channels/slack/slack-channel.d.ts +6 -4
  120. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  121. package/dist/channels/slack/slack-channel.js +441 -308
  122. package/dist/channels/slack/socket-mode.js +38 -52
  123. package/dist/channels/slack/thread-context.js +143 -160
  124. package/dist/channels/slack/tool-approval-events.js +149 -166
  125. package/dist/channels/slack/tool-cards.js +6 -11
  126. package/dist/channels/slack/tool-chip.js +1 -2
  127. package/dist/channels/slack/types.d.ts +15 -17
  128. package/dist/channels/slack/types.d.ts.map +1 -1
  129. package/dist/channels/slack/upload.js +84 -97
  130. package/dist/channels/slack/user-info.js +27 -41
  131. package/dist/channels.js +9 -20
  132. package/dist/dashboard-session-url.js +3 -4
  133. package/dist/docs/404.html +2 -2
  134. package/dist/docs/assets/{app.oyjtOr3W.js → app.DXI7bwox.js} +4 -4
  135. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  136. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  137. package/dist/docs/assets/chunks/{VPLocalSearchBox.D0P6J_UJ.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  138. package/dist/docs/assets/chunks/{arc.B0LY1J1h.js → arc.BOG1yms8.js} +1 -1
  139. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.dPduLUxY.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  140. package/dist/docs/assets/chunks/{baseUniq.B_Ohm21h.js → baseUniq.H044KjKs.js} +1 -1
  141. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.B4zcanaJ.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  142. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D9Iw21nx.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  143. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  144. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DDVwRShI.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DsYcdn1i.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-55IACEB6.BzzQvcYp.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BMiXZ7FX.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.D_mBcLoc.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMVjWVMx.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  150. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BG-FrPv9.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  151. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CkFE1ap3.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  152. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  153. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  154. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  155. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BVNnCTvY.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  156. package/dist/docs/assets/chunks/{dagre-KV5264BT.CDN5PR9l.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DQRUlT-i.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.CoeblYQT.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  159. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DW3ymjl0.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  160. package/dist/docs/assets/chunks/{diagram-TYMM5635.BP0uN4Jw.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  161. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DVFUWEn4.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  162. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.HU-eHspv.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  163. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHNhXijY.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  164. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DkISXcO3.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  165. package/dist/docs/assets/chunks/{graph.CCV0fuRR.js → graph.BVqKRmRo.js} +1 -1
  166. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.bgILzOoc.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  167. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CuryXC0F.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  168. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BL1Pr-wu.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  169. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BbGjvk4l.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  170. package/dist/docs/assets/chunks/{layout.C4PfdldS.js → layout.CGU3gfSf.js} +1 -1
  171. package/dist/docs/assets/chunks/{linear.C3xD1T6X.js → linear.DaihpW_n.js} +1 -1
  172. package/dist/docs/assets/chunks/{min.CzgRAQ9c.js → min.BS-j8kHQ.js} +1 -1
  173. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CA9rSWum.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  174. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B8MprgJu.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  175. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DndDwbKT.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  176. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.Zhfgwlnn.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  177. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.B6RRm6N5.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  178. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bfmz-1PN.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  179. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.gbrdNqgj.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  180. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  181. package/dist/docs/assets/chunks/{theme.gpWjytMh.js → theme.DaplWQhQ.js} +2 -2
  182. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bl1l7M1f.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  183. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Dfle4U0d.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  184. package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +162 -0
  185. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.CM_4lmvZ.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  186. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CHT5X28R.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  187. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  188. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  189. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  191. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  192. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  193. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  194. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  195. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  196. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  197. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  198. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  199. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  200. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  201. package/dist/docs/building-with-agents.html +37 -37
  202. package/dist/docs/building-with-agents.md +2 -0
  203. package/dist/docs/deployment.html +38 -38
  204. package/dist/docs/deployment.md +7 -0
  205. package/dist/docs/evals.html +36 -36
  206. package/dist/docs/guides/agent-to-agent.html +35 -35
  207. package/dist/docs/guides/bitbucket.html +38 -38
  208. package/dist/docs/guides/bitbucket.md +9 -1
  209. package/dist/docs/guides/cloud-agents.html +35 -35
  210. package/dist/docs/guides/convert-automation.html +35 -35
  211. package/dist/docs/guides/github.html +39 -39
  212. package/dist/docs/guides/github.md +20 -4
  213. package/dist/docs/guides/gitlab.html +38 -38
  214. package/dist/docs/guides/gitlab.md +9 -1
  215. package/dist/docs/guides/grokbot-agents.html +35 -35
  216. package/dist/docs/guides/hooks.html +35 -35
  217. package/dist/docs/guides/improve.html +35 -35
  218. package/dist/docs/guides/jev.html +35 -35
  219. package/dist/docs/guides/mcp-oauth.html +35 -35
  220. package/dist/docs/guides/migrate.html +66 -0
  221. package/dist/docs/guides/migrate.md +122 -0
  222. package/dist/docs/guides/opentelemetry.html +35 -35
  223. package/dist/docs/guides/slack.html +35 -35
  224. package/dist/docs/guides/webhooks.html +35 -35
  225. package/dist/docs/hashmap.json +1 -1
  226. package/dist/docs/hillclimbing.html +35 -35
  227. package/dist/docs/index.html +35 -35
  228. package/dist/docs/llms-full.txt +214 -6
  229. package/dist/docs/llms.txt +1 -0
  230. package/dist/docs/quickstart.html +35 -35
  231. package/dist/docs/reference/agent-config.html +35 -35
  232. package/dist/docs/reference/artifacts.html +35 -35
  233. package/dist/docs/reference/channels.html +35 -35
  234. package/dist/docs/reference/cli.html +39 -38
  235. package/dist/docs/reference/cli.md +39 -0
  236. package/dist/docs/reference/connections.html +35 -35
  237. package/dist/docs/reference/evals.html +35 -35
  238. package/dist/docs/reference/extensions.html +35 -35
  239. package/dist/docs/reference/hooks.html +35 -35
  240. package/dist/docs/reference/http-api.html +35 -35
  241. package/dist/docs/reference/instructions.html +35 -35
  242. package/dist/docs/reference/playground.html +35 -35
  243. package/dist/docs/reference/project-layout.html +35 -35
  244. package/dist/docs/reference/prompt.html +35 -35
  245. package/dist/docs/reference/schedules.html +35 -35
  246. package/dist/docs/reference/sessions.html +35 -35
  247. package/dist/docs/reference/skills.html +38 -38
  248. package/dist/docs/reference/subagents.html +35 -35
  249. package/dist/docs/reference/tools.html +35 -35
  250. package/dist/docs/templates/agentic-owners.html +35 -35
  251. package/dist/docs/templates/grokbot-agents.html +35 -35
  252. package/dist/docs/templates/security-reviewer.html +35 -35
  253. package/dist/docs/templates/thermo-quality-review.html +35 -35
  254. package/dist/docs/templates/thermo-review.html +35 -35
  255. package/dist/docs/templates/triage.html +35 -35
  256. package/dist/docs/troubleshooting.html +36 -36
  257. package/dist/docs/troubleshooting.md +1 -0
  258. package/dist/evals/assertions.js +20 -34
  259. package/dist/evals/expect.js +3 -6
  260. package/dist/evals/judge.js +5 -8
  261. package/dist/evals/loaders.js +45 -62
  262. package/dist/evals/matchers.js +2 -3
  263. package/dist/evals/reporters.js +43 -67
  264. package/dist/evals/results.js +1 -1
  265. package/dist/evals/run-facts.js +5 -6
  266. package/dist/evals.js +27 -15
  267. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  268. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +0 -1
  269. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  270. package/dist/extensions/cursor-cloud-agents/lib/backend.js +101 -130
  271. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  272. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  273. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  274. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  275. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  276. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  277. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  278. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  279. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  280. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -1
  281. package/dist/extensions/cursor-cloud-agents/tools/list.js +9 -20
  282. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  283. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  284. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  285. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  286. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  287. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  288. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  289. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  290. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  291. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  292. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  293. package/dist/extensions/jev/extension.js +3 -3
  294. package/dist/extensions/jev/lib/evaluate.js +43 -60
  295. package/dist/extensions/jev/tools/evaluate.js +6 -17
  296. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  297. package/dist/extensions.js +3 -5
  298. package/dist/files-backends/cursor-hosted.js +504 -523
  299. package/dist/files-backends/local-fs.js +72 -134
  300. package/dist/files.js +3 -3
  301. package/dist/filesystem.js +562 -861
  302. package/dist/index.js +16 -35
  303. package/dist/internal/advertise-tools.js +74 -86
  304. package/dist/internal/artifacts-store.js +298 -361
  305. package/dist/internal/as-of.js +2 -4
  306. package/dist/internal/authored-alias-hooks.js +6 -4
  307. package/dist/internal/authored-loaders.js +37 -52
  308. package/dist/internal/bounded-int.js +1 -2
  309. package/dist/internal/bounded.js +13 -24
  310. package/dist/internal/brand.js +1 -1
  311. package/dist/internal/browser-origin-guard.js +4 -4
  312. package/dist/internal/builtin-tools/artifacts.js +15 -27
  313. package/dist/internal/builtin-tools/index.js +2 -3
  314. package/dist/internal/builtin-tools/reminders.js +33 -52
  315. package/dist/internal/channel-architecture.d.ts +21 -0
  316. package/dist/internal/channel-architecture.d.ts.map +1 -0
  317. package/dist/internal/channel-architecture.js +41 -0
  318. package/dist/internal/channel-dispatch.js +3 -4
  319. package/dist/internal/channel-route-dispatch.js +40 -51
  320. package/dist/internal/channel-state.js +1 -1
  321. package/dist/internal/chat-client.js +319 -340
  322. package/dist/internal/cli-ax.js +1262 -1294
  323. package/dist/internal/cli-bitbucket.js +244 -272
  324. package/dist/internal/cli-convert-automation.js +137 -151
  325. package/dist/internal/cli-cursor.js +126 -147
  326. package/dist/internal/cli-deploy.d.ts.map +1 -1
  327. package/dist/internal/cli-deploy.js +1457 -1507
  328. package/dist/internal/cli-docs.js +130 -147
  329. package/dist/internal/cli-github.js +437 -476
  330. package/dist/internal/cli-gitlab.js +259 -288
  331. package/dist/internal/cli-images.js +266 -334
  332. package/dist/internal/cli-manifest.js +25 -37
  333. package/dist/internal/cli-mcp-oauth.js +228 -247
  334. package/dist/internal/cli-mcp.js +358 -383
  335. package/dist/internal/cli-migrate.d.ts +18 -0
  336. package/dist/internal/cli-migrate.d.ts.map +1 -0
  337. package/dist/internal/cli-migrate.js +136 -0
  338. package/dist/internal/cli-skills.js +35 -47
  339. package/dist/internal/cli-slack-manual.d.ts +0 -1
  340. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  341. package/dist/internal/cli-slack-manual.js +175 -204
  342. package/dist/internal/cli-slack.d.ts +1 -1
  343. package/dist/internal/cli-slack.d.ts.map +1 -1
  344. package/dist/internal/cli-slack.js +416 -456
  345. package/dist/internal/cloud-merge.js +7 -3
  346. package/dist/internal/cloud-turn-cost.js +8 -1
  347. package/dist/internal/connection-env.js +5 -6
  348. package/dist/internal/continuation-channel.js +10 -7
  349. package/dist/internal/continuation-identity.js +85 -67
  350. package/dist/internal/conversation-mirror.js +112 -131
  351. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  352. package/dist/internal/cron.js +3 -3
  353. package/dist/internal/cursor/account-mcp.js +147 -146
  354. package/dist/internal/cursor/backend-client.js +290 -320
  355. package/dist/internal/cursor/bound-secret-file.js +3 -3
  356. package/dist/internal/cursor/credentials.d.ts +1 -0
  357. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  358. package/dist/internal/cursor/credentials.js +130 -142
  359. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  360. package/dist/internal/cursor/github-credentials.js +91 -108
  361. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  362. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  363. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  364. package/dist/internal/cursor/session-token.js +36 -48
  365. package/dist/internal/cursor/store-api-client.js +77 -92
  366. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  367. package/dist/internal/cursor-agent-template.js +1 -1
  368. package/dist/internal/cursor-deployment-relay.js +33 -54
  369. package/dist/internal/cursor-event-relay.js +65 -59
  370. package/dist/internal/cursor-relay-core.js +258 -286
  371. package/dist/internal/deferred-channel-session.js +3 -12
  372. package/dist/internal/deploy-client.js +410 -475
  373. package/dist/internal/deploy-manifest.d.ts +17 -0
  374. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  375. package/dist/internal/deploy-manifest.js +71 -21
  376. package/dist/internal/deploy-source.js +31 -43
  377. package/dist/internal/discovery/agent-config.js +45 -59
  378. package/dist/internal/discovery/agent.js +276 -280
  379. package/dist/internal/discovery/channels.js +67 -80
  380. package/dist/internal/discovery/connections.js +286 -296
  381. package/dist/internal/discovery/context.js +2 -13
  382. package/dist/internal/discovery/cursor-plugin.js +223 -259
  383. package/dist/internal/discovery/extension-overlay.js +104 -131
  384. package/dist/internal/discovery/extensions.js +276 -281
  385. package/dist/internal/discovery/fs.js +56 -79
  386. package/dist/internal/discovery/hooks.js +39 -50
  387. package/dist/internal/discovery/info.js +17 -19
  388. package/dist/internal/discovery/instructions.js +58 -71
  389. package/dist/internal/discovery/modules.js +45 -58
  390. package/dist/internal/discovery/project.d.ts.map +1 -1
  391. package/dist/internal/discovery/project.js +192 -215
  392. package/dist/internal/discovery/reminders.js +41 -52
  393. package/dist/internal/discovery/runtime.js +1 -1
  394. package/dist/internal/discovery/schedules.js +71 -82
  395. package/dist/internal/discovery/seed-files.js +21 -32
  396. package/dist/internal/discovery/services.js +74 -96
  397. package/dist/internal/discovery/skills.js +77 -94
  398. package/dist/internal/discovery/subagent.js +79 -95
  399. package/dist/internal/discovery/tools.js +12 -23
  400. package/dist/internal/distribution.js +2 -2
  401. package/dist/internal/docs-site.js +30 -45
  402. package/dist/internal/duration.js +1 -1
  403. package/dist/internal/env-file.js +48 -64
  404. package/dist/internal/eval-judge-model.js +17 -28
  405. package/dist/internal/eval-run-store.js +265 -254
  406. package/dist/internal/eval-runner.d.ts +8 -0
  407. package/dist/internal/eval-runner.d.ts.map +1 -1
  408. package/dist/internal/eval-runner.js +406 -408
  409. package/dist/internal/eval-transport.d.ts +24 -0
  410. package/dist/internal/eval-transport.d.ts.map +1 -0
  411. package/dist/internal/eval-transport.js +22 -0
  412. package/dist/internal/evals-client.js +242 -246
  413. package/dist/internal/event-log.js +72 -120
  414. package/dist/internal/event-mapper.js +30 -31
  415. package/dist/internal/factory-resource-channel.js +16 -30
  416. package/dist/internal/filesystem/errors.js +6 -6
  417. package/dist/internal/filesystem/format.js +10 -13
  418. package/dist/internal/filesystem/merge.js +52 -94
  419. package/dist/internal/filesystem/nearest.js +15 -27
  420. package/dist/internal/filesystem/scratch.js +65 -85
  421. package/dist/internal/filesystem/tools.js +221 -241
  422. package/dist/internal/filesystem/walk.js +76 -143
  423. package/dist/internal/framework-file-storage.js +118 -139
  424. package/dist/internal/framework-storage-selection.js +21 -13
  425. package/dist/internal/frontmatter.js +4 -6
  426. package/dist/internal/github-fanout.js +50 -64
  427. package/dist/internal/guest-network.js +96 -109
  428. package/dist/internal/handleAgentServeTrigger.js +121 -126
  429. package/dist/internal/host-files.js +73 -88
  430. package/dist/internal/host-kv.js +21 -36
  431. package/dist/internal/host-otel.js +22 -19
  432. package/dist/internal/host-platforms.js +49 -63
  433. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  434. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  435. package/dist/internal/hosted-catch-protocol.js +1 -0
  436. package/dist/internal/hosted-catch.d.ts +5 -3
  437. package/dist/internal/hosted-catch.d.ts.map +1 -1
  438. package/dist/internal/hosted-catch.js +84 -93
  439. package/dist/internal/hosted-delivery-protocol.js +32 -8
  440. package/dist/internal/hosted-delivery.d.ts +13 -1
  441. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  442. package/dist/internal/hosted-delivery.js +614 -584
  443. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  444. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  445. package/dist/internal/hosted-eval-cases.js +162 -0
  446. package/dist/internal/hosted-execution-diag.js +38 -30
  447. package/dist/internal/hosted-execution-flush.js +75 -66
  448. package/dist/internal/hosted-execution-latency.js +16 -8
  449. package/dist/internal/hosted-managed-automation.js +2 -2
  450. package/dist/internal/hosting.js +2 -3
  451. package/dist/internal/http-channel-define.js +4 -1
  452. package/dist/internal/http-channel.js +101 -112
  453. package/dist/internal/http-control-plane-session.d.ts +18 -1
  454. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  455. package/dist/internal/http-control-plane-session.js +66 -32
  456. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  457. package/dist/internal/init-interview.js +73 -93
  458. package/dist/internal/init-project.js +182 -214
  459. package/dist/internal/init-scaffold.js +10 -21
  460. package/dist/internal/inline-stdio-mcp.js +80 -86
  461. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  462. package/dist/internal/install-cursor-skills.js +238 -274
  463. package/dist/internal/legacy-command-guard.js +18 -31
  464. package/dist/internal/listen-port.js +34 -45
  465. package/dist/internal/local-control-plane.js +293 -307
  466. package/dist/internal/local-env.js +1 -1
  467. package/dist/internal/local-ingress.js +15 -9
  468. package/dist/internal/log-ring.js +1 -2
  469. package/dist/internal/logs-client.js +207 -227
  470. package/dist/internal/map-pool.js +24 -38
  471. package/dist/internal/mcp-endpoint.js +204 -180
  472. package/dist/internal/mcp-host.js +165 -168
  473. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  474. package/dist/internal/mcp-oauth-persist.js +15 -29
  475. package/dist/internal/mcp-oauth.js +209 -266
  476. package/dist/internal/named-webhook-secret.d.ts +39 -0
  477. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  478. package/dist/internal/named-webhook-secret.js +47 -0
  479. package/dist/internal/open-browser.js +2 -3
  480. package/dist/internal/otel/collector.js +104 -68
  481. package/dist/internal/otel/config.js +24 -37
  482. package/dist/internal/otel/http.js +5 -7
  483. package/dist/internal/otel/mcp.js +3 -12
  484. package/dist/internal/otel/runtime.js +69 -83
  485. package/dist/internal/package-inline-stdio.js +57 -65
  486. package/dist/internal/peer-connections.js +9 -5
  487. package/dist/internal/platform-schedule-sync.js +39 -54
  488. package/dist/internal/platform-timers.js +176 -210
  489. package/dist/internal/playground/static.js +1 -2
  490. package/dist/internal/playground/toolchain.js +37 -53
  491. package/dist/internal/playground-proxy.js +230 -270
  492. package/dist/internal/process-memory-telemetry.js +33 -51
  493. package/dist/internal/prompt-context.js +3 -6
  494. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  495. package/dist/internal/reminder-runner.js +770 -785
  496. package/dist/internal/reminder-schedule.js +1 -1
  497. package/dist/internal/reminder-store.js +57 -78
  498. package/dist/internal/request-error-status.js +1 -3
  499. package/dist/internal/request-headers.js +2 -2
  500. package/dist/internal/resolve-prod-target.js +119 -135
  501. package/dist/internal/resolved-connections.js +16 -6
  502. package/dist/internal/run-client.js +221 -229
  503. package/dist/internal/runtime-dispatch-runner.js +18 -43
  504. package/dist/internal/schedule-runner.js +49 -58
  505. package/dist/internal/scm/pr-url.js +7 -6
  506. package/dist/internal/sdk-runner.js +388 -363
  507. package/dist/internal/serve-restart.js +26 -39
  508. package/dist/internal/server.d.ts.map +1 -1
  509. package/dist/internal/server.js +1283 -1244
  510. package/dist/internal/session-cost.js +7 -9
  511. package/dist/internal/session-engine.d.ts +3 -1
  512. package/dist/internal/session-engine.d.ts.map +1 -1
  513. package/dist/internal/session-engine.js +2801 -2777
  514. package/dist/internal/session-links.js +12 -16
  515. package/dist/internal/session-run-log.js +134 -82
  516. package/dist/internal/session-store.js +133 -164
  517. package/dist/internal/sessions-client.js +97 -118
  518. package/dist/internal/skill-catalog.js +18 -23
  519. package/dist/internal/skills-sync.js +16 -30
  520. package/dist/internal/slack-provision-client.js +90 -116
  521. package/dist/internal/start-log-store.js +48 -67
  522. package/dist/internal/steering.js +1 -2
  523. package/dist/internal/storage-coordinator.js +160 -196
  524. package/dist/internal/store-mirror.js +16 -30
  525. package/dist/internal/stream-progress.js +6 -8
  526. package/dist/internal/terminal-style.js +3 -4
  527. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  528. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  529. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  530. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  531. package/dist/internal/tool-catalog.js +11 -5
  532. package/dist/internal/tool-result.js +1 -1
  533. package/dist/internal/trajectory.js +19 -22
  534. package/dist/internal/turn-cost.js +52 -62
  535. package/dist/internal/turn-governor.js +5 -8
  536. package/dist/internal/turn-lease-store.js +85 -105
  537. package/dist/internal/turn-outbox.js +28 -43
  538. package/dist/internal/update-check.js +231 -259
  539. package/dist/internal/v2-hosting.js +1 -2
  540. package/dist/internal/workspace-sync.js +25 -41
  541. package/dist/internal/workspace.js +111 -139
  542. package/dist/kv/memory-kv.js +27 -51
  543. package/dist/memory.js +106 -148
  544. package/dist/otel.js +5 -8
  545. package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
  546. package/dist/playground/assets/{index-MijLHTbB.js → index-JekUQERK.js} +45 -45
  547. package/dist/playground/index.html +2 -2
  548. package/dist/prompt.js +2 -4
  549. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  550. package/dist/storage-backends/cursor-hosted.js +105 -145
  551. package/dist/storage-backends/file-kv.js +100 -128
  552. package/dist/storage-protocol.js +3 -5
  553. package/dist/storage.js +17 -26
  554. package/dist/types.d.ts +68 -0
  555. package/dist/types.d.ts.map +1 -1
  556. package/dist/types.js +20 -18
  557. package/docs/building-with-agents.md +2 -0
  558. package/docs/deployment.md +7 -0
  559. package/docs/guides/bitbucket.md +9 -1
  560. package/docs/guides/github.md +20 -4
  561. package/docs/guides/gitlab.md +9 -1
  562. package/docs/guides/migrate.md +127 -0
  563. package/docs/reference/cli.md +39 -0
  564. package/docs/troubleshooting.md +1 -0
  565. package/package.json +1 -1
  566. package/skills/debug/SKILL.md +1 -0
  567. package/skills/github/SKILL.md +23 -0
  568. package/skills/migrate-v2/SKILL.md +264 -0
  569. package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +0 -1
  570. package/dist/docs/assets/chunks/channel.CRUyWDV-.js +0 -1
  571. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +0 -1
  572. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +0 -1
  573. package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +0 -1
  574. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +0 -1
  575. package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +0 -162
  576. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  577. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  578. package/dist/playground/assets/index-DPKLl4C_.css +0 -1
  579. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  580. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
  581. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
@@ -3,9 +3,8 @@
3
3
  * Writes to a caller-provided sink (usually stderr) so stdout can stay JSON.
4
4
  */
5
5
  export function createStreamProgress(options) {
6
- var _a, _b;
7
- const write = (_a = options === null || options === void 0 ? void 0 : options.write) !== null && _a !== void 0 ? _a : ((s) => process.stderr.write(s));
8
- const color = (_b = options === null || options === void 0 ? void 0 : options.color) !== null && _b !== void 0 ? _b : (process.stderr.isTTY === true && process.env.NO_COLOR === undefined);
6
+ const write = options?.write ?? ((s) => process.stderr.write(s));
7
+ const color = options?.color ?? (process.stderr.isTTY === true && process.env.NO_COLOR === undefined);
9
8
  const c = makePalette(color);
10
9
  let assistantOpen = false;
11
10
  let thinkingShown = false;
@@ -21,7 +20,6 @@ export function createStreamProgress(options) {
21
20
  const elapsed = (since) => `${Date.now() - since}ms`;
22
21
  return {
23
22
  onEvent(event) {
24
- var _a, _b, _c, _d;
25
23
  switch (event.type) {
26
24
  case "session.started": {
27
25
  write(c.dim(`session ${event.sessionId}\n`));
@@ -36,7 +34,7 @@ export function createStreamProgress(options) {
36
34
  break;
37
35
  }
38
36
  case "turn.queued": {
39
- write(c.dim(` turn ${(_a = event.turnId) !== null && _a !== void 0 ? _a : "?"} queued (position ${event.data.position}, max ${event.data.maxRunningTurns} running)\n`));
37
+ write(c.dim(` turn ${event.turnId ?? "?"} queued (position ${event.data.position}, max ${event.data.maxRunningTurns} running)\n`));
40
38
  break;
41
39
  }
42
40
  case "turn.started": {
@@ -44,7 +42,7 @@ export function createStreamProgress(options) {
44
42
  if (event.turnId !== undefined) {
45
43
  turnStartedAt.set(event.turnId, turnClock);
46
44
  }
47
- write(c.dim(` turn ${(_b = event.turnId) !== null && _b !== void 0 ? _b : "?"} started\n`));
45
+ write(c.dim(` turn ${event.turnId ?? "?"} started\n`));
48
46
  break;
49
47
  }
50
48
  case "message.received": {
@@ -141,11 +139,11 @@ export function createStreamProgress(options) {
141
139
  case "subagent.called": {
142
140
  closeAssistant();
143
141
  const detail = event.data.description ? ` — ${truncate(event.data.description, 60)}` : "";
144
- write(` ${c.magenta("task")} ${c.bold((_c = event.data.name) !== null && _c !== void 0 ? _c : "subagent")}${c.dim(detail)}\n`);
142
+ write(` ${c.magenta("task")} ${c.bold(event.data.name ?? "subagent")}${c.dim(detail)}\n`);
145
143
  break;
146
144
  }
147
145
  case "subagent.completed": {
148
- write(` ${c.magenta("✓")} ${c.bold((_d = event.data.name) !== null && _d !== void 0 ? _d : "subagent")} ${c.dim("done")}\n`);
146
+ write(` ${c.magenta("✓")} ${c.bold(event.data.name ?? "subagent")} ${c.dim("done")}\n`);
149
147
  break;
150
148
  }
151
149
  case "turn.completed": {
@@ -67,10 +67,9 @@ export function terminalHyperlink(url, label, enabled = colorEnabledFor()) {
67
67
  * so a warning panel can be yellow without per-line prefixes.
68
68
  */
69
69
  export function formatTerminalBox(lines, options) {
70
- var _a, _b, _c;
71
- const color = (_a = options === null || options === void 0 ? void 0 : options.color) !== null && _a !== void 0 ? _a : IDENTITY;
72
- const padding = (_b = options === null || options === void 0 ? void 0 : options.padding) !== null && _b !== void 0 ? _b : 1;
73
- const contentWidth = Math.max((_c = options === null || options === void 0 ? void 0 : options.minWidth) !== null && _c !== void 0 ? _c : 0, ...lines.map(line => visibleWidth(line)), 1);
70
+ const color = options?.color ?? IDENTITY;
71
+ const padding = options?.padding ?? 1;
72
+ const contentWidth = Math.max(options?.minWidth ?? 0, ...lines.map(line => visibleWidth(line)), 1);
74
73
  const inner = contentWidth + padding * 2;
75
74
  const padLine = (line) => {
76
75
  const extra = contentWidth - visibleWidth(line);
@@ -50,7 +50,7 @@ export const SCM_CONTINUATION_FIXTURES = [
50
50
  event_type: "merge_request",
51
51
  user: { id: 7, username: "alice", name: "Alice" },
52
52
  project: GITLAB_PROJECT,
53
- object_attributes: Object.assign(Object.assign({}, GITLAB_MERGE_REQUEST), { action: "open" }),
53
+ object_attributes: { ...GITLAB_MERGE_REQUEST, action: "open" },
54
54
  },
55
55
  expectedKey: "cont:gitlab-mr:acme/platform/api!42",
56
56
  },
@@ -64,7 +64,11 @@ export const SCM_CONTINUATION_FIXTURES = [
64
64
  event_type: "merge_request",
65
65
  user: { id: 7, username: "alice", name: "Alice" },
66
66
  project: GITLAB_PROJECT,
67
- object_attributes: Object.assign(Object.assign({}, GITLAB_MERGE_REQUEST), { action: "update", oldrev: "fedcba9876543210fedcba9876543210fedcba98" }),
67
+ object_attributes: {
68
+ ...GITLAB_MERGE_REQUEST,
69
+ action: "update",
70
+ oldrev: "fedcba9876543210fedcba9876543210fedcba98",
71
+ },
68
72
  },
69
73
  expectedKey: "cont:gitlab-mr:acme/platform/api!42",
70
74
  },
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Slack continuation fixtures for the deliveries that are not messages —
3
+ * reactions and Block Kit clicks — shared by the two continuation
4
+ * vocabulary copies: `internal/continuation-identity.ts` (July) and the
5
+ * control plane's `agentSdkConversationIdentity.ts` (server-shared). The
6
+ * hosted control plane stamps the lane from these payloads and the guest
7
+ * derives the same key from its parsers, so a shape only one copy
8
+ * understands fails CI on the other side.
9
+ *
10
+ * Pure data: no imports, so the server-shared suite can load it by relative
11
+ * path without pulling `@cursor/bdk` into the control plane.
12
+ */
13
+ export interface SlackContinuationFixture {
14
+ name: string;
15
+ /** Mailbox event name the control plane fans out on. */
16
+ eventType: "reaction_added" | "block_actions";
17
+ /**
18
+ * What the control plane claim-checks: the full `event_callback` body for
19
+ * a reaction, the interactivity `payload` JSON for a click.
20
+ */
21
+ payload: Record<string, unknown>;
22
+ /** `cont:` key, or `undefined` when the delivery stamps `evt:`. */
23
+ expectedKey: string | undefined;
24
+ }
25
+ export declare const SLACK_CONTINUATION_FIXTURES: readonly SlackContinuationFixture[];
26
+ //# sourceMappingURL=slack-continuation-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-continuation-fixtures.d.ts","sourceRoot":"","sources":["../../../src/internal/testing/slack-continuation-fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,SAAS,EAAE,gBAAgB,GAAG,eAAe,CAAC;IAC9C;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,mEAAmE;IACnE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAgDD,eAAO,MAAM,2BAA2B,EAAE,SAAS,wBAAwB,EAoF1E,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Slack continuation fixtures for the deliveries that are not messages —
3
+ * reactions and Block Kit clicks — shared by the two continuation
4
+ * vocabulary copies: `internal/continuation-identity.ts` (July) and the
5
+ * control plane's `agentSdkConversationIdentity.ts` (server-shared). The
6
+ * hosted control plane stamps the lane from these payloads and the guest
7
+ * derives the same key from its parsers, so a shape only one copy
8
+ * understands fails CI on the other side.
9
+ *
10
+ * Pure data: no imports, so the server-shared suite can load it by relative
11
+ * path without pulling `@cursor/bdk` into the control plane.
12
+ */
13
+ function reactionAddedBody(item) {
14
+ return {
15
+ type: "event_callback",
16
+ team_id: "T0FIXTURE",
17
+ api_app_id: "A0FIXTURE",
18
+ event_id: "Ev0REACTION",
19
+ authorizations: [{ team_id: "T0FIXTURE", user_id: "U0BOT", is_bot: true }],
20
+ event: {
21
+ type: "reaction_added",
22
+ user: "U0REACTOR",
23
+ reaction: "white_check_mark",
24
+ item_user: "U0AUTHOR",
25
+ item,
26
+ event_ts: "1719000100.000300",
27
+ },
28
+ };
29
+ }
30
+ function blockActionsPayload(args) {
31
+ return {
32
+ type: "block_actions",
33
+ api_app_id: "A0FIXTURE",
34
+ trigger_id: "1111.2222.fixturetrigger",
35
+ team: { id: "T0FIXTURE", domain: "fixture" },
36
+ user: { id: "U0CLICKER", username: "clicker", team_id: "T0FIXTURE" },
37
+ container: args.container,
38
+ channel: args.channelId === undefined ? undefined : { id: args.channelId, name: "fixture-channel" },
39
+ message: args.message,
40
+ actions: [
41
+ {
42
+ type: "button",
43
+ action_id: "deploy_confirm",
44
+ block_id: "deploy_row",
45
+ text: { type: "plain_text", text: "Deploy" },
46
+ value: "deploy",
47
+ action_ts: "1719000300.000500",
48
+ },
49
+ ],
50
+ };
51
+ }
52
+ export const SLACK_CONTINUATION_FIXTURES = [
53
+ {
54
+ name: "a reaction roots the lane at the reacted-to message",
55
+ eventType: "reaction_added",
56
+ payload: reactionAddedBody({
57
+ type: "message",
58
+ channel: "C0FIXTURE",
59
+ ts: "1719000000.000200",
60
+ }),
61
+ expectedKey: "cont:C0FIXTURE:1719000000.000200",
62
+ },
63
+ {
64
+ name: "a reaction in a DM keys the IM",
65
+ eventType: "reaction_added",
66
+ payload: reactionAddedBody({
67
+ type: "message",
68
+ channel: "D0FIXTURE",
69
+ ts: "1719000000.000200",
70
+ }),
71
+ expectedKey: "cont:D0FIXTURE",
72
+ },
73
+ {
74
+ name: "a reaction on a file binds no thread",
75
+ eventType: "reaction_added",
76
+ payload: reactionAddedBody({ type: "file", file: "F0FIXTURE" }),
77
+ expectedKey: undefined,
78
+ },
79
+ {
80
+ name: "a click on a threaded reply continues the parent thread",
81
+ eventType: "block_actions",
82
+ payload: blockActionsPayload({
83
+ channelId: "C0FIXTURE",
84
+ message: {
85
+ type: "message",
86
+ user: "U0BOT",
87
+ ts: "1719000200.000400",
88
+ thread_ts: "1719000000.000200",
89
+ text: "Deploy?",
90
+ },
91
+ container: {
92
+ type: "message",
93
+ channel_id: "C0FIXTURE",
94
+ message_ts: "1719000200.000400",
95
+ thread_ts: "1719000000.000200",
96
+ },
97
+ }),
98
+ expectedKey: "cont:C0FIXTURE:1719000000.000200",
99
+ },
100
+ {
101
+ name: "a click on a top-level post roots the lane at that post",
102
+ eventType: "block_actions",
103
+ payload: blockActionsPayload({
104
+ channelId: "C0FIXTURE",
105
+ message: { type: "message", user: "U0BOT", ts: "1719000200.000400", text: "Deploy?" },
106
+ container: {
107
+ type: "message",
108
+ channel_id: "C0FIXTURE",
109
+ message_ts: "1719000200.000400",
110
+ },
111
+ }),
112
+ expectedKey: "cont:C0FIXTURE:1719000200.000400",
113
+ },
114
+ {
115
+ name: "a click in a DM keys the IM",
116
+ eventType: "block_actions",
117
+ payload: blockActionsPayload({
118
+ channelId: "D0FIXTURE",
119
+ message: { type: "message", user: "U0BOT", ts: "1719000200.000400", text: "Deploy?" },
120
+ container: {
121
+ type: "message",
122
+ channel_id: "D0FIXTURE",
123
+ message_ts: "1719000200.000400",
124
+ },
125
+ }),
126
+ expectedKey: "cont:D0FIXTURE",
127
+ },
128
+ {
129
+ name: "a click inside a modal binds no thread",
130
+ eventType: "block_actions",
131
+ payload: blockActionsPayload({
132
+ container: { type: "view", view_id: "V0FIXTURE" },
133
+ }),
134
+ expectedKey: undefined,
135
+ },
136
+ ];
@@ -27,9 +27,8 @@ const WELL_KNOWN_TOOL_TITLES = {
27
27
  search: "Search with a typed query",
28
28
  };
29
29
  function catalogTitle(tool) {
30
- var _a;
31
30
  if (tool.advertised === true) {
32
- return (_a = tool.annotations) === null || _a === void 0 ? void 0 : _a.title;
31
+ return tool.annotations?.title;
33
32
  }
34
33
  return WELL_KNOWN_TOOL_TITLES[tool.name];
35
34
  }
@@ -47,12 +46,11 @@ const CONNECTOR_SCOPE_PREFIX = /^(?:dashboard-team-\d+-|dashboard-|user-)/;
47
46
  * and "plugins" tells an operator nothing — "Buildkite" does.
48
47
  */
49
48
  function catalogSource(tool) {
50
- var _a, _b;
51
49
  if (tool.advertised !== true) {
52
50
  return undefined;
53
51
  }
54
52
  const properties = tool.inputSchema.properties;
55
- const first = (_b = (_a = properties === null || properties === void 0 ? void 0 : properties.__conn__) === null || _a === void 0 ? void 0 : _a.enum) === null || _b === void 0 ? void 0 : _b[0];
53
+ const first = properties?.__conn__?.enum?.[0];
56
54
  if (typeof first === "string" && first !== "") {
57
55
  return first.replace(CONNECTOR_SCOPE_PREFIX, "");
58
56
  }
@@ -66,5 +64,13 @@ export function catalogListEntry(tool) {
66
64
  };
67
65
  }
68
66
  export function catalogDetailEntry(tool) {
69
- return Object.assign(Object.assign({}, catalogListEntry(tool)), { description: tool.description, execution: tool.execution, needsApproval: tool.needsApproval, effect: tool.effect, inputSchema: tool.inputSchema, outputSchema: tool.outputSchema });
67
+ return {
68
+ ...catalogListEntry(tool),
69
+ description: tool.description,
70
+ execution: tool.execution,
71
+ needsApproval: tool.needsApproval,
72
+ effect: tool.effect,
73
+ inputSchema: tool.inputSchema,
74
+ outputSchema: tool.outputSchema,
75
+ };
70
76
  }
@@ -18,7 +18,7 @@ export function normalizeToolResult(result) {
18
18
  try {
19
19
  return JSON.parse(JSON.stringify(result));
20
20
  }
21
- catch (_a) {
21
+ catch {
22
22
  return result;
23
23
  }
24
24
  }
@@ -5,22 +5,12 @@
5
5
  * messages, assistant text, tool calls with args/results, and
6
6
  * success/failure — not a firehose of streaming deltas.
7
7
  */
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  import { readFile } from "node:fs/promises";
18
9
  /**
19
10
  * Collapse a session event list into a trajectory. Streaming deltas are
20
11
  * folded into final assistant / reasoning text per turn.
21
12
  */
22
13
  export function buildTrajectory(events) {
23
- var _a, _b;
24
14
  let sessionId = "";
25
15
  let sdkAgentId;
26
16
  let agentUrl;
@@ -90,7 +80,7 @@ export function buildTrajectory(events) {
90
80
  }
91
81
  const turn = ensureTurn(event.turnId);
92
82
  for (const call of event.data.calls) {
93
- const parentCallId = (_a = call.parentCallId) !== null && _a !== void 0 ? _a : event.data.parentCallId;
83
+ const parentCallId = call.parentCallId ?? event.data.parentCallId;
94
84
  // Keep bare top-level `task` in toolCalls so evals like
95
85
  // `calledTool("task")` / `notCalledTool("task")` keep working.
96
86
  // Nested progress also appears under `subagents`.
@@ -236,9 +226,19 @@ export function buildTrajectory(events) {
236
226
  const costedTurns = turns.filter(t => t.cost !== undefined);
237
227
  const totalCostUsd = costedTurns.length === 0
238
228
  ? undefined
239
- : roundCostUsd(costedTurns.reduce((sum, t) => { var _a; var _b; return sum + ((_b = (_a = t.cost) === null || _a === void 0 ? void 0 : _a.totalUsd) !== null && _b !== void 0 ? _b : 0); }, 0));
240
- return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ sessionId }, (sdkAgentId === undefined ? {} : { sdkAgentId })), (agentUrl === undefined ? {} : { agentUrl })), (channelId === undefined ? {} : { channelId })), { ok: turnsFailed === 0 && turns.length > 0, finalText: (_b = lastGood === null || lastGood === void 0 ? void 0 : lastGood.assistantText) !== null && _b !== void 0 ? _b : "", turnsFailed,
241
- toolCallCount }), (totalCostUsd === undefined ? {} : { totalCostUsd })), { turns });
229
+ : roundCostUsd(costedTurns.reduce((sum, t) => sum + (t.cost?.totalUsd ?? 0), 0));
230
+ return {
231
+ sessionId,
232
+ ...(sdkAgentId === undefined ? {} : { sdkAgentId }),
233
+ ...(agentUrl === undefined ? {} : { agentUrl }),
234
+ ...(channelId === undefined ? {} : { channelId }),
235
+ ok: turnsFailed === 0 && turns.length > 0,
236
+ finalText: lastGood?.assistantText ?? "",
237
+ turnsFailed,
238
+ toolCallCount,
239
+ ...(totalCostUsd === undefined ? {} : { totalCostUsd }),
240
+ turns,
241
+ };
242
242
  }
243
243
  /** Micro-dollar precision so summed floats stay readable in JSON. */
244
244
  export function roundCostUsd(usd) {
@@ -268,22 +268,19 @@ export function parseEventsNdjson(text) {
268
268
  try {
269
269
  events.push(JSON.parse(trimmed));
270
270
  }
271
- catch (_a) {
271
+ catch {
272
272
  // skip malformed lines
273
273
  }
274
274
  }
275
275
  return events;
276
276
  }
277
277
  /** Load and summarize a durable session event log. */
278
- export function loadTrajectoryFromEventsFile(path) {
279
- return __awaiter(this, void 0, void 0, function* () {
280
- const text = yield readFile(path, "utf8");
281
- return buildTrajectory(parseEventsNdjson(text));
282
- });
278
+ export async function loadTrajectoryFromEventsFile(path) {
279
+ const text = await readFile(path, "utf8");
280
+ return buildTrajectory(parseEventsNdjson(text));
283
281
  }
284
282
  /** Human-readable one-line-per-turn dump (for non-JSON CLI output). */
285
283
  export function formatTrajectoryText(trajectory) {
286
- var _a;
287
284
  const lines = [];
288
285
  lines.push(`session ${trajectory.sessionId || "(unknown)"} ok=${trajectory.ok}`);
289
286
  if (trajectory.sdkAgentId !== undefined) {
@@ -309,7 +306,7 @@ export function formatTrajectoryText(trajectory) {
309
306
  }
310
307
  }
311
308
  for (const sub of turn.subagents) {
312
- const label = (_a = sub.name) !== null && _a !== void 0 ? _a : "subagent";
309
+ const label = sub.name ?? "subagent";
313
310
  const detail = sub.description !== undefined ? ` — ${truncate(sub.description, 80)}` : "";
314
311
  lines.push(` task ${label}${detail}`);
315
312
  for (const call of sub.toolCalls) {
@@ -3,15 +3,6 @@
3
3
  * `POST /v1/models/estimate-cost` endpoint (billed usage events when an
4
4
  * agent/conversation id is known, otherwise live catalog pricing).
5
5
  */
6
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
- return new (P || (P = Promise))(function (resolve, reject) {
9
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
- step((generator = generator.apply(thisArg, _arguments || [])).next());
13
- });
14
- };
15
6
  import { cursorExternalApiUrl, resolveApiKey } from "./cursor/credentials.js";
16
7
  export function modelSettingId(model) {
17
8
  return typeof model === "string" ? model : model.id;
@@ -40,7 +31,10 @@ export function toCatalogDisjointUsage(usage, model) {
40
31
  if (cachedTokens === 0 || usage.inputTokens < cachedTokens) {
41
32
  return usage;
42
33
  }
43
- return Object.assign(Object.assign({}, usage), { inputTokens: usage.inputTokens - cachedTokens });
34
+ return {
35
+ ...usage,
36
+ inputTokens: usage.inputTokens - cachedTokens,
37
+ };
44
38
  }
45
39
  export function roundCostUsd(usd) {
46
40
  return Math.round(usd * 1e6) / 1e6;
@@ -65,58 +59,54 @@ export function turnCostFromCents(args) {
65
59
  * is the last thing in front of that event, so an unbounded wait here queues
66
60
  * the next message behind the endpoint's billed-usage lookup.
67
61
  */
68
- const ESTIMATE_COST_TIMEOUT_MS = 5000;
69
- export function estimateTurnCostFromApi(input) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- var _a;
72
- var _b;
73
- const resolved = yield resolveApiKey();
74
- if (resolved === undefined) {
75
- return undefined;
76
- }
77
- const model = modelSettingId(input.model);
78
- const catalogUsage = input.usage === undefined ? undefined : toCatalogDisjointUsage(input.usage, input.model);
79
- let response;
80
- try {
81
- response = yield fetch(`${cursorExternalApiUrl()}/v1/models/estimate-cost`, {
82
- method: "POST",
83
- headers: {
84
- authorization: `Bearer ${resolved.apiKey}`,
85
- "content-type": "application/json",
86
- },
87
- body: JSON.stringify({
88
- model,
89
- inputTokens: catalogUsage === null || catalogUsage === void 0 ? void 0 : catalogUsage.inputTokens,
90
- outputTokens: catalogUsage === null || catalogUsage === void 0 ? void 0 : catalogUsage.outputTokens,
91
- cacheReadTokens: catalogUsage === null || catalogUsage === void 0 ? void 0 : catalogUsage.cacheReadTokens,
92
- cacheWriteTokens: catalogUsage === null || catalogUsage === void 0 ? void 0 : catalogUsage.cacheWriteTokens,
93
- agentId: input.agentId,
94
- conversationId: input.conversationId,
95
- runId: input.runId,
96
- }),
97
- signal: AbortSignal.timeout(ESTIMATE_COST_TIMEOUT_MS),
98
- });
99
- }
100
- catch (_c) {
101
- return undefined;
102
- }
103
- if (!response.ok) {
104
- return undefined;
105
- }
106
- let body;
107
- try {
108
- body = (yield response.json());
109
- }
110
- catch (_d) {
111
- return undefined;
112
- }
113
- if (typeof ((_a = body.cost) === null || _a === void 0 ? void 0 : _a.rawCostCents) !== "number" || typeof body.cost.chargedCents !== "number") {
114
- return undefined;
115
- }
116
- return turnCostFromCents({
117
- model: (_b = body.model) !== null && _b !== void 0 ? _b : model,
118
- cost: body.cost,
119
- source: body.source === "usage" ? "usage" : "catalog",
62
+ const ESTIMATE_COST_TIMEOUT_MS = 5_000;
63
+ export async function estimateTurnCostFromApi(input) {
64
+ const resolved = await resolveApiKey();
65
+ if (resolved === undefined) {
66
+ return undefined;
67
+ }
68
+ const model = modelSettingId(input.model);
69
+ const catalogUsage = input.usage === undefined ? undefined : toCatalogDisjointUsage(input.usage, input.model);
70
+ let response;
71
+ try {
72
+ response = await fetch(`${cursorExternalApiUrl()}/v1/models/estimate-cost`, {
73
+ method: "POST",
74
+ headers: {
75
+ authorization: `Bearer ${resolved.apiKey}`,
76
+ "content-type": "application/json",
77
+ },
78
+ body: JSON.stringify({
79
+ model,
80
+ inputTokens: catalogUsage?.inputTokens,
81
+ outputTokens: catalogUsage?.outputTokens,
82
+ cacheReadTokens: catalogUsage?.cacheReadTokens,
83
+ cacheWriteTokens: catalogUsage?.cacheWriteTokens,
84
+ agentId: input.agentId,
85
+ conversationId: input.conversationId,
86
+ runId: input.runId,
87
+ }),
88
+ signal: AbortSignal.timeout(ESTIMATE_COST_TIMEOUT_MS),
120
89
  });
90
+ }
91
+ catch {
92
+ return undefined;
93
+ }
94
+ if (!response.ok) {
95
+ return undefined;
96
+ }
97
+ let body;
98
+ try {
99
+ body = (await response.json());
100
+ }
101
+ catch {
102
+ return undefined;
103
+ }
104
+ if (typeof body.cost?.rawCostCents !== "number" || typeof body.cost.chargedCents !== "number") {
105
+ return undefined;
106
+ }
107
+ return turnCostFromCents({
108
+ model: body.model ?? model,
109
+ cost: body.cost,
110
+ source: body.source === "usage" ? "usage" : "catalog",
121
111
  });
122
112
  }
@@ -15,7 +15,7 @@ export class TurnGovernor {
15
15
  this.waiters = [];
16
16
  /** Sessions currently waiting for a slot (at most one turn per session). */
17
17
  this.queuedSessions = new Set();
18
- this.maxRunningTurns = concurrency === null || concurrency === void 0 ? void 0 : concurrency.maxRunningTurns;
18
+ this.maxRunningTurns = concurrency?.maxRunningTurns;
19
19
  }
20
20
  /** True when a `maxRunningTurns` ceiling is configured. */
21
21
  get limited() {
@@ -40,7 +40,6 @@ export class TurnGovernor {
40
40
  * running. Unlimited governors grant immediately.
41
41
  */
42
42
  acquire(args) {
43
- var _a;
44
43
  const limit = this.maxRunningTurns;
45
44
  if (limit === undefined) {
46
45
  return Promise.resolve(NO_OP_PERMIT);
@@ -49,19 +48,17 @@ export class TurnGovernor {
49
48
  return Promise.resolve(this.grantSlot());
50
49
  }
51
50
  // Saturated. A turn that is already preempted never enqueues.
52
- if (((_a = args.signal) === null || _a === void 0 ? void 0 : _a.aborted) === true) {
51
+ if (args.signal?.aborted === true) {
53
52
  return Promise.resolve(undefined);
54
53
  }
55
54
  return new Promise(resolve => {
56
- var _a, _b;
57
55
  const waiter = {
58
56
  sessionId: args.sessionId,
59
57
  grant: permit => resolve(permit),
60
58
  cancel: () => resolve(undefined),
61
59
  cleanup: () => {
62
- var _a;
63
60
  this.queuedSessions.delete(args.sessionId);
64
- (_a = args.signal) === null || _a === void 0 ? void 0 : _a.removeEventListener("abort", onAbort);
61
+ args.signal?.removeEventListener("abort", onAbort);
65
62
  },
66
63
  };
67
64
  const onAbort = () => {
@@ -75,8 +72,8 @@ export class TurnGovernor {
75
72
  };
76
73
  this.waiters.push(waiter);
77
74
  this.queuedSessions.add(args.sessionId);
78
- (_a = args.signal) === null || _a === void 0 ? void 0 : _a.addEventListener("abort", onAbort, { once: true });
79
- (_b = args.onQueued) === null || _b === void 0 ? void 0 : _b.call(args, this.waiters.length);
75
+ args.signal?.addEventListener("abort", onAbort, { once: true });
76
+ args.onQueued?.(this.waiters.length);
80
77
  });
81
78
  }
82
79
  /** Take a slot and build its (idempotent) release handle. */