@cursor/bdk 0.2.9 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.js +803 -812
  3. package/dist/channels/bitbucket/api.js +305 -321
  4. package/dist/channels/bitbucket/binding.js +97 -61
  5. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  6. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  7. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  8. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  9. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  10. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  11. package/dist/channels/bitbucket/checks.js +9 -21
  12. package/dist/channels/bitbucket/cursor-account.js +1 -1
  13. package/dist/channels/bitbucket/defaults.js +14 -4
  14. package/dist/channels/bitbucket/events.js +1 -2
  15. package/dist/channels/bitbucket/index.d.ts +6 -2
  16. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  17. package/dist/channels/bitbucket/index.js +6 -2
  18. package/dist/channels/bitbucket/replay.js +80 -56
  19. package/dist/channels/bitbucket/state.js +16 -7
  20. package/dist/channels/bitbucket/types.d.ts +11 -2
  21. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  22. package/dist/channels/checks.js +18 -28
  23. package/dist/channels/deployments/deployments-channel.js +26 -34
  24. package/dist/channels/github/api.js +216 -210
  25. package/dist/channels/github/auth.d.ts +5 -1
  26. package/dist/channels/github/auth.d.ts.map +1 -1
  27. package/dist/channels/github/auth.js +157 -174
  28. package/dist/channels/github/binding.js +48 -39
  29. package/dist/channels/github/checks.js +9 -14
  30. package/dist/channels/github/cursor-account.js +6 -11
  31. package/dist/channels/github/defaults.js +105 -130
  32. package/dist/channels/github/forward.js +13 -17
  33. package/dist/channels/github/github-channel.d.ts +43 -2
  34. package/dist/channels/github/github-channel.d.ts.map +1 -1
  35. package/dist/channels/github/github-channel.js +1228 -958
  36. package/dist/channels/github/progress.js +145 -146
  37. package/dist/channels/github/replay.js +30 -39
  38. package/dist/channels/github/state.js +40 -16
  39. package/dist/channels/github/types.d.ts +30 -6
  40. package/dist/channels/github/types.d.ts.map +1 -1
  41. package/dist/channels/gitlab/api.js +100 -114
  42. package/dist/channels/gitlab/binding.js +52 -33
  43. package/dist/channels/gitlab/checks.js +28 -29
  44. package/dist/channels/gitlab/cursor-account.js +1 -1
  45. package/dist/channels/gitlab/defaults.js +9 -3
  46. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  47. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  48. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  49. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  50. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  51. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  52. package/dist/channels/gitlab/index.d.ts +6 -2
  53. package/dist/channels/gitlab/index.d.ts.map +1 -1
  54. package/dist/channels/gitlab/index.js +6 -2
  55. package/dist/channels/gitlab/replay.js +50 -27
  56. package/dist/channels/gitlab/state.js +14 -6
  57. package/dist/channels/gitlab/types.d.ts +13 -2
  58. package/dist/channels/gitlab/types.d.ts.map +1 -1
  59. package/dist/channels/origin/api.js +100 -116
  60. package/dist/channels/origin/binding.js +15 -16
  61. package/dist/channels/origin/checks.js +30 -28
  62. package/dist/channels/origin/defaults.js +50 -65
  63. package/dist/channels/origin/origin-channel.js +266 -272
  64. package/dist/channels/origin/origin-webhook.js +70 -88
  65. package/dist/channels/origin/reactions.js +9 -21
  66. package/dist/channels/origin/state.js +13 -5
  67. package/dist/channels/slack/agentic-delivery.js +426 -478
  68. package/dist/channels/slack/agentic-posted.js +9 -10
  69. package/dist/channels/slack/agentic-signals.js +2 -3
  70. package/dist/channels/slack/api.js +417 -427
  71. package/dist/channels/slack/approvals.js +1 -1
  72. package/dist/channels/slack/assistant.js +37 -47
  73. package/dist/channels/slack/attachments.js +188 -206
  74. package/dist/channels/slack/auth.js +8 -6
  75. package/dist/channels/slack/bot-mentions.js +31 -45
  76. package/dist/channels/slack/channel-watch.js +42 -48
  77. package/dist/channels/slack/cli-project.js +112 -137
  78. package/dist/channels/slack/code-fences.js +3 -5
  79. package/dist/channels/slack/constants.js +2 -2
  80. package/dist/channels/slack/credentials.js +23 -38
  81. package/dist/channels/slack/defaults.js +292 -331
  82. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  83. package/dist/channels/slack/dispatch.js +533 -460
  84. package/dist/channels/slack/doctor.js +200 -214
  85. package/dist/channels/slack/eval-directive.js +79 -96
  86. package/dist/channels/slack/event-id-dedupe.js +1 -1
  87. package/dist/channels/slack/external-policy.js +26 -39
  88. package/dist/channels/slack/footer.js +28 -41
  89. package/dist/channels/slack/inbound.d.ts +1 -0
  90. package/dist/channels/slack/inbound.d.ts.map +1 -1
  91. package/dist/channels/slack/inbound.js +50 -31
  92. package/dist/channels/slack/init.d.ts +1 -5
  93. package/dist/channels/slack/init.d.ts.map +1 -1
  94. package/dist/channels/slack/init.js +42 -59
  95. package/dist/channels/slack/interactive.d.ts +9 -3
  96. package/dist/channels/slack/interactive.d.ts.map +1 -1
  97. package/dist/channels/slack/interactive.js +160 -162
  98. package/dist/channels/slack/links.js +1 -2
  99. package/dist/channels/slack/live-delivery.js +172 -190
  100. package/dist/channels/slack/manifest.d.ts.map +1 -1
  101. package/dist/channels/slack/manifest.js +44 -23
  102. package/dist/channels/slack/message-body.js +2 -2
  103. package/dist/channels/slack/nudge-carrier.js +30 -42
  104. package/dist/channels/slack/nudge-store.js +164 -191
  105. package/dist/channels/slack/paint-start.js +66 -81
  106. package/dist/channels/slack/placeholder.js +123 -152
  107. package/dist/channels/slack/pr-ref.js +1 -1
  108. package/dist/channels/slack/progress-delivery.js +65 -78
  109. package/dist/channels/slack/reasoning-card.js +36 -49
  110. package/dist/channels/slack/recording-sink.js +12 -24
  111. package/dist/channels/slack/reply-options.js +7 -12
  112. package/dist/channels/slack/self-identity.js +27 -35
  113. package/dist/channels/slack/sender-name.d.ts +12 -3
  114. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  115. package/dist/channels/slack/sender-name.js +57 -61
  116. package/dist/channels/slack/setup.js +2 -4
  117. package/dist/channels/slack/slack-channel.d.ts +6 -4
  118. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  119. package/dist/channels/slack/slack-channel.js +441 -308
  120. package/dist/channels/slack/socket-mode.js +38 -52
  121. package/dist/channels/slack/thread-context.js +143 -160
  122. package/dist/channels/slack/tool-approval-events.js +149 -166
  123. package/dist/channels/slack/tool-cards.js +6 -11
  124. package/dist/channels/slack/tool-chip.js +1 -2
  125. package/dist/channels/slack/types.d.ts +15 -17
  126. package/dist/channels/slack/types.d.ts.map +1 -1
  127. package/dist/channels/slack/upload.js +84 -97
  128. package/dist/channels/slack/user-info.js +27 -41
  129. package/dist/channels.js +9 -20
  130. package/dist/dashboard-session-url.js +3 -4
  131. package/dist/docs/404.html +2 -2
  132. package/dist/docs/assets/{app.BNhEdGa8.js → app.DXI7bwox.js} +4 -4
  133. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  134. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  135. package/dist/docs/assets/chunks/{VPLocalSearchBox.DIdUV1Ph.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  136. package/dist/docs/assets/chunks/{arc.lELI4_SR.js → arc.BOG1yms8.js} +1 -1
  137. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.iCMdvuoM.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  138. package/dist/docs/assets/chunks/{baseUniq.C1-nDJBf.js → baseUniq.H044KjKs.js} +1 -1
  139. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.ClemzBox.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  140. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BqTak6cR.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  141. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  142. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CUS3qs_R.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  143. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.dz5fdHcl.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  144. package/dist/docs/assets/chunks/{chunk-55IACEB6.D6BEBmve.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.B5uK4ID9.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.PgOJgNQs.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CvkTrCii.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnSfKYsB.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.MZH6v5UC.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  150. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  151. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  152. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  153. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BBbw_YZi.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  154. package/dist/docs/assets/chunks/{dagre-KV5264BT.CNJB2l7E.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  155. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.BQzlnFfq.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  156. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DkgqqZMz.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DIT8L7H_.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-TYMM5635.3xLPZWGJ.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  159. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.5_IHz8jF.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  160. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BGUCXz8A.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  161. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DbfFavS1.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  162. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.D2yKdeNW.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  163. package/dist/docs/assets/chunks/{graph.CSCxwHba.js → graph.BVqKRmRo.js} +1 -1
  164. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.FDeb6xHY.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  165. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DbeYs9VL.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  166. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CWjKINpx.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  167. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.B4FrAlwz.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  168. package/dist/docs/assets/chunks/{layout.DFGxQ9ab.js → layout.CGU3gfSf.js} +1 -1
  169. package/dist/docs/assets/chunks/{linear.BmjZ-G59.js → linear.DaihpW_n.js} +1 -1
  170. package/dist/docs/assets/chunks/{min.DZSxulMW.js → min.BS-j8kHQ.js} +1 -1
  171. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CHLi3-aN.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  172. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DteG-CkU.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  173. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D458ipN3.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  174. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DcFgUxst.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  175. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.BwQAMmSA.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  176. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.B_Xdsrh9.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  177. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.CdfDW6-C.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  178. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  179. package/dist/docs/assets/chunks/{theme.sfdL3srp.js → theme.DaplWQhQ.js} +2 -2
  180. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.56-4hXaC.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  181. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CvZSQBO7.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  182. package/dist/docs/assets/chunks/{wardley-RL74JXVD.C9qc8k39.js → wardley-RL74JXVD.iXazD3Z7.js} +1 -1
  183. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.D9s0nihi.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  184. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.BVJSpYrC.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  185. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  186. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  187. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  188. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  189. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  191. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  192. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  193. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  194. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  195. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  196. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  197. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  198. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  199. package/dist/docs/building-with-agents.html +37 -37
  200. package/dist/docs/building-with-agents.md +2 -0
  201. package/dist/docs/deployment.html +38 -38
  202. package/dist/docs/deployment.md +7 -0
  203. package/dist/docs/evals.html +36 -36
  204. package/dist/docs/guides/agent-to-agent.html +35 -35
  205. package/dist/docs/guides/bitbucket.html +38 -38
  206. package/dist/docs/guides/bitbucket.md +9 -1
  207. package/dist/docs/guides/cloud-agents.html +35 -35
  208. package/dist/docs/guides/convert-automation.html +35 -35
  209. package/dist/docs/guides/github.html +39 -39
  210. package/dist/docs/guides/github.md +20 -4
  211. package/dist/docs/guides/gitlab.html +38 -38
  212. package/dist/docs/guides/gitlab.md +9 -1
  213. package/dist/docs/guides/grokbot-agents.html +35 -35
  214. package/dist/docs/guides/hooks.html +35 -35
  215. package/dist/docs/guides/improve.html +35 -35
  216. package/dist/docs/guides/jev.html +35 -35
  217. package/dist/docs/guides/mcp-oauth.html +35 -35
  218. package/dist/docs/guides/migrate.html +66 -0
  219. package/dist/docs/guides/migrate.md +122 -0
  220. package/dist/docs/guides/opentelemetry.html +35 -35
  221. package/dist/docs/guides/slack.html +35 -35
  222. package/dist/docs/guides/webhooks.html +35 -35
  223. package/dist/docs/hashmap.json +1 -1
  224. package/dist/docs/hillclimbing.html +35 -35
  225. package/dist/docs/index.html +35 -35
  226. package/dist/docs/llms-full.txt +214 -6
  227. package/dist/docs/llms.txt +1 -0
  228. package/dist/docs/quickstart.html +35 -35
  229. package/dist/docs/reference/agent-config.html +35 -35
  230. package/dist/docs/reference/artifacts.html +35 -35
  231. package/dist/docs/reference/channels.html +35 -35
  232. package/dist/docs/reference/cli.html +39 -38
  233. package/dist/docs/reference/cli.md +39 -0
  234. package/dist/docs/reference/connections.html +35 -35
  235. package/dist/docs/reference/evals.html +35 -35
  236. package/dist/docs/reference/extensions.html +35 -35
  237. package/dist/docs/reference/hooks.html +35 -35
  238. package/dist/docs/reference/http-api.html +35 -35
  239. package/dist/docs/reference/instructions.html +35 -35
  240. package/dist/docs/reference/playground.html +35 -35
  241. package/dist/docs/reference/project-layout.html +35 -35
  242. package/dist/docs/reference/prompt.html +35 -35
  243. package/dist/docs/reference/schedules.html +35 -35
  244. package/dist/docs/reference/sessions.html +35 -35
  245. package/dist/docs/reference/skills.html +38 -38
  246. package/dist/docs/reference/subagents.html +35 -35
  247. package/dist/docs/reference/tools.html +35 -35
  248. package/dist/docs/templates/agentic-owners.html +35 -35
  249. package/dist/docs/templates/grokbot-agents.html +35 -35
  250. package/dist/docs/templates/security-reviewer.html +35 -35
  251. package/dist/docs/templates/thermo-quality-review.html +35 -35
  252. package/dist/docs/templates/thermo-review.html +35 -35
  253. package/dist/docs/templates/triage.html +35 -35
  254. package/dist/docs/troubleshooting.html +36 -36
  255. package/dist/docs/troubleshooting.md +1 -0
  256. package/dist/evals/assertions.js +20 -34
  257. package/dist/evals/expect.js +3 -6
  258. package/dist/evals/judge.js +5 -8
  259. package/dist/evals/loaders.js +45 -62
  260. package/dist/evals/matchers.js +2 -3
  261. package/dist/evals/reporters.js +43 -67
  262. package/dist/evals/results.js +1 -1
  263. package/dist/evals/run-facts.js +5 -6
  264. package/dist/evals.js +27 -15
  265. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  266. package/dist/extensions/cursor-cloud-agents/lib/backend.js +100 -126
  267. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  268. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  269. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  270. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  271. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  272. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  273. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  274. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  275. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  276. package/dist/extensions/cursor-cloud-agents/tools/list.js +8 -19
  277. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  278. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  279. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  280. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  281. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  282. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  283. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  284. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  285. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  286. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  287. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  288. package/dist/extensions/jev/extension.js +3 -3
  289. package/dist/extensions/jev/lib/evaluate.js +43 -60
  290. package/dist/extensions/jev/tools/evaluate.js +6 -17
  291. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  292. package/dist/extensions.js +3 -5
  293. package/dist/files-backends/cursor-hosted.js +504 -523
  294. package/dist/files-backends/local-fs.js +72 -134
  295. package/dist/files.js +3 -3
  296. package/dist/filesystem.js +562 -861
  297. package/dist/index.js +16 -35
  298. package/dist/internal/advertise-tools.js +74 -86
  299. package/dist/internal/artifacts-store.js +298 -361
  300. package/dist/internal/as-of.js +2 -4
  301. package/dist/internal/authored-alias-hooks.js +6 -4
  302. package/dist/internal/authored-loaders.js +37 -52
  303. package/dist/internal/bounded-int.js +1 -2
  304. package/dist/internal/bounded.js +13 -24
  305. package/dist/internal/brand.js +1 -1
  306. package/dist/internal/browser-origin-guard.js +4 -4
  307. package/dist/internal/builtin-tools/artifacts.js +15 -27
  308. package/dist/internal/builtin-tools/index.js +2 -3
  309. package/dist/internal/builtin-tools/reminders.js +33 -52
  310. package/dist/internal/channel-architecture.d.ts +21 -0
  311. package/dist/internal/channel-architecture.d.ts.map +1 -0
  312. package/dist/internal/channel-architecture.js +41 -0
  313. package/dist/internal/channel-dispatch.js +3 -4
  314. package/dist/internal/channel-route-dispatch.js +40 -51
  315. package/dist/internal/channel-state.js +1 -1
  316. package/dist/internal/chat-client.js +319 -340
  317. package/dist/internal/cli-ax.js +1262 -1294
  318. package/dist/internal/cli-bitbucket.js +244 -272
  319. package/dist/internal/cli-convert-automation.js +137 -151
  320. package/dist/internal/cli-cursor.js +126 -147
  321. package/dist/internal/cli-deploy.d.ts.map +1 -1
  322. package/dist/internal/cli-deploy.js +1457 -1507
  323. package/dist/internal/cli-docs.js +130 -147
  324. package/dist/internal/cli-github.js +437 -476
  325. package/dist/internal/cli-gitlab.js +259 -288
  326. package/dist/internal/cli-images.js +266 -334
  327. package/dist/internal/cli-manifest.js +25 -37
  328. package/dist/internal/cli-mcp-oauth.js +228 -247
  329. package/dist/internal/cli-mcp.js +358 -383
  330. package/dist/internal/cli-migrate.js +73 -90
  331. package/dist/internal/cli-skills.js +35 -47
  332. package/dist/internal/cli-slack-manual.d.ts +0 -1
  333. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  334. package/dist/internal/cli-slack-manual.js +175 -204
  335. package/dist/internal/cli-slack.d.ts +1 -1
  336. package/dist/internal/cli-slack.d.ts.map +1 -1
  337. package/dist/internal/cli-slack.js +416 -456
  338. package/dist/internal/cloud-merge.js +7 -3
  339. package/dist/internal/cloud-turn-cost.js +8 -1
  340. package/dist/internal/connection-env.js +5 -6
  341. package/dist/internal/continuation-channel.js +10 -7
  342. package/dist/internal/continuation-identity.js +85 -67
  343. package/dist/internal/conversation-mirror.js +112 -131
  344. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  345. package/dist/internal/cron.js +3 -3
  346. package/dist/internal/cursor/account-mcp.js +147 -146
  347. package/dist/internal/cursor/backend-client.js +290 -320
  348. package/dist/internal/cursor/bound-secret-file.js +3 -3
  349. package/dist/internal/cursor/credentials.js +127 -142
  350. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  351. package/dist/internal/cursor/github-credentials.js +91 -108
  352. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  353. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  354. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  355. package/dist/internal/cursor/session-token.js +36 -48
  356. package/dist/internal/cursor/store-api-client.js +77 -92
  357. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  358. package/dist/internal/cursor-agent-template.js +1 -1
  359. package/dist/internal/cursor-deployment-relay.js +33 -54
  360. package/dist/internal/cursor-event-relay.js +65 -59
  361. package/dist/internal/cursor-relay-core.js +258 -286
  362. package/dist/internal/deferred-channel-session.js +3 -12
  363. package/dist/internal/deploy-client.js +410 -475
  364. package/dist/internal/deploy-manifest.d.ts +17 -0
  365. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  366. package/dist/internal/deploy-manifest.js +71 -21
  367. package/dist/internal/deploy-source.js +31 -43
  368. package/dist/internal/discovery/agent-config.js +45 -59
  369. package/dist/internal/discovery/agent.js +276 -280
  370. package/dist/internal/discovery/channels.js +67 -80
  371. package/dist/internal/discovery/connections.js +286 -296
  372. package/dist/internal/discovery/context.js +2 -13
  373. package/dist/internal/discovery/cursor-plugin.js +223 -259
  374. package/dist/internal/discovery/extension-overlay.js +104 -131
  375. package/dist/internal/discovery/extensions.js +276 -281
  376. package/dist/internal/discovery/fs.js +56 -79
  377. package/dist/internal/discovery/hooks.js +39 -50
  378. package/dist/internal/discovery/info.js +17 -19
  379. package/dist/internal/discovery/instructions.js +58 -71
  380. package/dist/internal/discovery/modules.js +45 -58
  381. package/dist/internal/discovery/project.d.ts.map +1 -1
  382. package/dist/internal/discovery/project.js +192 -215
  383. package/dist/internal/discovery/reminders.js +41 -52
  384. package/dist/internal/discovery/runtime.js +1 -1
  385. package/dist/internal/discovery/schedules.js +71 -82
  386. package/dist/internal/discovery/seed-files.js +21 -32
  387. package/dist/internal/discovery/services.js +74 -96
  388. package/dist/internal/discovery/skills.js +77 -94
  389. package/dist/internal/discovery/subagent.js +79 -95
  390. package/dist/internal/discovery/tools.js +12 -23
  391. package/dist/internal/distribution.js +2 -2
  392. package/dist/internal/docs-site.js +30 -45
  393. package/dist/internal/duration.js +1 -1
  394. package/dist/internal/env-file.js +48 -64
  395. package/dist/internal/eval-judge-model.js +17 -28
  396. package/dist/internal/eval-run-store.js +265 -254
  397. package/dist/internal/eval-runner.d.ts +8 -0
  398. package/dist/internal/eval-runner.d.ts.map +1 -1
  399. package/dist/internal/eval-runner.js +406 -408
  400. package/dist/internal/eval-transport.d.ts +24 -0
  401. package/dist/internal/eval-transport.d.ts.map +1 -0
  402. package/dist/internal/eval-transport.js +22 -0
  403. package/dist/internal/evals-client.js +242 -246
  404. package/dist/internal/event-log.js +72 -120
  405. package/dist/internal/event-mapper.js +30 -31
  406. package/dist/internal/factory-resource-channel.js +16 -30
  407. package/dist/internal/filesystem/errors.js +6 -6
  408. package/dist/internal/filesystem/format.js +10 -13
  409. package/dist/internal/filesystem/merge.js +52 -94
  410. package/dist/internal/filesystem/nearest.js +15 -27
  411. package/dist/internal/filesystem/scratch.js +65 -85
  412. package/dist/internal/filesystem/tools.js +221 -241
  413. package/dist/internal/filesystem/walk.js +76 -143
  414. package/dist/internal/framework-file-storage.js +118 -139
  415. package/dist/internal/framework-storage-selection.js +21 -13
  416. package/dist/internal/frontmatter.js +4 -6
  417. package/dist/internal/github-fanout.js +50 -64
  418. package/dist/internal/guest-network.js +96 -109
  419. package/dist/internal/handleAgentServeTrigger.js +121 -126
  420. package/dist/internal/host-files.js +73 -88
  421. package/dist/internal/host-kv.js +21 -36
  422. package/dist/internal/host-otel.js +22 -19
  423. package/dist/internal/host-platforms.js +49 -63
  424. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  425. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  426. package/dist/internal/hosted-catch-protocol.js +1 -0
  427. package/dist/internal/hosted-catch.d.ts +5 -3
  428. package/dist/internal/hosted-catch.d.ts.map +1 -1
  429. package/dist/internal/hosted-catch.js +84 -93
  430. package/dist/internal/hosted-delivery-protocol.js +32 -8
  431. package/dist/internal/hosted-delivery.d.ts +13 -1
  432. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  433. package/dist/internal/hosted-delivery.js +614 -584
  434. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  435. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  436. package/dist/internal/hosted-eval-cases.js +162 -0
  437. package/dist/internal/hosted-execution-diag.js +38 -30
  438. package/dist/internal/hosted-execution-flush.js +75 -66
  439. package/dist/internal/hosted-execution-latency.js +16 -8
  440. package/dist/internal/hosted-managed-automation.js +2 -2
  441. package/dist/internal/hosting.js +2 -3
  442. package/dist/internal/http-channel-define.js +4 -1
  443. package/dist/internal/http-channel.js +101 -112
  444. package/dist/internal/http-control-plane-session.d.ts +18 -1
  445. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  446. package/dist/internal/http-control-plane-session.js +66 -32
  447. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  448. package/dist/internal/init-interview.js +73 -93
  449. package/dist/internal/init-project.js +182 -214
  450. package/dist/internal/init-scaffold.js +10 -21
  451. package/dist/internal/inline-stdio-mcp.js +80 -86
  452. package/dist/internal/install-cursor-skills.js +231 -273
  453. package/dist/internal/legacy-command-guard.js +18 -31
  454. package/dist/internal/listen-port.js +34 -45
  455. package/dist/internal/local-control-plane.js +293 -307
  456. package/dist/internal/local-env.js +1 -1
  457. package/dist/internal/local-ingress.js +15 -9
  458. package/dist/internal/log-ring.js +1 -2
  459. package/dist/internal/logs-client.js +207 -227
  460. package/dist/internal/map-pool.js +24 -38
  461. package/dist/internal/mcp-endpoint.js +204 -180
  462. package/dist/internal/mcp-host.js +165 -168
  463. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  464. package/dist/internal/mcp-oauth-persist.js +15 -29
  465. package/dist/internal/mcp-oauth.js +209 -266
  466. package/dist/internal/named-webhook-secret.d.ts +39 -0
  467. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  468. package/dist/internal/named-webhook-secret.js +47 -0
  469. package/dist/internal/open-browser.js +2 -3
  470. package/dist/internal/otel/collector.js +104 -68
  471. package/dist/internal/otel/config.js +24 -37
  472. package/dist/internal/otel/http.js +5 -7
  473. package/dist/internal/otel/mcp.js +3 -12
  474. package/dist/internal/otel/runtime.js +69 -83
  475. package/dist/internal/package-inline-stdio.js +57 -65
  476. package/dist/internal/peer-connections.js +9 -5
  477. package/dist/internal/platform-schedule-sync.js +39 -54
  478. package/dist/internal/platform-timers.js +176 -210
  479. package/dist/internal/playground/static.js +1 -2
  480. package/dist/internal/playground/toolchain.js +37 -53
  481. package/dist/internal/playground-proxy.js +230 -270
  482. package/dist/internal/process-memory-telemetry.js +33 -51
  483. package/dist/internal/prompt-context.js +3 -6
  484. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  485. package/dist/internal/reminder-runner.js +770 -785
  486. package/dist/internal/reminder-schedule.js +1 -1
  487. package/dist/internal/reminder-store.js +57 -78
  488. package/dist/internal/request-error-status.js +1 -3
  489. package/dist/internal/request-headers.js +2 -2
  490. package/dist/internal/resolve-prod-target.js +119 -135
  491. package/dist/internal/resolved-connections.js +16 -6
  492. package/dist/internal/run-client.js +221 -229
  493. package/dist/internal/runtime-dispatch-runner.js +18 -43
  494. package/dist/internal/schedule-runner.js +49 -58
  495. package/dist/internal/scm/pr-url.js +7 -6
  496. package/dist/internal/sdk-runner.js +388 -363
  497. package/dist/internal/serve-restart.js +26 -39
  498. package/dist/internal/server.d.ts.map +1 -1
  499. package/dist/internal/server.js +1283 -1244
  500. package/dist/internal/session-cost.js +7 -9
  501. package/dist/internal/session-engine.d.ts +3 -1
  502. package/dist/internal/session-engine.d.ts.map +1 -1
  503. package/dist/internal/session-engine.js +2801 -2777
  504. package/dist/internal/session-links.js +12 -16
  505. package/dist/internal/session-run-log.js +134 -82
  506. package/dist/internal/session-store.js +133 -164
  507. package/dist/internal/sessions-client.js +97 -118
  508. package/dist/internal/skill-catalog.js +18 -23
  509. package/dist/internal/skills-sync.js +16 -30
  510. package/dist/internal/slack-provision-client.js +90 -116
  511. package/dist/internal/start-log-store.js +48 -67
  512. package/dist/internal/steering.js +1 -2
  513. package/dist/internal/storage-coordinator.js +160 -196
  514. package/dist/internal/store-mirror.js +16 -30
  515. package/dist/internal/stream-progress.js +6 -8
  516. package/dist/internal/terminal-style.js +3 -4
  517. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  518. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  519. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  520. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  521. package/dist/internal/tool-catalog.js +11 -5
  522. package/dist/internal/tool-result.js +1 -1
  523. package/dist/internal/trajectory.js +19 -22
  524. package/dist/internal/turn-cost.js +52 -62
  525. package/dist/internal/turn-governor.js +5 -8
  526. package/dist/internal/turn-lease-store.js +85 -105
  527. package/dist/internal/turn-outbox.js +28 -43
  528. package/dist/internal/update-check.js +231 -259
  529. package/dist/internal/v2-hosting.js +1 -2
  530. package/dist/internal/workspace-sync.js +25 -41
  531. package/dist/internal/workspace.js +111 -139
  532. package/dist/kv/memory-kv.js +27 -51
  533. package/dist/memory.js +106 -148
  534. package/dist/otel.js +5 -8
  535. package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
  536. package/dist/playground/assets/{index-Co4CUVTQ.js → index-JekUQERK.js} +45 -45
  537. package/dist/playground/index.html +2 -2
  538. package/dist/prompt.js +2 -4
  539. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  540. package/dist/storage-backends/cursor-hosted.js +105 -145
  541. package/dist/storage-backends/file-kv.js +100 -128
  542. package/dist/storage-protocol.js +3 -5
  543. package/dist/storage.js +17 -26
  544. package/dist/types.d.ts +68 -0
  545. package/dist/types.d.ts.map +1 -1
  546. package/dist/types.js +20 -18
  547. package/docs/building-with-agents.md +2 -0
  548. package/docs/deployment.md +7 -0
  549. package/docs/guides/bitbucket.md +9 -1
  550. package/docs/guides/github.md +20 -4
  551. package/docs/guides/gitlab.md +9 -1
  552. package/docs/guides/migrate.md +127 -0
  553. package/docs/reference/cli.md +39 -0
  554. package/docs/troubleshooting.md +1 -0
  555. package/package.json +1 -1
  556. package/skills/debug/SKILL.md +1 -0
  557. package/skills/github/SKILL.md +23 -0
  558. package/skills/migrate-v2/SKILL.md +51 -10
  559. package/dist/docs/assets/chunks/@localSearchIndexroot.BJ8UZggu.js +0 -1
  560. package/dist/docs/assets/chunks/channel.BTJ5J9FI.js +0 -1
  561. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D4BZ3cVV.js +0 -1
  562. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D4BZ3cVV.js +0 -1
  563. package/dist/docs/assets/chunks/clone.62tX-O-1.js +0 -1
  564. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DkTs1aEU.js +0 -1
  565. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  566. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  567. package/dist/playground/assets/index-C1g_PTTZ.css +0 -1
  568. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  569. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
  570. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
@@ -4,26 +4,6 @@
4
4
  * Owns request, response, and error mapping. Rendering and polling remain in
5
5
  * the CLI layer. Requests authenticate with the user's Cursor API key.
6
6
  */
7
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
- return new (P || (P = Promise))(function (resolve, reject) {
10
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
- step((generator = generator.apply(thisArg, _arguments || [])).next());
14
- });
15
- };
16
- var __rest = (this && this.__rest) || function (s, e) {
17
- var t = {};
18
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
19
- t[p] = s[p];
20
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
21
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
22
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
23
- t[p[i]] = s[p[i]];
24
- }
25
- return t;
26
- };
27
7
  import { z } from "zod";
28
8
  import { MAX_SECRET_VALUE_BYTES, MAX_SECRETS, validateEgressDomain, validateSettableSecretName, } from "./hosting.js";
29
9
  export const TERMINAL_DEPLOY_STATUSES = new Set([
@@ -380,60 +360,65 @@ const automationExportSchema = z
380
360
  .passthrough();
381
361
  export class AgentServeDeployClient {
382
362
  constructor(options) {
383
- var _a;
384
363
  this.backendUrl = options.backendUrl.endsWith("/")
385
364
  ? options.backendUrl.slice(0, -1)
386
365
  : options.backendUrl;
387
366
  this.apiKey = options.apiKey;
388
- this.fetchImpl = (_a = options.fetchImpl) !== null && _a !== void 0 ? _a : fetch;
367
+ this.fetchImpl = options.fetchImpl ?? fetch;
389
368
  }
390
369
  /** Create or redeploy; 202 means accepted, not running (poll status). */
391
- deploy(args) {
392
- return __awaiter(this, void 0, void 0, function* () {
393
- var _a;
394
- const slugError = validateDeploymentSlug(args.slug);
395
- if (slugError !== undefined) {
396
- throw new DeployApiError(slugError, 400);
397
- }
398
- for (const domain of (_a = args.source.egressAllowedDomains) !== null && _a !== void 0 ? _a : []) {
399
- const domainError = validateEgressDomain(domain);
400
- if (domainError !== undefined) {
401
- throw new DeployApiError(domainError, 400);
402
- }
370
+ async deploy(args) {
371
+ const slugError = validateDeploymentSlug(args.slug);
372
+ if (slugError !== undefined) {
373
+ throw new DeployApiError(slugError, 400);
374
+ }
375
+ for (const domain of args.source.egressAllowedDomains ?? []) {
376
+ const domainError = validateEgressDomain(domain);
377
+ if (domainError !== undefined) {
378
+ throw new DeployApiError(domainError, 400);
403
379
  }
404
- // Only the git-ref member exists today; a future artifact member would
405
- // upload the build first and post a different body from this branch.
406
- const body = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ teamId: args.teamId, slug: args.slug, gitRepoUrl: args.source.gitRepoUrl }, (args.source.gitRef === undefined ? {} : { gitRef: args.source.gitRef })), (args.source.agentPath === undefined ? {} : { agentPath: args.source.agentPath })), (args.source.cursorEventRepos === undefined
380
+ }
381
+ // Only the git-ref member exists today; a future artifact member would
382
+ // upload the build first and post a different body from this branch.
383
+ const body = {
384
+ teamId: args.teamId,
385
+ slug: args.slug,
386
+ gitRepoUrl: args.source.gitRepoUrl,
387
+ ...(args.source.gitRef === undefined ? {} : { gitRef: args.source.gitRef }),
388
+ ...(args.source.agentPath === undefined ? {} : { agentPath: args.source.agentPath }),
389
+ ...(args.source.cursorEventRepos === undefined
407
390
  ? {}
408
- : { cursorEventRepos: args.source.cursorEventRepos })), (args.source.egressAllowedDomains === undefined
391
+ : { cursorEventRepos: args.source.cursorEventRepos }),
392
+ ...(args.source.egressAllowedDomains === undefined
409
393
  ? {}
410
- : { egressAllowedDomains: args.source.egressAllowedDomains })), {
411
- // JSON.stringify drops undefined keys.
412
- publicRoutePaths: args.source.publicRoutePaths, template: args.template });
413
- const send = () => this.request({
414
- method: "POST",
415
- path: "/internal/agent-serve/deployments",
416
- body,
417
- context: { verb: "deploy", slug: args.slug },
418
- });
419
- let raw;
420
- try {
421
- raw = yield send();
422
- }
423
- catch (error) {
424
- const unsupportedTemplate = args.template !== undefined &&
425
- error instanceof DeployApiError &&
426
- error.status === 400 &&
427
- error.message.toLowerCase().includes("template") &&
428
- /unrecognized|unknown/i.test(error.message);
429
- if (!unsupportedTemplate) {
430
- throw error;
431
- }
432
- delete body.template;
433
- raw = yield send();
394
+ : { egressAllowedDomains: args.source.egressAllowedDomains }),
395
+ // JSON.stringify drops undefined keys.
396
+ publicRoutePaths: args.source.publicRoutePaths,
397
+ template: args.template,
398
+ };
399
+ const send = () => this.request({
400
+ method: "POST",
401
+ path: "/internal/agent-serve/deployments",
402
+ body,
403
+ context: { verb: "deploy", slug: args.slug },
404
+ });
405
+ let raw;
406
+ try {
407
+ raw = await send();
408
+ }
409
+ catch (error) {
410
+ const unsupportedTemplate = args.template !== undefined &&
411
+ error instanceof DeployApiError &&
412
+ error.status === 400 &&
413
+ error.message.toLowerCase().includes("template") &&
414
+ /unrecognized|unknown/i.test(error.message);
415
+ if (!unsupportedTemplate) {
416
+ throw error;
434
417
  }
435
- return deployAcceptedSchema.parse(raw);
436
- });
418
+ delete body.template;
419
+ raw = await send();
420
+ }
421
+ return deployAcceptedSchema.parse(raw);
437
422
  }
438
423
  /**
439
424
  * Create or redeploy an architecture-v2 deployment. Poll
@@ -441,402 +426,355 @@ export class AgentServeDeployClient {
441
426
  * one application with several release components (one per agent
442
427
  * directory); it is mutually exclusive with `agentPath`.
443
428
  */
444
- deployAgentkit(args) {
445
- return __awaiter(this, void 0, void 0, function* () {
446
- var _a;
447
- const slugError = validateDeploymentSlug(args.slug);
448
- if (slugError !== undefined) {
449
- throw new DeployApiError(slugError, 400);
450
- }
451
- for (const component of (_a = args.components) !== null && _a !== void 0 ? _a : []) {
452
- const keyError = validateDeploymentSlug(component.componentKey);
453
- if (keyError !== undefined) {
454
- throw new DeployApiError(`Invalid component key ${JSON.stringify(component.componentKey)}: use lowercase letters, digits, '-' or '_' (max 64 chars)`, 400);
455
- }
429
+ async deployAgentkit(args) {
430
+ const slugError = validateDeploymentSlug(args.slug);
431
+ if (slugError !== undefined) {
432
+ throw new DeployApiError(slugError, 400);
433
+ }
434
+ for (const component of args.components ?? []) {
435
+ const keyError = validateDeploymentSlug(component.componentKey);
436
+ if (keyError !== undefined) {
437
+ throw new DeployApiError(`Invalid component key ${JSON.stringify(component.componentKey)}: use lowercase letters, digits, '-' or '_' (max 64 chars)`, 400);
456
438
  }
457
- const raw = yield this.request({
458
- method: "POST",
459
- path: "/internal/agentsdk/deployments",
460
- body: Object.assign(Object.assign(Object.assign({ teamId: args.teamId, slug: args.slug, gitRepoUrl: args.gitRepoUrl, gitRef: args.gitRef, agentPath: args.agentPath, components: args.components, repositories: args.repositories !== undefined && args.repositories.length > 0
461
- ? args.repositories
462
- : undefined }, (args.multiTenant === true ? { multiTenant: true } : {})), { persistent: args.persistent }), (args.image === undefined ? {} : { image: args.image })),
463
- context: { verb: "deploy", slug: args.slug },
464
- });
465
- return agentkitDeployAcceptedSchema.parse(raw);
466
- });
467
- }
468
- getAgentkitDeploy(args) {
469
- return __awaiter(this, void 0, void 0, function* () {
470
- const raw = yield this.request({
471
- method: "GET",
472
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}?teamId=${args.teamId}`,
473
- context: { verb: "get deployment", slug: args.slug },
474
- });
475
- return agentkitDeployStatusSchema.parse(raw);
476
- });
439
+ }
440
+ const raw = await this.request({
441
+ method: "POST",
442
+ path: "/internal/agentsdk/deployments",
443
+ body: {
444
+ teamId: args.teamId,
445
+ slug: args.slug,
446
+ gitRepoUrl: args.gitRepoUrl,
447
+ gitRef: args.gitRef,
448
+ agentPath: args.agentPath,
449
+ components: args.components,
450
+ repositories: args.repositories !== undefined && args.repositories.length > 0
451
+ ? args.repositories
452
+ : undefined,
453
+ ...(args.multiTenant === true ? { multiTenant: true } : {}),
454
+ persistent: args.persistent,
455
+ ...(args.image === undefined ? {} : { image: args.image }),
456
+ },
457
+ context: { verb: "deploy", slug: args.slug },
458
+ });
459
+ return agentkitDeployAcceptedSchema.parse(raw);
460
+ }
461
+ async getAgentkitDeploy(args) {
462
+ const raw = await this.request({
463
+ method: "GET",
464
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}?teamId=${args.teamId}`,
465
+ context: { verb: "get deployment", slug: args.slug },
466
+ });
467
+ return agentkitDeployStatusSchema.parse(raw);
477
468
  }
478
469
  /**
479
470
  * Stop an architecture-v2 deployment. Poll {@link getAgentkitDeploy} until
480
471
  * `stopped`.
481
472
  */
482
- stopAgentkit(args) {
483
- return __awaiter(this, void 0, void 0, function* () {
484
- const raw = yield this.request({
485
- method: "POST",
486
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/stop?teamId=${args.teamId}` +
487
- (args.cancelRuns === true ? "&cancelRuns=true" : ""),
488
- context: { verb: "stop", slug: args.slug },
489
- });
490
- return agentkitStopAcceptedSchema.parse(raw);
473
+ async stopAgentkit(args) {
474
+ const raw = await this.request({
475
+ method: "POST",
476
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/stop?teamId=${args.teamId}` +
477
+ (args.cancelRuns === true ? "&cancelRuns=true" : ""),
478
+ context: { verb: "stop", slug: args.slug },
491
479
  });
480
+ return agentkitStopAcceptedSchema.parse(raw);
492
481
  }
493
482
  /** Start an architecture-v2 deployment with a compatibility fallback. */
494
- startAgentkit(args) {
495
- return __awaiter(this, void 0, void 0, function* () {
496
- const encoded = encodeURIComponent(args.slug);
497
- try {
498
- const raw = yield this.request({
499
- method: "POST",
500
- path: `/internal/agentsdk/deployments/${encoded}/start?teamId=${args.teamId}`,
501
- context: { verb: "start", slug: args.slug },
502
- });
503
- return agentkitGlobalSuspensionAcceptedSchema.parse(raw);
504
- }
505
- catch (error) {
506
- if (!(error instanceof DeployApiError) || error.status !== 404) {
507
- throw error;
508
- }
509
- const raw = yield this.request({
510
- method: "POST",
511
- path: `/internal/agentsdk/deployments/${encoded}/global-resume?teamId=${args.teamId}`,
512
- context: { verb: "start", slug: args.slug },
513
- });
514
- return agentkitGlobalSuspensionAcceptedSchema.parse(raw);
515
- }
516
- });
517
- }
518
- setAgentkitGlobalSuspension(args) {
519
- return __awaiter(this, void 0, void 0, function* () {
520
- const action = args.suspended ? "global-stop" : "global-resume";
521
- const cancelQuery = args.suspended === true && args.cancelRuns === true ? "&cancelRuns=true" : "";
522
- const raw = yield this.request({
483
+ async startAgentkit(args) {
484
+ const encoded = encodeURIComponent(args.slug);
485
+ try {
486
+ const raw = await this.request({
523
487
  method: "POST",
524
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/${action}?teamId=${args.teamId}${cancelQuery}`,
525
- context: {
526
- verb: args.suspended ? "globally stop" : "globally resume",
527
- slug: args.slug,
528
- },
488
+ path: `/internal/agentsdk/deployments/${encoded}/start?teamId=${args.teamId}`,
489
+ context: { verb: "start", slug: args.slug },
529
490
  });
530
491
  return agentkitGlobalSuspensionAcceptedSchema.parse(raw);
531
- });
532
- }
533
- killAgentkit(args) {
534
- return __awaiter(this, void 0, void 0, function* () {
535
- const raw = yield this.request({
492
+ }
493
+ catch (error) {
494
+ if (!(error instanceof DeployApiError) || error.status !== 404) {
495
+ throw error;
496
+ }
497
+ const raw = await this.request({
536
498
  method: "POST",
537
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/kill?teamId=${args.teamId}`,
538
- context: { verb: "kill", slug: args.slug },
499
+ path: `/internal/agentsdk/deployments/${encoded}/global-resume?teamId=${args.teamId}`,
500
+ context: { verb: "start", slug: args.slug },
539
501
  });
540
- return agentkitStopAcceptedSchema.parse(raw);
541
- });
502
+ return agentkitGlobalSuspensionAcceptedSchema.parse(raw);
503
+ }
542
504
  }
543
- unlockAgentkitDeploys(args) {
544
- return __awaiter(this, void 0, void 0, function* () {
545
- const raw = yield this.request({
546
- method: "POST",
547
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/unlock-deploys?teamId=${args.teamId}`,
548
- context: { verb: "unlock deploys", slug: args.slug },
549
- });
550
- return z
551
- .object({
552
- applicationId: z.string().min(1),
553
- deployLocked: z.literal(false),
554
- })
555
- .parse(raw);
556
- });
505
+ async setAgentkitGlobalSuspension(args) {
506
+ const action = args.suspended ? "global-stop" : "global-resume";
507
+ const cancelQuery = args.suspended === true && args.cancelRuns === true ? "&cancelRuns=true" : "";
508
+ const raw = await this.request({
509
+ method: "POST",
510
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/${action}?teamId=${args.teamId}${cancelQuery}`,
511
+ context: {
512
+ verb: args.suspended ? "globally stop" : "globally resume",
513
+ slug: args.slug,
514
+ },
515
+ });
516
+ return agentkitGlobalSuspensionAcceptedSchema.parse(raw);
517
+ }
518
+ async killAgentkit(args) {
519
+ const raw = await this.request({
520
+ method: "POST",
521
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/kill?teamId=${args.teamId}`,
522
+ context: { verb: "kill", slug: args.slug },
523
+ });
524
+ return agentkitStopAcceptedSchema.parse(raw);
525
+ }
526
+ async unlockAgentkitDeploys(args) {
527
+ const raw = await this.request({
528
+ method: "POST",
529
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/unlock-deploys?teamId=${args.teamId}`,
530
+ context: { verb: "unlock deploys", slug: args.slug },
531
+ });
532
+ return z
533
+ .object({
534
+ applicationId: z.string().min(1),
535
+ deployLocked: z.literal(false),
536
+ })
537
+ .parse(raw);
557
538
  }
558
- cancelAgentkitRuns(args) {
559
- return __awaiter(this, void 0, void 0, function* () {
560
- const raw = yield this.request({
561
- method: "POST",
562
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/cancel-runs?teamId=${args.teamId}`,
563
- context: { verb: "cancel runs", slug: args.slug },
564
- });
565
- return agentkitCancelRunsResultSchema.parse(raw);
539
+ async cancelAgentkitRuns(args) {
540
+ const raw = await this.request({
541
+ method: "POST",
542
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/cancel-runs?teamId=${args.teamId}`,
543
+ context: { verb: "cancel runs", slug: args.slug },
566
544
  });
545
+ return agentkitCancelRunsResultSchema.parse(raw);
567
546
  }
568
547
  /** Repoint a managed deployment's event repositories. */
569
- setAgentkitEventRepositories(args) {
570
- return __awaiter(this, void 0, void 0, function* () {
571
- const raw = yield this.request({
572
- method: "PUT",
573
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/event-repositories?teamId=${args.teamId}`,
574
- body: { repositories: args.repositories },
575
- context: { verb: "set event repositories", slug: args.slug },
576
- });
577
- return agentkitEventRepositoriesSchema.parse(raw).repositories;
578
- });
579
- }
580
- upgradeAgentkitInstall(args) {
581
- return __awaiter(this, void 0, void 0, function* () {
582
- return this.pinAgentkitInstall("upgrade", args);
583
- });
584
- }
585
- rollbackAgentkitInstall(args) {
586
- return __awaiter(this, void 0, void 0, function* () {
587
- return this.pinAgentkitInstall("rollback", args);
588
- });
589
- }
590
- pinAgentkitInstall(direction, args) {
591
- return __awaiter(this, void 0, void 0, function* () {
592
- const raw = yield this.request({
593
- method: direction === "upgrade" ? "PUT" : "POST",
594
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/${direction === "upgrade" ? "release" : "rollback"}?teamId=${args.teamId}`,
595
- body: Object.assign(Object.assign({}, (args.releaseId === undefined ? {} : { releaseId: args.releaseId })), (args.version === undefined ? {} : { version: args.version })),
596
- context: {
597
- verb: direction === "upgrade" ? "upgrade" : "roll back",
598
- slug: args.slug,
599
- },
600
- });
601
- return agentkitInstallReleaseSchema.parse(raw).releaseId;
602
- });
548
+ async setAgentkitEventRepositories(args) {
549
+ const raw = await this.request({
550
+ method: "PUT",
551
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/event-repositories?teamId=${args.teamId}`,
552
+ body: { repositories: args.repositories },
553
+ context: { verb: "set event repositories", slug: args.slug },
554
+ });
555
+ return agentkitEventRepositoriesSchema.parse(raw).repositories;
556
+ }
557
+ async upgradeAgentkitInstall(args) {
558
+ return this.pinAgentkitInstall("upgrade", args);
559
+ }
560
+ async rollbackAgentkitInstall(args) {
561
+ return this.pinAgentkitInstall("rollback", args);
562
+ }
563
+ async pinAgentkitInstall(direction, args) {
564
+ const raw = await this.request({
565
+ method: direction === "upgrade" ? "PUT" : "POST",
566
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/${direction === "upgrade" ? "release" : "rollback"}?teamId=${args.teamId}`,
567
+ body: {
568
+ ...(args.releaseId === undefined ? {} : { releaseId: args.releaseId }),
569
+ ...(args.version === undefined ? {} : { version: args.version }),
570
+ },
571
+ context: {
572
+ verb: direction === "upgrade" ? "upgrade" : "roll back",
573
+ slug: args.slug,
574
+ },
575
+ });
576
+ return agentkitInstallReleaseSchema.parse(raw).releaseId;
603
577
  }
604
578
  /**
605
579
  * Delete an architecture-v2 deployment. Poll {@link getAgentkitDeploy}
606
580
  * until it is no longer found.
607
581
  */
608
- deleteAgentkit(args) {
609
- return __awaiter(this, void 0, void 0, function* () {
610
- const raw = yield this.request({
611
- method: "DELETE",
612
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}?teamId=${args.teamId}`,
613
- context: { verb: "delete", slug: args.slug },
614
- });
615
- return agentkitStopAcceptedSchema.parse(raw);
582
+ async deleteAgentkit(args) {
583
+ const raw = await this.request({
584
+ method: "DELETE",
585
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}?teamId=${args.teamId}`,
586
+ context: { verb: "delete", slug: args.slug },
616
587
  });
588
+ return agentkitStopAcceptedSchema.parse(raw);
617
589
  }
618
590
  /**
619
591
  * Start or, with `sessionId`, resume a hosted architecture-v2 session.
620
592
  */
621
- startSession(args) {
622
- return __awaiter(this, void 0, void 0, function* () {
623
- const raw = yield this.request({
624
- method: "POST",
625
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/sessions`,
626
- body: {
627
- teamId: args.teamId,
628
- message: args.message,
629
- sessionId: args.sessionId,
630
- dryRun: args.dryRun === true ? true : undefined,
631
- asOf: args.asOf,
632
- componentKey: args.componentKey,
633
- },
634
- context: { verb: "start session", slug: args.slug },
635
- });
636
- return agentkitStartSessionAcceptedSchema.parse(raw);
637
- });
593
+ async startSession(args) {
594
+ const raw = await this.request({
595
+ method: "POST",
596
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/sessions`,
597
+ body: {
598
+ teamId: args.teamId,
599
+ message: args.message,
600
+ sessionId: args.sessionId,
601
+ dryRun: args.dryRun === true ? true : undefined,
602
+ asOf: args.asOf,
603
+ componentKey: args.componentKey,
604
+ },
605
+ context: { verb: "start session", slug: args.slug },
606
+ });
607
+ return agentkitStartSessionAcceptedSchema.parse(raw);
638
608
  }
639
609
  /** Hosted executions and the start-log tee for one v2 session. */
640
- getAgentkitSessionRuns(args) {
641
- return __awaiter(this, void 0, void 0, function* () {
642
- const raw = yield this.request({
643
- method: "GET",
644
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/sessions/${encodeURIComponent(args.sessionId)}/runs?teamId=${args.teamId}`,
645
- context: { verb: "get session runs", slug: args.slug },
646
- });
647
- return agentkitSessionRunsSchema.parse(raw);
610
+ async getAgentkitSessionRuns(args) {
611
+ const raw = await this.request({
612
+ method: "GET",
613
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/sessions/${encodeURIComponent(args.sessionId)}/runs?teamId=${args.teamId}`,
614
+ context: { verb: "get session runs", slug: args.slug },
648
615
  });
616
+ return agentkitSessionRunsSchema.parse(raw);
649
617
  }
650
618
  /** Events written so far. Pass `afterEventIndex: -1` to read from the start. */
651
- getAgentkitSessionEvents(args) {
652
- return __awaiter(this, void 0, void 0, function* () {
653
- const raw = yield this.request({
654
- method: "GET",
655
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}` +
656
- `/sessions/${encodeURIComponent(args.sessionId)}/events` +
657
- `?teamId=${args.teamId}&afterEventIndex=${args.afterEventIndex}`,
658
- context: { verb: "get session events", slug: args.slug },
659
- });
660
- return agentkitSessionEventPollSchema.parse(raw);
619
+ async getAgentkitSessionEvents(args) {
620
+ const raw = await this.request({
621
+ method: "GET",
622
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}` +
623
+ `/sessions/${encodeURIComponent(args.sessionId)}/events` +
624
+ `?teamId=${args.teamId}&afterEventIndex=${args.afterEventIndex}`,
625
+ context: { verb: "get session events", slug: args.slug },
661
626
  });
627
+ return agentkitSessionEventPollSchema.parse(raw);
662
628
  }
663
629
  /**
664
630
  * Recent output of the deployment's most recent sessions, oldest first, or
665
631
  * of one session when `sessionId` is set.
666
632
  */
667
- getAgentkitDeploymentLogs(args) {
668
- return __awaiter(this, void 0, void 0, function* () {
669
- const query = new URLSearchParams({ teamId: String(args.teamId) });
670
- if (args.sessionId !== undefined) {
671
- query.set("sessionId", args.sessionId);
672
- }
673
- const raw = yield this.request({
674
- method: "GET",
675
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/logs?${query}`,
676
- context: { verb: "get logs", slug: args.slug },
677
- signal: args.signal,
678
- });
679
- return agentkitDeploymentLogsSchema.parse(raw).sessions;
680
- });
681
- }
682
- listDeployments(args) {
683
- return __awaiter(this, void 0, void 0, function* () {
684
- const raw = yield this.request({
633
+ async getAgentkitDeploymentLogs(args) {
634
+ const query = new URLSearchParams({ teamId: String(args.teamId) });
635
+ if (args.sessionId !== undefined) {
636
+ query.set("sessionId", args.sessionId);
637
+ }
638
+ const raw = await this.request({
639
+ method: "GET",
640
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/logs?${query}`,
641
+ context: { verb: "get logs", slug: args.slug },
642
+ signal: args.signal,
643
+ });
644
+ return agentkitDeploymentLogsSchema.parse(raw).sessions;
645
+ }
646
+ async listDeployments(args) {
647
+ const raw = await this.request({
648
+ method: "GET",
649
+ path: `/internal/agent-serve/deployments?teamId=${args.teamId}`,
650
+ context: { verb: "list deployments" },
651
+ });
652
+ return listResponseSchema.parse(raw).deployments;
653
+ }
654
+ async listAgentkitDeployments(args) {
655
+ const deployments = [];
656
+ let pageToken = null;
657
+ do {
658
+ const qs = `teamId=${args.teamId}&pageSize=100` +
659
+ (pageToken === null ? "" : `&pageToken=${encodeURIComponent(pageToken)}`);
660
+ const page = agentkitDeploymentListResponseSchema.parse(await this.request({
685
661
  method: "GET",
686
- path: `/internal/agent-serve/deployments?teamId=${args.teamId}`,
687
- context: { verb: "list deployments" },
688
- });
689
- return listResponseSchema.parse(raw).deployments;
690
- });
691
- }
692
- listAgentkitDeployments(args) {
693
- return __awaiter(this, void 0, void 0, function* () {
694
- const deployments = [];
695
- let pageToken = null;
696
- do {
697
- const qs = `teamId=${args.teamId}&pageSize=100` +
698
- (pageToken === null ? "" : `&pageToken=${encodeURIComponent(pageToken)}`);
699
- const page = agentkitDeploymentListResponseSchema.parse(yield this.request({
700
- method: "GET",
701
- path: `/internal/agentsdk/deployments?${qs}`,
702
- context: { verb: "list architecture v2 deployments" },
703
- }));
704
- deployments.push(...page.deployments);
705
- pageToken = page.nextPageToken;
706
- } while (pageToken !== null);
707
- return deployments;
708
- });
709
- }
710
- getDeployment(args) {
711
- return __awaiter(this, void 0, void 0, function* () {
712
- const raw = yield this.request({
713
- method: "GET",
714
- path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}?teamId=${args.teamId}`,
715
- context: { verb: "get deployment", slug: args.slug },
716
- });
717
- return deploymentDetailSchema.parse(raw);
718
- });
719
- }
720
- stopDeployment(args) {
721
- return __awaiter(this, void 0, void 0, function* () {
722
- const raw = yield this.request({
723
- method: "POST",
724
- path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}/stop?teamId=${args.teamId}`,
725
- context: { verb: "stop", slug: args.slug },
726
- });
727
- return stopAcceptedSchema.parse(raw);
728
- });
729
- }
730
- deleteDeployment(args) {
731
- return __awaiter(this, void 0, void 0, function* () {
732
- const raw = yield this.request({
733
- method: "DELETE",
734
- path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}?teamId=${args.teamId}`,
735
- context: { verb: "delete", slug: args.slug },
736
- });
737
- return stopAcceptedSchema.parse(raw);
738
- });
662
+ path: `/internal/agentsdk/deployments?${qs}`,
663
+ context: { verb: "list architecture v2 deployments" },
664
+ }));
665
+ deployments.push(...page.deployments);
666
+ pageToken = page.nextPageToken;
667
+ } while (pageToken !== null);
668
+ return deployments;
669
+ }
670
+ async getDeployment(args) {
671
+ const raw = await this.request({
672
+ method: "GET",
673
+ path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}?teamId=${args.teamId}`,
674
+ context: { verb: "get deployment", slug: args.slug },
675
+ });
676
+ return deploymentDetailSchema.parse(raw);
677
+ }
678
+ async stopDeployment(args) {
679
+ const raw = await this.request({
680
+ method: "POST",
681
+ path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}/stop?teamId=${args.teamId}`,
682
+ context: { verb: "stop", slug: args.slug },
683
+ });
684
+ return stopAcceptedSchema.parse(raw);
685
+ }
686
+ async deleteDeployment(args) {
687
+ const raw = await this.request({
688
+ method: "DELETE",
689
+ path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}?teamId=${args.teamId}`,
690
+ context: { verb: "delete", slug: args.slug },
691
+ });
692
+ return stopAcceptedSchema.parse(raw);
739
693
  }
740
694
  /** Returns the new alias token exactly once; the old one dies now. */
741
- rotateAliasToken(args) {
742
- return __awaiter(this, void 0, void 0, function* () {
743
- const raw = yield this.request({
744
- method: "POST",
745
- path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}/rotate-alias-token?teamId=${args.teamId}`,
746
- context: { verb: "rotate alias token", slug: args.slug },
747
- });
748
- return rotateResponseSchema.parse(raw).aliasToken;
695
+ async rotateAliasToken(args) {
696
+ const raw = await this.request({
697
+ method: "POST",
698
+ path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}/rotate-alias-token?teamId=${args.teamId}`,
699
+ context: { verb: "rotate alias token", slug: args.slug },
749
700
  });
701
+ return rotateResponseSchema.parse(raw).aliasToken;
750
702
  }
751
703
  /** Rotate the alias token on an AgentSDK v2 deployment. */
752
- rotateAgentsdkAliasToken(args) {
753
- return __awaiter(this, void 0, void 0, function* () {
754
- const raw = yield this.request({
755
- method: "POST",
756
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/rotate-alias-token?teamId=${args.teamId}`,
757
- context: { verb: "rotate alias token", slug: args.slug },
758
- });
759
- return rotateResponseSchema.parse(raw).aliasToken;
704
+ async rotateAgentsdkAliasToken(args) {
705
+ const raw = await this.request({
706
+ method: "POST",
707
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/rotate-alias-token?teamId=${args.teamId}`,
708
+ context: { verb: "rotate alias token", slug: args.slug },
760
709
  });
710
+ return rotateResponseSchema.parse(raw).aliasToken;
761
711
  }
762
712
  /**
763
713
  * Upsert secrets by name (unlisted names stay untouched). Returns the
764
714
  * post-write union of secret names, sorted. Validates names and value
765
715
  * sizes client-side with the backend's grammar before any network call.
766
716
  */
767
- setSecrets(args) {
768
- return __awaiter(this, void 0, void 0, function* () {
769
- this.validateSecrets(args.secrets);
770
- const raw = yield this.request({
771
- method: "PUT",
772
- path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}/secrets`,
773
- body: { teamId: args.teamId, secrets: args.secrets },
774
- context: { verb: "set secrets", slug: args.slug },
775
- });
776
- return setSecretsResponseSchema.parse(raw).secretNames;
717
+ async setSecrets(args) {
718
+ this.validateSecrets(args.secrets);
719
+ const raw = await this.request({
720
+ method: "PUT",
721
+ path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}/secrets`,
722
+ body: { teamId: args.teamId, secrets: args.secrets },
723
+ context: { verb: "set secrets", slug: args.slug },
777
724
  });
725
+ return setSecretsResponseSchema.parse(raw).secretNames;
778
726
  }
779
727
  /** Upsert application-scoped secrets on an AgentSDK v2 deployment. */
780
- setAgentkitSecrets(args) {
781
- return __awaiter(this, void 0, void 0, function* () {
782
- this.validateSecrets(args.secrets);
783
- const raw = yield this.request({
784
- method: "PUT",
785
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/secrets`,
786
- body: { teamId: args.teamId, secrets: args.secrets },
787
- context: { verb: "set secrets", slug: args.slug },
788
- });
789
- return setSecretsResponseSchema.parse(raw).secretNames;
728
+ async setAgentkitSecrets(args) {
729
+ this.validateSecrets(args.secrets);
730
+ const raw = await this.request({
731
+ method: "PUT",
732
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/secrets`,
733
+ body: { teamId: args.teamId, secrets: args.secrets },
734
+ context: { verb: "set secrets", slug: args.slug },
790
735
  });
736
+ return setSecretsResponseSchema.parse(raw).secretNames;
791
737
  }
792
738
  /** Secret names + creation times; values are never returned. */
793
- listSecrets(args) {
794
- return __awaiter(this, void 0, void 0, function* () {
795
- const raw = yield this.request({
796
- method: "GET",
797
- path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}/secrets?teamId=${args.teamId}`,
798
- context: { verb: "list secrets", slug: args.slug },
799
- });
800
- return listSecretsResponseSchema.parse(raw).secrets;
739
+ async listSecrets(args) {
740
+ const raw = await this.request({
741
+ method: "GET",
742
+ path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}/secrets?teamId=${args.teamId}`,
743
+ context: { verb: "list secrets", slug: args.slug },
801
744
  });
745
+ return listSecretsResponseSchema.parse(raw).secrets;
802
746
  }
803
747
  /** Secret names + creation times for an AgentSDK v2 application. */
804
- listAgentkitSecrets(args) {
805
- return __awaiter(this, void 0, void 0, function* () {
806
- const raw = yield this.request({
807
- method: "GET",
808
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/secrets?teamId=${args.teamId}`,
809
- context: { verb: "list secrets", slug: args.slug },
810
- });
811
- return listSecretsResponseSchema.parse(raw).secrets;
748
+ async listAgentkitSecrets(args) {
749
+ const raw = await this.request({
750
+ method: "GET",
751
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/secrets?teamId=${args.teamId}`,
752
+ context: { verb: "list secrets", slug: args.slug },
812
753
  });
754
+ return listSecretsResponseSchema.parse(raw).secrets;
813
755
  }
814
756
  /** Remove one secret by name; 404 when it is not set. */
815
- deleteSecret(args) {
816
- return __awaiter(this, void 0, void 0, function* () {
817
- const nameError = validateSettableSecretName(args.name);
818
- if (nameError !== undefined) {
819
- throw new DeployApiError(nameError, 400);
820
- }
821
- yield this.request({
822
- method: "DELETE",
823
- path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}/secrets/${encodeURIComponent(args.name)}?teamId=${args.teamId}`,
824
- context: { verb: "unset secret", slug: args.slug },
825
- });
757
+ async deleteSecret(args) {
758
+ const nameError = validateSettableSecretName(args.name);
759
+ if (nameError !== undefined) {
760
+ throw new DeployApiError(nameError, 400);
761
+ }
762
+ await this.request({
763
+ method: "DELETE",
764
+ path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}/secrets/${encodeURIComponent(args.name)}?teamId=${args.teamId}`,
765
+ context: { verb: "unset secret", slug: args.slug },
826
766
  });
827
767
  }
828
768
  /** Remove one application-scoped secret from an AgentSDK v2 deployment. */
829
- deleteAgentkitSecret(args) {
830
- return __awaiter(this, void 0, void 0, function* () {
831
- const nameError = validateSettableSecretName(args.name);
832
- if (nameError !== undefined) {
833
- throw new DeployApiError(nameError, 400);
834
- }
835
- yield this.request({
836
- method: "DELETE",
837
- path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/secrets/${encodeURIComponent(args.name)}?teamId=${args.teamId}`,
838
- context: { verb: "unset secret", slug: args.slug },
839
- });
769
+ async deleteAgentkitSecret(args) {
770
+ const nameError = validateSettableSecretName(args.name);
771
+ if (nameError !== undefined) {
772
+ throw new DeployApiError(nameError, 400);
773
+ }
774
+ await this.request({
775
+ method: "DELETE",
776
+ path: `/internal/agentsdk/deployments/${encodeURIComponent(args.slug)}/secrets/${encodeURIComponent(args.name)}?teamId=${args.teamId}`,
777
+ context: { verb: "unset secret", slug: args.slug },
840
778
  });
841
779
  }
842
780
  validateSecrets(secrets) {
@@ -859,26 +797,24 @@ export class AgentServeDeployClient {
859
797
  * indistinguishable 404s on the backend, so they map to one message here
860
798
  * (the wrong-host 404 hint from {@link mapErrorResponse} passes through).
861
799
  */
862
- exportAutomation(args) {
863
- return __awaiter(this, void 0, void 0, function* () {
864
- let raw;
865
- try {
866
- raw = yield this.request({
867
- method: "GET",
868
- path: `/internal/agent-serve/automations/${encodeURIComponent(args.uuid)}/export`,
869
- context: { verb: "export automation" },
870
- });
871
- }
872
- catch (error) {
873
- if (error instanceof DeployApiError &&
874
- error.status === 404 &&
875
- !error.message.includes("api.cursor.com")) {
876
- throw new DeployApiError(`Automation ${args.uuid} was not found or you don't have access to it (the agent_serve_mvp feature gate may also be off for your team).`, 404);
877
- }
878
- throw error;
800
+ async exportAutomation(args) {
801
+ let raw;
802
+ try {
803
+ raw = await this.request({
804
+ method: "GET",
805
+ path: `/internal/agent-serve/automations/${encodeURIComponent(args.uuid)}/export`,
806
+ context: { verb: "export automation" },
807
+ });
808
+ }
809
+ catch (error) {
810
+ if (error instanceof DeployApiError &&
811
+ error.status === 404 &&
812
+ !error.message.includes("api.cursor.com")) {
813
+ throw new DeployApiError(`Automation ${args.uuid} was not found or you don't have access to it (the agent_serve_mvp feature gate may also be off for your team).`, 404);
879
814
  }
880
- return automationExportSchema.parse(raw);
881
- });
815
+ throw error;
816
+ }
817
+ return automationExportSchema.parse(raw);
882
818
  }
883
819
  /** Full URL of the stable engine alias for a deployment. */
884
820
  aliasUrl(engineAlias) {
@@ -894,72 +830,71 @@ export class AgentServeDeployClient {
894
830
  return `${this.backendUrl}/internal/agent-serve/mcp/${teamId}/${encodeURIComponent(slug)}`;
895
831
  }
896
832
  /** Team container images, newest first, with the per-team cap. */
897
- listContainerImages(args) {
898
- return __awaiter(this, void 0, void 0, function* () {
899
- const raw = yield this.request({
900
- method: "GET",
901
- path: `/internal/agentsdk/images?teamId=${args.teamId}`,
902
- context: { verb: "list images" },
903
- });
904
- return listContainerImagesResponseSchema.parse(raw);
833
+ async listContainerImages(args) {
834
+ const raw = await this.request({
835
+ method: "GET",
836
+ path: `/internal/agentsdk/images?teamId=${args.teamId}`,
837
+ context: { verb: "list images" },
905
838
  });
839
+ return listContainerImagesResponseSchema.parse(raw);
906
840
  }
907
841
  /** Start (or restart) the upload for `name`; 409 when a new name would exceed the cap. */
908
- beginContainerImageUpload(args) {
909
- return __awaiter(this, void 0, void 0, function* () {
910
- const { name } = args, body = __rest(args, ["name"]);
911
- const raw = yield this.request({
912
- method: "POST",
913
- path: `/internal/agentsdk/images/${encodeURIComponent(name)}/begin`,
914
- body,
915
- context: { verb: "push image" },
916
- });
917
- return containerImageUploadSchema.parse(raw);
842
+ async beginContainerImageUpload(args) {
843
+ const { name, ...body } = args;
844
+ const raw = await this.request({
845
+ method: "POST",
846
+ path: `/internal/agentsdk/images/${encodeURIComponent(name)}/begin`,
847
+ body,
848
+ context: { verb: "push image" },
918
849
  });
850
+ return containerImageUploadSchema.parse(raw);
919
851
  }
920
852
  /** Every part is uploaded: complete the object and mark the image ready. */
921
- finalizeContainerImage(args) {
922
- return __awaiter(this, void 0, void 0, function* () {
923
- const raw = yield this.request({
924
- method: "POST",
925
- path: `/internal/agentsdk/images/${encodeURIComponent(args.name)}/finalize`,
926
- body: { teamId: args.teamId, uploadId: args.uploadId, parts: args.parts },
927
- context: { verb: "push image" },
928
- });
929
- return z.object({ image: containerImageSchema }).passthrough().parse(raw).image;
853
+ async finalizeContainerImage(args) {
854
+ const raw = await this.request({
855
+ method: "POST",
856
+ path: `/internal/agentsdk/images/${encodeURIComponent(args.name)}/finalize`,
857
+ body: { teamId: args.teamId, uploadId: args.uploadId, parts: args.parts },
858
+ context: { verb: "push image" },
930
859
  });
860
+ return z.object({ image: containerImageSchema }).passthrough().parse(raw).image;
931
861
  }
932
862
  /** Remove one image and its tarball; 404 when there is none by that name. */
933
- deleteContainerImage(args) {
934
- return __awaiter(this, void 0, void 0, function* () {
935
- yield this.request({
936
- method: "DELETE",
937
- path: `/internal/agentsdk/images/${encodeURIComponent(args.name)}?teamId=${args.teamId}`,
938
- context: { verb: "remove image" },
863
+ async deleteContainerImage(args) {
864
+ await this.request({
865
+ method: "DELETE",
866
+ path: `/internal/agentsdk/images/${encodeURIComponent(args.name)}?teamId=${args.teamId}`,
867
+ context: { verb: "remove image" },
868
+ });
869
+ }
870
+ async request(args) {
871
+ const timeout = AbortSignal.timeout(60_000);
872
+ let response;
873
+ try {
874
+ response = await this.fetchImpl(`${this.backendUrl}${args.path}`, {
875
+ method: args.method,
876
+ headers: {
877
+ accept: "application/json",
878
+ authorization: `Bearer ${this.apiKey}`,
879
+ ...(args.body === undefined ? {} : { "content-type": "application/json" }),
880
+ },
881
+ ...(args.body === undefined ? {} : { body: JSON.stringify(args.body) }),
882
+ signal: args.signal === undefined ? timeout : AbortSignal.any([args.signal, timeout]),
939
883
  });
940
- });
941
- }
942
- request(args) {
943
- return __awaiter(this, void 0, void 0, function* () {
944
- const timeout = AbortSignal.timeout(60000);
945
- let response;
946
- try {
947
- response = yield this.fetchImpl(`${this.backendUrl}${args.path}`, Object.assign(Object.assign({ method: args.method, headers: Object.assign({ accept: "application/json", authorization: `Bearer ${this.apiKey}` }, (args.body === undefined ? {} : { "content-type": "application/json" })) }, (args.body === undefined ? {} : { body: JSON.stringify(args.body) })), { signal: args.signal === undefined ? timeout : AbortSignal.any([args.signal, timeout]) }));
948
- }
949
- catch (error) {
950
- throw new DeployApiError(`Could not reach the Cursor backend at ${this.backendUrl}: ${error instanceof Error ? error.message : String(error)}`, 0);
951
- }
952
- const text = yield response.text();
953
- if (!response.ok) {
954
- throw mapErrorResponse(response, text, args.context);
955
- }
956
- try {
957
- return JSON.parse(text);
958
- }
959
- catch (_a) {
960
- throw new DeployApiError(`The Cursor backend returned a non-JSON response to ${args.context.verb}.`, response.status);
961
- }
962
- });
884
+ }
885
+ catch (error) {
886
+ throw new DeployApiError(`Could not reach the Cursor backend at ${this.backendUrl}: ${error instanceof Error ? error.message : String(error)}`, 0);
887
+ }
888
+ const text = await response.text();
889
+ if (!response.ok) {
890
+ throw mapErrorResponse(response, text, args.context);
891
+ }
892
+ try {
893
+ return JSON.parse(text);
894
+ }
895
+ catch {
896
+ throw new DeployApiError(`The Cursor backend returned a non-JSON response to ${args.context.verb}.`, response.status);
897
+ }
963
898
  }
964
899
  }
965
900
  const MCP_GATEWAY_PATH = /^\/internal\/agent-serve\/mcp\/(\d+)\/([^/]+)(?:\/tools)?\/?$/;
@@ -972,7 +907,7 @@ export function parseAgentServeMcpGatewayUrl(url) {
972
907
  try {
973
908
  parsed = new URL(url);
974
909
  }
975
- catch (_a) {
910
+ catch {
976
911
  return undefined;
977
912
  }
978
913
  const match = MCP_GATEWAY_PATH.exec(parsed.pathname);
@@ -999,22 +934,21 @@ function serverErrorText(bodyText) {
999
934
  return parsed.error;
1000
935
  }
1001
936
  }
1002
- catch (_a) {
937
+ catch {
1003
938
  // Non-JSON body — fall through.
1004
939
  }
1005
940
  return undefined;
1006
941
  }
1007
942
  function mapErrorResponse(response, bodyText, context) {
1008
- var _a;
1009
943
  const serverError = serverErrorText(bodyText);
1010
944
  const slugPart = context.slug === undefined ? "" : ` "${context.slug}"`;
1011
945
  switch (response.status) {
1012
946
  case 400:
1013
- return new DeployApiError(serverError !== null && serverError !== void 0 ? serverError : `The ${context.verb} request was rejected as invalid.`, 400);
947
+ return new DeployApiError(serverError ?? `The ${context.verb} request was rejected as invalid.`, 400);
1014
948
  case 401:
1015
949
  return new DeployApiError("The Cursor API key was rejected. Run `agent-sdk login` again or update CURSOR_API_KEY.", 401);
1016
950
  case 403:
1017
- return new DeployApiError(`${serverError !== null && serverError !== void 0 ? serverError : "Not authorized"} — deploying needs team membership and the cloud-agent entitlement on that team.`, 403);
951
+ return new DeployApiError(`${serverError ?? "Not authorized"} — deploying needs team membership and the cloud-agent entitlement on that team.`, 403);
1018
952
  case 404: {
1019
953
  // Fastify's route-not-found envelope means we hit the wrong host
1020
954
  // (api2 vs api.cursor.com), not a missing deployment / closed gate.
@@ -1029,15 +963,16 @@ function mapErrorResponse(response, bodyText, context) {
1029
963
  // The server's 409 body distinguishes real conflicts (CAS races,
1030
964
  // "still deploying", architecture-v2 slugs on the v1 surface); keep
1031
965
  // its message when present.
1032
- return new DeployApiError(serverError !== null && serverError !== void 0 ? serverError : `A concurrent deploy or stop is changing deployment${slugPart}; retry in a moment.`, 409);
966
+ return new DeployApiError(serverError ??
967
+ `A concurrent deploy or stop is changing deployment${slugPart}; retry in a moment.`, 409);
1033
968
  case 429: {
1034
969
  const retryAfterHeader = response.headers.get("retry-after");
1035
970
  const retryAfterSeconds = retryAfterHeader !== null && /^\d+$/.test(retryAfterHeader)
1036
971
  ? Number(retryAfterHeader)
1037
972
  : undefined;
1038
- return new DeployApiError(`${serverError !== null && serverError !== void 0 ? serverError : "Rate limited"}${retryAfterSeconds === undefined ? "" : ` — retry in ${retryAfterSeconds}s`}`, 429, retryAfterSeconds);
973
+ return new DeployApiError(`${serverError ?? "Rate limited"}${retryAfterSeconds === undefined ? "" : ` — retry in ${retryAfterSeconds}s`}`, 429, retryAfterSeconds);
1039
974
  }
1040
975
  default:
1041
- return new DeployApiError(`The ${context.verb} request failed (${response.status}): ${(_a = serverError !== null && serverError !== void 0 ? serverError : bodyText.slice(0, 300)) !== null && _a !== void 0 ? _a : "(empty body)"}`, response.status);
976
+ return new DeployApiError(`The ${context.verb} request failed (${response.status}): ${serverError ?? bodyText.slice(0, 300) ?? "(empty body)"}`, response.status);
1042
977
  }
1043
978
  }