@cursor/bdk 0.2.14 → 0.2.16
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 +51 -52
- package/README.md +1 -1
- package/dist/bin/agent-sdk.js +0 -0
- package/dist/bin/agent-serve.js +41 -3
- package/dist/channels/github/index.d.ts +1 -1
- package/dist/channels/github/index.d.ts.map +1 -1
- package/dist/channels/github/index.js +1 -1
- package/dist/channels/slack/attachments.d.ts +2 -0
- package/dist/channels/slack/attachments.d.ts.map +1 -1
- package/dist/channels/slack/attachments.js +17 -5
- package/dist/channels/slack/channel-watch.d.ts +4 -2
- package/dist/channels/slack/channel-watch.d.ts.map +1 -1
- package/dist/channels/slack/channel-watch.js +4 -2
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +4 -2
- package/dist/channels/slack/types.d.ts +6 -4
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/connections.d.ts +29 -0
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +54 -0
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.BN3sgOOo.js → app.BSrZkTHD.js} +4 -4
- package/dist/docs/assets/{building-with-agents.md.Df87rAe1.js → building-with-agents.md.Bi9CQ-bR.js} +3 -3
- package/dist/docs/assets/{building-with-agents.md.Df87rAe1.lean.js → building-with-agents.md.Bi9CQ-bR.lean.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.JUnN1Be1.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.CbA00dML.js → VPLocalSearchBox.BxmgcwIX.js} +1 -1
- package/dist/docs/assets/chunks/{arc.Byug8CZM.js → arc.CAid9y9R.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.D1_qmnQy.js → architectureDiagram-Q4EWVU46.kLxg-1A5.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.Dj-Nurf-.js → baseUniq.BWvpjFlO.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BZwq3EIg.js → blockDiagram-DXYQGD6D.DyjX8R7M.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.dx75urO7.js → c4Diagram-AHTNJAMY.DBdWlnqr.js} +1 -1
- package/dist/docs/assets/chunks/channel.CWc3NN9g.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CIoddsDQ.js → chunk-4BX2VUAB.T5enPS2D.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.O3VsVBES.js → chunk-4TB4RGXK.D6zswRAS.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.WNNWh0Pe.js → chunk-55IACEB6.Bh05N-a3.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BKVQwEME.js → chunk-EDXVE4YY.DZv_O-d9.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.Cv5iBz7A.js → chunk-FMBD7UC4.BY53CZaL.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.wCDCToee.js → chunk-OYMX7WX6.CO5lI2PE.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.D3IGXhXA.js → chunk-QZHKN3VN.DMfpW0s4.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CAPPh-E7.js → chunk-YZCP3GAM.COPT56Nr.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D5a745iS.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D5a745iS.js +1 -0
- package/dist/docs/assets/chunks/clone.CCGVqN_B.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BQCFH3M5.js → cose-bilkent-S5V4N54A.BJSj7zzd.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.lHmdrh7L.js → dagre-KV5264BT.DDv7IQZT.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.EtSPnHgD.js → diagram-5BDNPKRD.BUoE9HFH.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DCyUnQT8.js → diagram-G4DWMVQ6.BF3JtrnJ.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5._E0Qqblb.js → diagram-MMDJMWI5.BvuCWc4e.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.BDj4oyy_.js → diagram-TYMM5635._EqUGqFN.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.CrvnO6a3.js → erDiagram-SMLLAGMA.DxNvSdzj.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.DIhYc-2F.js → flowDiagram-DWJPFMVM.DVtRP546.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.hFqm_vio.js → ganttDiagram-T4ZO3ILL.Bn9vb7xI.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.N3GDaVDD.js → gitGraphDiagram-UUTBAWPF.45r6n737.js} +1 -1
- package/dist/docs/assets/chunks/{graph.DK28rMBx.js → graph.BOkX3Ws_.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.DHmE6W9M.js → infoDiagram-42DDH7IO.DyBCcxOm.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.ByUJuOYm.js → ishikawaDiagram-UXIWVN3A.kg0ywDlx.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BIUChFMh.js → journeyDiagram-VCZTEJTY.BUfrLnXA.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CNgFXwo-.js → kanban-definition-6JOO6SKY.Bn7X35b2.js} +1 -1
- package/dist/docs/assets/chunks/{layout.BDnwE4ET.js → layout.B0QW6d8M.js} +1 -1
- package/dist/docs/assets/chunks/{linear.DmrYLXFs.js → linear.C59eCF0D.js} +1 -1
- package/dist/docs/assets/chunks/{min.BbYcWakN.js → min.BnDl0p08.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.C9x-klkv.js → mindmap-definition-QFDTVHPH.u2HYLooo.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.iufpEbi0.js → pieDiagram-DEJITSTG.CbnIrr9l.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DdoXbWL9.js → quadrantDiagram-34T5L4WZ.D2zWIixq.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.XL1-_pNk.js → requirementDiagram-MS252O5E.DvOFa3oO.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DySXofNs.js → sankeyDiagram-XADWPNL6.BfKCkH3x.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Cp0GZoOU.js → sequenceDiagram-FGHM5R23.CUPKdYN0.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DvK-sXUX.js → stateDiagram-FHFEXIEX.CimDCRiK.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.ClNUVSTQ.js +1 -0
- package/dist/docs/assets/chunks/{theme.Clup4iIo.js → theme.CKht7z82.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.gHI9ZLm6.js → timeline-definition-GMOUNBTQ.BFTd5qKs.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.G2N2zXYe.js → vennDiagram-DHZGUBPP.N6t5MmCb.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.D2G6Zyds.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.BgUKEagd.js → wardleyDiagram-NUSXRM2D.BqScALbL.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CwH7oege.js → xychartDiagram-5P7HB3ND.Br0WiDkT.js} +1 -1
- package/dist/docs/assets/deployment.md.hKKN9I4c.js +31 -0
- package/dist/docs/assets/{deployment.md.BYuEcDBv.lean.js → deployment.md.hKKN9I4c.lean.js} +1 -1
- package/dist/docs/assets/{evals.md.C851kViu.js → evals.md.CHR34K1Y.js} +3 -7
- package/dist/docs/assets/{evals.md.C851kViu.lean.js → evals.md.CHR34K1Y.lean.js} +1 -1
- package/dist/docs/assets/guides_cloud-agents.md.CBK7W0-O.js +9 -0
- package/dist/docs/assets/guides_cloud-agents.md.CBK7W0-O.lean.js +1 -0
- package/dist/docs/assets/guides_grokbot-agents.md.BwAykJ7U.js +15 -0
- package/dist/docs/assets/{guides_grokbot-agents.md.tD1smFhU.lean.js → guides_grokbot-agents.md.BwAykJ7U.lean.js} +1 -1
- package/dist/docs/assets/{guides_hooks.md.5Ce3NXxZ.js → guides_hooks.md.B_bKG1oA.js} +1 -1
- package/dist/docs/assets/{guides_improve.md.CRrYq22s.js → guides_improve.md.CZKVt1cT.js} +2 -3
- package/dist/docs/assets/{guides_improve.md.CRrYq22s.lean.js → guides_improve.md.CZKVt1cT.lean.js} +1 -1
- package/dist/docs/assets/{guides_mcp-oauth.md.DR3zhC9r.js → guides_mcp-oauth.md.BM_eFC0L.js} +3 -15
- package/dist/docs/assets/guides_mcp-oauth.md.BM_eFC0L.lean.js +1 -0
- package/dist/docs/assets/{guides_webhooks.md.BBvAm_VF.js → guides_webhooks.md.Cpdc3BDX.js} +13 -12
- package/dist/docs/assets/{guides_webhooks.md.BBvAm_VF.lean.js → guides_webhooks.md.Cpdc3BDX.lean.js} +1 -1
- package/dist/docs/assets/{index.md.Dxxr7pFa.js → index.md.BIBHIQtU.js} +1 -1
- package/dist/docs/assets/{quickstart.md.BK5gjHM2.js → quickstart.md.CduLGBAB.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.DrtLxWgR.js → reference_agent-config.md.DYA6ge6t.js} +7 -4
- package/dist/docs/assets/{reference_agent-config.md.DrtLxWgR.lean.js → reference_agent-config.md.DYA6ge6t.lean.js} +1 -1
- package/dist/docs/assets/reference_channels.md.DYg0CLud.js +22 -0
- package/dist/docs/assets/{reference_channels.md.LbNIJBwd.lean.js → reference_channels.md.DYg0CLud.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.dYCAL2lB.js → reference_cli.md.2d2Y0O-d.js} +16 -13
- package/dist/docs/assets/{reference_cli.md.dYCAL2lB.lean.js → reference_cli.md.2d2Y0O-d.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.DLrgAd5f.js → reference_connections.md.CxbLpaaP.js} +4 -5
- package/dist/docs/assets/{reference_connections.md.DLrgAd5f.lean.js → reference_connections.md.CxbLpaaP.lean.js} +1 -1
- package/dist/docs/assets/{reference_evals.md.D5i8PuXJ.js → reference_evals.md.Ccwp4x3o.js} +4 -4
- package/dist/docs/assets/{reference_evals.md.D5i8PuXJ.lean.js → reference_evals.md.Ccwp4x3o.lean.js} +1 -1
- package/dist/docs/assets/{reference_hooks.md.B-eGa2km.js → reference_hooks.md.DbJC8mcZ.js} +1 -1
- package/dist/docs/assets/reference_http-api.md.CrqhTv6S.js +11 -0
- package/dist/docs/assets/{reference_http-api.md.DbFNOubV.lean.js → reference_http-api.md.CrqhTv6S.lean.js} +1 -1
- package/dist/docs/assets/reference_playground.md.q4MI-0td.js +1 -0
- package/dist/docs/assets/reference_playground.md.q4MI-0td.lean.js +1 -0
- package/dist/docs/assets/{reference_schedules.md.BuJ8fgMa.js → reference_schedules.md.03Ryy9ca.js} +5 -5
- package/dist/docs/assets/{reference_schedules.md.BuJ8fgMa.lean.js → reference_schedules.md.03Ryy9ca.lean.js} +1 -1
- package/dist/docs/assets/reference_sessions.md.C_uzIWuy.js +1 -0
- package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C2GWh7g8.js} +4 -4
- package/dist/docs/assets/{reference_tools.md.DzIY9JzY.js → reference_tools.md.08XR7lIl.js} +3 -14
- package/dist/docs/assets/reference_tools.md.08XR7lIl.lean.js +1 -0
- package/dist/docs/assets/{templates_grokbot-agents.md.2sydjFiO.js → templates_grokbot-agents.md.DgpPEs7B.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.PCafNCb5.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.x-GBa7wN.lean.js → troubleshooting.md.PCafNCb5.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +37 -37
- package/dist/docs/building-with-agents.md +5 -5
- package/dist/docs/deployment.html +43 -41
- package/dist/docs/deployment.md +70 -33
- package/dist/docs/evals.html +38 -42
- package/dist/docs/evals.md +1 -16
- 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 +38 -39
- package/dist/docs/guides/cloud-agents.md +2 -8
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +35 -35
- package/dist/docs/guides/gitlab.html +35 -35
- package/dist/docs/guides/grokbot-agents.html +37 -38
- package/dist/docs/guides/grokbot-agents.md +9 -13
- package/dist/docs/guides/hooks.html +37 -37
- package/dist/docs/guides/hooks.md +0 -1
- package/dist/docs/guides/improve.html +37 -38
- package/dist/docs/guides/improve.md +4 -6
- package/dist/docs/guides/jev.html +35 -35
- package/dist/docs/guides/mcp-oauth.html +39 -51
- package/dist/docs/guides/mcp-oauth.md +17 -40
- package/dist/docs/guides/migrate.html +35 -35
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +35 -35
- package/dist/docs/guides/webhooks.html +47 -46
- package/dist/docs/guides/webhooks.md +35 -18
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +35 -35
- package/dist/docs/index.html +36 -36
- package/dist/docs/index.md +1 -1
- package/dist/docs/llms-full.txt +388 -272
- package/dist/docs/llms.txt +4 -4
- package/dist/docs/quickstart.html +37 -37
- package/dist/docs/quickstart.md +2 -2
- package/dist/docs/reference/agent-config.html +41 -38
- package/dist/docs/reference/agent-config.md +26 -1
- package/dist/docs/reference/artifacts.html +35 -35
- package/dist/docs/reference/channels.html +42 -43
- package/dist/docs/reference/channels.md +29 -13
- package/dist/docs/reference/cli.html +50 -47
- package/dist/docs/reference/cli.md +115 -42
- package/dist/docs/reference/connections.html +39 -40
- package/dist/docs/reference/connections.md +6 -5
- package/dist/docs/reference/evals.html +38 -38
- package/dist/docs/reference/evals.md +15 -4
- package/dist/docs/reference/extensions.html +35 -35
- package/dist/docs/reference/hooks.html +37 -37
- package/dist/docs/reference/hooks.md +0 -1
- package/dist/docs/reference/http-api.html +38 -38
- package/dist/docs/reference/http-api.md +7 -17
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +37 -37
- package/dist/docs/reference/playground.md +1 -4
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +39 -39
- package/dist/docs/reference/schedules.md +26 -3
- package/dist/docs/reference/sessions.html +36 -36
- package/dist/docs/reference/sessions.md +1 -2
- package/dist/docs/reference/skills.html +39 -39
- package/dist/docs/reference/skills.md +1 -1
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +39 -50
- package/dist/docs/reference/tools.md +2 -28
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/grokbot-agents.html +37 -37
- package/dist/docs/templates/grokbot-agents.md +1 -1
- 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 +12 -7
- package/dist/extensions/cursor-cloud-agents/extension.d.ts +5 -1
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +4 -0
- package/dist/extensions/cursor-cloud-agents/lib/channels.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/channels.js +5 -1
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +4 -8
- package/dist/internal/cli-convert-automation.js +9 -19
- package/dist/internal/cli-deploy.d.ts +1 -1
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +18 -3
- package/dist/internal/cli-init-grokbot.d.ts +29 -0
- package/dist/internal/cli-init-grokbot.d.ts.map +1 -0
- package/dist/internal/cli-init-grokbot.js +181 -0
- package/dist/internal/cli-slack.js +1 -1
- package/dist/internal/comment-safe.d.ts +8 -0
- package/dist/internal/comment-safe.d.ts.map +1 -0
- package/dist/internal/comment-safe.js +12 -0
- package/dist/internal/continuation-identity.js +1 -1
- package/dist/internal/convert-automation/convert-workflow.d.ts.map +1 -1
- package/dist/internal/convert-automation/convert-workflow.js +2 -14
- package/dist/internal/convert-grokbot/answers.d.ts +127 -0
- package/dist/internal/convert-grokbot/answers.d.ts.map +1 -0
- package/dist/internal/convert-grokbot/answers.js +443 -0
- package/dist/internal/convert-grokbot/bot.d.ts +50 -0
- package/dist/internal/convert-grokbot/bot.d.ts.map +1 -0
- package/dist/internal/convert-grokbot/bot.js +72 -0
- package/dist/internal/convert-grokbot/checks.d.ts +26 -0
- package/dist/internal/convert-grokbot/checks.d.ts.map +1 -0
- package/dist/internal/convert-grokbot/checks.js +170 -0
- package/dist/internal/convert-grokbot/convert.d.ts +60 -0
- package/dist/internal/convert-grokbot/convert.d.ts.map +1 -0
- package/dist/internal/convert-grokbot/convert.js +470 -0
- package/dist/internal/convert-grokbot/handoff.d.ts +44 -0
- package/dist/internal/convert-grokbot/handoff.d.ts.map +1 -0
- package/dist/internal/convert-grokbot/handoff.js +160 -0
- package/dist/internal/convert-grokbot/recipe.d.ts +61 -0
- package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -0
- package/dist/internal/convert-grokbot/recipe.js +94 -0
- package/dist/internal/convert-grokbot/routine.d.ts +51 -0
- package/dist/internal/convert-grokbot/routine.d.ts.map +1 -0
- package/dist/internal/convert-grokbot/routine.js +128 -0
- package/dist/internal/convert-grokbot/slack.d.ts +28 -0
- package/dist/internal/convert-grokbot/slack.d.ts.map +1 -0
- package/dist/internal/convert-grokbot/slack.js +50 -0
- package/dist/internal/deploy-client.d.ts +0 -2
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +2 -11
- package/dist/internal/discovery/agent-config.d.ts +6 -0
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +19 -0
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +2 -1
- package/dist/internal/discovery/names.d.ts +2 -0
- package/dist/internal/discovery/names.d.ts.map +1 -1
- package/dist/internal/discovery/names.js +2 -0
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +1 -3
- package/dist/internal/eval-judge-model.d.ts +10 -5
- package/dist/internal/eval-judge-model.d.ts.map +1 -1
- package/dist/internal/eval-judge-model.js +36 -25
- package/dist/internal/filesystem/subagent-inherit.d.ts +39 -0
- package/dist/internal/filesystem/subagent-inherit.d.ts.map +1 -0
- package/dist/internal/filesystem/subagent-inherit.js +96 -0
- package/dist/internal/filesystem/tools.d.ts +6 -0
- package/dist/internal/filesystem/tools.d.ts.map +1 -1
- package/dist/internal/filesystem/tools.js +38 -1
- package/dist/internal/hosted-catch-protocol.d.ts +2 -0
- package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-catch-protocol.js +2 -0
- package/dist/internal/hosted-catch.d.ts +2 -3
- package/dist/internal/hosted-catch.d.ts.map +1 -1
- package/dist/internal/hosted-catch.js +2 -3
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +46 -13
- package/dist/internal/hosted-execution-flush.d.ts +6 -3
- package/dist/internal/hosted-execution-flush.d.ts.map +1 -1
- package/dist/internal/hosted-execution-flush.js +28 -31
- package/dist/internal/hosting.d.ts +1 -1
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +7 -3
- package/dist/internal/init-interview.d.ts +3 -5
- package/dist/internal/init-interview.d.ts.map +1 -1
- package/dist/internal/init-interview.js +15 -88
- package/dist/internal/init-project.d.ts +13 -0
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +30 -37
- package/dist/internal/init-scaffold.d.ts +11 -0
- package/dist/internal/init-scaffold.d.ts.map +1 -1
- package/dist/internal/init-scaffold.js +47 -13
- package/dist/internal/interview/agent-questions.d.ts +19 -0
- package/dist/internal/interview/agent-questions.d.ts.map +1 -0
- package/dist/internal/interview/agent-questions.js +120 -0
- package/dist/internal/interview/question.d.ts +82 -0
- package/dist/internal/interview/question.d.ts.map +1 -0
- package/dist/internal/interview/question.js +198 -0
- package/dist/internal/local-control-plane.d.ts.map +1 -1
- package/dist/internal/local-control-plane.js +5 -1
- package/dist/internal/otel/collector.d.ts +2 -0
- package/dist/internal/otel/collector.d.ts.map +1 -1
- package/dist/internal/otel/collector.js +4 -0
- package/dist/internal/peer-connections.d.ts +6 -2
- package/dist/internal/peer-connections.d.ts.map +1 -1
- package/dist/internal/peer-connections.js +23 -19
- package/dist/internal/resolve-prod-target.d.ts.map +1 -1
- package/dist/internal/resolve-prod-target.js +2 -1
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +43 -16
- package/dist/internal/sdk-subagent-inherit-support.d.ts +9 -0
- package/dist/internal/sdk-subagent-inherit-support.d.ts.map +1 -0
- package/dist/internal/sdk-subagent-inherit-support.js +89 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +6 -5
- package/dist/internal/session-engine.d.ts +13 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +62 -11
- package/dist/internal/session-run-log.d.ts.map +1 -1
- package/dist/internal/session-run-log.js +26 -11
- package/dist/internal/{convert-automation/slug.d.ts → slug.d.ts} +4 -1
- package/dist/internal/slug.d.ts.map +1 -0
- package/dist/internal/{convert-automation/slug.js → slug.js} +11 -1
- package/dist/playground/assets/index-7fVUOA5l.css +1 -0
- package/dist/playground/assets/{index-ClxRl2Cw.js → index-U3TRnwAP.js} +43 -43
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +26 -1
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +1 -1
- package/docs/building-with-agents.md +5 -5
- package/docs/deployment.md +70 -33
- package/docs/evals.md +1 -16
- package/docs/guides/cloud-agents.md +3 -9
- package/docs/guides/grokbot-agents.md +10 -14
- package/docs/guides/hooks.md +0 -1
- package/docs/guides/improve.md +4 -6
- package/docs/guides/mcp-oauth.md +18 -41
- package/docs/guides/webhooks.md +35 -18
- package/docs/quickstart.md +2 -2
- package/docs/reference/agent-config.md +26 -1
- package/docs/reference/channels.md +29 -13
- package/docs/reference/cli.md +115 -42
- package/docs/reference/connections.md +6 -5
- package/docs/reference/evals.md +15 -4
- package/docs/reference/hooks.md +0 -1
- package/docs/reference/http-api.md +7 -17
- package/docs/reference/playground.md +2 -5
- package/docs/reference/schedules.md +26 -3
- package/docs/reference/sessions.md +1 -2
- package/docs/reference/skills.md +1 -1
- package/docs/reference/tools.md +3 -29
- package/docs/templates/grokbot-agents.md +1 -1
- package/docs/troubleshooting.md +12 -7
- package/package.json +36 -35
- package/schemas/grokbot-answers.schema.json +343 -0
- package/skills/create-agent/SKILL.md +16 -11
- package/skills/debug/SKILL.md +3 -4
- package/skills/evals/SKILL.md +2 -2
- package/skills/framework-map/SKILL.md +10 -10
- package/skills/mcp-auth/SKILL.md +10 -34
- package/skills/migrate-v2/SKILL.md +13 -9
- package/skills/setup-slack/SKILL.md +0 -13
- package/templates/agentic-owners/bot/lib/owners/handles.ts +1 -1
- package/templates/agentic-owners/bot/lib/owners/matching.ts +20 -9
- package/templates/agents-md/README.md +3 -3
- package/templates/agents-md/bot/channels/queue.ts +3 -8
- package/templates/agents-md/bot/instructions.md +1 -2
- package/templates/agents-md/bot/tools/apply_agents.ts +0 -1
- package/templates/agents-md/evals/agents.eval.ts +2 -2
- package/templates/demo/bot/channels/queue.ts +5 -15
- package/templates/grokbot-agents/.gitignore +4 -0
- package/templates/pr-autofixer/bot/channels/drive.ts +3 -16
- package/templates/security-help/.gitignore +4 -0
- package/templates/triage/bot/channels/queue.ts +11 -22
- package/templates/triage/bot/channels/webhook.ts +3 -6
- package/templates/triage/bot/lib/parse-queue-event.ts +0 -6
- package/dist/docs/assets/chunks/@localSearchIndexroot.CzrtdJ8s.js +0 -1
- package/dist/docs/assets/chunks/channel.6ebHhoF9.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.BJ-CwKwu.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.BJ-CwKwu.js +0 -1
- package/dist/docs/assets/chunks/clone.DfV2fkWH.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DNdUCJyd.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.C46G0P5a.js +0 -162
- package/dist/docs/assets/deployment.md.BYuEcDBv.js +0 -29
- package/dist/docs/assets/guides_cloud-agents.md.CWJjS9No.js +0 -10
- package/dist/docs/assets/guides_cloud-agents.md.CWJjS9No.lean.js +0 -1
- package/dist/docs/assets/guides_grokbot-agents.md.tD1smFhU.js +0 -16
- package/dist/docs/assets/guides_mcp-oauth.md.DR3zhC9r.lean.js +0 -1
- package/dist/docs/assets/reference_channels.md.LbNIJBwd.js +0 -23
- package/dist/docs/assets/reference_http-api.md.DbFNOubV.js +0 -11
- package/dist/docs/assets/reference_playground.md.1hx0gcIu.js +0 -1
- package/dist/docs/assets/reference_playground.md.1hx0gcIu.lean.js +0 -1
- package/dist/docs/assets/reference_sessions.md.CyM7ARz1.js +0 -1
- package/dist/docs/assets/reference_tools.md.DzIY9JzY.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +0 -1
- package/dist/internal/convert-automation/slug.d.ts.map +0 -1
- package/dist/playground/assets/index-BKSsuEMw.css +0 -1
- /package/dist/docs/assets/{guides_hooks.md.5Ce3NXxZ.lean.js → guides_hooks.md.B_bKG1oA.lean.js} +0 -0
- /package/dist/docs/assets/{index.md.Dxxr7pFa.lean.js → index.md.BIBHIQtU.lean.js} +0 -0
- /package/dist/docs/assets/{quickstart.md.BK5gjHM2.lean.js → quickstart.md.CduLGBAB.lean.js} +0 -0
- /package/dist/docs/assets/{reference_hooks.md.B-eGa2km.lean.js → reference_hooks.md.DbJC8mcZ.lean.js} +0 -0
- /package/dist/docs/assets/{reference_sessions.md.CyM7ARz1.lean.js → reference_sessions.md.C_uzIWuy.lean.js} +0 -0
- /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C2GWh7g8.lean.js} +0 -0
- /package/dist/docs/assets/{templates_grokbot-agents.md.2sydjFiO.lean.js → templates_grokbot-agents.md.DgpPEs7B.lean.js} +0 -0
|
@@ -33,9 +33,9 @@ Public docs: `node_modules/@cursor/bdk/dist/docs/llms.txt` or
|
|
|
33
33
|
`CURSOR_API_KEY_FILE`, then `CURSOR_SERVICE_ACCOUNT_KEY`, then
|
|
34
34
|
`bdk login`). `validate`,
|
|
35
35
|
`info`, `call`, and `serve` bring-up do not.
|
|
36
|
-
7. **Memory is `ctx.host.kv`.**
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
7. **Memory is `ctx.host.kv`.** On Cursor hosting, a later event
|
|
37
|
+
can run in a new process. Module `Map`s, globals, and local files
|
|
38
|
+
do not carry over.
|
|
39
39
|
|
|
40
40
|
## Folder structure
|
|
41
41
|
|
|
@@ -63,8 +63,8 @@ Path is identity. Full list: README "Folder structure".
|
|
|
63
63
|
|
|
64
64
|
## Runtime
|
|
65
65
|
|
|
66
|
-
Turns run on the serve host. Server tools,
|
|
67
|
-
|
|
66
|
+
Turns run on the serve host. Server tools, agent tools, skills, and
|
|
67
|
+
sandbox seeds are available there.
|
|
68
68
|
|
|
69
69
|
## Sessions
|
|
70
70
|
|
|
@@ -84,9 +84,9 @@ Anything you need to remember goes in `ctx.host.kv`: coalesce,
|
|
|
84
84
|
dedupe, cursors, a decision a later turn must see. `get`, `put`,
|
|
85
85
|
and `delete`. Values are JSON.
|
|
86
86
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
On Cursor hosting, the platform can replace the serve process at
|
|
88
|
+
any time. The next hook, tool call, or channel event can run in a
|
|
89
|
+
new process, so do not assume this one is still up.
|
|
90
90
|
|
|
91
91
|
- The store is shared by every session of the agent. Prefix keys
|
|
92
92
|
with `ctx.session.id` for per-session memory.
|
|
@@ -107,14 +107,14 @@ before you return.
|
|
|
107
107
|
Code: side-effect gates, write dedupe (the record lives in
|
|
108
108
|
`ctx.host.kv`), auth, evidence seeding, hard API caps. Model:
|
|
109
109
|
formatting, summarizing, classification, replies.
|
|
110
|
-
Budget: `skills/create-
|
|
110
|
+
Budget: `skills/create-agent/SKILL.md`.
|
|
111
111
|
|
|
112
112
|
Loop: `validate` / `info` / `call` / `run` / `eval` / `serve`. Serve
|
|
113
113
|
only this agent's directory.
|
|
114
114
|
|
|
115
115
|
| Task | Skill |
|
|
116
116
|
| --- | --- |
|
|
117
|
-
| Scaffold | `skills/create-
|
|
117
|
+
| Scaffold | `skills/create-agent/SKILL.md` |
|
|
118
118
|
| Evals | `skills/evals/SKILL.md` |
|
|
119
119
|
| OpenTelemetry | `skills/otel/SKILL.md` |
|
|
120
120
|
| GitHub | `skills/github/SKILL.md` |
|
package/skills/mcp-auth/SKILL.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: bdk-mcp-auth
|
|
3
3
|
description: >-
|
|
4
4
|
Authorize host MCP OAuth for defineConnection({ url, oauth: true }):
|
|
5
|
-
bdk mcp oauth, local tokens,
|
|
6
|
-
Use when wiring or debugging MCP auth.
|
|
5
|
+
bdk mcp oauth, local tokens, advertiseTools, egress, and the hosted
|
|
6
|
+
cursorAccount path. Use when wiring or debugging MCP auth.
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Host MCP OAuth
|
|
@@ -24,17 +24,14 @@ can still call `ctx.host.mcp`.
|
|
|
24
24
|
1. **Declare the connection.** `bot/mcp-connections/<name>.ts`
|
|
25
25
|
with `url` + `oauth: true`. Use `bot/host-connections/` when
|
|
26
26
|
the model must not see it.
|
|
27
|
-
2. **
|
|
28
|
-
`hosting.secretNames` lists
|
|
29
|
-
`MCP_OAUTH_<NAME>_{ACCESS_TOKEN,REFRESH_TOKEN,CLIENT_ID}`.
|
|
30
|
-
3. **Allow egress** on hosted non-bootstrap hosts:
|
|
27
|
+
2. **Allow egress** on hosted non-bootstrap hosts:
|
|
31
28
|
`hosting.egressDomains`.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
3. **Authorize.** Local: `bdk mcp oauth <name>`, or finish
|
|
30
|
+
Connect in the playground so the current process can retry.
|
|
31
|
+
Tokens stay on this machine. Hosted: use a
|
|
32
|
+
`cursorAccount: true` connection and connect the server from
|
|
33
|
+
**Deployed Agents** in the dashboard; its tokens stay on the
|
|
34
|
+
Cursor backend.
|
|
38
35
|
|
|
39
36
|
```ts
|
|
40
37
|
// bot/mcp-connections/inventory.ts
|
|
@@ -44,41 +41,20 @@ export default defineConnection({
|
|
|
44
41
|
});
|
|
45
42
|
```
|
|
46
43
|
|
|
47
|
-
```ts
|
|
48
|
-
// bot/agent.ts
|
|
49
|
-
export default defineAgent({
|
|
50
|
-
hosting: {
|
|
51
|
-
secretNames: [
|
|
52
|
-
"MCP_OAUTH_INVENTORY_ACCESS_TOKEN",
|
|
53
|
-
"MCP_OAUTH_INVENTORY_REFRESH_TOKEN",
|
|
54
|
-
"MCP_OAUTH_INVENTORY_CLIENT_ID",
|
|
55
|
-
],
|
|
56
|
-
egressDomains: ["mcp.example.com"],
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
File `inventory.ts` → prefix `MCP_OAUTH_INVENTORY`. Do not put
|
|
62
|
-
`CURSOR_*` names in `secretNames`.
|
|
63
|
-
|
|
64
44
|
```bash
|
|
65
45
|
bdk mcp oauth <connection>
|
|
66
|
-
bdk mcp oauth <connection> --store [--slug <slug>]
|
|
67
|
-
bdk secrets list <slug>
|
|
68
|
-
bdk deploy
|
|
69
46
|
```
|
|
70
47
|
|
|
71
48
|
Browser callback: `http://127.0.0.1:8787/callback`. Tokens live in
|
|
72
49
|
the CLI config directory (`mcp-auth.json` or
|
|
73
50
|
`$AGENT_SERVE_CONFIG_DIR`). URL change drops the old entry; re-run.
|
|
74
|
-
`--store` does not restart a running engine.
|
|
75
51
|
|
|
76
52
|
| Symptom | Fix |
|
|
77
53
|
| --- | --- |
|
|
78
54
|
| `must be defineConnection({ url, oauth: true })` | Wrong name or missing `oauth: true` |
|
|
79
55
|
| `Unknown MCP connection` | Filename must match the CLI arg |
|
|
80
56
|
| Callback hang | Free port 8787; finish the browser flow here |
|
|
81
|
-
| Hosted 401 | `
|
|
57
|
+
| Hosted 401 | Local tokens don't reach the deployment. Switch to `cursorAccount: true`; connect from **Deployed Agents** |
|
|
82
58
|
| Model invents `mcp_auth` / IDE MCP | `advertiseTools: true` on local turns |
|
|
83
59
|
|
|
84
60
|
No raw tokens in git.
|
|
@@ -62,18 +62,18 @@ ends. That model changes code in three places:
|
|
|
62
62
|
| Local `bdk dev`, `run`, `eval`, and the playground | Supported |
|
|
63
63
|
| `defineStorage` in `agent/storage.ts` | Not supported. Delete the file. |
|
|
64
64
|
| Reminders with inline `run` or a function `until` | Not supported. Use a named handler. |
|
|
65
|
-
| Cron schedules in `agent/schedules/` on Cursor hosting |
|
|
65
|
+
| Cron schedules in `agent/schedules/` on Cursor hosting | Supported with `@cursor/bdk` 0.2.14 or newer. Each fire runs in a new runtime and must finish in 26 minutes. |
|
|
66
66
|
| Slack tool-approval buttons on Cursor hosting | Not supported yet |
|
|
67
67
|
| `bdk mcp oauth --store` for host MCP OAuth | Not supported. Connect Cursor-account MCP servers from **Deployed Agents** in the dashboard. |
|
|
68
|
-
|
|
|
69
|
-
| `--prod` with `chat`, `resume`, `call`, `sessions`, `cost`, or `mcp` | Not supported. Use `run --prod`, `session --prod`, and `
|
|
68
|
+
| Session, tool, and MCP APIs on the deployment URL | Not reachable |
|
|
69
|
+
| `--prod` with `chat`, `resume`, `call`, `skill`, `sessions`, `cost`, or `mcp` | Not supported. Use `run --prod`, `logs --prod`, `session --prod`, and `playground --prod`. |
|
|
70
70
|
| v1 sessions, KV, and files | Not carried over. v2 starts empty, and deleting v1 deletes them. |
|
|
71
71
|
|
|
72
72
|
The steps below rewrite `defineStorage`, inline reminders, SCM channel
|
|
73
73
|
credentials, and secret reads. Stop and ask before migrating an agent
|
|
74
|
-
that depends on
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
that depends on Slack tool-approval buttons, `mcp oauth --store`, or an
|
|
75
|
+
HTTP route whose caller reads the response body. Name the row and the
|
|
76
|
+
file that uses it.
|
|
77
77
|
|
|
78
78
|
## Update the project
|
|
79
79
|
|
|
@@ -181,7 +181,8 @@ still loads.
|
|
|
181
181
|
|
|
182
182
|
8. **Stop answering from HTTP routes.** A custom route that returned
|
|
183
183
|
computed data must deliver it another way, such as a callback URL or a
|
|
184
|
-
tool the turn calls.
|
|
184
|
+
tool the turn calls. Return `new Response(null, { status: 202 })` so
|
|
185
|
+
local runs match the hosted response.
|
|
185
186
|
|
|
186
187
|
## Verify locally
|
|
187
188
|
|
|
@@ -257,8 +258,11 @@ After the deploy is running:
|
|
|
257
258
|
secrets go unused.
|
|
258
259
|
- Reconnect Cursor-account MCP servers from **Deployed Agents** in the
|
|
259
260
|
dashboard.
|
|
260
|
-
- Start a turn with `bdk run --prod --slug <slug> --message "..."
|
|
261
|
-
|
|
261
|
+
- Start a turn with `bdk run --prod --slug <slug> --message "..."`. It
|
|
262
|
+
prints a `deliveryId`, not a session. Find the `ses_...` header in
|
|
263
|
+
`bdk logs --prod --once --slug <slug>`, then read the turn with
|
|
264
|
+
`bdk session <ses_...> --prod --slug <slug>` until the latest run
|
|
265
|
+
finishes.
|
|
262
266
|
|
|
263
267
|
The [deploy skill](../deploy/SKILL.md) covers deploys with an attached
|
|
264
268
|
service account.
|
|
@@ -134,16 +134,3 @@ export default slackChannel({
|
|
|
134
134
|
Pass `--channel-posts` on `create` / `init --manual`. Invite the
|
|
135
135
|
bot to each watched channel. Mentions stay on `app_mention`; a
|
|
136
136
|
later mention continues the watch thread.
|
|
137
|
-
|
|
138
|
-
## Approvals (opt-in)
|
|
139
|
-
|
|
140
|
-
```ts
|
|
141
|
-
export default slackChannel({
|
|
142
|
-
envPrefix: "JENNY",
|
|
143
|
-
toolApprovals: true,
|
|
144
|
-
});
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Wizard enables interactivity when this is set. Server tools on
|
|
148
|
-
`local` only. Parked calls die on host restart. Cards truncate
|
|
149
|
-
args; execution uses the full input.
|
|
@@ -50,5 +50,5 @@ export function sanitizeReviewerHandle(raw: string): string | undefined {
|
|
|
50
50
|
return `${org}/${team}`;
|
|
51
51
|
}
|
|
52
52
|
const login = trimmed.replace(/^@/, "").toLowerCase();
|
|
53
|
-
return /^[a-z0-9][a-z0-9-]
|
|
53
|
+
return /^[a-z0-9][a-z0-9-]*(?:_[a-z0-9]+)?$/.test(login) ? `@${login}` : undefined;
|
|
54
54
|
}
|
|
@@ -16,13 +16,20 @@ export function patternMatchesFile(pattern: string, filepath: string): boolean {
|
|
|
16
16
|
return true;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
const literalPrefix = normalizedPattern.replace(/\*+$/, "");
|
|
20
|
+
if (normalizedPattern.endsWith("**") && !hasComplexGlob(literalPrefix)) {
|
|
21
|
+
const prefix = literalPrefix.replace(/\\(.)/g, "$1").replace(/\/+$/, "");
|
|
22
|
+
if (normalizedPath === prefix || (prefix !== "" && normalizedPath.startsWith(`${prefix}/`))) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
if (literalPrefix === "" || literalPrefix.endsWith("/")) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
if (patternIsRooted && !literalPrefix.includes("/") && normalizedPath.includes("/")) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
// gitignore reads `x**` as `x*`.
|
|
32
|
+
return globMatches(normalizedPath, `${literalPrefix}*`);
|
|
26
33
|
}
|
|
27
34
|
|
|
28
35
|
if (normalizedPattern.endsWith("/")) {
|
|
@@ -37,10 +44,14 @@ export function patternMatchesFile(pattern: string, filepath: string): boolean {
|
|
|
37
44
|
return true;
|
|
38
45
|
}
|
|
39
46
|
|
|
47
|
+
return globMatches(normalizedPath, normalizedPattern);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function globMatches(filepath: string, pattern: string): boolean {
|
|
40
51
|
try {
|
|
41
|
-
return minimatch(
|
|
52
|
+
return minimatch(filepath, pattern, {
|
|
42
53
|
dot: true,
|
|
43
|
-
matchBase: !
|
|
54
|
+
matchBase: !pattern.includes("/"),
|
|
44
55
|
nocase: false,
|
|
45
56
|
});
|
|
46
57
|
} catch {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Living AGENTS.md
|
|
2
2
|
|
|
3
3
|
Keeps `AGENTS.md` current from last week's merged pull requests and the
|
|
4
|
-
listed Slack channels.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
listed Slack channels. Opens each update as a draft follow-up PR for a
|
|
5
|
+
person to review. Chores stay quiet. Same-base updates stack on
|
|
6
|
+
`agents-md/<base>`.
|
|
7
7
|
|
|
8
8
|
```text
|
|
9
9
|
npx @cursor/bdk init ./agents-md --template agents-md
|
|
@@ -7,14 +7,9 @@ export default defineChannel({
|
|
|
7
7
|
POST("/run", {
|
|
8
8
|
description: "Collect last week's PRs and Slack, then review AGENTS.md",
|
|
9
9
|
bodySchema: z.object({}),
|
|
10
|
-
handler: async (_req, { send, host, auth }) => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return Response.json({
|
|
14
|
-
ok: true,
|
|
15
|
-
sessionId: session.id,
|
|
16
|
-
window: week.window,
|
|
17
|
-
});
|
|
10
|
+
handler: async (_req, { send, waitUntil, host, auth }) => {
|
|
11
|
+
waitUntil(collectWeek(host).then((week) => startWeek(send, week, auth)));
|
|
12
|
+
return new Response(null, { status: 202 });
|
|
18
13
|
},
|
|
19
14
|
}),
|
|
20
15
|
],
|
|
@@ -33,7 +33,6 @@ Call `apply_agents` once.
|
|
|
33
33
|
Paths must be `AGENTS.md` or `*/AGENTS.md`. Short declarative sentences.
|
|
34
34
|
Edit only the stale or missing rules. Keep the existing voice.
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
opens as a draft.
|
|
36
|
+
The follow-up PR opens as a draft for a person to review.
|
|
38
37
|
|
|
39
38
|
Reply with `skip` or `update` and the reason.
|
|
@@ -26,7 +26,6 @@ type Write = {
|
|
|
26
26
|
|
|
27
27
|
export default defineTool({
|
|
28
28
|
description: "Skip or open an AGENTS.md follow-up PR for this weekly review. Call once.",
|
|
29
|
-
needsApproval: (input) => input.verdict === "update",
|
|
30
29
|
effect: (input) => (input.verdict === "update" ? "write" : "read"),
|
|
31
30
|
inputSchema: z.discriminatedUnion("verdict", [
|
|
32
31
|
z.object({
|
|
@@ -78,7 +78,7 @@ export default defineEval({
|
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
80
|
id: "update-rule",
|
|
81
|
-
description: "A repeated billing rule
|
|
81
|
+
description: "A repeated billing rule opens an AGENTS.md update.",
|
|
82
82
|
async test(t) {
|
|
83
83
|
await t.send(weekly(), {
|
|
84
84
|
workspaceFiles: {
|
|
@@ -91,7 +91,7 @@ export default defineEval({
|
|
|
91
91
|
"week/tree/AGENTS.md.txt": "# API\n\nKeep handlers thin.\n",
|
|
92
92
|
},
|
|
93
93
|
});
|
|
94
|
-
t.
|
|
94
|
+
t.succeeded();
|
|
95
95
|
t.calledTool("apply_agents", { input: { verdict: "update" } });
|
|
96
96
|
},
|
|
97
97
|
},
|
|
@@ -2,7 +2,7 @@ import { defineChannel, POST } from "@cursor/bdk/channels";
|
|
|
2
2
|
import { parseGitHubPrRef } from "@cursor/bdk/channels/github";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { startDemo } from "../lib/collect.js";
|
|
5
|
-
import {
|
|
5
|
+
import { watches } from "../lib/repos.js";
|
|
6
6
|
|
|
7
7
|
export default defineChannel({
|
|
8
8
|
routes: [
|
|
@@ -11,23 +11,13 @@ export default defineChannel({
|
|
|
11
11
|
bodySchema: z.object({
|
|
12
12
|
pr: z.string().describe("GitHub PR URL or owner/repo#N"),
|
|
13
13
|
}),
|
|
14
|
-
handler: async (_req, { send, host, body }) => {
|
|
14
|
+
handler: async (_req, { send, waitUntil, host, body }) => {
|
|
15
15
|
const ref = parseGitHubPrRef(body.pr);
|
|
16
16
|
if (ref === undefined || !watches(`${ref.owner}/${ref.repo}`)) {
|
|
17
|
-
return Response
|
|
18
|
-
{
|
|
19
|
-
ok: false,
|
|
20
|
-
error: `need a PR URL or owner/repo#N in ${REPOS.join(", ")}`,
|
|
21
|
-
},
|
|
22
|
-
{ status: 400 },
|
|
23
|
-
);
|
|
17
|
+
return new Response(null, { status: 400 });
|
|
24
18
|
}
|
|
25
|
-
|
|
26
|
-
return Response
|
|
27
|
-
ok: true,
|
|
28
|
-
sessionId: session.id,
|
|
29
|
-
pr: ref.label,
|
|
30
|
-
});
|
|
19
|
+
waitUntil(startDemo(send, host.github, ref));
|
|
20
|
+
return new Response(null, { status: 202 });
|
|
31
21
|
},
|
|
32
22
|
}),
|
|
33
23
|
],
|
|
@@ -7,30 +7,17 @@ export default defineChannel({
|
|
|
7
7
|
POST("/", {
|
|
8
8
|
description: "Start PR autofixer on a GitHub PR (same path as the drive_pr tool).",
|
|
9
9
|
bodySchema: driveStartBodySchema,
|
|
10
|
-
handler: async (
|
|
10
|
+
handler: async (_req, { send, host, body }) => {
|
|
11
11
|
const result = await startDrive({
|
|
12
12
|
pr: body.pr,
|
|
13
13
|
hint: body.hint,
|
|
14
14
|
send,
|
|
15
15
|
host,
|
|
16
16
|
});
|
|
17
|
-
|
|
18
17
|
if (!result.ok) {
|
|
19
|
-
return Response
|
|
18
|
+
return new Response(null, { status: 400 });
|
|
20
19
|
}
|
|
21
|
-
|
|
22
|
-
return Response.json({
|
|
23
|
-
pr: result.pr,
|
|
24
|
-
sessionId: result.sessionId,
|
|
25
|
-
continuationToken: result.continuationToken,
|
|
26
|
-
bcId: result.bcId,
|
|
27
|
-
agentUrl: result.agentUrl,
|
|
28
|
-
status: result.status,
|
|
29
|
-
result: result.result,
|
|
30
|
-
playgroundUrl:
|
|
31
|
-
result.sessionId === null ? null : sessionUrls(req, result.sessionId).playgroundUrl,
|
|
32
|
-
mergeConflictReminderId: result.mergeConflictReminderId,
|
|
33
|
-
});
|
|
20
|
+
return new Response(null, { status: 202 });
|
|
34
21
|
},
|
|
35
22
|
}),
|
|
36
23
|
],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineChannel, POST } from "@cursor/bdk/channels";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { formatQueuePrompt,
|
|
3
|
+
import { formatQueuePrompt, parseQueueEvent } from "../lib/parse-queue-event.js";
|
|
4
4
|
|
|
5
5
|
export default defineChannel({
|
|
6
6
|
routes: [
|
|
@@ -11,29 +11,18 @@ export default defineChannel({
|
|
|
11
11
|
const parsed = parseQueueEvent(body);
|
|
12
12
|
if (!parsed.ok) {
|
|
13
13
|
if ("ignored" in parsed) {
|
|
14
|
-
return Response
|
|
14
|
+
return new Response(null, { status: 202 });
|
|
15
15
|
}
|
|
16
|
-
return Response
|
|
16
|
+
return new Response(null, { status: 400 });
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return Response.json({
|
|
27
|
-
ok: true,
|
|
28
|
-
identifier: parsed.issue.identifier,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
const session = await send(prompt, options);
|
|
32
|
-
return Response.json({
|
|
33
|
-
ok: true,
|
|
34
|
-
sessionId: session.id,
|
|
35
|
-
identifier: parsed.issue.identifier,
|
|
36
|
-
});
|
|
18
|
+
waitUntil(
|
|
19
|
+
send(formatQueuePrompt(parsed.issue), {
|
|
20
|
+
continuationToken: parsed.issue.identifier,
|
|
21
|
+
admission: "coalesce",
|
|
22
|
+
title: parsed.issue.title === "" ? undefined : parsed.issue.title,
|
|
23
|
+
}),
|
|
24
|
+
);
|
|
25
|
+
return new Response(null, { status: 202 });
|
|
37
26
|
},
|
|
38
27
|
}),
|
|
39
28
|
],
|
|
@@ -21,11 +21,11 @@ export default defineChannel({
|
|
|
21
21
|
nowMs: Date.now(),
|
|
22
22
|
});
|
|
23
23
|
if (!verified.ok) {
|
|
24
|
-
return Response
|
|
24
|
+
return new Response(null, { status: verified.status });
|
|
25
25
|
}
|
|
26
26
|
const parsed = parseQueueEvent(body);
|
|
27
27
|
if (!parsed.ok) {
|
|
28
|
-
return Response
|
|
28
|
+
return new Response(null, { status: 202 });
|
|
29
29
|
}
|
|
30
30
|
waitUntil(
|
|
31
31
|
send(formatQueuePrompt(parsed.issue), {
|
|
@@ -34,10 +34,7 @@ export default defineChannel({
|
|
|
34
34
|
title: parsed.issue.title === "" ? undefined : parsed.issue.title,
|
|
35
35
|
}),
|
|
36
36
|
);
|
|
37
|
-
return Response
|
|
38
|
-
ok: true,
|
|
39
|
-
identifier: parsed.issue.identifier,
|
|
40
|
-
});
|
|
37
|
+
return new Response(null, { status: 202 });
|
|
41
38
|
},
|
|
42
39
|
}),
|
|
43
40
|
],
|
|
@@ -26,12 +26,6 @@ export function pinIssueIdentifier(
|
|
|
26
26
|
return fallback;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export function isTrackerWebhook(body: unknown): boolean {
|
|
30
|
-
return (
|
|
31
|
-
isRecord(body) && (typeof body["type"] === "string" || typeof body["webhookEvent"] === "string")
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
29
|
export function parseQueueEvent(body: unknown): ParseResult {
|
|
36
30
|
if (!isRecord(body)) {
|
|
37
31
|
return { ok: false, error: "unsupported queue event" };
|