@cursor/bdk 0.2.24 → 0.2.25

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 (290) hide show
  1. package/AGENTS.md +1 -0
  2. package/dist/bin/agent-serve.d.ts +1 -1
  3. package/dist/bin/agent-serve.js +48 -12
  4. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +3 -2
  5. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  6. package/dist/channels/bitbucket/bitbucket-webhook.js +14 -9
  7. package/dist/channels/github/github-channel.d.ts.map +1 -1
  8. package/dist/channels/github/github-channel.js +9 -18
  9. package/dist/channels/pagerduty/api.d.ts +74 -0
  10. package/dist/channels/pagerduty/api.d.ts.map +1 -0
  11. package/dist/channels/pagerduty/api.js +101 -0
  12. package/dist/channels/pagerduty/defaults.d.ts +42 -0
  13. package/dist/channels/pagerduty/defaults.d.ts.map +1 -0
  14. package/dist/channels/pagerduty/defaults.js +132 -0
  15. package/dist/channels/pagerduty/events.d.ts +24 -0
  16. package/dist/channels/pagerduty/events.d.ts.map +1 -0
  17. package/dist/channels/pagerduty/events.js +38 -0
  18. package/dist/channels/pagerduty/index.d.ts +31 -0
  19. package/dist/channels/pagerduty/index.d.ts.map +1 -0
  20. package/dist/channels/pagerduty/index.js +30 -0
  21. package/dist/channels/pagerduty/pagerduty-channel.d.ts +64 -0
  22. package/dist/channels/pagerduty/pagerduty-channel.d.ts.map +1 -0
  23. package/dist/channels/pagerduty/pagerduty-channel.js +195 -0
  24. package/dist/channels/pagerduty/pagerduty-webhook.d.ts +70 -0
  25. package/dist/channels/pagerduty/pagerduty-webhook.d.ts.map +1 -0
  26. package/dist/channels/pagerduty/pagerduty-webhook.js +280 -0
  27. package/dist/channels/pagerduty/payload.d.ts +33 -0
  28. package/dist/channels/pagerduty/payload.d.ts.map +1 -0
  29. package/dist/channels/pagerduty/payload.js +150 -0
  30. package/dist/channels/pagerduty/replay.d.ts +35 -0
  31. package/dist/channels/pagerduty/replay.d.ts.map +1 -0
  32. package/dist/channels/pagerduty/replay.js +115 -0
  33. package/dist/channels/pagerduty/secrets.d.ts +16 -0
  34. package/dist/channels/pagerduty/secrets.d.ts.map +1 -0
  35. package/dist/channels/pagerduty/secrets.js +23 -0
  36. package/dist/channels/pagerduty/self-user.d.ts +51 -0
  37. package/dist/channels/pagerduty/self-user.d.ts.map +1 -0
  38. package/dist/channels/pagerduty/self-user.js +157 -0
  39. package/dist/channels/pagerduty/state.d.ts +31 -0
  40. package/dist/channels/pagerduty/state.d.ts.map +1 -0
  41. package/dist/channels/pagerduty/state.js +30 -0
  42. package/dist/channels/pagerduty/types.d.ts +217 -0
  43. package/dist/channels/pagerduty/types.d.ts.map +1 -0
  44. package/dist/channels/pagerduty/types.js +1 -0
  45. package/dist/channels.d.ts +6 -0
  46. package/dist/channels.d.ts.map +1 -1
  47. package/dist/channels.js +11 -23
  48. package/dist/docs/404.html +2 -2
  49. package/dist/docs/assets/{app.DTIg0uKK.js → app.BjS1QEI4.js} +4 -4
  50. package/dist/docs/assets/chunks/@localSearchIndexroot.oGqZumnJ.js +1 -0
  51. package/dist/docs/assets/chunks/{VPLocalSearchBox.BpJoSaxi.js → VPLocalSearchBox.BOuvjb5Y.js} +1 -1
  52. package/dist/docs/assets/chunks/{arc.ylgNvRNq.js → arc.3WR6Jf-y.js} +1 -1
  53. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.BMrNJqYk.js → architectureDiagram-Q4EWVU46.Dtb6Dqh6.js} +1 -1
  54. package/dist/docs/assets/chunks/{baseUniq.BBWUEqf9.js → baseUniq.BUyrgrZE.js} +1 -1
  55. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DFMu-Vza.js → blockDiagram-DXYQGD6D.BVLV_voZ.js} +1 -1
  56. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.8nkAAxWv.js → c4Diagram-AHTNJAMY.jXJ1q70M.js} +1 -1
  57. package/dist/docs/assets/chunks/channel.Dt4aweTm.js +1 -0
  58. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.sO-z2Bag.js → chunk-4BX2VUAB.zz1SMBvK.js} +1 -1
  59. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.BMROzTMq.js → chunk-4TB4RGXK.CzYKuv3I.js} +1 -1
  60. package/dist/docs/assets/chunks/{chunk-55IACEB6.X81urwg7.js → chunk-55IACEB6.C7_tcJZD.js} +1 -1
  61. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.eaZVFLZM.js → chunk-EDXVE4YY.DeTwQPVO.js} +1 -1
  62. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CmZhzstR.js → chunk-FMBD7UC4.DhMTl7ut.js} +1 -1
  63. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CTezt9Lc.js → chunk-OYMX7WX6.Me7f5hEp.js} +1 -1
  64. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.s-T8zukB.js → chunk-QZHKN3VN.D0E0Bb6g.js} +1 -1
  65. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.DN4Nhy-D.js → chunk-YZCP3GAM.CdOOBFYL.js} +1 -1
  66. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DGUHZs6j.js +1 -0
  67. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DGUHZs6j.js +1 -0
  68. package/dist/docs/assets/chunks/clone.DWf3k0Z0.js +1 -0
  69. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Cqyp4BUH.js → cose-bilkent-S5V4N54A.BNbGESzN.js} +1 -1
  70. package/dist/docs/assets/chunks/{dagre-KV5264BT.BIECOiqR.js → dagre-KV5264BT.zU7Lu_xJ.js} +1 -1
  71. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.1tLyWoTg.js → diagram-5BDNPKRD.B9qOdE5h.js} +1 -1
  72. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.BVY_6VMO.js → diagram-G4DWMVQ6.D8X-sf77.js} +1 -1
  73. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BSZ7xiBB.js → diagram-MMDJMWI5.CW7MvMlE.js} +1 -1
  74. package/dist/docs/assets/chunks/{diagram-TYMM5635.Bho6GmLh.js → diagram-TYMM5635.J489G0Nd.js} +1 -1
  75. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.A0yVIANn.js → erDiagram-SMLLAGMA.BkW7tGfs.js} +1 -1
  76. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.ZMgbllH6.js → flowDiagram-DWJPFMVM.jc9iWORD.js} +1 -1
  77. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.BCCPBhXo.js → ganttDiagram-T4ZO3ILL.B-UQfd9E.js} +1 -1
  78. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.BOkL0BbA.js → gitGraphDiagram-UUTBAWPF.DFzrTSlJ.js} +1 -1
  79. package/dist/docs/assets/chunks/{graph.DMyZPu86.js → graph.C5IB6_e_.js} +1 -1
  80. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.CjG1IiEw.js → infoDiagram-42DDH7IO.DwF0-c8L.js} +1 -1
  81. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.UCe-kq9g.js → ishikawaDiagram-UXIWVN3A.fBaTqzE7.js} +1 -1
  82. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.3WyOK_eY.js → journeyDiagram-VCZTEJTY.CM8gDVJy.js} +1 -1
  83. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.WoRG2qY1.js → kanban-definition-6JOO6SKY.YiD1p0LB.js} +1 -1
  84. package/dist/docs/assets/chunks/{layout.DV07xDd5.js → layout.6Um-DVJT.js} +1 -1
  85. package/dist/docs/assets/chunks/{linear.CTO8mN6o.js → linear.DcTeg4Hn.js} +1 -1
  86. package/dist/docs/assets/chunks/{min.SvTtcKuZ.js → min.CIxkY8Fe.js} +1 -1
  87. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.DMGgQ-HB.js → mindmap-definition-QFDTVHPH.D4QM_voR.js} +1 -1
  88. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B7851apI.js → pieDiagram-DEJITSTG.nmB309G1.js} +1 -1
  89. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CEqyypIX.js → quadrantDiagram-34T5L4WZ.D1HtZR3C.js} +1 -1
  90. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.C3Mwsw-H.js → requirementDiagram-MS252O5E.CZgQWob-.js} +1 -1
  91. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DyYK0XxY.js → sankeyDiagram-XADWPNL6.DtiBfU-P.js} +1 -1
  92. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.SiQPH-XM.js → sequenceDiagram-FGHM5R23.Cld4gDSt.js} +1 -1
  93. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.CTJMsP4p.js → stateDiagram-FHFEXIEX.DatP823_.js} +1 -1
  94. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C0571l4D.js +1 -0
  95. package/dist/docs/assets/chunks/{theme.DJo4my9R.js → theme.D5jbBys7.js} +2 -2
  96. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.CxSNRlQ6.js → timeline-definition-GMOUNBTQ.DwQLI2be.js} +1 -1
  97. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BdoJskyD.js → vennDiagram-DHZGUBPP.a5yMfnsa.js} +1 -1
  98. package/dist/docs/assets/chunks/wardley-RL74JXVD.B-FXivgT.js +162 -0
  99. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.IjIbFn_F.js → wardleyDiagram-NUSXRM2D.Dz--Opy3.js} +1 -1
  100. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CPUxDZLH.js → xychartDiagram-5P7HB3ND.Dl8w8TeT.js} +1 -1
  101. package/dist/docs/assets/{guides_opentelemetry.md.Ck1o2frw.js → guides_opentelemetry.md.DBQtp7_V.js} +4 -4
  102. package/dist/docs/assets/{guides_opentelemetry.md.Ck1o2frw.lean.js → guides_opentelemetry.md.DBQtp7_V.lean.js} +1 -1
  103. package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.js +60 -0
  104. package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.lean.js +1 -0
  105. package/dist/docs/assets/{reference_channels.md.DYg0CLud.js → reference_channels.md.Bxaa020x.js} +1 -1
  106. package/dist/docs/assets/{reference_cli.md.DB7Llw3T.js → reference_cli.md.1o_TqKdt.js} +7 -2
  107. package/dist/docs/assets/{reference_cli.md.DB7Llw3T.lean.js → reference_cli.md.1o_TqKdt.lean.js} +1 -1
  108. package/dist/docs/assets/{reference_tools.md.08XR7lIl.js → reference_tools.md.-6pypsWt.js} +1 -1
  109. package/dist/docs/building-with-agents.html +35 -35
  110. package/dist/docs/deployment.html +35 -35
  111. package/dist/docs/evals.html +35 -35
  112. package/dist/docs/guides/agent-to-agent.html +35 -35
  113. package/dist/docs/guides/bitbucket.html +36 -36
  114. package/dist/docs/guides/cloud-agents.html +35 -35
  115. package/dist/docs/guides/convert-automation.html +35 -35
  116. package/dist/docs/guides/export-grokbot.html +35 -35
  117. package/dist/docs/guides/github.html +35 -35
  118. package/dist/docs/guides/gitlab.html +35 -35
  119. package/dist/docs/guides/grokbot-agents.html +35 -35
  120. package/dist/docs/guides/hooks.html +35 -35
  121. package/dist/docs/guides/improve.html +35 -35
  122. package/dist/docs/guides/jev.html +35 -35
  123. package/dist/docs/guides/mcp-oauth.html +35 -35
  124. package/dist/docs/guides/migrate.html +35 -35
  125. package/dist/docs/guides/opentelemetry.html +39 -39
  126. package/dist/docs/guides/opentelemetry.md +10 -5
  127. package/dist/docs/guides/pagerduty.html +119 -0
  128. package/dist/docs/guides/pagerduty.md +336 -0
  129. package/dist/docs/guides/slack.html +35 -35
  130. package/dist/docs/guides/webhooks.html +35 -35
  131. package/dist/docs/hashmap.json +1 -1
  132. package/dist/docs/hillclimbing.html +35 -35
  133. package/dist/docs/index.html +35 -35
  134. package/dist/docs/llms-full.txt +381 -6
  135. package/dist/docs/llms.txt +1 -0
  136. package/dist/docs/quickstart.html +35 -35
  137. package/dist/docs/reference/agent-config.html +35 -35
  138. package/dist/docs/reference/artifacts.html +35 -35
  139. package/dist/docs/reference/channels.html +37 -37
  140. package/dist/docs/reference/channels.md +2 -1
  141. package/dist/docs/reference/cli.html +42 -37
  142. package/dist/docs/reference/cli.md +27 -0
  143. package/dist/docs/reference/connections.html +35 -35
  144. package/dist/docs/reference/evals.html +35 -35
  145. package/dist/docs/reference/extensions.html +36 -36
  146. package/dist/docs/reference/hooks.html +35 -35
  147. package/dist/docs/reference/http-api.html +35 -35
  148. package/dist/docs/reference/instructions.html +35 -35
  149. package/dist/docs/reference/memory.html +35 -35
  150. package/dist/docs/reference/playground.html +35 -35
  151. package/dist/docs/reference/project-layout.html +35 -35
  152. package/dist/docs/reference/prompt.html +35 -35
  153. package/dist/docs/reference/schedules.html +35 -35
  154. package/dist/docs/reference/sessions.html +35 -35
  155. package/dist/docs/reference/skills.html +35 -35
  156. package/dist/docs/reference/subagents.html +35 -35
  157. package/dist/docs/reference/tools.html +37 -37
  158. package/dist/docs/reference/tools.md +1 -0
  159. package/dist/docs/templates/agentic-owners.html +35 -35
  160. package/dist/docs/templates/grokbot-agents.html +35 -35
  161. package/dist/docs/templates/security-reviewer.html +35 -35
  162. package/dist/docs/templates/thermo-quality-review.html +35 -35
  163. package/dist/docs/templates/thermo-review.html +35 -35
  164. package/dist/docs/templates/triage.html +35 -35
  165. package/dist/docs/troubleshooting.html +35 -35
  166. package/dist/internal/approval-gate.d.ts +4 -2
  167. package/dist/internal/approval-gate.d.ts.map +1 -1
  168. package/dist/internal/approval-gate.js +2 -1
  169. package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -1
  170. package/dist/internal/builtin-tools/artifacts.js +45 -12
  171. package/dist/internal/channel-architecture.d.ts +1 -1
  172. package/dist/internal/channel-architecture.d.ts.map +1 -1
  173. package/dist/internal/channel-architecture.js +4 -2
  174. package/dist/internal/cli-deploy.d.ts.map +1 -1
  175. package/dist/internal/cli-deploy.js +21 -12
  176. package/dist/internal/cli-pagerduty.d.ts +32 -0
  177. package/dist/internal/cli-pagerduty.d.ts.map +1 -0
  178. package/dist/internal/cli-pagerduty.js +242 -0
  179. package/dist/internal/continuation-channel.d.ts.map +1 -1
  180. package/dist/internal/continuation-channel.js +7 -0
  181. package/dist/internal/continuation-identity.d.ts +11 -3
  182. package/dist/internal/continuation-identity.d.ts.map +1 -1
  183. package/dist/internal/continuation-identity.js +83 -0
  184. package/dist/internal/deploy-manifest.d.ts +11 -4
  185. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  186. package/dist/internal/deploy-manifest.js +17 -5
  187. package/dist/internal/discovery/agent-config.d.ts.map +1 -1
  188. package/dist/internal/discovery/agent-config.js +10 -10
  189. package/dist/internal/discovery/agent.d.ts.map +1 -1
  190. package/dist/internal/discovery/agent.js +10 -10
  191. package/dist/internal/discovery/channels.d.ts.map +1 -1
  192. package/dist/internal/discovery/channels.js +20 -16
  193. package/dist/internal/discovery/context.d.ts +16 -0
  194. package/dist/internal/discovery/context.d.ts.map +1 -1
  195. package/dist/internal/discovery/context.js +66 -0
  196. package/dist/internal/discovery/extension-overlay.d.ts.map +1 -1
  197. package/dist/internal/discovery/extension-overlay.js +2 -6
  198. package/dist/internal/discovery/info.d.ts.map +1 -1
  199. package/dist/internal/discovery/info.js +3 -0
  200. package/dist/internal/discovery/instructions.d.ts.map +1 -1
  201. package/dist/internal/discovery/instructions.js +3 -6
  202. package/dist/internal/discovery/modules.d.ts.map +1 -1
  203. package/dist/internal/discovery/modules.js +3 -6
  204. package/dist/internal/discovery/project.d.ts +6 -0
  205. package/dist/internal/discovery/project.d.ts.map +1 -1
  206. package/dist/internal/discovery/project.js +27 -5
  207. package/dist/internal/discovery/runtime.d.ts.map +1 -1
  208. package/dist/internal/discovery/runtime.js +8 -8
  209. package/dist/internal/discovery.d.ts +1 -1
  210. package/dist/internal/discovery.d.ts.map +1 -1
  211. package/dist/internal/discovery.js +1 -1
  212. package/dist/internal/expected-delivery-failure.d.ts.map +1 -1
  213. package/dist/internal/expected-delivery-failure.js +6 -0
  214. package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -1
  215. package/dist/internal/filesystem/sdk-schemas.js +4 -3
  216. package/dist/internal/hmac-secret-values.d.ts +48 -0
  217. package/dist/internal/hmac-secret-values.d.ts.map +1 -0
  218. package/dist/internal/hmac-secret-values.js +68 -0
  219. package/dist/internal/host-platforms.d.ts.map +1 -1
  220. package/dist/internal/host-platforms.js +8 -2
  221. package/dist/internal/json-schema.d.ts +7 -7
  222. package/dist/internal/json-schema.d.ts.map +1 -1
  223. package/dist/internal/json-schema.js +13 -16
  224. package/dist/internal/otel/collector.d.ts.map +1 -1
  225. package/dist/internal/otel/collector.js +3 -1
  226. package/dist/internal/otel/config.d.ts +6 -1
  227. package/dist/internal/otel/config.d.ts.map +1 -1
  228. package/dist/internal/otel/config.js +27 -1
  229. package/dist/internal/otel/runtime.d.ts.map +1 -1
  230. package/dist/internal/otel/runtime.js +26 -3
  231. package/dist/internal/package-inline-stdio.d.ts.map +1 -1
  232. package/dist/internal/package-inline-stdio.js +21 -6
  233. package/dist/internal/sdk-runner.d.ts +2 -3
  234. package/dist/internal/sdk-runner.d.ts.map +1 -1
  235. package/dist/internal/sdk-runner.js +8 -4
  236. package/dist/internal/secret-alternatives.d.ts +11 -0
  237. package/dist/internal/secret-alternatives.d.ts.map +1 -0
  238. package/dist/internal/secret-alternatives.js +13 -0
  239. package/dist/internal/server.js +2 -2
  240. package/dist/internal/session-engine.d.ts.map +1 -1
  241. package/dist/internal/session-engine.js +5 -4
  242. package/dist/internal/sqlite-experimental-warning.d.ts +2 -0
  243. package/dist/internal/sqlite-experimental-warning.d.ts.map +1 -0
  244. package/dist/internal/sqlite-experimental-warning.js +22 -0
  245. package/dist/internal/testing/conversation-identity-vectors.d.ts +6 -1
  246. package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -1
  247. package/dist/internal/testing/conversation-identity-vectors.js +34 -0
  248. package/dist/internal/testing/hmac-secret-vectors.d.ts +38 -0
  249. package/dist/internal/testing/hmac-secret-vectors.d.ts.map +1 -0
  250. package/dist/internal/testing/hmac-secret-vectors.js +89 -0
  251. package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts +42 -0
  252. package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts.map +1 -0
  253. package/dist/internal/testing/pagerduty-continuation-fixtures.js +175 -0
  254. package/dist/internal/zod-schema.d.ts +14 -0
  255. package/dist/internal/zod-schema.d.ts.map +1 -0
  256. package/dist/internal/zod-schema.js +22 -0
  257. package/dist/playground/assets/cursor-icons-16-DmHBTm1-.woff2 +0 -0
  258. package/dist/playground/assets/index-BdMwybMt.css +1 -0
  259. package/dist/playground/assets/{index-DKKdkF29.js → index-CHk6O92d.js} +38 -38
  260. package/dist/playground/index.html +2 -2
  261. package/dist/tools.d.ts +13 -10
  262. package/dist/tools.d.ts.map +1 -1
  263. package/dist/tools.js +3 -2
  264. package/dist/types.d.ts +67 -16
  265. package/dist/types.d.ts.map +1 -1
  266. package/docs/guides/opentelemetry.md +10 -5
  267. package/docs/guides/pagerduty.md +341 -0
  268. package/docs/reference/channels.md +2 -1
  269. package/docs/reference/cli.md +27 -0
  270. package/docs/reference/tools.md +1 -0
  271. package/package.json +10 -3
  272. package/skills/migrate-v2/SKILL.md +1 -1
  273. package/skills/otel/SKILL.md +7 -3
  274. package/templates/agentic-owners/README.md +6 -1
  275. package/templates/agentic-owners/bot/lib/owners/decision.ts +31 -5
  276. package/templates/agentic-owners/bot/lib/owners/globalOverride.ts +60 -0
  277. package/templates/agentic-owners/bot/lib/owners/match.ts +85 -19
  278. package/templates/agentic-owners/bot/lib/owners/parse.ts +133 -2
  279. package/templates/agentic-owners/bot/lib/owners/types.ts +23 -0
  280. package/dist/docs/assets/chunks/@localSearchIndexroot.3ebvCWKy.js +0 -1
  281. package/dist/docs/assets/chunks/channel.BOebySCN.js +0 -1
  282. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C55IaN-T.js +0 -1
  283. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C55IaN-T.js +0 -1
  284. package/dist/docs/assets/chunks/clone.D06pA7ML.js +0 -1
  285. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DddRVjeq.js +0 -1
  286. package/dist/docs/assets/chunks/wardley-RL74JXVD.CVCRSuQK.js +0 -162
  287. package/dist/playground/assets/cursor-icons-16-gwXtdAvu.woff2 +0 -0
  288. package/dist/playground/assets/index-DpKinTMs.css +0 -1
  289. /package/dist/docs/assets/{reference_channels.md.DYg0CLud.lean.js → reference_channels.md.Bxaa020x.lean.js} +0 -0
  290. /package/dist/docs/assets/{reference_tools.md.08XR7lIl.lean.js → reference_tools.md.-6pypsWt.lean.js} +0 -0
@@ -1,6 +1,7 @@
1
1
  import { bitbucketChannelArchitectureError } from "../channels/bitbucket/bitbucket-channel.js";
2
2
  import { githubChannelArchitectureError } from "../channels/github/github-channel.js";
3
3
  import { gitlabChannelArchitectureError } from "../channels/gitlab/gitlab-channel.js";
4
+ import { pagerDutyChannelArchitectureError } from "../channels/pagerduty/pagerduty-channel.js";
4
5
  /**
5
6
  * Per-channel constraints that hold only on one hosted architecture. The
6
7
  * channel constructors run at import time, before the agent's
@@ -8,7 +9,7 @@ import { gitlabChannelArchitectureError } from "../channels/gitlab/gitlab-channe
8
9
  * these afterwards. Returns the author-facing error, or `undefined` when
9
10
  * the channel deploys as authored.
10
11
  *
11
- * On v2 every direct SCM webhook channel must name its secret so the
12
+ * On v2 every direct provider webhook channel must name its secret so the
12
13
  * control plane can terminate the provider's check at ingestion.
13
14
  */
14
15
  export function channelArchitectureError(architecture, definition) {
@@ -37,5 +38,6 @@ export function channelArchitectureMigrationWarning(architecture, definition) {
37
38
  function v2ChannelArchitectureError(definition) {
38
39
  return (githubChannelArchitectureError(definition) ??
39
40
  gitlabChannelArchitectureError(definition) ??
40
- bitbucketChannelArchitectureError(definition));
41
+ bitbucketChannelArchitectureError(definition) ??
42
+ pagerDutyChannelArchitectureError(definition));
41
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,8 @@ import { cursorExternalApiUrl, resolveApiKey, SIGN_IN_HINT } from "./cursor/cred
17
17
  import { authorizeCursorAccountConnectors } from "./cursor-account-mcp-auth.js";
18
18
  import { readDeployTemplate } from "./cursor-agent-template.js";
19
19
  import { AgentServeDeployClient, SEVERAL_AGENTS_DEPLOY_ALONE, DeployApiError, deploymentServiceAccountId, TERMINAL_AGENTKIT_DEPLOY_STATUSES, TERMINAL_DEPLOY_STATUSES, validateDeploymentSlug, } from "./deploy-client.js";
20
- import { channelCatchSecretNames, channelCredentialSecretNames } from "./deploy-manifest.js";
20
+ import { channelCatchSecretNames, channelCredentialSecretNames, channelSecretAlternatives, } from "./deploy-manifest.js";
21
+ import { unmetSecretAlternatives } from "./secret-alternatives.js";
21
22
  import { inferDeployGitSource } from "./deploy-source.js";
22
23
  import { describeError } from "./describe-error.js";
23
24
  import { formatDiagnostics, hasErrorDiagnostics, isAgentProjectDir, listChildAgentDirs, loadAgentProject, } from "./discovery.js";
@@ -910,6 +911,7 @@ async function readDeployManifest(dir) {
910
911
  credentialSecretNames: [
911
912
  ...new Set(project.channels.flatMap((channel) => channelCredentialSecretNames(channel.definition))),
912
913
  ],
914
+ secretAlternatives: project.channels.flatMap((channel) => channelSecretAlternatives(channel.definition)),
913
915
  hasScmChannels: project.channels.some((channel) => {
914
916
  const kind = channel.definition.meta?.kind;
915
917
  return kind === "github" || kind === "origin";
@@ -927,28 +929,35 @@ async function readDeployManifest(dir) {
927
929
  * requests with. Empty when the manifests declare none.
928
930
  */
929
931
  function declaredSecretNames(manifests) {
930
- return [
931
- ...new Set(manifests.flatMap((manifest) => manifest === undefined
932
- ? []
933
- : [
934
- ...(manifest.hosting?.secretNames ?? []),
935
- ...manifest.catchSecretNames,
936
- ...manifest.credentialSecretNames,
937
- ])),
938
- ];
932
+ return {
933
+ names: [
934
+ ...new Set(manifests.flatMap((manifest) => manifest === undefined
935
+ ? []
936
+ : [
937
+ ...(manifest.hosting?.secretNames ?? []),
938
+ ...manifest.catchSecretNames,
939
+ ...manifest.credentialSecretNames,
940
+ ])),
941
+ ],
942
+ alternatives: manifests.flatMap((manifest) => manifest?.secretAlternatives ?? []),
943
+ };
939
944
  }
940
945
  /**
941
946
  * Friendly post-deploy nudge: the manifest declares secrets the agent
942
947
  * expects, but the deployment does not have them all set yet.
943
948
  */
944
949
  function warnMissingSecrets(ctx, slug, declared, set) {
945
- if (declared === undefined || declared.length === 0) {
950
+ for (const group of unmetSecretAlternatives(declared?.alternatives ?? [], set)) {
951
+ ctx.err(`warning: none of ${group.names.join(", ")} is set on ${slug}: ${group.unsetEffect}\n` +
952
+ ` set one with \`${CLI} secrets set ${slug} ${group.names[0]}\`\n`);
953
+ }
954
+ if (declared === undefined || declared.names.length === 0) {
946
955
  return;
947
956
  }
948
957
  const setNames = new Set(set ?? []);
949
958
  // Platform-managed names (CURSOR_*, hosted storage) are injected by the
950
959
  // control plane and never appear in secrets list — do not warn on them.
951
- const missing = declared.filter((name) => !setNames.has(name) && !isReservedSecretName(name));
960
+ const missing = declared.names.filter((name) => !setNames.has(name) && !isReservedSecretName(name));
952
961
  if (missing.length === 0) {
953
962
  return;
954
963
  }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * `bdk pagerduty …` — replay synthesized PagerDuty v3 webhooks into a
3
+ * local `pagerdutyChannel()` and list the discovered PagerDuty channels.
4
+ *
5
+ * PagerDuty subscriptions POST to a public URL, so live deliveries need a
6
+ * tunnel. Replay covers the local loop without one or a PagerDuty account:
7
+ * it builds v3 bodies for an incident and signs `X-PagerDuty-Signature`
8
+ * from `--secret` / `PAGERDUTY_WEBHOOK_SECRET` (unsigned when neither is
9
+ * set, which `serve --dev` admits from loopback).
10
+ */
11
+ export interface PagerDutyCliOptions {
12
+ dir: string;
13
+ slug?: string;
14
+ channel?: string;
15
+ host?: string;
16
+ port?: number;
17
+ /** Explicit delivery URL (skips URL derivation). */
18
+ url?: string;
19
+ /** Comma/space-separated event types (`triggered` or `incident.triggered`), or `*`. */
20
+ events?: string;
21
+ /** Signing secret for `X-PagerDuty-Signature` (defaults to PAGERDUTY_WEBHOOK_SECRET). */
22
+ secret?: string;
23
+ json?: boolean;
24
+ /** replay: incident id the events name. */
25
+ incidentId?: string;
26
+ /** replay: note body for `incident.annotated`. */
27
+ comment?: string;
28
+ dryRun?: boolean;
29
+ out?: string;
30
+ }
31
+ export declare function cmdPagerDuty(subcommand: string | undefined, options: PagerDutyCliOptions): Promise<number>;
32
+ //# sourceMappingURL=cli-pagerduty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-pagerduty.d.ts","sourceRoot":"","sources":["../../src/internal/cli-pagerduty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA8BH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA4BD,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
@@ -0,0 +1,242 @@
1
+ /**
2
+ * `bdk pagerduty …` — replay synthesized PagerDuty v3 webhooks into a
3
+ * local `pagerdutyChannel()` and list the discovered PagerDuty channels.
4
+ *
5
+ * PagerDuty subscriptions POST to a public URL, so live deliveries need a
6
+ * tunnel. Replay covers the local loop without one or a PagerDuty account:
7
+ * it builds v3 bodies for an incident and signs `X-PagerDuty-Signature`
8
+ * from `--secret` / `PAGERDUTY_WEBHOOK_SECRET` (unsigned when neither is
9
+ * set, which `serve --dev` admits from loopback).
10
+ */
11
+ import { randomUUID } from "node:crypto";
12
+ import { mkdir, writeFile } from "node:fs/promises";
13
+ import { join, resolve as resolvePath } from "node:path";
14
+ import { channelForwardUrl } from "../channels/github/forward.js";
15
+ import { findPagerDutyChannelTargets, } from "../channels/pagerduty/pagerduty-channel.js";
16
+ import { PAGERDUTY_SIGNATURE_HEADER, PAGERDUTY_WEBHOOK_SECRET_ENV, signPagerDutyWebhookBody, } from "../channels/pagerduty/pagerduty-webhook.js";
17
+ import { PAGERDUTY_REPLAY_DEFAULT_INCIDENT_ID, PAGERDUTY_REPLAYABLE_EVENTS, selectPagerDutyReplayEvents, synthesizePagerDutyEvent, } from "../channels/pagerduty/replay.js";
18
+ import { resolveAgentMounts } from "./discovery.js";
19
+ import { parseHmacSecrets } from "./hmac-secret-values.js";
20
+ import { CLI_COMMAND_NAME as CLI } from "./distribution.js";
21
+ import { projectPath, resolveProjectRoot } from "./project-layout.js";
22
+ const DEFAULT_HOST = "127.0.0.1";
23
+ const DEFAULT_PORT = 3000;
24
+ const PAGERDUTY_HELP = `${CLI} pagerduty — replay PagerDuty v3 webhooks into a local agent
25
+
26
+ Usage:
27
+ ${CLI} pagerduty replay [incident_id] [--events a,b,c | *] [--comment "…"]
28
+ [--dir .] [--slug S] [--channel C]
29
+ [--host H] [--port N] [--url URL] [--secret S]
30
+ [--dry-run] [--out DIR] [--json]
31
+ ${CLI} pagerduty events [--dir .] [--host H] [--port N] [--json]
32
+
33
+ Commands:
34
+ replay Synthesize v3 webhook bodies for one incident (default
35
+ ${PAGERDUTY_REPLAY_DEFAULT_INCIDENT_ID}) and POST them, in order, to the discovered
36
+ pagerdutyChannel()s. --events picks them (default triggered;
37
+ \`*\` = every declared event replay supports:
38
+ ${PAGERDUTY_REPLAYABLE_EVENTS.join(", ")}).
39
+ A trigger comes from PagerDuty itself; the rest come from a
40
+ person, so they dispatch. --comment is the note body for
41
+ annotated. Signs X-PagerDuty-Signature from --secret /
42
+ ${PAGERDUTY_WEBHOOK_SECRET_ENV} (its first line when it lists several).
43
+ --dry-run prints the bodies; --out writes them as fixtures.
44
+ events List discovered PagerDuty channels and the event types each accepts.
45
+
46
+ Prerequisites:
47
+ - The agent already serving (\`${CLI} dev\` or \`${CLI} serve --dir . --dev\`).
48
+ `;
49
+ export async function cmdPagerDuty(subcommand, options) {
50
+ switch (subcommand) {
51
+ case undefined:
52
+ case "help":
53
+ case "--help":
54
+ case "-h":
55
+ process.stdout.write(PAGERDUTY_HELP);
56
+ return subcommand === undefined ? 1 : 0;
57
+ case "replay":
58
+ return cmdPagerDutyReplay(options);
59
+ case "events":
60
+ return cmdPagerDutyEvents(options);
61
+ default:
62
+ process.stderr.write(`Unknown pagerduty subcommand: ${subcommand}\n`);
63
+ process.stdout.write(PAGERDUTY_HELP);
64
+ return 1;
65
+ }
66
+ }
67
+ function targetUrl(target, options) {
68
+ return channelForwardUrl({
69
+ host: options.host ?? DEFAULT_HOST,
70
+ port: options.port ?? DEFAULT_PORT,
71
+ slug: target.slug,
72
+ channelId: target.channelId,
73
+ routePath: target.routePath,
74
+ });
75
+ }
76
+ async function resolveTargets(options) {
77
+ const dir = resolvePath(options.dir);
78
+ let candidates = findPagerDutyChannelTargets(await resolveAgentMounts(dir));
79
+ if (options.slug !== undefined) {
80
+ candidates = candidates.filter((c) => c.slug === options.slug);
81
+ }
82
+ if (options.channel !== undefined) {
83
+ candidates = candidates.filter((c) => c.channelId === options.channel);
84
+ }
85
+ if (options.url !== undefined) {
86
+ if (candidates.length > 1) {
87
+ process.stderr.write("--url targets a single channel; narrow with --slug/--channel\n");
88
+ return undefined;
89
+ }
90
+ return [
91
+ {
92
+ slug: candidates[0]?.slug ?? "",
93
+ channelId: candidates[0]?.channelId ?? "",
94
+ url: options.url,
95
+ events: candidates[0]?.events ?? [],
96
+ },
97
+ ];
98
+ }
99
+ if (candidates.length === 0) {
100
+ const channelPath = projectPath(resolveProjectRoot(dir), "channels/pagerduty.ts");
101
+ process.stderr.write(`no PagerDuty channel found. Author ${channelPath} with pagerdutyChannel(), or pass --url.\n`);
102
+ return undefined;
103
+ }
104
+ return candidates.map((c) => ({
105
+ slug: c.slug,
106
+ channelId: c.channelId,
107
+ url: targetUrl(c, options),
108
+ events: c.events,
109
+ }));
110
+ }
111
+ async function cmdPagerDutyReplay(options) {
112
+ const targets = await resolveTargets(options);
113
+ if (targets === undefined) {
114
+ return 1;
115
+ }
116
+ const declared = [...new Set(targets.flatMap((target) => target.events))];
117
+ const { events, unsupported } = selectPagerDutyReplayEvents({
118
+ requested: parseEventList(options.events),
119
+ declared,
120
+ });
121
+ if (unsupported.length > 0) {
122
+ process.stderr.write(`[bdk] cannot synthesize (skipped): ${unsupported.join(", ")}\n`);
123
+ }
124
+ if (events.length === 0) {
125
+ process.stderr.write("no synthesizable events selected\n");
126
+ return 1;
127
+ }
128
+ const incidentId = options.incidentId ?? PAGERDUTY_REPLAY_DEFAULT_INCIDENT_ID;
129
+ // A secret that lists one value per subscription signs with its first.
130
+ const parsedSecret = parseHmacSecrets(options.secret ?? process.env[PAGERDUTY_WEBHOOK_SECRET_ENV]?.trim());
131
+ const secret = parsedSecret.ok ? parsedSecret.secrets[0] : undefined;
132
+ if (options.json !== true) {
133
+ process.stderr.write(`[bdk] replaying incident ${incidentId} (${events.join(", ")}) → ${targets.length} channel${targets.length === 1 ? "" : "s"}${secret === undefined ? " unsigned" : ""}\n`);
134
+ }
135
+ const report = [];
136
+ let anyRejected = false;
137
+ for (const eventType of events) {
138
+ const payload = synthesizePagerDutyEvent({ eventType, incidentId, note: options.comment });
139
+ const body = JSON.stringify(payload);
140
+ const headers = {
141
+ "content-type": "application/json",
142
+ "x-webhook-id": randomUUID(),
143
+ };
144
+ if (secret !== undefined) {
145
+ headers[PAGERDUTY_SIGNATURE_HEADER] = signPagerDutyWebhookBody({ rawBody: body, secret });
146
+ }
147
+ if (options.out !== undefined) {
148
+ const file = await writeReplayFixture(options.out, eventType, payload);
149
+ if (options.json !== true) {
150
+ process.stderr.write(`[bdk] wrote ${file}\n`);
151
+ }
152
+ }
153
+ if (options.dryRun === true) {
154
+ report.push({ event: eventType, payload });
155
+ if (options.json !== true) {
156
+ process.stdout.write(`--- ${eventType} ---\n${JSON.stringify(payload, null, 2)}\n`);
157
+ }
158
+ continue;
159
+ }
160
+ const deliveries = await deliverReplayEvent(body, headers, eventType, targets);
161
+ if (deliveries.length === 0 || deliveries.some((d) => !d.ok)) {
162
+ anyRejected = true;
163
+ }
164
+ report.push({ event: eventType, deliveries });
165
+ if (options.json !== true) {
166
+ const summary = deliveries
167
+ .map((d) => `${d.label} ${d.status || "ERR"}${d.ok ? "" : " (rejected)"}`)
168
+ .join(", ") || "(no matching channel)";
169
+ process.stderr.write(`[bdk] ${eventType} → ${summary}\n`);
170
+ }
171
+ }
172
+ if (options.json === true) {
173
+ process.stdout.write(`${JSON.stringify({
174
+ incidentId,
175
+ signed: secret !== undefined,
176
+ dryRun: options.dryRun === true,
177
+ events: report,
178
+ }, null, 2)}\n`);
179
+ }
180
+ return anyRejected ? 1 : 0;
181
+ }
182
+ async function deliverReplayEvent(body, headers, eventType, targets) {
183
+ const recipients = targets.filter((target) => target.events.length === 0 || target.events.includes(eventType));
184
+ const deliveries = [];
185
+ // In order, not in parallel: one incident's events must arrive as a sequence.
186
+ for (const target of recipients) {
187
+ const label = target.slug === "" ? target.channelId : `${target.slug}/${target.channelId}`;
188
+ try {
189
+ const response = await fetch(target.url, { method: "POST", headers, body });
190
+ await response.text().catch(() => undefined);
191
+ deliveries.push({ label, status: response.status, ok: response.ok });
192
+ }
193
+ catch (error) {
194
+ deliveries.push({
195
+ label,
196
+ status: 0,
197
+ ok: false,
198
+ error: error instanceof Error ? error.message : String(error),
199
+ });
200
+ }
201
+ }
202
+ return deliveries;
203
+ }
204
+ async function writeReplayFixture(outDir, eventType, payload) {
205
+ const dir = resolvePath(outDir);
206
+ await mkdir(dir, { recursive: true });
207
+ const file = join(dir, `pagerduty-${eventType.replace(/[^\w-]+/g, "-")}.json`);
208
+ await writeFile(file, `${JSON.stringify(payload, null, 2)}\n`);
209
+ return file;
210
+ }
211
+ async function cmdPagerDutyEvents(options) {
212
+ const dir = resolvePath(options.dir);
213
+ const rows = findPagerDutyChannelTargets(await resolveAgentMounts(dir)).map((c) => ({
214
+ slug: c.slug,
215
+ channelId: c.channelId,
216
+ url: targetUrl(c, options),
217
+ events: c.events,
218
+ }));
219
+ if (options.json === true) {
220
+ process.stdout.write(`${JSON.stringify({ channels: rows }, null, 2)}\n`);
221
+ return 0;
222
+ }
223
+ if (rows.length === 0) {
224
+ process.stdout.write("no PagerDuty channels found\n");
225
+ return 0;
226
+ }
227
+ for (const row of rows) {
228
+ const label = row.slug === "" ? row.channelId : `${row.slug}/${row.channelId}`;
229
+ process.stdout.write(`${label}\n ${row.url}\n ${row.events.join(", ")}\n`);
230
+ }
231
+ return 0;
232
+ }
233
+ function parseEventList(value) {
234
+ if (value === undefined) {
235
+ return undefined;
236
+ }
237
+ const events = value
238
+ .split(/[\s,]+/)
239
+ .map((event) => event.trim())
240
+ .filter(Boolean);
241
+ return events.length === 0 ? undefined : events;
242
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"continuation-channel.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-channel.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,oBAAoB,EAO1B,MAAM,4BAA4B,CAAC;AAmEpC,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,CAWhG;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,qBAAqB,GAAG,SAAS,GAC7C,oBAAoB,CAEtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,KAAK,EAAE;QAAE,YAAY,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;IAC5C,QAAQ,EAAE,aAAa,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,WAAW,EAAE,qBAAqB,CAAC;CACpC,GAAG,IAAI,CAUP;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,GAAG,IAAI,CAwBP;AAyCD,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,WAAW,GAAG,SAAS,GAC5B,SAAS,MAAM,EAAE,GAAG,SAAS,CAU/B;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,iBAAiB,CAAC;CAC/B,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAY9C"}
1
+ {"version":3,"file":"continuation-channel.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-channel.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,oBAAoB,EAO1B,MAAM,4BAA4B,CAAC;AAyEpC,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,CAWhG;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,qBAAqB,GAAG,SAAS,GAC7C,oBAAoB,CAEtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,KAAK,EAAE;QAAE,YAAY,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;IAC5C,QAAQ,EAAE,aAAa,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,WAAW,EAAE,qBAAqB,CAAC;CACpC,GAAG,IAAI,CAUP;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,GAAG,IAAI,CAwBP;AAyCD,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,WAAW,GAAG,SAAS,GAC5B,SAAS,MAAM,EAAE,GAAG,SAAS,CAW/B;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,iBAAiB,CAAC;CAC/B,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAY9C"}
@@ -6,6 +6,7 @@ import { getGitLabChannelOptions } from "../channels/gitlab/gitlab-channel.js";
6
6
  import { getIssuesChannelOptions } from "../channels/issues/issues-channel.js";
7
7
  import { getRunsChannelOptions } from "../channels/runs/runs-channel.js";
8
8
  import { getOriginChannelOptions } from "../channels/origin/origin-channel.js";
9
+ import { getPagerDutyChannelOptions } from "../channels/pagerduty/pagerduty-channel.js";
9
10
  import { getSlackChannelOptions } from "../channels/slack/slack-channel.js";
10
11
  import { defaultContinuationSelector, handshakeContinuation, normalizeIdentity, omittedV2MembershipDowngrade, omittedV2TypedType, } from "./continuation-identity.js";
11
12
  const CONTINUATION_CHANNEL_PACKS = [
@@ -54,6 +55,11 @@ const CONTINUATION_CHANNEL_PACKS = [
54
55
  getOptions: getRunsChannelOptions,
55
56
  usesDeclaredEvents: true,
56
57
  },
58
+ {
59
+ kind: "pagerduty",
60
+ getOptions: getPagerDutyChannelOptions,
61
+ usesDeclaredEvents: true,
62
+ },
57
63
  ];
58
64
  export function channelContinuationIdentity(definition) {
59
65
  if (definition === undefined) {
@@ -144,6 +150,7 @@ export function channelDeclaredEventTypes(meta) {
144
150
  meta?.originWebhookEvents ??
145
151
  meta?.gitlabWebhookEvents ??
146
152
  meta?.bitbucketWebhookEvents ??
153
+ meta?.pagerdutyWebhookEvents ??
147
154
  meta?.deploymentEventTypes ??
148
155
  meta?.factoryEventTypes ??
149
156
  meta?.slackEventTypes);
@@ -16,9 +16,9 @@
16
16
  * selector. An explicit per-channel selector still overrides. JSONPath
17
17
  * and per-agent format strings are rejected.
18
18
  */
19
- export type ConversationType = "pr" | "issue" | "thread" | "origin-pr" | "gitlab-mr" | "bitbucket-pr" | "deployment" | "change-monitor-checkpoint" | "factory-issue" | "run";
20
- export type ContinuationKind = "github" | "slack" | "origin" | "gitlab" | "bitbucket" | "deployments" | "change_monitors" | "issues" | "runs" | "http";
21
- export declare const CONTINUATION_SELECTORS: readonly ["github.pr/v1", "github.pr/v2", "github.issue/v1", "github.issue/v2", "github.none/v2", "slack.thread/v1", "slack.thread/v2", "slack.none/v2", "origin.pr/v1", "origin.pr/v2", "origin.none/v2", "gitlab.mr/v2", "gitlab.none/v2", "bitbucket.pr/v2", "bitbucket.none/v2", "deployments.none/v1", "deployments.none/v2", "deployments.deployment/v2", "change_monitors.checkpoint/v2", "issues.issue/v2", "runs.run/v2", "none/v1", "none/v2"];
19
+ export type ConversationType = "pr" | "issue" | "thread" | "origin-pr" | "gitlab-mr" | "bitbucket-pr" | "deployment" | "change-monitor-checkpoint" | "factory-issue" | "run" | "pagerduty-incident";
20
+ export type ContinuationKind = "github" | "slack" | "origin" | "gitlab" | "bitbucket" | "deployments" | "change_monitors" | "issues" | "runs" | "pagerduty" | "http";
21
+ export declare const CONTINUATION_SELECTORS: readonly ["github.pr/v1", "github.pr/v2", "github.issue/v1", "github.issue/v2", "github.none/v2", "slack.thread/v1", "slack.thread/v2", "slack.none/v2", "origin.pr/v1", "origin.pr/v2", "origin.none/v2", "gitlab.mr/v2", "gitlab.none/v2", "bitbucket.pr/v2", "bitbucket.none/v2", "deployments.none/v1", "deployments.none/v2", "deployments.deployment/v2", "change_monitors.checkpoint/v2", "issues.issue/v2", "runs.run/v2", "pagerduty.incident/v2", "pagerduty.none/v2", "none/v1", "none/v2"];
22
22
  export type ContinuationSelector = (typeof CONTINUATION_SELECTORS)[number];
23
23
  export type ContinuationIdentity = ContinuationSelector;
24
24
  /** Agent-root protocol version. Omit / `"v1"` keeps engine minting. */
@@ -50,11 +50,19 @@ export type ContinuationClaim = {
50
50
  } | {
51
51
  monitorId: string;
52
52
  runId: string;
53
+ } | {
54
+ incidentId: string;
53
55
  };
54
56
  };
55
57
  export type MailboxContinuation = {
56
58
  key: string;
57
59
  };
60
+ /**
61
+ * PagerDuty v3 webhook event types that carry one incident, either as the
62
+ * event's `data` (lifecycle events) or as `data.incident` (notes,
63
+ * responders, status updates, workflows).
64
+ */
65
+ export declare const PAGERDUTY_INCIDENT_EVENT_TYPES: readonly ["incident.triggered", "incident.acknowledged", "incident.unacknowledged", "incident.escalated", "incident.reassigned", "incident.delegated", "incident.resolved", "incident.reopened", "incident.priority_updated", "incident.incident_type.changed", "incident.annotated", "incident.responder.added", "incident.responder.replied", "incident.status_update_published", "incident.conference_bridge.updated", "incident.custom_field_values.updated", "incident.workflow.started", "incident.workflow.completed"];
58
66
  export type ContinuationBuiltin = {
59
67
  type: ConversationType;
60
68
  kind: Exclude<ContinuationKind, "http">;
@@ -1 +1 @@
1
- {"version":3,"file":"continuation-identity.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,MAAM,MAAM,gBAAgB,GACxB,IAAI,GACJ,OAAO,GACP,QAAQ,GACR,WAAW,GACX,WAAW,GACX,cAAc,GACd,YAAY,GACZ,2BAA2B,GAC3B,eAAe,GACf,KAAK,CAAC;AAEV,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,QAAQ,GACR,MAAM,GACN,MAAM,CAAC;AAEX,eAAO,MAAM,sBAAsB,YACjC,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,+BAA+B,EAC/B,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,SAAS,CACD,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3E,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AACxD,uEAAuE;AACvE,MAAM,MAAM,2BAA2B,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAChC,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EACJ;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAC/C;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACvC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACpC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GACxB;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAC1B;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GACrB;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,SAAS,mBAAmB,EAgGzC,CAAC;AAEX,qBAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAkDD,wBAAgB,2BAA2B,CACzC,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,GAAE,2BAAkC,EAC3C,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAC7B,oBAAoB,CA+CtB;AAsCD,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE7E;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAC7B;IAAE,QAAQ,EAAE,oBAAoB,CAAC;IAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAqB/E;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAK1F;AAWD,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAEjG;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,CAAC,EAAE,oBAAoB,EAC/B,IAAI,CAAC,EAAE,MAAM,GACZ,QAAQ,GAAG,eAAe,CAE5B;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE7D;AAgDD,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAkE1D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAqC9C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,MAAM,GAAG,SAAS,CAkCpB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,MAAM,GACZ,mBAAmB,CAarB;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,EACD,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CA0BR;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EACR,QAAQ,SAAS;IAAE,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAAE,EAE9D,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,EAChE,OAAO,EAAE,mBAAmB,GAAG,SAAS,GACvC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,CAS5D"}
1
+ {"version":3,"file":"continuation-identity.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-identity.ts"],"names":[],"mappings":"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"}
@@ -40,9 +40,36 @@ export const CONTINUATION_SELECTORS = [
40
40
  "change_monitors.checkpoint/v2",
41
41
  "issues.issue/v2",
42
42
  "runs.run/v2",
43
+ "pagerduty.incident/v2",
44
+ "pagerduty.none/v2",
43
45
  "none/v1",
44
46
  "none/v2",
45
47
  ];
48
+ /**
49
+ * PagerDuty v3 webhook event types that carry one incident, either as the
50
+ * event's `data` (lifecycle events) or as `data.incident` (notes,
51
+ * responders, status updates, workflows).
52
+ */
53
+ export const PAGERDUTY_INCIDENT_EVENT_TYPES = [
54
+ "incident.triggered",
55
+ "incident.acknowledged",
56
+ "incident.unacknowledged",
57
+ "incident.escalated",
58
+ "incident.reassigned",
59
+ "incident.delegated",
60
+ "incident.resolved",
61
+ "incident.reopened",
62
+ "incident.priority_updated",
63
+ "incident.incident_type.changed",
64
+ "incident.annotated",
65
+ "incident.responder.added",
66
+ "incident.responder.replied",
67
+ "incident.status_update_published",
68
+ "incident.conference_bridge.updated",
69
+ "incident.custom_field_values.updated",
70
+ "incident.workflow.started",
71
+ "incident.workflow.completed",
72
+ ];
46
73
  export const BUILTINS = [
47
74
  {
48
75
  type: "pr",
@@ -139,6 +166,14 @@ export const BUILTINS = [
139
166
  events: ["run.created"],
140
167
  format: "runs:{monitorId}:{runId}",
141
168
  },
169
+ {
170
+ type: "pagerduty-incident",
171
+ kind: "pagerduty",
172
+ // v3 webhook `event.event_type`s that name one incident, keyed on its
173
+ // id; keep in lockstep with the control plane's `conversation/pagerduty.ts`.
174
+ events: PAGERDUTY_INCIDENT_EVENT_TYPES,
175
+ format: "pagerduty:incident:{incidentId}",
176
+ },
142
177
  ];
143
178
  export class V2EngineError extends Error {
144
179
  constructor(message) {
@@ -184,6 +219,12 @@ const SELECTOR_FIELDS = {
184
219
  type: "run",
185
220
  kind: "runs",
186
221
  },
222
+ "pagerduty.incident/v2": {
223
+ version: 2,
224
+ type: "pagerduty-incident",
225
+ kind: "pagerduty",
226
+ },
227
+ "pagerduty.none/v2": { version: 2, type: "none", kind: "pagerduty" },
187
228
  "none/v1": { version: 1, type: "none", kind: "http" },
188
229
  "none/v2": { version: 2, type: "none", kind: "http" },
189
230
  };
@@ -224,6 +265,8 @@ export function defaultContinuationSelector(kind, version = "v1", eventTypes) {
224
265
  return membershipOrNone(eventTypes, "factory-issue", "issues.issue/v2", "none/v2");
225
266
  case "runs":
226
267
  return membershipOrNone(eventTypes, "run", "runs.run/v2", "none/v2");
268
+ case "pagerduty":
269
+ return membershipOrNone(eventTypes, "pagerduty-incident", "pagerduty.incident/v2", "pagerduty.none/v2");
227
270
  default:
228
271
  return "none/v2";
229
272
  }
@@ -255,6 +298,7 @@ const OMITTED_V2_TYPED_TYPE = {
255
298
  change_monitors: "change-monitor-checkpoint",
256
299
  issues: "factory-issue",
257
300
  runs: "run",
301
+ pagerduty: "pagerduty-incident",
258
302
  };
259
303
  /** Typed membership used when an omitted `/v2` selector becomes type `none`. */
260
304
  export function omittedV2TypedType(kind) {
@@ -342,6 +386,8 @@ function formatConversationKey(type, fields) {
342
386
  return `issues:${fields.issueName}`;
343
387
  case "run":
344
388
  return `runs:${fields.monitorId}:${fields.runId}`;
389
+ case "pagerduty-incident":
390
+ return `pagerduty:incident:${fields.incidentId}`;
345
391
  }
346
392
  }
347
393
  export function mintClaim(claim) {
@@ -381,6 +427,15 @@ export function mintClaim(claim) {
381
427
  }
382
428
  return `cont:${formatConversationKey("run", resource)}`;
383
429
  }
430
+ case "pagerduty-incident": {
431
+ const resource = claim.resource;
432
+ if (!("incidentId" in resource) || resource.incidentId.trim() === "") {
433
+ throw new V2EngineError("v2: pagerduty-incident claim requires incidentId");
434
+ }
435
+ return `cont:${formatConversationKey("pagerduty-incident", {
436
+ incidentId: resource.incidentId.trim(),
437
+ })}`;
438
+ }
384
439
  case "pr":
385
440
  case "issue":
386
441
  case "origin-pr":
@@ -480,6 +535,8 @@ export function extractContinuation(type, eventName, payload) {
480
535
  return extractNamedResource("factory-issue", "issueName", payload, "issue");
481
536
  case "run":
482
537
  return extractRun(payload);
538
+ case "pagerduty-incident":
539
+ return extractPagerDuty(payload);
483
540
  }
484
541
  }
485
542
  /**
@@ -761,6 +818,32 @@ function extractRun(payload) {
761
818
  runId: match[2],
762
819
  })}`;
763
820
  }
821
+ /**
822
+ * PagerDuty v3 webhook body (`{ event: { event_type, data } }`). Lifecycle
823
+ * events carry the incident as `data`; notes, responders, and other
824
+ * sub-resources carry it as `data.incident`, whose own `id` is the
825
+ * incident's while `data.id` names the sub-resource.
826
+ */
827
+ function extractPagerDuty(payload) {
828
+ const incidentId = nonEmpty(pagerDutyIncidentRecord(payload)?.id);
829
+ if (incidentId === undefined) {
830
+ return undefined;
831
+ }
832
+ return `cont:${formatConversationKey("pagerduty-incident", { incidentId })}`;
833
+ }
834
+ function pagerDutyIncidentRecord(payload) {
835
+ const record = asRecord(payload);
836
+ const event = asRecord(record?.event) ?? record;
837
+ const data = asRecord(event?.data);
838
+ if (data === undefined) {
839
+ return undefined;
840
+ }
841
+ const nested = asRecord(data.incident);
842
+ if (nested !== undefined) {
843
+ return nested;
844
+ }
845
+ return data.type === "incident" || event?.resource_type === "incident" ? data : undefined;
846
+ }
764
847
  function extractNamedResource(type, field, payload, wrapper) {
765
848
  const record = asRecord(payload);
766
849
  const source = wrapper === undefined ? record : asRecord(record?.[wrapper]);