@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
@@ -13,15 +13,19 @@ import { bindMailboxContinuationSend, continuationSource, normalizeIdentity, sta
13
13
  */
14
14
  export function routeLocalIngressContinuation(input) {
15
15
  if (input.identity === undefined) {
16
- return Object.assign({}, (input.deterministicContinuationKey === undefined
17
- ? {}
18
- : { explicitContinuationKey: input.deterministicContinuationKey }));
16
+ return {
17
+ ...(input.deterministicContinuationKey === undefined
18
+ ? {}
19
+ : { explicitContinuationKey: input.deterministicContinuationKey }),
20
+ };
19
21
  }
20
22
  const identity = normalizeIdentity(input.identity, input.kind);
21
23
  if (continuationSource(identity, input.kind) !== "control-plane") {
22
- return Object.assign({}, (input.deterministicContinuationKey === undefined
23
- ? {}
24
- : { explicitContinuationKey: input.deterministicContinuationKey }));
24
+ return {
25
+ ...(input.deterministicContinuationKey === undefined
26
+ ? {}
27
+ : { explicitContinuationKey: input.deterministicContinuationKey }),
28
+ };
25
29
  }
26
30
  const mailboxContinuation = stampMailboxContinuation(identity, input.eventType, input.payload, input.kind);
27
31
  if (mailboxContinuation.key.startsWith("cont:")) {
@@ -37,8 +41,10 @@ export function routeLocalIngressContinuation(input) {
37
41
  * calls `send()` — it does not extract. No-op for `/v1`.
38
42
  */
39
43
  export function bindLocalIngressSend(args, input) {
40
- var _a;
41
- const route = (_a = input.routeContinuation) !== null && _a !== void 0 ? _a : routeLocalIngressContinuation;
44
+ const route = input.routeContinuation ?? routeLocalIngressContinuation;
42
45
  const routed = route(input);
43
- return Object.assign(Object.assign({}, args), { send: bindMailboxContinuationSend(args.send, routed.mailboxContinuation) });
46
+ return {
47
+ ...args,
48
+ send: bindMailboxContinuationSend(args.send, routed.mailboxContinuation),
49
+ };
44
50
  }
@@ -5,8 +5,7 @@
5
5
  * the console is also retained for `GET /v1/logs`.
6
6
  */
7
7
  export function createLogRing(options = {}) {
8
- var _a;
9
- const capacity = Math.max(1, (_a = options.capacity) !== null && _a !== void 0 ? _a : 1000);
8
+ const capacity = Math.max(1, options.capacity ?? 1000);
10
9
  const entries = [];
11
10
  let nextIndex = 0;
12
11
  function push(line) {
@@ -3,23 +3,14 @@
3
3
  *
4
4
  * Customer-facing output never includes hosting URLs, tokens, or infra jargon.
5
5
  */
6
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
- return new (P || (P = Promise))(function (resolve, reject) {
9
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
- step((generator = generator.apply(thisArg, _arguments || [])).next());
13
- });
14
- };
15
6
  import { DeployApiError, } from "./deploy-client.js";
16
7
  import { mergeRequestHeaders } from "./request-headers.js";
17
8
  import { resolveProdTarget } from "./resolve-prod-target.js";
18
9
  import { stderrPalette } from "./terminal-style.js";
19
- const DEFAULT_POLL_INTERVAL_MS = 1000;
10
+ const DEFAULT_POLL_INTERVAL_MS = 1_000;
20
11
  /** Re-read abort state after await (loop narrowing would hide async abort). */
21
12
  function isAborted(signal) {
22
- return (signal === null || signal === void 0 ? void 0 : signal.aborted) === true;
13
+ return signal?.aborted === true;
23
14
  }
24
15
  const PROGRESS_MESSAGES = {
25
16
  queued: "Waiting to start…",
@@ -96,70 +87,66 @@ export function deployProgressLabel(detail) {
96
87
  }
97
88
  return detail.status;
98
89
  }
99
- export function fetchLogs(args) {
100
- return __awaiter(this, void 0, void 0, function* () {
101
- var _a;
102
- var _b, _c, _d;
103
- const fetchImpl = (_b = args.fetchImpl) !== null && _b !== void 0 ? _b : fetch;
104
- const after = (_c = args.after) !== null && _c !== void 0 ? _c : -1;
105
- const url = new URL(`${args.baseUrl.replace(/\/$/, "")}/v1/logs`);
106
- if (after >= 0) {
107
- url.searchParams.set("after", String(after));
108
- }
109
- const resp = yield fetchImpl(url, {
110
- headers: mergeRequestHeaders(args.auth),
111
- signal: args.signal,
112
- });
113
- if (!resp.ok) {
114
- throw new Error(`Could not fetch logs (HTTP ${resp.status}).`);
115
- }
116
- const body = (yield resp.json());
117
- const entries = Array.isArray(body.entries) ? body.entries : [];
118
- const nextAfter = typeof body.nextAfter === "number"
119
- ? body.nextAfter
120
- : entries.length === 0
121
- ? after
122
- : ((_d = (_a = entries[entries.length - 1]) === null || _a === void 0 ? void 0 : _a.index) !== null && _d !== void 0 ? _d : after);
123
- return { entries, nextAfter };
90
+ export async function fetchLogs(args) {
91
+ const fetchImpl = args.fetchImpl ?? fetch;
92
+ const after = args.after ?? -1;
93
+ const url = new URL(`${args.baseUrl.replace(/\/$/, "")}/v1/logs`);
94
+ if (after >= 0) {
95
+ url.searchParams.set("after", String(after));
96
+ }
97
+ const resp = await fetchImpl(url, {
98
+ headers: mergeRequestHeaders(args.auth),
99
+ signal: args.signal,
124
100
  });
101
+ if (!resp.ok) {
102
+ throw new Error(`Could not fetch logs (HTTP ${resp.status}).`);
103
+ }
104
+ const body = (await resp.json());
105
+ const entries = Array.isArray(body.entries) ? body.entries : [];
106
+ const nextAfter = typeof body.nextAfter === "number"
107
+ ? body.nextAfter
108
+ : entries.length === 0
109
+ ? after
110
+ : (entries[entries.length - 1]?.index ?? after);
111
+ return { entries, nextAfter };
125
112
  }
126
- export function runLogsTail(options) {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- var _a, _b, _c, _d, _e;
129
- const write = (_a = options.write) !== null && _a !== void 0 ? _a : ((text) => void process.stdout.write(text));
130
- const err = (_b = options.err) !== null && _b !== void 0 ? _b : ((text) => void process.stderr.write(text));
131
- const sleep = (_c = options.sleep) !== null && _c !== void 0 ? _c : sleepMs;
132
- const intervalMs = (_d = options.intervalMs) !== null && _d !== void 0 ? _d : DEFAULT_POLL_INTERVAL_MS;
133
- const c = stderrPalette();
134
- if (options.prod === true) {
135
- yield followProdLogs(Object.assign(Object.assign({}, options), { write,
136
- err,
137
- sleep,
138
- intervalMs, palette: c }));
139
- return;
140
- }
141
- const baseUrl = ((_e = options.url) !== null && _e !== void 0 ? _e : "http://127.0.0.1:3000").replace(/\/$/, "");
142
- if (options.once !== true) {
143
- err(c.dim("Tailing logs… (Ctrl-C to stop)\n"));
144
- }
145
- yield followRuntimeLogs({
146
- baseUrl,
147
- auth: { bearerToken: options.bearerToken },
148
- once: options.once === true,
149
- json: options.json === true,
150
- fetchImpl: options.fetchImpl,
151
- signal: options.signal,
152
- intervalMs,
113
+ export async function runLogsTail(options) {
114
+ const write = options.write ?? ((text) => void process.stdout.write(text));
115
+ const err = options.err ?? ((text) => void process.stderr.write(text));
116
+ const sleep = options.sleep ?? sleepMs;
117
+ const intervalMs = options.intervalMs ?? DEFAULT_POLL_INTERVAL_MS;
118
+ const c = stderrPalette();
119
+ if (options.prod === true) {
120
+ await followProdLogs({
121
+ ...options,
153
122
  write,
123
+ err,
154
124
  sleep,
125
+ intervalMs,
126
+ palette: c,
155
127
  });
128
+ return;
129
+ }
130
+ const baseUrl = (options.url ?? "http://127.0.0.1:3000").replace(/\/$/, "");
131
+ if (options.once !== true) {
132
+ err(c.dim("Tailing logs… (Ctrl-C to stop)\n"));
133
+ }
134
+ await followRuntimeLogs({
135
+ baseUrl,
136
+ auth: { bearerToken: options.bearerToken },
137
+ once: options.once === true,
138
+ json: options.json === true,
139
+ fetchImpl: options.fetchImpl,
140
+ signal: options.signal,
141
+ intervalMs,
142
+ write,
143
+ sleep,
156
144
  });
157
145
  }
158
- function followProdLogs(args) {
159
- return __awaiter(this, void 0, void 0, function* () {
160
- var _a, _b;
161
- const resolveRuntime = (_a = args.resolveRuntime) !== null && _a !== void 0 ? _a : (() => __awaiter(this, void 0, void 0, function* () {
162
- const target = yield resolveProdTarget({
146
+ async function followProdLogs(args) {
147
+ const resolveRuntime = args.resolveRuntime ??
148
+ (async () => {
149
+ const target = await resolveProdTarget({
163
150
  dir: args.dir,
164
151
  cwd: args.cwd,
165
152
  slug: args.slug,
@@ -169,81 +156,81 @@ function followProdLogs(args) {
169
156
  err: () => { },
170
157
  });
171
158
  return { agentUrl: target.agentUrl, headers: target.headers };
172
- }));
173
- const getDeployment = (_b = args.getDeployment) !== null && _b !== void 0 ? _b : (() => __awaiter(this, void 0, void 0, function* () {
159
+ });
160
+ const getDeployment = args.getDeployment ??
161
+ (async () => {
174
162
  // Lazy import path via resolveProdTarget side: re-fetch through a
175
163
  // one-shot resolve that throws if not running is wrong for progress.
176
164
  // Callers that omit getDeployment must provide it in production via
177
165
  // cmdLogs (which wires deploy auth).
178
166
  throw new Error("Internal error: deploy progress requires a deployment lookup.");
179
- }));
180
- let lastEmittedKey;
181
- const slugHint = args.slug !== undefined && args.slug !== "" ? args.slug : "";
182
- if (args.once !== true) {
183
- const label = slugHint !== "" ? slugHint : "deployment";
184
- args.err(args.palette.dim(`Tailing logs for ${label}… (Ctrl-C to stop)\n`));
167
+ });
168
+ let lastEmittedKey;
169
+ const slugHint = args.slug !== undefined && args.slug !== "" ? args.slug : "";
170
+ if (args.once !== true) {
171
+ const label = slugHint !== "" ? slugHint : "deployment";
172
+ args.err(args.palette.dim(`Tailing logs for ${label}… (Ctrl-C to stop)\n`));
173
+ }
174
+ while (!isAborted(args.signal)) {
175
+ let detail;
176
+ try {
177
+ detail = await getDeployment();
185
178
  }
186
- while (!isAborted(args.signal)) {
187
- let detail;
188
- try {
189
- detail = yield getDeployment();
190
- }
191
- catch (error) {
192
- if (isAborted(args.signal)) {
193
- return;
194
- }
195
- throw customerDeployLookupError(error);
196
- }
197
- const progress = resolveProgress(detail);
198
- const message = progressMessage(progress, detail.lastError, detail.statusMessage);
199
- const emitKey = `${progress}\0${message}`;
200
- if (progress === "failed") {
201
- if (emitKey !== lastEmittedKey) {
202
- lastEmittedKey = emitKey;
203
- emitProgress(args.write, args.json === true, progress, message);
204
- }
205
- throw new Error(`Deployment "${detail.slug}" failed.`);
206
- }
207
- if (progress === "stopped") {
208
- if (emitKey !== lastEmittedKey) {
209
- lastEmittedKey = emitKey;
210
- emitProgress(args.write, args.json === true, progress, message);
211
- }
212
- throw new Error(`Deployment "${detail.slug}" is stopped.`);
213
- }
214
- if (progress === "running" || progress === "degraded") {
215
- // Hand off to runtime logs. Print degraded once; skip a "running" line.
216
- if (progress === "degraded" && emitKey !== lastEmittedKey) {
217
- lastEmittedKey = emitKey;
218
- emitProgress(args.write, args.json === true, progress, message);
219
- }
220
- const runtime = yield resolveRuntime();
221
- yield followRuntimeLogs({
222
- baseUrl: runtime.agentUrl,
223
- auth: {
224
- bearerToken: args.bearerToken,
225
- headers: runtime.headers,
226
- },
227
- once: args.once === true,
228
- json: args.json === true,
229
- fetchImpl: args.fetchImpl,
230
- signal: args.signal,
231
- intervalMs: args.intervalMs,
232
- write: args.write,
233
- sleep: args.sleep,
234
- });
179
+ catch (error) {
180
+ if (isAborted(args.signal)) {
235
181
  return;
236
182
  }
183
+ throw customerDeployLookupError(error);
184
+ }
185
+ const progress = resolveProgress(detail);
186
+ const message = progressMessage(progress, detail.lastError, detail.statusMessage);
187
+ const emitKey = `${progress}\0${message}`;
188
+ if (progress === "failed") {
237
189
  if (emitKey !== lastEmittedKey) {
238
190
  lastEmittedKey = emitKey;
239
191
  emitProgress(args.write, args.json === true, progress, message);
240
192
  }
241
- if (args.once === true) {
242
- return;
193
+ throw new Error(`Deployment "${detail.slug}" failed.`);
194
+ }
195
+ if (progress === "stopped") {
196
+ if (emitKey !== lastEmittedKey) {
197
+ lastEmittedKey = emitKey;
198
+ emitProgress(args.write, args.json === true, progress, message);
243
199
  }
244
- yield args.sleep(args.intervalMs, args.signal);
200
+ throw new Error(`Deployment "${detail.slug}" is stopped.`);
245
201
  }
246
- });
202
+ if (progress === "running" || progress === "degraded") {
203
+ // Hand off to runtime logs. Print degraded once; skip a "running" line.
204
+ if (progress === "degraded" && emitKey !== lastEmittedKey) {
205
+ lastEmittedKey = emitKey;
206
+ emitProgress(args.write, args.json === true, progress, message);
207
+ }
208
+ const runtime = await resolveRuntime();
209
+ await followRuntimeLogs({
210
+ baseUrl: runtime.agentUrl,
211
+ auth: {
212
+ bearerToken: args.bearerToken,
213
+ headers: runtime.headers,
214
+ },
215
+ once: args.once === true,
216
+ json: args.json === true,
217
+ fetchImpl: args.fetchImpl,
218
+ signal: args.signal,
219
+ intervalMs: args.intervalMs,
220
+ write: args.write,
221
+ sleep: args.sleep,
222
+ });
223
+ return;
224
+ }
225
+ if (emitKey !== lastEmittedKey) {
226
+ lastEmittedKey = emitKey;
227
+ emitProgress(args.write, args.json === true, progress, message);
228
+ }
229
+ if (args.once === true) {
230
+ return;
231
+ }
232
+ await args.sleep(args.intervalMs, args.signal);
233
+ }
247
234
  }
248
235
  function resolveProgress(detail) {
249
236
  if (detail.progress !== undefined) {
@@ -277,52 +264,50 @@ function emitProgress(write, json, progress, message) {
277
264
  }
278
265
  write(`${message}\n`);
279
266
  }
280
- function followRuntimeLogs(args) {
281
- return __awaiter(this, void 0, void 0, function* () {
282
- let after = -1;
283
- for (;;) {
267
+ async function followRuntimeLogs(args) {
268
+ let after = -1;
269
+ for (;;) {
270
+ if (isAborted(args.signal)) {
271
+ return;
272
+ }
273
+ let batch;
274
+ try {
275
+ batch = await fetchLogs({
276
+ baseUrl: args.baseUrl,
277
+ after,
278
+ auth: args.auth,
279
+ fetchImpl: args.fetchImpl,
280
+ signal: args.signal,
281
+ });
282
+ }
283
+ catch (error) {
284
284
  if (isAborted(args.signal)) {
285
285
  return;
286
286
  }
287
- let batch;
288
- try {
289
- batch = yield fetchLogs({
290
- baseUrl: args.baseUrl,
291
- after,
292
- auth: args.auth,
293
- fetchImpl: args.fetchImpl,
294
- signal: args.signal,
295
- });
296
- }
297
- catch (error) {
298
- if (isAborted(args.signal)) {
299
- return;
300
- }
301
- throw error instanceof Error ? error : new Error("Could not fetch logs.");
302
- }
303
- for (const entry of batch.entries) {
304
- if (args.json) {
305
- args.write(`${JSON.stringify({
306
- type: "log",
307
- index: entry.index,
308
- at: entry.at,
309
- line: entry.line,
310
- })}\n`);
311
- }
312
- else {
313
- args.write(`${entry.line}\n`);
314
- }
287
+ throw error instanceof Error ? error : new Error("Could not fetch logs.");
288
+ }
289
+ for (const entry of batch.entries) {
290
+ if (args.json) {
291
+ args.write(`${JSON.stringify({
292
+ type: "log",
293
+ index: entry.index,
294
+ at: entry.at,
295
+ line: entry.line,
296
+ })}\n`);
315
297
  }
316
- after = batch.nextAfter;
317
- if (args.once) {
318
- return;
298
+ else {
299
+ args.write(`${entry.line}\n`);
319
300
  }
320
- yield args.sleep(args.intervalMs, args.signal);
321
301
  }
322
- });
302
+ after = batch.nextAfter;
303
+ if (args.once) {
304
+ return;
305
+ }
306
+ await args.sleep(args.intervalMs, args.signal);
307
+ }
323
308
  }
324
309
  /** Same poll cadence as the portal's logs view. */
325
- const HOSTED_POLL_INTERVAL_MS = 5000;
310
+ const HOSTED_POLL_INTERVAL_MS = 5_000;
326
311
  /** Sessions whose last read is kept for diffing. Older ones age out. */
327
312
  const HOSTED_TRACKED_SESSIONS = 100;
328
313
  /**
@@ -330,56 +315,53 @@ const HOSTED_TRACKED_SESSIONS = 100;
330
315
  * lines not seen yet. Like `tail -f` over several files, a `==> ses_… <==`
331
316
  * header marks each switch to another session.
332
317
  */
333
- export function followHostedLogs(options) {
334
- return __awaiter(this, void 0, void 0, function* () {
335
- var _a, _b, _c, _d, _e;
336
- const write = (_a = options.write) !== null && _a !== void 0 ? _a : ((text) => void process.stdout.write(text));
337
- const err = (_b = options.err) !== null && _b !== void 0 ? _b : ((text) => void process.stderr.write(text));
338
- const sleep = (_c = options.sleep) !== null && _c !== void 0 ? _c : sleepMs;
339
- const seen = new Map();
340
- let current;
341
- if (!options.once) {
342
- err(stderrPalette().dim(`Tailing logs for ${options.slug}… (Ctrl-C to stop)\n`));
318
+ export async function followHostedLogs(options) {
319
+ const write = options.write ?? ((text) => void process.stdout.write(text));
320
+ const err = options.err ?? ((text) => void process.stderr.write(text));
321
+ const sleep = options.sleep ?? sleepMs;
322
+ const seen = new Map();
323
+ let current;
324
+ if (!options.once) {
325
+ err(stderrPalette().dim(`Tailing logs for ${options.slug}… (Ctrl-C to stop)\n`));
326
+ }
327
+ while (!isAborted(options.signal)) {
328
+ let sessions;
329
+ try {
330
+ sessions = await options.read(options.signal);
343
331
  }
344
- while (!isAborted(options.signal)) {
345
- let sessions;
346
- try {
347
- sessions = yield options.read(options.signal);
332
+ catch (error) {
333
+ if (isAborted(options.signal)) {
334
+ return;
348
335
  }
349
- catch (error) {
350
- if (isAborted(options.signal)) {
351
- return;
352
- }
353
- throw error;
336
+ throw error;
337
+ }
338
+ for (const session of sessions) {
339
+ // A session's output never shrinks to empty, so an empty read missed.
340
+ // Keep the last one or the next read reprints it all.
341
+ if (session.lines.length === 0) {
342
+ continue;
354
343
  }
355
- for (const session of sessions) {
356
- // A session's output never shrinks to empty, so an empty read missed.
357
- // Keep the last one or the next read reprints it all.
358
- if (session.lines.length === 0) {
359
- continue;
360
- }
361
- const fresh = unseenLines((_d = seen.get(session.sessionId)) !== null && _d !== void 0 ? _d : [], session.lines);
362
- remember(seen, session.sessionId, session.lines);
363
- if (fresh.length === 0) {
364
- continue;
365
- }
366
- if (!options.scoped && !options.json && current !== session.sessionId) {
367
- const channel = session.channelId === undefined ? "" : ` (${session.channelId})`;
368
- write(`${current === undefined ? "" : "\n"}==> ${session.sessionId}${channel} <==\n`);
369
- }
370
- current = session.sessionId;
371
- for (const line of fresh) {
372
- write(options.json
373
- ? `${JSON.stringify({ type: "log", sessionId: session.sessionId, line })}\n`
374
- : `${line}\n`);
375
- }
344
+ const fresh = unseenLines(seen.get(session.sessionId) ?? [], session.lines);
345
+ remember(seen, session.sessionId, session.lines);
346
+ if (fresh.length === 0) {
347
+ continue;
376
348
  }
377
- if (options.once) {
378
- return;
349
+ if (!options.scoped && !options.json && current !== session.sessionId) {
350
+ const channel = session.channelId === undefined ? "" : ` (${session.channelId})`;
351
+ write(`${current === undefined ? "" : "\n"}==> ${session.sessionId}${channel} <==\n`);
352
+ }
353
+ current = session.sessionId;
354
+ for (const line of fresh) {
355
+ write(options.json
356
+ ? `${JSON.stringify({ type: "log", sessionId: session.sessionId, line })}\n`
357
+ : `${line}\n`);
379
358
  }
380
- yield sleep((_e = options.intervalMs) !== null && _e !== void 0 ? _e : HOSTED_POLL_INTERVAL_MS, options.signal);
381
359
  }
382
- });
360
+ if (options.once) {
361
+ return;
362
+ }
363
+ await sleep(options.intervalMs ?? HOSTED_POLL_INTERVAL_MS, options.signal);
364
+ }
383
365
  }
384
366
  /**
385
367
  * Lines of `next` past the longest suffix of `prev` that starts `next`. The
@@ -418,21 +400,19 @@ function customerDeployLookupError(error) {
418
400
  }
419
401
  return new Error("Could not look up deployment.");
420
402
  }
421
- function sleepMs(ms, signal) {
422
- return __awaiter(this, void 0, void 0, function* () {
423
- if (isAborted(signal)) {
424
- return;
425
- }
426
- yield new Promise(resolve => {
427
- const timer = setTimeout(() => {
428
- signal === null || signal === void 0 ? void 0 : signal.removeEventListener("abort", onAbort);
429
- resolve();
430
- }, ms);
431
- const onAbort = () => {
432
- clearTimeout(timer);
433
- resolve();
434
- };
435
- signal === null || signal === void 0 ? void 0 : signal.addEventListener("abort", onAbort, { once: true });
436
- });
403
+ async function sleepMs(ms, signal) {
404
+ if (isAborted(signal)) {
405
+ return;
406
+ }
407
+ await new Promise(resolve => {
408
+ const timer = setTimeout(() => {
409
+ signal?.removeEventListener("abort", onAbort);
410
+ resolve();
411
+ }, ms);
412
+ const onAbort = () => {
413
+ clearTimeout(timer);
414
+ resolve();
415
+ };
416
+ signal?.addEventListener("abort", onAbort, { once: true });
437
417
  });
438
418
  }
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  /**
11
2
  * Run `fn` over `items` with at most `concurrency` in flight; preserve order
12
3
  * of results (and of side-effect completion relative to index assignment).
@@ -14,35 +5,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
14
5
  * When `signal` aborts, workers stop claiming new items; in-flight `fn` calls
15
6
  * are responsible for honoring the same signal.
16
7
  */
17
- export function mapPool(items, concurrency, fn, options) {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- const results = new Array(items.length);
20
- let next = 0;
21
- function worker() {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- var _a;
24
- for (;;) {
25
- if ((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {
26
- return;
27
- }
28
- const index = next;
29
- next += 1;
30
- if (index >= items.length) {
31
- return;
32
- }
33
- const item = items[index];
34
- if (item === undefined) {
35
- return;
36
- }
37
- results[index] = yield fn(item, index);
38
- }
39
- });
8
+ export async function mapPool(items, concurrency, fn, options) {
9
+ const results = new Array(items.length);
10
+ let next = 0;
11
+ async function worker() {
12
+ for (;;) {
13
+ if (options?.signal?.aborted) {
14
+ return;
15
+ }
16
+ const index = next;
17
+ next += 1;
18
+ if (index >= items.length) {
19
+ return;
20
+ }
21
+ const item = items[index];
22
+ if (item === undefined) {
23
+ return;
24
+ }
25
+ results[index] = await fn(item, index);
40
26
  }
41
- const workerCount = Math.min(Math.max(1, concurrency), items.length);
42
- if (workerCount === 0) {
43
- return results;
44
- }
45
- yield Promise.all(Array.from({ length: workerCount }, () => worker()));
27
+ }
28
+ const workerCount = Math.min(Math.max(1, concurrency), items.length);
29
+ if (workerCount === 0) {
46
30
  return results;
47
- });
31
+ }
32
+ await Promise.all(Array.from({ length: workerCount }, () => worker()));
33
+ return results;
48
34
  }