@cursor/bdk 0.2.9 → 0.2.11

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 (569) 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/troubleshooting.md.x-GBa7wN.js +1 -0
  197. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  198. package/dist/docs/building-with-agents.html +37 -37
  199. package/dist/docs/building-with-agents.md +2 -0
  200. package/dist/docs/deployment.html +38 -38
  201. package/dist/docs/deployment.md +7 -0
  202. package/dist/docs/evals.html +36 -36
  203. package/dist/docs/guides/agent-to-agent.html +35 -35
  204. package/dist/docs/guides/bitbucket.html +38 -38
  205. package/dist/docs/guides/bitbucket.md +9 -1
  206. package/dist/docs/guides/cloud-agents.html +35 -35
  207. package/dist/docs/guides/convert-automation.html +35 -35
  208. package/dist/docs/guides/github.html +39 -39
  209. package/dist/docs/guides/github.md +20 -4
  210. package/dist/docs/guides/gitlab.html +38 -38
  211. package/dist/docs/guides/gitlab.md +9 -1
  212. package/dist/docs/guides/grokbot-agents.html +35 -35
  213. package/dist/docs/guides/hooks.html +35 -35
  214. package/dist/docs/guides/improve.html +35 -35
  215. package/dist/docs/guides/jev.html +35 -35
  216. package/dist/docs/guides/mcp-oauth.html +35 -35
  217. package/dist/docs/guides/migrate.html +66 -0
  218. package/dist/docs/guides/migrate.md +122 -0
  219. package/dist/docs/guides/opentelemetry.html +35 -35
  220. package/dist/docs/guides/slack.html +35 -35
  221. package/dist/docs/guides/webhooks.html +35 -35
  222. package/dist/docs/hashmap.json +1 -1
  223. package/dist/docs/hillclimbing.html +35 -35
  224. package/dist/docs/index.html +35 -35
  225. package/dist/docs/llms-full.txt +214 -6
  226. package/dist/docs/llms.txt +1 -0
  227. package/dist/docs/quickstart.html +35 -35
  228. package/dist/docs/reference/agent-config.html +35 -35
  229. package/dist/docs/reference/artifacts.html +35 -35
  230. package/dist/docs/reference/channels.html +35 -35
  231. package/dist/docs/reference/cli.html +39 -38
  232. package/dist/docs/reference/cli.md +39 -0
  233. package/dist/docs/reference/connections.html +35 -35
  234. package/dist/docs/reference/evals.html +35 -35
  235. package/dist/docs/reference/extensions.html +35 -35
  236. package/dist/docs/reference/hooks.html +35 -35
  237. package/dist/docs/reference/http-api.html +35 -35
  238. package/dist/docs/reference/instructions.html +35 -35
  239. package/dist/docs/reference/playground.html +35 -35
  240. package/dist/docs/reference/project-layout.html +35 -35
  241. package/dist/docs/reference/prompt.html +35 -35
  242. package/dist/docs/reference/schedules.html +35 -35
  243. package/dist/docs/reference/sessions.html +35 -35
  244. package/dist/docs/reference/skills.html +35 -35
  245. package/dist/docs/reference/subagents.html +35 -35
  246. package/dist/docs/reference/tools.html +35 -35
  247. package/dist/docs/templates/agentic-owners.html +35 -35
  248. package/dist/docs/templates/grokbot-agents.html +35 -35
  249. package/dist/docs/templates/security-reviewer.html +35 -35
  250. package/dist/docs/templates/thermo-quality-review.html +35 -35
  251. package/dist/docs/templates/thermo-review.html +35 -35
  252. package/dist/docs/templates/triage.html +35 -35
  253. package/dist/docs/troubleshooting.html +36 -36
  254. package/dist/docs/troubleshooting.md +1 -0
  255. package/dist/evals/assertions.js +20 -34
  256. package/dist/evals/expect.js +3 -6
  257. package/dist/evals/judge.js +5 -8
  258. package/dist/evals/loaders.js +45 -62
  259. package/dist/evals/matchers.js +2 -3
  260. package/dist/evals/reporters.js +43 -67
  261. package/dist/evals/results.js +1 -1
  262. package/dist/evals/run-facts.js +5 -6
  263. package/dist/evals.js +27 -15
  264. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  265. package/dist/extensions/cursor-cloud-agents/lib/backend.js +100 -126
  266. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  267. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  268. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  269. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  270. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  271. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  272. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  273. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  274. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  275. package/dist/extensions/cursor-cloud-agents/tools/list.js +8 -19
  276. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  277. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  278. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  279. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  280. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  281. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  282. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  283. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  284. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  285. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  286. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  287. package/dist/extensions/jev/extension.js +3 -3
  288. package/dist/extensions/jev/lib/evaluate.js +43 -60
  289. package/dist/extensions/jev/tools/evaluate.js +6 -17
  290. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  291. package/dist/extensions.js +3 -5
  292. package/dist/files-backends/cursor-hosted.js +504 -523
  293. package/dist/files-backends/local-fs.js +72 -134
  294. package/dist/files.js +3 -3
  295. package/dist/filesystem.js +562 -861
  296. package/dist/index.js +16 -35
  297. package/dist/internal/advertise-tools.js +74 -86
  298. package/dist/internal/artifacts-store.js +298 -361
  299. package/dist/internal/as-of.js +2 -4
  300. package/dist/internal/authored-alias-hooks.js +6 -4
  301. package/dist/internal/authored-loaders.js +37 -52
  302. package/dist/internal/bounded-int.js +1 -2
  303. package/dist/internal/bounded.js +13 -24
  304. package/dist/internal/brand.js +1 -1
  305. package/dist/internal/browser-origin-guard.js +4 -4
  306. package/dist/internal/builtin-tools/artifacts.js +15 -27
  307. package/dist/internal/builtin-tools/index.js +2 -3
  308. package/dist/internal/builtin-tools/reminders.js +33 -52
  309. package/dist/internal/channel-architecture.d.ts +21 -0
  310. package/dist/internal/channel-architecture.d.ts.map +1 -0
  311. package/dist/internal/channel-architecture.js +41 -0
  312. package/dist/internal/channel-dispatch.js +3 -4
  313. package/dist/internal/channel-route-dispatch.js +40 -51
  314. package/dist/internal/channel-state.js +1 -1
  315. package/dist/internal/chat-client.js +319 -340
  316. package/dist/internal/cli-ax.js +1262 -1294
  317. package/dist/internal/cli-bitbucket.js +244 -272
  318. package/dist/internal/cli-convert-automation.js +137 -151
  319. package/dist/internal/cli-cursor.js +126 -147
  320. package/dist/internal/cli-deploy.d.ts.map +1 -1
  321. package/dist/internal/cli-deploy.js +1457 -1507
  322. package/dist/internal/cli-docs.js +130 -147
  323. package/dist/internal/cli-github.js +437 -476
  324. package/dist/internal/cli-gitlab.js +259 -288
  325. package/dist/internal/cli-images.js +266 -334
  326. package/dist/internal/cli-manifest.js +25 -37
  327. package/dist/internal/cli-mcp-oauth.js +228 -247
  328. package/dist/internal/cli-mcp.js +358 -383
  329. package/dist/internal/cli-migrate.js +73 -90
  330. package/dist/internal/cli-skills.js +35 -47
  331. package/dist/internal/cli-slack-manual.d.ts +0 -1
  332. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  333. package/dist/internal/cli-slack-manual.js +175 -204
  334. package/dist/internal/cli-slack.d.ts +1 -1
  335. package/dist/internal/cli-slack.d.ts.map +1 -1
  336. package/dist/internal/cli-slack.js +416 -456
  337. package/dist/internal/cloud-merge.js +7 -3
  338. package/dist/internal/cloud-turn-cost.js +8 -1
  339. package/dist/internal/connection-env.js +5 -6
  340. package/dist/internal/continuation-channel.js +10 -7
  341. package/dist/internal/continuation-identity.js +85 -67
  342. package/dist/internal/conversation-mirror.js +112 -131
  343. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  344. package/dist/internal/cron.js +3 -3
  345. package/dist/internal/cursor/account-mcp.js +147 -146
  346. package/dist/internal/cursor/backend-client.js +290 -320
  347. package/dist/internal/cursor/bound-secret-file.js +3 -3
  348. package/dist/internal/cursor/credentials.js +127 -142
  349. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  350. package/dist/internal/cursor/github-credentials.js +91 -108
  351. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  352. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  353. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  354. package/dist/internal/cursor/session-token.js +36 -48
  355. package/dist/internal/cursor/store-api-client.js +77 -92
  356. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  357. package/dist/internal/cursor-agent-template.js +1 -1
  358. package/dist/internal/cursor-deployment-relay.js +33 -54
  359. package/dist/internal/cursor-event-relay.js +65 -59
  360. package/dist/internal/cursor-relay-core.js +258 -286
  361. package/dist/internal/deferred-channel-session.js +3 -12
  362. package/dist/internal/deploy-client.d.ts.map +1 -1
  363. package/dist/internal/deploy-client.js +413 -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-Co4CUVTQ.js → index-Be0-1hw2.js} +45 -45
  536. package/dist/playground/assets/index-Clz6uHj9.css +1 -0
  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
@@ -12,15 +12,6 @@
12
12
  * installed (global npm/pnpm/yarn/bun, or a project dependency), and runs the
13
13
  * matching install command.
14
14
  */
15
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
- return new (P || (P = Promise))(function (resolve, reject) {
18
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
- step((generator = generator.apply(thisArg, _arguments || [])).next());
22
- });
23
- };
24
15
  import { spawn } from "node:child_process";
25
16
  import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
26
17
  import { dirname, join, sep } from "node:path";
@@ -35,7 +26,7 @@ const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000;
35
26
  /** Inline refresh budget; a slow registry must not stall the command. */
36
27
  const WARN_FETCH_TIMEOUT_MS = 1500;
37
28
  /** `agent-sdk update` runs interactively, so it can afford a real timeout. */
38
- const UPDATE_FETCH_TIMEOUT_MS = 10000;
29
+ const UPDATE_FETCH_TIMEOUT_MS = 10_000;
39
30
  function parseVersion(version) {
40
31
  const match = /^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+.*)?$/.exec(version.trim());
41
32
  if (match === null) {
@@ -104,31 +95,28 @@ const distTagResponseSchema = z.object({ version: z.string() });
104
95
  * Latest published version of the package, from the registry's `latest`
105
96
  * dist-tag. Returns undefined on any failure (offline, 404 pre-publish, …).
106
97
  */
107
- export function fetchLatestPublishedVersion(options) {
108
- return __awaiter(this, void 0, void 0, function* () {
109
- var _a, _b, _c;
110
- const fetchImpl = (_a = options === null || options === void 0 ? void 0 : options.fetchImpl) !== null && _a !== void 0 ? _a : fetch;
111
- const packageName = (_b = options === null || options === void 0 ? void 0 : options.packageName) !== null && _b !== void 0 ? _b : PACKAGE_NAME;
112
- // Scoped names keep the `@` but encode the `/` for the registry path.
113
- const url = `${NPM_REGISTRY_URL}/${packageName.replace("/", "%2F")}/latest`;
114
- try {
115
- const response = yield fetchImpl(url, {
116
- headers: { accept: "application/json" },
117
- signal: AbortSignal.timeout((_c = options === null || options === void 0 ? void 0 : options.timeoutMs) !== null && _c !== void 0 ? _c : WARN_FETCH_TIMEOUT_MS),
118
- });
119
- if (!response.ok) {
120
- return undefined;
121
- }
122
- const body = distTagResponseSchema.safeParse(yield response.json());
123
- if (!body.success || parseVersion(body.data.version) === undefined) {
124
- return undefined;
125
- }
126
- return body.data.version;
98
+ export async function fetchLatestPublishedVersion(options) {
99
+ const fetchImpl = options?.fetchImpl ?? fetch;
100
+ const packageName = options?.packageName ?? PACKAGE_NAME;
101
+ // Scoped names keep the `@` but encode the `/` for the registry path.
102
+ const url = `${NPM_REGISTRY_URL}/${packageName.replace("/", "%2F")}/latest`;
103
+ try {
104
+ const response = await fetchImpl(url, {
105
+ headers: { accept: "application/json" },
106
+ signal: AbortSignal.timeout(options?.timeoutMs ?? WARN_FETCH_TIMEOUT_MS),
107
+ });
108
+ if (!response.ok) {
109
+ return undefined;
127
110
  }
128
- catch (_d) {
111
+ const body = distTagResponseSchema.safeParse(await response.json());
112
+ if (!body.success || parseVersion(body.data.version) === undefined) {
129
113
  return undefined;
130
114
  }
131
- });
115
+ return body.data.version;
116
+ }
117
+ catch {
118
+ return undefined;
119
+ }
132
120
  }
133
121
  // ============================================================================
134
122
  // Cache (one JSON file next to credentials.json)
@@ -140,37 +128,33 @@ const cacheSchema = z.object({
140
128
  latestVersion: z.string().optional(),
141
129
  });
142
130
  export function updateCheckCachePath(configDir) {
143
- return join(configDir !== null && configDir !== void 0 ? configDir : configDirPath(), "update-check.json");
131
+ return join(configDir ?? configDirPath(), "update-check.json");
144
132
  }
145
- export function readUpdateCheckCache(configDir) {
146
- return __awaiter(this, void 0, void 0, function* () {
147
- let raw;
148
- try {
149
- raw = yield readFile(updateCheckCachePath(configDir), "utf8");
150
- }
151
- catch (_a) {
152
- return undefined;
153
- }
154
- try {
155
- const parsed = cacheSchema.safeParse(JSON.parse(raw));
156
- return parsed.success ? parsed.data : undefined;
157
- }
158
- catch (_b) {
159
- return undefined;
160
- }
161
- });
133
+ export async function readUpdateCheckCache(configDir) {
134
+ let raw;
135
+ try {
136
+ raw = await readFile(updateCheckCachePath(configDir), "utf8");
137
+ }
138
+ catch {
139
+ return undefined;
140
+ }
141
+ try {
142
+ const parsed = cacheSchema.safeParse(JSON.parse(raw));
143
+ return parsed.success ? parsed.data : undefined;
144
+ }
145
+ catch {
146
+ return undefined;
147
+ }
162
148
  }
163
- export function writeUpdateCheckCache(cache, configDir) {
164
- return __awaiter(this, void 0, void 0, function* () {
165
- const path = updateCheckCachePath(configDir);
166
- try {
167
- yield mkdir(dirname(path), { recursive: true, mode: 0o700 });
168
- yield writeFile(path, `${JSON.stringify(cache, null, 2)}\n`);
169
- }
170
- catch (_a) {
171
- // Best-effort; a read-only config dir just means re-checking next run.
172
- }
173
- });
149
+ export async function writeUpdateCheckCache(cache, configDir) {
150
+ const path = updateCheckCachePath(configDir);
151
+ try {
152
+ await mkdir(dirname(path), { recursive: true, mode: 0o700 });
153
+ await writeFile(path, `${JSON.stringify(cache, null, 2)}\n`);
154
+ }
155
+ catch {
156
+ // Best-effort; a read-only config dir just means re-checking next run.
157
+ }
174
158
  }
175
159
  /**
176
160
  * Print an outdated-version warning to stderr when a newer release exists.
@@ -179,40 +163,37 @@ export function writeUpdateCheckCache(cache, configDir) {
179
163
  * Suppressed on source-checkout runs (there is no installed copy to update),
180
164
  * in CI, and via NO_UPDATE_NOTIFIER / AGENT_SERVE_NO_UPDATE_CHECK.
181
165
  */
182
- export function warnIfOutdated(options) {
183
- return __awaiter(this, void 0, void 0, function* () {
184
- var _a, _b, _c, _d;
185
- const env = (_a = options === null || options === void 0 ? void 0 : options.env) !== null && _a !== void 0 ? _a : process.env;
186
- if (isTruthyEnv(env.AGENT_SERVE_NO_UPDATE_CHECK) ||
187
- isTruthyEnv(env.NO_UPDATE_NOTIFIER) ||
188
- isTruthyEnv(env.CI)) {
189
- return;
190
- }
191
- if ((options === null || options === void 0 ? void 0 : options.force) !== true && !isCompiledDistribution()) {
192
- return;
193
- }
194
- const now = (_b = options === null || options === void 0 ? void 0 : options.now) !== null && _b !== void 0 ? _b : Date.now();
195
- const currentVersion = (_c = options === null || options === void 0 ? void 0 : options.currentVersion) !== null && _c !== void 0 ? _c : packageVersion();
196
- const cached = yield readUpdateCheckCache(options === null || options === void 0 ? void 0 : options.configDir);
197
- let latestVersion = cached === null || cached === void 0 ? void 0 : cached.latestVersion;
198
- const fresh = cached !== undefined && now - cached.checkedAt < CHECK_INTERVAL_MS;
199
- if (!fresh) {
200
- const fetched = yield fetchLatestPublishedVersion({
201
- fetchImpl: options === null || options === void 0 ? void 0 : options.fetchImpl,
202
- timeoutMs: WARN_FETCH_TIMEOUT_MS,
203
- });
204
- latestVersion = fetched !== null && fetched !== void 0 ? fetched : latestVersion;
205
- // checkedAt always advances so a flaky registry backs off to one
206
- // attempt per interval instead of one per command.
207
- yield writeUpdateCheckCache({ checkedAt: now, latestVersion }, options === null || options === void 0 ? void 0 : options.configDir);
208
- }
209
- if (latestVersion === undefined || compareVersions(currentVersion, latestVersion) >= 0) {
210
- return;
211
- }
212
- const c = stderrPalette();
213
- const err = (_d = options === null || options === void 0 ? void 0 : options.err) !== null && _d !== void 0 ? _d : ((text) => void process.stderr.write(text));
214
- err(`${c.yellow("warning:")} ${CLI_COMMAND_NAME} ${currentVersion} is outdated (latest is ${latestVersion}). Run \`${CLI_COMMAND_NAME} update\` to upgrade.\n`);
215
- });
166
+ export async function warnIfOutdated(options) {
167
+ const env = options?.env ?? process.env;
168
+ if (isTruthyEnv(env.AGENT_SERVE_NO_UPDATE_CHECK) ||
169
+ isTruthyEnv(env.NO_UPDATE_NOTIFIER) ||
170
+ isTruthyEnv(env.CI)) {
171
+ return;
172
+ }
173
+ if (options?.force !== true && !isCompiledDistribution()) {
174
+ return;
175
+ }
176
+ const now = options?.now ?? Date.now();
177
+ const currentVersion = options?.currentVersion ?? packageVersion();
178
+ const cached = await readUpdateCheckCache(options?.configDir);
179
+ let latestVersion = cached?.latestVersion;
180
+ const fresh = cached !== undefined && now - cached.checkedAt < CHECK_INTERVAL_MS;
181
+ if (!fresh) {
182
+ const fetched = await fetchLatestPublishedVersion({
183
+ fetchImpl: options?.fetchImpl,
184
+ timeoutMs: WARN_FETCH_TIMEOUT_MS,
185
+ });
186
+ latestVersion = fetched ?? latestVersion;
187
+ // checkedAt always advances so a flaky registry backs off to one
188
+ // attempt per interval instead of one per command.
189
+ await writeUpdateCheckCache({ checkedAt: now, latestVersion }, options?.configDir);
190
+ }
191
+ if (latestVersion === undefined || compareVersions(currentVersion, latestVersion) >= 0) {
192
+ return;
193
+ }
194
+ const c = stderrPalette();
195
+ const err = options?.err ?? ((text) => void process.stderr.write(text));
196
+ err(`${c.yellow("warning:")} ${CLI_COMMAND_NAME} ${currentVersion} is outdated (latest is ${latestVersion}). Run \`${CLI_COMMAND_NAME} update\` to upgrade.\n`);
216
197
  }
217
198
  function isTruthyEnv(value) {
218
199
  return value !== undefined && value !== "" && value !== "0";
@@ -224,188 +205,179 @@ function isTruthyEnv(value) {
224
205
  * dependency. Returns undefined for layouts we cannot safely upgrade
225
206
  * (npx cache, unrecognized stores).
226
207
  */
227
- export function detectUpdateCommand(args) {
228
- return __awaiter(this, void 0, void 0, function* () {
229
- var _a;
230
- const packageName = (_a = args.packageName) !== null && _a !== void 0 ? _a : PACKAGE_NAME;
231
- const spec = `${packageName}@latest`;
232
- const posixRoot = args.packageRoot.split(sep).join("/");
233
- // npx / pnpm dlx caches are ephemeral; a fresh `npx agent-sdk` already
234
- // resolves latest, and upgrading the cache entry in place helps nobody.
235
- if (posixRoot.includes("/_npx/") || posixRoot.includes("/.pnpm-store/")) {
236
- return undefined;
237
- }
238
- if (posixRoot.includes("/pnpm/global/")) {
239
- return {
240
- cmd: "pnpm",
241
- args: ["add", "-g", spec],
242
- reason: "installed with pnpm --global",
243
- };
244
- }
245
- if (posixRoot.includes("/.bun/install/global/")) {
246
- return {
247
- cmd: "bun",
248
- args: ["add", "-g", spec],
249
- reason: "installed with bun --global",
250
- };
251
- }
252
- if (posixRoot.includes("/yarn/global/") || posixRoot.includes("/.config/yarn/global/")) {
253
- return {
254
- cmd: "yarn",
255
- args: ["global", "add", spec],
256
- reason: "installed with yarn global",
257
- };
258
- }
259
- // A project that depends on the package: upgrade the dependency there,
260
- // with whichever package manager the lockfile says the project uses.
261
- const projectDir = yield findDependingProjectDir(args.packageRoot, packageName);
262
- if (projectDir !== undefined) {
263
- const pm = yield detectProjectPackageManager(projectDir);
264
- const command = pm === "pnpm"
265
- ? { cmd: "pnpm", args: ["add", spec] }
266
- : pm === "yarn"
267
- ? { cmd: "yarn", args: ["add", spec] }
268
- : pm === "bun"
269
- ? { cmd: "bun", args: ["add", spec] }
270
- : { cmd: "npm", args: ["install", spec] };
271
- return Object.assign(Object.assign({}, command), { cwd: projectDir, reason: `project dependency in ${projectDir}` });
272
- }
273
- // Global npm layout: <prefix>/lib/node_modules/<name> (or <prefix>\
274
- // node_modules\<name> on Windows), with no depending project above it.
275
- if (posixRoot.includes("/node_modules/")) {
276
- return {
277
- cmd: "npm",
278
- args: ["install", "-g", spec],
279
- reason: "installed with npm --global",
280
- };
281
- }
208
+ export async function detectUpdateCommand(args) {
209
+ const packageName = args.packageName ?? PACKAGE_NAME;
210
+ const spec = `${packageName}@latest`;
211
+ const posixRoot = args.packageRoot.split(sep).join("/");
212
+ // npx / pnpm dlx caches are ephemeral; a fresh `npx agent-sdk` already
213
+ // resolves latest, and upgrading the cache entry in place helps nobody.
214
+ if (posixRoot.includes("/_npx/") || posixRoot.includes("/.pnpm-store/")) {
282
215
  return undefined;
283
- });
216
+ }
217
+ if (posixRoot.includes("/pnpm/global/")) {
218
+ return {
219
+ cmd: "pnpm",
220
+ args: ["add", "-g", spec],
221
+ reason: "installed with pnpm --global",
222
+ };
223
+ }
224
+ if (posixRoot.includes("/.bun/install/global/")) {
225
+ return {
226
+ cmd: "bun",
227
+ args: ["add", "-g", spec],
228
+ reason: "installed with bun --global",
229
+ };
230
+ }
231
+ if (posixRoot.includes("/yarn/global/") || posixRoot.includes("/.config/yarn/global/")) {
232
+ return {
233
+ cmd: "yarn",
234
+ args: ["global", "add", spec],
235
+ reason: "installed with yarn global",
236
+ };
237
+ }
238
+ // A project that depends on the package: upgrade the dependency there,
239
+ // with whichever package manager the lockfile says the project uses.
240
+ const projectDir = await findDependingProjectDir(args.packageRoot, packageName);
241
+ if (projectDir !== undefined) {
242
+ const pm = await detectProjectPackageManager(projectDir);
243
+ const command = pm === "pnpm"
244
+ ? { cmd: "pnpm", args: ["add", spec] }
245
+ : pm === "yarn"
246
+ ? { cmd: "yarn", args: ["add", spec] }
247
+ : pm === "bun"
248
+ ? { cmd: "bun", args: ["add", spec] }
249
+ : { cmd: "npm", args: ["install", spec] };
250
+ return {
251
+ ...command,
252
+ cwd: projectDir,
253
+ reason: `project dependency in ${projectDir}`,
254
+ };
255
+ }
256
+ // Global npm layout: <prefix>/lib/node_modules/<name> (or <prefix>\
257
+ // node_modules\<name> on Windows), with no depending project above it.
258
+ if (posixRoot.includes("/node_modules/")) {
259
+ return {
260
+ cmd: "npm",
261
+ args: ["install", "-g", spec],
262
+ reason: "installed with npm --global",
263
+ };
264
+ }
265
+ return undefined;
284
266
  }
285
267
  /**
286
268
  * Nearest ancestor with a package.json that declares `packageName` as a
287
269
  * dependency. Skips directories inside node_modules (pnpm's virtual store
288
270
  * nests package.json files that are not the user's project).
289
271
  */
290
- function findDependingProjectDir(packageRoot, packageName) {
291
- return __awaiter(this, void 0, void 0, function* () {
292
- let dir = dirname(packageRoot);
293
- for (let depth = 0; depth < 30; depth++) {
294
- const parent = dirname(dir);
295
- if (parent === dir) {
296
- return undefined;
297
- }
298
- const inNodeModules = dir.split(sep).some(part => part === "node_modules" || part === ".pnpm");
299
- if (!inNodeModules && (yield declaresDependency(dir, packageName))) {
300
- return dir;
301
- }
302
- dir = parent;
272
+ async function findDependingProjectDir(packageRoot, packageName) {
273
+ let dir = dirname(packageRoot);
274
+ for (let depth = 0; depth < 30; depth++) {
275
+ const parent = dirname(dir);
276
+ if (parent === dir) {
277
+ return undefined;
303
278
  }
304
- return undefined;
305
- });
306
- }
307
- function declaresDependency(dir, packageName) {
308
- return __awaiter(this, void 0, void 0, function* () {
309
- var _a, _b;
310
- let raw;
311
- try {
312
- raw = yield readFile(join(dir, "package.json"), "utf8");
279
+ const inNodeModules = dir.split(sep).some(part => part === "node_modules" || part === ".pnpm");
280
+ if (!inNodeModules && (await declaresDependency(dir, packageName))) {
281
+ return dir;
313
282
  }
314
- catch (_c) {
283
+ dir = parent;
284
+ }
285
+ return undefined;
286
+ }
287
+ async function declaresDependency(dir, packageName) {
288
+ let raw;
289
+ try {
290
+ raw = await readFile(join(dir, "package.json"), "utf8");
291
+ }
292
+ catch {
293
+ return false;
294
+ }
295
+ const manifestSchema = z.object({
296
+ dependencies: z.record(z.string()).optional(),
297
+ devDependencies: z.record(z.string()).optional(),
298
+ });
299
+ try {
300
+ const parsed = manifestSchema.safeParse(JSON.parse(raw));
301
+ if (!parsed.success) {
315
302
  return false;
316
303
  }
317
- const manifestSchema = z.object({
318
- dependencies: z.record(z.string()).optional(),
319
- devDependencies: z.record(z.string()).optional(),
320
- });
304
+ return (parsed.data.dependencies?.[packageName] !== undefined ||
305
+ parsed.data.devDependencies?.[packageName] !== undefined);
306
+ }
307
+ catch {
308
+ return false;
309
+ }
310
+ }
311
+ async function detectProjectPackageManager(projectDir) {
312
+ const exists = async (file) => {
321
313
  try {
322
- const parsed = manifestSchema.safeParse(JSON.parse(raw));
323
- if (!parsed.success) {
324
- return false;
325
- }
326
- return (((_a = parsed.data.dependencies) === null || _a === void 0 ? void 0 : _a[packageName]) !== undefined ||
327
- ((_b = parsed.data.devDependencies) === null || _b === void 0 ? void 0 : _b[packageName]) !== undefined);
314
+ await stat(join(projectDir, file));
315
+ return true;
328
316
  }
329
- catch (_d) {
317
+ catch {
330
318
  return false;
331
319
  }
332
- });
333
- }
334
- function detectProjectPackageManager(projectDir) {
335
- return __awaiter(this, void 0, void 0, function* () {
336
- const exists = (file) => __awaiter(this, void 0, void 0, function* () {
337
- try {
338
- yield stat(join(projectDir, file));
339
- return true;
340
- }
341
- catch (_a) {
342
- return false;
343
- }
344
- });
345
- if (yield exists("pnpm-lock.yaml")) {
346
- return "pnpm";
347
- }
348
- if (yield exists("yarn.lock")) {
349
- return "yarn";
350
- }
351
- if ((yield exists("bun.lock")) || (yield exists("bun.lockb"))) {
352
- return "bun";
353
- }
354
- return "npm";
355
- });
320
+ };
321
+ if (await exists("pnpm-lock.yaml")) {
322
+ return "pnpm";
323
+ }
324
+ if (await exists("yarn.lock")) {
325
+ return "yarn";
326
+ }
327
+ if ((await exists("bun.lock")) || (await exists("bun.lockb"))) {
328
+ return "bun";
329
+ }
330
+ return "npm";
356
331
  }
357
332
  /** `agent-sdk update` — upgrade this install to the latest published version. */
358
- export function cmdUpdate(options) {
359
- return __awaiter(this, void 0, void 0, function* () {
360
- var _a, _b, _c, _d, _e, _f;
361
- const c = stderrPalette();
362
- const out = (_a = options === null || options === void 0 ? void 0 : options.out) !== null && _a !== void 0 ? _a : ((text) => void process.stdout.write(text));
363
- const err = (_b = options === null || options === void 0 ? void 0 : options.err) !== null && _b !== void 0 ? _b : ((text) => void process.stderr.write(text));
364
- const compiled = (_c = options === null || options === void 0 ? void 0 : options.compiled) !== null && _c !== void 0 ? _c : isCompiledDistribution();
365
- if (!compiled) {
366
- err(`${CLI_COMMAND_NAME} is running from a source checkout, not an installed package; update it with git instead.\n`);
367
- return 1;
368
- }
369
- const currentVersion = (_d = options === null || options === void 0 ? void 0 : options.currentVersion) !== null && _d !== void 0 ? _d : packageVersion();
370
- const latestVersion = yield fetchLatestPublishedVersion({
371
- fetchImpl: options === null || options === void 0 ? void 0 : options.fetchImpl,
372
- timeoutMs: UPDATE_FETCH_TIMEOUT_MS,
373
- });
374
- if (latestVersion === undefined) {
375
- err(`Could not reach the npm registry to look up the latest ${PACKAGE_NAME} version. Check your network and retry.\n`);
376
- return 1;
377
- }
378
- if (compareVersions(currentVersion, latestVersion) >= 0) {
379
- out(`${CLI_COMMAND_NAME} ${currentVersion} is already the latest version.\n`);
380
- yield writeUpdateCheckCache({ checkedAt: Date.now(), latestVersion }, options === null || options === void 0 ? void 0 : options.configDir);
381
- return 0;
382
- }
383
- const command = yield detectUpdateCommand({
384
- packageRoot: (_e = options === null || options === void 0 ? void 0 : options.packageRoot) !== null && _e !== void 0 ? _e : packageRootDir(),
385
- });
386
- if (command === undefined) {
387
- err(`${CLI_COMMAND_NAME} ${currentVersion} is outdated (latest is ${latestVersion}), but this install's layout was not recognized.\nUpgrade it yourself, e.g. \`npm install -g ${PACKAGE_NAME}@latest\` for a global install, or bump the ${PACKAGE_NAME} dependency in your project.\n`);
388
- return 1;
389
- }
390
- const rendered = [command.cmd, ...command.args].join(" ");
391
- err(c.dim(`Updating ${CLI_COMMAND_NAME} ${currentVersion} → ${latestVersion} (${command.reason}):\n ${rendered}\n`));
392
- const run = (_f = options === null || options === void 0 ? void 0 : options.runCommand) !== null && _f !== void 0 ? _f : runUpdateCommand;
393
- let code;
394
- try {
395
- code = yield run(command);
396
- }
397
- catch (error) {
398
- err(`\`${rendered}\` failed: ${describeError(error)}\n`);
399
- return 1;
400
- }
401
- if (code !== 0) {
402
- err(`\`${rendered}\` exited with code ${code}.\n`);
403
- return code;
404
- }
405
- yield writeUpdateCheckCache({ checkedAt: Date.now(), latestVersion }, options === null || options === void 0 ? void 0 : options.configDir);
406
- out(`Updated ${CLI_COMMAND_NAME} to ${latestVersion}. New commands run the new version.\n`);
333
+ export async function cmdUpdate(options) {
334
+ const c = stderrPalette();
335
+ const out = options?.out ?? ((text) => void process.stdout.write(text));
336
+ const err = options?.err ?? ((text) => void process.stderr.write(text));
337
+ const compiled = options?.compiled ?? isCompiledDistribution();
338
+ if (!compiled) {
339
+ err(`${CLI_COMMAND_NAME} is running from a source checkout, not an installed package; update it with git instead.\n`);
340
+ return 1;
341
+ }
342
+ const currentVersion = options?.currentVersion ?? packageVersion();
343
+ const latestVersion = await fetchLatestPublishedVersion({
344
+ fetchImpl: options?.fetchImpl,
345
+ timeoutMs: UPDATE_FETCH_TIMEOUT_MS,
346
+ });
347
+ if (latestVersion === undefined) {
348
+ err(`Could not reach the npm registry to look up the latest ${PACKAGE_NAME} version. Check your network and retry.\n`);
349
+ return 1;
350
+ }
351
+ if (compareVersions(currentVersion, latestVersion) >= 0) {
352
+ out(`${CLI_COMMAND_NAME} ${currentVersion} is already the latest version.\n`);
353
+ await writeUpdateCheckCache({ checkedAt: Date.now(), latestVersion }, options?.configDir);
407
354
  return 0;
355
+ }
356
+ const command = await detectUpdateCommand({
357
+ packageRoot: options?.packageRoot ?? packageRootDir(),
408
358
  });
359
+ if (command === undefined) {
360
+ err(`${CLI_COMMAND_NAME} ${currentVersion} is outdated (latest is ${latestVersion}), but this install's layout was not recognized.\nUpgrade it yourself, e.g. \`npm install -g ${PACKAGE_NAME}@latest\` for a global install, or bump the ${PACKAGE_NAME} dependency in your project.\n`);
361
+ return 1;
362
+ }
363
+ const rendered = [command.cmd, ...command.args].join(" ");
364
+ err(c.dim(`Updating ${CLI_COMMAND_NAME} ${currentVersion} → ${latestVersion} (${command.reason}):\n ${rendered}\n`));
365
+ const run = options?.runCommand ?? runUpdateCommand;
366
+ let code;
367
+ try {
368
+ code = await run(command);
369
+ }
370
+ catch (error) {
371
+ err(`\`${rendered}\` failed: ${describeError(error)}\n`);
372
+ return 1;
373
+ }
374
+ if (code !== 0) {
375
+ err(`\`${rendered}\` exited with code ${code}.\n`);
376
+ return code;
377
+ }
378
+ await writeUpdateCheckCache({ checkedAt: Date.now(), latestVersion }, options?.configDir);
379
+ out(`Updated ${CLI_COMMAND_NAME} to ${latestVersion}. New commands run the new version.\n`);
380
+ return 0;
409
381
  }
410
382
  function runUpdateCommand(command) {
411
383
  return new Promise((resolve, reject) => {
@@ -421,7 +393,7 @@ function runUpdateCommand(command) {
421
393
  });
422
394
  child.on("error", reject);
423
395
  child.on("close", code => {
424
- resolve(code !== null && code !== void 0 ? code : 1);
396
+ resolve(code ?? 1);
425
397
  });
426
398
  });
427
399
  }
@@ -12,11 +12,10 @@ export const AGENT_SERVE_PERSISTENT_ENV_VAR = "AGENT_SERVE_PERSISTENT";
12
12
  * and a successful managed resolver always returns both storage identities.
13
13
  */
14
14
  export function resolveAgentV2Hosting(input) {
15
- var _a;
16
15
  if (input.architecture !== "v2") {
17
16
  return { kind: "not-v2" };
18
17
  }
19
- const env = (_a = input.env) !== null && _a !== void 0 ? _a : process.env;
18
+ const env = input.env ?? process.env;
20
19
  if (env[AGENT_SERVE_GENERATION_ENV_VAR] === undefined) {
21
20
  return { kind: "self-hosted" };
22
21
  }