@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.
- package/AGENTS.md +4 -18
- package/CHANGELOG.md +3 -0
- package/dist/artifacts.d.ts +1 -1
- package/dist/artifacts.js +1 -1
- package/dist/bin/agent-serve.d.ts +1 -1
- package/dist/bin/agent-serve.js +71 -31
- package/dist/channels/bitbucket/api.d.ts +2 -2
- package/dist/channels/bitbucket/api.d.ts.map +1 -1
- package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts +5 -4
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
- package/dist/channels/bitbucket/bitbucket-webhook.js +14 -9
- package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
- package/dist/channels/deployments/deployments-channel.js +1 -1
- package/dist/channels/github/cursor-account.d.ts +7 -0
- package/dist/channels/github/cursor-account.d.ts.map +1 -1
- package/dist/channels/github/cursor-account.js +22 -5
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +10 -19
- package/dist/channels/github/replay.d.ts +1 -1
- package/dist/channels/github/replay.d.ts.map +1 -1
- package/dist/channels/gitlab/api.d.ts +2 -2
- package/dist/channels/gitlab/api.d.ts.map +1 -1
- package/dist/channels/gitlab/gitlab-channel.js +1 -1
- package/dist/channels/issues/issues-channel.js +1 -1
- package/dist/channels/origin/api.d.ts +4 -4
- package/dist/channels/origin/api.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +1 -1
- package/dist/channels/origin/origin-webhook.d.ts +3 -3
- package/dist/channels/origin/origin-webhook.d.ts.map +1 -1
- package/dist/channels/pagerduty/api.d.ts +74 -0
- package/dist/channels/pagerduty/api.d.ts.map +1 -0
- package/dist/channels/pagerduty/api.js +101 -0
- package/dist/channels/pagerduty/defaults.d.ts +42 -0
- package/dist/channels/pagerduty/defaults.d.ts.map +1 -0
- package/dist/channels/pagerduty/defaults.js +132 -0
- package/dist/channels/pagerduty/events.d.ts +24 -0
- package/dist/channels/pagerduty/events.d.ts.map +1 -0
- package/dist/channels/pagerduty/events.js +38 -0
- package/dist/channels/pagerduty/index.d.ts +31 -0
- package/dist/channels/pagerduty/index.d.ts.map +1 -0
- package/dist/channels/pagerduty/index.js +30 -0
- package/dist/channels/pagerduty/pagerduty-channel.d.ts +64 -0
- package/dist/channels/pagerduty/pagerduty-channel.d.ts.map +1 -0
- package/dist/channels/pagerduty/pagerduty-channel.js +195 -0
- package/dist/channels/pagerduty/pagerduty-webhook.d.ts +70 -0
- package/dist/channels/pagerduty/pagerduty-webhook.d.ts.map +1 -0
- package/dist/channels/pagerduty/pagerduty-webhook.js +280 -0
- package/dist/channels/pagerduty/payload.d.ts +33 -0
- package/dist/channels/pagerduty/payload.d.ts.map +1 -0
- package/dist/channels/pagerduty/payload.js +150 -0
- package/dist/channels/pagerduty/replay.d.ts +35 -0
- package/dist/channels/pagerduty/replay.d.ts.map +1 -0
- package/dist/channels/pagerduty/replay.js +115 -0
- package/dist/channels/pagerduty/secrets.d.ts +16 -0
- package/dist/channels/pagerduty/secrets.d.ts.map +1 -0
- package/dist/channels/pagerduty/secrets.js +23 -0
- package/dist/channels/pagerduty/self-user.d.ts +51 -0
- package/dist/channels/pagerduty/self-user.d.ts.map +1 -0
- package/dist/channels/pagerduty/self-user.js +157 -0
- package/dist/channels/pagerduty/state.d.ts +31 -0
- package/dist/channels/pagerduty/state.d.ts.map +1 -0
- package/dist/channels/pagerduty/state.js +30 -0
- package/dist/channels/pagerduty/types.d.ts +217 -0
- package/dist/channels/pagerduty/types.d.ts.map +1 -0
- package/dist/channels/pagerduty/types.js +1 -0
- package/dist/channels/runs/runs-channel.js +1 -1
- package/dist/channels/slack/agentic-delivery.d.ts +2 -1
- package/dist/channels/slack/agentic-delivery.d.ts.map +1 -1
- package/dist/channels/slack/agentic-delivery.js +6 -10
- package/dist/channels/slack/agentic-signals.d.ts +2 -7
- package/dist/channels/slack/agentic-signals.d.ts.map +1 -1
- package/dist/channels/slack/agentic-signals.js +4 -3
- package/dist/channels/slack/api.d.ts +1 -0
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +3 -0
- package/dist/channels/slack/constants.d.ts +2 -0
- package/dist/channels/slack/constants.d.ts.map +1 -1
- package/dist/channels/slack/constants.js +2 -0
- package/dist/channels/slack/defaults.d.ts.map +1 -1
- package/dist/channels/slack/defaults.js +3 -2
- package/dist/channels/slack/dispatch.d.ts +9 -0
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +3 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +24 -20
- package/dist/channels/slack/interactive.d.ts +2 -0
- package/dist/channels/slack/interactive.d.ts.map +1 -1
- package/dist/channels/slack/interactive.js +1 -0
- package/dist/channels/slack/live-delivery.d.ts +3 -0
- package/dist/channels/slack/live-delivery.d.ts.map +1 -1
- package/dist/channels/slack/live-delivery.js +5 -0
- package/dist/channels/slack/reply-options.d.ts +9 -0
- package/dist/channels/slack/reply-options.d.ts.map +1 -1
- package/dist/channels/slack/reply-options.js +31 -1
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +7 -0
- package/dist/channels/slack/stream.d.ts +5 -1
- package/dist/channels/slack/stream.d.ts.map +1 -1
- package/dist/channels/slack/types.d.ts +29 -0
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels.d.ts +7 -1
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +12 -24
- package/dist/docs/404.html +3 -3
- package/dist/docs/assets/{app.DTIg0uKK.js → app.BITbgXMP.js} +4 -4
- package/dist/docs/assets/changelog.md.sdD6ctqK.js +1 -0
- package/dist/docs/assets/changelog.md.sdD6ctqK.lean.js +1 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.B45uCZp9.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BpJoSaxi.js → VPLocalSearchBox.3qo4-bX9.js} +2 -2
- package/dist/docs/assets/chunks/{arc.ylgNvRNq.js → arc.CTrZocKU.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.BMrNJqYk.js → architectureDiagram-Q4EWVU46.BkgIqxrv.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.BBWUEqf9.js → baseUniq.5w0JfVgo.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DFMu-Vza.js → blockDiagram-DXYQGD6D.BVLtPjQc.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.8nkAAxWv.js → c4Diagram-AHTNJAMY.CQ7neZTW.js} +1 -1
- package/dist/docs/assets/chunks/channel.Cv2w64wj.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.sO-z2Bag.js → chunk-4BX2VUAB.D-hJ7uKM.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.BMROzTMq.js → chunk-4TB4RGXK.RBYX5ywX.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.X81urwg7.js → chunk-55IACEB6.Br05HoEb.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.eaZVFLZM.js → chunk-EDXVE4YY.BD_7QS60.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CmZhzstR.js → chunk-FMBD7UC4.BOPnMabX.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CTezt9Lc.js → chunk-OYMX7WX6.DmGIdP8i.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.s-T8zukB.js → chunk-QZHKN3VN.CGHmolCB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.DN4Nhy-D.js → chunk-YZCP3GAM.C_Uhs25v.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CtO2atCr.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CtO2atCr.js +1 -0
- package/dist/docs/assets/chunks/clone.hfsCtgP4.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Cqyp4BUH.js → cose-bilkent-S5V4N54A.DsU6xpcZ.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.BIECOiqR.js → dagre-KV5264BT.BqQLDcoU.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.1tLyWoTg.js → diagram-5BDNPKRD.Cgv8uUNF.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.BVY_6VMO.js → diagram-G4DWMVQ6.BXHPSXh_.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BSZ7xiBB.js → diagram-MMDJMWI5.CgJzo8f_.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.Bho6GmLh.js → diagram-TYMM5635.CfiN6lgT.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.A0yVIANn.js → erDiagram-SMLLAGMA.8n_hHzAd.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.ZMgbllH6.js → flowDiagram-DWJPFMVM.B2pb1Dv_.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.BCCPBhXo.js → ganttDiagram-T4ZO3ILL.BFih4ucI.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.BOkL0BbA.js → gitGraphDiagram-UUTBAWPF.CqZ8PTl8.js} +1 -1
- package/dist/docs/assets/chunks/{graph.DMyZPu86.js → graph.0ufsI9gu.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.CjG1IiEw.js → infoDiagram-42DDH7IO.BkPRFww4.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.UCe-kq9g.js → ishikawaDiagram-UXIWVN3A.DCRK-cVX.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.3WyOK_eY.js → journeyDiagram-VCZTEJTY.BFyAJo33.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.WoRG2qY1.js → kanban-definition-6JOO6SKY.CmA2SoGc.js} +1 -1
- package/dist/docs/assets/chunks/{layout.DV07xDd5.js → layout.CYY-CbMr.js} +1 -1
- package/dist/docs/assets/chunks/{linear.CTO8mN6o.js → linear.DeeDV4Oq.js} +1 -1
- package/dist/docs/assets/chunks/{min.SvTtcKuZ.js → min.BL3XTBN2.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.DMGgQ-HB.js → mindmap-definition-QFDTVHPH.BcbY-G6H.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B7851apI.js → pieDiagram-DEJITSTG.dzDcQnPE.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CEqyypIX.js → quadrantDiagram-34T5L4WZ.RxR0m5iK.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.C3Mwsw-H.js → requirementDiagram-MS252O5E.DflaXb6Q.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DyYK0XxY.js → sankeyDiagram-XADWPNL6.BteLKQAe.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.SiQPH-XM.js → sequenceDiagram-FGHM5R23.BD8jM8oz.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.CTJMsP4p.js → stateDiagram-FHFEXIEX.C8SBkbPH.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BLz7Qyo3.js +1 -0
- package/dist/docs/assets/chunks/{theme.DJo4my9R.js → theme.DiViIOLe.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.CxSNRlQ6.js → timeline-definition-GMOUNBTQ.D64XF5dV.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BdoJskyD.js → vennDiagram-DHZGUBPP.CwmeYan-.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.DmAlXlpu.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.IjIbFn_F.js → wardleyDiagram-NUSXRM2D.5VJ2-5K0.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CPUxDZLH.js → xychartDiagram-5P7HB3ND.Cl6_fZVC.js} +1 -1
- package/dist/docs/assets/{guides_hooks.md.Bfj0pK91.js → guides_hooks.md.B2XfGX50.js} +7 -3
- package/dist/docs/assets/{guides_mcp-oauth.md.BM_eFC0L.js → guides_mcp-oauth.md.Cxq2TxBB.js} +3 -3
- package/dist/docs/assets/{guides_mcp-oauth.md.BM_eFC0L.lean.js → guides_mcp-oauth.md.Cxq2TxBB.lean.js} +1 -1
- package/dist/docs/assets/guides_opentelemetry.md.D4wO7_8v.js +37 -0
- package/dist/docs/assets/guides_opentelemetry.md.D4wO7_8v.lean.js +1 -0
- package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.js +60 -0
- package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.lean.js +1 -0
- package/dist/docs/assets/{guides_slack.md.Bn-WupSE.js → guides_slack.md.ClIyi7FI.js} +8 -3
- package/dist/docs/assets/{guides_slack.md.Bn-WupSE.lean.js → guides_slack.md.ClIyi7FI.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.IplwL25I.js → reference_agent-config.md.CGSx8COP.js} +6 -2
- package/dist/docs/assets/{reference_agent-config.md.IplwL25I.lean.js → reference_agent-config.md.CGSx8COP.lean.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.DYg0CLud.js → reference_channels.md.CNNIS6K7.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.DB7Llw3T.js → reference_cli.md.1o_TqKdt.js} +7 -2
- package/dist/docs/assets/{reference_cli.md.DB7Llw3T.lean.js → reference_cli.md.1o_TqKdt.lean.js} +1 -1
- package/dist/docs/assets/{reference_hooks.md.B1jq3oGl.js → reference_hooks.md.CROr0QgC.js} +13 -7
- package/dist/docs/assets/{reference_hooks.md.B1jq3oGl.lean.js → reference_hooks.md.CROr0QgC.lean.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.03Ryy9ca.js → reference_schedules.md.BqWnJES4.js} +3 -3
- package/dist/docs/assets/reference_sessions.md.Bi6lHttM.js +22 -0
- package/dist/docs/assets/reference_sessions.md.Bi6lHttM.lean.js +1 -0
- package/dist/docs/assets/{reference_skills.md.C2GWh7g8.js → reference_skills.md.Ckddg6KX.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.08XR7lIl.js → reference_tools.md.Bo0UfT0a.js} +1 -1
- package/dist/docs/assets/{style.nMsabY-V.css → style.B9o0luvp.css} +1 -1
- package/dist/docs/building-with-agents.html +37 -37
- package/dist/docs/changelog.html +60 -0
- package/dist/docs/changelog.md +86 -0
- package/dist/docs/deployment.html +37 -37
- package/dist/docs/evals.html +37 -37
- package/dist/docs/guides/agent-to-agent.html +37 -37
- package/dist/docs/guides/bitbucket.html +37 -37
- package/dist/docs/guides/cloud-agents.html +37 -37
- package/dist/docs/guides/convert-automation.html +37 -37
- package/dist/docs/guides/export-grokbot.html +37 -37
- package/dist/docs/guides/github.html +37 -37
- package/dist/docs/guides/gitlab.html +37 -37
- package/dist/docs/guides/grokbot-agents.html +37 -37
- package/dist/docs/guides/hooks.html +45 -41
- package/dist/docs/guides/hooks.md +7 -3
- package/dist/docs/guides/improve.html +37 -37
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/mcp-oauth.html +39 -39
- package/dist/docs/guides/mcp-oauth.md +12 -0
- package/dist/docs/guides/migrate.html +37 -37
- package/dist/docs/guides/opentelemetry.html +62 -70
- package/dist/docs/guides/opentelemetry.md +150 -175
- package/dist/docs/guides/pagerduty.html +119 -0
- package/dist/docs/guides/pagerduty.md +336 -0
- package/dist/docs/guides/slack.html +44 -39
- package/dist/docs/guides/slack.md +41 -0
- package/dist/docs/guides/webhooks.html +37 -37
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +37 -37
- package/dist/docs/index.html +37 -37
- package/dist/docs/llms-full.txt +730 -163
- package/dist/docs/llms.txt +3 -1
- package/dist/docs/quickstart.html +37 -37
- package/dist/docs/reference/agent-config.html +42 -38
- package/dist/docs/reference/agent-config.md +21 -1
- package/dist/docs/reference/artifacts.html +37 -37
- package/dist/docs/reference/channels.html +38 -38
- package/dist/docs/reference/channels.md +7 -2
- package/dist/docs/reference/cli.html +43 -38
- package/dist/docs/reference/cli.md +27 -0
- package/dist/docs/reference/connections.html +37 -37
- package/dist/docs/reference/evals.html +37 -37
- package/dist/docs/reference/extensions.html +37 -37
- package/dist/docs/reference/hooks.html +49 -43
- package/dist/docs/reference/hooks.md +10 -5
- package/dist/docs/reference/http-api.html +37 -37
- package/dist/docs/reference/instructions.html +37 -37
- package/dist/docs/reference/memory.html +37 -37
- package/dist/docs/reference/playground.html +36 -36
- package/dist/docs/reference/project-layout.html +37 -37
- package/dist/docs/reference/prompt.html +37 -37
- package/dist/docs/reference/schedules.html +40 -40
- package/dist/docs/reference/sessions.html +58 -37
- package/dist/docs/reference/sessions.md +46 -1
- package/dist/docs/reference/skills.html +40 -40
- package/dist/docs/reference/subagents.html +37 -37
- package/dist/docs/reference/tools.html +39 -39
- package/dist/docs/reference/tools.md +4 -3
- package/dist/docs/templates/agentic-owners.html +37 -37
- package/dist/docs/templates/grokbot-agents.html +37 -37
- package/dist/docs/templates/security-reviewer.html +37 -37
- package/dist/docs/templates/thermo-quality-review.html +37 -37
- package/dist/docs/templates/thermo-review.html +37 -37
- package/dist/docs/templates/triage.html +37 -37
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +15 -15
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/inputs.js +1 -1
- package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/reply.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-grokbot-agents/extension.js +7 -3
- package/dist/extensions/cursor-grokbot-agents/lib/backend.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/ask.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/check.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
- package/dist/extensions/improve/extension.js +1 -1
- package/dist/extensions/jev/extension.js +2 -2
- package/dist/extensions/jev/tools/evaluate.js +3 -3
- package/dist/extensions/slack-communication/extension.js +1 -1
- package/dist/extensions/slack-communication/tools/delete-message.js +1 -1
- package/dist/extensions/slack-communication/tools/edit-message.d.ts.map +1 -1
- package/dist/extensions/slack-communication/tools/edit-message.js +3 -6
- package/dist/extensions/slack-communication/tools/post-card.js +1 -1
- package/dist/extensions/slack-communication/tools/post-file.js +1 -1
- package/dist/extensions/slack-communication/tools/post-update.d.ts.map +1 -1
- package/dist/extensions/slack-communication/tools/post-update.js +3 -6
- package/dist/extensions/slack-communication/tools/react.js +1 -1
- package/dist/extensions/slack-communication/tools/set-status.js +1 -1
- package/dist/extensions.d.ts +1 -1
- package/dist/extensions.js +1 -1
- package/dist/index.d.ts +14 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/internal/approval-gate.d.ts +4 -2
- package/dist/internal/approval-gate.d.ts.map +1 -1
- package/dist/internal/approval-gate.js +2 -1
- package/dist/internal/as-of.d.ts +2 -0
- package/dist/internal/as-of.d.ts.map +1 -1
- package/dist/internal/as-of.js +2 -0
- package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -1
- package/dist/internal/builtin-tools/artifacts.js +45 -12
- package/dist/internal/builtin-tools/reminders.js +1 -1
- package/dist/internal/channel-architecture.d.ts +1 -1
- package/dist/internal/channel-architecture.d.ts.map +1 -1
- package/dist/internal/channel-architecture.js +4 -2
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +39 -22
- package/dist/internal/cli-pagerduty.d.ts +32 -0
- package/dist/internal/cli-pagerduty.d.ts.map +1 -0
- package/dist/internal/cli-pagerduty.js +242 -0
- package/dist/internal/continuation-channel.d.ts.map +1 -1
- package/dist/internal/continuation-channel.js +7 -0
- package/dist/internal/continuation-identity.d.ts +11 -3
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +83 -0
- package/dist/internal/continuation.d.ts +3 -0
- package/dist/internal/continuation.d.ts.map +1 -0
- package/dist/internal/continuation.js +1 -0
- package/dist/internal/conversation-mirror.d.ts +5 -0
- package/dist/internal/conversation-mirror.d.ts.map +1 -1
- package/dist/internal/conversation-mirror.js +12 -1
- package/dist/internal/convert-automation/convert-workflow.js +1 -1
- package/dist/internal/convert-grokbot/answers.d.ts.map +1 -1
- package/dist/internal/convert-grokbot/answers.js +10 -8
- package/dist/internal/convert-grokbot/recipe.d.ts +1 -1
- package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -1
- package/dist/internal/convert-grokbot/recipe.js +1 -1
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +2 -0
- package/dist/internal/cursor/backend-client.d.ts +8 -3
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +8 -3
- package/dist/internal/cursor/credentials.d.ts +2 -2
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +1 -1
- package/dist/internal/cursor-account-mcp-auth.d.ts +6 -2
- package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
- package/dist/internal/cursor-account-mcp-auth.js +15 -6
- package/dist/internal/deferred-channel-session.d.ts +5 -4
- package/dist/internal/deferred-channel-session.d.ts.map +1 -1
- package/dist/internal/deferred-channel-session.js +6 -4
- package/dist/internal/deploy-client.d.ts +5 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +3 -3
- package/dist/internal/deploy-manifest.d.ts +11 -4
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +19 -7
- package/dist/internal/describe-error.d.ts +2 -0
- package/dist/internal/describe-error.d.ts.map +1 -1
- package/dist/internal/describe-error.js +2 -0
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +10 -10
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +10 -10
- package/dist/internal/discovery/channels.d.ts.map +1 -1
- package/dist/internal/discovery/channels.js +20 -16
- package/dist/internal/discovery/context.d.ts +16 -0
- package/dist/internal/discovery/context.d.ts.map +1 -1
- package/dist/internal/discovery/context.js +67 -2
- package/dist/internal/discovery/cursor-plugin.js +8 -8
- package/dist/internal/discovery/extension-overlay.d.ts.map +1 -1
- package/dist/internal/discovery/extension-overlay.js +2 -6
- package/dist/internal/discovery/extensions.js +15 -8
- package/dist/internal/discovery/info.d.ts +2 -2
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +9 -9
- package/dist/internal/discovery/instructions.d.ts.map +1 -1
- package/dist/internal/discovery/instructions.js +3 -6
- package/dist/internal/discovery/instrumentation.d.ts +10 -0
- package/dist/internal/discovery/instrumentation.d.ts.map +1 -0
- package/dist/internal/discovery/instrumentation.js +29 -0
- package/dist/internal/discovery/modules.d.ts.map +1 -1
- package/dist/internal/discovery/modules.js +7 -10
- package/dist/internal/discovery/project-public.d.ts +16 -0
- package/dist/internal/discovery/project-public.d.ts.map +1 -0
- package/dist/internal/discovery/project-public.js +54 -0
- package/dist/internal/discovery/project.d.ts +6 -0
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +40 -8
- package/dist/internal/discovery/runtime.d.ts.map +1 -1
- package/dist/internal/discovery/runtime.js +8 -8
- package/dist/internal/discovery/services.d.ts +5 -4
- package/dist/internal/discovery/services.d.ts.map +1 -1
- package/dist/internal/discovery/services.js +12 -6
- package/dist/internal/discovery.d.ts +1 -1
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +1 -1
- package/dist/internal/event-mapper.d.ts.map +1 -1
- package/dist/internal/event-mapper.js +1 -0
- package/dist/internal/expected-delivery-failure.d.ts.map +1 -1
- package/dist/internal/expected-delivery-failure.js +6 -0
- package/dist/internal/factory-resource-channel.d.ts +1 -1
- package/dist/internal/factory-resource-channel.d.ts.map +1 -1
- package/dist/internal/filesystem/nearest.d.ts +1 -0
- package/dist/internal/filesystem/nearest.d.ts.map +1 -1
- package/dist/internal/filesystem/nearest.js +1 -0
- package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -1
- package/dist/internal/filesystem/sdk-schemas.js +4 -3
- package/dist/internal/filesystem/tools.d.ts.map +1 -1
- package/dist/internal/filesystem/tools.js +1 -1
- package/dist/internal/handleAgentServeTrigger.d.ts +10 -0
- package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -1
- package/dist/internal/handleAgentServeTrigger.js +3 -0
- package/dist/internal/hmac-secret-values.d.ts +48 -0
- package/dist/internal/hmac-secret-values.d.ts.map +1 -0
- package/dist/internal/hmac-secret-values.js +68 -0
- package/dist/internal/host-otel.d.ts +1 -1
- package/dist/internal/host-otel.d.ts.map +1 -1
- package/dist/internal/host-otel.js +5 -0
- package/dist/internal/host-platforms.d.ts.map +1 -1
- package/dist/internal/host-platforms.js +8 -2
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +6 -2
- package/dist/internal/http-channel.d.ts.map +1 -1
- package/dist/internal/http-channel.js +1 -0
- package/dist/internal/ids.d.ts +8 -0
- package/dist/internal/ids.d.ts.map +1 -1
- package/dist/internal/ids.js +20 -0
- package/dist/internal/init-scaffold.js +1 -1
- package/dist/internal/interview/agent-questions.d.ts +1 -1
- package/dist/internal/interview/agent-questions.d.ts.map +1 -1
- package/dist/internal/interview/agent-questions.js +1 -1
- package/dist/internal/interview/question.d.ts +2 -2
- package/dist/internal/interview/question.d.ts.map +1 -1
- package/dist/internal/interview/question.js +2 -2
- package/dist/internal/json-schema.d.ts +7 -7
- package/dist/internal/json-schema.d.ts.map +1 -1
- package/dist/internal/json-schema.js +16 -23
- package/dist/internal/mcp-endpoint.d.ts +16 -4
- package/dist/internal/mcp-endpoint.d.ts.map +1 -1
- package/dist/internal/mcp-endpoint.js +18 -6
- package/dist/internal/mcp-host.d.ts +9 -0
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +15 -0
- package/dist/internal/otel/collector.d.ts +5 -0
- package/dist/internal/otel/collector.d.ts.map +1 -1
- package/dist/internal/otel/collector.js +27 -6
- package/dist/internal/otel/config.d.ts +37 -22
- package/dist/internal/otel/config.d.ts.map +1 -1
- package/dist/internal/otel/config.js +132 -125
- package/dist/internal/otel/conversation-span-processor.d.ts +9 -0
- package/dist/internal/otel/conversation-span-processor.d.ts.map +1 -0
- package/dist/internal/otel/conversation-span-processor.js +34 -0
- package/dist/internal/otel/customer.d.ts +52 -0
- package/dist/internal/otel/customer.d.ts.map +1 -0
- package/dist/internal/otel/customer.js +727 -0
- package/dist/internal/otel/runtime.d.ts +12 -16
- package/dist/internal/otel/runtime.d.ts.map +1 -1
- package/dist/internal/otel/runtime.js +37 -218
- package/dist/internal/otel-env.d.ts +6 -0
- package/dist/internal/otel-env.d.ts.map +1 -0
- package/dist/internal/otel-env.js +5 -0
- package/dist/internal/package-inline-stdio.d.ts.map +1 -1
- package/dist/internal/package-inline-stdio.js +21 -6
- package/dist/internal/reminder-runner.d.ts +9 -4
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +12 -10
- package/dist/internal/reminder-schedule.d.ts +1 -0
- package/dist/internal/reminder-schedule.d.ts.map +1 -1
- package/dist/internal/reminder-schedule.js +1 -0
- package/dist/internal/sdk-runner.d.ts +4 -3
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +157 -17
- package/dist/internal/secret-alternatives.d.ts +11 -0
- package/dist/internal/secret-alternatives.d.ts.map +1 -0
- package/dist/internal/secret-alternatives.js +13 -0
- package/dist/internal/server.d.ts +4 -1
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +27 -26
- package/dist/internal/session-engine.d.ts +27 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +154 -25
- package/dist/internal/slack-provision-client.js +1 -1
- package/dist/internal/sqlite-experimental-warning.d.ts +2 -0
- package/dist/internal/sqlite-experimental-warning.d.ts.map +1 -0
- package/dist/internal/sqlite-experimental-warning.js +22 -0
- package/dist/internal/store-api-protocol.d.ts +1 -1
- package/dist/internal/store-api-protocol.d.ts.map +1 -1
- package/dist/internal/store-api-protocol.js +1 -1
- package/dist/internal/testing/conversation-identity-vectors.d.ts +6 -1
- package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -1
- package/dist/internal/testing/conversation-identity-vectors.js +34 -0
- package/dist/internal/testing/hmac-secret-vectors.d.ts +38 -0
- package/dist/internal/testing/hmac-secret-vectors.d.ts.map +1 -0
- package/dist/internal/testing/hmac-secret-vectors.js +89 -0
- package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts +42 -0
- package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts.map +1 -0
- package/dist/internal/testing/pagerduty-continuation-fixtures.js +175 -0
- package/dist/internal/update-check.d.ts +2 -2
- package/dist/internal/update-check.d.ts.map +1 -1
- package/dist/internal/update-check.js +3 -3
- package/dist/internal/zod-schema.d.ts +14 -0
- package/dist/internal/zod-schema.d.ts.map +1 -0
- package/dist/internal/zod-schema.js +22 -0
- package/dist/internal/zod3-datetime.d.ts +12 -0
- package/dist/internal/zod3-datetime.d.ts.map +1 -0
- package/dist/internal/zod3-datetime.js +17 -0
- package/dist/otel-public.d.ts +2 -3
- package/dist/otel-public.d.ts.map +1 -1
- package/dist/otel-public.js +2 -2
- package/dist/otel.d.ts +3 -102
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +61 -97
- package/dist/playground/assets/cursor-icons-16-DmHBTm1-.woff2 +0 -0
- package/dist/playground/assets/index-CyPkf2y7.css +1 -0
- package/dist/playground/assets/index-DpbzbqFY.js +62 -0
- package/dist/playground/index.html +2 -2
- package/dist/public-deprecated.d.ts +36 -0
- package/dist/public-deprecated.d.ts.map +1 -0
- package/dist/public-deprecated.js +39 -0
- package/dist/tools.d.ts +16 -13
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +4 -3
- package/dist/types.d.ts +286 -104
- package/dist/types.d.ts.map +1 -1
- package/docs/changelog.md +91 -0
- package/docs/guides/hooks.md +7 -3
- package/docs/guides/mcp-oauth.md +12 -0
- package/docs/guides/opentelemetry.md +150 -180
- package/docs/guides/pagerduty.md +341 -0
- package/docs/guides/slack.md +41 -0
- package/docs/reference/agent-config.md +21 -1
- package/docs/reference/channels.md +7 -2
- package/docs/reference/cli.md +27 -0
- package/docs/reference/hooks.md +10 -5
- package/docs/reference/sessions.md +46 -1
- package/docs/reference/tools.md +4 -3
- package/package.json +39 -8
- package/schemas/grokbot-answers.schema.json +11 -0
- package/skills/framework-map/SKILL.md +2 -1
- package/skills/migrate-v2/SKILL.md +1 -1
- package/skills/otel/SKILL.md +30 -46
- package/templates/agentic-owners/README.md +6 -1
- package/templates/agentic-owners/bot/lib/owners/decision.ts +31 -5
- package/templates/agentic-owners/bot/lib/owners/globalOverride.ts +60 -0
- package/templates/agentic-owners/bot/lib/owners/match.ts +85 -19
- package/templates/agentic-owners/bot/lib/owners/parse.ts +133 -2
- package/templates/agentic-owners/bot/lib/owners/types.ts +23 -0
- package/templates/code-wiki/evals/wiki.eval.ts +2 -2
- package/dist/docs/assets/chunks/@localSearchIndexroot.3ebvCWKy.js +0 -1
- package/dist/docs/assets/chunks/channel.BOebySCN.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C55IaN-T.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C55IaN-T.js +0 -1
- package/dist/docs/assets/chunks/clone.D06pA7ML.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DddRVjeq.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.CVCRSuQK.js +0 -162
- package/dist/docs/assets/guides_opentelemetry.md.Ck1o2frw.js +0 -45
- package/dist/docs/assets/guides_opentelemetry.md.Ck1o2frw.lean.js +0 -1
- package/dist/docs/assets/reference_sessions.md.C8FXuGwk.js +0 -1
- package/dist/docs/assets/reference_sessions.md.C8FXuGwk.lean.js +0 -1
- package/dist/playground/assets/cursor-icons-16-gwXtdAvu.woff2 +0 -0
- package/dist/playground/assets/index-DKKdkF29.js +0 -62
- package/dist/playground/assets/index-DpKinTMs.css +0 -1
- package/templates/grokbot-agents/.gitignore +0 -4
- package/templates/security-help/.gitignore +0 -4
- /package/dist/docs/assets/{guides_hooks.md.Bfj0pK91.lean.js → guides_hooks.md.B2XfGX50.lean.js} +0 -0
- /package/dist/docs/assets/{reference_channels.md.DYg0CLud.lean.js → reference_channels.md.CNNIS6K7.lean.js} +0 -0
- /package/dist/docs/assets/{reference_schedules.md.03Ryy9ca.lean.js → reference_schedules.md.BqWnJES4.lean.js} +0 -0
- /package/dist/docs/assets/{reference_skills.md.C2GWh7g8.lean.js → reference_skills.md.Ckddg6KX.lean.js} +0 -0
- /package/dist/docs/assets/{reference_tools.md.08XR7lIl.lean.js → reference_tools.md.Bo0UfT0a.lean.js} +0 -0
|
@@ -99,14 +99,14 @@ export interface GitLabApi {
|
|
|
99
99
|
listMergeRequestDiffs(iid: number): Promise<GitLabApiMergeRequestDiff[]>;
|
|
100
100
|
}
|
|
101
101
|
/** `GITLAB_TOKEN` when set. */
|
|
102
|
-
export declare function envGitLabToken(env?:
|
|
102
|
+
export declare function envGitLabToken(env?: Record<string, string | undefined>): string | undefined;
|
|
103
103
|
/**
|
|
104
104
|
* REST base for direct calls: `GITLAB_API_BASE_URL`, else `/api/v4` on the
|
|
105
105
|
* given project web URL's origin (self-managed hosts), else gitlab.com.
|
|
106
106
|
*/
|
|
107
107
|
export declare function gitlabApiBaseUrl(input?: {
|
|
108
108
|
projectWebUrl?: string;
|
|
109
|
-
env?:
|
|
109
|
+
env?: Record<string, string | undefined>;
|
|
110
110
|
}): string;
|
|
111
111
|
/**
|
|
112
112
|
* GitLab's `:id` path segment accepts a numeric id or a URL-encoded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/gitlab/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/gitlab/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AAEvE,wEAAwE;AACxE,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1E,sEAAsE;AACtE,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAOjF;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAEjE,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,wEAAwE;IACxE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACrC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,eAAe,CAAC;IACxB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uEAAuE;IACvE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACtD;AAED,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7D,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5E,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAC;CAC1E;AAOD,+BAA+B;AAC/B,wBAAgB,cAAc,CAC5B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,MAAM,GAAG,SAAS,CAEpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,MAAM,CAaT;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAIzE;AAcD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EACrC,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,SAAS,CAwEX;AAgBD,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAmElF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
2
|
import { allowAll, defineChannel, localDevStrict, loopbackOnly, POST, sharedSecretAuth, } from "../../channels.js";
|
|
3
3
|
import { withPropagatingBackgroundErrors } from "../../internal/channel-dispatch.js";
|
|
4
4
|
import { normalizeIdentity } from "../../internal/continuation-identity.js";
|
|
@@ -62,17 +62,17 @@ export interface OriginAppCredentials {
|
|
|
62
62
|
privateKey: string;
|
|
63
63
|
}
|
|
64
64
|
/** Each Origin app credential field found in the environment, when set. */
|
|
65
|
-
export declare function resolveOriginAppCredentialParts(env?:
|
|
65
|
+
export declare function resolveOriginAppCredentialParts(env?: Record<string, string | undefined>): Partial<OriginAppCredentials>;
|
|
66
66
|
/**
|
|
67
67
|
* Read Origin app credentials from the environment. Returns `undefined` when
|
|
68
68
|
* incomplete so callers can fail with a clear message at use time instead of
|
|
69
69
|
* at startup.
|
|
70
70
|
*/
|
|
71
|
-
export declare function resolveOriginAppCredentials(env?:
|
|
71
|
+
export declare function resolveOriginAppCredentials(env?: Record<string, string | undefined>): OriginAppCredentials | undefined;
|
|
72
72
|
/** Public Origin REST base. Trailing slashes are stripped for path joins. */
|
|
73
|
-
export declare function originPublicApiBaseUrl(env?:
|
|
73
|
+
export declare function originPublicApiBaseUrl(env?: Record<string, string | undefined>): string;
|
|
74
74
|
/** Origin ConnectRPC base. Trailing slashes are stripped for path joins. */
|
|
75
|
-
export declare function originRpcBaseUrl(env?:
|
|
75
|
+
export declare function originRpcBaseUrl(env?: Record<string, string | undefined>): string;
|
|
76
76
|
/**
|
|
77
77
|
* Exchange endpoint for Cursor-account session tokens. Override with
|
|
78
78
|
* `AGENT_SERVE_CURSOR_SESSION_EXCHANGE_URL`; defaults to the Cursor backend.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/origin/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAWH;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,2BAA2B,CAAC;AAE3E;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,kCAAkC,CAAC;AAS3E,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1E,sEAAsE;AACtE,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAOjF;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,2EAA2E;AAC3E,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/origin/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
2
|
import { allowAll, defineChannel, localDevStrict, loopbackOnly, POST } from "../../channels.js";
|
|
3
3
|
import { acknowledgeTask, isTaskDispatch, skipped, turnStarted, withPropagatingBackgroundErrors, } from "../../internal/channel-dispatch.js";
|
|
4
4
|
import { continuationSource, normalizeIdentity } from "../../internal/continuation-identity.js";
|
|
@@ -9,7 +9,7 @@ export type OriginWebhookHeaders = {
|
|
|
9
9
|
export declare function buildV1edSignedContentDigest(args: {
|
|
10
10
|
webhookId: string;
|
|
11
11
|
timestampSeconds: number;
|
|
12
|
-
body: string |
|
|
12
|
+
body: string | Uint8Array;
|
|
13
13
|
}): string;
|
|
14
14
|
/**
|
|
15
15
|
* Verify a delivery's Standard Webhooks headers against the Origin signing
|
|
@@ -18,7 +18,7 @@ export declare function buildV1edSignedContentDigest(args: {
|
|
|
18
18
|
*/
|
|
19
19
|
export declare function verifyV1edWebhookPayload(args: {
|
|
20
20
|
publicJwks: readonly OriginJwk[];
|
|
21
|
-
body: string |
|
|
21
|
+
body: string | Uint8Array;
|
|
22
22
|
headers: OriginWebhookHeaders;
|
|
23
23
|
nowMs?: number;
|
|
24
24
|
}): boolean;
|
|
@@ -63,7 +63,7 @@ export declare class OriginJwksUnavailableError extends Error {
|
|
|
63
63
|
* {@link OriginJwksUnavailableError} when the keys cannot be fetched, and a
|
|
64
64
|
* plain error when the signature does not verify against them.
|
|
65
65
|
*/
|
|
66
|
-
export declare function verifyOriginWebhook(body: string |
|
|
66
|
+
export declare function verifyOriginWebhook(body: string | Uint8Array, headers: OriginWebhookHeaders, options?: VerifyOriginWebhookOptions): Promise<void>;
|
|
67
67
|
/** Test helper: drop the in-process JWKS cache. */
|
|
68
68
|
export declare function resetOriginWebhookKeysCache(): void;
|
|
69
69
|
//# sourceMappingURL=origin-webhook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"origin-webhook.d.ts","sourceRoot":"","sources":["../../../src/channels/origin/origin-webhook.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAC7C,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AAWvE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"origin-webhook.d.ts","sourceRoot":"","sources":["../../../src/channels/origin/origin-webhook.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAC7C,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AAWvE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;CAC3B,GAAG,MAAM,CAMT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IACjC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAuDV;AAgBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEhG;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,MAAM,GAAG,SAAS,CAEpB;AAWD,MAAM,MAAM,sBAAsB,GAAG;IACnC,oFAAoF;IACpF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,OAAO,KAAa,EAC/B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CA6C/B;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;CAAG;AAgBxD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,GAAG,UAAU,EACzB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,mDAAmD;AACnD,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A minimal PagerDuty REST client for write-backs (notes, incident updates).
|
|
3
|
+
* Every credential defaults to a well-known env var / deployment secret and
|
|
4
|
+
* is read per call, so a hosted deployment, which receives its secrets per
|
|
5
|
+
* request, sees them.
|
|
6
|
+
*/
|
|
7
|
+
import type { WebhookSecretValue } from "../../internal/named-webhook-secret.js";
|
|
8
|
+
import type { PagerDutyChannelOptions } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* API token: a REST API key (user or account level), or an OAuth access
|
|
11
|
+
* token written as `Bearer <token>`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const PAGERDUTY_TOKEN_ENV = "PAGERDUTY_TOKEN";
|
|
14
|
+
/** REST base override, e.g. `https://api.eu.pagerduty.com` for the EU service region. */
|
|
15
|
+
export declare const PAGERDUTY_API_BASE_URL_ENV = "PAGERDUTY_API_BASE_URL";
|
|
16
|
+
/** `From` email for write calls made with an account-level REST API key. */
|
|
17
|
+
export declare const PAGERDUTY_FROM_EMAIL_ENV = "PAGERDUTY_FROM_EMAIL";
|
|
18
|
+
export declare const PAGERDUTY_DEFAULT_API_BASE_URL = "https://api.pagerduty.com";
|
|
19
|
+
/**
|
|
20
|
+
* The REST base for a call: the authored `apiBaseUrl`, else
|
|
21
|
+
* `PAGERDUTY_API_BASE_URL`, else `https://api.pagerduty.com`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function pagerDutyApiBaseUrl(apiBaseUrl?: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* `Authorization` for a token: a value already written as `Bearer <token>`
|
|
26
|
+
* (an OAuth access token) is sent as-is; anything else is a REST API key.
|
|
27
|
+
*/
|
|
28
|
+
export declare function pagerDutyAuthorizationHeader(token: string): string;
|
|
29
|
+
export interface PagerDutyClientOptions {
|
|
30
|
+
/** Falls back to `PAGERDUTY_TOKEN`. */
|
|
31
|
+
token?: WebhookSecretValue;
|
|
32
|
+
/** Falls back to `PAGERDUTY_API_BASE_URL`, else `https://api.pagerduty.com`. */
|
|
33
|
+
apiBaseUrl?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Email of a PagerDuty user, sent as `From` on every call. PagerDuty
|
|
36
|
+
* requires it for writes made with an account-level API key; a user token
|
|
37
|
+
* acts as its own user. Falls back to `PAGERDUTY_FROM_EMAIL`.
|
|
38
|
+
*/
|
|
39
|
+
from?: WebhookSecretValue;
|
|
40
|
+
/** Fetch implementation; defaults to the global `fetch`. */
|
|
41
|
+
fetch?: typeof fetch;
|
|
42
|
+
}
|
|
43
|
+
export declare class PagerDutyApiError extends Error {
|
|
44
|
+
readonly status: number;
|
|
45
|
+
readonly body: string;
|
|
46
|
+
constructor(input: {
|
|
47
|
+
method: string;
|
|
48
|
+
path: string;
|
|
49
|
+
status: number;
|
|
50
|
+
body: string;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export interface PagerDutyClient {
|
|
54
|
+
/** One REST call; `path` is relative to the API base, e.g. `/incidents/PINC001`. */
|
|
55
|
+
request<T = unknown>(input: {
|
|
56
|
+
method: string;
|
|
57
|
+
path: string;
|
|
58
|
+
body?: unknown;
|
|
59
|
+
}): Promise<T>;
|
|
60
|
+
/** `POST /incidents/{id}/notes`. Returns the created note. */
|
|
61
|
+
addNote(input: {
|
|
62
|
+
incidentId: string;
|
|
63
|
+
content: string;
|
|
64
|
+
}): Promise<{
|
|
65
|
+
id: string;
|
|
66
|
+
content: string;
|
|
67
|
+
}>;
|
|
68
|
+
/** `GET /incidents/{id}`, the incident's current state. */
|
|
69
|
+
getIncident(incidentId: string): Promise<Record<string, unknown>>;
|
|
70
|
+
}
|
|
71
|
+
export declare function createPagerDutyClient(options?: PagerDutyClientOptions): PagerDutyClient;
|
|
72
|
+
/** The REST client for a channel's credentials, each falling back to its well-known secret. */
|
|
73
|
+
export declare function pagerDutyChannelClient(options: Pick<PagerDutyChannelOptions, "token" | "from" | "apiBaseUrl">): PagerDutyClient;
|
|
74
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/pagerduty/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAEjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,yFAAyF;AACzF,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D,eAAO,MAAM,8BAA8B,8BAA8B,CAAC;AAE1E;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAKhF;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1F,8DAA8D;IAC9D,OAAO,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClG,2DAA2D;IAC3D,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CAyD3F;AAED,+FAA+F;AAC/F,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,IAAI,CAAC,uBAAuB,EAAE,OAAO,GAAG,MAAM,GAAG,YAAY,CAAC,GACtE,eAAe,CAMjB"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A minimal PagerDuty REST client for write-backs (notes, incident updates).
|
|
3
|
+
* Every credential defaults to a well-known env var / deployment secret and
|
|
4
|
+
* is read per call, so a hosted deployment, which receives its secrets per
|
|
5
|
+
* request, sees them.
|
|
6
|
+
*/
|
|
7
|
+
import { pagerDutySecretName, resolvePagerDutySecret } from "./secrets.js";
|
|
8
|
+
/**
|
|
9
|
+
* API token: a REST API key (user or account level), or an OAuth access
|
|
10
|
+
* token written as `Bearer <token>`.
|
|
11
|
+
*/
|
|
12
|
+
export const PAGERDUTY_TOKEN_ENV = "PAGERDUTY_TOKEN";
|
|
13
|
+
/** REST base override, e.g. `https://api.eu.pagerduty.com` for the EU service region. */
|
|
14
|
+
export const PAGERDUTY_API_BASE_URL_ENV = "PAGERDUTY_API_BASE_URL";
|
|
15
|
+
/** `From` email for write calls made with an account-level REST API key. */
|
|
16
|
+
export const PAGERDUTY_FROM_EMAIL_ENV = "PAGERDUTY_FROM_EMAIL";
|
|
17
|
+
export const PAGERDUTY_DEFAULT_API_BASE_URL = "https://api.pagerduty.com";
|
|
18
|
+
/**
|
|
19
|
+
* The REST base for a call: the authored `apiBaseUrl`, else
|
|
20
|
+
* `PAGERDUTY_API_BASE_URL`, else `https://api.pagerduty.com`.
|
|
21
|
+
*/
|
|
22
|
+
export function pagerDutyApiBaseUrl(apiBaseUrl) {
|
|
23
|
+
return (apiBaseUrl ??
|
|
24
|
+
resolvePagerDutySecret(undefined, PAGERDUTY_API_BASE_URL_ENV) ??
|
|
25
|
+
PAGERDUTY_DEFAULT_API_BASE_URL).replace(/\/+$/, "");
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* `Authorization` for a token: a value already written as `Bearer <token>`
|
|
29
|
+
* (an OAuth access token) is sent as-is; anything else is a REST API key.
|
|
30
|
+
*/
|
|
31
|
+
export function pagerDutyAuthorizationHeader(token) {
|
|
32
|
+
return /^bearer\s/i.test(token) ? token : `Token token=${token}`;
|
|
33
|
+
}
|
|
34
|
+
export class PagerDutyApiError extends Error {
|
|
35
|
+
constructor(input) {
|
|
36
|
+
super(`PagerDuty ${input.method} ${input.path} failed with ${input.status}`);
|
|
37
|
+
this.name = "PagerDutyApiError";
|
|
38
|
+
this.status = input.status;
|
|
39
|
+
this.body = input.body;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function createPagerDutyClient(options = {}) {
|
|
43
|
+
const request = async (input) => {
|
|
44
|
+
const token = resolvePagerDutySecret(options.token, PAGERDUTY_TOKEN_ENV);
|
|
45
|
+
if (token === undefined) {
|
|
46
|
+
const name = pagerDutySecretName(options.token, PAGERDUTY_TOKEN_ENV) ?? PAGERDUTY_TOKEN_ENV;
|
|
47
|
+
throw new Error(`PagerDuty API token is not set: set ${name} (\`bdk secrets set <slug> ${name}\`) or pass \`token\`.`);
|
|
48
|
+
}
|
|
49
|
+
const from = resolvePagerDutySecret(options.from, PAGERDUTY_FROM_EMAIL_ENV);
|
|
50
|
+
const base = pagerDutyApiBaseUrl(options.apiBaseUrl);
|
|
51
|
+
const headers = {
|
|
52
|
+
Accept: "application/vnd.pagerduty+json;version=2",
|
|
53
|
+
Authorization: pagerDutyAuthorizationHeader(token),
|
|
54
|
+
"Content-Type": "application/json",
|
|
55
|
+
};
|
|
56
|
+
if (from !== undefined) {
|
|
57
|
+
headers.From = from;
|
|
58
|
+
}
|
|
59
|
+
const response = await (options.fetch ?? fetch)(`${base}${input.path}`, {
|
|
60
|
+
method: input.method,
|
|
61
|
+
headers,
|
|
62
|
+
body: input.body === undefined ? undefined : JSON.stringify(input.body),
|
|
63
|
+
});
|
|
64
|
+
const text = await response.text();
|
|
65
|
+
if (!response.ok) {
|
|
66
|
+
throw new PagerDutyApiError({
|
|
67
|
+
method: input.method,
|
|
68
|
+
path: input.path,
|
|
69
|
+
status: response.status,
|
|
70
|
+
body: text,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return (text === "" ? undefined : JSON.parse(text));
|
|
74
|
+
};
|
|
75
|
+
return {
|
|
76
|
+
request,
|
|
77
|
+
addNote: async ({ incidentId, content }) => {
|
|
78
|
+
const created = await request({
|
|
79
|
+
method: "POST",
|
|
80
|
+
path: `/incidents/${encodeURIComponent(incidentId)}/notes`,
|
|
81
|
+
body: { note: { content } },
|
|
82
|
+
});
|
|
83
|
+
return created.note;
|
|
84
|
+
},
|
|
85
|
+
getIncident: async (incidentId) => {
|
|
86
|
+
const found = await request({
|
|
87
|
+
method: "GET",
|
|
88
|
+
path: `/incidents/${encodeURIComponent(incidentId)}`,
|
|
89
|
+
});
|
|
90
|
+
return found.incident;
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/** The REST client for a channel's credentials, each falling back to its well-known secret. */
|
|
95
|
+
export function pagerDutyChannelClient(options) {
|
|
96
|
+
return createPagerDutyClient({
|
|
97
|
+
token: options.token,
|
|
98
|
+
from: options.from,
|
|
99
|
+
apiBaseUrl: options.apiBaseUrl,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default dispatch decisions for the PagerDuty channel: turn auth derived
|
|
3
|
+
* from the event's agent, the title and message a turn starts with, which
|
|
4
|
+
* lifecycle events dispatch when no `onIncident` hook exists, and the
|
|
5
|
+
* stream handlers that post replies back to the incident.
|
|
6
|
+
*/
|
|
7
|
+
import type { AuthContext, ChannelEventHandlers } from "../../types.js";
|
|
8
|
+
import type { PagerDutyChannelState } from "./state.js";
|
|
9
|
+
import type { PagerDutyChannelOptions, PagerDutyEventContext, PagerDutyIncidentEvent, PagerDutyTurnDispatch } from "./types.js";
|
|
10
|
+
type DispatchContext = Omit<PagerDutyEventContext, "host" | "artifacts" | "send" | "pagerduty">;
|
|
11
|
+
/**
|
|
12
|
+
* Derive the turn's auth from who made the change: a PagerDuty user, a
|
|
13
|
+
* service integration, or PagerDuty itself. The webhook subscriber is not
|
|
14
|
+
* the turn principal (same pattern as `defaultGitHubAuth`).
|
|
15
|
+
*/
|
|
16
|
+
export declare function defaultPagerDutyAuth(ctx: DispatchContext): AuthContext;
|
|
17
|
+
export declare function defaultPagerDutyTitle(ctx: Pick<PagerDutyEventContext, "eventType" | "incidentId">, incident?: {
|
|
18
|
+
number?: number;
|
|
19
|
+
title?: string;
|
|
20
|
+
}): string;
|
|
21
|
+
/** The facts of a lifecycle event, one per line, for the turn's first message. */
|
|
22
|
+
export declare function defaultPagerDutyIncidentMessage(ctx: DispatchContext, event: PagerDutyIncidentEvent): string;
|
|
23
|
+
/**
|
|
24
|
+
* Default gate when no `onIncident` hook is declared: a new or reopened
|
|
25
|
+
* incident starts a turn as the event's agent. Acknowledgements,
|
|
26
|
+
* escalations, and resolves are acknowledged without one.
|
|
27
|
+
*/
|
|
28
|
+
export declare function defaultPagerDutyIncidentDispatch(ctx: DispatchContext, event: PagerDutyIncidentEvent): PagerDutyTurnDispatch | null;
|
|
29
|
+
/**
|
|
30
|
+
* Opt-in delivery (`deliverReplies: true`): post each completed assistant
|
|
31
|
+
* reply as a note on the session's incident, and a short note when a turn
|
|
32
|
+
* or session fails. Skipped when the session names no incident or is an
|
|
33
|
+
* eval run, or when the channel has no token (a read-only agent).
|
|
34
|
+
*
|
|
35
|
+
* A posted note comes back as an `incident.annotated` event, which only the
|
|
36
|
+
* echo skip keeps from starting another turn. So nothing is posted until the
|
|
37
|
+
* agent's own PagerDuty user resolves (see `selfUserIds`); until then each
|
|
38
|
+
* skipped note logs a warning.
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildDefaultPagerDutyEvents(options: Pick<PagerDutyChannelOptions, "deliverReplies" | "selfUserIds" | "token" | "from" | "apiBaseUrl">): ChannelEventHandlers<PagerDutyChannelState>;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/channels/pagerduty/defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAIxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,KAAK,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC;AAEhG;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,WAAW,CA2BtE;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,IAAI,CAAC,qBAAqB,EAAE,WAAW,GAAG,YAAY,CAAC,EAC5D,QAAQ,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,MAAM,CAOR;AAED,kFAAkF;AAClF,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,sBAAsB,GAC5B,MAAM,CAeR;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,sBAAsB,GAC5B,qBAAqB,GAAG,IAAI,CAK9B;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,IAAI,CACX,uBAAuB,EACvB,gBAAgB,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,CACnE,GACA,oBAAoB,CAAC,qBAAqB,CAAC,CAgD7C"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default dispatch decisions for the PagerDuty channel: turn auth derived
|
|
3
|
+
* from the event's agent, the title and message a turn starts with, which
|
|
4
|
+
* lifecycle events dispatch when no `onIncident` hook exists, and the
|
|
5
|
+
* stream handlers that post replies back to the incident.
|
|
6
|
+
*/
|
|
7
|
+
import { PAGERDUTY_TOKEN_ENV, pagerDutyChannelClient } from "./api.js";
|
|
8
|
+
import { resolvePagerDutySecret } from "./secrets.js";
|
|
9
|
+
import { PAGERDUTY_USER_ID_ENV, resolvePagerDutySelfUserIds } from "./self-user.js";
|
|
10
|
+
/**
|
|
11
|
+
* Derive the turn's auth from who made the change: a PagerDuty user, a
|
|
12
|
+
* service integration, or PagerDuty itself. The webhook subscriber is not
|
|
13
|
+
* the turn principal (same pattern as `defaultGitHubAuth`).
|
|
14
|
+
*/
|
|
15
|
+
export function defaultPagerDutyAuth(ctx) {
|
|
16
|
+
const agent = ctx.agent;
|
|
17
|
+
const isUser = agent?.type === "user_reference" || agent?.type === "user";
|
|
18
|
+
const attributes = {
|
|
19
|
+
conversation_kind: "incident",
|
|
20
|
+
event_type: ctx.eventType,
|
|
21
|
+
event_id: ctx.eventId,
|
|
22
|
+
issuer: ctx.accountSubdomain === undefined ? "pagerduty" : `pagerduty:${ctx.accountSubdomain}`,
|
|
23
|
+
};
|
|
24
|
+
if (ctx.incidentId !== undefined) {
|
|
25
|
+
attributes.incident_id = ctx.incidentId;
|
|
26
|
+
}
|
|
27
|
+
if (ctx.incidentKey !== undefined) {
|
|
28
|
+
attributes.incident_key = ctx.incidentKey;
|
|
29
|
+
}
|
|
30
|
+
if (ctx.deliveryId !== undefined) {
|
|
31
|
+
attributes.delivery_id = ctx.deliveryId;
|
|
32
|
+
}
|
|
33
|
+
if (agent !== undefined) {
|
|
34
|
+
attributes.subject = agent.id;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
authenticator: "pagerduty-webhook",
|
|
38
|
+
principalId: agent === undefined ? "pagerduty" : `pagerduty:${agent.id}`,
|
|
39
|
+
principalType: isUser ? "user" : "service",
|
|
40
|
+
attributes,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function defaultPagerDutyTitle(ctx, incident) {
|
|
44
|
+
if (incident?.number !== undefined && incident.title !== undefined) {
|
|
45
|
+
return `PagerDuty #${incident.number}: ${incident.title}`;
|
|
46
|
+
}
|
|
47
|
+
return ctx.incidentId === undefined
|
|
48
|
+
? `PagerDuty ${ctx.eventType}`
|
|
49
|
+
: `PagerDuty incident ${ctx.incidentId}`;
|
|
50
|
+
}
|
|
51
|
+
/** The facts of a lifecycle event, one per line, for the turn's first message. */
|
|
52
|
+
export function defaultPagerDutyIncidentMessage(ctx, event) {
|
|
53
|
+
const incident = event.incident;
|
|
54
|
+
return [
|
|
55
|
+
`PagerDuty ${ctx.eventType}: ${incident.number === undefined ? incident.id : `#${incident.number}`}`,
|
|
56
|
+
...(incident.title === undefined ? [] : [`Title: ${incident.title}`]),
|
|
57
|
+
...(incident.status === undefined ? [] : [`Status: ${incident.status}`]),
|
|
58
|
+
...(incident.urgency === undefined ? [] : [`Urgency: ${incident.urgency}`]),
|
|
59
|
+
...(incident.service?.summary === undefined ? [] : [`Service: ${incident.service.summary}`]),
|
|
60
|
+
...(incident.priority?.summary === undefined ? [] : [`Priority: ${incident.priority.summary}`]),
|
|
61
|
+
...(incident.incidentKey === undefined ? [] : [`Incident key: ${incident.incidentKey}`]),
|
|
62
|
+
...(incident.htmlUrl === undefined ? [] : [`URL: ${incident.htmlUrl}`]),
|
|
63
|
+
...(ctx.agent?.summary === undefined ? [] : [`By: ${ctx.agent.summary}`]),
|
|
64
|
+
...(ctx.occurredAt === undefined ? [] : [`Occurred at: ${ctx.occurredAt}`]),
|
|
65
|
+
"Handle this PagerDuty incident event.",
|
|
66
|
+
].join("\n");
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Default gate when no `onIncident` hook is declared: a new or reopened
|
|
70
|
+
* incident starts a turn as the event's agent. Acknowledgements,
|
|
71
|
+
* escalations, and resolves are acknowledged without one.
|
|
72
|
+
*/
|
|
73
|
+
export function defaultPagerDutyIncidentDispatch(ctx, event) {
|
|
74
|
+
if (event.eventType !== "incident.triggered" && event.eventType !== "incident.reopened") {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return { auth: defaultPagerDutyAuth(ctx) };
|
|
78
|
+
}
|
|
79
|
+
const PAGERDUTY_FAILURE_NOTE = "The agent hit an error while handling this incident. Check the agent's session for details.";
|
|
80
|
+
/**
|
|
81
|
+
* Opt-in delivery (`deliverReplies: true`): post each completed assistant
|
|
82
|
+
* reply as a note on the session's incident, and a short note when a turn
|
|
83
|
+
* or session fails. Skipped when the session names no incident or is an
|
|
84
|
+
* eval run, or when the channel has no token (a read-only agent).
|
|
85
|
+
*
|
|
86
|
+
* A posted note comes back as an `incident.annotated` event, which only the
|
|
87
|
+
* echo skip keeps from starting another turn. So nothing is posted until the
|
|
88
|
+
* agent's own PagerDuty user resolves (see `selfUserIds`); until then each
|
|
89
|
+
* skipped note logs a warning.
|
|
90
|
+
*/
|
|
91
|
+
export function buildDefaultPagerDutyEvents(options) {
|
|
92
|
+
if (options.deliverReplies !== true) {
|
|
93
|
+
return {};
|
|
94
|
+
}
|
|
95
|
+
const postNote = async (state, content) => {
|
|
96
|
+
if (state.incidentId === null ||
|
|
97
|
+
resolvePagerDutySecret(options.token, PAGERDUTY_TOKEN_ENV) === undefined) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if ((await resolvePagerDutySelfUserIds({ options })).size === 0) {
|
|
101
|
+
console.warn(`[bdk/pagerduty] warn not posting a reply note to incident ${state.incidentId}: the agent's own PagerDuty user is unknown, so the note would come back as a new event. Set ${PAGERDUTY_USER_ID_ENV} or selfUserIds, or use a token that names one user.`);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
await pagerDutyChannelClient(options).addNote({ incidentId: state.incidentId, content });
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.warn(`[bdk/pagerduty] warn could not post a note to incident ${state.incidentId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
return {
|
|
112
|
+
async "message.completed"(event, channel, ctx) {
|
|
113
|
+
if (ctx.session.purpose === "eval" ||
|
|
114
|
+
event.data.parentCallId !== undefined ||
|
|
115
|
+
event.data.finishReason === "tool_call" ||
|
|
116
|
+
event.data.text === "") {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
await postNote(channel.state, event.data.text);
|
|
120
|
+
},
|
|
121
|
+
async "turn.failed"(_event, channel, ctx) {
|
|
122
|
+
if (ctx.session.purpose !== "eval") {
|
|
123
|
+
await postNote(channel.state, PAGERDUTY_FAILURE_NOTE);
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
async "session.failed"(_event, channel, ctx) {
|
|
127
|
+
if (ctx.session.purpose !== "eval") {
|
|
128
|
+
await postNote(channel.state, PAGERDUTY_FAILURE_NOTE);
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PAGERDUTY_INCIDENT_EVENT_TYPES } from "../../internal/continuation-identity.js";
|
|
2
|
+
/** {@link ChannelMeta.kind} value used by {@link pagerdutyChannel}. */
|
|
3
|
+
export declare const PAGERDUTY_CHANNEL_KIND = "pagerduty";
|
|
4
|
+
/** Every v3 `event_type` that names one incident; the selector's membership. */
|
|
5
|
+
export { PAGERDUTY_INCIDENT_EVENT_TYPES };
|
|
6
|
+
/** Lifecycle events whose `data` is the full incident; `onIncident` receives them. */
|
|
7
|
+
export declare const PAGERDUTY_INCIDENT_LIFECYCLE_EVENTS: readonly ["incident.triggered", "incident.acknowledged", "incident.unacknowledged", "incident.escalated", "incident.reassigned", "incident.delegated", "incident.resolved", "incident.reopened", "incident.priority_updated", "incident.incident_type.changed"];
|
|
8
|
+
export type PagerDutyIncidentLifecycleEvent = (typeof PAGERDUTY_INCIDENT_LIFECYCLE_EVENTS)[number];
|
|
9
|
+
/** `incident.annotated`: a note on the incident; `onNote` receives it. */
|
|
10
|
+
export declare const PAGERDUTY_NOTE_EVENTS: readonly ["incident.annotated"];
|
|
11
|
+
/** Responder requests and replies; `onResponder` receives them. */
|
|
12
|
+
export declare const PAGERDUTY_RESPONDER_EVENTS: readonly ["incident.responder.added", "incident.responder.replied"];
|
|
13
|
+
export interface PagerDutyWebhookEventOptions {
|
|
14
|
+
webhookEvents?: readonly string[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The event types the channel publishes as `meta.pagerdutyWebhookEvents`
|
|
18
|
+
* and the deploy manifest's `eventTypes`: a pinned list, or every incident
|
|
19
|
+
* event. Every typed hook and the default dispatch fall inside that set, so
|
|
20
|
+
* an omitted selector defaults to `pagerduty.incident/v2`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function derivePagerDutyWebhookEvents(options: PagerDutyWebhookEventOptions): string[];
|
|
23
|
+
export declare function isPagerDutyIncidentLifecycleEvent(eventType: string): eventType is PagerDutyIncidentLifecycleEvent;
|
|
24
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/channels/pagerduty/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAElD,gFAAgF;AAChF,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAE1C,sFAAsF;AACtF,eAAO,MAAM,mCAAmC,YAC9C,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,2BAA2B,EAC3B,gCAAgC,CACxB,CAAC;AAEX,MAAM,MAAM,+BAA+B,GAAG,CAAC,OAAO,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnG,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,YAAI,oBAAoB,CAAU,CAAC;AAErE,mEAAmE;AACnE,eAAO,MAAM,0BAA0B,YACrC,0BAA0B,EAC1B,4BAA4B,CACpB,CAAC;AAEX,MAAM,WAAW,4BAA4B;IAC3C,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,EAAE,CAG5F;AAED,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,MAAM,GAChB,SAAS,IAAI,+BAA+B,CAE9C"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PAGERDUTY_INCIDENT_EVENT_TYPES } from "../../internal/continuation-identity.js";
|
|
2
|
+
/** {@link ChannelMeta.kind} value used by {@link pagerdutyChannel}. */
|
|
3
|
+
export const PAGERDUTY_CHANNEL_KIND = "pagerduty";
|
|
4
|
+
/** Every v3 `event_type` that names one incident; the selector's membership. */
|
|
5
|
+
export { PAGERDUTY_INCIDENT_EVENT_TYPES };
|
|
6
|
+
/** Lifecycle events whose `data` is the full incident; `onIncident` receives them. */
|
|
7
|
+
export const PAGERDUTY_INCIDENT_LIFECYCLE_EVENTS = [
|
|
8
|
+
"incident.triggered",
|
|
9
|
+
"incident.acknowledged",
|
|
10
|
+
"incident.unacknowledged",
|
|
11
|
+
"incident.escalated",
|
|
12
|
+
"incident.reassigned",
|
|
13
|
+
"incident.delegated",
|
|
14
|
+
"incident.resolved",
|
|
15
|
+
"incident.reopened",
|
|
16
|
+
"incident.priority_updated",
|
|
17
|
+
"incident.incident_type.changed",
|
|
18
|
+
];
|
|
19
|
+
/** `incident.annotated`: a note on the incident; `onNote` receives it. */
|
|
20
|
+
export const PAGERDUTY_NOTE_EVENTS = ["incident.annotated"];
|
|
21
|
+
/** Responder requests and replies; `onResponder` receives them. */
|
|
22
|
+
export const PAGERDUTY_RESPONDER_EVENTS = [
|
|
23
|
+
"incident.responder.added",
|
|
24
|
+
"incident.responder.replied",
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* The event types the channel publishes as `meta.pagerdutyWebhookEvents`
|
|
28
|
+
* and the deploy manifest's `eventTypes`: a pinned list, or every incident
|
|
29
|
+
* event. Every typed hook and the default dispatch fall inside that set, so
|
|
30
|
+
* an omitted selector defaults to `pagerduty.incident/v2`.
|
|
31
|
+
*/
|
|
32
|
+
export function derivePagerDutyWebhookEvents(options) {
|
|
33
|
+
const events = options.webhookEvents ?? PAGERDUTY_INCIDENT_EVENT_TYPES;
|
|
34
|
+
return [...new Set(events.map((event) => event.trim()).filter(Boolean))];
|
|
35
|
+
}
|
|
36
|
+
export function isPagerDutyIncidentLifecycleEvent(eventType) {
|
|
37
|
+
return PAGERDUTY_INCIDENT_LIFECYCLE_EVENTS.includes(eventType);
|
|
38
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PagerDuty v3 webhook channel pack.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* import { defaultPagerDutyAuth, pagerdutyChannel } from "@cursor/bdk/channels/pagerduty";
|
|
6
|
+
*
|
|
7
|
+
* // Verifies against the PAGERDUTY_WEBHOOK_SECRET deployment secret and skips
|
|
8
|
+
* // the agent's own actions: PAGERDUTY_USER_ID, else the user PAGERDUTY_TOKEN
|
|
9
|
+
* // acts as.
|
|
10
|
+
* export default pagerdutyChannel({
|
|
11
|
+
* onIncident: (ctx) => ({ auth: defaultPagerDutyAuth(ctx) }),
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The route verifies `X-PagerDuty-Signature` (one `v1=` HMAC-SHA256 entry
|
|
16
|
+
* per active subscription secret; any match admits). Every event for one
|
|
17
|
+
* incident key, the dedup key of the alert that opened the incident, joins
|
|
18
|
+
* one session; an incident without a key joins on its id. The agent's own
|
|
19
|
+
* actions, echoed back with its PagerDuty user as `agent`, are acknowledged
|
|
20
|
+
* without a turn.
|
|
21
|
+
*/
|
|
22
|
+
export * from "./api.js";
|
|
23
|
+
export * from "./defaults.js";
|
|
24
|
+
export * from "./events.js";
|
|
25
|
+
export { pagerDutyAccountSubdomain, pagerDutyEventIncident, pagerDutyIncidentFromData, pagerDutyNoteFromData, pagerDutyResponderFromData, } from "./payload.js";
|
|
26
|
+
export * from "./pagerduty-channel.js";
|
|
27
|
+
export * from "./pagerduty-webhook.js";
|
|
28
|
+
export { inferPagerDutySelfUserId, PAGERDUTY_USER_ID_ENV, type PagerDutySelfUserDeps, pagerDutySelfUserIdSecretName, resolvePagerDutySelfUserIds, } from "./self-user.js";
|
|
29
|
+
export * from "./state.js";
|
|
30
|
+
export * from "./types.js";
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/pagerduty/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PagerDuty v3 webhook channel pack.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* import { defaultPagerDutyAuth, pagerdutyChannel } from "@cursor/bdk/channels/pagerduty";
|
|
6
|
+
*
|
|
7
|
+
* // Verifies against the PAGERDUTY_WEBHOOK_SECRET deployment secret and skips
|
|
8
|
+
* // the agent's own actions: PAGERDUTY_USER_ID, else the user PAGERDUTY_TOKEN
|
|
9
|
+
* // acts as.
|
|
10
|
+
* export default pagerdutyChannel({
|
|
11
|
+
* onIncident: (ctx) => ({ auth: defaultPagerDutyAuth(ctx) }),
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The route verifies `X-PagerDuty-Signature` (one `v1=` HMAC-SHA256 entry
|
|
16
|
+
* per active subscription secret; any match admits). Every event for one
|
|
17
|
+
* incident key, the dedup key of the alert that opened the incident, joins
|
|
18
|
+
* one session; an incident without a key joins on its id. The agent's own
|
|
19
|
+
* actions, echoed back with its PagerDuty user as `agent`, are acknowledged
|
|
20
|
+
* without a turn.
|
|
21
|
+
*/
|
|
22
|
+
export * from "./api.js";
|
|
23
|
+
export * from "./defaults.js";
|
|
24
|
+
export * from "./events.js";
|
|
25
|
+
export { pagerDutyAccountSubdomain, pagerDutyEventIncident, pagerDutyIncidentFromData, pagerDutyNoteFromData, pagerDutyResponderFromData, } from "./payload.js";
|
|
26
|
+
export * from "./pagerduty-channel.js";
|
|
27
|
+
export * from "./pagerduty-webhook.js";
|
|
28
|
+
export { inferPagerDutySelfUserId, PAGERDUTY_USER_ID_ENV, pagerDutySelfUserIdSecretName, resolvePagerDutySelfUserIds, } from "./self-user.js";
|
|
29
|
+
export * from "./state.js";
|
|
30
|
+
export * from "./types.js";
|