@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
@@ -20,15 +20,6 @@
20
20
  * `agent-serve` allowlist grants team-namespace read/write, so there is no
21
21
  * app-installation token exchange for managed deployments.
22
22
  */
23
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
24
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
25
- return new (P || (P = Promise))(function (resolve, reject) {
26
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
27
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
28
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
29
- step((generator = generator.apply(thisArg, _arguments || [])).next());
30
- });
31
- };
32
23
  import { Buffer } from "node:buffer";
33
24
  import { createPrivateKey, sign } from "node:crypto";
34
25
  import { cursorBackendUrl, resolveApiKeySync } from "../../internal/cursor/credentials.js";
@@ -52,7 +43,7 @@ const ORIGIN_APP_TOKEN_AUDIENCE = "origin-apps";
52
43
  const APP_JWT_TTL_SECONDS = 5 * 60;
53
44
  /** Re-mint the `oit_` token after this long; tokens outlive it comfortably. */
54
45
  const TOKEN_REUSE_MS = 4 * 60 * 1000;
55
- const TOKEN_EXCHANGE_TIMEOUT_MS = 30000;
46
+ const TOKEN_EXCHANGE_TIMEOUT_MS = 30_000;
56
47
  /** Normalized Origin REST failure — the `GitHubApiError` analogue. */
57
48
  export class OriginApiError extends Error {
58
49
  constructor(input) {
@@ -66,18 +57,17 @@ export class OriginApiError extends Error {
66
57
  }
67
58
  /** Vault/env round-trip: literal `\n` sequences appear in practice. */
68
59
  function normalizePrivateKeyPem(raw) {
69
- const pem = raw === null || raw === void 0 ? void 0 : raw.trim().replace(/\\n/g, "\n");
60
+ const pem = raw?.trim().replace(/\\n/g, "\n");
70
61
  return pem === undefined || pem === "" ? undefined : pem;
71
62
  }
72
63
  function envValue(value) {
73
- const trimmed = value === null || value === void 0 ? void 0 : value.trim();
64
+ const trimmed = value?.trim();
74
65
  return trimmed === undefined || trimmed === "" ? undefined : trimmed;
75
66
  }
76
67
  /** Each Origin app credential field found in the environment, when set. */
77
68
  export function resolveOriginAppCredentialParts(env = process.env) {
78
- var _a;
79
69
  return {
80
- appId: (_a = envValue(env.ORIGIN_APP_ID)) !== null && _a !== void 0 ? _a : envValue(env.AGENT_SERVE_ORIGIN_APP_ID),
70
+ appId: envValue(env.ORIGIN_APP_ID) ?? envValue(env.AGENT_SERVE_ORIGIN_APP_ID),
81
71
  installationId: envValue(env.ORIGIN_APP_INSTALLATION_ID),
82
72
  privateKey: normalizePrivateKeyPem(env.ORIGIN_APP_PRIVATE_KEY),
83
73
  };
@@ -96,15 +86,13 @@ export function resolveOriginAppCredentials(env = process.env) {
96
86
  }
97
87
  /** Public Origin REST base. Trailing slashes are stripped for path joins. */
98
88
  export function originPublicApiBaseUrl(env = process.env) {
99
- var _a;
100
- const fromEnv = (_a = envValue(env.ORIGIN_API_BASE_URL)) === null || _a === void 0 ? void 0 : _a.replace(/\/+$/, "");
101
- return fromEnv !== null && fromEnv !== void 0 ? fromEnv : DEFAULT_ORIGIN_PUBLIC_API_BASE_URL;
89
+ const fromEnv = envValue(env.ORIGIN_API_BASE_URL)?.replace(/\/+$/, "");
90
+ return fromEnv ?? DEFAULT_ORIGIN_PUBLIC_API_BASE_URL;
102
91
  }
103
92
  /** Origin ConnectRPC base. Trailing slashes are stripped for path joins. */
104
93
  export function originRpcBaseUrl(env = process.env) {
105
- var _a;
106
- const fromEnv = (_a = envValue(env.ORIGIN_RPC_BASE_URL)) === null || _a === void 0 ? void 0 : _a.replace(/\/+$/, "");
107
- return fromEnv !== null && fromEnv !== void 0 ? fromEnv : DEFAULT_ORIGIN_RPC_BASE_URL;
94
+ const fromEnv = envValue(env.ORIGIN_RPC_BASE_URL)?.replace(/\/+$/, "");
95
+ return fromEnv ?? DEFAULT_ORIGIN_RPC_BASE_URL;
108
96
  }
109
97
  function base64UrlJson(value) {
110
98
  return Buffer.from(JSON.stringify(value)).toString("base64url");
@@ -127,30 +115,28 @@ function mintOriginAppJwt(credentials, nowMs) {
127
115
  const signature = sign(null, Buffer.from(signingInput), key).toString("base64url");
128
116
  return `${signingInput}.${signature}`;
129
117
  }
130
- function mintOriginInstallationToken(input) {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- const jwt = mintOriginAppJwt(input.credentials, input.nowMs);
133
- const path = `/v1/origin/app/installations/${encodeURIComponent(input.credentials.installationId)}/access_tokens`;
134
- const response = yield input.fetchImpl(`${input.apiBaseUrl}${path}`, {
118
+ async function mintOriginInstallationToken(input) {
119
+ const jwt = mintOriginAppJwt(input.credentials, input.nowMs);
120
+ const path = `/v1/origin/app/installations/${encodeURIComponent(input.credentials.installationId)}/access_tokens`;
121
+ const response = await input.fetchImpl(`${input.apiBaseUrl}${path}`, {
122
+ method: "POST",
123
+ headers: { authorization: `Bearer ${jwt}` },
124
+ signal: AbortSignal.timeout(TOKEN_EXCHANGE_TIMEOUT_MS),
125
+ });
126
+ const body = await response.json().catch(() => undefined);
127
+ const token = typeof body === "object" && body !== null && !Array.isArray(body)
128
+ ? body.token
129
+ : undefined;
130
+ if (!response.ok || typeof token !== "string" || token === "") {
131
+ // Never echo the body: on success it contains the installation token.
132
+ throw new OriginApiError({
133
+ body: undefined,
135
134
  method: "POST",
136
- headers: { authorization: `Bearer ${jwt}` },
137
- signal: AbortSignal.timeout(TOKEN_EXCHANGE_TIMEOUT_MS),
135
+ path,
136
+ status: response.status,
138
137
  });
139
- const body = yield response.json().catch(() => undefined);
140
- const token = typeof body === "object" && body !== null && !Array.isArray(body)
141
- ? body.token
142
- : undefined;
143
- if (!response.ok || typeof token !== "string" || token === "") {
144
- // Never echo the body: on success it contains the installation token.
145
- throw new OriginApiError({
146
- body: undefined,
147
- method: "POST",
148
- path,
149
- status: response.status,
150
- });
151
- }
152
- return token;
153
- });
138
+ }
139
+ return token;
154
140
  }
155
141
  /**
156
142
  * Exchange endpoint for Cursor-account session tokens. Override with
@@ -193,17 +179,16 @@ export function _clearCursorSessionTokenCacheForTesting() {
193
179
  cursorSessionTokenInFlight.clear();
194
180
  }
195
181
  export function cursorSessionTokenProvider(input) {
196
- var _a, _b, _c;
197
- const getApiKey = (_a = input === null || input === void 0 ? void 0 : input.getApiKey) !== null && _a !== void 0 ? _a : (() => { var _a; return (_a = resolveApiKeySync()) === null || _a === void 0 ? void 0 : _a.apiKey; });
198
- const fetchImpl = (_b = input === null || input === void 0 ? void 0 : input.fetch) !== null && _b !== void 0 ? _b : fetch;
199
- const now = (_c = input === null || input === void 0 ? void 0 : input.now) !== null && _c !== void 0 ? _c : Date.now;
182
+ const getApiKey = input?.getApiKey ?? (() => resolveApiKeySync()?.apiKey);
183
+ const fetchImpl = input?.fetch ?? fetch;
184
+ const now = input?.now ?? Date.now;
200
185
  const cacheKey = (url, apiKey) => `${url}\u0000${apiKey}`;
201
- const resolveUrl = () => { var _a; return (_a = input === null || input === void 0 ? void 0 : input.exchangeUrl) !== null && _a !== void 0 ? _a : resolveCursorSessionExchangeUrl(); };
202
- const mint = (url, apiKey) => __awaiter(this, void 0, void 0, function* () {
186
+ const resolveUrl = () => input?.exchangeUrl ?? resolveCursorSessionExchangeUrl();
187
+ const mint = async (url, apiKey) => {
203
188
  const nowMs = now();
204
189
  let session;
205
190
  try {
206
- session = yield exchangeCursorApiKeyForSession({
191
+ session = await exchangeCursorApiKeyForSession({
207
192
  exchangeUrl: url,
208
193
  apiKey,
209
194
  fetchImpl,
@@ -213,14 +198,14 @@ export function cursorSessionTokenProvider(input) {
213
198
  catch (error) {
214
199
  throw new Error(`originClient: ${error instanceof Error ? error.message : String(error)} Check CURSOR_API_KEY / CURSOR_API_KEY_FILE, or pass an explicit token.`);
215
200
  }
216
- const renewAtMs = Math.max(nowMs + 1000, session.expiresAtMs - SESSION_TOKEN_EXPIRY_LEEWAY_MS);
201
+ const renewAtMs = Math.max(nowMs + 1_000, session.expiresAtMs - SESSION_TOKEN_EXPIRY_LEEWAY_MS);
217
202
  cursorSessionTokenCache.set(cacheKey(url, apiKey), {
218
203
  token: session.token,
219
204
  renewAtMs,
220
205
  });
221
206
  return session.token;
222
- });
223
- const provider = () => __awaiter(this, void 0, void 0, function* () {
207
+ };
208
+ const provider = async () => {
224
209
  const apiKey = getApiKey();
225
210
  if (apiKey === undefined || apiKey === "") {
226
211
  throw new Error("originClient: no Cursor credential available for the session exchange (set CURSOR_API_KEY or CURSOR_API_KEY_FILE).");
@@ -234,24 +219,23 @@ export function cursorSessionTokenProvider(input) {
234
219
  // Dedupe concurrent first calls: one exchange per (endpoint, key).
235
220
  const inFlight = cursorSessionTokenInFlight.get(key);
236
221
  if (inFlight !== undefined) {
237
- return yield inFlight;
222
+ return await inFlight;
238
223
  }
239
224
  const pending = mint(url, apiKey).finally(() => {
240
225
  cursorSessionTokenInFlight.delete(key);
241
226
  });
242
227
  cursorSessionTokenInFlight.set(key, pending);
243
- return yield pending;
244
- });
228
+ return await pending;
229
+ };
245
230
  // Origin answered 401 for this bearer: drop it (unless a newer session
246
231
  // already replaced it) so the next call re-exchanges immediately.
247
232
  const invalidate = (token) => {
248
- var _a;
249
233
  const apiKey = getApiKey();
250
234
  if (apiKey === undefined || apiKey === "") {
251
235
  return;
252
236
  }
253
237
  const key = cacheKey(resolveUrl(), apiKey);
254
- if (((_a = cursorSessionTokenCache.get(key)) === null || _a === void 0 ? void 0 : _a.token) === token) {
238
+ if (cursorSessionTokenCache.get(key)?.token === token) {
255
239
  cursorSessionTokenCache.delete(key);
256
240
  }
257
241
  };
@@ -263,17 +247,16 @@ export function cursorSessionTokenProvider(input) {
263
247
  * re-mints.
264
248
  */
265
249
  export function originAppTokenProvider(input) {
266
- var _a, _b, _c;
267
- const apiBaseUrl = (_a = input.apiBaseUrl) !== null && _a !== void 0 ? _a : originPublicApiBaseUrl();
268
- const fetchImpl = (_b = input.fetch) !== null && _b !== void 0 ? _b : fetch;
269
- const now = (_c = input.now) !== null && _c !== void 0 ? _c : Date.now;
250
+ const apiBaseUrl = input.apiBaseUrl ?? originPublicApiBaseUrl();
251
+ const fetchImpl = input.fetch ?? fetch;
252
+ const now = input.now ?? Date.now;
270
253
  let cached;
271
- return () => __awaiter(this, void 0, void 0, function* () {
254
+ return async () => {
272
255
  const nowMs = now();
273
256
  if (cached !== undefined && nowMs - cached.mintedAtMs < TOKEN_REUSE_MS) {
274
257
  return cached.token;
275
258
  }
276
- const token = yield mintOriginInstallationToken({
259
+ const token = await mintOriginInstallationToken({
277
260
  credentials: input.credentials,
278
261
  apiBaseUrl,
279
262
  fetchImpl,
@@ -281,7 +264,7 @@ export function originAppTokenProvider(input) {
281
264
  });
282
265
  cached = { token, mintedAtMs: nowMs };
283
266
  return token;
284
- });
267
+ };
285
268
  }
286
269
  /**
287
270
  * Build an authenticated Origin REST client. Auth resolution: explicit
@@ -292,29 +275,27 @@ export function originAppTokenProvider(input) {
292
275
  * request with a clear message.
293
276
  */
294
277
  export function createOriginClient(options = {}) {
295
- var _a, _b;
296
- const apiBaseUrl = ((_a = options.apiBaseUrl) !== null && _a !== void 0 ? _a : originPublicApiBaseUrl()).replace(/\/+$/, "");
297
- const fetchImpl = (_b = options.fetch) !== null && _b !== void 0 ? _b : fetch;
278
+ const apiBaseUrl = (options.apiBaseUrl ?? originPublicApiBaseUrl()).replace(/\/+$/, "");
279
+ const fetchImpl = options.fetch ?? fetch;
298
280
  let tokenProvider;
299
281
  // Set when the session-exchange fallback is engaged: a 401 from Origin
300
282
  // invalidates the cached session and retries once with a fresh one, the
301
283
  // `CursorBackendClient` re-exchange behavior.
302
284
  let sessionProvider;
303
- const getToken = () => __awaiter(this, void 0, void 0, function* () {
304
- var _a, _b, _c, _d;
285
+ const getToken = async () => {
305
286
  if (typeof options.token === "string") {
306
287
  return options.token;
307
288
  }
308
289
  if (typeof options.token === "function") {
309
- return yield options.token();
290
+ return await options.token();
310
291
  }
311
292
  if (tokenProvider === undefined) {
312
293
  const credentials = options.credentials === false
313
294
  ? undefined
314
- : ((_a = options.credentials) !== null && _a !== void 0 ? _a : resolveOriginAppCredentials());
315
- const exchange = (_b = options.cursorAccountExchange) !== null && _b !== void 0 ? _b : true;
295
+ : (options.credentials ?? resolveOriginAppCredentials());
296
+ const exchange = options.cursorAccountExchange ?? true;
316
297
  const exchangeOptions = exchange === false ? undefined : exchange === true ? {} : exchange;
317
- const getExchangeApiKey = (_c = exchangeOptions === null || exchangeOptions === void 0 ? void 0 : exchangeOptions.getApiKey) !== null && _c !== void 0 ? _c : (() => { var _a; return (_a = resolveApiKeySync()) === null || _a === void 0 ? void 0 : _a.apiKey; });
298
+ const getExchangeApiKey = exchangeOptions?.getApiKey ?? (() => resolveApiKeySync()?.apiKey);
318
299
  if (credentials !== undefined) {
319
300
  tokenProvider = originAppTokenProvider({
320
301
  credentials,
@@ -322,58 +303,61 @@ export function createOriginClient(options = {}) {
322
303
  fetch: fetchImpl,
323
304
  });
324
305
  }
325
- else if (exchangeOptions !== undefined && ((_d = getExchangeApiKey()) !== null && _d !== void 0 ? _d : "") !== "") {
326
- sessionProvider = cursorSessionTokenProvider(Object.assign({ fetch: fetchImpl, getApiKey: getExchangeApiKey }, (exchangeOptions.exchangeUrl === undefined
327
- ? {}
328
- : { exchangeUrl: exchangeOptions.exchangeUrl })));
306
+ else if (exchangeOptions !== undefined && (getExchangeApiKey() ?? "") !== "") {
307
+ sessionProvider = cursorSessionTokenProvider({
308
+ fetch: fetchImpl,
309
+ getApiKey: getExchangeApiKey,
310
+ ...(exchangeOptions.exchangeUrl === undefined
311
+ ? {}
312
+ : { exchangeUrl: exchangeOptions.exchangeUrl }),
313
+ });
329
314
  tokenProvider = sessionProvider;
330
315
  }
331
316
  else {
332
317
  throw new Error("originClient: no Origin credential available (pass token / credentials, set ORIGIN_APP_ID + ORIGIN_APP_INSTALLATION_ID + ORIGIN_APP_PRIVATE_KEY, or sign in with a Cursor credential for the session exchange).");
333
318
  }
334
319
  }
335
- return yield tokenProvider();
336
- });
337
- const send = (input, path, token) => __awaiter(this, void 0, void 0, function* () {
338
- return yield fetchImpl(`${apiBaseUrl}${path}`, {
339
- method: input.method,
340
- headers: Object.assign({ authorization: `Bearer ${token}` }, (input.body === undefined ? {} : { "content-type": "application/json" })),
341
- body: input.body === undefined ? undefined : JSON.stringify(input.body),
342
- });
320
+ return await tokenProvider();
321
+ };
322
+ const send = async (input, path, token) => await fetchImpl(`${apiBaseUrl}${path}`, {
323
+ method: input.method,
324
+ headers: {
325
+ authorization: `Bearer ${token}`,
326
+ ...(input.body === undefined ? {} : { "content-type": "application/json" }),
327
+ },
328
+ body: input.body === undefined ? undefined : JSON.stringify(input.body),
343
329
  });
344
330
  return {
345
331
  apiBaseUrl,
346
- request(input) {
347
- return __awaiter(this, void 0, void 0, function* () {
348
- const path = input.path.startsWith("/") ? input.path : `/${input.path}`;
349
- const token = yield getToken();
350
- let response = yield send(input, path, token);
351
- if (response.status === 401 && sessionProvider !== undefined) {
352
- // The session aged out server-side. Drop it — unless a concurrent
353
- // retry already minted a newer one — and retry once.
354
- yield response.text().catch(() => undefined);
355
- sessionProvider.invalidate(token);
356
- const retryToken = yield getToken();
357
- response = yield send(input, path, retryToken);
358
- }
359
- const text = yield response.text();
360
- let parsed;
361
- try {
362
- parsed = text === "" ? undefined : JSON.parse(text);
363
- }
364
- catch (_a) {
365
- parsed = text;
366
- }
367
- if (!response.ok) {
368
- throw new OriginApiError({
369
- body: parsed,
370
- method: input.method,
371
- path,
372
- status: response.status,
373
- });
374
- }
375
- return parsed;
376
- });
332
+ async request(input) {
333
+ const path = input.path.startsWith("/") ? input.path : `/${input.path}`;
334
+ const token = await getToken();
335
+ let response = await send(input, path, token);
336
+ if (response.status === 401 && sessionProvider !== undefined) {
337
+ // The session aged out server-side. Drop it — unless a concurrent
338
+ // retry already minted a newer one — and retry once.
339
+ await response.text().catch(() => undefined);
340
+ sessionProvider.invalidate(token);
341
+ const retryToken = await getToken();
342
+ response = await send(input, path, retryToken);
343
+ }
344
+ const text = await response.text();
345
+ let parsed;
346
+ try {
347
+ parsed = text === "" ? undefined : JSON.parse(text);
348
+ }
349
+ catch {
350
+ parsed = text;
351
+ }
352
+ if (!response.ok) {
353
+ throw new OriginApiError({
354
+ body: parsed,
355
+ method: input.method,
356
+ path,
357
+ status: response.status,
358
+ });
359
+ }
360
+ return parsed;
377
361
  },
378
362
  };
379
363
  }
@@ -12,20 +12,16 @@ import { createOriginClient, originRpcBaseUrl, resolveOriginAppCredentialParts,
12
12
  import { createOriginCheck } from "./checks.js";
13
13
  import { setOriginCommentReaction } from "./reactions.js";
14
14
  export function buildOriginBinding(input) {
15
- var _a;
16
- var _b;
17
15
  const buildClient = (apiBaseUrl) => {
18
- var _a, _b, _c, _d;
19
- var _e, _f, _g, _h;
20
16
  const fromEnv = input.cursorAccount ? {} : resolveOriginAppCredentialParts();
21
- const appId = (_e = (_a = input.app) === null || _a === void 0 ? void 0 : _a.appId) !== null && _e !== void 0 ? _e : fromEnv.appId;
22
- const installationId = (_g = (_f = (_b = input.app) === null || _b === void 0 ? void 0 : _b.installationId) !== null && _f !== void 0 ? _f : input.installationId) !== null && _g !== void 0 ? _g : fromEnv.installationId;
23
- const privateKey = (_h = (_c = input.app) === null || _c === void 0 ? void 0 : _c.privateKey) !== null && _h !== void 0 ? _h : fromEnv.privateKey;
17
+ const appId = input.app?.appId ?? fromEnv.appId;
18
+ const installationId = input.app?.installationId ?? input.installationId ?? fromEnv.installationId;
19
+ const privateKey = input.app?.privateKey ?? fromEnv.privateKey;
24
20
  const credentials = appId !== undefined && installationId !== undefined && privateKey !== undefined
25
21
  ? { appId, installationId, privateKey }
26
22
  : undefined;
27
23
  return createOriginClient({
28
- token: input.cursorAccount ? undefined : (_d = input.app) === null || _d === void 0 ? void 0 : _d.token,
24
+ token: input.cursorAccount ? undefined : input.app?.token,
29
25
  credentials: input.cursorAccount ? false : credentials,
30
26
  apiBaseUrl,
31
27
  fetch: input.fetch,
@@ -36,22 +32,25 @@ export function buildOriginBinding(input) {
36
32
  // neither needs no credential.
37
33
  let restClient;
38
34
  const getRestClient = () => {
39
- var _a;
40
- restClient !== null && restClient !== void 0 ? restClient : (restClient = buildClient((_a = input.app) === null || _a === void 0 ? void 0 : _a.apiBaseUrl));
35
+ restClient ??= buildClient(input.app?.apiBaseUrl);
41
36
  return restClient;
42
37
  };
43
38
  let rpcClient;
44
39
  const getRpcClient = () => {
45
- var _a;
46
- var _b;
47
- rpcClient !== null && rpcClient !== void 0 ? rpcClient : (rpcClient = buildClient((_b = (_a = input.app) === null || _a === void 0 ? void 0 : _a.rpcBaseUrl) !== null && _b !== void 0 ? _b : originRpcBaseUrl()));
40
+ rpcClient ??= buildClient(input.app?.rpcBaseUrl ?? originRpcBaseUrl());
48
41
  return rpcClient;
49
42
  };
50
43
  return {
51
- installationId: (_b = (_a = input.app) === null || _a === void 0 ? void 0 : _a.installationId) !== null && _b !== void 0 ? _b : input.installationId,
44
+ installationId: input.app?.installationId ?? input.installationId,
52
45
  repository: input.repository,
53
46
  request: request => getRestClient().request(request),
54
- createCheck: check => { var _a; return createOriginCheck(Object.assign(Object.assign({}, check), { executionId: (_a = check.executionId) !== null && _a !== void 0 ? _a : input.executionId, origin: getRestClient(), owner: input.repository.owner, repo: input.repository.name })); },
55
- reactToComment: reaction => setOriginCommentReaction(Object.assign(Object.assign({}, reaction), { origin: getRpcClient() })),
47
+ createCheck: check => createOriginCheck({
48
+ ...check,
49
+ executionId: check.executionId ?? input.executionId,
50
+ origin: getRestClient(),
51
+ owner: input.repository.owner,
52
+ repo: input.repository.name,
53
+ }),
54
+ reactToComment: reaction => setOriginCommentReaction({ ...reaction, origin: getRpcClient() }),
56
55
  };
57
56
  }
@@ -16,15 +16,6 @@
16
16
  * `request()` (`ctx.origin`, `createOriginClient()`), and is also reachable
17
17
  * as `ctx.origin.createCheck(...)`. API failures throw `OriginApiError`.
18
18
  */
19
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
20
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
21
- return new (P || (P = Promise))(function (resolve, reject) {
22
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
23
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
24
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
25
- step((generator = generator.apply(thisArg, _arguments || [])).next());
26
- });
27
- };
28
19
  import { randomUUID } from "node:crypto";
29
20
  import { openCiCheck, resumeCiCheck, } from "../checks.js";
30
21
  /**
@@ -33,7 +24,7 @@ import { openCiCheck, resumeCiCheck, } from "../checks.js";
33
24
  * risking a lost check write.
34
25
  */
35
26
  const OUTPUT_TITLE_MAX_CHARS = 255;
36
- const OUTPUT_BODY_MAX_BYTES = 65000;
27
+ const OUTPUT_BODY_MAX_BYTES = 65_000;
37
28
  /** Truncate to at most `maxBytes` UTF-8 bytes without severing a character. */
38
29
  function capUtf8Bytes(text, maxBytes) {
39
30
  const encoded = new TextEncoder().encode(text);
@@ -48,9 +39,13 @@ function cappedOutput(output) {
48
39
  if (output === undefined) {
49
40
  return undefined;
50
41
  }
51
- return Object.assign({ title: output.title.slice(0, OUTPUT_TITLE_MAX_CHARS), summary: capUtf8Bytes(output.summary, OUTPUT_BODY_MAX_BYTES) }, (output.text === undefined
52
- ? {}
53
- : { text: capUtf8Bytes(output.text, OUTPUT_BODY_MAX_BYTES) }));
42
+ return {
43
+ title: output.title.slice(0, OUTPUT_TITLE_MAX_CHARS),
44
+ summary: capUtf8Bytes(output.summary, OUTPUT_BODY_MAX_BYTES),
45
+ ...(output.text === undefined
46
+ ? {}
47
+ : { text: capUtf8Bytes(output.text, OUTPUT_BODY_MAX_BYTES) }),
48
+ };
54
49
  }
55
50
  /** Derive a stable check key from a display name, e.g. `cursor-security-review`. */
56
51
  export function originCheckKeyFromName(name) {
@@ -66,24 +61,26 @@ export function originCheckKeyFromName(name) {
66
61
  * status so an output-only update cannot regress a running check to queued.
67
62
  */
68
63
  function originCheckWriter(input) {
69
- var _a;
70
- var _b, _c, _d, _e, _f;
71
- const key = (_b = input.key) !== null && _b !== void 0 ? _b : originCheckKeyFromName(input.name);
72
- const suiteKey = (_c = (_a = input.suite) === null || _a === void 0 ? void 0 : _a.key) !== null && _c !== void 0 ? _c : key;
73
- const externalId = (_d = input.externalId) !== null && _d !== void 0 ? _d : `agent-serve:${suiteKey}:${key}:${input.sha}:${(_e = input.executionId) !== null && _e !== void 0 ? _e : randomUUID()}`;
64
+ const key = input.key ?? originCheckKeyFromName(input.name);
65
+ const suiteKey = input.suite?.key ?? key;
66
+ const externalId = input.externalId ??
67
+ `agent-serve:${suiteKey}:${key}:${input.sha}:${input.executionId ?? randomUUID()}`;
74
68
  const path = `/v1/origin/repos/${encodeURIComponent(input.owner)}/${encodeURIComponent(input.repo)}/check-runs`;
75
- let lastStatus = (_f = input.status) !== null && _f !== void 0 ? _f : "in_progress";
76
- return (write) => __awaiter(this, void 0, void 0, function* () {
77
- var _a, _b, _c;
78
- var _d, _e;
79
- const status = (_d = write.status) !== null && _d !== void 0 ? _d : (write.conclusion === undefined ? lastStatus : "completed");
69
+ let lastStatus = input.status ?? "in_progress";
70
+ return async (write) => {
71
+ const status = write.status ?? (write.conclusion === undefined ? lastStatus : "completed");
80
72
  lastStatus = status;
81
- const response = yield input.origin.request({
73
+ const response = await input.origin.request({
82
74
  method: "POST",
83
75
  path,
84
76
  body: {
85
77
  headSha: input.sha,
86
- checkSuite: Object.assign({ key: suiteKey, name: (_e = (_a = input.suite) === null || _a === void 0 ? void 0 : _a.name) !== null && _e !== void 0 ? _e : input.name, externalId: `agent-serve:${suiteKey}` }, (((_b = input.suite) === null || _b === void 0 ? void 0 : _b.detailsUrl) === undefined ? {} : { detailsUrl: input.suite.detailsUrl })),
78
+ checkSuite: {
79
+ key: suiteKey,
80
+ name: input.suite?.name ?? input.name,
81
+ externalId: `agent-serve:${suiteKey}`,
82
+ ...(input.suite?.detailsUrl === undefined ? {} : { detailsUrl: input.suite.detailsUrl }),
83
+ },
87
84
  checkRun: {
88
85
  key,
89
86
  name: input.name,
@@ -100,9 +97,9 @@ function originCheckWriter(input) {
100
97
  },
101
98
  },
102
99
  });
103
- const id = (_c = response === null || response === void 0 ? void 0 : response.checkRun) === null || _c === void 0 ? void 0 : _c.id;
100
+ const id = response?.checkRun?.id;
104
101
  return typeof id === "string" ? { id } : undefined;
105
- });
102
+ };
106
103
  }
107
104
  /**
108
105
  * Create a CI check run on a commit and return a handle for later updates.
@@ -140,6 +137,11 @@ export function resumeOriginCheck(input) {
140
137
  */
141
138
  export function bindOriginChecks(input) {
142
139
  return {
143
- createCheck: check => createOriginCheck(Object.assign(Object.assign({}, check), { origin: input.origin, owner: input.owner, repo: input.repo })),
140
+ createCheck: check => createOriginCheck({
141
+ ...check,
142
+ origin: input.origin,
143
+ owner: input.owner,
144
+ repo: input.repo,
145
+ }),
144
146
  };
145
147
  }