@cursor/bdk 0.2.25 → 0.2.27

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 (449) hide show
  1. package/AGENTS.md +3 -18
  2. package/CHANGELOG.md +3 -0
  3. package/dist/artifacts.d.ts +1 -1
  4. package/dist/artifacts.js +1 -1
  5. package/dist/bin/agent-serve.js +25 -21
  6. package/dist/channels/bitbucket/api.d.ts +2 -2
  7. package/dist/channels/bitbucket/api.d.ts.map +1 -1
  8. package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
  9. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +2 -2
  10. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  11. package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
  12. package/dist/channels/deployments/deployments-channel.js +1 -1
  13. package/dist/channels/github/cursor-account.d.ts +7 -0
  14. package/dist/channels/github/cursor-account.d.ts.map +1 -1
  15. package/dist/channels/github/cursor-account.js +22 -5
  16. package/dist/channels/github/github-channel.js +1 -1
  17. package/dist/channels/github/replay.d.ts +1 -1
  18. package/dist/channels/github/replay.d.ts.map +1 -1
  19. package/dist/channels/gitlab/api.d.ts +2 -2
  20. package/dist/channels/gitlab/api.d.ts.map +1 -1
  21. package/dist/channels/gitlab/gitlab-channel.js +1 -1
  22. package/dist/channels/issues/issues-channel.js +1 -1
  23. package/dist/channels/origin/api.d.ts +4 -4
  24. package/dist/channels/origin/api.d.ts.map +1 -1
  25. package/dist/channels/origin/origin-channel.js +1 -1
  26. package/dist/channels/origin/origin-webhook.d.ts +3 -3
  27. package/dist/channels/origin/origin-webhook.d.ts.map +1 -1
  28. package/dist/channels/pagerduty/pagerduty-webhook.d.ts +2 -2
  29. package/dist/channels/pagerduty/pagerduty-webhook.d.ts.map +1 -1
  30. package/dist/channels/runs/runs-channel.js +1 -1
  31. package/dist/channels/slack/agentic-delivery.d.ts +2 -1
  32. package/dist/channels/slack/agentic-delivery.d.ts.map +1 -1
  33. package/dist/channels/slack/agentic-delivery.js +6 -10
  34. package/dist/channels/slack/agentic-signals.d.ts +2 -7
  35. package/dist/channels/slack/agentic-signals.d.ts.map +1 -1
  36. package/dist/channels/slack/agentic-signals.js +4 -3
  37. package/dist/channels/slack/api.d.ts +1 -0
  38. package/dist/channels/slack/api.d.ts.map +1 -1
  39. package/dist/channels/slack/api.js +3 -0
  40. package/dist/channels/slack/constants.d.ts +2 -0
  41. package/dist/channels/slack/constants.d.ts.map +1 -1
  42. package/dist/channels/slack/constants.js +2 -0
  43. package/dist/channels/slack/defaults.d.ts.map +1 -1
  44. package/dist/channels/slack/defaults.js +3 -2
  45. package/dist/channels/slack/dispatch.d.ts +9 -0
  46. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  47. package/dist/channels/slack/dispatch.js +3 -0
  48. package/dist/channels/slack/inbound.d.ts.map +1 -1
  49. package/dist/channels/slack/inbound.js +24 -20
  50. package/dist/channels/slack/interactive.d.ts +2 -0
  51. package/dist/channels/slack/interactive.d.ts.map +1 -1
  52. package/dist/channels/slack/interactive.js +1 -0
  53. package/dist/channels/slack/live-delivery.d.ts +3 -0
  54. package/dist/channels/slack/live-delivery.d.ts.map +1 -1
  55. package/dist/channels/slack/live-delivery.js +5 -0
  56. package/dist/channels/slack/reply-options.d.ts +9 -0
  57. package/dist/channels/slack/reply-options.d.ts.map +1 -1
  58. package/dist/channels/slack/reply-options.js +31 -1
  59. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  60. package/dist/channels/slack/slack-channel.js +7 -0
  61. package/dist/channels/slack/stream.d.ts +5 -1
  62. package/dist/channels/slack/stream.d.ts.map +1 -1
  63. package/dist/channels/slack/types.d.ts +29 -0
  64. package/dist/channels/slack/types.d.ts.map +1 -1
  65. package/dist/channels.d.ts +1 -1
  66. package/dist/channels.js +1 -1
  67. package/dist/docs/404.html +3 -3
  68. package/dist/docs/assets/{app.BjS1QEI4.js → app.wA5xBBcd.js} +4 -4
  69. package/dist/docs/assets/changelog.md.BvHRIiMH.js +1 -0
  70. package/dist/docs/assets/changelog.md.BvHRIiMH.lean.js +1 -0
  71. package/dist/docs/assets/chunks/@localSearchIndexroot.BoDEJQWv.js +1 -0
  72. package/dist/docs/assets/chunks/{VPLocalSearchBox.BOuvjb5Y.js → VPLocalSearchBox.C29HLCVL.js} +2 -2
  73. package/dist/docs/assets/chunks/{arc.3WR6Jf-y.js → arc.BOaoYWmh.js} +1 -1
  74. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.Dtb6Dqh6.js → architectureDiagram-Q4EWVU46.MfG0itQh.js} +1 -1
  75. package/dist/docs/assets/chunks/{baseUniq.BUyrgrZE.js → baseUniq.CUeJciCF.js} +1 -1
  76. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BVLV_voZ.js → blockDiagram-DXYQGD6D.BrXMZRtK.js} +1 -1
  77. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.jXJ1q70M.js → c4Diagram-AHTNJAMY.DfkDHeB9.js} +1 -1
  78. package/dist/docs/assets/chunks/channel.D2BTz0L-.js +1 -0
  79. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.zz1SMBvK.js → chunk-4BX2VUAB.xKz8CiXK.js} +1 -1
  80. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.CzYKuv3I.js → chunk-4TB4RGXK.kkfBh4zk.js} +1 -1
  81. package/dist/docs/assets/chunks/{chunk-55IACEB6.C7_tcJZD.js → chunk-55IACEB6.BClJGb94.js} +1 -1
  82. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.DeTwQPVO.js → chunk-EDXVE4YY.P9BpQ9L3.js} +1 -1
  83. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DhMTl7ut.js → chunk-FMBD7UC4.R4iYi58S.js} +1 -1
  84. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Me7f5hEp.js → chunk-OYMX7WX6.Cpn8L1dw.js} +1 -1
  85. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.D0E0Bb6g.js → chunk-QZHKN3VN.BLftECqU.js} +1 -1
  86. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CdOOBFYL.js → chunk-YZCP3GAM.BWDV1AYt.js} +1 -1
  87. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DqByliAC.js +1 -0
  88. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DqByliAC.js +1 -0
  89. package/dist/docs/assets/chunks/clone.CldT1lbQ.js +1 -0
  90. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BNbGESzN.js → cose-bilkent-S5V4N54A.DGpAcJ55.js} +1 -1
  91. package/dist/docs/assets/chunks/{dagre-KV5264BT.zU7Lu_xJ.js → dagre-KV5264BT.BBXxGEaD.js} +1 -1
  92. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.B9qOdE5h.js → diagram-5BDNPKRD.EKqOwmK2.js} +1 -1
  93. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.D8X-sf77.js → diagram-G4DWMVQ6.CB8pdkoZ.js} +1 -1
  94. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.CW7MvMlE.js → diagram-MMDJMWI5.aHh4WGg9.js} +1 -1
  95. package/dist/docs/assets/chunks/{diagram-TYMM5635.J489G0Nd.js → diagram-TYMM5635.YIsbRH20.js} +1 -1
  96. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BkW7tGfs.js → erDiagram-SMLLAGMA.B3bTCW_e.js} +1 -1
  97. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.jc9iWORD.js → flowDiagram-DWJPFMVM.M81hXIXZ.js} +1 -1
  98. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.B-UQfd9E.js → ganttDiagram-T4ZO3ILL.BKg7WY--.js} +1 -1
  99. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DFzrTSlJ.js → gitGraphDiagram-UUTBAWPF.CLEMZgO3.js} +1 -1
  100. package/dist/docs/assets/chunks/{graph.C5IB6_e_.js → graph.DS38W_Q-.js} +1 -1
  101. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.DwF0-c8L.js → infoDiagram-42DDH7IO.BTiWTi82.js} +1 -1
  102. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.fBaTqzE7.js → ishikawaDiagram-UXIWVN3A.DcqY_KQL.js} +1 -1
  103. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CM8gDVJy.js → journeyDiagram-VCZTEJTY.0lQNZ40U.js} +1 -1
  104. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.YiD1p0LB.js → kanban-definition-6JOO6SKY.L5sKlf7X.js} +1 -1
  105. package/dist/docs/assets/chunks/{layout.6Um-DVJT.js → layout.7u4gFhQa.js} +1 -1
  106. package/dist/docs/assets/chunks/{linear.DcTeg4Hn.js → linear.D5v33SOb.js} +1 -1
  107. package/dist/docs/assets/chunks/{min.CIxkY8Fe.js → min.Dc9uCxf9.js} +1 -1
  108. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.D4QM_voR.js → mindmap-definition-QFDTVHPH.B56nGoB_.js} +1 -1
  109. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.nmB309G1.js → pieDiagram-DEJITSTG.Cba8e8lS.js} +1 -1
  110. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D1HtZR3C.js → quadrantDiagram-34T5L4WZ.2YjBycHF.js} +1 -1
  111. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CZgQWob-.js → requirementDiagram-MS252O5E.D4P5RqVI.js} +1 -1
  112. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DtiBfU-P.js → sankeyDiagram-XADWPNL6.C0Hn8NUm.js} +1 -1
  113. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Cld4gDSt.js → sequenceDiagram-FGHM5R23.BZm7EaoT.js} +1 -1
  114. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DatP823_.js → stateDiagram-FHFEXIEX.DcR4f3X2.js} +1 -1
  115. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.Bb4oMe0P.js +1 -0
  116. package/dist/docs/assets/chunks/{theme.D5jbBys7.js → theme.DvfKzyXq.js} +2 -2
  117. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.DwQLI2be.js → timeline-definition-GMOUNBTQ.CgDh96vg.js} +1 -1
  118. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.a5yMfnsa.js → vennDiagram-DHZGUBPP.B4fagbC8.js} +1 -1
  119. package/dist/docs/assets/chunks/{wardley-RL74JXVD.B-FXivgT.js → wardley-RL74JXVD.Ck68omim.js} +1 -1
  120. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.Dz--Opy3.js → wardleyDiagram-NUSXRM2D.DBUg0bvz.js} +1 -1
  121. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Dl8w8TeT.js → xychartDiagram-5P7HB3ND.DnKSGQE1.js} +1 -1
  122. package/dist/docs/assets/{guides_hooks.md.Bfj0pK91.js → guides_hooks.md.B2XfGX50.js} +7 -3
  123. package/dist/docs/assets/{guides_mcp-oauth.md.BM_eFC0L.js → guides_mcp-oauth.md.Cxq2TxBB.js} +3 -3
  124. package/dist/docs/assets/{guides_mcp-oauth.md.BM_eFC0L.lean.js → guides_mcp-oauth.md.Cxq2TxBB.lean.js} +1 -1
  125. package/dist/docs/assets/guides_opentelemetry.md.D4wO7_8v.js +37 -0
  126. package/dist/docs/assets/guides_opentelemetry.md.D4wO7_8v.lean.js +1 -0
  127. package/dist/docs/assets/{guides_slack.md.Bn-WupSE.js → guides_slack.md.ClIyi7FI.js} +8 -3
  128. package/dist/docs/assets/{guides_slack.md.Bn-WupSE.lean.js → guides_slack.md.ClIyi7FI.lean.js} +1 -1
  129. package/dist/docs/assets/{reference_agent-config.md.IplwL25I.js → reference_agent-config.md.CZrbHOfT.js} +8 -4
  130. package/dist/docs/assets/{reference_agent-config.md.IplwL25I.lean.js → reference_agent-config.md.CZrbHOfT.lean.js} +1 -1
  131. package/dist/docs/assets/{reference_channels.md.Bxaa020x.js → reference_channels.md.CNNIS6K7.js} +1 -1
  132. package/dist/docs/assets/{reference_hooks.md.B1jq3oGl.js → reference_hooks.md.CROr0QgC.js} +13 -7
  133. package/dist/docs/assets/{reference_hooks.md.B1jq3oGl.lean.js → reference_hooks.md.CROr0QgC.lean.js} +1 -1
  134. package/dist/docs/assets/{reference_schedules.md.03Ryy9ca.js → reference_schedules.md.BqWnJES4.js} +3 -3
  135. package/dist/docs/assets/reference_sessions.md.Bi6lHttM.js +22 -0
  136. package/dist/docs/assets/reference_sessions.md.Bi6lHttM.lean.js +1 -0
  137. package/dist/docs/assets/{reference_skills.md.C2GWh7g8.js → reference_skills.md.Ckddg6KX.js} +3 -3
  138. package/dist/docs/assets/{reference_tools.md.-6pypsWt.js → reference_tools.md.Bo0UfT0a.js} +1 -1
  139. package/dist/docs/assets/{style.nMsabY-V.css → style.B9o0luvp.css} +1 -1
  140. package/dist/docs/building-with-agents.html +37 -37
  141. package/dist/docs/changelog.html +60 -0
  142. package/dist/docs/changelog.md +114 -0
  143. package/dist/docs/deployment.html +37 -37
  144. package/dist/docs/evals.html +37 -37
  145. package/dist/docs/guides/agent-to-agent.html +37 -37
  146. package/dist/docs/guides/bitbucket.html +37 -37
  147. package/dist/docs/guides/cloud-agents.html +37 -37
  148. package/dist/docs/guides/convert-automation.html +37 -37
  149. package/dist/docs/guides/export-grokbot.html +37 -37
  150. package/dist/docs/guides/github.html +37 -37
  151. package/dist/docs/guides/gitlab.html +37 -37
  152. package/dist/docs/guides/grokbot-agents.html +37 -37
  153. package/dist/docs/guides/hooks.html +45 -41
  154. package/dist/docs/guides/hooks.md +7 -3
  155. package/dist/docs/guides/improve.html +37 -37
  156. package/dist/docs/guides/jev.html +37 -37
  157. package/dist/docs/guides/mcp-oauth.html +39 -39
  158. package/dist/docs/guides/mcp-oauth.md +12 -0
  159. package/dist/docs/guides/migrate.html +37 -37
  160. package/dist/docs/guides/opentelemetry.html +62 -70
  161. package/dist/docs/guides/opentelemetry.md +149 -179
  162. package/dist/docs/guides/pagerduty.html +37 -37
  163. package/dist/docs/guides/slack.html +44 -39
  164. package/dist/docs/guides/slack.md +41 -0
  165. package/dist/docs/guides/webhooks.html +37 -37
  166. package/dist/docs/hashmap.json +1 -1
  167. package/dist/docs/hillclimbing.html +37 -37
  168. package/dist/docs/index.html +37 -37
  169. package/dist/docs/llms-full.txt +422 -193
  170. package/dist/docs/llms.txt +2 -1
  171. package/dist/docs/quickstart.html +37 -37
  172. package/dist/docs/reference/agent-config.html +44 -40
  173. package/dist/docs/reference/agent-config.md +30 -1
  174. package/dist/docs/reference/artifacts.html +37 -37
  175. package/dist/docs/reference/channels.html +38 -38
  176. package/dist/docs/reference/channels.md +5 -1
  177. package/dist/docs/reference/cli.html +37 -37
  178. package/dist/docs/reference/connections.html +37 -37
  179. package/dist/docs/reference/evals.html +37 -37
  180. package/dist/docs/reference/extensions.html +37 -37
  181. package/dist/docs/reference/hooks.html +49 -43
  182. package/dist/docs/reference/hooks.md +10 -5
  183. package/dist/docs/reference/http-api.html +37 -37
  184. package/dist/docs/reference/instructions.html +37 -37
  185. package/dist/docs/reference/memory.html +37 -37
  186. package/dist/docs/reference/playground.html +36 -36
  187. package/dist/docs/reference/project-layout.html +37 -37
  188. package/dist/docs/reference/prompt.html +37 -37
  189. package/dist/docs/reference/schedules.html +40 -40
  190. package/dist/docs/reference/sessions.html +58 -37
  191. package/dist/docs/reference/sessions.md +46 -1
  192. package/dist/docs/reference/skills.html +40 -40
  193. package/dist/docs/reference/subagents.html +37 -37
  194. package/dist/docs/reference/tools.html +39 -39
  195. package/dist/docs/reference/tools.md +3 -3
  196. package/dist/docs/templates/agentic-owners.html +37 -37
  197. package/dist/docs/templates/grokbot-agents.html +37 -37
  198. package/dist/docs/templates/security-reviewer.html +37 -37
  199. package/dist/docs/templates/thermo-quality-review.html +37 -37
  200. package/dist/docs/templates/thermo-review.html +37 -37
  201. package/dist/docs/templates/triage.html +37 -37
  202. package/dist/docs/troubleshooting.html +36 -36
  203. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  204. package/dist/extensions/cursor-cloud-agents/extension.js +15 -15
  205. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +4 -1
  206. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  207. package/dist/extensions/cursor-cloud-agents/lib/backend.js +2 -6
  208. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
  209. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +1 -1
  210. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -1
  211. package/dist/extensions/cursor-cloud-agents/lib/inputs.js +1 -1
  212. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +1 -1
  213. package/dist/extensions/cursor-cloud-agents/tools/launch.js +1 -1
  214. package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
  215. package/dist/extensions/cursor-cloud-agents/tools/reply.js +1 -1
  216. package/dist/extensions/cursor-grokbot-agents/extension.d.ts.map +1 -1
  217. package/dist/extensions/cursor-grokbot-agents/extension.js +7 -3
  218. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +1 -1
  219. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +1 -1
  220. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +1 -1
  221. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -1
  222. package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +1 -1
  223. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +1 -1
  224. package/dist/extensions/cursor-grokbot-agents/tools/check.js +1 -1
  225. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +1 -1
  226. package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
  227. package/dist/extensions/improve/extension.js +1 -1
  228. package/dist/extensions/jev/extension.js +2 -2
  229. package/dist/extensions/jev/tools/evaluate.js +3 -3
  230. package/dist/extensions/slack-communication/extension.js +1 -1
  231. package/dist/extensions/slack-communication/tools/delete-message.js +1 -1
  232. package/dist/extensions/slack-communication/tools/edit-message.d.ts.map +1 -1
  233. package/dist/extensions/slack-communication/tools/edit-message.js +3 -6
  234. package/dist/extensions/slack-communication/tools/post-card.js +1 -1
  235. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  236. package/dist/extensions/slack-communication/tools/post-update.d.ts.map +1 -1
  237. package/dist/extensions/slack-communication/tools/post-update.js +3 -6
  238. package/dist/extensions/slack-communication/tools/react.js +1 -1
  239. package/dist/extensions/slack-communication/tools/set-status.js +1 -1
  240. package/dist/extensions.d.ts +1 -1
  241. package/dist/extensions.js +1 -1
  242. package/dist/filesystem.d.ts +26 -5
  243. package/dist/filesystem.d.ts.map +1 -1
  244. package/dist/filesystem.js +91 -18
  245. package/dist/index.d.ts +14 -11
  246. package/dist/index.d.ts.map +1 -1
  247. package/dist/index.js +8 -4
  248. package/dist/internal/as-of.d.ts +2 -0
  249. package/dist/internal/as-of.d.ts.map +1 -1
  250. package/dist/internal/as-of.js +2 -0
  251. package/dist/internal/builtin-tools/reminders.js +1 -1
  252. package/dist/internal/cli-deploy.d.ts.map +1 -1
  253. package/dist/internal/cli-deploy.js +18 -10
  254. package/dist/internal/continuation.d.ts +3 -0
  255. package/dist/internal/continuation.d.ts.map +1 -0
  256. package/dist/internal/continuation.js +1 -0
  257. package/dist/internal/conversation-mirror.d.ts +5 -0
  258. package/dist/internal/conversation-mirror.d.ts.map +1 -1
  259. package/dist/internal/conversation-mirror.js +12 -1
  260. package/dist/internal/convert-automation/convert-workflow.js +1 -1
  261. package/dist/internal/convert-grokbot/answers.d.ts.map +1 -1
  262. package/dist/internal/convert-grokbot/answers.js +10 -8
  263. package/dist/internal/convert-grokbot/recipe.d.ts +1 -1
  264. package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -1
  265. package/dist/internal/convert-grokbot/recipe.js +1 -1
  266. package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
  267. package/dist/internal/cursor/account-mcp.js +2 -0
  268. package/dist/internal/cursor/backend-client.d.ts +8 -3
  269. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  270. package/dist/internal/cursor/backend-client.js +8 -3
  271. package/dist/internal/cursor/credentials.d.ts +2 -2
  272. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  273. package/dist/internal/cursor/credentials.js +1 -1
  274. package/dist/internal/cursor-account-mcp-auth.d.ts +6 -2
  275. package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
  276. package/dist/internal/cursor-account-mcp-auth.js +15 -6
  277. package/dist/internal/deferred-channel-session.d.ts +5 -4
  278. package/dist/internal/deferred-channel-session.d.ts.map +1 -1
  279. package/dist/internal/deferred-channel-session.js +6 -4
  280. package/dist/internal/deploy-client.d.ts +5 -0
  281. package/dist/internal/deploy-client.d.ts.map +1 -1
  282. package/dist/internal/deploy-client.js +3 -3
  283. package/dist/internal/deploy-manifest.js +2 -2
  284. package/dist/internal/describe-error.d.ts +2 -0
  285. package/dist/internal/describe-error.d.ts.map +1 -1
  286. package/dist/internal/describe-error.js +2 -0
  287. package/dist/internal/discovery/agent.d.ts.map +1 -1
  288. package/dist/internal/discovery/agent.js +29 -9
  289. package/dist/internal/discovery/context.d.ts.map +1 -1
  290. package/dist/internal/discovery/context.js +1 -2
  291. package/dist/internal/discovery/cursor-plugin.js +8 -8
  292. package/dist/internal/discovery/extensions.js +15 -8
  293. package/dist/internal/discovery/info.d.ts +2 -2
  294. package/dist/internal/discovery/info.d.ts.map +1 -1
  295. package/dist/internal/discovery/info.js +6 -9
  296. package/dist/internal/discovery/instrumentation.d.ts +10 -0
  297. package/dist/internal/discovery/instrumentation.d.ts.map +1 -0
  298. package/dist/internal/discovery/instrumentation.js +29 -0
  299. package/dist/internal/discovery/modules.d.ts.map +1 -1
  300. package/dist/internal/discovery/modules.js +4 -4
  301. package/dist/internal/discovery/project-public.d.ts +16 -0
  302. package/dist/internal/discovery/project-public.d.ts.map +1 -0
  303. package/dist/internal/discovery/project-public.js +54 -0
  304. package/dist/internal/discovery/project.d.ts.map +1 -1
  305. package/dist/internal/discovery/project.js +13 -3
  306. package/dist/internal/discovery/services.d.ts +5 -4
  307. package/dist/internal/discovery/services.d.ts.map +1 -1
  308. package/dist/internal/discovery/services.js +12 -6
  309. package/dist/internal/docs-site.d.ts +2 -5
  310. package/dist/internal/docs-site.d.ts.map +1 -1
  311. package/dist/internal/docs-site.js +2 -5
  312. package/dist/internal/event-mapper.d.ts.map +1 -1
  313. package/dist/internal/event-mapper.js +1 -0
  314. package/dist/internal/factory-resource-channel.d.ts +1 -1
  315. package/dist/internal/factory-resource-channel.d.ts.map +1 -1
  316. package/dist/internal/filesystem/nearest.d.ts +1 -0
  317. package/dist/internal/filesystem/nearest.d.ts.map +1 -1
  318. package/dist/internal/filesystem/nearest.js +1 -0
  319. package/dist/internal/filesystem/tools.d.ts.map +1 -1
  320. package/dist/internal/filesystem/tools.js +1 -1
  321. package/dist/internal/handleAgentServeTrigger.d.ts +10 -0
  322. package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -1
  323. package/dist/internal/handleAgentServeTrigger.js +3 -0
  324. package/dist/internal/hmac-secret-values.d.ts +1 -1
  325. package/dist/internal/hmac-secret-values.d.ts.map +1 -1
  326. package/dist/internal/host-otel.d.ts +1 -1
  327. package/dist/internal/host-otel.d.ts.map +1 -1
  328. package/dist/internal/host-otel.js +5 -0
  329. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  330. package/dist/internal/hosted-delivery.js +6 -2
  331. package/dist/internal/http-channel.d.ts.map +1 -1
  332. package/dist/internal/http-channel.js +1 -0
  333. package/dist/internal/ids.d.ts +8 -0
  334. package/dist/internal/ids.d.ts.map +1 -1
  335. package/dist/internal/ids.js +20 -0
  336. package/dist/internal/init-scaffold.js +1 -1
  337. package/dist/internal/interview/agent-questions.d.ts +1 -1
  338. package/dist/internal/interview/agent-questions.d.ts.map +1 -1
  339. package/dist/internal/interview/agent-questions.js +1 -1
  340. package/dist/internal/interview/question.d.ts +2 -2
  341. package/dist/internal/interview/question.d.ts.map +1 -1
  342. package/dist/internal/interview/question.js +2 -2
  343. package/dist/internal/json-schema.d.ts.map +1 -1
  344. package/dist/internal/json-schema.js +3 -7
  345. package/dist/internal/mcp-endpoint.d.ts +16 -4
  346. package/dist/internal/mcp-endpoint.d.ts.map +1 -1
  347. package/dist/internal/mcp-endpoint.js +18 -6
  348. package/dist/internal/mcp-host.d.ts +9 -0
  349. package/dist/internal/mcp-host.d.ts.map +1 -1
  350. package/dist/internal/mcp-host.js +15 -0
  351. package/dist/internal/otel/collector.d.ts +5 -0
  352. package/dist/internal/otel/collector.d.ts.map +1 -1
  353. package/dist/internal/otel/collector.js +24 -5
  354. package/dist/internal/otel/config.d.ts +31 -21
  355. package/dist/internal/otel/config.d.ts.map +1 -1
  356. package/dist/internal/otel/config.js +121 -140
  357. package/dist/internal/otel/conversation-span-processor.d.ts +9 -0
  358. package/dist/internal/otel/conversation-span-processor.d.ts.map +1 -0
  359. package/dist/internal/otel/conversation-span-processor.js +34 -0
  360. package/dist/internal/otel/customer.d.ts +52 -0
  361. package/dist/internal/otel/customer.d.ts.map +1 -0
  362. package/dist/internal/otel/customer.js +727 -0
  363. package/dist/internal/otel/runtime.d.ts +12 -16
  364. package/dist/internal/otel/runtime.d.ts.map +1 -1
  365. package/dist/internal/otel/runtime.js +30 -234
  366. package/dist/internal/otel-env.d.ts +6 -0
  367. package/dist/internal/otel-env.d.ts.map +1 -0
  368. package/dist/internal/otel-env.js +5 -0
  369. package/dist/internal/reminder-runner.d.ts +9 -4
  370. package/dist/internal/reminder-runner.d.ts.map +1 -1
  371. package/dist/internal/reminder-runner.js +12 -10
  372. package/dist/internal/reminder-schedule.d.ts +1 -0
  373. package/dist/internal/reminder-schedule.d.ts.map +1 -1
  374. package/dist/internal/reminder-schedule.js +1 -0
  375. package/dist/internal/sdk-runner.d.ts +8 -0
  376. package/dist/internal/sdk-runner.d.ts.map +1 -1
  377. package/dist/internal/sdk-runner.js +190 -14
  378. package/dist/internal/server.d.ts +4 -1
  379. package/dist/internal/server.d.ts.map +1 -1
  380. package/dist/internal/server.js +25 -24
  381. package/dist/internal/session-engine.d.ts +35 -3
  382. package/dist/internal/session-engine.d.ts.map +1 -1
  383. package/dist/internal/session-engine.js +213 -41
  384. package/dist/internal/slack-provision-client.js +1 -1
  385. package/dist/internal/store-api-protocol.d.ts +1 -1
  386. package/dist/internal/store-api-protocol.d.ts.map +1 -1
  387. package/dist/internal/store-api-protocol.js +1 -1
  388. package/dist/internal/update-check.d.ts +2 -2
  389. package/dist/internal/update-check.d.ts.map +1 -1
  390. package/dist/internal/update-check.js +3 -3
  391. package/dist/internal/workspace.d.ts +10 -0
  392. package/dist/internal/workspace.d.ts.map +1 -1
  393. package/dist/internal/workspace.js +47 -1
  394. package/dist/internal/zod3-datetime.d.ts +12 -0
  395. package/dist/internal/zod3-datetime.d.ts.map +1 -0
  396. package/dist/internal/zod3-datetime.js +17 -0
  397. package/dist/otel-public.d.ts +2 -3
  398. package/dist/otel-public.d.ts.map +1 -1
  399. package/dist/otel-public.js +2 -2
  400. package/dist/otel.d.ts +3 -102
  401. package/dist/otel.d.ts.map +1 -1
  402. package/dist/otel.js +61 -97
  403. package/dist/playground/assets/cursor-icons-16-DfKNljMZ.woff2 +0 -0
  404. package/dist/playground/assets/index-B3_YohwW.js +62 -0
  405. package/dist/playground/assets/index-Cn3-adsJ.css +1 -0
  406. package/dist/playground/index.html +2 -2
  407. package/dist/public-deprecated.d.ts +36 -0
  408. package/dist/public-deprecated.d.ts.map +1 -0
  409. package/dist/public-deprecated.js +39 -0
  410. package/dist/tools.d.ts +3 -3
  411. package/dist/tools.d.ts.map +1 -1
  412. package/dist/tools.js +1 -1
  413. package/dist/types.d.ts +262 -97
  414. package/dist/types.d.ts.map +1 -1
  415. package/docs/changelog.md +119 -0
  416. package/docs/guides/hooks.md +7 -3
  417. package/docs/guides/mcp-oauth.md +12 -0
  418. package/docs/guides/opentelemetry.md +149 -184
  419. package/docs/guides/slack.md +41 -0
  420. package/docs/reference/agent-config.md +30 -1
  421. package/docs/reference/channels.md +5 -1
  422. package/docs/reference/hooks.md +10 -5
  423. package/docs/reference/sessions.md +46 -1
  424. package/docs/reference/tools.md +3 -3
  425. package/package.json +35 -8
  426. package/schemas/grokbot-answers.schema.json +11 -0
  427. package/skills/framework-map/SKILL.md +2 -1
  428. package/skills/otel/SKILL.md +28 -48
  429. package/templates/code-wiki/evals/wiki.eval.ts +2 -2
  430. package/dist/docs/assets/chunks/@localSearchIndexroot.oGqZumnJ.js +0 -1
  431. package/dist/docs/assets/chunks/channel.Dt4aweTm.js +0 -1
  432. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DGUHZs6j.js +0 -1
  433. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DGUHZs6j.js +0 -1
  434. package/dist/docs/assets/chunks/clone.DWf3k0Z0.js +0 -1
  435. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C0571l4D.js +0 -1
  436. package/dist/docs/assets/guides_opentelemetry.md.DBQtp7_V.js +0 -45
  437. package/dist/docs/assets/guides_opentelemetry.md.DBQtp7_V.lean.js +0 -1
  438. package/dist/docs/assets/reference_sessions.md.C8FXuGwk.js +0 -1
  439. package/dist/docs/assets/reference_sessions.md.C8FXuGwk.lean.js +0 -1
  440. package/dist/playground/assets/cursor-icons-16-DmHBTm1-.woff2 +0 -0
  441. package/dist/playground/assets/index-BdMwybMt.css +0 -1
  442. package/dist/playground/assets/index-CHk6O92d.js +0 -62
  443. package/templates/grokbot-agents/.gitignore +0 -4
  444. package/templates/security-help/.gitignore +0 -4
  445. /package/dist/docs/assets/{guides_hooks.md.Bfj0pK91.lean.js → guides_hooks.md.B2XfGX50.lean.js} +0 -0
  446. /package/dist/docs/assets/{reference_channels.md.Bxaa020x.lean.js → reference_channels.md.CNNIS6K7.lean.js} +0 -0
  447. /package/dist/docs/assets/{reference_schedules.md.03Ryy9ca.lean.js → reference_schedules.md.BqWnJES4.lean.js} +0 -0
  448. /package/dist/docs/assets/{reference_skills.md.C2GWh7g8.lean.js → reference_skills.md.Ckddg6KX.lean.js} +0 -0
  449. /package/dist/docs/assets/{reference_tools.md.-6pypsWt.lean.js → reference_tools.md.Bo0UfT0a.lean.js} +0 -0
@@ -15,7 +15,7 @@ import { SlackAskDedupeStore, SlackNudgeStore } from "../channels/slack/nudge-st
15
15
  import { resolveDedicatedSlackHostBinding } from "../channels/slack/slack-channel.js";
16
16
  import { AGENT_SERVE_USER_STORE_FILES_SOURCE_ID, agentStoreKeys, DEPLOYMENT_STORE_MOUNT_PATH, USER_STORE_MOUNT_PATH, } from "../files.js";
17
17
  import { cursorHostedFiles, isCursorHostedFilesAvailable, isCursorUserStoreFilesAvailable, } from "../files-backends/cursor-hosted.js";
18
- import { isFileSystemToolAlias, isMutatingFileSystemTool, localFileSystem, resolveFileSystemTools, resolveHostHarnessToolOptions, tempFs, unionFs, writeWorkspaceFilesToRoot, } from "../filesystem.js";
18
+ import { isFileNotFoundError, isFileSystemToolAlias, isMutatingFileSystemTool, localFileSystem, readOnlyFs, resolveFileSystemTools, resolveHostHarnessToolOptions, sessionFileSystem, writeWorkspaceFilesToRoot, } from "../filesystem.js";
19
19
  import { storageKeysForArchitecture } from "../storage.js";
20
20
  import { DEFAULT_MODEL, DIRECT_TOOL_CALL_CHANNEL_ID, isCursorAccountTransport, isHostOauthConnectionTransport, isSymbolicConnectionTransport, } from "../types.js";
21
21
  import { resolveAdvertisedTools } from "./advertise-tools.js";
@@ -44,9 +44,9 @@ import { createHostOtelApi } from "./host-otel.js";
44
44
  import { createHostPlatforms, createHostSlackClient, } from "./host-platforms.js";
45
45
  import { HostedAdmissionLocalSendError, isDuringHostedAdmission, } from "./hosted-admission-context.js";
46
46
  import { hostedSessionResumeKey } from "./hosted-catch-protocol.js";
47
- import { formatContinuationToken, newContinuationKey, newSessionId, newToolCallId, parseContinuationToken, } from "./ids.js";
47
+ import { formatContinuationToken, newContinuationKey, newSessionId, newToolCallId, parseContinuationToken, resolveDeliveryId, } from "./ids.js";
48
48
  import { validateToolInput } from "./json-schema.js";
49
- import { isMcpNeedsAuthError, McpHost } from "./mcp-host.js";
49
+ import { isMcpNeedsAuthError, McpHost, McpReconnectError } from "./mcp-host.js";
50
50
  import { McpOauthOnDemandHub } from "./mcp-oauth-on-demand.js";
51
51
  import { shouldStartProcessMemoryTelemetry, startProcessMemoryTelemetry, } from "./process-memory-telemetry.js";
52
52
  import { buildSessionContextBlock, SCHEDULE_CHANNEL_PREFIX } from "./prompt-context.js";
@@ -56,6 +56,7 @@ import { SessionStore } from "./session-store.js";
56
56
  import { syncSkillsToStore } from "./skills-sync.js";
57
57
  import { steeringEnabled } from "./steering.js";
58
58
  import { resolveApiKeySync } from "./cursor/credentials.js";
59
+ import { CLI_COMMAND_NAME } from "./distribution.js";
59
60
  import { createSessionLivePublisher } from "./session-live-publisher.js";
60
61
  import { StorageCoordinator, isTurnBoundaryEvent } from "./storage-coordinator.js";
61
62
  import { decideToolCall, directCallEffect } from "./tool-policy.js";
@@ -66,11 +67,15 @@ import { TurnGovernor } from "./turn-governor.js";
66
67
  import { TurnLeaseStore } from "./turn-lease-store.js";
67
68
  import { TurnOutbox } from "./turn-outbox.js";
68
69
  import { isCursorManagedV2Hosting, resolveAgentV2Hosting } from "./v2-hosting.js";
69
- import { buildAgentsMdContent, buildCloudMemorySection, buildCloudSessionWorkspaceSection, buildCloudWorkspaceSection, ensureOwnGitRoot, isNestedInGitRepo, materializeWorkspace, SERVER_TOOLS_MCP_SERVER_NAME, withIdentityPreamble, } from "./workspace.js";
70
+ import { buildAgentsMdContent, buildCloudMemorySection, buildCloudSessionWorkspaceSection, buildCloudWorkspaceSection, ensureOwnGitRoot, isNestedInGitRepo, materializeWorkspace, SERVER_TOOLS_MCP_SERVER_NAME, SKILLS_MOUNT_PATH, skillsFileSystem, withIdentityPreamble, } from "./workspace.js";
70
71
  import { syncSessionWorkspaceFiles, syncWorkspaceToStore, WorkspaceFileRefusal, wipeSessionWorkspace, } from "./workspace-sync.js";
71
72
  export const HTTP_CHANNEL_ID = "http";
72
73
  export { mergeChannelStateSkipNull } from "./channel-state.js";
73
74
  export { SCHEDULE_CHANNEL_PREFIX } from "./prompt-context.js";
75
+ /**
76
+ * @deprecated Channel handlers may still catch this. It stays on the package
77
+ * root for those handlers.
78
+ */
74
79
  export class SessionBusyError extends Error {
75
80
  constructor(sessionId) {
76
81
  super(`Session ${sessionId} already has a running turn; wait for session.waiting before sending a follow-up`);
@@ -165,6 +170,8 @@ export class AuthInterruptedError extends Error {
165
170
  this.name = "AuthInterruptedError";
166
171
  }
167
172
  }
173
+ /** How long an interactive turn waits for a person to authorize a connection. */
174
+ export const MCP_AUTH_PARK_TIMEOUT_MS = 10 * 60_000;
168
175
  const mcpAuthAls = new AsyncLocalStorage();
169
176
  const RELEASED_CONTINUATIONS_CAP = 256;
170
177
  /** Marker that we `git init`'d this shared harness so scaffold is ours to write. */
@@ -230,6 +237,8 @@ export class SessionEngine {
230
237
  this.deliveredNudges = new Map();
231
238
  /** Aborts the in-flight turn per session so a follow-up can preempt it. */
232
239
  this.turnAborts = new Map();
240
+ /** Turn mode of the in-flight turn per session, owned with `turnAborts`. */
241
+ this.turnModes = new Map();
233
242
  /** Serializes turn admission per session (latest follow-up wins). */
234
243
  this.admissionChains = new Map();
235
244
  /** Live turn snapshot so a coalesced Slack wake can repaint on this process. */
@@ -257,23 +266,24 @@ export class SessionEngine {
257
266
  this.cloudUsageBackfillDone = new Set();
258
267
  /** Deduped in-flight cloud usage backfills, keyed by session id. */
259
268
  this.cloudUsageBackfill = new Map();
260
- /** Per-session FileSystem handle cache (not a tree snapshot). */
269
+ /** Per-session authored `fs` and skills handles (not tree snapshots). */
261
270
  this.sessionRoots = new Map();
262
271
  /** In-flight factory resolves, so the first turn and a racing callTool share one handle. */
263
272
  this.sessionRootInflight = new Map();
264
- /** Per-turn `unionFs({ "/": authored, "/tmp": tempFs() })`. Dropped at end of turn. */
273
+ /** Per-turn union of the authored tree, `/agent/skills`, and `/tmp`. Dropped at end of turn. */
265
274
  this.turnRoots = new Map();
266
275
  this.project = options.project;
267
276
  applyAgentContinuationDefaults(this.project);
268
277
  this.stateRoot = options.stateRoot;
269
278
  this.runner = options.runner;
270
279
  this.logger = options.logger ?? (() => { });
280
+ this.readFrameworkMeter = options.otelMeter ?? (() => undefined);
271
281
  this.getCloudUsage = options.getCloudUsage ?? defaultGetCloudUsage;
272
282
  this.estimateSessionCost = options.estimateSessionCost ?? estimateCostFromApi;
273
283
  this.otel = options.otel;
274
284
  this.otelHost = createHostOtelApi({
275
285
  agentName: options.project.name,
276
- meter: options.otelMeter,
286
+ meter: this.readFrameworkMeter,
277
287
  collector: options.otel,
278
288
  });
279
289
  this.turnGovernor = new TurnGovernor(options.project.agent.concurrency);
@@ -371,7 +381,7 @@ export class SessionEngine {
371
381
  agentName: options.project.name,
372
382
  getEventLogStats: () => this.logs.memoryStats(),
373
383
  logger: this.logger,
374
- meter: options.otelMeter,
384
+ meter: this.readFrameworkMeter,
375
385
  })
376
386
  : undefined;
377
387
  }
@@ -661,6 +671,7 @@ export class SessionEngine {
661
671
  if (options.clearCloudOverride === true && options.cloud !== undefined) {
662
672
  throw new Error("send options cloud and clearCloudOverride cannot be combined");
663
673
  }
674
+ const deliveryId = resolveDeliveryId(options.deliveryId);
664
675
  const identity = channelId === HTTP_CHANNEL_ID
665
676
  ? httpContinuationIdentity(this.project.httpChannel)
666
677
  : channelContinuationIdentity(this.channelsById.get(channelId));
@@ -760,11 +771,13 @@ export class SessionEngine {
760
771
  }
761
772
  const since = (await this.logs.get(record.sessionId)).count;
762
773
  const coalesced = await this.startTurn(record.sessionId, message, {
774
+ turnMode: sendOptions.turnMode ?? "non-interactive",
763
775
  admission: enqueueOnly ? "coalesce" : (sendOptions.admission ?? "preempt"),
764
776
  ...(sendOptions.coalesceSourceTs === undefined
765
777
  ? {}
766
778
  : { sourceTs: sendOptions.coalesceSourceTs }),
767
779
  ...(enqueueOnly ? { hostedEnqueueOnly: true } : {}),
780
+ deliveryIds: [deliveryId],
768
781
  });
769
782
  if (enqueueOnly && !coalesced) {
770
783
  throw new HostedEnqueueNotActiveError(record.sessionId);
@@ -772,7 +785,7 @@ export class SessionEngine {
772
785
  if (!enqueueOnly && coalesced && sendOptions.refreshState !== undefined) {
773
786
  await this.repaintOnCoalescedRefresh(record.sessionId, sendOptions.refreshState);
774
787
  }
775
- return this.channelSession(record.sessionId, record, false, coalesced, since);
788
+ return this.channelSession(record.sessionId, record, deliveryId, false, coalesced, since);
776
789
  }
777
790
  if (sendOptions.hostedEnqueueOnly === true) {
778
791
  throw new HostedEnqueueNotActiveError(sendOptions.hostedSessionId);
@@ -816,12 +829,14 @@ export class SessionEngine {
816
829
  });
817
830
  const since = (await this.logs.get(record.sessionId)).count;
818
831
  await this.startTurn(record.sessionId, message, {
832
+ turnMode: sendOptions.turnMode ?? "non-interactive",
819
833
  admission: sendOptions.admission ?? "preempt",
820
834
  ...(sendOptions.coalesceSourceTs === undefined
821
835
  ? {}
822
836
  : { sourceTs: sendOptions.coalesceSourceTs }),
837
+ deliveryIds: [deliveryId],
823
838
  });
824
- return this.channelSession(record.sessionId, record, true, false, since);
839
+ return this.channelSession(record.sessionId, record, deliveryId, true, false, since);
825
840
  }
826
841
  rejectMismatchedModelConfig(existing, modelConfig) {
827
842
  const next = modelConfigForDryRun(modelConfig, existing.dryRun);
@@ -861,7 +876,7 @@ export class SessionEngine {
861
876
  throw error;
862
877
  }
863
878
  try {
864
- await this.startTurn(sessionId, message);
879
+ await this.startTurn(sessionId, message, { turnMode: "interactive" });
865
880
  return next;
866
881
  }
867
882
  catch (error) {
@@ -883,7 +898,7 @@ export class SessionEngine {
883
898
  if (record === undefined || record.channelId !== channelId) {
884
899
  return null;
885
900
  }
886
- return this.channelSession(sessionId, record, false);
901
+ return this.channelSession(sessionId, record, undefined, false);
887
902
  }
888
903
  /** Cross-channel hand-off (schedules and channel route handlers). */
889
904
  async receive(channel, input) {
@@ -968,7 +983,7 @@ export class SessionEngine {
968
983
  * Resolves to `true` when the message was coalesced (enqueued), `false`
969
984
  * when a turn was started.
970
985
  */
971
- startTurn(sessionId, message, options = {}) {
986
+ startTurn(sessionId, message, options) {
972
987
  const prior = this.admissionChains.get(sessionId) ?? Promise.resolve();
973
988
  const admitted = prior
974
989
  .catch(() => { })
@@ -1001,7 +1016,18 @@ export class SessionEngine {
1001
1016
  }
1002
1017
  enqueueCoalesced(sessionId, item) {
1003
1018
  const queue = this.coalesceQueues.get(sessionId) ?? [];
1004
- if (item.sourceTs !== undefined && queue.some((entry) => entry.sourceTs === item.sourceTs)) {
1019
+ const duplicate = item.sourceTs === undefined
1020
+ ? undefined
1021
+ : queue.find((entry) => entry.sourceTs === item.sourceTs);
1022
+ if (duplicate !== undefined) {
1023
+ for (const id of item.deliveryIds) {
1024
+ if (!duplicate.deliveryIds.includes(id)) {
1025
+ duplicate.deliveryIds.push(id);
1026
+ }
1027
+ }
1028
+ if (item.turnMode === "interactive") {
1029
+ duplicate.turnMode = "interactive";
1030
+ }
1005
1031
  return;
1006
1032
  }
1007
1033
  queue.push(item);
@@ -1092,8 +1118,12 @@ export class SessionEngine {
1092
1118
  const message = this.formatCoalescedFollowups(pending);
1093
1119
  this.logger(`[session] coalesce drain starting follow-up (${pending.length}) ${sessionId}`);
1094
1120
  await this.startTurn(sessionId, message, {
1121
+ turnMode: pending.some((item) => item.turnMode === "interactive")
1122
+ ? "interactive"
1123
+ : "non-interactive",
1095
1124
  admission: "preempt",
1096
1125
  retainCoalesced: true,
1126
+ deliveryIds: pending.flatMap((item) => item.deliveryIds),
1097
1127
  });
1098
1128
  }
1099
1129
  async steerIntoRunningTurn(sessionId, message) {
@@ -1108,16 +1138,24 @@ export class SessionEngine {
1108
1138
  return "revert_to_followup";
1109
1139
  }
1110
1140
  }
1111
- async admitTurn(sessionId, message, options = {}) {
1141
+ async admitTurn(sessionId, message, options) {
1112
1142
  const admission = options.admission ?? "preempt";
1113
1143
  if (admission === "coalesce" && steeringEnabled() && this.isTurnRunning(sessionId)) {
1114
1144
  const toolCtx = this.activeToolContexts.get(sessionId);
1115
1145
  const steerOutcome = await this.steerIntoRunningTurn(sessionId, message);
1116
1146
  if (steerOutcome === "complete_delivered") {
1117
1147
  this.logger(`[session] steered into running turn ${sessionId}`);
1148
+ // The person who steered now waits on this turn and can connect.
1149
+ if (options.turnMode === "interactive" && this.turnModes.has(sessionId)) {
1150
+ this.turnModes.set(sessionId, "interactive");
1151
+ }
1118
1152
  if (toolCtx !== undefined) {
1119
- toolCtx.emit({ type: "message.received", data: { text: message } });
1120
- toolCtx.emit({ type: "nudge.delivered", data: {} });
1153
+ const deliveryIds = options.deliveryIds;
1154
+ toolCtx.emit({ type: "message.received", data: { text: message, deliveryIds } });
1155
+ // Outbox items from an older server carry no ids.
1156
+ for (const deliveryId of deliveryIds ?? [undefined]) {
1157
+ toolCtx.emit({ type: "nudge.delivered", data: { deliveryId } });
1158
+ }
1121
1159
  }
1122
1160
  return true;
1123
1161
  }
@@ -1129,6 +1167,8 @@ export class SessionEngine {
1129
1167
  this.enqueueCoalesced(sessionId, {
1130
1168
  message,
1131
1169
  sourceTs: options.sourceTs,
1170
+ turnMode: options.turnMode,
1171
+ deliveryIds: [...(options.deliveryIds ?? [])],
1132
1172
  });
1133
1173
  this.logger(`[session] coalesce enqueue ${sessionId}`);
1134
1174
  return true;
@@ -1186,12 +1226,13 @@ export class SessionEngine {
1186
1226
  await this.appendEvent(sessionId, {
1187
1227
  type: "message.received",
1188
1228
  turnId,
1189
- data: { text: message },
1229
+ data: { text: message, deliveryIds: options.deliveryIds },
1190
1230
  });
1191
1231
  // `turn.started` is appended by executeTurn once the turn holds a
1192
1232
  // governor slot; saturated engines emit `turn.queued` first.
1193
1233
  const abort = new AbortController();
1194
1234
  this.turnAborts.set(sessionId, abort);
1235
+ this.turnModes.set(sessionId, options.turnMode);
1195
1236
  // Lifecycle promise includes post-turn coalesce drain so waiters and
1196
1237
  // interrupt settle after follow-ups are admitted (not only executeTurn).
1197
1238
  // Assigned before the async body runs so self-identity checks typecheck.
@@ -1224,6 +1265,7 @@ export class SessionEngine {
1224
1265
  }
1225
1266
  if (this.turnAborts.get(sessionId) === abort) {
1226
1267
  this.turnAborts.delete(sessionId);
1268
+ this.turnModes.delete(sessionId);
1227
1269
  }
1228
1270
  // Failed or cancelled owners must not start a coalesced successor;
1229
1271
  // managed delivery retries the same follow-ups.
@@ -1346,10 +1388,14 @@ export class SessionEngine {
1346
1388
  return this.interrupt(existing.sessionId);
1347
1389
  }
1348
1390
  hasRootOverride() {
1349
- return this.project.agent.root !== undefined;
1391
+ return this.project.agent.fs !== undefined || this.project.agent.root !== undefined;
1392
+ }
1393
+ /** The field the author set, for messages. Discovery copies a lone `root` onto `fs`. */
1394
+ authoredFsField() {
1395
+ return this.project.agent.root === undefined ? "fs" : "root";
1350
1396
  }
1351
1397
  /**
1352
- * FileSystem for this turn or `callTool`. Authored `root` (static or
1398
+ * FileSystem for this turn or `callTool`. Authored `fs` (static or
1353
1399
  * factory) is cached per session when `cache` is set; unscoped
1354
1400
  * `callTool` passes the invocation id and does not cache, so factories
1355
1401
  * cannot share one tree across callers. A static handle is used as
@@ -1358,20 +1404,21 @@ export class SessionEngine {
1358
1404
  * the Cursor SDK natives, always through the synthesized tools.
1359
1405
  */
1360
1406
  async resolveFileSystem(options) {
1361
- const authored = this.project.agent.root;
1362
- if (authored === undefined) {
1407
+ if (!this.hasRootOverride()) {
1363
1408
  return localFileSystem({ cwd: options.cwd });
1364
1409
  }
1365
- const authoredRoot = await this.resolveAuthoredFileSystem(options);
1410
+ const authored = await this.resolveAuthoredFileSystem(options);
1366
1411
  if (options.cache) {
1367
1412
  const existing = this.turnRoots.get(options.sessionId);
1368
1413
  if (existing !== undefined) {
1369
1414
  return existing.root;
1370
1415
  }
1371
1416
  }
1372
- const root = unionFs({
1373
- "/": authoredRoot,
1374
- "/tmp": tempFs(),
1417
+ const root = sessionFileSystem({
1418
+ authored: authored.fs,
1419
+ skills: authored.skills === undefined
1420
+ ? undefined
1421
+ : { path: SKILLS_MOUNT_PATH, fs: authored.skills },
1375
1422
  });
1376
1423
  if (options.cache && this.isTurnRunning(options.sessionId)) {
1377
1424
  this.turnRoots.set(options.sessionId, { root, cwd: options.cwd });
@@ -1379,9 +1426,10 @@ export class SessionEngine {
1379
1426
  return root;
1380
1427
  }
1381
1428
  async resolveAuthoredFileSystem(options) {
1382
- const authored = this.project.agent.root;
1429
+ const agent = this.project.agent;
1430
+ const authored = agent.fs ?? agent.root;
1383
1431
  if (authored === undefined) {
1384
- throw new Error("resolveAuthoredFileSystem requires an authored root");
1432
+ throw new Error("resolveAuthoredFileSystem requires an authored fs");
1385
1433
  }
1386
1434
  if (options.cache) {
1387
1435
  const cached = this.sessionRoots.get(options.sessionId);
@@ -1393,14 +1441,14 @@ export class SessionEngine {
1393
1441
  return inflight;
1394
1442
  }
1395
1443
  }
1396
- const resolve = async () => {
1444
+ const resolveFs = async () => {
1397
1445
  if (typeof authored !== "function") {
1398
1446
  return authored;
1399
1447
  }
1400
1448
  const host = this.hostForSession(options.cache ? options.sessionId : undefined);
1401
1449
  const ctx = {
1402
1450
  sessionId: options.sessionId,
1403
- agentName: this.project.agent.name,
1451
+ agentName: agent.name,
1404
1452
  ...(options.continuationKey === undefined
1405
1453
  ? {}
1406
1454
  : { continuationKey: options.continuationKey }),
@@ -1408,6 +1456,37 @@ export class SessionEngine {
1408
1456
  };
1409
1457
  return await authored(ctx);
1410
1458
  };
1459
+ const resolve = async () => {
1460
+ const fs = await resolveFs();
1461
+ if (agent.skillsMount === false) {
1462
+ return { fs, skills: undefined };
1463
+ }
1464
+ let skillsOccupied = false;
1465
+ try {
1466
+ skillsOccupied = (await fs.stat(SKILLS_MOUNT_PATH)).kind !== "missing";
1467
+ }
1468
+ catch (error) {
1469
+ if (!isFileNotFoundError(error)) {
1470
+ throw error;
1471
+ }
1472
+ skillsOccupied = false;
1473
+ }
1474
+ if (skillsOccupied) {
1475
+ throw new Error(`Agent "${agent.name}" ${this.authoredFsField()} already has ${SKILLS_MOUNT_PATH}, where BDK mounts the agent's skills. Remove ${SKILLS_MOUNT_PATH} from ${this.authoredFsField()}, or set skills: false to keep yours.`);
1476
+ }
1477
+ const skills = await this.baseSkillsFileSystem();
1478
+ if (agent.skillsMount === undefined) {
1479
+ return { fs, skills };
1480
+ }
1481
+ return {
1482
+ fs,
1483
+ skills: readOnlyFs(await agent.skillsMount({
1484
+ skills,
1485
+ sessionId: options.sessionId,
1486
+ continuationKey: options.continuationKey,
1487
+ })),
1488
+ };
1489
+ };
1411
1490
  if (!options.cache) {
1412
1491
  return resolve();
1413
1492
  }
@@ -1422,6 +1501,13 @@ export class SessionEngine {
1422
1501
  this.sessionRootInflight.delete(options.sessionId);
1423
1502
  }
1424
1503
  }
1504
+ baseSkillsFileSystem() {
1505
+ this.baseSkills ??= skillsFileSystem(this.project.agent.skills).catch((error) => {
1506
+ this.baseSkills = undefined;
1507
+ throw error;
1508
+ });
1509
+ return this.baseSkills;
1510
+ }
1425
1511
  dropTurnFileSystem(sessionId) {
1426
1512
  this.turnRoots.delete(sessionId);
1427
1513
  }
@@ -2079,11 +2165,11 @@ export class SessionEngine {
2079
2165
  //
2080
2166
  // Factory roots omit `allowedTools` at discovery (the live handle is
2081
2167
  // resolved per session). The allowlist guard below therefore never
2082
- // fires for `defineAgent({ root: (ctx) => … })` with omitted `tools`,
2168
+ // fires for `defineAgent({ fs: (ctx) => … })` with omitted `tools`,
2083
2169
  // and a per-send `cloud` attach would skip the virtual-root allowlist
2084
- // and run unrestricted on a VM. Any authored root refuses non-local turns.
2170
+ // and run unrestricted on a VM. Any authored fs refuses non-local turns.
2085
2171
  if (runtime !== "local" && this.hasRootOverride()) {
2086
- throw new Error(`Agent "${agent.name}" declares root, which cannot be served on ${runtime} turns. Refusing the session rather than running it against the host VM.`);
2172
+ throw new Error(`Agent "${agent.name}" declares ${this.authoredFsField()}, which cannot be served on ${runtime} turns. Refusing the session rather than running it against the host VM.`);
2087
2173
  }
2088
2174
  if (runtime !== "local" && agent.allowedTools !== undefined) {
2089
2175
  throw new Error(`Agent "${agent.name}" declares a built-in tool allowlist (tools), which cannot be enforced on ${runtime} turns. Refusing the session rather than running it unrestricted.`);
@@ -2210,7 +2296,7 @@ export class SessionEngine {
2210
2296
  // synthesized file tools and embedded script bodies.
2211
2297
  const localInstructions = runtime === "local"
2212
2298
  ? authoredRoot
2213
- ? buildAgentsMdContent({ ...instructionsAgent, tools: [...instructionsAgent.tools, ...synthesized] }, { includeScripts: true })
2299
+ ? buildAgentsMdContent({ ...instructionsAgent, tools: [...instructionsAgent.tools, ...synthesized] }, { includeScripts: true, skillsIndex: agent.skillsMount !== false })
2214
2300
  : buildAgentsMdContent(instructionsAgent, {
2215
2301
  includeScripts: this.hasBorrowedWorkspace(record),
2216
2302
  })
@@ -2569,6 +2655,7 @@ export class SessionEngine {
2569
2655
  turnId,
2570
2656
  callId: newToolCallId("mcp"),
2571
2657
  toolName: "mcp",
2658
+ turnMode: () => this.turnModeFor(record.sessionId),
2572
2659
  emit,
2573
2660
  }, () => resolveAdvertisedTools({
2574
2661
  agent: this.advertisingAgent(),
@@ -2708,6 +2795,7 @@ export class SessionEngine {
2708
2795
  turnId: args.turnId,
2709
2796
  callId: toolCallId,
2710
2797
  toolName: args.tool.name,
2798
+ turnMode: () => this.turnModeFor(args.record.sessionId),
2711
2799
  emit: args.emit,
2712
2800
  }, () => this.runExecutedTool({
2713
2801
  tool: args.tool,
@@ -2947,9 +3035,28 @@ export class SessionEngine {
2947
3035
  if (ctx === undefined) {
2948
3036
  throw error;
2949
3037
  }
3038
+ const authored = this.authoredConnection(connection);
3039
+ const optional = authored?.optional === true;
3040
+ const canPark = () => ctx.turnMode() === "interactive" && !optional;
3041
+ const giveUp = () => {
3042
+ if (optional) {
3043
+ // The original error lets `resolveAdvertisedTools` skip the connection.
3044
+ this.logger(`[session] skipping optional MCP connection ${connection}: authorization required`);
3045
+ throw error;
3046
+ }
3047
+ if (authored !== undefined && !canPark()) {
3048
+ throw new McpReconnectError(authored.name, mcpAuthReconnectMessage(authored), error);
3049
+ }
3050
+ throw error;
3051
+ };
3052
+ // Only `oauth: true` can recover without a person, from a saved token.
3053
+ const canRefresh = authored !== undefined && isHostOauthConnectionTransport(authored.transport);
3054
+ if (!canPark() && !canRefresh) {
3055
+ return giveUp();
3056
+ }
2950
3057
  const minted = await this.mintAuthUrl(connection, ctx.sessionId);
2951
3058
  if (minted === undefined) {
2952
- throw error;
3059
+ return giveUp();
2953
3060
  }
2954
3061
  if ("authorized" in minted) {
2955
3062
  await this.persistHostedMcpOauth(connection);
@@ -2964,7 +3071,13 @@ export class SessionEngine {
2964
3071
  return await this.withMcpAuth(connection, run);
2965
3072
  }
2966
3073
  }
2967
- const decision = await this.parkForAuth({
3074
+ if (!canPark()) {
3075
+ if (minted.state !== "") {
3076
+ await this.oauthHub.abortCall(ctx.sessionId, ctx.callId);
3077
+ }
3078
+ return giveUp();
3079
+ }
3080
+ const outcome = await this.parkForAuth({
2968
3081
  sessionId: ctx.sessionId,
2969
3082
  turnId: ctx.turnId,
2970
3083
  callId: ctx.callId,
@@ -2973,7 +3086,10 @@ export class SessionEngine {
2973
3086
  authUrl: minted.authUrl,
2974
3087
  emit: ctx.emit,
2975
3088
  });
2976
- if (decision === "deny") {
3089
+ if (outcome === "timeout" && authored !== undefined) {
3090
+ throw new McpReconnectError(authored.name, mcpAuthReconnectMessage(authored), error);
3091
+ }
3092
+ if (outcome !== "approve") {
2977
3093
  throw new Error(`MCP connection "${connection}" authorization was denied.`);
2978
3094
  }
2979
3095
  await this.persistHostedMcpOauth(connection);
@@ -3043,7 +3159,34 @@ export class SessionEngine {
3043
3159
  },
3044
3160
  });
3045
3161
  this.logger(`[session] tool ${args.toolName} awaiting MCP auth ${args.connection} (${args.callId})`);
3046
- const { decision, by } = await resolutionPromise;
3162
+ const endWait = (by) => {
3163
+ void this.oauthHub.abortCall(args.sessionId, args.callId);
3164
+ return this.auths.resolve(args.sessionId, args.callId, "deny", by);
3165
+ };
3166
+ const signal = this.turnAborts.get(args.sessionId)?.signal;
3167
+ const endForAbort = () => {
3168
+ endWait("interrupt");
3169
+ };
3170
+ if (signal?.aborted) {
3171
+ endForAbort();
3172
+ }
3173
+ else {
3174
+ signal?.addEventListener("abort", endForAbort, { once: true });
3175
+ }
3176
+ let timedOut = false;
3177
+ const timer = setTimeout(() => {
3178
+ timedOut = endWait("timeout");
3179
+ }, MCP_AUTH_PARK_TIMEOUT_MS);
3180
+ timer.unref();
3181
+ let decision;
3182
+ let by;
3183
+ try {
3184
+ ({ decision, by } = await resolutionPromise);
3185
+ }
3186
+ finally {
3187
+ clearTimeout(timer);
3188
+ signal?.removeEventListener("abort", endForAbort);
3189
+ }
3047
3190
  await this.updateRecord(args.sessionId, (current) => ({
3048
3191
  ...current,
3049
3192
  pendingAuths: (current.pendingAuths ?? []).filter((item) => item.callId !== args.callId),
@@ -3058,8 +3201,9 @@ export class SessionEngine {
3058
3201
  by,
3059
3202
  },
3060
3203
  });
3061
- this.logger(`[session] tool ${args.toolName} MCP auth ${decision} (${args.callId})`);
3062
- return decision;
3204
+ const outcome = timedOut ? "timeout" : decision;
3205
+ this.logger(`[session] tool ${args.toolName} MCP auth ${outcome} (${args.callId})`);
3206
+ return outcome;
3063
3207
  }
3064
3208
  async clearPendingAuths(sessionId) {
3065
3209
  await this.oauthHub.abortSession(sessionId);
@@ -3125,9 +3269,14 @@ export class SessionEngine {
3125
3269
  turnId: active.turnId,
3126
3270
  callId: newToolCallId(toolName),
3127
3271
  toolName,
3272
+ turnMode: () => this.turnModeFor(sessionId),
3128
3273
  emit: active.emit,
3129
3274
  }, fn);
3130
3275
  }
3276
+ /** A session with no turn in flight has no person waiting on it. */
3277
+ turnModeFor(sessionId) {
3278
+ return this.turnModes.get(sessionId) ?? "non-interactive";
3279
+ }
3131
3280
  // ==========================================================================
3132
3281
  // Direct tool calls (deterministic invocation, no model turn)
3133
3282
  // ==========================================================================
@@ -3487,6 +3636,7 @@ export class SessionEngine {
3487
3636
  turnId: callId,
3488
3637
  callId,
3489
3638
  toolName,
3639
+ turnMode: () => "non-interactive",
3490
3640
  emit,
3491
3641
  }, run)
3492
3642
  : run;
@@ -3668,6 +3818,20 @@ export class SessionEngine {
3668
3818
  if (record === undefined) {
3669
3819
  return;
3670
3820
  }
3821
+ // Handlers see the turn span only while it is still open. `turn.completed`
3822
+ // and `turn.failed` close it before `session.waiting`, `session.completed`,
3823
+ // and `session.failed`. `onStart` is not an event.
3824
+ if (event.turnId === undefined || this.otel === undefined) {
3825
+ await this.dispatchEventHandlers(sessionId, event, context, record);
3826
+ return;
3827
+ }
3828
+ await this.otel.runInOpenTurn({
3829
+ sessionId: record.sessionId,
3830
+ session: this.sessionInfo(record),
3831
+ turnId: event.turnId,
3832
+ }, () => this.dispatchEventHandlers(sessionId, event, context, record));
3833
+ }
3834
+ async dispatchEventHandlers(sessionId, event, context, record) {
3671
3835
  const channelState = context === undefined ? (record.channelState ?? null) : context.channelState;
3672
3836
  const sessionCtx = {
3673
3837
  session: context?.session ?? this.sessionInfo(record),
@@ -4223,12 +4387,13 @@ export class SessionEngine {
4223
4387
  ...(record.sdkAgentId === undefined ? {} : { sdkAgentId: record.sdkAgentId }),
4224
4388
  };
4225
4389
  }
4226
- channelSession(sessionId, record, isNew, coalesced = false, since = 0) {
4390
+ channelSession(sessionId, record, deliveryId, isNew, coalesced = false, since = 0) {
4227
4391
  return {
4228
4392
  id: sessionId,
4229
4393
  continuationToken: record.continuationKey,
4230
4394
  isNew,
4231
4395
  ...(coalesced ? { coalesced: true } : {}),
4396
+ deliveryId,
4232
4397
  info: this.sessionInfo(record),
4233
4398
  getEventStream: (options) => this.eventStream(sessionId, options?.startIndex ?? since),
4234
4399
  waitForCompletion: () => this.waitForCompletion(sessionId),
@@ -4516,6 +4681,13 @@ export class SessionEngine {
4516
4681
  this.otel?.close();
4517
4682
  }
4518
4683
  }
4684
+ const DEPLOYED_AGENTS_DASHBOARD_URL = "https://cursor.com/dashboard/deployed-agents";
4685
+ function mcpAuthReconnectMessage(connection) {
4686
+ if (isCursorAccountTransport(connection.transport)) {
4687
+ return `Reconnect ${connection.name}: the MCP connection needs authorization. Ask the bot owner to reconnect ${connection.name} at ${DEPLOYED_AGENTS_DASHBOARD_URL}`;
4688
+ }
4689
+ return `Reconnect ${connection.name}: the MCP connection needs authorization. Run \`${CLI_COMMAND_NAME} mcp oauth ${connection.name}\`. Ask the bot owner if you cannot run it.`;
4690
+ }
4519
4691
  /** Parallel event-stream loads during the startup bulk restore. */
4520
4692
  const RESTORE_FETCH_CONCURRENCY = 8;
4521
4693
  /**
@@ -17,7 +17,7 @@
17
17
  * which flows through on {@link SlackProvisionApiError.code} so the CLI
18
18
  * can branch.
19
19
  */
20
- import { z } from "zod/v3";
20
+ import * as z from "zod/v4";
21
21
  /**
22
22
  * Backend mount of the Slack control plane for each hosted architecture.
23
23
  * The backend validates the pairing: the v2 routes reject a wizard mint or
@@ -7,7 +7,7 @@
7
7
  * forever. A breaking change means a new `v`, and the server keeps serving
8
8
  * every previous `v`.
9
9
  */
10
- import { z } from "zod/v3";
10
+ import * as z from "zod/v4";
11
11
  export declare const STORE_API_PROTOCOL_VERSION = 1;
12
12
  /** Managed storage endpoint, with one trailing segment per call. */
13
13
  export declare const STORE_API_PATH = "/internal/agentsdk/store/api";
@@ -1 +1 @@
1
- {"version":3,"file":"store-api-protocol.d.ts","sourceRoot":"","sources":["../../src/internal/store-api-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-api-protocol.d.ts","sourceRoot":"","sources":["../../src/internal/store-api-protocol.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * forever. A breaking change means a new `v`, and the server keeps serving
8
8
  * every previous `v`.
9
9
  */
10
- import { z } from "zod/v3";
10
+ import * as z from "zod/v4";
11
11
  export const STORE_API_PROTOCOL_VERSION = 1;
12
12
  /** Managed storage endpoint, with one trailing segment per call. */
13
13
  export const STORE_API_PATH = "/internal/agentsdk/store/api";