@cursor/bdk 0.2.24 → 0.2.26

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 (553) hide show
  1. package/AGENTS.md +4 -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.d.ts +1 -1
  6. package/dist/bin/agent-serve.js +71 -31
  7. package/dist/channels/bitbucket/api.d.ts +2 -2
  8. package/dist/channels/bitbucket/api.d.ts.map +1 -1
  9. package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
  10. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +5 -4
  11. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  12. package/dist/channels/bitbucket/bitbucket-webhook.js +14 -9
  13. package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
  14. package/dist/channels/deployments/deployments-channel.js +1 -1
  15. package/dist/channels/github/cursor-account.d.ts +7 -0
  16. package/dist/channels/github/cursor-account.d.ts.map +1 -1
  17. package/dist/channels/github/cursor-account.js +22 -5
  18. package/dist/channels/github/github-channel.d.ts.map +1 -1
  19. package/dist/channels/github/github-channel.js +10 -19
  20. package/dist/channels/github/replay.d.ts +1 -1
  21. package/dist/channels/github/replay.d.ts.map +1 -1
  22. package/dist/channels/gitlab/api.d.ts +2 -2
  23. package/dist/channels/gitlab/api.d.ts.map +1 -1
  24. package/dist/channels/gitlab/gitlab-channel.js +1 -1
  25. package/dist/channels/issues/issues-channel.js +1 -1
  26. package/dist/channels/origin/api.d.ts +4 -4
  27. package/dist/channels/origin/api.d.ts.map +1 -1
  28. package/dist/channels/origin/origin-channel.js +1 -1
  29. package/dist/channels/origin/origin-webhook.d.ts +3 -3
  30. package/dist/channels/origin/origin-webhook.d.ts.map +1 -1
  31. package/dist/channels/pagerduty/api.d.ts +74 -0
  32. package/dist/channels/pagerduty/api.d.ts.map +1 -0
  33. package/dist/channels/pagerduty/api.js +101 -0
  34. package/dist/channels/pagerduty/defaults.d.ts +42 -0
  35. package/dist/channels/pagerduty/defaults.d.ts.map +1 -0
  36. package/dist/channels/pagerduty/defaults.js +132 -0
  37. package/dist/channels/pagerduty/events.d.ts +24 -0
  38. package/dist/channels/pagerduty/events.d.ts.map +1 -0
  39. package/dist/channels/pagerduty/events.js +38 -0
  40. package/dist/channels/pagerduty/index.d.ts +31 -0
  41. package/dist/channels/pagerduty/index.d.ts.map +1 -0
  42. package/dist/channels/pagerduty/index.js +30 -0
  43. package/dist/channels/pagerduty/pagerduty-channel.d.ts +64 -0
  44. package/dist/channels/pagerduty/pagerduty-channel.d.ts.map +1 -0
  45. package/dist/channels/pagerduty/pagerduty-channel.js +195 -0
  46. package/dist/channels/pagerduty/pagerduty-webhook.d.ts +70 -0
  47. package/dist/channels/pagerduty/pagerduty-webhook.d.ts.map +1 -0
  48. package/dist/channels/pagerduty/pagerduty-webhook.js +280 -0
  49. package/dist/channels/pagerduty/payload.d.ts +33 -0
  50. package/dist/channels/pagerduty/payload.d.ts.map +1 -0
  51. package/dist/channels/pagerduty/payload.js +150 -0
  52. package/dist/channels/pagerduty/replay.d.ts +35 -0
  53. package/dist/channels/pagerduty/replay.d.ts.map +1 -0
  54. package/dist/channels/pagerduty/replay.js +115 -0
  55. package/dist/channels/pagerduty/secrets.d.ts +16 -0
  56. package/dist/channels/pagerduty/secrets.d.ts.map +1 -0
  57. package/dist/channels/pagerduty/secrets.js +23 -0
  58. package/dist/channels/pagerduty/self-user.d.ts +51 -0
  59. package/dist/channels/pagerduty/self-user.d.ts.map +1 -0
  60. package/dist/channels/pagerduty/self-user.js +157 -0
  61. package/dist/channels/pagerduty/state.d.ts +31 -0
  62. package/dist/channels/pagerduty/state.d.ts.map +1 -0
  63. package/dist/channels/pagerduty/state.js +30 -0
  64. package/dist/channels/pagerduty/types.d.ts +217 -0
  65. package/dist/channels/pagerduty/types.d.ts.map +1 -0
  66. package/dist/channels/pagerduty/types.js +1 -0
  67. package/dist/channels/runs/runs-channel.js +1 -1
  68. package/dist/channels/slack/agentic-delivery.d.ts +2 -1
  69. package/dist/channels/slack/agentic-delivery.d.ts.map +1 -1
  70. package/dist/channels/slack/agentic-delivery.js +6 -10
  71. package/dist/channels/slack/agentic-signals.d.ts +2 -7
  72. package/dist/channels/slack/agentic-signals.d.ts.map +1 -1
  73. package/dist/channels/slack/agentic-signals.js +4 -3
  74. package/dist/channels/slack/api.d.ts +1 -0
  75. package/dist/channels/slack/api.d.ts.map +1 -1
  76. package/dist/channels/slack/api.js +3 -0
  77. package/dist/channels/slack/constants.d.ts +2 -0
  78. package/dist/channels/slack/constants.d.ts.map +1 -1
  79. package/dist/channels/slack/constants.js +2 -0
  80. package/dist/channels/slack/defaults.d.ts.map +1 -1
  81. package/dist/channels/slack/defaults.js +3 -2
  82. package/dist/channels/slack/dispatch.d.ts +9 -0
  83. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  84. package/dist/channels/slack/dispatch.js +3 -0
  85. package/dist/channels/slack/inbound.d.ts.map +1 -1
  86. package/dist/channels/slack/inbound.js +24 -20
  87. package/dist/channels/slack/interactive.d.ts +2 -0
  88. package/dist/channels/slack/interactive.d.ts.map +1 -1
  89. package/dist/channels/slack/interactive.js +1 -0
  90. package/dist/channels/slack/live-delivery.d.ts +3 -0
  91. package/dist/channels/slack/live-delivery.d.ts.map +1 -1
  92. package/dist/channels/slack/live-delivery.js +5 -0
  93. package/dist/channels/slack/reply-options.d.ts +9 -0
  94. package/dist/channels/slack/reply-options.d.ts.map +1 -1
  95. package/dist/channels/slack/reply-options.js +31 -1
  96. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  97. package/dist/channels/slack/slack-channel.js +7 -0
  98. package/dist/channels/slack/stream.d.ts +5 -1
  99. package/dist/channels/slack/stream.d.ts.map +1 -1
  100. package/dist/channels/slack/types.d.ts +29 -0
  101. package/dist/channels/slack/types.d.ts.map +1 -1
  102. package/dist/channels.d.ts +7 -1
  103. package/dist/channels.d.ts.map +1 -1
  104. package/dist/channels.js +12 -24
  105. package/dist/docs/404.html +3 -3
  106. package/dist/docs/assets/{app.DTIg0uKK.js → app.BITbgXMP.js} +4 -4
  107. package/dist/docs/assets/changelog.md.sdD6ctqK.js +1 -0
  108. package/dist/docs/assets/changelog.md.sdD6ctqK.lean.js +1 -0
  109. package/dist/docs/assets/chunks/@localSearchIndexroot.B45uCZp9.js +1 -0
  110. package/dist/docs/assets/chunks/{VPLocalSearchBox.BpJoSaxi.js → VPLocalSearchBox.3qo4-bX9.js} +2 -2
  111. package/dist/docs/assets/chunks/{arc.ylgNvRNq.js → arc.CTrZocKU.js} +1 -1
  112. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.BMrNJqYk.js → architectureDiagram-Q4EWVU46.BkgIqxrv.js} +1 -1
  113. package/dist/docs/assets/chunks/{baseUniq.BBWUEqf9.js → baseUniq.5w0JfVgo.js} +1 -1
  114. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DFMu-Vza.js → blockDiagram-DXYQGD6D.BVLtPjQc.js} +1 -1
  115. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.8nkAAxWv.js → c4Diagram-AHTNJAMY.CQ7neZTW.js} +1 -1
  116. package/dist/docs/assets/chunks/channel.Cv2w64wj.js +1 -0
  117. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.sO-z2Bag.js → chunk-4BX2VUAB.D-hJ7uKM.js} +1 -1
  118. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.BMROzTMq.js → chunk-4TB4RGXK.RBYX5ywX.js} +1 -1
  119. package/dist/docs/assets/chunks/{chunk-55IACEB6.X81urwg7.js → chunk-55IACEB6.Br05HoEb.js} +1 -1
  120. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.eaZVFLZM.js → chunk-EDXVE4YY.BD_7QS60.js} +1 -1
  121. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CmZhzstR.js → chunk-FMBD7UC4.BOPnMabX.js} +1 -1
  122. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CTezt9Lc.js → chunk-OYMX7WX6.DmGIdP8i.js} +1 -1
  123. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.s-T8zukB.js → chunk-QZHKN3VN.CGHmolCB.js} +1 -1
  124. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.DN4Nhy-D.js → chunk-YZCP3GAM.C_Uhs25v.js} +1 -1
  125. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CtO2atCr.js +1 -0
  126. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CtO2atCr.js +1 -0
  127. package/dist/docs/assets/chunks/clone.hfsCtgP4.js +1 -0
  128. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Cqyp4BUH.js → cose-bilkent-S5V4N54A.DsU6xpcZ.js} +1 -1
  129. package/dist/docs/assets/chunks/{dagre-KV5264BT.BIECOiqR.js → dagre-KV5264BT.BqQLDcoU.js} +1 -1
  130. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.1tLyWoTg.js → diagram-5BDNPKRD.Cgv8uUNF.js} +1 -1
  131. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.BVY_6VMO.js → diagram-G4DWMVQ6.BXHPSXh_.js} +1 -1
  132. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BSZ7xiBB.js → diagram-MMDJMWI5.CgJzo8f_.js} +1 -1
  133. package/dist/docs/assets/chunks/{diagram-TYMM5635.Bho6GmLh.js → diagram-TYMM5635.CfiN6lgT.js} +1 -1
  134. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.A0yVIANn.js → erDiagram-SMLLAGMA.8n_hHzAd.js} +1 -1
  135. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.ZMgbllH6.js → flowDiagram-DWJPFMVM.B2pb1Dv_.js} +1 -1
  136. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.BCCPBhXo.js → ganttDiagram-T4ZO3ILL.BFih4ucI.js} +1 -1
  137. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.BOkL0BbA.js → gitGraphDiagram-UUTBAWPF.CqZ8PTl8.js} +1 -1
  138. package/dist/docs/assets/chunks/{graph.DMyZPu86.js → graph.0ufsI9gu.js} +1 -1
  139. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.CjG1IiEw.js → infoDiagram-42DDH7IO.BkPRFww4.js} +1 -1
  140. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.UCe-kq9g.js → ishikawaDiagram-UXIWVN3A.DCRK-cVX.js} +1 -1
  141. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.3WyOK_eY.js → journeyDiagram-VCZTEJTY.BFyAJo33.js} +1 -1
  142. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.WoRG2qY1.js → kanban-definition-6JOO6SKY.CmA2SoGc.js} +1 -1
  143. package/dist/docs/assets/chunks/{layout.DV07xDd5.js → layout.CYY-CbMr.js} +1 -1
  144. package/dist/docs/assets/chunks/{linear.CTO8mN6o.js → linear.DeeDV4Oq.js} +1 -1
  145. package/dist/docs/assets/chunks/{min.SvTtcKuZ.js → min.BL3XTBN2.js} +1 -1
  146. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.DMGgQ-HB.js → mindmap-definition-QFDTVHPH.BcbY-G6H.js} +1 -1
  147. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B7851apI.js → pieDiagram-DEJITSTG.dzDcQnPE.js} +1 -1
  148. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CEqyypIX.js → quadrantDiagram-34T5L4WZ.RxR0m5iK.js} +1 -1
  149. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.C3Mwsw-H.js → requirementDiagram-MS252O5E.DflaXb6Q.js} +1 -1
  150. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DyYK0XxY.js → sankeyDiagram-XADWPNL6.BteLKQAe.js} +1 -1
  151. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.SiQPH-XM.js → sequenceDiagram-FGHM5R23.BD8jM8oz.js} +1 -1
  152. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.CTJMsP4p.js → stateDiagram-FHFEXIEX.C8SBkbPH.js} +1 -1
  153. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BLz7Qyo3.js +1 -0
  154. package/dist/docs/assets/chunks/{theme.DJo4my9R.js → theme.DiViIOLe.js} +2 -2
  155. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.CxSNRlQ6.js → timeline-definition-GMOUNBTQ.D64XF5dV.js} +1 -1
  156. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BdoJskyD.js → vennDiagram-DHZGUBPP.CwmeYan-.js} +1 -1
  157. package/dist/docs/assets/chunks/wardley-RL74JXVD.DmAlXlpu.js +162 -0
  158. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.IjIbFn_F.js → wardleyDiagram-NUSXRM2D.5VJ2-5K0.js} +1 -1
  159. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CPUxDZLH.js → xychartDiagram-5P7HB3ND.Cl6_fZVC.js} +1 -1
  160. package/dist/docs/assets/{guides_hooks.md.Bfj0pK91.js → guides_hooks.md.B2XfGX50.js} +7 -3
  161. package/dist/docs/assets/{guides_mcp-oauth.md.BM_eFC0L.js → guides_mcp-oauth.md.Cxq2TxBB.js} +3 -3
  162. package/dist/docs/assets/{guides_mcp-oauth.md.BM_eFC0L.lean.js → guides_mcp-oauth.md.Cxq2TxBB.lean.js} +1 -1
  163. package/dist/docs/assets/guides_opentelemetry.md.D4wO7_8v.js +37 -0
  164. package/dist/docs/assets/guides_opentelemetry.md.D4wO7_8v.lean.js +1 -0
  165. package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.js +60 -0
  166. package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.lean.js +1 -0
  167. package/dist/docs/assets/{guides_slack.md.Bn-WupSE.js → guides_slack.md.ClIyi7FI.js} +8 -3
  168. package/dist/docs/assets/{guides_slack.md.Bn-WupSE.lean.js → guides_slack.md.ClIyi7FI.lean.js} +1 -1
  169. package/dist/docs/assets/{reference_agent-config.md.IplwL25I.js → reference_agent-config.md.CGSx8COP.js} +6 -2
  170. package/dist/docs/assets/{reference_agent-config.md.IplwL25I.lean.js → reference_agent-config.md.CGSx8COP.lean.js} +1 -1
  171. package/dist/docs/assets/{reference_channels.md.DYg0CLud.js → reference_channels.md.CNNIS6K7.js} +1 -1
  172. package/dist/docs/assets/{reference_cli.md.DB7Llw3T.js → reference_cli.md.1o_TqKdt.js} +7 -2
  173. package/dist/docs/assets/{reference_cli.md.DB7Llw3T.lean.js → reference_cli.md.1o_TqKdt.lean.js} +1 -1
  174. package/dist/docs/assets/{reference_hooks.md.B1jq3oGl.js → reference_hooks.md.CROr0QgC.js} +13 -7
  175. package/dist/docs/assets/{reference_hooks.md.B1jq3oGl.lean.js → reference_hooks.md.CROr0QgC.lean.js} +1 -1
  176. package/dist/docs/assets/{reference_schedules.md.03Ryy9ca.js → reference_schedules.md.BqWnJES4.js} +3 -3
  177. package/dist/docs/assets/reference_sessions.md.Bi6lHttM.js +22 -0
  178. package/dist/docs/assets/reference_sessions.md.Bi6lHttM.lean.js +1 -0
  179. package/dist/docs/assets/{reference_skills.md.C2GWh7g8.js → reference_skills.md.Ckddg6KX.js} +3 -3
  180. package/dist/docs/assets/{reference_tools.md.08XR7lIl.js → reference_tools.md.Bo0UfT0a.js} +1 -1
  181. package/dist/docs/assets/{style.nMsabY-V.css → style.B9o0luvp.css} +1 -1
  182. package/dist/docs/building-with-agents.html +37 -37
  183. package/dist/docs/changelog.html +60 -0
  184. package/dist/docs/changelog.md +86 -0
  185. package/dist/docs/deployment.html +37 -37
  186. package/dist/docs/evals.html +37 -37
  187. package/dist/docs/guides/agent-to-agent.html +37 -37
  188. package/dist/docs/guides/bitbucket.html +37 -37
  189. package/dist/docs/guides/cloud-agents.html +37 -37
  190. package/dist/docs/guides/convert-automation.html +37 -37
  191. package/dist/docs/guides/export-grokbot.html +37 -37
  192. package/dist/docs/guides/github.html +37 -37
  193. package/dist/docs/guides/gitlab.html +37 -37
  194. package/dist/docs/guides/grokbot-agents.html +37 -37
  195. package/dist/docs/guides/hooks.html +45 -41
  196. package/dist/docs/guides/hooks.md +7 -3
  197. package/dist/docs/guides/improve.html +37 -37
  198. package/dist/docs/guides/jev.html +37 -37
  199. package/dist/docs/guides/mcp-oauth.html +39 -39
  200. package/dist/docs/guides/mcp-oauth.md +12 -0
  201. package/dist/docs/guides/migrate.html +37 -37
  202. package/dist/docs/guides/opentelemetry.html +62 -70
  203. package/dist/docs/guides/opentelemetry.md +150 -175
  204. package/dist/docs/guides/pagerduty.html +119 -0
  205. package/dist/docs/guides/pagerduty.md +336 -0
  206. package/dist/docs/guides/slack.html +44 -39
  207. package/dist/docs/guides/slack.md +41 -0
  208. package/dist/docs/guides/webhooks.html +37 -37
  209. package/dist/docs/hashmap.json +1 -1
  210. package/dist/docs/hillclimbing.html +37 -37
  211. package/dist/docs/index.html +37 -37
  212. package/dist/docs/llms-full.txt +730 -163
  213. package/dist/docs/llms.txt +3 -1
  214. package/dist/docs/quickstart.html +37 -37
  215. package/dist/docs/reference/agent-config.html +42 -38
  216. package/dist/docs/reference/agent-config.md +21 -1
  217. package/dist/docs/reference/artifacts.html +37 -37
  218. package/dist/docs/reference/channels.html +38 -38
  219. package/dist/docs/reference/channels.md +7 -2
  220. package/dist/docs/reference/cli.html +43 -38
  221. package/dist/docs/reference/cli.md +27 -0
  222. package/dist/docs/reference/connections.html +37 -37
  223. package/dist/docs/reference/evals.html +37 -37
  224. package/dist/docs/reference/extensions.html +37 -37
  225. package/dist/docs/reference/hooks.html +49 -43
  226. package/dist/docs/reference/hooks.md +10 -5
  227. package/dist/docs/reference/http-api.html +37 -37
  228. package/dist/docs/reference/instructions.html +37 -37
  229. package/dist/docs/reference/memory.html +37 -37
  230. package/dist/docs/reference/playground.html +36 -36
  231. package/dist/docs/reference/project-layout.html +37 -37
  232. package/dist/docs/reference/prompt.html +37 -37
  233. package/dist/docs/reference/schedules.html +40 -40
  234. package/dist/docs/reference/sessions.html +58 -37
  235. package/dist/docs/reference/sessions.md +46 -1
  236. package/dist/docs/reference/skills.html +40 -40
  237. package/dist/docs/reference/subagents.html +37 -37
  238. package/dist/docs/reference/tools.html +39 -39
  239. package/dist/docs/reference/tools.md +4 -3
  240. package/dist/docs/templates/agentic-owners.html +37 -37
  241. package/dist/docs/templates/grokbot-agents.html +37 -37
  242. package/dist/docs/templates/security-reviewer.html +37 -37
  243. package/dist/docs/templates/thermo-quality-review.html +37 -37
  244. package/dist/docs/templates/thermo-review.html +37 -37
  245. package/dist/docs/templates/triage.html +37 -37
  246. package/dist/docs/troubleshooting.html +36 -36
  247. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  248. package/dist/extensions/cursor-cloud-agents/extension.js +15 -15
  249. package/dist/extensions/cursor-cloud-agents/lib/backend.js +1 -1
  250. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
  251. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +1 -1
  252. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -1
  253. package/dist/extensions/cursor-cloud-agents/lib/inputs.js +1 -1
  254. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +1 -1
  255. package/dist/extensions/cursor-cloud-agents/tools/launch.js +1 -1
  256. package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
  257. package/dist/extensions/cursor-cloud-agents/tools/reply.js +1 -1
  258. package/dist/extensions/cursor-grokbot-agents/extension.d.ts.map +1 -1
  259. package/dist/extensions/cursor-grokbot-agents/extension.js +7 -3
  260. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +1 -1
  261. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +1 -1
  262. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +1 -1
  263. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -1
  264. package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +1 -1
  265. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +1 -1
  266. package/dist/extensions/cursor-grokbot-agents/tools/check.js +1 -1
  267. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +1 -1
  268. package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
  269. package/dist/extensions/improve/extension.js +1 -1
  270. package/dist/extensions/jev/extension.js +2 -2
  271. package/dist/extensions/jev/tools/evaluate.js +3 -3
  272. package/dist/extensions/slack-communication/extension.js +1 -1
  273. package/dist/extensions/slack-communication/tools/delete-message.js +1 -1
  274. package/dist/extensions/slack-communication/tools/edit-message.d.ts.map +1 -1
  275. package/dist/extensions/slack-communication/tools/edit-message.js +3 -6
  276. package/dist/extensions/slack-communication/tools/post-card.js +1 -1
  277. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  278. package/dist/extensions/slack-communication/tools/post-update.d.ts.map +1 -1
  279. package/dist/extensions/slack-communication/tools/post-update.js +3 -6
  280. package/dist/extensions/slack-communication/tools/react.js +1 -1
  281. package/dist/extensions/slack-communication/tools/set-status.js +1 -1
  282. package/dist/extensions.d.ts +1 -1
  283. package/dist/extensions.js +1 -1
  284. package/dist/index.d.ts +14 -11
  285. package/dist/index.d.ts.map +1 -1
  286. package/dist/index.js +8 -4
  287. package/dist/internal/approval-gate.d.ts +4 -2
  288. package/dist/internal/approval-gate.d.ts.map +1 -1
  289. package/dist/internal/approval-gate.js +2 -1
  290. package/dist/internal/as-of.d.ts +2 -0
  291. package/dist/internal/as-of.d.ts.map +1 -1
  292. package/dist/internal/as-of.js +2 -0
  293. package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -1
  294. package/dist/internal/builtin-tools/artifacts.js +45 -12
  295. package/dist/internal/builtin-tools/reminders.js +1 -1
  296. package/dist/internal/channel-architecture.d.ts +1 -1
  297. package/dist/internal/channel-architecture.d.ts.map +1 -1
  298. package/dist/internal/channel-architecture.js +4 -2
  299. package/dist/internal/cli-deploy.d.ts.map +1 -1
  300. package/dist/internal/cli-deploy.js +39 -22
  301. package/dist/internal/cli-pagerduty.d.ts +32 -0
  302. package/dist/internal/cli-pagerduty.d.ts.map +1 -0
  303. package/dist/internal/cli-pagerduty.js +242 -0
  304. package/dist/internal/continuation-channel.d.ts.map +1 -1
  305. package/dist/internal/continuation-channel.js +7 -0
  306. package/dist/internal/continuation-identity.d.ts +11 -3
  307. package/dist/internal/continuation-identity.d.ts.map +1 -1
  308. package/dist/internal/continuation-identity.js +83 -0
  309. package/dist/internal/continuation.d.ts +3 -0
  310. package/dist/internal/continuation.d.ts.map +1 -0
  311. package/dist/internal/continuation.js +1 -0
  312. package/dist/internal/conversation-mirror.d.ts +5 -0
  313. package/dist/internal/conversation-mirror.d.ts.map +1 -1
  314. package/dist/internal/conversation-mirror.js +12 -1
  315. package/dist/internal/convert-automation/convert-workflow.js +1 -1
  316. package/dist/internal/convert-grokbot/answers.d.ts.map +1 -1
  317. package/dist/internal/convert-grokbot/answers.js +10 -8
  318. package/dist/internal/convert-grokbot/recipe.d.ts +1 -1
  319. package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -1
  320. package/dist/internal/convert-grokbot/recipe.js +1 -1
  321. package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
  322. package/dist/internal/cursor/account-mcp.js +2 -0
  323. package/dist/internal/cursor/backend-client.d.ts +8 -3
  324. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  325. package/dist/internal/cursor/backend-client.js +8 -3
  326. package/dist/internal/cursor/credentials.d.ts +2 -2
  327. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  328. package/dist/internal/cursor/credentials.js +1 -1
  329. package/dist/internal/cursor-account-mcp-auth.d.ts +6 -2
  330. package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
  331. package/dist/internal/cursor-account-mcp-auth.js +15 -6
  332. package/dist/internal/deferred-channel-session.d.ts +5 -4
  333. package/dist/internal/deferred-channel-session.d.ts.map +1 -1
  334. package/dist/internal/deferred-channel-session.js +6 -4
  335. package/dist/internal/deploy-client.d.ts +5 -0
  336. package/dist/internal/deploy-client.d.ts.map +1 -1
  337. package/dist/internal/deploy-client.js +3 -3
  338. package/dist/internal/deploy-manifest.d.ts +11 -4
  339. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  340. package/dist/internal/deploy-manifest.js +19 -7
  341. package/dist/internal/describe-error.d.ts +2 -0
  342. package/dist/internal/describe-error.d.ts.map +1 -1
  343. package/dist/internal/describe-error.js +2 -0
  344. package/dist/internal/discovery/agent-config.d.ts.map +1 -1
  345. package/dist/internal/discovery/agent-config.js +10 -10
  346. package/dist/internal/discovery/agent.d.ts.map +1 -1
  347. package/dist/internal/discovery/agent.js +10 -10
  348. package/dist/internal/discovery/channels.d.ts.map +1 -1
  349. package/dist/internal/discovery/channels.js +20 -16
  350. package/dist/internal/discovery/context.d.ts +16 -0
  351. package/dist/internal/discovery/context.d.ts.map +1 -1
  352. package/dist/internal/discovery/context.js +67 -2
  353. package/dist/internal/discovery/cursor-plugin.js +8 -8
  354. package/dist/internal/discovery/extension-overlay.d.ts.map +1 -1
  355. package/dist/internal/discovery/extension-overlay.js +2 -6
  356. package/dist/internal/discovery/extensions.js +15 -8
  357. package/dist/internal/discovery/info.d.ts +2 -2
  358. package/dist/internal/discovery/info.d.ts.map +1 -1
  359. package/dist/internal/discovery/info.js +9 -9
  360. package/dist/internal/discovery/instructions.d.ts.map +1 -1
  361. package/dist/internal/discovery/instructions.js +3 -6
  362. package/dist/internal/discovery/instrumentation.d.ts +10 -0
  363. package/dist/internal/discovery/instrumentation.d.ts.map +1 -0
  364. package/dist/internal/discovery/instrumentation.js +29 -0
  365. package/dist/internal/discovery/modules.d.ts.map +1 -1
  366. package/dist/internal/discovery/modules.js +7 -10
  367. package/dist/internal/discovery/project-public.d.ts +16 -0
  368. package/dist/internal/discovery/project-public.d.ts.map +1 -0
  369. package/dist/internal/discovery/project-public.js +54 -0
  370. package/dist/internal/discovery/project.d.ts +6 -0
  371. package/dist/internal/discovery/project.d.ts.map +1 -1
  372. package/dist/internal/discovery/project.js +40 -8
  373. package/dist/internal/discovery/runtime.d.ts.map +1 -1
  374. package/dist/internal/discovery/runtime.js +8 -8
  375. package/dist/internal/discovery/services.d.ts +5 -4
  376. package/dist/internal/discovery/services.d.ts.map +1 -1
  377. package/dist/internal/discovery/services.js +12 -6
  378. package/dist/internal/discovery.d.ts +1 -1
  379. package/dist/internal/discovery.d.ts.map +1 -1
  380. package/dist/internal/discovery.js +1 -1
  381. package/dist/internal/event-mapper.d.ts.map +1 -1
  382. package/dist/internal/event-mapper.js +1 -0
  383. package/dist/internal/expected-delivery-failure.d.ts.map +1 -1
  384. package/dist/internal/expected-delivery-failure.js +6 -0
  385. package/dist/internal/factory-resource-channel.d.ts +1 -1
  386. package/dist/internal/factory-resource-channel.d.ts.map +1 -1
  387. package/dist/internal/filesystem/nearest.d.ts +1 -0
  388. package/dist/internal/filesystem/nearest.d.ts.map +1 -1
  389. package/dist/internal/filesystem/nearest.js +1 -0
  390. package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -1
  391. package/dist/internal/filesystem/sdk-schemas.js +4 -3
  392. package/dist/internal/filesystem/tools.d.ts.map +1 -1
  393. package/dist/internal/filesystem/tools.js +1 -1
  394. package/dist/internal/handleAgentServeTrigger.d.ts +10 -0
  395. package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -1
  396. package/dist/internal/handleAgentServeTrigger.js +3 -0
  397. package/dist/internal/hmac-secret-values.d.ts +48 -0
  398. package/dist/internal/hmac-secret-values.d.ts.map +1 -0
  399. package/dist/internal/hmac-secret-values.js +68 -0
  400. package/dist/internal/host-otel.d.ts +1 -1
  401. package/dist/internal/host-otel.d.ts.map +1 -1
  402. package/dist/internal/host-otel.js +5 -0
  403. package/dist/internal/host-platforms.d.ts.map +1 -1
  404. package/dist/internal/host-platforms.js +8 -2
  405. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  406. package/dist/internal/hosted-delivery.js +6 -2
  407. package/dist/internal/http-channel.d.ts.map +1 -1
  408. package/dist/internal/http-channel.js +1 -0
  409. package/dist/internal/ids.d.ts +8 -0
  410. package/dist/internal/ids.d.ts.map +1 -1
  411. package/dist/internal/ids.js +20 -0
  412. package/dist/internal/init-scaffold.js +1 -1
  413. package/dist/internal/interview/agent-questions.d.ts +1 -1
  414. package/dist/internal/interview/agent-questions.d.ts.map +1 -1
  415. package/dist/internal/interview/agent-questions.js +1 -1
  416. package/dist/internal/interview/question.d.ts +2 -2
  417. package/dist/internal/interview/question.d.ts.map +1 -1
  418. package/dist/internal/interview/question.js +2 -2
  419. package/dist/internal/json-schema.d.ts +7 -7
  420. package/dist/internal/json-schema.d.ts.map +1 -1
  421. package/dist/internal/json-schema.js +16 -23
  422. package/dist/internal/mcp-endpoint.d.ts +16 -4
  423. package/dist/internal/mcp-endpoint.d.ts.map +1 -1
  424. package/dist/internal/mcp-endpoint.js +18 -6
  425. package/dist/internal/mcp-host.d.ts +9 -0
  426. package/dist/internal/mcp-host.d.ts.map +1 -1
  427. package/dist/internal/mcp-host.js +15 -0
  428. package/dist/internal/otel/collector.d.ts +5 -0
  429. package/dist/internal/otel/collector.d.ts.map +1 -1
  430. package/dist/internal/otel/collector.js +27 -6
  431. package/dist/internal/otel/config.d.ts +37 -22
  432. package/dist/internal/otel/config.d.ts.map +1 -1
  433. package/dist/internal/otel/config.js +132 -125
  434. package/dist/internal/otel/conversation-span-processor.d.ts +9 -0
  435. package/dist/internal/otel/conversation-span-processor.d.ts.map +1 -0
  436. package/dist/internal/otel/conversation-span-processor.js +34 -0
  437. package/dist/internal/otel/customer.d.ts +52 -0
  438. package/dist/internal/otel/customer.d.ts.map +1 -0
  439. package/dist/internal/otel/customer.js +727 -0
  440. package/dist/internal/otel/runtime.d.ts +12 -16
  441. package/dist/internal/otel/runtime.d.ts.map +1 -1
  442. package/dist/internal/otel/runtime.js +37 -218
  443. package/dist/internal/otel-env.d.ts +6 -0
  444. package/dist/internal/otel-env.d.ts.map +1 -0
  445. package/dist/internal/otel-env.js +5 -0
  446. package/dist/internal/package-inline-stdio.d.ts.map +1 -1
  447. package/dist/internal/package-inline-stdio.js +21 -6
  448. package/dist/internal/reminder-runner.d.ts +9 -4
  449. package/dist/internal/reminder-runner.d.ts.map +1 -1
  450. package/dist/internal/reminder-runner.js +12 -10
  451. package/dist/internal/reminder-schedule.d.ts +1 -0
  452. package/dist/internal/reminder-schedule.d.ts.map +1 -1
  453. package/dist/internal/reminder-schedule.js +1 -0
  454. package/dist/internal/sdk-runner.d.ts +4 -3
  455. package/dist/internal/sdk-runner.d.ts.map +1 -1
  456. package/dist/internal/sdk-runner.js +157 -17
  457. package/dist/internal/secret-alternatives.d.ts +11 -0
  458. package/dist/internal/secret-alternatives.d.ts.map +1 -0
  459. package/dist/internal/secret-alternatives.js +13 -0
  460. package/dist/internal/server.d.ts +4 -1
  461. package/dist/internal/server.d.ts.map +1 -1
  462. package/dist/internal/server.js +27 -26
  463. package/dist/internal/session-engine.d.ts +27 -0
  464. package/dist/internal/session-engine.d.ts.map +1 -1
  465. package/dist/internal/session-engine.js +154 -25
  466. package/dist/internal/slack-provision-client.js +1 -1
  467. package/dist/internal/sqlite-experimental-warning.d.ts +2 -0
  468. package/dist/internal/sqlite-experimental-warning.d.ts.map +1 -0
  469. package/dist/internal/sqlite-experimental-warning.js +22 -0
  470. package/dist/internal/store-api-protocol.d.ts +1 -1
  471. package/dist/internal/store-api-protocol.d.ts.map +1 -1
  472. package/dist/internal/store-api-protocol.js +1 -1
  473. package/dist/internal/testing/conversation-identity-vectors.d.ts +6 -1
  474. package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -1
  475. package/dist/internal/testing/conversation-identity-vectors.js +34 -0
  476. package/dist/internal/testing/hmac-secret-vectors.d.ts +38 -0
  477. package/dist/internal/testing/hmac-secret-vectors.d.ts.map +1 -0
  478. package/dist/internal/testing/hmac-secret-vectors.js +89 -0
  479. package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts +42 -0
  480. package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts.map +1 -0
  481. package/dist/internal/testing/pagerduty-continuation-fixtures.js +175 -0
  482. package/dist/internal/update-check.d.ts +2 -2
  483. package/dist/internal/update-check.d.ts.map +1 -1
  484. package/dist/internal/update-check.js +3 -3
  485. package/dist/internal/zod-schema.d.ts +14 -0
  486. package/dist/internal/zod-schema.d.ts.map +1 -0
  487. package/dist/internal/zod-schema.js +22 -0
  488. package/dist/internal/zod3-datetime.d.ts +12 -0
  489. package/dist/internal/zod3-datetime.d.ts.map +1 -0
  490. package/dist/internal/zod3-datetime.js +17 -0
  491. package/dist/otel-public.d.ts +2 -3
  492. package/dist/otel-public.d.ts.map +1 -1
  493. package/dist/otel-public.js +2 -2
  494. package/dist/otel.d.ts +3 -102
  495. package/dist/otel.d.ts.map +1 -1
  496. package/dist/otel.js +61 -97
  497. package/dist/playground/assets/cursor-icons-16-DmHBTm1-.woff2 +0 -0
  498. package/dist/playground/assets/index-CyPkf2y7.css +1 -0
  499. package/dist/playground/assets/index-DpbzbqFY.js +62 -0
  500. package/dist/playground/index.html +2 -2
  501. package/dist/public-deprecated.d.ts +36 -0
  502. package/dist/public-deprecated.d.ts.map +1 -0
  503. package/dist/public-deprecated.js +39 -0
  504. package/dist/tools.d.ts +16 -13
  505. package/dist/tools.d.ts.map +1 -1
  506. package/dist/tools.js +4 -3
  507. package/dist/types.d.ts +286 -104
  508. package/dist/types.d.ts.map +1 -1
  509. package/docs/changelog.md +91 -0
  510. package/docs/guides/hooks.md +7 -3
  511. package/docs/guides/mcp-oauth.md +12 -0
  512. package/docs/guides/opentelemetry.md +150 -180
  513. package/docs/guides/pagerduty.md +341 -0
  514. package/docs/guides/slack.md +41 -0
  515. package/docs/reference/agent-config.md +21 -1
  516. package/docs/reference/channels.md +7 -2
  517. package/docs/reference/cli.md +27 -0
  518. package/docs/reference/hooks.md +10 -5
  519. package/docs/reference/sessions.md +46 -1
  520. package/docs/reference/tools.md +4 -3
  521. package/package.json +39 -8
  522. package/schemas/grokbot-answers.schema.json +11 -0
  523. package/skills/framework-map/SKILL.md +2 -1
  524. package/skills/migrate-v2/SKILL.md +1 -1
  525. package/skills/otel/SKILL.md +30 -46
  526. package/templates/agentic-owners/README.md +6 -1
  527. package/templates/agentic-owners/bot/lib/owners/decision.ts +31 -5
  528. package/templates/agentic-owners/bot/lib/owners/globalOverride.ts +60 -0
  529. package/templates/agentic-owners/bot/lib/owners/match.ts +85 -19
  530. package/templates/agentic-owners/bot/lib/owners/parse.ts +133 -2
  531. package/templates/agentic-owners/bot/lib/owners/types.ts +23 -0
  532. package/templates/code-wiki/evals/wiki.eval.ts +2 -2
  533. package/dist/docs/assets/chunks/@localSearchIndexroot.3ebvCWKy.js +0 -1
  534. package/dist/docs/assets/chunks/channel.BOebySCN.js +0 -1
  535. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C55IaN-T.js +0 -1
  536. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C55IaN-T.js +0 -1
  537. package/dist/docs/assets/chunks/clone.D06pA7ML.js +0 -1
  538. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DddRVjeq.js +0 -1
  539. package/dist/docs/assets/chunks/wardley-RL74JXVD.CVCRSuQK.js +0 -162
  540. package/dist/docs/assets/guides_opentelemetry.md.Ck1o2frw.js +0 -45
  541. package/dist/docs/assets/guides_opentelemetry.md.Ck1o2frw.lean.js +0 -1
  542. package/dist/docs/assets/reference_sessions.md.C8FXuGwk.js +0 -1
  543. package/dist/docs/assets/reference_sessions.md.C8FXuGwk.lean.js +0 -1
  544. package/dist/playground/assets/cursor-icons-16-gwXtdAvu.woff2 +0 -0
  545. package/dist/playground/assets/index-DKKdkF29.js +0 -62
  546. package/dist/playground/assets/index-DpKinTMs.css +0 -1
  547. package/templates/grokbot-agents/.gitignore +0 -4
  548. package/templates/security-help/.gitignore +0 -4
  549. /package/dist/docs/assets/{guides_hooks.md.Bfj0pK91.lean.js → guides_hooks.md.B2XfGX50.lean.js} +0 -0
  550. /package/dist/docs/assets/{reference_channels.md.DYg0CLud.lean.js → reference_channels.md.CNNIS6K7.lean.js} +0 -0
  551. /package/dist/docs/assets/{reference_schedules.md.03Ryy9ca.lean.js → reference_schedules.md.BqWnJES4.lean.js} +0 -0
  552. /package/dist/docs/assets/{reference_skills.md.C2GWh7g8.lean.js → reference_skills.md.Ckddg6KX.lean.js} +0 -0
  553. /package/dist/docs/assets/{reference_tools.md.08XR7lIl.lean.js → reference_tools.md.Bo0UfT0a.lean.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cursor/bdk",
3
- "version": "0.2.24",
3
+ "version": "0.2.26",
4
4
  "description": "Build, test, and deploy BDK bots and agents as code on Cursor's agent harness.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "repository": {
@@ -41,6 +41,7 @@
41
41
  "package.json",
42
42
  "LICENSE.md",
43
43
  "README.md",
44
+ "CHANGELOG.md",
44
45
  "AGENTS.md"
45
46
  ],
46
47
  "exports": {
@@ -57,6 +58,20 @@
57
58
  "import": "./dist/executors.js",
58
59
  "default": "./dist/executors.js"
59
60
  },
61
+ "./internal/continuation": {
62
+ "anysphere-source": "./src/internal/continuation.ts",
63
+ "bun": "./dist/internal/continuation.js",
64
+ "types": "./dist/internal/continuation.d.ts",
65
+ "import": "./dist/internal/continuation.js",
66
+ "default": "./dist/internal/continuation.js"
67
+ },
68
+ "./internal/discovery": {
69
+ "anysphere-source": "./src/internal/discovery.ts",
70
+ "bun": "./dist/internal/discovery.js",
71
+ "types": "./dist/internal/discovery.d.ts",
72
+ "import": "./dist/internal/discovery.js",
73
+ "default": "./dist/internal/discovery.js"
74
+ },
60
75
  "./internal/cursor-hosted": {
61
76
  "anysphere-source": "./src/storage-backends/cursor-hosted.ts",
62
77
  "bun": "./dist/storage-backends/cursor-hosted.js",
@@ -92,6 +107,13 @@
92
107
  "import": "./dist/otel.js",
93
108
  "default": "./dist/otel.js"
94
109
  },
110
+ "./internal/otel-env": {
111
+ "anysphere-source": "./src/internal/otel-env.ts",
112
+ "bun": "./dist/internal/otel-env.js",
113
+ "types": "./dist/internal/otel-env.d.ts",
114
+ "import": "./dist/internal/otel-env.js",
115
+ "default": "./dist/internal/otel-env.js"
116
+ },
95
117
  "./internal/storage": {
96
118
  "anysphere-source": "./src/internal/storage.ts",
97
119
  "bun": "./dist/internal/storage.js",
@@ -141,6 +163,13 @@
141
163
  "import": "./dist/channels/bitbucket/index.js",
142
164
  "default": "./dist/channels/bitbucket/index.js"
143
165
  },
166
+ "./channels/pagerduty": {
167
+ "anysphere-source": "./src/channels/pagerduty/index.ts",
168
+ "bun": "./dist/channels/pagerduty/index.js",
169
+ "types": "./dist/channels/pagerduty/index.d.ts",
170
+ "import": "./dist/channels/pagerduty/index.js",
171
+ "default": "./dist/channels/pagerduty/index.js"
172
+ },
144
173
  "./channels/deployments": {
145
174
  "anysphere-source": "./src/channels/deployments/index.ts",
146
175
  "types": "./dist/channels/deployments/index.d.ts",
@@ -336,7 +365,13 @@
336
365
  "zod": "^3.25.0 || ^4.0.0"
337
366
  },
338
367
  "devDependencies": {
368
+ "@anysphere/agent-exec": "1.0.0",
369
+ "@anysphere/agent-store-sync": "1.0.0",
370
+ "@anysphere/context": "1.0.0",
371
+ "@anysphere/proto": "1.0.0",
372
+ "@anysphere/ui": "1.0.0",
339
373
  "@braintree/sanitize-url": "7.1.2",
374
+ "@microsoft/api-extractor": "7.59.4",
340
375
  "@stylexswc/rs-compiler": "^0.18.0",
341
376
  "@tanstack/react-virtual": "3.13.23",
342
377
  "@types/js-yaml": "4.0.9",
@@ -365,13 +400,8 @@
365
400
  "vitepress-plugin-mermaid": "^2.0.17",
366
401
  "vitest": "5.0.3",
367
402
  "yaml": "^2.4.2",
368
- "zod": "^3.25.0",
369
- "zustand": "^5.0.9",
370
- "@anysphere/agent-exec": "1.0.0",
371
- "@anysphere/context": "1.0.0",
372
- "@anysphere/agent-store-sync": "1.0.0",
373
- "@anysphere/proto": "1.0.0",
374
- "@anysphere/ui": "1.0.0"
403
+ "zod": "4.6.5",
404
+ "zustand": "^5.0.9"
375
405
  },
376
406
  "scripts": {
377
407
  "build": "tsc -p tsconfig.build.json && node scripts/bundle-publish-shims.mjs && node scripts/copy-extension-assets.mjs && pnpm run build:playground && pnpm run docs:build",
@@ -380,6 +410,7 @@
380
410
  "build:playground": "vite build --config playground/vite.config.ts",
381
411
  "build:playground:central": "vite build --mode central --config playground/vite.config.ts",
382
412
  "dev:playground": "vite --config playground/vite.config.ts",
413
+ "api:report": "node scripts/api-report.mjs",
383
414
  "check": "oxlint src && tsc --noEmit && tsc --noEmit -p playground/tsconfig.json",
384
415
  "docs:dev": "vitepress dev docs",
385
416
  "docs:build": "vitepress build docs",
@@ -159,6 +159,9 @@
159
159
  },
160
160
  "connectors": {
161
161
  "type": "object",
162
+ "propertyNames": {
163
+ "type": "string"
164
+ },
162
165
  "additionalProperties": {
163
166
  "type": "object",
164
167
  "properties": {
@@ -200,8 +203,14 @@
200
203
  },
201
204
  "fillIns": {
202
205
  "type": "object",
206
+ "propertyNames": {
207
+ "type": "string"
208
+ },
203
209
  "additionalProperties": {
204
210
  "type": "object",
211
+ "propertyNames": {
212
+ "type": "string"
213
+ },
205
214
  "additionalProperties": {
206
215
  "type": "string",
207
216
  "minLength": 1,
@@ -273,6 +282,7 @@
273
282
  },
274
283
  "at": {
275
284
  "type": "string",
285
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|[+-]\\d{2}:?\\d{2})$",
276
286
  "format": "date-time",
277
287
  "title": "Deploy at",
278
288
  "description": "Deploy at (ISO 8601 with a timezone)?",
@@ -309,6 +319,7 @@
309
319
  },
310
320
  "cutoverAt": {
311
321
  "type": "string",
322
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|[+-]\\d{2}:?\\d{2})$",
312
323
  "format": "date-time",
313
324
  "title": "Slack cutover at",
314
325
  "description": "Switch Slack traffic at (ISO 8601 with a timezone)?",
@@ -54,12 +54,13 @@ Path is identity. Full list: README "Folder structure".
54
54
  | `bot/channels/*.ts` | Slack / GitHub / custom HTTP |
55
55
  | `bot/hooks/*.ts` | Observe-only |
56
56
  | `bot/artifacts.ts` | Durable tagged outputs (`defineArtifacts`) |
57
- | `bot/otel.ts` | Factory-only OpenTelemetry (`defineOtel`) |
58
57
  | `bot/schedules/*` | Cron. Never auto-fire under `--dev` |
59
58
  | `bot/sandbox/workspace/` | Session seed files (local only) |
60
59
  | `bot/lib/` | Import-only. Never discovered |
61
60
  | `evals/**/*.eval.ts` | Case id is the path under `evals/` |
62
61
 
62
+ OpenTelemetry export uses `OTEL_*` environment variables. See the guide section "Migrating from serve({ otel })".
63
+
63
64
  Discovery rejects `bot/result.ts`. To act on a turn's decision, record it with
64
65
  an authored tool and act on it from a `turn.completed` hook.
65
66
 
@@ -393,5 +393,5 @@ After the deploy is running:
393
393
  `bdk session <ses_...> --prod --slug <slug>` until the latest run
394
394
  finishes.
395
395
 
396
- The [deploy skill](../deploy/SKILL.md) covers deploys with an attached
396
+ The deploy skill (`skills/deploy/SKILL.md`) covers deploys with an attached
397
397
  service account.
@@ -1,64 +1,48 @@
1
1
  ---
2
2
  name: bdk-otel
3
3
  description: >-
4
- Wire OpenTelemetry export (OTLP env, serve({ otel }), traces/metrics/logs,
5
- ctx.host.otel). Use when adding collector export or custom metrics.
4
+ Wire OpenTelemetry export with OTEL_* environment variables.
5
+ Use when adding a collector, headers, or metrics temporality.
6
6
  ---
7
7
 
8
8
  # BDK OpenTelemetry
9
9
 
10
- Push traces and metrics from the serve process to an OTLP
11
- collector. Logs are off until you opt in.
10
+ Customers configure export with standard `OTEL_*` environment variables
11
+ and secrets. There is no instrumentation file and no `defineOtel`.
12
+ `ctx.host.otel` is deprecated. Use `metrics.getMeter` and
13
+ `trace.getTracer`. A span during a turn gets `cursor.conversation.id`
14
+ from the active context. A metric does not. Call
15
+ `currentConversationId` from `@cursor/bdk/otel` and set it yourself.
12
16
 
13
17
  Guide: `docs/guides/opentelemetry.md`.
14
18
 
15
- ## Enable
19
+ ```bash
20
+ export OTEL_EXPORTER_OTLP_ENDPOINT=https://otel.example.com
21
+ export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer $OTEL_TOKEN"
22
+ export OTEL_SERVICE_NAME=incident-agent
23
+ ```
16
24
 
17
- Public surface (use one of these):
25
+ BDK installs trace, metric, and log providers before `bot/agent.ts`.
26
+ A module-scope `trace.getTracer()`, `metrics.getMeter()`, or
27
+ `logs.getLogger()` binds to those providers. Exporters attach when
28
+ secrets load. With no `OTEL_EXPORTER_OTLP_*` endpoint, export stays
29
+ off. Outbound fetch does not gain a `traceparent` header, and the
30
+ session collector stays disabled.
18
31
 
19
- 1. `OTEL_EXPORTER_OTLP_ENDPOINT` (optional
20
- `OTEL_SERVICE_NAME`, `OTEL_EXPORTER_OTLP_HEADERS`,
21
- `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf|http/json`)
22
- 2. `serve(dir, { otel: { … } })`. `otel: false` disables env and
23
- authored config.
32
+ Metrics use delta temporality by default. For Grafana Cloud, set
33
+ `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=cumulative`.
24
34
 
25
- `bot/otel.ts` is factory-only. Import `defineOtel` from
26
- `@cursor/bdk/internal/otel` only in a Cursor factory agent.
27
- A customer agent uses the environment variables above.
35
+ Do not pass `otel` to `serve`. Do not add `bot/otel.ts`.
36
+ Read the guide section "Migrating from serve({ otel })".
28
37
 
29
38
  Hosted agents:
30
39
 
31
- - Set `OTEL_EXPORTER_OTLP_ENDPOINT` and
32
- `OTEL_EXPORTER_OTLP_HEADERS` with `bdk secrets set`. Add the
33
- collector host to `hosting.egressDomains`.
40
+ - Put the same variables in `bdk secrets set`, and add the collector
41
+ host to `hosting.egressDomains`.
34
42
  - Header values are URL-encoded (`Authorization=Basic%20...`).
35
- - A new header from `bdk secrets set` applies on the next export.
36
- You do not redeploy for a token change.
37
- - BDK logs an error when an exporter host is not in
38
- `hosting.egressDomains`.
39
- - Spans and metrics from before the first request are not exported.
40
- - If the OpenTelemetry config fails, BDK logs the error and the
41
- request still completes.
42
-
43
- | Signal | Default |
44
- | --- | --- |
45
- | Traces | on (`agent_sdk.http`; `agent_sdk.turn` → tool / subagent) |
46
- | Metrics | on (`cursor.token.usage`, `cursor.tool.calls`, `cursor.cost.usage`) |
47
- | Logs | off (`logs: true` or `OTEL_LOGS_EXPORTER=otlp`) |
48
-
49
- Prompt text and tool payloads stay off the wire unless you set
50
- `OTEL_LOG_USER_PROMPTS` / `OTEL_LOG_TOOL_CONTENT`. A failed tool
51
- span status includes a short failure reason. BDK keeps its own
52
- exporters when the process already has a provider.
53
-
54
- ## Custom metrics
55
-
56
- ```ts
57
- ctx.host.otel.setAttributes({ "abc.ticket_id": "INC-123" });
58
- ctx.host.otel.increment("abc.ticket.resolved");
59
- ctx.host.otel.record("abc.approval.duration_ms", 1420);
60
- ```
43
+ - A new header or URL from `bdk secrets set` applies on the next export.
61
44
 
62
- Prefix names with team or agent. No custom spans. Join on
63
- `agent_sdk.session_id` / `cursor.conversation.id` and
64
- `agent_sdk.agent`.
45
+ Not supported yet: custom span processors, samplers, views, your own
46
+ SDK, and library auto-instrumentation. A span that ends before the
47
+ exporters attach is still exported. `OTEL_TRACES_SAMPLER` and
48
+ `OTEL_METRIC_EXPORT_INTERVAL` are read when the provider is built.
@@ -51,7 +51,12 @@ policies:
51
51
  `self_review: true` lets a listed `user:` owner's own PRs auto-approve
52
52
  (team membership is not resolved with repo-scoped credentials, so team
53
53
  ownership stays fail-closed for authors). `global_exclusions` (root
54
- policy only) opts paths out entirely.
54
+ policy only) opts paths out entirely. `global_overrides` (root policy
55
+ only, `self_review: true` required) let their owners self-review a file
56
+ whose advisory winner they do not own. They add no owners and leave a file
57
+ with no owner unowned. They leave exclusions, always-approve, hard, and
58
+ notify winners unchanged, and they skip a `skip_teams` team or a
59
+ `skip_paths` path.
55
60
 
56
61
  ## What the agent does
57
62
 
@@ -140,16 +140,42 @@ export function authorOwnsRule(
140
140
  return rule.users.some((user) => normalizeHandle(user) === handle);
141
141
  }
142
142
 
143
+ /**
144
+ * Whether the author may clear `rule` by self-review. A merged override
145
+ * records who may self-review in `selfReviewTeams` / `selfReviewUsers`:
146
+ * the winner's owners when that rule sets `self_review`, and the override's
147
+ * owners when the override sets it.
148
+ */
149
+ export function authorMaySelfReview(
150
+ rule: AgenticOwnersPathRule,
151
+ author: ApprovalAuthor | undefined,
152
+ ): boolean {
153
+ if (!rule.selfReview) {
154
+ return false;
155
+ }
156
+ if (rule.selfReviewTeams === undefined && rule.selfReviewUsers === undefined) {
157
+ return authorOwnsRule(rule, author);
158
+ }
159
+ return authorOwnsRule(
160
+ {
161
+ ...rule,
162
+ teams: rule.selfReviewTeams ?? [],
163
+ users: rule.selfReviewUsers ?? [],
164
+ },
165
+ author,
166
+ );
167
+ }
168
+
143
169
  /**
144
170
  * The first matched rule (closest-match order is preserved) for which the author
145
- * is an owner AND `self_review` is enabled — i.e. the rule that authorizes the
146
- * author to approve their own change. Undefined when none applies.
171
+ * may self-review — the rule that authorizes the author to approve their own
172
+ * change. Undefined when none applies.
147
173
  */
148
174
  function selfReviewRuleForAuthor(
149
175
  matchedRules: readonly AgenticOwnersPathRule[],
150
176
  author: ApprovalAuthor | undefined,
151
177
  ): AgenticOwnersPathRule | undefined {
152
- return matchedRules.find((rule) => rule.selfReview && authorOwnsRule(rule, author));
178
+ return matchedRules.find((rule) => authorMaySelfReview(rule, author));
153
179
  }
154
180
 
155
181
  /**
@@ -180,7 +206,7 @@ export function authorSelfReviewCoversMatchedRules(
180
206
  );
181
207
  return (
182
208
  reviewCapableRules.length > 0 &&
183
- reviewCapableRules.every((rule) => rule.selfReview && authorOwnsRule(rule, author))
209
+ reviewCapableRules.every((rule) => authorMaySelfReview(rule, author))
184
210
  );
185
211
  }
186
212
 
@@ -384,7 +410,7 @@ function baseApprovalVerdict(input: {
384
410
  // owner self_review on that same rule. Low-risk auto-approve never clears a
385
411
  // hard gate without self_review.
386
412
  const blockingHardGate = reviewRequiredRules.find(
387
- (rule) => ruleIsHardGate(rule) && !(rule.selfReview && authorOwnsRule(rule, author)),
413
+ (rule) => ruleIsHardGate(rule) && !authorMaySelfReview(rule, author),
388
414
  );
389
415
  if (blockingHardGate !== undefined) {
390
416
  return requestVerdict("a matched policy requires human review");
@@ -0,0 +1,60 @@
1
+ // Vendored from the Agentic Owners policy core; see README.md in this
2
+ // directory. Precedence must stay identical to the source's.
3
+
4
+ import type { AgenticOwnersPathRule } from "./types.js";
5
+
6
+ /**
7
+ * Winners a root `global_overrides` entry must not change: owner-clearing
8
+ * carve-outs, hard gates, and notify rules.
9
+ */
10
+ export function blocksGlobalOverride(rule: AgenticOwnersPathRule): boolean {
11
+ return (
12
+ rule.globalExclusion === true ||
13
+ rule.alwaysApprove ||
14
+ rule.mode === "hard" ||
15
+ rule.humanReviewRequired ||
16
+ rule.mode === "notify"
17
+ );
18
+ }
19
+
20
+ function unionOwners(lists: readonly (readonly string[])[]): string[] {
21
+ return [...new Set(lists.flat())];
22
+ }
23
+
24
+ function selfReviewOwners(rule: AgenticOwnersPathRule): {
25
+ readonly selfReviewTeams: readonly string[];
26
+ readonly selfReviewUsers: readonly string[];
27
+ } {
28
+ return {
29
+ selfReviewTeams: rule.selfReviewTeams ?? rule.teams,
30
+ selfReviewUsers: rule.selfReviewUsers ?? rule.users,
31
+ };
32
+ }
33
+
34
+ /**
35
+ * Let override owners clear a file the winner owns by self-review. The
36
+ * winner's owners, reviewers, and lane are unchanged, so an author outside the
37
+ * override needs exactly the review they would without it. The winner's
38
+ * owners self-review only when the winner sets `self_review`. An override
39
+ * whose `self_review` a policy edit withheld grants nothing.
40
+ */
41
+ export function mergeGlobalOverride(
42
+ winner: AgenticOwnersPathRule,
43
+ overrides: readonly AgenticOwnersPathRule[],
44
+ ): AgenticOwnersPathRule {
45
+ const granting = overrides.filter((rule) => rule.selfReview);
46
+ if (granting.length === 0) {
47
+ return winner;
48
+ }
49
+ const selfReviewers = winner.selfReview ? [winner, ...granting] : granting;
50
+ return {
51
+ ...winner,
52
+ selfReview: true,
53
+ selfReviewTeams: unionOwners(
54
+ selfReviewers.map((rule) => selfReviewOwners(rule).selfReviewTeams),
55
+ ),
56
+ selfReviewUsers: unionOwners(
57
+ selfReviewers.map((rule) => selfReviewOwners(rule).selfReviewUsers),
58
+ ),
59
+ };
60
+ }
@@ -3,6 +3,7 @@
3
3
 
4
4
  import { posix } from "node:path";
5
5
  import { AGENTIC_OWNERS_DIR } from "./constants.js";
6
+ import { blocksGlobalOverride, mergeGlobalOverride } from "./globalOverride.js";
6
7
  import { patternMatchesFile, patternSpecificity } from "./matching.js";
7
8
  import type {
8
9
  AgenticOwnersMatchedConfig,
@@ -16,6 +17,11 @@ type PathScopedRule = {
16
17
  readonly paths: readonly string[];
17
18
  /** Root-only repository-wide exemption, produced from `global_exclusions`. */
18
19
  readonly globalExclusion?: boolean;
20
+ /**
21
+ * Root `global_overrides` entry. Applied after precedence, not as a
22
+ * candidate for it.
23
+ */
24
+ readonly globalOverride?: boolean;
19
25
  };
20
26
 
21
27
  /**
@@ -116,23 +122,84 @@ function compareRulePrecedence(
116
122
  return left.sourcePath.localeCompare(right.sourcePath);
117
123
  }
118
124
 
119
- function pickWinningRuleForFile<T extends PathScopedRule>({
120
- filepath,
121
- rules,
122
- }: {
123
- filepath: string;
124
- rules: readonly T[];
125
- }): T | undefined {
126
- let winner: T | undefined;
127
- for (const rule of rules) {
125
+ function selectRuleForFile(
126
+ filepath: string,
127
+ rules: readonly AgenticOwnersPathRule[],
128
+ ): {
129
+ readonly winner: { readonly rule: AgenticOwnersPathRule; readonly order: number } | undefined;
130
+ readonly overrides: readonly { readonly rule: AgenticOwnersPathRule; readonly order: number }[];
131
+ } {
132
+ let winner: { readonly rule: AgenticOwnersPathRule; readonly order: number } | undefined;
133
+ const overrides: { readonly rule: AgenticOwnersPathRule; readonly order: number }[] = [];
134
+ for (const [order, rule] of rules.entries()) {
128
135
  if (!ruleMatchesFile({ rule, filepath })) {
129
136
  continue;
130
137
  }
131
- if (winner === undefined || compareRulePrecedence(rule, winner, filepath) > 0) {
132
- winner = rule;
138
+ if (rule.globalOverride === true) {
139
+ overrides.push({ rule, order });
140
+ continue;
141
+ }
142
+ if (winner === undefined || compareRulePrecedence(rule, winner.rule, filepath) > 0) {
143
+ winner = { rule, order };
133
144
  }
134
145
  }
135
- return winner;
146
+ return { winner, overrides };
147
+ }
148
+
149
+ function teamsSkippedByOverride(
150
+ winner: AgenticOwnersPathRule,
151
+ override: AgenticOwnersPathRule,
152
+ ): boolean {
153
+ const skipped = override.skipTeams;
154
+ if (skipped === undefined || skipped.length === 0) {
155
+ return false;
156
+ }
157
+ const names = new Set(skipped.map((team) => team.trim().toLowerCase()));
158
+ return winner.teams.some((team) => names.has(team.trim().toLowerCase()));
159
+ }
160
+
161
+ function overrideAppliesToFile(
162
+ override: AgenticOwnersPathRule,
163
+ winner: AgenticOwnersPathRule,
164
+ filepath: string,
165
+ ): boolean {
166
+ if (teamsSkippedByOverride(winner, override)) {
167
+ return false;
168
+ }
169
+ const skipPaths = override.skipPaths;
170
+ if (skipPaths === undefined || skipPaths.length === 0) {
171
+ return true;
172
+ }
173
+ return !ruleMatchesFile({ rule: { ...override, paths: skipPaths }, filepath });
174
+ }
175
+
176
+ function effectiveRuleSelector(
177
+ rules: readonly AgenticOwnersPathRule[],
178
+ ): (filepath: string) => AgenticOwnersPathRule | undefined {
179
+ const cache = new Map<string, AgenticOwnersPathRule>();
180
+ return (filepath) => {
181
+ const { winner, overrides } = selectRuleForFile(filepath, rules);
182
+ if (winner === undefined || blocksGlobalOverride(winner.rule)) {
183
+ return winner?.rule;
184
+ }
185
+ const applicable = overrides.filter((entry) =>
186
+ overrideAppliesToFile(entry.rule, winner.rule, filepath),
187
+ );
188
+ if (applicable.length === 0) {
189
+ return winner.rule;
190
+ }
191
+ const key = `${winner.order}:${applicable.map((entry) => entry.order).join(",")}`;
192
+ const cached = cache.get(key);
193
+ if (cached !== undefined) {
194
+ return cached;
195
+ }
196
+ const effective = mergeGlobalOverride(
197
+ winner.rule,
198
+ applicable.map((entry) => entry.rule),
199
+ );
200
+ cache.set(key, effective);
201
+ return effective;
202
+ };
136
203
  }
137
204
 
138
205
  export function matchRepoConfigForChangedFiles({
@@ -147,8 +214,9 @@ export function matchRepoConfigForChangedFiles({
147
214
  // file path would silently drop one (e.g. a hard-gate rule lost behind an
148
215
  // advisory rule from the same policy).
149
216
  const winners = new Set<AgenticOwnersPathRule>();
217
+ const ruleForFile = effectiveRuleSelector(config.rules);
150
218
  for (const filepath of changedFiles) {
151
- const winner = pickWinningRuleForFile({ filepath, rules: config.rules });
219
+ const winner = ruleForFile(filepath);
152
220
  if (winner !== undefined) {
153
221
  winners.add(winner);
154
222
  }
@@ -175,9 +243,8 @@ export function changedFilesWithoutWinningRule({
175
243
  changedFiles: readonly string[];
176
244
  rules: readonly AgenticOwnersPathRule[];
177
245
  }): string[] {
178
- return changedFiles.filter(
179
- (filepath) => pickWinningRuleForFile({ filepath, rules }) === undefined,
180
- );
246
+ const ruleForFile = effectiveRuleSelector(rules);
247
+ return changedFiles.filter((filepath) => ruleForFile(filepath) === undefined);
181
248
  }
182
249
 
183
250
  /**
@@ -198,9 +265,8 @@ export function everyChangedFileGloballyExcluded({
198
265
  if (changedFiles.length === 0) {
199
266
  return false;
200
267
  }
201
- return changedFiles.every(
202
- (filepath) => pickWinningRuleForFile({ filepath, rules })?.globalExclusion === true,
203
- );
268
+ const ruleForFile = effectiveRuleSelector(rules);
269
+ return changedFiles.every((filepath) => ruleForFile(filepath)?.globalExclusion === true);
204
270
  }
205
271
 
206
272
  function hasOwners(rule: AgenticOwnersPathRule): boolean {