@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
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Multi-value HMAC secret cases shared by the July and control-plane
3
+ * suites, so both sides split a named secret and admit a delivery the same
4
+ * way.
5
+ *
6
+ * Pure data: server-shared loads this module without importing July runtime
7
+ * code into the control plane.
8
+ */
9
+ export const HMAC_SECRET_VECTOR_BODY = '{"event":{"id":"evt-1"}}';
10
+ const thirtyTwo = [
11
+ "secret-0",
12
+ ...Array.from({ length: 31 }, (_, index) => `secret-${index + 1}`),
13
+ ];
14
+ const thirtyThree = [...thirtyTwo, "secret-32"];
15
+ export const HMAC_SECRET_PARSE_VECTORS = [
16
+ { name: "empty value", raw: "", expected: "unset" },
17
+ { name: "single value is used byte-for-byte", raw: " alpha ", expected: [" alpha "] },
18
+ { name: "two values", raw: "alpha\nbeta", expected: ["alpha", "beta"] },
19
+ { name: "CRLF and lone CR", raw: "alpha\r\nbeta\rgamma", expected: ["alpha", "beta", "gamma"] },
20
+ {
21
+ name: "trims each line and drops blank lines",
22
+ raw: "\n alpha \n\n\t\nbeta\t\n",
23
+ expected: ["alpha", "beta"],
24
+ },
25
+ { name: "single value with a trailing newline", raw: "alpha\n", expected: ["alpha"] },
26
+ { name: "only blank lines", raw: "\n \n\t\n", expected: "unset" },
27
+ { name: "exactly the cap", raw: thirtyTwo.join("\n"), expected: thirtyTwo },
28
+ { name: "one over the cap", raw: thirtyThree.join("\n"), expected: "too_many_values" },
29
+ ];
30
+ export const HMAC_SECRET_MATCH_VECTORS = [
31
+ {
32
+ name: "single secret, single signature",
33
+ secretValue: "alpha",
34
+ entries: [{ signWith: "alpha" }],
35
+ prefix: "sha256=",
36
+ admits: true,
37
+ },
38
+ {
39
+ name: "second of two secrets verifies",
40
+ secretValue: "alpha\nbeta",
41
+ entries: [{ signWith: "beta" }],
42
+ prefix: "sha256=",
43
+ admits: true,
44
+ },
45
+ {
46
+ name: "secret absent from the list",
47
+ secretValue: "alpha\nbeta",
48
+ entries: [{ signWith: "gamma" }],
49
+ prefix: "sha256=",
50
+ admits: false,
51
+ },
52
+ {
53
+ name: "a listed secret's line is matched trimmed",
54
+ secretValue: "alpha\n beta \n",
55
+ entries: [{ signWith: "beta" }],
56
+ prefix: "sha256=",
57
+ admits: true,
58
+ },
59
+ {
60
+ name: "any signature under any secret",
61
+ secretValue: "alpha\nbeta",
62
+ entries: [{ signWith: "gamma" }, { literal: "v1=zz" }, { signWith: "beta" }],
63
+ prefix: "v1=",
64
+ separator: ",",
65
+ admits: true,
66
+ },
67
+ {
68
+ name: "no signature under any secret",
69
+ secretValue: "alpha\nbeta",
70
+ entries: [{ signWith: "gamma" }, { signWith: "delta" }],
71
+ prefix: "v1=",
72
+ separator: ",",
73
+ admits: false,
74
+ },
75
+ {
76
+ name: "a whole multi-line value is never itself the key",
77
+ secretValue: "alpha\nbeta",
78
+ entries: [{ signWith: "alpha\nbeta" }],
79
+ prefix: "sha256=",
80
+ admits: false,
81
+ },
82
+ {
83
+ name: "over the cap admits nothing, even a listed secret",
84
+ secretValue: thirtyThree.join("\n"),
85
+ entries: [{ signWith: "secret-0" }],
86
+ prefix: "sha256=",
87
+ admits: false,
88
+ },
89
+ ];
@@ -0,0 +1,42 @@
1
+ /**
2
+ * PagerDuty v3 webhook continuation fixtures shared by the two continuation
3
+ * vocabulary copies: `internal/continuation-identity.ts` (BDK) and the
4
+ * control plane's `agentSdkConversationIdentity.ts` (server-shared). Both
5
+ * suites import this module, so a payload shape or key format that only one
6
+ * copy understands fails CI on the other side.
7
+ *
8
+ * Pure data and payload builders: no imports, so the server-shared suite
9
+ * can load it by relative path without pulling `@cursor/bdk` into the
10
+ * control plane.
11
+ */
12
+ export interface PagerDutyContinuationFixture {
13
+ name: string;
14
+ eventType: string;
15
+ payload: Record<string, unknown>;
16
+ /** `cont:` key, or `undefined` when the delivery stamps `evt:`. */
17
+ expectedKey: string | undefined;
18
+ }
19
+ /** The deployment's own PagerDuty user in these fixtures. */
20
+ export declare const PAGERDUTY_FIXTURE_SELF_USER_ID = "PBOT001";
21
+ export declare const PAGERDUTY_FIXTURE_HUMAN_USER_ID = "PHUM001";
22
+ export declare function pagerDutyUserReference(id: string): Record<string, unknown>;
23
+ export declare function pagerDutyIncidentData(input: {
24
+ id: string;
25
+ incidentKey: string | null;
26
+ status?: string;
27
+ number?: number;
28
+ }): Record<string, unknown>;
29
+ export declare function pagerDutyIncidentReference(input: {
30
+ id: string;
31
+ incidentKey?: string;
32
+ }): Record<string, unknown>;
33
+ /** One signed v3 delivery body: `{ event: { … } }`. */
34
+ export declare function pagerDutyWebhookBody(input: {
35
+ eventType: string;
36
+ data: Record<string, unknown> | null;
37
+ resourceType?: string;
38
+ agentId?: string | null;
39
+ eventId?: string;
40
+ }): Record<string, unknown>;
41
+ export declare const PAGERDUTY_CONTINUATION_FIXTURES: readonly PagerDutyContinuationFixture[];
42
+ //# sourceMappingURL=pagerduty-continuation-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagerduty-continuation-fixtures.d.ts","sourceRoot":"","sources":["../../../src/internal/testing/pagerduty-continuation-fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,mEAAmE;IACnE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAeD,6DAA6D;AAC7D,eAAO,MAAM,8BAA8B,YAAY,CAAC;AACxD,eAAO,MAAM,+BAA+B,YAAY,CAAC;AAEzD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO1E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoB1B;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAY1B;AAED,uDAAuD;AACvD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAe1B;AAID,eAAO,MAAM,+BAA+B,EAAE,SAAS,4BAA4B,EA0FlF,CAAC"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * PagerDuty v3 webhook continuation fixtures shared by the two continuation
3
+ * vocabulary copies: `internal/continuation-identity.ts` (BDK) and the
4
+ * control plane's `agentSdkConversationIdentity.ts` (server-shared). Both
5
+ * suites import this module, so a payload shape or key format that only one
6
+ * copy understands fails CI on the other side.
7
+ *
8
+ * Pure data and payload builders: no imports, so the server-shared suite
9
+ * can load it by relative path without pulling `@cursor/bdk` into the
10
+ * control plane.
11
+ */
12
+ const SERVICE = {
13
+ id: "PSVC001",
14
+ type: "service_reference",
15
+ summary: "checkout-api",
16
+ html_url: "https://acme.pagerduty.com/service-directory/PSVC001",
17
+ };
18
+ const ESCALATION_POLICY = {
19
+ id: "PPOL001",
20
+ type: "escalation_policy_reference",
21
+ summary: "checkout first responder",
22
+ };
23
+ /** The deployment's own PagerDuty user in these fixtures. */
24
+ export const PAGERDUTY_FIXTURE_SELF_USER_ID = "PBOT001";
25
+ export const PAGERDUTY_FIXTURE_HUMAN_USER_ID = "PHUM001";
26
+ export function pagerDutyUserReference(id) {
27
+ return {
28
+ id,
29
+ type: "user_reference",
30
+ summary: id === PAGERDUTY_FIXTURE_SELF_USER_ID ? "Responder bot" : "Dana Oncall",
31
+ html_url: `https://acme.pagerduty.com/users/${id}`,
32
+ };
33
+ }
34
+ export function pagerDutyIncidentData(input) {
35
+ return {
36
+ id: input.id,
37
+ type: "incident",
38
+ self: `https://api.pagerduty.com/incidents/${input.id}`,
39
+ html_url: `https://acme.pagerduty.com/incidents/${input.id}`,
40
+ number: input.number ?? 4012,
41
+ status: input.status ?? "triggered",
42
+ incident_key: input.incidentKey,
43
+ created_at: "2026-10-12T09:45:01Z",
44
+ title: "checkout-api error rate above 5%",
45
+ service: SERVICE,
46
+ escalation_policy: ESCALATION_POLICY,
47
+ assignees: [pagerDutyUserReference(PAGERDUTY_FIXTURE_SELF_USER_ID)],
48
+ teams: [{ id: "PTEAM01", type: "team_reference", summary: "Checkout" }],
49
+ priority: { id: "PPRI001", type: "priority_reference", summary: "P2" },
50
+ urgency: "high",
51
+ conference_bridge: null,
52
+ resolve_reason: null,
53
+ };
54
+ }
55
+ export function pagerDutyIncidentReference(input) {
56
+ const reference = {
57
+ id: input.id,
58
+ type: "incident_reference",
59
+ self: `https://api.pagerduty.com/incidents/${input.id}`,
60
+ html_url: `https://acme.pagerduty.com/incidents/${input.id}`,
61
+ summary: "checkout-api error rate above 5%",
62
+ };
63
+ if (input.incidentKey !== undefined) {
64
+ reference.incident_key = input.incidentKey;
65
+ }
66
+ return reference;
67
+ }
68
+ /** One signed v3 delivery body: `{ event: { … } }`. */
69
+ export function pagerDutyWebhookBody(input) {
70
+ return {
71
+ event: {
72
+ id: input.eventId ?? `01EVT${input.eventType.replace(/[^a-z]/g, "").toUpperCase()}`,
73
+ event_type: input.eventType,
74
+ resource_type: input.resourceType ?? "incident",
75
+ occurred_at: "2026-10-12T09:45:02.311Z",
76
+ agent: input.agentId === null
77
+ ? null
78
+ : pagerDutyUserReference(input.agentId ?? PAGERDUTY_FIXTURE_HUMAN_USER_ID),
79
+ client: { name: "PagerDuty" },
80
+ data: input.data,
81
+ },
82
+ };
83
+ }
84
+ const DEDUP_KEY = "datadog-monitor-81234567";
85
+ export const PAGERDUTY_CONTINUATION_FIXTURES = [
86
+ {
87
+ name: "triggered incident keys on its id",
88
+ eventType: "incident.triggered",
89
+ payload: pagerDutyWebhookBody({
90
+ eventType: "incident.triggered",
91
+ agentId: null,
92
+ data: pagerDutyIncidentData({ id: "PINC001", incidentKey: DEDUP_KEY }),
93
+ }),
94
+ expectedKey: "cont:pagerduty:incident:PINC001",
95
+ },
96
+ {
97
+ name: "a re-trigger after resolve is a new incident and a new lane",
98
+ eventType: "incident.triggered",
99
+ payload: pagerDutyWebhookBody({
100
+ eventType: "incident.triggered",
101
+ agentId: null,
102
+ data: pagerDutyIncidentData({ id: "PINC002", incidentKey: DEDUP_KEY, number: 4013 }),
103
+ }),
104
+ expectedKey: "cont:pagerduty:incident:PINC002",
105
+ },
106
+ {
107
+ name: "a lifecycle event by a person stays on the incident",
108
+ eventType: "incident.acknowledged",
109
+ payload: pagerDutyWebhookBody({
110
+ eventType: "incident.acknowledged",
111
+ data: pagerDutyIncidentData({
112
+ id: "PINC001",
113
+ incidentKey: DEDUP_KEY,
114
+ status: "acknowledged",
115
+ }),
116
+ }),
117
+ expectedKey: "cont:pagerduty:incident:PINC001",
118
+ },
119
+ {
120
+ name: "an incident with no dedup key keys on its id",
121
+ eventType: "incident.triggered",
122
+ payload: pagerDutyWebhookBody({
123
+ eventType: "incident.triggered",
124
+ data: pagerDutyIncidentData({ id: "PMAN001", incidentKey: null }),
125
+ }),
126
+ expectedKey: "cont:pagerduty:incident:PMAN001",
127
+ },
128
+ {
129
+ name: "a note joins the incident it names, not the note id",
130
+ eventType: "incident.annotated",
131
+ payload: pagerDutyWebhookBody({
132
+ eventType: "incident.annotated",
133
+ data: {
134
+ id: "PNOTE01",
135
+ type: "incident_note",
136
+ content: "Rolled back the 09:30 deploy.",
137
+ trimmed: false,
138
+ incident: pagerDutyIncidentReference({ id: "PINC001" }),
139
+ },
140
+ }),
141
+ expectedKey: "cont:pagerduty:incident:PINC001",
142
+ },
143
+ {
144
+ name: "a responder event joins the incident it names",
145
+ eventType: "incident.responder.added",
146
+ payload: pagerDutyWebhookBody({
147
+ eventType: "incident.responder.added",
148
+ data: {
149
+ type: "incident_responder",
150
+ user: pagerDutyUserReference("PDBA001"),
151
+ escalation_policy: ESCALATION_POLICY,
152
+ message: "Please join the database investigation.",
153
+ state: "pending",
154
+ incident: pagerDutyIncidentReference({ id: "PINC001" }),
155
+ },
156
+ }),
157
+ expectedKey: "cont:pagerduty:incident:PINC001",
158
+ },
159
+ {
160
+ name: "a service event is outside the incident membership",
161
+ eventType: "service.updated",
162
+ payload: pagerDutyWebhookBody({
163
+ eventType: "service.updated",
164
+ resourceType: "service",
165
+ data: { ...SERVICE, type: "service" },
166
+ }),
167
+ expectedKey: undefined,
168
+ },
169
+ {
170
+ name: "an incident event without incident data stamps evt:",
171
+ eventType: "incident.triggered",
172
+ payload: pagerDutyWebhookBody({ eventType: "incident.triggered", data: null }),
173
+ expectedKey: undefined,
174
+ },
175
+ ];
@@ -12,7 +12,7 @@
12
12
  * installed (global npm/pnpm/yarn/bun, or a project dependency), and runs the
13
13
  * matching install command.
14
14
  */
15
- import { z } from "zod/v3";
15
+ import * as z from "zod/v4";
16
16
  /**
17
17
  * Semver-style ordering: negative when `a < b`, 0 when equal, positive when
18
18
  * `a > b`. Unparseable versions compare equal (never warn on garbage).
@@ -30,7 +30,7 @@ export declare function fetchLatestPublishedVersion(options?: {
30
30
  declare const cacheSchema: z.ZodObject<{
31
31
  checkedAt: z.ZodNumber;
32
32
  latestVersion: z.ZodOptional<z.ZodString>;
33
- }, "strip">;
33
+ }>;
34
34
  export type UpdateCheckCache = z.infer<typeof cacheSchema>;
35
35
  export declare function updateCheckCachePath(configDir?: string): string;
36
36
  export declare function readUpdateCheckCache(configDir?: string): Promise<UpdateCheckCache | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/internal/update-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AA2C3B;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA0C5D;AAQD;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,CAAC,EAAE;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAqB9B;AAMD,QAAA,MAAM,WAAW,EAAE,CAAC,CAAC,SAAS,CAC5B;IAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC;IAAC,aAAa,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;CAAE,EACrE,OAAO,CAMP,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAsB,oBAAoB,CACxC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAavC;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,gBAAgB,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAQf;AAMD,MAAM,WAAW,qBAAqB;IACpC,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,wCAAwC;IACxC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCnF;AAUD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA8DrC;AA4ED,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,iFAAiF;AACjF,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D3E"}
1
+ {"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/internal/update-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AA2C5B;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA0C5D;AAQD;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,CAAC,EAAE;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAqB9B;AAMD,QAAA,MAAM,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC;IAC7B,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC;IACvB,aAAa,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CAC3C,CAKC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAsB,oBAAoB,CACxC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAavC;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,gBAAgB,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAQf;AAMD,MAAM,WAAW,qBAAqB;IACpC,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,wCAAwC;IACxC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCnF;AAUD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA8DrC;AA4ED,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,iFAAiF;AACjF,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D3E"}
@@ -15,7 +15,7 @@
15
15
  import { spawn } from "node:child_process";
16
16
  import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
17
17
  import { dirname, join, sep } from "node:path";
18
- import { z } from "zod/v3";
18
+ import * as z from "zod/v4";
19
19
  import { configDirPath } from "./cursor/credentials.js";
20
20
  import { describeError } from "./describe-error.js";
21
21
  import { CLI_COMMAND_NAME, isCompiledDistribution, PACKAGE_NAME, packageRootDir, packageVersion, } from "./distribution.js";
@@ -295,8 +295,8 @@ async function declaresDependency(dir, packageName) {
295
295
  return false;
296
296
  }
297
297
  const manifestSchema = z.object({
298
- dependencies: z.record(z.string()).optional(),
299
- devDependencies: z.record(z.string()).optional(),
298
+ dependencies: z.record(z.string(), z.string()).optional(),
299
+ devDependencies: z.record(z.string(), z.string()).optional(),
300
300
  });
301
301
  try {
302
302
  const parsed = manifestSchema.safeParse(JSON.parse(raw));
@@ -0,0 +1,14 @@
1
+ import type { ZodSchema, ZodV4Schema } from "../types.js";
2
+ /**
3
+ * Authored schemas can come from a different zod copy than this package's,
4
+ * so the version check is structural (`_zod` marks zod 4), never
5
+ * `instanceof`.
6
+ */
7
+ export declare function isZodV4Schema(schema: ZodSchema): schema is ZodV4Schema;
8
+ /**
9
+ * `io: "input"` for data a caller sends in (fields with a default stay
10
+ * optional); `io: "output"` for data this side sends out. Unrepresentable
11
+ * types become `{}` rather than failing discovery, as the zod 3 converter did.
12
+ */
13
+ export declare function zodV4ToJsonSchema(schema: ZodV4Schema, io: "input" | "output"): Record<string, unknown>;
14
+ //# sourceMappingURL=zod-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-schema.d.ts","sourceRoot":"","sources":["../../src/internal/zod-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,WAAW,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,OAAO,GAAG,QAAQ,GACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB"}
@@ -0,0 +1,22 @@
1
+ import * as z4core from "zod/v4/core";
2
+ /**
3
+ * Authored schemas can come from a different zod copy than this package's,
4
+ * so the version check is structural (`_zod` marks zod 4), never
5
+ * `instanceof`.
6
+ */
7
+ export function isZodV4Schema(schema) {
8
+ return "_zod" in schema;
9
+ }
10
+ /**
11
+ * `io: "input"` for data a caller sends in (fields with a default stay
12
+ * optional); `io: "output"` for data this side sends out. Unrepresentable
13
+ * types become `{}` rather than failing discovery, as the zod 3 converter did.
14
+ */
15
+ export function zodV4ToJsonSchema(schema, io) {
16
+ const params = { io, unrepresentable: "any" };
17
+ // Classic schemas carry their own converter; mini schemas do not.
18
+ const converted = "toJSONSchema" in schema && typeof schema.toJSONSchema === "function"
19
+ ? schema.toJSONSchema(params)
20
+ : z4core.toJSONSchema(schema, params);
21
+ return converted;
22
+ }
@@ -0,0 +1,12 @@
1
+ import * as z from "zod/v4";
2
+ /**
3
+ * The datetime check of zod 3's `z.string().datetime()`. zod 4 refuses times
4
+ * without seconds and, with `offset`, `+HHMM` offsets; models and people still
5
+ * type both. Use it for values a person or a model writes; a value that only
6
+ * `toISOString()` writes can keep `z.iso.datetime()`.
7
+ */
8
+ export declare function zod3Datetime(options?: {
9
+ offset?: boolean;
10
+ message?: string;
11
+ }): z.ZodString;
12
+ //# sourceMappingURL=zod3-datetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod3-datetime.d.ts","sourceRoot":"","sources":["../../src/internal/zod3-datetime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAM5B;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,CAAC,CAAC,SAAS,CAM9F"}
@@ -0,0 +1,17 @@
1
+ import * as z from "zod/v4";
2
+ const DATE = z.regexes.date.source.slice(1, -1);
3
+ const TIME = String.raw `(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?`;
4
+ const OFFSET = String.raw `[+-]\d{2}:?\d{2}`;
5
+ /**
6
+ * The datetime check of zod 3's `z.string().datetime()`. zod 4 refuses times
7
+ * without seconds and, with `offset`, `+HHMM` offsets; models and people still
8
+ * type both. Use it for values a person or a model writes; a value that only
9
+ * `toISOString()` writes can keep `z.iso.datetime()`.
10
+ */
11
+ export function zod3Datetime(options = {}) {
12
+ const zone = options.offset === true ? `(?:Z|${OFFSET})` : "Z";
13
+ return z
14
+ .string()
15
+ .regex(new RegExp(`^${DATE}T${TIME}${zone}$`), options.message ?? "Invalid datetime")
16
+ .meta({ format: "date-time" });
17
+ }
@@ -1,7 +1,6 @@
1
1
  /**
2
- * Public `@cursor/bdk/otel` surface: types and W3C `traceparent`
3
- * helpers. `defineOtel` is `@cursor/bdk/internal/otel`.
2
+ * Public `@cursor/bdk/otel` surface.
4
3
  */
5
- export type { OtelConfig, OtelConfigFactory, OtelDefinition, OtelExporterConfig, OtelLogOptions, OtelMetricOptions, OtelSignal, OtelTraceOptions, } from "./otel.js";
6
4
  export { activeTraceparent, BACKEND_TRACEPARENT_HEADER, formatTraceparent, injectActiveTraceContext, installOutboundFetchInstrumentation, instrumentedFetch, TRACEPARENT_HEADER, } from "./otel.js";
5
+ export { currentConversationId } from "./internal/otel/conversation-span-processor.js";
7
6
  //# sourceMappingURL=otel-public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"otel-public.d.ts","sourceRoot":"","sources":["../src/otel-public.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,mCAAmC,EACnC,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"otel-public.d.ts","sourceRoot":"","sources":["../src/otel-public.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,mCAAmC,EACnC,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Public `@cursor/bdk/otel` surface: types and W3C `traceparent`
3
- * helpers. `defineOtel` is `@cursor/bdk/internal/otel`.
2
+ * Public `@cursor/bdk/otel` surface.
4
3
  */
5
4
  export { activeTraceparent, BACKEND_TRACEPARENT_HEADER, formatTraceparent, injectActiveTraceContext, installOutboundFetchInstrumentation, instrumentedFetch, TRACEPARENT_HEADER, } from "./otel.js";
5
+ export { currentConversationId } from "./internal/otel/conversation-span-processor.js";
package/dist/otel.d.ts CHANGED
@@ -1,106 +1,7 @@
1
1
  /**
2
- * OpenTelemetry for Agent SDK — author `agent/otel.ts`, pass `serve({ otel })`,
3
- * or set `OTEL_EXPORTER_OTLP_ENDPOINT` (standard OTel env).
4
- *
5
- * ```ts
6
- * import { defineOtel } from "@cursor/bdk/internal/otel";
7
- *
8
- * export default defineOtel({
9
- * serviceName: "cursor",
10
- * exporters: [{ url: "https://otel.example.com", protocol: "http/protobuf" }],
11
- * });
12
- *
13
- * export default defineOtel(() => resolveMyOtelConfig());
14
- * ```
15
- *
16
- * Internal only: Cursor factory agents. Not a public Agent SDK export.
17
- */
18
- export type OtelSignal = "traces" | "metrics" | "logs";
19
- /** One OTLP destination. Multiple entries fan out. */
20
- export interface OtelExporterConfig {
21
- /**
22
- * OTLP base URL (`https://otel.example.com`) or signal path
23
- * (`…/v1/traces`). Signal paths are stripped to the base; the runtime
24
- * re-appends `/v1/{signal}`.
25
- */
26
- url: string;
27
- /** Extra HTTP headers (merged with `OTEL_EXPORTER_OTLP_HEADERS`). */
28
- headers?: Record<string, string>;
29
- /**
30
- * Wire format. Default `http/protobuf` (matches Cursor enterprise OTLP).
31
- * Use `http/json` for collectors that only accept JSON.
32
- */
33
- protocol?: "http/json" | "http/protobuf";
34
- /**
35
- * Restrict this destination to these signals. Default: all enabled
36
- * signals. Set by env when per-signal `OTEL_EXPORTER_OTLP_*_ENDPOINT`
37
- * vars differ.
38
- */
39
- signals?: OtelSignal[];
40
- }
41
- export interface OtelTraceOptions {
42
- /** Sample ratio in `[0, 1]`. Default `1`. */
43
- sampleRatio?: number;
44
- }
45
- export interface OtelMetricOptions {
46
- /** Export interval in ms. Default `10000`. */
47
- exportIntervalMillis?: number;
48
- }
49
- export interface OtelLogOptions {
50
- /**
51
- * Include user prompt text on log records / span events.
52
- * Default false; also toggled by `OTEL_LOG_USER_PROMPTS=1`.
53
- */
54
- userPrompts?: boolean;
55
- /**
56
- * Include tool argument / result payloads and failure text (truncated).
57
- * Default false; also `OTEL_LOG_TOOL_CONTENT=1`.
58
- */
59
- toolContent?: boolean;
60
- }
61
- /**
62
- * Authored / programmatic OTel config. Empty config still enables when
63
- * standard `OTEL_EXPORTER_OTLP_*` env vars are set.
64
- */
65
- export interface OtelConfig {
66
- /**
67
- * Resource `service.name`. Default: `OTEL_SERVICE_NAME` or `"cursor"`
68
- * (same as enterprise export) so Agent SDK signals join org streams.
69
- */
70
- serviceName?: string;
71
- /** Resource `service.version`. */
72
- serviceVersion?: string;
73
- /** Extra resource attributes on every signal. */
74
- resourceAttributes?: Record<string, string>;
75
- /**
76
- * OTLP destinations. Default: from `OTEL_EXPORTER_OTLP_ENDPOINT` /
77
- * per-signal `*_TRACES_ENDPOINT` etc. Empty with no env = disabled.
78
- */
79
- exporters?: OtelExporterConfig[];
80
- /** Traces on/off or options. Default on. */
81
- traces?: boolean | OtelTraceOptions;
82
- /** Metrics on/off or options. Default on. */
83
- metrics?: boolean | OtelMetricOptions;
84
- /** Logs on/off or options. Default off (opt-in content). */
85
- logs?: boolean | OtelLogOptions;
86
- }
87
- export type OtelDefinition = OtelConfig & {
88
- readonly __agentServe: "otel";
89
- };
90
- /** Re-read authored config on each hosted request, after secrets load. */
91
- export type OtelConfigFactory = () => OtelConfig;
92
- /**
93
- * Hidden factory on {@link OtelDefinition}. Not enumerable so
94
- * `pickAuthoredOtel` compares the bake-time snapshot, not the thunk.
95
- */
96
- export declare const OTEL_CONFIG_RESOLVE: symbol;
97
- /**
98
- * Author OpenTelemetry export under `agent/otel.ts`.
99
- * Import from `@cursor/bdk/internal/otel`, not `@cursor/bdk`.
2
+ * W3C `traceparent` helpers for outbound calls.
3
+ * Set `OTEL_*` variables. There is no instrumentation file.
100
4
  */
101
- export declare function defineOtel(config?: OtelConfig | OtelConfigFactory): OtelDefinition;
102
- /** Invoke a `defineOtel(() => …)` factory, or return the static snapshot. */
103
- export declare function resolveOtelDefinition(def: OtelConfig): OtelConfig;
104
5
  export declare const TRACEPARENT_HEADER = "traceparent";
105
6
  /** Cursor backend prefers this; `remoteSpanContextFromRequest` falls back to W3C. */
106
7
  export declare const BACKEND_TRACEPARENT_HEADER = "backend-traceparent";
@@ -125,6 +26,6 @@ export declare function injectActiveTraceContext(headers: {
125
26
  /** W3C `traceparent` for the active span, or undefined if none. */
126
27
  export declare function activeTraceparent(): string | undefined;
127
28
  export declare function instrumentedFetch(base?: typeof fetch): typeof fetch;
128
- /** Idempotent. Safe to call from `createOtelRuntime` on every serve. */
29
+ /** Idempotent. Safe to call on every serve. */
129
30
  export declare function installOutboundFetchInstrumentation(): void;
130
31
  //# sourceMappingURL=otel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvD,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,eAAe,CAAC;IACzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;IACpC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IACtC,4DAA4D;IAC5D,IAAI,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;CACjC;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAwD,CAAC;AAE3F;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,GAAE,UAAU,GAAG,iBAAsB,GAAG,cAAc,CAUtF;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAUjE;AAuDD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAEhE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,GAAG,SAAS,CAOrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,GAAG,IAAI,CAWP;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAItD;AAqBD,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,OAAO,KAAa,GAAG,OAAO,KAAK,CAQ1E;AAID,wEAAwE;AACxE,wBAAgB,mCAAmC,IAAI,IAAI,CAO1D"}
1
+ {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAEhE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,GAAG,SAAS,CAOrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,GAAG,IAAI,CAWP;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAItD;AAoBD,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,OAAO,KAAa,GAAG,OAAO,KAAK,CAS1E;AAiED,+CAA+C;AAC/C,wBAAgB,mCAAmC,IAAI,IAAI,CAO1D"}