@cursor/bdk 0.2.2 → 0.2.4
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 +1 -1
- package/dist/bin/agent-serve.js +32 -8
- package/dist/channels/github/auth.d.ts.map +1 -1
- package/dist/channels/github/auth.js +36 -5
- package/dist/channels/slack/attachments.d.ts +2 -1
- package/dist/channels/slack/attachments.d.ts.map +1 -1
- package/dist/channels/slack/attachments.js +19 -9
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +26 -24
- package/dist/channels/slack/thread-context.d.ts +21 -11
- package/dist/channels/slack/thread-context.d.ts.map +1 -1
- package/dist/channels/slack/thread-context.js +75 -27
- package/dist/connections.d.ts +1 -1
- package/dist/connections.js +1 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.DtYVVVyK.js → app.4kQ8Db_q.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.CvuAJ0My.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.D47xT7J4.js → VPLocalSearchBox.DY1RwB8Q.js} +1 -1
- package/dist/docs/assets/chunks/{arc.CDJ6xzxR.js → arc.CxE_fSPK.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.l1Xnjd3N.js → architectureDiagram-Q4EWVU46.CPX426ui.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.x-finShZ.js → baseUniq.CB52JrKG.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.COC3qynH.js → blockDiagram-DXYQGD6D.J0cNaQCL.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.DdQO850E.js → c4Diagram-AHTNJAMY.DJn3vEGT.js} +1 -1
- package/dist/docs/assets/chunks/channel.BoNycAoN.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.Dpn8omLk.js → chunk-4BX2VUAB.Dao618F6.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.C0XWStUN.js → chunk-4TB4RGXK.QW8Rhjai.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.DsKSZfIM.js → chunk-55IACEB6.DfRLLKF_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.dNU6JDu6.js → chunk-EDXVE4YY.CIV2ApKQ.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DN41fxKE.js → chunk-FMBD7UC4.BEheSuxp.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.COpKCZus.js → chunk-OYMX7WX6.CUN88ENB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.HDB-azx2.js → chunk-QZHKN3VN.CgqCs8b_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.DEeX_a2j.js → chunk-YZCP3GAM.iCH0nnTJ.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/clone.Db22cH_-.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.C3yGL2A8.js → cose-bilkent-S5V4N54A.BLcUxhWE.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.Bpl24en4.js → dagre-KV5264BT.Ep7LofOm.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.nFco6seU.js → diagram-5BDNPKRD.Bzf4GSQ4.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DXhA6DWR.js → diagram-G4DWMVQ6.DD6Jh-eM.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.8GoOYcwk.js → diagram-MMDJMWI5.oOIl8bWd.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.DDBlqvlJ.js → diagram-TYMM5635.DHs85Ade.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.vl_N81P4.js → erDiagram-SMLLAGMA.BIb5ghCk.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.Cteg8g7I.js → flowDiagram-DWJPFMVM.DV4paY9k.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.D4aMhlMM.js → ganttDiagram-T4ZO3ILL.AyEKA6_v.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DF_J0D4q.js → gitGraphDiagram-UUTBAWPF.BltiCDFo.js} +1 -1
- package/dist/docs/assets/chunks/{graph.DJs0LDCf.js → graph.DzuEYGdC.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.Bb-4RQwg.js → infoDiagram-42DDH7IO.BV2l981J.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DEtQRSbc.js → ishikawaDiagram-UXIWVN3A.BA4Izf-m.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.DhQQ75FA.js → journeyDiagram-VCZTEJTY.DjaFbFS3.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.C4gEw3Rk.js → kanban-definition-6JOO6SKY.CfTFieDs.js} +1 -1
- package/dist/docs/assets/chunks/{layout.DT-PGlXa.js → layout.DzfWqTBV.js} +1 -1
- package/dist/docs/assets/chunks/{linear.BMMe__JW.js → linear.BO6mpulV.js} +1 -1
- package/dist/docs/assets/chunks/{min.XyaU9K9Q.js → min.BGgTadgT.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CbBM6xZ-.js → mindmap-definition-QFDTVHPH.DPuIXVWY.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DFJoIVou.js → pieDiagram-DEJITSTG.BOnl3bBg.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CQjkDYqb.js → quadrantDiagram-34T5L4WZ.DNB6Ckdc.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.D-mK-JQu.js → requirementDiagram-MS252O5E.D5-Qo7vb.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.BStQInpd.js → sankeyDiagram-XADWPNL6.8t65cesf.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.CA_eooPJ.js → sequenceDiagram-FGHM5R23.CaG07BdS.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.BXl-b7ad.js → stateDiagram-FHFEXIEX.TKOweTB6.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CuqmyQc4.js +1 -0
- package/dist/docs/assets/chunks/{theme.q37tOs4x.js → theme.Dx-JhpTB.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.vjuaGOSe.js → timeline-definition-GMOUNBTQ.fE53zQ2s.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BxduJl-F.js → vennDiagram-DHZGUBPP.DJsZZaJg.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.844kyrjl.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.D1z3ds0D.js → wardleyDiagram-NUSXRM2D.CMZ-Ru_t.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CRU5Ti9b.js → xychartDiagram-5P7HB3ND.XXrhBc7a.js} +1 -1
- package/dist/docs/assets/{deployment.md.nGo1yIsa.js → deployment.md.UhnJIMr-.js} +6 -9
- package/dist/docs/assets/{deployment.md.nGo1yIsa.lean.js → deployment.md.UhnJIMr-.lean.js} +1 -1
- package/dist/docs/assets/{guides_github.md.C2_DSWlE.js → guides_github.md.Bq9kQU9B.js} +9 -3
- package/dist/docs/assets/{guides_github.md.C2_DSWlE.lean.js → guides_github.md.Bq9kQU9B.lean.js} +1 -1
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.js → guides_jev.md.CRcgmjDb.js} +2 -2
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.lean.js → guides_jev.md.CRcgmjDb.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.ZbHQETOT.js → guides_slack.md.diqqXTTm.js} +2 -2
- package/dist/docs/assets/{guides_slack.md.ZbHQETOT.lean.js → guides_slack.md.diqqXTTm.lean.js} +1 -1
- package/dist/docs/assets/{quickstart.md.wG4shE1f.js → quickstart.md.CHpHPBUN.js} +5 -3
- package/dist/docs/assets/{quickstart.md.wG4shE1f.lean.js → quickstart.md.CHpHPBUN.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.DzGI777n.js → reference_agent-config.md.Cj5uBKp4.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.CFMNPreZ.js → reference_artifacts.md.CQfKq8F2.js} +1 -1
- package/dist/docs/assets/reference_cli.md.DgeLTO18.js +91 -0
- package/dist/docs/assets/reference_cli.md.DgeLTO18.lean.js +1 -0
- package/dist/docs/assets/{reference_connections.md._XpKiOaF.js → reference_connections.md.COq--gAm.js} +7 -3
- package/dist/docs/assets/{reference_connections.md._XpKiOaF.lean.js → reference_connections.md.COq--gAm.lean.js} +1 -1
- package/dist/docs/assets/{reference_evals.md.DqNyHMA6.js → reference_evals.md.CJm3uCUm.js} +4 -4
- package/dist/docs/assets/{reference_evals.md.DqNyHMA6.lean.js → reference_evals.md.CJm3uCUm.lean.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.js → reference_extensions.md.pa2tN-e4.js} +4 -3
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.lean.js → reference_extensions.md.pa2tN-e4.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.CRFTxt9M.js → reference_skills.md.Cy00QMKS.js} +3 -3
- package/dist/docs/assets/{reference_skills.md.CRFTxt9M.lean.js → reference_skills.md.Cy00QMKS.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.Cw5PKa3t.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.BzZSu1Gz.lean.js → troubleshooting.md.Cw5PKa3t.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +41 -44
- package/dist/docs/deployment.md +49 -16
- package/dist/docs/evals.html +35 -35
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +35 -35
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +43 -37
- package/dist/docs/guides/github.md +34 -0
- package/dist/docs/guides/gitlab.html +35 -35
- package/dist/docs/guides/grokbot-agents.html +35 -35
- package/dist/docs/guides/hooks.html +35 -35
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/jev.md +7 -0
- package/dist/docs/guides/mcp-oauth.html +35 -35
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +37 -37
- package/dist/docs/guides/slack.md +5 -0
- package/dist/docs/guides/webhooks.html +35 -35
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +35 -35
- package/dist/docs/index.html +35 -35
- package/dist/docs/llms-full.txt +223 -94
- package/dist/docs/quickstart.html +40 -38
- package/dist/docs/quickstart.md +7 -1
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/agent-config.md +1 -1
- package/dist/docs/reference/artifacts.html +37 -37
- package/dist/docs/reference/artifacts.md +1 -1
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +55 -61
- package/dist/docs/reference/cli.md +65 -63
- package/dist/docs/reference/connections.html +42 -38
- package/dist/docs/reference/connections.md +28 -2
- package/dist/docs/reference/evals.html +39 -39
- package/dist/docs/reference/evals.md +6 -7
- package/dist/docs/reference/extensions.html +39 -38
- package/dist/docs/reference/extensions.md +13 -0
- package/dist/docs/reference/hooks.html +35 -35
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +35 -35
- package/dist/docs/reference/sessions.html +35 -35
- package/dist/docs/reference/skills.html +38 -38
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/docs/troubleshooting.md +7 -3
- package/dist/extensions/cursor-grokbot-agents/extension.d.ts +77 -0
- package/dist/extensions/cursor-grokbot-agents/extension.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/extension.js +63 -0
- package/dist/extensions/cursor-grokbot-agents/lib/agents.d.ts +11 -0
- package/dist/extensions/cursor-grokbot-agents/lib/agents.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/agents.js +31 -0
- package/dist/extensions/cursor-grokbot-agents/lib/backend.d.ts +56 -0
- package/dist/extensions/cursor-grokbot-agents/lib/backend.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/backend.js +158 -0
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.d.ts +28 -0
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +59 -0
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.d.ts +53 -0
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +206 -0
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +15 -0
- package/dist/extensions/cursor-grokbot-agents/lib/lock.d.ts +12 -0
- package/dist/extensions/cursor-grokbot-agents/lib/lock.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/lock.js +25 -0
- package/dist/extensions/cursor-grokbot-agents/skills/consult.md +40 -0
- package/dist/extensions/cursor-grokbot-agents/tools/ask.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/ask.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/ask.js +37 -0
- package/dist/extensions/cursor-grokbot-agents/tools/check.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/check.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/check.js +32 -0
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +24 -0
- package/dist/extensions/cursor-grokbot-agents/tools/list.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/list.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/list.js +34 -0
- package/dist/extensions/jev/extension.d.ts +3 -0
- package/dist/extensions/jev/extension.d.ts.map +1 -1
- package/dist/extensions/jev/extension.js +10 -1
- package/dist/extensions/jev/lib/evaluate.d.ts +4 -0
- package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -1
- package/dist/extensions/jev/lib/evaluate.js +6 -2
- package/dist/extensions.d.ts +4 -2
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +5 -2
- package/dist/internal/cli-ax.d.ts +1 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +43 -10
- package/dist/internal/cli-deploy.d.ts +5 -1
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +41 -9
- package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
- package/dist/internal/cli-mcp-oauth.js +2 -1
- package/dist/internal/cli-skills.d.ts +1 -1
- package/dist/internal/cli-skills.d.ts.map +1 -1
- package/dist/internal/cli-skills.js +5 -5
- package/dist/internal/connection-env.d.ts +31 -0
- package/dist/internal/connection-env.d.ts.map +1 -0
- package/dist/internal/connection-env.js +84 -0
- package/dist/internal/cursor/backend-client.js +5 -0
- package/dist/internal/deploy-client.d.ts +30 -6
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +45 -9
- package/dist/internal/discovery/agent-config.d.ts +6 -5
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +29 -28
- package/dist/internal/discovery/agent.js +1 -1
- package/dist/internal/discovery/connections.d.ts.map +1 -1
- package/dist/internal/discovery/connections.js +11 -0
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +12 -0
- package/dist/internal/hosted-delivery-protocol.d.ts +36 -11
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +31 -8
- package/dist/internal/hosted-delivery.d.ts +2 -2
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +228 -48
- package/dist/internal/hosting.d.ts +10 -2
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +33 -3
- package/dist/internal/install-cursor-skills.d.ts +20 -24
- package/dist/internal/install-cursor-skills.d.ts.map +1 -1
- package/dist/internal/install-cursor-skills.js +50 -48
- package/dist/internal/legacy-command-guard.d.ts +2 -0
- package/dist/internal/legacy-command-guard.d.ts.map +1 -1
- package/dist/internal/legacy-command-guard.js +10 -1
- package/dist/internal/mcp-host.d.ts +6 -0
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +35 -16
- package/dist/internal/sdk-runner.d.ts +2 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +10 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +11 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +9 -5
- package/dist/types.d.ts +29 -3
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +49 -16
- package/docs/guides/github.md +34 -0
- package/docs/guides/jev.md +7 -0
- package/docs/guides/slack.md +5 -0
- package/docs/quickstart.md +7 -1
- package/docs/reference/agent-config.md +1 -1
- package/docs/reference/artifacts.md +1 -1
- package/docs/reference/cli.md +65 -63
- package/docs/reference/connections.md +28 -2
- package/docs/reference/evals.md +6 -7
- package/docs/reference/extensions.md +13 -0
- package/docs/troubleshooting.md +7 -3
- package/package.json +1 -11
- package/scripts/install-cursor-skills.mjs +1 -1
- package/skills/create-agent/SKILL.md +1 -1
- package/skills/debug/SKILL.md +1 -1
- package/skills/deploy/SKILL.md +1 -1
- package/skills/evals/SKILL.md +1 -1
- package/skills/framework-map/SKILL.md +1 -1
- package/skills/github/SKILL.md +1 -1
- package/skills/hillclimb/SKILL.md +1 -1
- package/skills/mcp-auth/SKILL.md +1 -1
- package/skills/otel/SKILL.md +1 -1
- package/skills/setup-slack/SKILL.md +1 -1
- package/templates/agents-md/bot/lib/collect.ts +1 -4
- package/templates/code-wiki/bot/channels/github.ts +2 -2
- package/templates/demo/bot/channels/github.ts +5 -1
- package/templates/pr-autofixer/bot/lib/start-drive.ts +4 -4
- package/templates/triage/bot/lib/types.ts +6 -6
- package/dist/docs/assets/chunks/@localSearchIndexroot.BgTA2tV1.js +0 -1
- package/dist/docs/assets/chunks/channel.B2nMEx82.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D8iCH2ve.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D8iCH2ve.js +0 -1
- package/dist/docs/assets/chunks/clone.5XNLjby0.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.yGM2uLZQ.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.DKfyIejL.js +0 -162
- package/dist/docs/assets/reference_cli.md.BK2QUH67.js +0 -97
- package/dist/docs/assets/reference_cli.md.BK2QUH67.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.BzZSu1Gz.js +0 -1
- package/src/artifacts.ts +0 -68
- package/src/bin/agent-serve.ts +0 -1833
- package/src/channels/bitbucket/api.ts +0 -891
- package/src/channels/bitbucket/binding.ts +0 -417
- package/src/channels/bitbucket/bitbucket-channel.ts +0 -162
- package/src/channels/bitbucket/bitbucket-webhook.ts +0 -519
- package/src/channels/bitbucket/checks.ts +0 -146
- package/src/channels/bitbucket/cursor-account.ts +0 -106
- package/src/channels/bitbucket/defaults.ts +0 -100
- package/src/channels/bitbucket/events.ts +0 -74
- package/src/channels/bitbucket/index.ts +0 -51
- package/src/channels/bitbucket/replay.ts +0 -421
- package/src/channels/bitbucket/state.ts +0 -59
- package/src/channels/bitbucket/types.ts +0 -261
- package/src/channels/change-monitors/change-monitors-channel.ts +0 -63
- package/src/channels/change-monitors/index.ts +0 -8
- package/src/channels/change-monitors/types.ts +0 -42
- package/src/channels/checks.ts +0 -185
- package/src/channels/deployments/deployments-channel.ts +0 -224
- package/src/channels/deployments/index.ts +0 -25
- package/src/channels/deployments/types.ts +0 -92
- package/src/channels/github/api.ts +0 -526
- package/src/channels/github/auth.ts +0 -254
- package/src/channels/github/binding.ts +0 -233
- package/src/channels/github/checks.ts +0 -145
- package/src/channels/github/cursor-account.ts +0 -303
- package/src/channels/github/defaults.ts +0 -168
- package/src/channels/github/events.ts +0 -67
- package/src/channels/github/forward.ts +0 -359
- package/src/channels/github/github-channel.ts +0 -2334
- package/src/channels/github/index.ts +0 -54
- package/src/channels/github/progress.ts +0 -365
- package/src/channels/github/replay.ts +0 -372
- package/src/channels/github/state.ts +0 -124
- package/src/channels/github/types.ts +0 -590
- package/src/channels/gitlab/api.ts +0 -329
- package/src/channels/gitlab/binding.ts +0 -231
- package/src/channels/gitlab/checks.ts +0 -228
- package/src/channels/gitlab/cursor-account.ts +0 -105
- package/src/channels/gitlab/defaults.ts +0 -80
- package/src/channels/gitlab/events.ts +0 -37
- package/src/channels/gitlab/gitlab-channel.ts +0 -160
- package/src/channels/gitlab/gitlab-webhook.ts +0 -509
- package/src/channels/gitlab/index.ts +0 -44
- package/src/channels/gitlab/replay.ts +0 -328
- package/src/channels/gitlab/state.ts +0 -55
- package/src/channels/gitlab/types.ts +0 -247
- package/src/channels/issues/index.ts +0 -9
- package/src/channels/issues/issues-channel.ts +0 -45
- package/src/channels/issues/types.ts +0 -38
- package/src/channels/origin/api.ts +0 -507
- package/src/channels/origin/binding.ts +0 -114
- package/src/channels/origin/checks.ts +0 -250
- package/src/channels/origin/cursor-account.ts +0 -58
- package/src/channels/origin/defaults.ts +0 -140
- package/src/channels/origin/events.ts +0 -35
- package/src/channels/origin/index.ts +0 -35
- package/src/channels/origin/origin-channel.ts +0 -815
- package/src/channels/origin/origin-webhook.ts +0 -296
- package/src/channels/origin/reactions.ts +0 -72
- package/src/channels/origin/state.ts +0 -54
- package/src/channels/origin/types.ts +0 -295
- package/src/channels/slack/agentic-delivery.ts +0 -634
- package/src/channels/slack/agentic-posted.ts +0 -135
- package/src/channels/slack/agentic-signals.ts +0 -231
- package/src/channels/slack/api.ts +0 -761
- package/src/channels/slack/approvals.ts +0 -279
- package/src/channels/slack/assistant.ts +0 -76
- package/src/channels/slack/attachments.ts +0 -596
- package/src/channels/slack/auth.ts +0 -127
- package/src/channels/slack/blocks.ts +0 -131
- package/src/channels/slack/bot-mentions.ts +0 -318
- package/src/channels/slack/channel-watch.ts +0 -314
- package/src/channels/slack/cli-project.ts +0 -249
- package/src/channels/slack/code-fences.ts +0 -171
- package/src/channels/slack/constants.ts +0 -38
- package/src/channels/slack/credentials.ts +0 -88
- package/src/channels/slack/defaults.ts +0 -714
- package/src/channels/slack/dispatch.ts +0 -1060
- package/src/channels/slack/doctor.ts +0 -338
- package/src/channels/slack/eval-directive.ts +0 -306
- package/src/channels/slack/event-id-dedupe.ts +0 -30
- package/src/channels/slack/external-policy.ts +0 -75
- package/src/channels/slack/footer.ts +0 -106
- package/src/channels/slack/inbound.ts +0 -416
- package/src/channels/slack/index.ts +0 -53
- package/src/channels/slack/init.ts +0 -169
- package/src/channels/slack/interactive.ts +0 -406
- package/src/channels/slack/links.ts +0 -23
- package/src/channels/slack/live-delivery.ts +0 -489
- package/src/channels/slack/log.ts +0 -70
- package/src/channels/slack/manifest.ts +0 -240
- package/src/channels/slack/message-body.ts +0 -82
- package/src/channels/slack/nudge-carrier.ts +0 -224
- package/src/channels/slack/nudge-store.ts +0 -334
- package/src/channels/slack/paint-start.ts +0 -93
- package/src/channels/slack/placeholder.ts +0 -358
- package/src/channels/slack/pr-ref.ts +0 -74
- package/src/channels/slack/progress-delivery.ts +0 -138
- package/src/channels/slack/reasoning-card.ts +0 -125
- package/src/channels/slack/reasoning-chip.ts +0 -41
- package/src/channels/slack/recording-sink.ts +0 -167
- package/src/channels/slack/redact.ts +0 -6
- package/src/channels/slack/reply-options.ts +0 -279
- package/src/channels/slack/setup.ts +0 -125
- package/src/channels/slack/slack-channel.ts +0 -744
- package/src/channels/slack/socket-mode.ts +0 -140
- package/src/channels/slack/stop.ts +0 -25
- package/src/channels/slack/stream.ts +0 -66
- package/src/channels/slack/thread-context.ts +0 -485
- package/src/channels/slack/tool-approval-events.ts +0 -233
- package/src/channels/slack/tool-cards.ts +0 -198
- package/src/channels/slack/tool-chip.ts +0 -34
- package/src/channels/slack/types.ts +0 -787
- package/src/channels/slack/upload.ts +0 -137
- package/src/channels.ts +0 -543
- package/src/connections.ts +0 -153
- package/src/dashboard-session-url.ts +0 -30
- package/src/evals/assertions.ts +0 -688
- package/src/evals/expect.ts +0 -250
- package/src/evals/judge.ts +0 -329
- package/src/evals/loaders.ts +0 -111
- package/src/evals/matchers.ts +0 -223
- package/src/evals/reporters.ts +0 -257
- package/src/evals/results.ts +0 -130
- package/src/evals/run-facts.ts +0 -306
- package/src/evals.ts +0 -709
- package/src/extensions/cursor-cloud-agents/extension.ts +0 -131
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +0 -386
- package/src/extensions/cursor-cloud-agents/lib/channels.ts +0 -11
- package/src/extensions/cursor-cloud-agents/lib/fleet.ts +0 -98
- package/src/extensions/cursor-cloud-agents/lib/inputs.ts +0 -5
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +0 -80
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +0 -19
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +0 -37
- package/src/extensions/cursor-cloud-agents/tools/cancel.ts +0 -21
- package/src/extensions/cursor-cloud-agents/tools/dump.ts +0 -47
- package/src/extensions/cursor-cloud-agents/tools/get.ts +0 -18
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +0 -62
- package/src/extensions/cursor-cloud-agents/tools/list.ts +0 -31
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +0 -36
- package/src/extensions/improve/extension.ts +0 -69
- package/src/extensions/improve/skills/yourself.ts +0 -50
- package/src/extensions/jev/extension.ts +0 -95
- package/src/extensions/jev/lib/evaluate.ts +0 -266
- package/src/extensions/jev/skills/gated-write.md +0 -25
- package/src/extensions/jev/skills/questions.md +0 -33
- package/src/extensions/jev/tools/evaluate.ts +0 -82
- package/src/extensions/slack-communication/evals/harness.ts +0 -705
- package/src/extensions/slack-communication/evals/slack-communication.eval.ts +0 -830
- package/src/extensions/slack-communication/evals/slack-placeholder.eval.ts +0 -172
- package/src/extensions/slack-communication/extension.ts +0 -44
- package/src/extensions/slack-communication/skills/slack-voice.ts +0 -56
- package/src/extensions/slack-communication/tools/delete-message.ts +0 -33
- package/src/extensions/slack-communication/tools/edit-message.ts +0 -42
- package/src/extensions/slack-communication/tools/post-card.ts +0 -28
- package/src/extensions/slack-communication/tools/post-file.ts +0 -82
- package/src/extensions/slack-communication/tools/post-update.ts +0 -40
- package/src/extensions/slack-communication/tools/react.ts +0 -30
- package/src/extensions/slack-communication/tools/set-status.ts +0 -21
- package/src/extensions.ts +0 -179
- package/src/files-backends/agent-store-presigned-url.ts +0 -11
- package/src/files-backends/cursor-hosted.ts +0 -1212
- package/src/files-backends/local-fs.ts +0 -163
- package/src/files.ts +0 -293
- package/src/filesystem.ts +0 -2005
- package/src/hooks.ts +0 -30
- package/src/index.ts +0 -259
- package/src/internal/advertise-tools.ts +0 -370
- package/src/internal/approval-gate.ts +0 -103
- package/src/internal/artifacts-store.ts +0 -836
- package/src/internal/as-of.ts +0 -257
- package/src/internal/auth.ts +0 -46
- package/src/internal/authored-alias-hooks.ts +0 -138
- package/src/internal/authored-loaders.ts +0 -188
- package/src/internal/bounded-int.ts +0 -24
- package/src/internal/bounded.ts +0 -25
- package/src/internal/brand.ts +0 -28
- package/src/internal/browser-origin-guard.ts +0 -67
- package/src/internal/builtin-tools/artifacts.ts +0 -62
- package/src/internal/builtin-tools/index.ts +0 -53
- package/src/internal/builtin-tools/reminders.ts +0 -145
- package/src/internal/channel-dispatch.ts +0 -129
- package/src/internal/channel-route-dispatch.ts +0 -58
- package/src/internal/channel-state.ts +0 -83
- package/src/internal/chat-client.ts +0 -594
- package/src/internal/cli-ax.ts +0 -2273
- package/src/internal/cli-bitbucket.ts +0 -438
- package/src/internal/cli-convert-automation.ts +0 -335
- package/src/internal/cli-cursor.ts +0 -282
- package/src/internal/cli-deploy.ts +0 -2486
- package/src/internal/cli-docs.ts +0 -192
- package/src/internal/cli-github.ts +0 -806
- package/src/internal/cli-gitlab.ts +0 -452
- package/src/internal/cli-images.ts +0 -672
- package/src/internal/cli-manifest.ts +0 -56
- package/src/internal/cli-mcp-oauth.ts +0 -395
- package/src/internal/cli-mcp.ts +0 -808
- package/src/internal/cli-skills.ts +0 -99
- package/src/internal/cli-slack-manual.ts +0 -418
- package/src/internal/cli-slack.ts +0 -874
- package/src/internal/cloud-merge.ts +0 -51
- package/src/internal/cloud-turn-cost.ts +0 -159
- package/src/internal/continuation-channel.ts +0 -233
- package/src/internal/continuation-identity.ts +0 -935
- package/src/internal/conversation-mirror.ts +0 -423
- package/src/internal/convert-automation/convert-workflow.ts +0 -1377
- package/src/internal/convert-automation/slug.ts +0 -29
- package/src/internal/convert-automation/types.ts +0 -212
- package/src/internal/cron.ts +0 -76
- package/src/internal/cursor/account-mcp.ts +0 -692
- package/src/internal/cursor/backend-client.ts +0 -978
- package/src/internal/cursor/bound-secret-file.ts +0 -101
- package/src/internal/cursor/credentials.ts +0 -560
- package/src/internal/cursor/cursor-api-transport.ts +0 -65
- package/src/internal/cursor/github-credentials.ts +0 -228
- package/src/internal/cursor/hosted-bound-secrets.ts +0 -71
- package/src/internal/cursor/hosted-deployment-secrets.ts +0 -100
- package/src/internal/cursor/hosted-store-secrets.ts +0 -152
- package/src/internal/cursor/session-token.ts +0 -111
- package/src/internal/cursor/store-api-client.ts +0 -323
- package/src/internal/cursor-account-mcp-auth.ts +0 -303
- package/src/internal/cursor-agent-template.ts +0 -50
- package/src/internal/cursor-deployment-relay.ts +0 -315
- package/src/internal/cursor-event-relay.ts +0 -675
- package/src/internal/cursor-relay-core.ts +0 -563
- package/src/internal/deferred-channel-session.ts +0 -61
- package/src/internal/deploy-client.ts +0 -1504
- package/src/internal/deploy-manifest.ts +0 -361
- package/src/internal/deploy-source.ts +0 -144
- package/src/internal/describe-error.ts +0 -32
- package/src/internal/dev-mode.ts +0 -20
- package/src/internal/discovery/agent-config.ts +0 -288
- package/src/internal/discovery/agent.ts +0 -381
- package/src/internal/discovery/channels.ts +0 -100
- package/src/internal/discovery/connections.ts +0 -505
- package/src/internal/discovery/context.ts +0 -38
- package/src/internal/discovery/cursor-plugin.ts +0 -628
- package/src/internal/discovery/extension-overlay.ts +0 -247
- package/src/internal/discovery/extensions.ts +0 -490
- package/src/internal/discovery/fs.ts +0 -103
- package/src/internal/discovery/hooks.ts +0 -63
- package/src/internal/discovery/info.ts +0 -174
- package/src/internal/discovery/instructions.ts +0 -98
- package/src/internal/discovery/modules.ts +0 -107
- package/src/internal/discovery/names.ts +0 -45
- package/src/internal/discovery/project.ts +0 -319
- package/src/internal/discovery/reminders.ts +0 -65
- package/src/internal/discovery/runtime.ts +0 -158
- package/src/internal/discovery/schedules.ts +0 -120
- package/src/internal/discovery/seed-files.ts +0 -34
- package/src/internal/discovery/services.ts +0 -151
- package/src/internal/discovery/skills.ts +0 -174
- package/src/internal/discovery/subagent.ts +0 -138
- package/src/internal/discovery/tools.ts +0 -170
- package/src/internal/discovery.ts +0 -27
- package/src/internal/distribution.ts +0 -126
- package/src/internal/docs-site.ts +0 -248
- package/src/internal/duration.ts +0 -37
- package/src/internal/env-file.ts +0 -83
- package/src/internal/eval-judge-model.ts +0 -142
- package/src/internal/eval-run-store.ts +0 -585
- package/src/internal/eval-runner.ts +0 -823
- package/src/internal/evals-client.ts +0 -475
- package/src/internal/event-log.ts +0 -342
- package/src/internal/event-mapper.ts +0 -811
- package/src/internal/expected-delivery-failure.ts +0 -34
- package/src/internal/factory-resource-channel.ts +0 -103
- package/src/internal/filesystem/errors.ts +0 -207
- package/src/internal/filesystem/format.ts +0 -253
- package/src/internal/filesystem/merge.ts +0 -192
- package/src/internal/filesystem/nearest.ts +0 -112
- package/src/internal/filesystem/scratch.ts +0 -239
- package/src/internal/filesystem/sdk-schemas.ts +0 -204
- package/src/internal/filesystem/tools.ts +0 -804
- package/src/internal/filesystem/walk.ts +0 -366
- package/src/internal/fixtures/units-server.ts +0 -52
- package/src/internal/framework-file-storage.ts +0 -357
- package/src/internal/framework-storage-selection.ts +0 -156
- package/src/internal/frontmatter.ts +0 -108
- package/src/internal/github-fanout.ts +0 -144
- package/src/internal/guest-network.ts +0 -391
- package/src/internal/handleAgentServeTrigger.ts +0 -286
- package/src/internal/host-files.ts +0 -341
- package/src/internal/host-kv.ts +0 -81
- package/src/internal/host-otel.ts +0 -231
- package/src/internal/host-platforms.ts +0 -170
- package/src/internal/hosted-admission-adapter.ts +0 -47
- package/src/internal/hosted-admission-context.ts +0 -37
- package/src/internal/hosted-catch-protocol.ts +0 -112
- package/src/internal/hosted-catch.ts +0 -179
- package/src/internal/hosted-delivery-protocol.ts +0 -787
- package/src/internal/hosted-delivery.ts +0 -1152
- package/src/internal/hosted-execution-diag.ts +0 -291
- package/src/internal/hosted-execution-flush.ts +0 -136
- package/src/internal/hosted-execution-latency.ts +0 -301
- package/src/internal/hosted-managed-automation.ts +0 -116
- package/src/internal/hosting.ts +0 -107
- package/src/internal/http-channel-define.ts +0 -25
- package/src/internal/http-channel.ts +0 -669
- package/src/internal/http-control-plane-session.ts +0 -110
- package/src/internal/ids.ts +0 -39
- package/src/internal/incoming-headers-to-fetch.ts +0 -45
- package/src/internal/init-interview.ts +0 -360
- package/src/internal/init-project.ts +0 -711
- package/src/internal/init-scaffold.ts +0 -182
- package/src/internal/inline-stdio-define-stub.ts +0 -4
- package/src/internal/inline-stdio-mcp.ts +0 -230
- package/src/internal/install-cursor-skills.ts +0 -601
- package/src/internal/is-record.ts +0 -3
- package/src/internal/json-schema.ts +0 -95
- package/src/internal/legacy-command-guard.ts +0 -54
- package/src/internal/listen-port.ts +0 -85
- package/src/internal/local-control-plane.ts +0 -442
- package/src/internal/local-env.ts +0 -59
- package/src/internal/local-ingress.ts +0 -90
- package/src/internal/log-ring.ts +0 -59
- package/src/internal/logs-client.ts +0 -477
- package/src/internal/map-pool.ts +0 -39
- package/src/internal/mcp-endpoint.ts +0 -747
- package/src/internal/mcp-host.ts +0 -481
- package/src/internal/mcp-oauth-on-demand.ts +0 -337
- package/src/internal/mcp-oauth-persist.ts +0 -118
- package/src/internal/mcp-oauth.ts +0 -549
- package/src/internal/net.ts +0 -29
- package/src/internal/open-browser.ts +0 -41
- package/src/internal/otel/attrs.ts +0 -16
- package/src/internal/otel/collector.ts +0 -937
- package/src/internal/otel/config.ts +0 -287
- package/src/internal/otel/http.ts +0 -122
- package/src/internal/otel/mcp.ts +0 -56
- package/src/internal/otel/propagation.ts +0 -17
- package/src/internal/otel/runtime.ts +0 -441
- package/src/internal/package-inline-stdio.ts +0 -114
- package/src/internal/peer-connections.ts +0 -96
- package/src/internal/platform-schedule-sync.ts +0 -75
- package/src/internal/platform-timers.ts +0 -365
- package/src/internal/playground/static.ts +0 -278
- package/src/internal/playground/toolchain.ts +0 -270
- package/src/internal/playground-proxy.ts +0 -564
- package/src/internal/process-memory-telemetry.ts +0 -334
- package/src/internal/project-layout.ts +0 -31
- package/src/internal/prompt-context.ts +0 -116
- package/src/internal/reminder-control-plane-protocol.ts +0 -482
- package/src/internal/reminder-runner.ts +0 -1559
- package/src/internal/reminder-schedule.ts +0 -104
- package/src/internal/reminder-store.ts +0 -176
- package/src/internal/request-error-status.ts +0 -95
- package/src/internal/request-headers.ts +0 -21
- package/src/internal/resolve-prod-target.ts +0 -334
- package/src/internal/resolved-connections.ts +0 -190
- package/src/internal/router.ts +0 -143
- package/src/internal/run-client.ts +0 -354
- package/src/internal/runtime-dispatch-runner.ts +0 -50
- package/src/internal/sanitize-mcp-tool-name.ts +0 -31
- package/src/internal/schedule-runner.ts +0 -154
- package/src/internal/scm/pr-url.ts +0 -245
- package/src/internal/sdk-runner.ts +0 -948
- package/src/internal/serve-restart.ts +0 -113
- package/src/internal/server.ts +0 -3135
- package/src/internal/session-cost.ts +0 -208
- package/src/internal/session-engine.ts +0 -5618
- package/src/internal/session-links.ts +0 -84
- package/src/internal/session-run-log.ts +0 -535
- package/src/internal/session-store.ts +0 -307
- package/src/internal/session-urls.ts +0 -32
- package/src/internal/sessions-client.ts +0 -239
- package/src/internal/skill-catalog.ts +0 -66
- package/src/internal/skills-sync.ts +0 -55
- package/src/internal/slack-provision-client.ts +0 -544
- package/src/internal/slack-thread-key.ts +0 -11
- package/src/internal/sleep.ts +0 -3
- package/src/internal/start-log-store.ts +0 -164
- package/src/internal/steering.ts +0 -17
- package/src/internal/storage-coordinator.ts +0 -800
- package/src/internal/storage-roles.ts +0 -86
- package/src/internal/storage.ts +0 -1
- package/src/internal/store-api-protocol.ts +0 -205
- package/src/internal/store-mirror.ts +0 -73
- package/src/internal/stream-progress.ts +0 -294
- package/src/internal/terminal-style.ts +0 -133
- package/src/internal/testing/factory-resource-fixtures.ts +0 -84
- package/src/internal/testing/scm-continuation-fixtures.ts +0 -285
- package/src/internal/tool-catalog.ts +0 -104
- package/src/internal/tool-policy.ts +0 -222
- package/src/internal/tool-result.ts +0 -50
- package/src/internal/trajectory.ts +0 -418
- package/src/internal/turn-cost.ts +0 -136
- package/src/internal/turn-governor.ts +0 -145
- package/src/internal/turn-lease-store.ts +0 -144
- package/src/internal/turn-outbox.ts +0 -77
- package/src/internal/update-check.ts +0 -517
- package/src/internal/v2-hosting.ts +0 -52
- package/src/internal/workspace-sync.ts +0 -114
- package/src/internal/workspace.ts +0 -505
- package/src/kv/memory-kv.ts +0 -94
- package/src/kv.ts +0 -18
- package/src/memory.ts +0 -487
- package/src/otel-public.ts +0 -24
- package/src/otel.ts +0 -320
- package/src/prompt.ts +0 -80
- package/src/reminders.ts +0 -65
- package/src/schedules.ts +0 -31
- package/src/skills.ts +0 -27
- package/src/storage-backends/cursor-hosted-v2.ts +0 -204
- package/src/storage-backends/cursor-hosted.ts +0 -388
- package/src/storage-backends/file-kv.ts +0 -276
- package/src/storage-protocol.ts +0 -261
- package/src/storage.ts +0 -408
- package/src/tools.ts +0 -166
- package/src/types.ts +0 -3766
- /package/dist/docs/assets/{reference_agent-config.md.DzGI777n.lean.js → reference_agent-config.md.Cj5uBKp4.lean.js} +0 -0
- /package/dist/docs/assets/{reference_artifacts.md.CFMNPreZ.lean.js → reference_artifacts.md.CQfKq8F2.lean.js} +0 -0
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cursor-account mode for GitHub channels.
|
|
3
|
-
*
|
|
4
|
-
* The channel declares the intent at definition time. The serve host binds
|
|
5
|
-
* this placeholder to its signed-in Cursor account after it resolves the
|
|
6
|
-
* repository scope into private runtime metadata (never by rewriting the
|
|
7
|
-
* authored `cursorAccount` options object).
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type { GitHubChannelOptions } from "./types.js";
|
|
11
|
-
|
|
12
|
-
export const CURSOR_GITHUB_MAX_REPOS = 20;
|
|
13
|
-
const CURSOR_GITHUB_REPO_PATTERN = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;
|
|
14
|
-
const cursorAccountTokenResolvers = new WeakSet<object>();
|
|
15
|
-
|
|
16
|
-
/** Least → most privilege. Host mints one lease at the max requested tier. */
|
|
17
|
-
export const CURSOR_GITHUB_PERMISSIONS = ["read", "pr-write", "contents-write"] as const;
|
|
18
|
-
|
|
19
|
-
export type CursorGithubPermissions = (typeof CURSOR_GITHUB_PERMISSIONS)[number];
|
|
20
|
-
|
|
21
|
-
export interface CursorGithubRepoScope {
|
|
22
|
-
owner: string;
|
|
23
|
-
repos: readonly string[];
|
|
24
|
-
permissions: CursorGithubPermissions;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export type CursorAccountGithubTokenResolver = () => Promise<string>;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Backend GitHub-proxy transport bound by the serve host. When set, the
|
|
31
|
-
* channel Octokit targets the proxy `apiBaseUrl` and attaches the scope
|
|
32
|
-
* `headers`; the bound token is the host's Cursor API key, and the raw
|
|
33
|
-
* installation token never reaches this process.
|
|
34
|
-
*/
|
|
35
|
-
export interface CursorGithubProxyTransport {
|
|
36
|
-
apiBaseUrl: string;
|
|
37
|
-
headers: Readonly<Record<string, string>>;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export interface PendingCursorGithubCredentials {
|
|
41
|
-
bind(getToken: () => Promise<string>): void;
|
|
42
|
-
getToken(): Promise<string>;
|
|
43
|
-
bindProxyTransport(transport: CursorGithubProxyTransport): void;
|
|
44
|
-
getProxyTransport(): CursorGithubProxyTransport | undefined;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export interface GithubCursorAccountRuntime {
|
|
48
|
-
/** Authored channel options (not rewritten). */
|
|
49
|
-
options: GitHubChannelOptions;
|
|
50
|
-
credentials: PendingCursorGithubCredentials;
|
|
51
|
-
/**
|
|
52
|
-
* Normalized repo + permissions scope when `cursorAccount` is an object.
|
|
53
|
-
* Absent for `cursorAccount: true` (scope comes from serve `--repo`).
|
|
54
|
-
*/
|
|
55
|
-
scope: CursorGithubRepoScope | undefined;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const runtimeByDefinition = new WeakMap<object, GithubCursorAccountRuntime>();
|
|
59
|
-
|
|
60
|
-
export function parseCursorGithubPermissions(
|
|
61
|
-
value: unknown,
|
|
62
|
-
fallback: CursorGithubPermissions = "pr-write",
|
|
63
|
-
): CursorGithubPermissions {
|
|
64
|
-
if (value === undefined) {
|
|
65
|
-
return fallback;
|
|
66
|
-
}
|
|
67
|
-
if (value === "read" || value === "pr-write" || value === "contents-write") {
|
|
68
|
-
return value;
|
|
69
|
-
}
|
|
70
|
-
throw new Error(
|
|
71
|
-
'Cursor account GitHub permissions must be "read", "pr-write", or "contents-write".',
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* `owner/repo` from an Octokit request, for github-proxy calls that have no
|
|
77
|
-
* static `x-cursor-github-repos` header (`cursorAccount: true` with no
|
|
78
|
-
* `--repo` / channel `{ repos }`).
|
|
79
|
-
*/
|
|
80
|
-
export function githubRepoFromOctokitRequest(request: {
|
|
81
|
-
owner?: unknown;
|
|
82
|
-
repo?: unknown;
|
|
83
|
-
url?: unknown;
|
|
84
|
-
}): string | undefined {
|
|
85
|
-
if (typeof request.owner === "string" && typeof request.repo === "string") {
|
|
86
|
-
const slug = `${request.owner.trim()}/${request.repo.trim()}`.toLowerCase();
|
|
87
|
-
if (CURSOR_GITHUB_REPO_PATTERN.test(slug) && !slug.includes("..")) {
|
|
88
|
-
return slug;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
if (typeof request.url !== "string") {
|
|
92
|
-
return undefined;
|
|
93
|
-
}
|
|
94
|
-
const match = request.url.match(/\/repos\/([^/?#]+)\/([^/?#]+)/);
|
|
95
|
-
const owner = match?.[1]?.trim() ?? "";
|
|
96
|
-
const repo = match?.[2]?.trim() ?? "";
|
|
97
|
-
if (owner === "" || repo === "" || owner.includes("{") || repo.includes("{")) {
|
|
98
|
-
return undefined;
|
|
99
|
-
}
|
|
100
|
-
const slug = `${owner}/${repo}`.toLowerCase();
|
|
101
|
-
if (!CURSOR_GITHUB_REPO_PATTERN.test(slug) || slug.includes("..")) {
|
|
102
|
-
return undefined;
|
|
103
|
-
}
|
|
104
|
-
return slug;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Merge `--repo` / channel-declared repos into a lease scope. Empty is
|
|
109
|
-
* valid for `cursorAccount: true`: hosted engines that pull events from
|
|
110
|
-
* the deployment stream (no `--cursor-events --repo`) still start, and
|
|
111
|
-
* github-proxy fills `x-cursor-github-repos` per Octokit call.
|
|
112
|
-
*/
|
|
113
|
-
export function resolveCursorGithubCredentialScope(
|
|
114
|
-
values: readonly string[],
|
|
115
|
-
permissions: CursorGithubPermissions = "pr-write",
|
|
116
|
-
): CursorGithubRepoScope | undefined {
|
|
117
|
-
const repos = [...new Set(values.map(repo => repo.trim().toLowerCase()).filter(Boolean))];
|
|
118
|
-
if (repos.length === 0) {
|
|
119
|
-
return undefined;
|
|
120
|
-
}
|
|
121
|
-
return parseCursorGithubRepoScope(repos, permissions);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export function parseCursorGithubRepoScope(
|
|
125
|
-
values: readonly string[],
|
|
126
|
-
permissions: CursorGithubPermissions = "pr-write",
|
|
127
|
-
): CursorGithubRepoScope {
|
|
128
|
-
const repos = [...new Set(values.map(repo => repo.trim().toLowerCase()).filter(Boolean))];
|
|
129
|
-
if (repos.length === 0) {
|
|
130
|
-
throw new Error("Cursor account GitHub credentials require at least one repository.");
|
|
131
|
-
}
|
|
132
|
-
if (repos.length > CURSOR_GITHUB_MAX_REPOS) {
|
|
133
|
-
throw new Error(
|
|
134
|
-
`Cursor account GitHub credentials support at most ${CURSOR_GITHUB_MAX_REPOS} repositories.`,
|
|
135
|
-
);
|
|
136
|
-
}
|
|
137
|
-
for (const repo of repos) {
|
|
138
|
-
if (!CURSOR_GITHUB_REPO_PATTERN.test(repo) || repo.includes("..")) {
|
|
139
|
-
throw new Error(`Invalid Cursor account GitHub repository "${repo}"; expected owner/repo.`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
const owner = repos[0]?.split("/", 1)[0];
|
|
143
|
-
if (owner === undefined) {
|
|
144
|
-
throw new Error("Cursor account GitHub repository owner is missing.");
|
|
145
|
-
}
|
|
146
|
-
if (repos.some(repo => repo.split("/", 1)[0] !== owner)) {
|
|
147
|
-
throw new Error(
|
|
148
|
-
"Cursor account GitHub repositories must share one owner for a single installation token.",
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
return {
|
|
152
|
-
owner,
|
|
153
|
-
repos,
|
|
154
|
-
permissions: parseCursorGithubPermissions(permissions),
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Hosted `cursorAccount` mints `checks:write` on the `contents-write` tier.
|
|
160
|
-
* Enabling `progress.commitStatus` or `checks: true` opts a `pr-write` (or
|
|
161
|
-
* omitted) channel up to that tier so github-proxy / `/github-token` can
|
|
162
|
-
* post Checks API runs. `"read"` cannot post merge-box checks.
|
|
163
|
-
*/
|
|
164
|
-
export function cursorGithubPermissionsForChannel(
|
|
165
|
-
options: Pick<GitHubChannelOptions, "progress" | "checks">,
|
|
166
|
-
authored: CursorGithubPermissions | undefined = "pr-write",
|
|
167
|
-
): CursorGithubPermissions {
|
|
168
|
-
const base = authored ?? "pr-write";
|
|
169
|
-
const commitStatus = options.progress?.commitStatus;
|
|
170
|
-
const wantsChecks =
|
|
171
|
-
options.checks === true || (commitStatus !== undefined && commitStatus !== false);
|
|
172
|
-
if (!wantsChecks) {
|
|
173
|
-
return base;
|
|
174
|
-
}
|
|
175
|
-
if (base === "read") {
|
|
176
|
-
throw new Error(
|
|
177
|
-
'progress.commitStatus / checks need checks:write; cursorAccount permissions: "read" cannot post merge-box checks. Use "pr-write" or "contents-write".',
|
|
178
|
-
);
|
|
179
|
-
}
|
|
180
|
-
return "contents-write";
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/** One host credential: the most privileged requested tier wins. */
|
|
184
|
-
export function resolveCursorGithubPermissions(
|
|
185
|
-
values: readonly CursorGithubPermissions[],
|
|
186
|
-
): CursorGithubPermissions {
|
|
187
|
-
let max: CursorGithubPermissions = "read";
|
|
188
|
-
for (const value of values) {
|
|
189
|
-
if (CURSOR_GITHUB_PERMISSIONS.indexOf(value) > CURSOR_GITHUB_PERMISSIONS.indexOf(max)) {
|
|
190
|
-
max = value;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
return values.length === 0 ? "pr-write" : max;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
export function createCursorAccountGithubTokenResolver(
|
|
197
|
-
getToken: () => Promise<string>,
|
|
198
|
-
pending?: PendingCursorGithubCredentials,
|
|
199
|
-
): CursorAccountGithubTokenResolver {
|
|
200
|
-
const resolver = () => getToken();
|
|
201
|
-
cursorAccountTokenResolvers.add(resolver);
|
|
202
|
-
if (pending !== undefined) {
|
|
203
|
-
pendingByResolver.set(resolver, pending);
|
|
204
|
-
}
|
|
205
|
-
return resolver;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Token resolver for `ctx.host.github` in proxy mode with no startup token
|
|
210
|
-
* mint (empty repo scope): resolves the Cursor API key and carries the
|
|
211
|
-
* proxy transport so `createGitHubOctokit` targets github-proxy and fills
|
|
212
|
-
* `x-cursor-github-repos` per request — the same route channel Octokit
|
|
213
|
-
* calls take.
|
|
214
|
-
*/
|
|
215
|
-
export function createCursorGithubProxyHostResolver(input: {
|
|
216
|
-
getApiKey: () => Promise<string>;
|
|
217
|
-
transport: CursorGithubProxyTransport;
|
|
218
|
-
}): CursorAccountGithubTokenResolver {
|
|
219
|
-
const credentials = createPendingCursorGithubCredentials();
|
|
220
|
-
credentials.bind(input.getApiKey);
|
|
221
|
-
credentials.bindProxyTransport(input.transport);
|
|
222
|
-
return createCursorAccountGithubTokenResolver(() => credentials.getToken(), credentials);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/** Proxy transport for a resolver's credentials, when the host bound one. */
|
|
226
|
-
export function getCursorAccountGithubProxyTransport(
|
|
227
|
-
resolver: CursorAccountGithubTokenResolver,
|
|
228
|
-
): CursorGithubProxyTransport | undefined {
|
|
229
|
-
return pendingByResolver.get(resolver)?.getProxyTransport();
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
const pendingByResolver = new WeakMap<
|
|
233
|
-
CursorAccountGithubTokenResolver,
|
|
234
|
-
PendingCursorGithubCredentials
|
|
235
|
-
>();
|
|
236
|
-
|
|
237
|
-
/** Forges whose cursorAccount packs route through the backend SCM forwarder. */
|
|
238
|
-
export type CursorScmProxyForge = "github" | "gitlab" | "bitbucket";
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Backend SCM-proxy base URL for proxy mode (`--cursor-scm-proxy`). Each
|
|
242
|
-
* pack derives its own route, `/v0/<forge>-proxy`, from the Cursor API
|
|
243
|
-
* base URL; `AGENT_SERVE_<FORGE>_PROXY_URL` overrides it.
|
|
244
|
-
*/
|
|
245
|
-
export function resolveCursorScmProxyUrl(
|
|
246
|
-
forge: CursorScmProxyForge,
|
|
247
|
-
backendBaseUrl: string,
|
|
248
|
-
): string {
|
|
249
|
-
const override = process.env[`AGENT_SERVE_${forge.toUpperCase()}_PROXY_URL`];
|
|
250
|
-
const url =
|
|
251
|
-
override !== undefined && override.trim() !== ""
|
|
252
|
-
? new URL(override)
|
|
253
|
-
: new URL(`/v0/${forge}-proxy`, backendBaseUrl);
|
|
254
|
-
return url.toString().replace(/\/+$/, "");
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/** GitHub-proxy base URL; see {@link resolveCursorScmProxyUrl}. */
|
|
258
|
-
export function resolveCursorGithubProxyUrl(backendBaseUrl: string): string {
|
|
259
|
-
return resolveCursorScmProxyUrl("github", backendBaseUrl);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
export function isCursorAccountGithubTokenResolver(
|
|
263
|
-
value: unknown,
|
|
264
|
-
): value is CursorAccountGithubTokenResolver {
|
|
265
|
-
return typeof value === "function" && cursorAccountTokenResolvers.has(value);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
export function createPendingCursorGithubCredentials(): PendingCursorGithubCredentials {
|
|
269
|
-
let getBoundToken: (() => Promise<string>) | undefined;
|
|
270
|
-
let proxyTransport: CursorGithubProxyTransport | undefined;
|
|
271
|
-
return {
|
|
272
|
-
bind(getToken) {
|
|
273
|
-
getBoundToken = getToken;
|
|
274
|
-
},
|
|
275
|
-
getToken() {
|
|
276
|
-
if (getBoundToken === undefined) {
|
|
277
|
-
throw new Error(
|
|
278
|
-
"githubChannel({ cursorAccount: true }) has not been bound to a signed-in Cursor host.",
|
|
279
|
-
);
|
|
280
|
-
}
|
|
281
|
-
return getBoundToken();
|
|
282
|
-
},
|
|
283
|
-
bindProxyTransport(transport) {
|
|
284
|
-
proxyTransport = transport;
|
|
285
|
-
},
|
|
286
|
-
getProxyTransport() {
|
|
287
|
-
return proxyTransport;
|
|
288
|
-
},
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
export function registerGithubCursorAccountRuntime(
|
|
293
|
-
definition: object,
|
|
294
|
-
runtime: GithubCursorAccountRuntime,
|
|
295
|
-
): void {
|
|
296
|
-
runtimeByDefinition.set(definition, runtime);
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
export function getGithubCursorAccountRuntime(
|
|
300
|
-
definition: object,
|
|
301
|
-
): GithubCursorAccountRuntime | undefined {
|
|
302
|
-
return runtimeByDefinition.get(definition);
|
|
303
|
-
}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default stream-event handlers for the GitHub channel.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import type { ChannelEventHandlers } from "../../types.js";
|
|
6
|
-
import type { GitHubBindingConfig } from "./binding.js";
|
|
7
|
-
import { buildGitHubBinding, formatGitHubOutboundComment } from "./binding.js";
|
|
8
|
-
import { applyGitHubProgress, type GitHubProgressConfig } from "./progress.js";
|
|
9
|
-
import type { GitHubChannelState } from "./state.js";
|
|
10
|
-
|
|
11
|
-
export interface BuildDefaultGitHubEventsOptions extends GitHubBindingConfig {
|
|
12
|
-
botName?: string;
|
|
13
|
-
progress?: GitHubProgressConfig;
|
|
14
|
-
/**
|
|
15
|
-
* When false, skip posting completed assistant messages back to GitHub.
|
|
16
|
-
* Defaults to true.
|
|
17
|
-
*/
|
|
18
|
-
deliverReplies?: boolean;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Built-in delivery: eyes reaction on turn start, optional Checks API run /
|
|
23
|
-
* sticky banner via {@link GitHubProgressConfig}, post assistant text on
|
|
24
|
-
* `message.completed`, and a short error comment on turn/session failure.
|
|
25
|
-
*/
|
|
26
|
-
export function buildDefaultGitHubEvents(
|
|
27
|
-
options: BuildDefaultGitHubEventsOptions = {},
|
|
28
|
-
): ChannelEventHandlers<GitHubChannelState> {
|
|
29
|
-
const deliverReplies = options.deliverReplies !== false;
|
|
30
|
-
const requiredSuccessfulTools = new Set(
|
|
31
|
-
options.progress?.requireSuccessfulTools
|
|
32
|
-
?.map(toolName => toolName.trim())
|
|
33
|
-
.filter(toolName => toolName !== "") ?? [],
|
|
34
|
-
);
|
|
35
|
-
const toolOutcomesBySession = new Map<string, Map<string, boolean>>();
|
|
36
|
-
|
|
37
|
-
return {
|
|
38
|
-
async "turn.started"(event, channel) {
|
|
39
|
-
if (requiredSuccessfulTools.size > 0) {
|
|
40
|
-
toolOutcomesBySession.set(event.sessionId, new Map());
|
|
41
|
-
}
|
|
42
|
-
await applyGitHubProgress({
|
|
43
|
-
phase: "pending",
|
|
44
|
-
sessionId: event.sessionId,
|
|
45
|
-
channel,
|
|
46
|
-
options,
|
|
47
|
-
});
|
|
48
|
-
if (options.progress?.reactions === false) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
if (channel.state.owner === "" || channel.state.repo === "") {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
try {
|
|
55
|
-
const { thread } = buildGitHubBinding({
|
|
56
|
-
config: options,
|
|
57
|
-
state: channel.state,
|
|
58
|
-
});
|
|
59
|
-
await thread.react("eyes");
|
|
60
|
-
} catch {
|
|
61
|
-
// Soft-fail: missing token / no triggering comment is fine.
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
|
|
65
|
-
async "action.result"(event) {
|
|
66
|
-
if (
|
|
67
|
-
event.data.parentCallId !== undefined ||
|
|
68
|
-
!requiredSuccessfulTools.has(event.data.toolName)
|
|
69
|
-
) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const outcomes = toolOutcomesBySession.get(event.sessionId) ?? new Map();
|
|
73
|
-
outcomes.set(event.data.toolName, !event.data.isError && event.data.stubbed !== true);
|
|
74
|
-
toolOutcomesBySession.set(event.sessionId, outcomes);
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
async "turn.completed"(event, channel) {
|
|
78
|
-
const outcomes = toolOutcomesBySession.get(event.sessionId);
|
|
79
|
-
const pipelineSucceeded =
|
|
80
|
-
requiredSuccessfulTools.size === 0 ||
|
|
81
|
-
[...requiredSuccessfulTools].every(toolName => outcomes?.get(toolName) === true);
|
|
82
|
-
toolOutcomesBySession.delete(event.sessionId);
|
|
83
|
-
await applyGitHubProgress({
|
|
84
|
-
phase: pipelineSucceeded ? "success" : "failure",
|
|
85
|
-
sessionId: event.sessionId,
|
|
86
|
-
channel,
|
|
87
|
-
options,
|
|
88
|
-
});
|
|
89
|
-
},
|
|
90
|
-
|
|
91
|
-
async "message.completed"(event, channel) {
|
|
92
|
-
if (!deliverReplies) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
if (
|
|
96
|
-
event.data.parentCallId !== undefined ||
|
|
97
|
-
event.data.finishReason === "tool_call" ||
|
|
98
|
-
event.data.text === ""
|
|
99
|
-
) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
if (channel.state.owner === "" || channel.state.repo === "") {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
try {
|
|
106
|
-
const { thread } = buildGitHubBinding({
|
|
107
|
-
config: options,
|
|
108
|
-
state: channel.state,
|
|
109
|
-
});
|
|
110
|
-
await thread.post(formatGitHubOutboundComment(event.data.text));
|
|
111
|
-
} catch {
|
|
112
|
-
// Soft-fail delivery so a missing token does not crash the session.
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
|
|
116
|
-
async "turn.failed"(event, channel) {
|
|
117
|
-
toolOutcomesBySession.delete(event.sessionId);
|
|
118
|
-
await applyGitHubProgress({
|
|
119
|
-
phase: "failure",
|
|
120
|
-
sessionId: event.sessionId,
|
|
121
|
-
channel,
|
|
122
|
-
options,
|
|
123
|
-
});
|
|
124
|
-
await postFailure(channel, options, event.data.message);
|
|
125
|
-
},
|
|
126
|
-
|
|
127
|
-
async "session.failed"(event, channel) {
|
|
128
|
-
toolOutcomesBySession.delete(event.sessionId);
|
|
129
|
-
await applyGitHubProgress({
|
|
130
|
-
phase: "failure",
|
|
131
|
-
sessionId: event.sessionId,
|
|
132
|
-
channel,
|
|
133
|
-
options,
|
|
134
|
-
});
|
|
135
|
-
await postFailure(channel, options, event.data.message);
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
async function postFailure(
|
|
141
|
-
channel: { state: GitHubChannelState },
|
|
142
|
-
options: BuildDefaultGitHubEventsOptions,
|
|
143
|
-
_error: string,
|
|
144
|
-
): Promise<void> {
|
|
145
|
-
if (options.deliverReplies === false) {
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
if (channel.state.owner === "" || channel.state.repo === "") {
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
try {
|
|
152
|
-
const { thread } = buildGitHubBinding({
|
|
153
|
-
config: options,
|
|
154
|
-
state: channel.state,
|
|
155
|
-
});
|
|
156
|
-
await thread.post(
|
|
157
|
-
formatGitHubOutboundComment(
|
|
158
|
-
[
|
|
159
|
-
"I hit an error while handling your request.",
|
|
160
|
-
"",
|
|
161
|
-
"Please try again, or reach out if it keeps failing.",
|
|
162
|
-
].join("\n"),
|
|
163
|
-
),
|
|
164
|
-
);
|
|
165
|
-
} catch {
|
|
166
|
-
// Soft-fail.
|
|
167
|
-
}
|
|
168
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Webhook event derivation for the GitHub channel.
|
|
3
|
-
*
|
|
4
|
-
* `agent-sdk github forward` reads the set of webhook events a channel is
|
|
5
|
-
* wired to dispatch (published as `meta.githubWebhookEvents`) so it can build
|
|
6
|
-
* `gh webhook forward --events=…` without the operator hand-listing them.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import type { GitHubChannelOptions } from "./types.js";
|
|
10
|
-
|
|
11
|
-
/** {@link ChannelMeta.kind} value used by {@link githubChannel}. */
|
|
12
|
-
export const GITHUB_CHANNEL_KIND = "github";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Events the channel always parses through its built-in defaults: the
|
|
16
|
-
* `pull_request` gate and the `@mention` comment gates exist even when no
|
|
17
|
-
* hook is declared.
|
|
18
|
-
*/
|
|
19
|
-
const BASE_WEBHOOK_EVENTS: readonly string[] = [
|
|
20
|
-
"pull_request",
|
|
21
|
-
"issue_comment",
|
|
22
|
-
"pull_request_review_comment",
|
|
23
|
-
];
|
|
24
|
-
|
|
25
|
-
/** Typed opt-in hooks and the webhook event each subscribes to. */
|
|
26
|
-
const OPT_IN_HOOK_EVENTS: ReadonlyArray<{
|
|
27
|
-
option: keyof GitHubChannelOptions;
|
|
28
|
-
event: string;
|
|
29
|
-
}> = [
|
|
30
|
-
{ option: "onIssue", event: "issues" },
|
|
31
|
-
{ option: "onCheckSuite", event: "check_suite" },
|
|
32
|
-
{ option: "onCheckRun", event: "check_run" },
|
|
33
|
-
{ option: "onWorkflowRun", event: "workflow_run" },
|
|
34
|
-
{ option: "onStatus", event: "status" },
|
|
35
|
-
];
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Common events that only reach the `onEvent` catch-all (no typed hook). When
|
|
39
|
-
* `onEvent` is declared we forward these too so review activity is delivered.
|
|
40
|
-
*/
|
|
41
|
-
const CATCH_ALL_EVENTS: readonly string[] = ["pull_request_review", "pull_request_review_thread"];
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Derive the webhook events a {@link githubChannel} dispatches on from its
|
|
45
|
-
* declared hooks. When {@link GitHubChannelOptions.webhookEvents} is set it is
|
|
46
|
-
* authoritative and returned verbatim (deduped, order preserved) — use it to
|
|
47
|
-
* pin an exact list (e.g. to add events only handled via `onEvent`).
|
|
48
|
-
*/
|
|
49
|
-
export function deriveGitHubWebhookEvents(options: GitHubChannelOptions): string[] {
|
|
50
|
-
if (options.webhookEvents !== undefined) {
|
|
51
|
-
return dedupe(options.webhookEvents);
|
|
52
|
-
}
|
|
53
|
-
const events: string[] = [...BASE_WEBHOOK_EVENTS];
|
|
54
|
-
for (const { option, event } of OPT_IN_HOOK_EVENTS) {
|
|
55
|
-
if (options[option] !== undefined) {
|
|
56
|
-
events.push(event);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (options.onEvent !== undefined) {
|
|
60
|
-
events.push(...CATCH_ALL_EVENTS);
|
|
61
|
-
}
|
|
62
|
-
return dedupe(events);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function dedupe(events: readonly string[]): string[] {
|
|
66
|
-
return [...new Set(events.map(event => event.trim()).filter(Boolean))];
|
|
67
|
-
}
|