@cursor/bdk 0.2.8 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.d.ts +1 -0
  3. package/dist/bin/agent-serve.d.ts.map +1 -1
  4. package/dist/bin/agent-serve.js +820 -807
  5. package/dist/channels/bitbucket/api.js +305 -321
  6. package/dist/channels/bitbucket/binding.js +97 -61
  7. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  8. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  9. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  10. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  11. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  12. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  13. package/dist/channels/bitbucket/checks.js +9 -21
  14. package/dist/channels/bitbucket/cursor-account.js +1 -1
  15. package/dist/channels/bitbucket/defaults.js +14 -4
  16. package/dist/channels/bitbucket/events.js +1 -2
  17. package/dist/channels/bitbucket/index.d.ts +6 -2
  18. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  19. package/dist/channels/bitbucket/index.js +6 -2
  20. package/dist/channels/bitbucket/replay.js +80 -56
  21. package/dist/channels/bitbucket/state.js +16 -7
  22. package/dist/channels/bitbucket/types.d.ts +11 -2
  23. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  24. package/dist/channels/checks.js +18 -28
  25. package/dist/channels/deployments/deployments-channel.js +26 -34
  26. package/dist/channels/github/api.js +216 -210
  27. package/dist/channels/github/auth.d.ts +5 -1
  28. package/dist/channels/github/auth.d.ts.map +1 -1
  29. package/dist/channels/github/auth.js +157 -174
  30. package/dist/channels/github/binding.js +48 -39
  31. package/dist/channels/github/checks.js +9 -14
  32. package/dist/channels/github/cursor-account.js +6 -11
  33. package/dist/channels/github/defaults.js +105 -130
  34. package/dist/channels/github/forward.js +13 -17
  35. package/dist/channels/github/github-channel.d.ts +43 -2
  36. package/dist/channels/github/github-channel.d.ts.map +1 -1
  37. package/dist/channels/github/github-channel.js +1228 -958
  38. package/dist/channels/github/progress.js +145 -146
  39. package/dist/channels/github/replay.js +30 -39
  40. package/dist/channels/github/state.js +40 -16
  41. package/dist/channels/github/types.d.ts +30 -6
  42. package/dist/channels/github/types.d.ts.map +1 -1
  43. package/dist/channels/gitlab/api.js +100 -114
  44. package/dist/channels/gitlab/binding.js +52 -33
  45. package/dist/channels/gitlab/checks.js +28 -29
  46. package/dist/channels/gitlab/cursor-account.js +1 -1
  47. package/dist/channels/gitlab/defaults.js +9 -3
  48. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  49. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  50. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  51. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  52. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  53. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  54. package/dist/channels/gitlab/index.d.ts +6 -2
  55. package/dist/channels/gitlab/index.d.ts.map +1 -1
  56. package/dist/channels/gitlab/index.js +6 -2
  57. package/dist/channels/gitlab/replay.js +50 -27
  58. package/dist/channels/gitlab/state.js +14 -6
  59. package/dist/channels/gitlab/types.d.ts +13 -2
  60. package/dist/channels/gitlab/types.d.ts.map +1 -1
  61. package/dist/channels/origin/api.js +100 -116
  62. package/dist/channels/origin/binding.js +15 -16
  63. package/dist/channels/origin/checks.js +30 -28
  64. package/dist/channels/origin/defaults.js +50 -65
  65. package/dist/channels/origin/origin-channel.js +266 -272
  66. package/dist/channels/origin/origin-webhook.js +70 -88
  67. package/dist/channels/origin/reactions.js +9 -21
  68. package/dist/channels/origin/state.js +13 -5
  69. package/dist/channels/slack/agentic-delivery.js +426 -478
  70. package/dist/channels/slack/agentic-posted.js +9 -10
  71. package/dist/channels/slack/agentic-signals.js +2 -3
  72. package/dist/channels/slack/api.js +417 -427
  73. package/dist/channels/slack/approvals.js +1 -1
  74. package/dist/channels/slack/assistant.js +37 -47
  75. package/dist/channels/slack/attachments.js +188 -206
  76. package/dist/channels/slack/auth.js +8 -6
  77. package/dist/channels/slack/bot-mentions.js +31 -45
  78. package/dist/channels/slack/channel-watch.js +42 -48
  79. package/dist/channels/slack/cli-project.js +112 -137
  80. package/dist/channels/slack/code-fences.js +3 -5
  81. package/dist/channels/slack/constants.js +2 -2
  82. package/dist/channels/slack/credentials.js +23 -38
  83. package/dist/channels/slack/defaults.js +292 -331
  84. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  85. package/dist/channels/slack/dispatch.js +533 -460
  86. package/dist/channels/slack/doctor.js +200 -214
  87. package/dist/channels/slack/eval-directive.js +79 -96
  88. package/dist/channels/slack/event-id-dedupe.js +1 -1
  89. package/dist/channels/slack/external-policy.js +26 -39
  90. package/dist/channels/slack/footer.js +28 -41
  91. package/dist/channels/slack/inbound.d.ts +1 -0
  92. package/dist/channels/slack/inbound.d.ts.map +1 -1
  93. package/dist/channels/slack/inbound.js +50 -31
  94. package/dist/channels/slack/init.d.ts +1 -5
  95. package/dist/channels/slack/init.d.ts.map +1 -1
  96. package/dist/channels/slack/init.js +42 -59
  97. package/dist/channels/slack/interactive.d.ts +9 -3
  98. package/dist/channels/slack/interactive.d.ts.map +1 -1
  99. package/dist/channels/slack/interactive.js +160 -162
  100. package/dist/channels/slack/links.js +1 -2
  101. package/dist/channels/slack/live-delivery.js +172 -190
  102. package/dist/channels/slack/manifest.d.ts.map +1 -1
  103. package/dist/channels/slack/manifest.js +44 -23
  104. package/dist/channels/slack/message-body.js +2 -2
  105. package/dist/channels/slack/nudge-carrier.js +30 -42
  106. package/dist/channels/slack/nudge-store.js +164 -191
  107. package/dist/channels/slack/paint-start.js +66 -81
  108. package/dist/channels/slack/placeholder.js +123 -152
  109. package/dist/channels/slack/pr-ref.js +1 -1
  110. package/dist/channels/slack/progress-delivery.js +65 -78
  111. package/dist/channels/slack/reasoning-card.js +36 -49
  112. package/dist/channels/slack/recording-sink.js +12 -24
  113. package/dist/channels/slack/reply-options.js +7 -12
  114. package/dist/channels/slack/self-identity.js +27 -35
  115. package/dist/channels/slack/sender-name.d.ts +12 -3
  116. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  117. package/dist/channels/slack/sender-name.js +57 -61
  118. package/dist/channels/slack/setup.js +2 -4
  119. package/dist/channels/slack/slack-channel.d.ts +6 -4
  120. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  121. package/dist/channels/slack/slack-channel.js +441 -308
  122. package/dist/channels/slack/socket-mode.js +38 -52
  123. package/dist/channels/slack/thread-context.js +143 -160
  124. package/dist/channels/slack/tool-approval-events.js +149 -166
  125. package/dist/channels/slack/tool-cards.js +6 -11
  126. package/dist/channels/slack/tool-chip.js +1 -2
  127. package/dist/channels/slack/types.d.ts +15 -17
  128. package/dist/channels/slack/types.d.ts.map +1 -1
  129. package/dist/channels/slack/upload.js +84 -97
  130. package/dist/channels/slack/user-info.js +27 -41
  131. package/dist/channels.js +9 -20
  132. package/dist/dashboard-session-url.js +3 -4
  133. package/dist/docs/404.html +2 -2
  134. package/dist/docs/assets/{app.oyjtOr3W.js → app.DXI7bwox.js} +4 -4
  135. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  136. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  137. package/dist/docs/assets/chunks/{VPLocalSearchBox.D0P6J_UJ.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  138. package/dist/docs/assets/chunks/{arc.B0LY1J1h.js → arc.BOG1yms8.js} +1 -1
  139. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.dPduLUxY.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  140. package/dist/docs/assets/chunks/{baseUniq.B_Ohm21h.js → baseUniq.H044KjKs.js} +1 -1
  141. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.B4zcanaJ.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  142. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D9Iw21nx.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  143. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  144. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DDVwRShI.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DsYcdn1i.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-55IACEB6.BzzQvcYp.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BMiXZ7FX.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.D_mBcLoc.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMVjWVMx.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  150. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BG-FrPv9.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  151. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CkFE1ap3.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  152. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  153. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  154. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  155. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BVNnCTvY.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  156. package/dist/docs/assets/chunks/{dagre-KV5264BT.CDN5PR9l.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DQRUlT-i.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.CoeblYQT.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  159. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DW3ymjl0.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  160. package/dist/docs/assets/chunks/{diagram-TYMM5635.BP0uN4Jw.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  161. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DVFUWEn4.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  162. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.HU-eHspv.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  163. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHNhXijY.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  164. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DkISXcO3.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  165. package/dist/docs/assets/chunks/{graph.CCV0fuRR.js → graph.BVqKRmRo.js} +1 -1
  166. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.bgILzOoc.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  167. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CuryXC0F.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  168. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BL1Pr-wu.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  169. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BbGjvk4l.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  170. package/dist/docs/assets/chunks/{layout.C4PfdldS.js → layout.CGU3gfSf.js} +1 -1
  171. package/dist/docs/assets/chunks/{linear.C3xD1T6X.js → linear.DaihpW_n.js} +1 -1
  172. package/dist/docs/assets/chunks/{min.CzgRAQ9c.js → min.BS-j8kHQ.js} +1 -1
  173. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CA9rSWum.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  174. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B8MprgJu.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  175. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DndDwbKT.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  176. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.Zhfgwlnn.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  177. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.B6RRm6N5.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  178. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bfmz-1PN.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  179. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.gbrdNqgj.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  180. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  181. package/dist/docs/assets/chunks/{theme.gpWjytMh.js → theme.DaplWQhQ.js} +2 -2
  182. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bl1l7M1f.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  183. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Dfle4U0d.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  184. package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +162 -0
  185. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.CM_4lmvZ.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  186. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CHT5X28R.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  187. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  188. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  189. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  191. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  192. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  193. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  194. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  195. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  196. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  197. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  198. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  199. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  200. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  201. package/dist/docs/building-with-agents.html +37 -37
  202. package/dist/docs/building-with-agents.md +2 -0
  203. package/dist/docs/deployment.html +38 -38
  204. package/dist/docs/deployment.md +7 -0
  205. package/dist/docs/evals.html +36 -36
  206. package/dist/docs/guides/agent-to-agent.html +35 -35
  207. package/dist/docs/guides/bitbucket.html +38 -38
  208. package/dist/docs/guides/bitbucket.md +9 -1
  209. package/dist/docs/guides/cloud-agents.html +35 -35
  210. package/dist/docs/guides/convert-automation.html +35 -35
  211. package/dist/docs/guides/github.html +39 -39
  212. package/dist/docs/guides/github.md +20 -4
  213. package/dist/docs/guides/gitlab.html +38 -38
  214. package/dist/docs/guides/gitlab.md +9 -1
  215. package/dist/docs/guides/grokbot-agents.html +35 -35
  216. package/dist/docs/guides/hooks.html +35 -35
  217. package/dist/docs/guides/improve.html +35 -35
  218. package/dist/docs/guides/jev.html +35 -35
  219. package/dist/docs/guides/mcp-oauth.html +35 -35
  220. package/dist/docs/guides/migrate.html +66 -0
  221. package/dist/docs/guides/migrate.md +122 -0
  222. package/dist/docs/guides/opentelemetry.html +35 -35
  223. package/dist/docs/guides/slack.html +35 -35
  224. package/dist/docs/guides/webhooks.html +35 -35
  225. package/dist/docs/hashmap.json +1 -1
  226. package/dist/docs/hillclimbing.html +35 -35
  227. package/dist/docs/index.html +35 -35
  228. package/dist/docs/llms-full.txt +214 -6
  229. package/dist/docs/llms.txt +1 -0
  230. package/dist/docs/quickstart.html +35 -35
  231. package/dist/docs/reference/agent-config.html +35 -35
  232. package/dist/docs/reference/artifacts.html +35 -35
  233. package/dist/docs/reference/channels.html +35 -35
  234. package/dist/docs/reference/cli.html +39 -38
  235. package/dist/docs/reference/cli.md +39 -0
  236. package/dist/docs/reference/connections.html +35 -35
  237. package/dist/docs/reference/evals.html +35 -35
  238. package/dist/docs/reference/extensions.html +35 -35
  239. package/dist/docs/reference/hooks.html +35 -35
  240. package/dist/docs/reference/http-api.html +35 -35
  241. package/dist/docs/reference/instructions.html +35 -35
  242. package/dist/docs/reference/playground.html +35 -35
  243. package/dist/docs/reference/project-layout.html +35 -35
  244. package/dist/docs/reference/prompt.html +35 -35
  245. package/dist/docs/reference/schedules.html +35 -35
  246. package/dist/docs/reference/sessions.html +35 -35
  247. package/dist/docs/reference/skills.html +38 -38
  248. package/dist/docs/reference/subagents.html +35 -35
  249. package/dist/docs/reference/tools.html +35 -35
  250. package/dist/docs/templates/agentic-owners.html +35 -35
  251. package/dist/docs/templates/grokbot-agents.html +35 -35
  252. package/dist/docs/templates/security-reviewer.html +35 -35
  253. package/dist/docs/templates/thermo-quality-review.html +35 -35
  254. package/dist/docs/templates/thermo-review.html +35 -35
  255. package/dist/docs/templates/triage.html +35 -35
  256. package/dist/docs/troubleshooting.html +36 -36
  257. package/dist/docs/troubleshooting.md +1 -0
  258. package/dist/evals/assertions.js +20 -34
  259. package/dist/evals/expect.js +3 -6
  260. package/dist/evals/judge.js +5 -8
  261. package/dist/evals/loaders.js +45 -62
  262. package/dist/evals/matchers.js +2 -3
  263. package/dist/evals/reporters.js +43 -67
  264. package/dist/evals/results.js +1 -1
  265. package/dist/evals/run-facts.js +5 -6
  266. package/dist/evals.js +27 -15
  267. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  268. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +0 -1
  269. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  270. package/dist/extensions/cursor-cloud-agents/lib/backend.js +101 -130
  271. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  272. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  273. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  274. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  275. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  276. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  277. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  278. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  279. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  280. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -1
  281. package/dist/extensions/cursor-cloud-agents/tools/list.js +9 -20
  282. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  283. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  284. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  285. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  286. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  287. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  288. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  289. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  290. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  291. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  292. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  293. package/dist/extensions/jev/extension.js +3 -3
  294. package/dist/extensions/jev/lib/evaluate.js +43 -60
  295. package/dist/extensions/jev/tools/evaluate.js +6 -17
  296. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  297. package/dist/extensions.js +3 -5
  298. package/dist/files-backends/cursor-hosted.js +504 -523
  299. package/dist/files-backends/local-fs.js +72 -134
  300. package/dist/files.js +3 -3
  301. package/dist/filesystem.js +562 -861
  302. package/dist/index.js +16 -35
  303. package/dist/internal/advertise-tools.js +74 -86
  304. package/dist/internal/artifacts-store.js +298 -361
  305. package/dist/internal/as-of.js +2 -4
  306. package/dist/internal/authored-alias-hooks.js +6 -4
  307. package/dist/internal/authored-loaders.js +37 -52
  308. package/dist/internal/bounded-int.js +1 -2
  309. package/dist/internal/bounded.js +13 -24
  310. package/dist/internal/brand.js +1 -1
  311. package/dist/internal/browser-origin-guard.js +4 -4
  312. package/dist/internal/builtin-tools/artifacts.js +15 -27
  313. package/dist/internal/builtin-tools/index.js +2 -3
  314. package/dist/internal/builtin-tools/reminders.js +33 -52
  315. package/dist/internal/channel-architecture.d.ts +21 -0
  316. package/dist/internal/channel-architecture.d.ts.map +1 -0
  317. package/dist/internal/channel-architecture.js +41 -0
  318. package/dist/internal/channel-dispatch.js +3 -4
  319. package/dist/internal/channel-route-dispatch.js +40 -51
  320. package/dist/internal/channel-state.js +1 -1
  321. package/dist/internal/chat-client.js +319 -340
  322. package/dist/internal/cli-ax.js +1262 -1294
  323. package/dist/internal/cli-bitbucket.js +244 -272
  324. package/dist/internal/cli-convert-automation.js +137 -151
  325. package/dist/internal/cli-cursor.js +126 -147
  326. package/dist/internal/cli-deploy.d.ts.map +1 -1
  327. package/dist/internal/cli-deploy.js +1457 -1507
  328. package/dist/internal/cli-docs.js +130 -147
  329. package/dist/internal/cli-github.js +437 -476
  330. package/dist/internal/cli-gitlab.js +259 -288
  331. package/dist/internal/cli-images.js +266 -334
  332. package/dist/internal/cli-manifest.js +25 -37
  333. package/dist/internal/cli-mcp-oauth.js +228 -247
  334. package/dist/internal/cli-mcp.js +358 -383
  335. package/dist/internal/cli-migrate.d.ts +18 -0
  336. package/dist/internal/cli-migrate.d.ts.map +1 -0
  337. package/dist/internal/cli-migrate.js +136 -0
  338. package/dist/internal/cli-skills.js +35 -47
  339. package/dist/internal/cli-slack-manual.d.ts +0 -1
  340. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  341. package/dist/internal/cli-slack-manual.js +175 -204
  342. package/dist/internal/cli-slack.d.ts +1 -1
  343. package/dist/internal/cli-slack.d.ts.map +1 -1
  344. package/dist/internal/cli-slack.js +416 -456
  345. package/dist/internal/cloud-merge.js +7 -3
  346. package/dist/internal/cloud-turn-cost.js +8 -1
  347. package/dist/internal/connection-env.js +5 -6
  348. package/dist/internal/continuation-channel.js +10 -7
  349. package/dist/internal/continuation-identity.js +85 -67
  350. package/dist/internal/conversation-mirror.js +112 -131
  351. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  352. package/dist/internal/cron.js +3 -3
  353. package/dist/internal/cursor/account-mcp.js +147 -146
  354. package/dist/internal/cursor/backend-client.js +290 -320
  355. package/dist/internal/cursor/bound-secret-file.js +3 -3
  356. package/dist/internal/cursor/credentials.d.ts +1 -0
  357. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  358. package/dist/internal/cursor/credentials.js +130 -142
  359. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  360. package/dist/internal/cursor/github-credentials.js +91 -108
  361. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  362. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  363. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  364. package/dist/internal/cursor/session-token.js +36 -48
  365. package/dist/internal/cursor/store-api-client.js +77 -92
  366. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  367. package/dist/internal/cursor-agent-template.js +1 -1
  368. package/dist/internal/cursor-deployment-relay.js +33 -54
  369. package/dist/internal/cursor-event-relay.js +65 -59
  370. package/dist/internal/cursor-relay-core.js +258 -286
  371. package/dist/internal/deferred-channel-session.js +3 -12
  372. package/dist/internal/deploy-client.js +410 -475
  373. package/dist/internal/deploy-manifest.d.ts +17 -0
  374. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  375. package/dist/internal/deploy-manifest.js +71 -21
  376. package/dist/internal/deploy-source.js +31 -43
  377. package/dist/internal/discovery/agent-config.js +45 -59
  378. package/dist/internal/discovery/agent.js +276 -280
  379. package/dist/internal/discovery/channels.js +67 -80
  380. package/dist/internal/discovery/connections.js +286 -296
  381. package/dist/internal/discovery/context.js +2 -13
  382. package/dist/internal/discovery/cursor-plugin.js +223 -259
  383. package/dist/internal/discovery/extension-overlay.js +104 -131
  384. package/dist/internal/discovery/extensions.js +276 -281
  385. package/dist/internal/discovery/fs.js +56 -79
  386. package/dist/internal/discovery/hooks.js +39 -50
  387. package/dist/internal/discovery/info.js +17 -19
  388. package/dist/internal/discovery/instructions.js +58 -71
  389. package/dist/internal/discovery/modules.js +45 -58
  390. package/dist/internal/discovery/project.d.ts.map +1 -1
  391. package/dist/internal/discovery/project.js +192 -215
  392. package/dist/internal/discovery/reminders.js +41 -52
  393. package/dist/internal/discovery/runtime.js +1 -1
  394. package/dist/internal/discovery/schedules.js +71 -82
  395. package/dist/internal/discovery/seed-files.js +21 -32
  396. package/dist/internal/discovery/services.js +74 -96
  397. package/dist/internal/discovery/skills.js +77 -94
  398. package/dist/internal/discovery/subagent.js +79 -95
  399. package/dist/internal/discovery/tools.js +12 -23
  400. package/dist/internal/distribution.js +2 -2
  401. package/dist/internal/docs-site.js +30 -45
  402. package/dist/internal/duration.js +1 -1
  403. package/dist/internal/env-file.js +48 -64
  404. package/dist/internal/eval-judge-model.js +17 -28
  405. package/dist/internal/eval-run-store.js +265 -254
  406. package/dist/internal/eval-runner.d.ts +8 -0
  407. package/dist/internal/eval-runner.d.ts.map +1 -1
  408. package/dist/internal/eval-runner.js +406 -408
  409. package/dist/internal/eval-transport.d.ts +24 -0
  410. package/dist/internal/eval-transport.d.ts.map +1 -0
  411. package/dist/internal/eval-transport.js +22 -0
  412. package/dist/internal/evals-client.js +242 -246
  413. package/dist/internal/event-log.js +72 -120
  414. package/dist/internal/event-mapper.js +30 -31
  415. package/dist/internal/factory-resource-channel.js +16 -30
  416. package/dist/internal/filesystem/errors.js +6 -6
  417. package/dist/internal/filesystem/format.js +10 -13
  418. package/dist/internal/filesystem/merge.js +52 -94
  419. package/dist/internal/filesystem/nearest.js +15 -27
  420. package/dist/internal/filesystem/scratch.js +65 -85
  421. package/dist/internal/filesystem/tools.js +221 -241
  422. package/dist/internal/filesystem/walk.js +76 -143
  423. package/dist/internal/framework-file-storage.js +118 -139
  424. package/dist/internal/framework-storage-selection.js +21 -13
  425. package/dist/internal/frontmatter.js +4 -6
  426. package/dist/internal/github-fanout.js +50 -64
  427. package/dist/internal/guest-network.js +96 -109
  428. package/dist/internal/handleAgentServeTrigger.js +121 -126
  429. package/dist/internal/host-files.js +73 -88
  430. package/dist/internal/host-kv.js +21 -36
  431. package/dist/internal/host-otel.js +22 -19
  432. package/dist/internal/host-platforms.js +49 -63
  433. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  434. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  435. package/dist/internal/hosted-catch-protocol.js +1 -0
  436. package/dist/internal/hosted-catch.d.ts +5 -3
  437. package/dist/internal/hosted-catch.d.ts.map +1 -1
  438. package/dist/internal/hosted-catch.js +84 -93
  439. package/dist/internal/hosted-delivery-protocol.js +32 -8
  440. package/dist/internal/hosted-delivery.d.ts +13 -1
  441. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  442. package/dist/internal/hosted-delivery.js +614 -584
  443. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  444. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  445. package/dist/internal/hosted-eval-cases.js +162 -0
  446. package/dist/internal/hosted-execution-diag.js +38 -30
  447. package/dist/internal/hosted-execution-flush.js +75 -66
  448. package/dist/internal/hosted-execution-latency.js +16 -8
  449. package/dist/internal/hosted-managed-automation.js +2 -2
  450. package/dist/internal/hosting.js +2 -3
  451. package/dist/internal/http-channel-define.js +4 -1
  452. package/dist/internal/http-channel.js +101 -112
  453. package/dist/internal/http-control-plane-session.d.ts +18 -1
  454. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  455. package/dist/internal/http-control-plane-session.js +66 -32
  456. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  457. package/dist/internal/init-interview.js +73 -93
  458. package/dist/internal/init-project.js +182 -214
  459. package/dist/internal/init-scaffold.js +10 -21
  460. package/dist/internal/inline-stdio-mcp.js +80 -86
  461. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  462. package/dist/internal/install-cursor-skills.js +238 -274
  463. package/dist/internal/legacy-command-guard.js +18 -31
  464. package/dist/internal/listen-port.js +34 -45
  465. package/dist/internal/local-control-plane.js +293 -307
  466. package/dist/internal/local-env.js +1 -1
  467. package/dist/internal/local-ingress.js +15 -9
  468. package/dist/internal/log-ring.js +1 -2
  469. package/dist/internal/logs-client.js +207 -227
  470. package/dist/internal/map-pool.js +24 -38
  471. package/dist/internal/mcp-endpoint.js +204 -180
  472. package/dist/internal/mcp-host.js +165 -168
  473. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  474. package/dist/internal/mcp-oauth-persist.js +15 -29
  475. package/dist/internal/mcp-oauth.js +209 -266
  476. package/dist/internal/named-webhook-secret.d.ts +39 -0
  477. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  478. package/dist/internal/named-webhook-secret.js +47 -0
  479. package/dist/internal/open-browser.js +2 -3
  480. package/dist/internal/otel/collector.js +104 -68
  481. package/dist/internal/otel/config.js +24 -37
  482. package/dist/internal/otel/http.js +5 -7
  483. package/dist/internal/otel/mcp.js +3 -12
  484. package/dist/internal/otel/runtime.js +69 -83
  485. package/dist/internal/package-inline-stdio.js +57 -65
  486. package/dist/internal/peer-connections.js +9 -5
  487. package/dist/internal/platform-schedule-sync.js +39 -54
  488. package/dist/internal/platform-timers.js +176 -210
  489. package/dist/internal/playground/static.js +1 -2
  490. package/dist/internal/playground/toolchain.js +37 -53
  491. package/dist/internal/playground-proxy.js +230 -270
  492. package/dist/internal/process-memory-telemetry.js +33 -51
  493. package/dist/internal/prompt-context.js +3 -6
  494. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  495. package/dist/internal/reminder-runner.js +770 -785
  496. package/dist/internal/reminder-schedule.js +1 -1
  497. package/dist/internal/reminder-store.js +57 -78
  498. package/dist/internal/request-error-status.js +1 -3
  499. package/dist/internal/request-headers.js +2 -2
  500. package/dist/internal/resolve-prod-target.js +119 -135
  501. package/dist/internal/resolved-connections.js +16 -6
  502. package/dist/internal/run-client.js +221 -229
  503. package/dist/internal/runtime-dispatch-runner.js +18 -43
  504. package/dist/internal/schedule-runner.js +49 -58
  505. package/dist/internal/scm/pr-url.js +7 -6
  506. package/dist/internal/sdk-runner.js +388 -363
  507. package/dist/internal/serve-restart.js +26 -39
  508. package/dist/internal/server.d.ts.map +1 -1
  509. package/dist/internal/server.js +1283 -1244
  510. package/dist/internal/session-cost.js +7 -9
  511. package/dist/internal/session-engine.d.ts +3 -1
  512. package/dist/internal/session-engine.d.ts.map +1 -1
  513. package/dist/internal/session-engine.js +2801 -2777
  514. package/dist/internal/session-links.js +12 -16
  515. package/dist/internal/session-run-log.js +134 -82
  516. package/dist/internal/session-store.js +133 -164
  517. package/dist/internal/sessions-client.js +97 -118
  518. package/dist/internal/skill-catalog.js +18 -23
  519. package/dist/internal/skills-sync.js +16 -30
  520. package/dist/internal/slack-provision-client.js +90 -116
  521. package/dist/internal/start-log-store.js +48 -67
  522. package/dist/internal/steering.js +1 -2
  523. package/dist/internal/storage-coordinator.js +160 -196
  524. package/dist/internal/store-mirror.js +16 -30
  525. package/dist/internal/stream-progress.js +6 -8
  526. package/dist/internal/terminal-style.js +3 -4
  527. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  528. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  529. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  530. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  531. package/dist/internal/tool-catalog.js +11 -5
  532. package/dist/internal/tool-result.js +1 -1
  533. package/dist/internal/trajectory.js +19 -22
  534. package/dist/internal/turn-cost.js +52 -62
  535. package/dist/internal/turn-governor.js +5 -8
  536. package/dist/internal/turn-lease-store.js +85 -105
  537. package/dist/internal/turn-outbox.js +28 -43
  538. package/dist/internal/update-check.js +231 -259
  539. package/dist/internal/v2-hosting.js +1 -2
  540. package/dist/internal/workspace-sync.js +25 -41
  541. package/dist/internal/workspace.js +111 -139
  542. package/dist/kv/memory-kv.js +27 -51
  543. package/dist/memory.js +106 -148
  544. package/dist/otel.js +5 -8
  545. package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
  546. package/dist/playground/assets/{index-MijLHTbB.js → index-JekUQERK.js} +45 -45
  547. package/dist/playground/index.html +2 -2
  548. package/dist/prompt.js +2 -4
  549. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  550. package/dist/storage-backends/cursor-hosted.js +105 -145
  551. package/dist/storage-backends/file-kv.js +100 -128
  552. package/dist/storage-protocol.js +3 -5
  553. package/dist/storage.js +17 -26
  554. package/dist/types.d.ts +68 -0
  555. package/dist/types.d.ts.map +1 -1
  556. package/dist/types.js +20 -18
  557. package/docs/building-with-agents.md +2 -0
  558. package/docs/deployment.md +7 -0
  559. package/docs/guides/bitbucket.md +9 -1
  560. package/docs/guides/github.md +20 -4
  561. package/docs/guides/gitlab.md +9 -1
  562. package/docs/guides/migrate.md +127 -0
  563. package/docs/reference/cli.md +39 -0
  564. package/docs/troubleshooting.md +1 -0
  565. package/package.json +1 -1
  566. package/skills/debug/SKILL.md +1 -0
  567. package/skills/github/SKILL.md +23 -0
  568. package/skills/migrate-v2/SKILL.md +264 -0
  569. package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +0 -1
  570. package/dist/docs/assets/chunks/channel.CRUyWDV-.js +0 -1
  571. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +0 -1
  572. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +0 -1
  573. package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +0 -1
  574. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +0 -1
  575. package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +0 -162
  576. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  577. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  578. package/dist/playground/assets/index-DPKLl4C_.css +0 -1
  579. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  580. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
  581. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
@@ -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
  }