@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,250 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Origin CI checks — the Origin {@link CiCheckWriter} behind the shared check
|
|
3
|
-
* lifecycle in `../checks.js`.
|
|
4
|
-
*
|
|
5
|
-
* Origin check runs are idempotent upserts keyed by `(repo, head SHA, suite
|
|
6
|
-
* key, check key, externalId)`, so every write re-POSTs the full desired
|
|
7
|
-
* state with a fresh `externalUpdatedAt`, and `resumeOriginCheck` needs only
|
|
8
|
-
* those identity fields (no server id) to rebuild a handle after a restart.
|
|
9
|
-
* The default `externalId` is per execution, so a re-run on the same head
|
|
10
|
-
* posts a new attempt under the same key instead of rewriting the last one.
|
|
11
|
-
*
|
|
12
|
-
* Posting needs `repository:checks:write`: an `oit_…` installation token for
|
|
13
|
-
* app channels, or a deployment service-account session (hosted v2 forks —
|
|
14
|
-
* the `agent-serve` allowlist grants checks:write on team-owned namespaces).
|
|
15
|
-
* See `createOriginClient` in `api.js`. Works with any client exposing
|
|
16
|
-
* `request()` (`ctx.origin`, `createOriginClient()`), and is also reachable
|
|
17
|
-
* as `ctx.origin.createCheck(...)`. API failures throw `OriginApiError`.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
import { randomUUID } from "node:crypto";
|
|
21
|
-
import {
|
|
22
|
-
type CiCheck,
|
|
23
|
-
type CiCheckConcludeInput,
|
|
24
|
-
type CiCheckConclusion,
|
|
25
|
-
type CiCheckCreateInput,
|
|
26
|
-
type CiCheckOutput,
|
|
27
|
-
type CiCheckRef,
|
|
28
|
-
type CiCheckStatus,
|
|
29
|
-
type CiChecksClient,
|
|
30
|
-
type CiCheckUpdateInput,
|
|
31
|
-
type CiCheckWriter,
|
|
32
|
-
openCiCheck,
|
|
33
|
-
resumeCiCheck,
|
|
34
|
-
} from "../checks.js";
|
|
35
|
-
import type { OriginApiMethod } from "./api.js";
|
|
36
|
-
|
|
37
|
-
/** Any client that can call the Origin public REST API. */
|
|
38
|
-
export interface OriginCheckClient {
|
|
39
|
-
request<T = unknown>(input: {
|
|
40
|
-
method: OriginApiMethod;
|
|
41
|
-
path: string;
|
|
42
|
-
body?: unknown;
|
|
43
|
-
}): Promise<T>;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export type OriginCheckRunStatus = CiCheckStatus;
|
|
47
|
-
|
|
48
|
-
/** Origin accepts the shared conclusion set plus `stale`. */
|
|
49
|
-
export type OriginCheckRunConclusion = CiCheckConclusion | "stale";
|
|
50
|
-
|
|
51
|
-
export type OriginCheckOutput = CiCheckOutput;
|
|
52
|
-
export type OriginCheckUpdateInput = CiCheckUpdateInput<OriginCheckRunConclusion>;
|
|
53
|
-
export type OriginCheckConcludeInput = CiCheckConcludeInput<OriginCheckRunConclusion>;
|
|
54
|
-
|
|
55
|
-
/** A created check run. All methods throw `OriginApiError` on API failure. */
|
|
56
|
-
export type OriginCheck = CiCheck<OriginCheckRunConclusion> & CiCheckRef;
|
|
57
|
-
|
|
58
|
-
/** The upsert identity + client an Origin check is bound to. */
|
|
59
|
-
export interface OriginCheckIdentityInput {
|
|
60
|
-
/** Client used for every API call on the returned handle. */
|
|
61
|
-
origin: OriginCheckClient;
|
|
62
|
-
/** Repository owner slug, e.g. `"anysphere"`. */
|
|
63
|
-
owner: string;
|
|
64
|
-
/** Repository name, e.g. `"everysphere"`. */
|
|
65
|
-
repo: string;
|
|
66
|
-
/** Check name shown in the PR merge box, e.g. `"Cursor Security Review"`. */
|
|
67
|
-
name: string;
|
|
68
|
-
/** Commit the check attaches to (usually the PR head SHA). */
|
|
69
|
-
sha: string;
|
|
70
|
-
/**
|
|
71
|
-
* Stable, app-chosen key identifying the logical check across attempts
|
|
72
|
-
* (part of the upsert identity). Defaults to a slug of `name`.
|
|
73
|
-
*/
|
|
74
|
-
key?: string;
|
|
75
|
-
/** Suite the check belongs to. Defaults to a suite mirroring the check. */
|
|
76
|
-
suite?: { key?: string; name?: string; detailsUrl?: string };
|
|
77
|
-
/**
|
|
78
|
-
* Per-execution component of the default `externalId` (`ctx.origin` seeds
|
|
79
|
-
* the webhook delivery id). Defaults to a fresh UUID per check.
|
|
80
|
-
*/
|
|
81
|
-
executionId?: string;
|
|
82
|
-
/**
|
|
83
|
-
* Provider-assigned immutable identity for this check attempt. Defaults to
|
|
84
|
-
* `agent-serve:<suite key>:<key>:<sha>:<executionId>`.
|
|
85
|
-
*/
|
|
86
|
-
externalId?: string;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// The identity input's `suite` also carries Origin's key and details URL, so
|
|
90
|
-
// the forge-agnostic `suite` label is replaced rather than merged.
|
|
91
|
-
export interface OriginCheckCreateInput
|
|
92
|
-
extends OriginCheckIdentityInput, Omit<CiCheckCreateInput, "suite"> {}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Origin rejects the whole upsert when `output.title` exceeds 255 characters
|
|
96
|
-
* or a body exceeds 65,535 UTF-8 bytes, so the writer caps rather than
|
|
97
|
-
* risking a lost check write.
|
|
98
|
-
*/
|
|
99
|
-
const OUTPUT_TITLE_MAX_CHARS = 255;
|
|
100
|
-
const OUTPUT_BODY_MAX_BYTES = 65_000;
|
|
101
|
-
|
|
102
|
-
/** Truncate to at most `maxBytes` UTF-8 bytes without severing a character. */
|
|
103
|
-
function capUtf8Bytes(text: string, maxBytes: number): string {
|
|
104
|
-
const encoded = new TextEncoder().encode(text);
|
|
105
|
-
if (encoded.length <= maxBytes) {
|
|
106
|
-
return text;
|
|
107
|
-
}
|
|
108
|
-
// A non-fatal decode turns a trailing partial character into U+FFFD;
|
|
109
|
-
// stripping it keeps the result valid (and re-encodable) under the cap.
|
|
110
|
-
return new TextDecoder("utf-8").decode(encoded.subarray(0, maxBytes)).replace(/\uFFFD+$/, "");
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
function cappedOutput(output: CiCheckOutput | undefined): Record<string, unknown> | undefined {
|
|
114
|
-
if (output === undefined) {
|
|
115
|
-
return undefined;
|
|
116
|
-
}
|
|
117
|
-
return {
|
|
118
|
-
title: output.title.slice(0, OUTPUT_TITLE_MAX_CHARS),
|
|
119
|
-
summary: capUtf8Bytes(output.summary, OUTPUT_BODY_MAX_BYTES),
|
|
120
|
-
...(output.text === undefined
|
|
121
|
-
? {}
|
|
122
|
-
: { text: capUtf8Bytes(output.text, OUTPUT_BODY_MAX_BYTES) }),
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/** Derive a stable check key from a display name, e.g. `cursor-security-review`. */
|
|
127
|
-
export function originCheckKeyFromName(name: string): string {
|
|
128
|
-
const slug = name
|
|
129
|
-
.toLowerCase()
|
|
130
|
-
.replace(/[^a-z0-9]+/g, "-")
|
|
131
|
-
.replace(/^-+|-+$/g, "")
|
|
132
|
-
.slice(0, 100);
|
|
133
|
-
return slug === "" ? "check" : slug;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Origin writer: every write is a full keyed upsert. Tracks the last written
|
|
138
|
-
* status so an output-only update cannot regress a running check to queued.
|
|
139
|
-
*/
|
|
140
|
-
function originCheckWriter(
|
|
141
|
-
input: OriginCheckIdentityInput & { status?: CiCheckStatus },
|
|
142
|
-
): CiCheckWriter<OriginCheckRunConclusion> {
|
|
143
|
-
const key = input.key ?? originCheckKeyFromName(input.name);
|
|
144
|
-
const suiteKey = input.suite?.key ?? key;
|
|
145
|
-
const externalId =
|
|
146
|
-
input.externalId ??
|
|
147
|
-
`agent-serve:${suiteKey}:${key}:${input.sha}:${input.executionId ?? randomUUID()}`;
|
|
148
|
-
const path = `/v1/origin/repos/${encodeURIComponent(input.owner)}/${encodeURIComponent(
|
|
149
|
-
input.repo,
|
|
150
|
-
)}/check-runs`;
|
|
151
|
-
let lastStatus: CiCheckStatus = input.status ?? "in_progress";
|
|
152
|
-
return async write => {
|
|
153
|
-
const status = write.status ?? (write.conclusion === undefined ? lastStatus : "completed");
|
|
154
|
-
lastStatus = status;
|
|
155
|
-
const response = await input.origin.request<{
|
|
156
|
-
checkRun?: { id?: unknown };
|
|
157
|
-
}>({
|
|
158
|
-
method: "POST",
|
|
159
|
-
path,
|
|
160
|
-
body: {
|
|
161
|
-
headSha: input.sha,
|
|
162
|
-
checkSuite: {
|
|
163
|
-
key: suiteKey,
|
|
164
|
-
name: input.suite?.name ?? input.name,
|
|
165
|
-
externalId: `agent-serve:${suiteKey}`,
|
|
166
|
-
...(input.suite?.detailsUrl === undefined ? {} : { detailsUrl: input.suite.detailsUrl }),
|
|
167
|
-
},
|
|
168
|
-
checkRun: {
|
|
169
|
-
key,
|
|
170
|
-
name: input.name,
|
|
171
|
-
status,
|
|
172
|
-
conclusion: write.conclusion,
|
|
173
|
-
// Origin only applies an upsert when this timestamp is at least as
|
|
174
|
-
// new as the stored check; timestamp every write when it is built.
|
|
175
|
-
externalUpdatedAt: new Date().toISOString(),
|
|
176
|
-
externalId,
|
|
177
|
-
startedAt: write.startedAt,
|
|
178
|
-
completedAt: write.completedAt,
|
|
179
|
-
detailsUrl: write.detailsUrl,
|
|
180
|
-
output: cappedOutput(write.output),
|
|
181
|
-
},
|
|
182
|
-
},
|
|
183
|
-
});
|
|
184
|
-
const id = response?.checkRun?.id;
|
|
185
|
-
return typeof id === "string" ? { id } : undefined;
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Create a CI check run on a commit and return a handle for later updates.
|
|
191
|
-
*
|
|
192
|
-
* ```ts
|
|
193
|
-
* const check = await createOriginCheck({
|
|
194
|
-
* origin: ctx.origin,
|
|
195
|
-
* owner: ctx.repository.owner,
|
|
196
|
-
* repo: ctx.repository.name,
|
|
197
|
-
* name: "Cursor Security Review",
|
|
198
|
-
* sha: pr.headSha,
|
|
199
|
-
* detailsUrl: sessionUrl,
|
|
200
|
-
* output: { title: "Running…", summary: `[View session](${sessionUrl})` },
|
|
201
|
-
* });
|
|
202
|
-
* // …do the work…
|
|
203
|
-
* await check.conclude({ conclusion: "success", output: { … } });
|
|
204
|
-
* ```
|
|
205
|
-
*/
|
|
206
|
-
export function createOriginCheck(input: OriginCheckCreateInput): Promise<OriginCheck> {
|
|
207
|
-
return openCiCheck(originCheckWriter(input), input);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Rebuild an {@link OriginCheck} handle for an existing check run (e.g.
|
|
212
|
-
* after a process restart) from its upsert identity, including the
|
|
213
|
-
* `executionId` (or explicit `externalId`) it was created with — no server
|
|
214
|
-
* id needed. No API call is made until the first update.
|
|
215
|
-
*/
|
|
216
|
-
export function resumeOriginCheck(
|
|
217
|
-
input: OriginCheckIdentityInput &
|
|
218
|
-
({ executionId: string } | { externalId: string }) & {
|
|
219
|
-
/** Last known status; defaults to `"in_progress"`. */
|
|
220
|
-
status?: CiCheckStatus;
|
|
221
|
-
/** Server-assigned id (`cr_…`) when known. */
|
|
222
|
-
id?: string;
|
|
223
|
-
},
|
|
224
|
-
): OriginCheck {
|
|
225
|
-
return resumeCiCheck(
|
|
226
|
-
originCheckWriter(input),
|
|
227
|
-
input.id === undefined ? undefined : { id: input.id },
|
|
228
|
-
);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Repo-bound checks adapter satisfying the shared {@link CiChecksClient}
|
|
233
|
-
* contract — hand it to forge-agnostic check code when there is no channel
|
|
234
|
-
* `ctx.origin` (e.g. CI entrypoints).
|
|
235
|
-
*/
|
|
236
|
-
export function bindOriginChecks(input: {
|
|
237
|
-
origin: OriginCheckClient;
|
|
238
|
-
owner: string;
|
|
239
|
-
repo: string;
|
|
240
|
-
}): CiChecksClient<OriginCheckRunConclusion> {
|
|
241
|
-
return {
|
|
242
|
-
createCheck: check =>
|
|
243
|
-
createOriginCheck({
|
|
244
|
-
...check,
|
|
245
|
-
origin: input.origin,
|
|
246
|
-
owner: input.owner,
|
|
247
|
-
repo: input.repo,
|
|
248
|
-
}),
|
|
249
|
-
};
|
|
250
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cursor-account mode for Origin channels.
|
|
3
|
-
*
|
|
4
|
-
* Origin identity is the signed-in Cursor user (no third-party OAuth). The
|
|
5
|
-
* channel declares repos at definition time; the serve host subscribes
|
|
6
|
-
* `/v0/scm-events` with `provider: "origin"` as that user. Outbound Origin
|
|
7
|
-
* API calls authenticate with the channel's app credentials when configured;
|
|
8
|
-
* hosted v2 deployments instead exchange the Cursor credential for a
|
|
9
|
-
* session (`cursorSessionTokenProvider` in ./api.ts), so reads and writes
|
|
10
|
-
* both run as the deployment service-account principal.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import type { OriginChannelOptions } from "./types.js";
|
|
14
|
-
|
|
15
|
-
export const CURSOR_ORIGIN_MAX_REPOS = 20;
|
|
16
|
-
const CURSOR_ORIGIN_REPO_PATTERN = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;
|
|
17
|
-
|
|
18
|
-
export interface CursorOriginRepoScope {
|
|
19
|
-
repos: readonly string[];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface OriginCursorAccountRuntime {
|
|
23
|
-
options: OriginChannelOptions;
|
|
24
|
-
scope: CursorOriginRepoScope | undefined;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const runtimeByDefinition = new WeakMap<object, OriginCursorAccountRuntime>();
|
|
28
|
-
|
|
29
|
-
export function parseCursorOriginRepoScope(values: readonly string[]): CursorOriginRepoScope {
|
|
30
|
-
const repos = [...new Set(values.map(repo => repo.trim().toLowerCase()).filter(Boolean))];
|
|
31
|
-
if (repos.length === 0) {
|
|
32
|
-
throw new Error("originChannel({ cursorAccount }) requires at least one repository.");
|
|
33
|
-
}
|
|
34
|
-
if (repos.length > CURSOR_ORIGIN_MAX_REPOS) {
|
|
35
|
-
throw new Error(
|
|
36
|
-
`originChannel({ cursorAccount }) supports at most ${CURSOR_ORIGIN_MAX_REPOS} repositories.`,
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
for (const repo of repos) {
|
|
40
|
-
if (!CURSOR_ORIGIN_REPO_PATTERN.test(repo) || repo.includes("..")) {
|
|
41
|
-
throw new Error(`Invalid Origin repository "${repo}"; expected owner/repo.`);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return { repos };
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export function registerOriginCursorAccountRuntime(
|
|
48
|
-
definition: object,
|
|
49
|
-
runtime: OriginCursorAccountRuntime,
|
|
50
|
-
): void {
|
|
51
|
-
runtimeByDefinition.set(definition, runtime);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export function getOriginCursorAccountRuntime(
|
|
55
|
-
definition: object,
|
|
56
|
-
): OriginCursorAccountRuntime | undefined {
|
|
57
|
-
return runtimeByDefinition.get(definition);
|
|
58
|
-
}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default stream-event handlers for the Origin channel: reply delivery.
|
|
3
|
-
*
|
|
4
|
-
* The GitHub channel posts completed assistant messages back to the PR via
|
|
5
|
-
* `buildDefaultGitHubEvents`; this is the Origin analogue. Outbound
|
|
6
|
-
* credentials resolve exactly like `ctx.origin` in hooks (see
|
|
7
|
-
* ./binding.ts): channel app credentials / `ORIGIN_APP_*` env when
|
|
8
|
-
* configured, otherwise — for `cursorAccount` channels — the Cursor-account
|
|
9
|
-
* session exchange, which on hosted v2 acts as the deployment
|
|
10
|
-
* service-account principal. The `agent-serve` SA scope allowlist includes
|
|
11
|
-
* `repository:pull_requests:reviews:write`, the scope
|
|
12
|
-
* `CreatePullRequestComment` checks, so no extra grant is needed.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
import type { ChannelEventHandlers } from "../../types.js";
|
|
16
|
-
import { buildOriginBinding, type OriginHandle } from "./binding.js";
|
|
17
|
-
import type { OriginChannelState } from "./state.js";
|
|
18
|
-
import type { OriginAppOptions } from "./types.js";
|
|
19
|
-
|
|
20
|
-
/** Hidden marker on outbound Origin comments so consumers can spot them. */
|
|
21
|
-
export const ORIGIN_OUTBOUND_MARKER = "<!-- agent-serve-origin -->";
|
|
22
|
-
|
|
23
|
-
export function formatOriginOutboundComment(body: string): string {
|
|
24
|
-
if (body.includes(ORIGIN_OUTBOUND_MARKER)) {
|
|
25
|
-
return body;
|
|
26
|
-
}
|
|
27
|
-
return `${body.trimEnd()}\n\n${ORIGIN_OUTBOUND_MARKER}`;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface BuildDefaultOriginEventsOptions {
|
|
31
|
-
/** Force the signed-in Cursor account / deployment SA credential path. */
|
|
32
|
-
cursorAccount?: boolean | { repos: readonly string[] };
|
|
33
|
-
/** Channel-authored outbound app credentials / API base. */
|
|
34
|
-
app?: OriginAppOptions;
|
|
35
|
-
/**
|
|
36
|
-
* When false, skip posting completed assistant messages (and failure
|
|
37
|
-
* notices) back to the Origin pull request. Defaults to true.
|
|
38
|
-
*/
|
|
39
|
-
deliverReplies?: boolean;
|
|
40
|
-
/** Injectable binding builder for tests. */
|
|
41
|
-
buildBinding?: typeof buildOriginBinding;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function bindingForState(
|
|
45
|
-
options: BuildDefaultOriginEventsOptions,
|
|
46
|
-
state: OriginChannelState,
|
|
47
|
-
): OriginHandle {
|
|
48
|
-
const build = options.buildBinding ?? buildOriginBinding;
|
|
49
|
-
return build({
|
|
50
|
-
repository: {
|
|
51
|
-
owner: state.owner,
|
|
52
|
-
name: state.repo,
|
|
53
|
-
fullName: `${state.owner}/${state.repo}`,
|
|
54
|
-
},
|
|
55
|
-
...(state.installationId === null ? {} : { installationId: state.installationId }),
|
|
56
|
-
cursorAccount: options.cursorAccount !== undefined && options.cursorAccount !== false,
|
|
57
|
-
app: options.app,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
async function postPullRequestComment(
|
|
62
|
-
options: BuildDefaultOriginEventsOptions,
|
|
63
|
-
state: OriginChannelState,
|
|
64
|
-
body: string,
|
|
65
|
-
): Promise<void> {
|
|
66
|
-
if (state.owner === "" || state.repo === "" || state.pullRequestNumber === null) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const origin = bindingForState(options, state);
|
|
70
|
-
await origin.request({
|
|
71
|
-
method: "POST",
|
|
72
|
-
path: `/v1/origin/repos/${encodeURIComponent(state.owner)}/${encodeURIComponent(
|
|
73
|
-
state.repo,
|
|
74
|
-
)}/pulls/${state.pullRequestNumber}/comments`,
|
|
75
|
-
body: { body: formatOriginOutboundComment(body) },
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Built-in delivery: post assistant text on `message.completed`, and a
|
|
81
|
-
* short error comment on turn/session failure. Every post soft-fails so a
|
|
82
|
-
* missing outbound credential (or an Origin refusal) never crashes the
|
|
83
|
-
* session — the GitHub defaults' posture.
|
|
84
|
-
*/
|
|
85
|
-
export function buildDefaultOriginEvents(
|
|
86
|
-
options: BuildDefaultOriginEventsOptions = {},
|
|
87
|
-
): ChannelEventHandlers<OriginChannelState> {
|
|
88
|
-
const deliverReplies = options.deliverReplies !== false;
|
|
89
|
-
|
|
90
|
-
return {
|
|
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
|
-
try {
|
|
103
|
-
await postPullRequestComment(options, channel.state, event.data.text);
|
|
104
|
-
} catch {
|
|
105
|
-
// Soft-fail delivery so a missing credential does not crash the session.
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
async "turn.failed"(_event, channel) {
|
|
110
|
-
await postFailure(options, channel, deliverReplies);
|
|
111
|
-
},
|
|
112
|
-
|
|
113
|
-
async "session.failed"(_event, channel) {
|
|
114
|
-
await postFailure(options, channel, deliverReplies);
|
|
115
|
-
},
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
async function postFailure(
|
|
120
|
-
options: BuildDefaultOriginEventsOptions,
|
|
121
|
-
channel: { state: OriginChannelState },
|
|
122
|
-
deliverReplies: boolean,
|
|
123
|
-
): Promise<void> {
|
|
124
|
-
if (!deliverReplies) {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
try {
|
|
128
|
-
await postPullRequestComment(
|
|
129
|
-
options,
|
|
130
|
-
channel.state,
|
|
131
|
-
[
|
|
132
|
-
"I hit an error while handling your request.",
|
|
133
|
-
"",
|
|
134
|
-
"Please try again, or reach out if it keeps failing.",
|
|
135
|
-
].join("\n"),
|
|
136
|
-
);
|
|
137
|
-
} catch {
|
|
138
|
-
// Soft-fail.
|
|
139
|
-
}
|
|
140
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/** {@link ChannelMeta.kind} value used by {@link originChannel}. */
|
|
2
|
-
export const ORIGIN_CHANNEL_KIND = "origin";
|
|
3
|
-
|
|
4
|
-
const BASE_WEBHOOK_EVENTS: readonly string[] = [
|
|
5
|
-
"pull_request.created",
|
|
6
|
-
"pull_request.published",
|
|
7
|
-
"pull_request.head_ref.pushed",
|
|
8
|
-
"pull_request.base_ref.updated",
|
|
9
|
-
"pull_request.closed",
|
|
10
|
-
"pull_request.merged",
|
|
11
|
-
];
|
|
12
|
-
|
|
13
|
-
const COMMENT_EVENTS: readonly string[] = ["pull_request.comment.created"];
|
|
14
|
-
const REVIEW_EVENTS: readonly string[] = ["pull_request.review.submitted"];
|
|
15
|
-
|
|
16
|
-
export interface OriginWebhookEventOptions {
|
|
17
|
-
webhookEvents?: readonly string[];
|
|
18
|
-
onComment?: unknown;
|
|
19
|
-
onReview?: unknown;
|
|
20
|
-
onEvent?: unknown;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function deriveOriginWebhookEvents(options: OriginWebhookEventOptions): string[] {
|
|
24
|
-
if (options.webhookEvents !== undefined) {
|
|
25
|
-
return [...new Set(options.webhookEvents.map(event => event.trim()).filter(Boolean))];
|
|
26
|
-
}
|
|
27
|
-
const events: string[] = [...BASE_WEBHOOK_EVENTS];
|
|
28
|
-
if (options.onComment !== undefined) {
|
|
29
|
-
events.push(...COMMENT_EVENTS);
|
|
30
|
-
}
|
|
31
|
-
if (options.onReview !== undefined) {
|
|
32
|
-
events.push(...REVIEW_EVENTS);
|
|
33
|
-
}
|
|
34
|
-
return [...new Set(events)];
|
|
35
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Origin webhook channel pack for agent-serve.
|
|
3
|
-
*
|
|
4
|
-
* ```ts
|
|
5
|
-
* import { defaultOriginAuth, originChannel } from "@cursor/bdk/channels/origin";
|
|
6
|
-
*
|
|
7
|
-
* export default originChannel({
|
|
8
|
-
* cursorAccount: { repos: ["owner/repo"] },
|
|
9
|
-
* onPullRequest: (ctx) => ({ auth: defaultOriginAuth(ctx) }),
|
|
10
|
-
* onComment: (ctx) => ({ auth: defaultOriginAuth(ctx) }),
|
|
11
|
-
* });
|
|
12
|
-
* ```
|
|
13
|
-
*
|
|
14
|
-
* Direct webhook mode verifies Standard-Webhooks v1ed signatures **and**
|
|
15
|
-
* binds `envelope.appId` to {@link OriginChannelOptions.appId} (or
|
|
16
|
-
* `AGENT_SERVE_ORIGIN_APP_ID`). v1ed alone is not channel auth — Origin
|
|
17
|
-
* signs every app's deliveries with the same JWKS. Pass
|
|
18
|
-
* `{ cursorAccount: true }` to receive events from
|
|
19
|
-
* `serve({ cursor: { events: true } })` after `/v0/scm-events`
|
|
20
|
-
* (`provider: "origin"`) already verified them. The turn principal is
|
|
21
|
-
* `origin-webhook` plus the Origin actor — not the Cursor subscriber —
|
|
22
|
-
* matching GitHub's `github-webhook` pattern.
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
export * from "./api.js";
|
|
26
|
-
export * from "./binding.js";
|
|
27
|
-
export * from "./checks.js";
|
|
28
|
-
export * from "./cursor-account.js";
|
|
29
|
-
export * from "./defaults.js";
|
|
30
|
-
export * from "./events.js";
|
|
31
|
-
export * from "./origin-channel.js";
|
|
32
|
-
export * from "./origin-webhook.js";
|
|
33
|
-
export * from "./reactions.js";
|
|
34
|
-
export * from "./state.js";
|
|
35
|
-
export * from "./types.js";
|