@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
@@ -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
  }