@cursor/bdk 0.2.1 → 0.2.3
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/README.md +1 -6
- package/dist/artifacts.d.ts +5 -2
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +5 -2
- package/dist/bin/agent-serve.js +23 -7
- package/dist/channels/github/auth.d.ts.map +1 -1
- package/dist/channels/github/auth.js +36 -5
- package/dist/channels/slack/manifest.d.ts.map +1 -1
- package/dist/channels/slack/manifest.js +3 -2
- package/dist/channels/slack/types.d.ts +6 -1
- package/dist/channels/slack/types.d.ts.map +1 -1
- 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.JVQvbRO-.js → app.BOIHhrKi.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.D5L-b34G.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BkhY63uW.js → VPLocalSearchBox.D49zVZqM.js} +1 -1
- package/dist/docs/assets/chunks/{arc.Cc1unYd3.js → arc.hmjb-sc4.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CAY_TPVz.js → architectureDiagram-Q4EWVU46.CxEI1KqM.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.my2VD3Xm.js → baseUniq.DHHvBWoV.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.CQXAOmqd.js → blockDiagram-DXYQGD6D.DnXW-3bu.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D0AsQFSX.js → c4Diagram-AHTNJAMY.e-47O2jM.js} +1 -1
- package/dist/docs/assets/chunks/channel.BbOGaJQP.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DZjhgNls.js → chunk-4BX2VUAB.3ry4pYXB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.qdcp_qbo.js → chunk-4TB4RGXK.DGIZFRx6.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.BHXoZhJ-.js → chunk-55IACEB6.DKBnqg9U.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.Cds_Vwj3.js → chunk-EDXVE4YY.BIU8Ue5k.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CSl0HknT.js → chunk-FMBD7UC4.DP-TFhjI.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.DJMvAt5N.js → chunk-OYMX7WX6.Ux0OYj5v.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BYQzBK9D.js → chunk-QZHKN3VN.BzHMwYox.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.BAvw7N4o.js → chunk-YZCP3GAM.D4OGAsSP.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Db58HCb1.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Db58HCb1.js +1 -0
- package/dist/docs/assets/chunks/clone.Co4MBflG.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Buf3seya.js → cose-bilkent-S5V4N54A.Jq_7BUNx.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.DMGGa3uA.js → dagre-KV5264BT.Di-skR2x.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DDjnwRmY.js → diagram-5BDNPKRD.DeREHIdH.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.RwyrIr8Q.js → diagram-G4DWMVQ6.C7Kcqxro.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DRvQV16Z.js → diagram-MMDJMWI5.BK3eohyo.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.Dw8W9BTk.js → diagram-TYMM5635.C6TyymXT.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DQT1Hnwf.js → erDiagram-SMLLAGMA.DYGG-gGx.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.6_Aky-ut.js → flowDiagram-DWJPFMVM.C9nBcSV4.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHIwqnqN.js → ganttDiagram-T4ZO3ILL.wAg_ymsp.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CGd_eJbn.js → gitGraphDiagram-UUTBAWPF.B87j9Oeg.js} +1 -1
- package/dist/docs/assets/chunks/{graph.ChMEylkh.js → graph.CuFMj31w.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.Cd4gMyAz.js → infoDiagram-42DDH7IO.P_mLGumP.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.D1uw7MXq.js → ishikawaDiagram-UXIWVN3A.DyuL_MsT.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.AWLXtelc.js → journeyDiagram-VCZTEJTY.CtP09IoJ.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CagPhAn5.js → kanban-definition-6JOO6SKY.BoeSYPZo.js} +1 -1
- package/dist/docs/assets/chunks/{layout.ClTBBkE_.js → layout.B0lMMtNo.js} +1 -1
- package/dist/docs/assets/chunks/{linear.SwS2rOLA.js → linear.HxRBiAFX.js} +1 -1
- package/dist/docs/assets/chunks/{min.By_x-Btb.js → min.BGlFFHwS.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.By_RAMaP.js → mindmap-definition-QFDTVHPH.JyLBD9M8.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DfAl9sy4.js → pieDiagram-DEJITSTG.DnSmNZF8.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CNuqFRBj.js → quadrantDiagram-34T5L4WZ.CUCnbfCa.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DJ5CmTCl.js → requirementDiagram-MS252O5E.py0IVUn5.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.D-T_AKJj.js → sankeyDiagram-XADWPNL6.Bkc-HWYp.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.BRn9WcrR.js → sequenceDiagram-FGHM5R23.Dqn8Mlv2.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.F12urmm7.js → stateDiagram-FHFEXIEX.JikkoQUU.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CMsKhrW0.js +1 -0
- package/dist/docs/assets/chunks/{theme.zK3OJa_C.js → theme.b6HQ6zG_.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.B7GiQBeC.js → timeline-definition-GMOUNBTQ.BvpSXiBj.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.D0niwuY_.js → vennDiagram-DHZGUBPP.CU7MVnZx.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.1zhHNRsx.js → wardley-RL74JXVD.BKwC4ctG.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.DKaqpT7K.js → wardleyDiagram-NUSXRM2D.BfaF6Uhe.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.e8BPicch.js → xychartDiagram-5P7HB3ND.Bg5dcpj4.js} +1 -1
- package/dist/docs/assets/{deployment.md.nGo1yIsa.js → deployment.md.BJ8i7Q6p.js} +5 -8
- package/dist/docs/assets/{deployment.md.nGo1yIsa.lean.js → deployment.md.BJ8i7Q6p.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_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_artifacts.md.IFFC5Zln.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_hooks.md.Dg3dEugd.js → reference_hooks.md.DbthhtIR.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.BtpTjZmh.js → reference_sessions.md.DeRUItHD.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 +40 -43
- package/dist/docs/deployment.md +45 -15
- 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 +35 -35
- 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 +205 -97
- package/dist/docs/quickstart.html +40 -38
- package/dist/docs/quickstart.md +7 -1
- package/dist/docs/reference/agent-config.html +35 -35
- 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 +35 -35
- package/dist/docs/reference/hooks.html +37 -37
- package/dist/docs/reference/hooks.md +3 -2
- 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 +36 -36
- package/dist/docs/reference/sessions.md +4 -3
- package/dist/docs/reference/skills.html +35 -35
- 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-cloud-agents/extension.d.ts +16 -4
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +7 -3
- package/dist/extensions/cursor-cloud-agents/lib/channels.d.ts +3 -0
- package/dist/extensions/cursor-cloud-agents/lib/channels.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/channels.js +7 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts +4 -2
- package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/repos.js +21 -12
- package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/cancel.js +2 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +3 -1
- package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/reply.js +2 -0
- 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/files-backends/cursor-hosted.js +4 -4
- package/dist/internal/artifacts-store.d.ts +12 -2
- package/dist/internal/artifacts-store.d.ts.map +1 -1
- package/dist/internal/artifacts-store.js +8 -4
- 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 +22 -4
- 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/connections.d.ts.map +1 -1
- package/dist/internal/discovery/connections.js +11 -0
- package/dist/internal/event-mapper.d.ts +46 -4
- package/dist/internal/event-mapper.d.ts.map +1 -1
- package/dist/internal/event-mapper.js +316 -25
- 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 +229 -49
- package/dist/internal/hosting.d.ts +2 -2
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +9 -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 +1 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +33 -8
- package/dist/playground/assets/index-6BbTPnaT.css +1 -0
- package/dist/playground/assets/{index-FFdUqTt_.js → index-CI7FAmOP.js} +43 -43
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +50 -4
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +45 -15
- package/docs/guides/github.md +34 -0
- package/docs/guides/slack.md +5 -0
- package/docs/quickstart.md +7 -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/hooks.md +3 -2
- package/docs/reference/sessions.md +4 -3
- package/docs/troubleshooting.md +7 -3
- package/package.json +2 -4
- 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/src/artifacts.ts +5 -2
- package/src/bin/agent-serve.ts +27 -6
- package/src/channels/github/auth.ts +44 -5
- package/src/channels/slack/manifest.ts +2 -1
- package/src/channels/slack/types.ts +6 -1
- package/src/connections.ts +1 -1
- package/src/extensions/cursor-cloud-agents/extension.ts +23 -6
- package/src/extensions/cursor-cloud-agents/lib/channels.ts +11 -0
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +19 -7
- package/src/extensions/cursor-cloud-agents/tools/cancel.ts +2 -0
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +3 -1
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +2 -0
- package/src/extensions/cursor-grokbot-agents/extension.ts +132 -0
- package/src/extensions/cursor-grokbot-agents/lib/agents.ts +42 -0
- package/src/extensions/cursor-grokbot-agents/lib/backend.ts +208 -0
- package/src/extensions/cursor-grokbot-agents/lib/contacts.ts +74 -0
- package/src/extensions/cursor-grokbot-agents/lib/conversation.ts +260 -0
- package/src/extensions/cursor-grokbot-agents/lib/inputs.ts +21 -0
- package/src/extensions/cursor-grokbot-agents/lib/lock.ts +26 -0
- package/src/extensions/cursor-grokbot-agents/skills/consult.md +40 -0
- package/src/extensions/cursor-grokbot-agents/tools/ask.ts +32 -0
- package/src/extensions/cursor-grokbot-agents/tools/check.ts +25 -0
- package/src/extensions/cursor-grokbot-agents/tools/interrupt.ts +17 -0
- package/src/extensions/cursor-grokbot-agents/tools/list.ts +26 -0
- package/src/files-backends/cursor-hosted.ts +4 -4
- package/src/internal/artifacts-store.ts +14 -3
- package/src/internal/cli-ax.ts +52 -7
- package/src/internal/cli-deploy.ts +39 -6
- package/src/internal/cli-mcp-oauth.ts +2 -1
- package/src/internal/cli-skills.ts +4 -5
- package/src/internal/connection-env.ts +106 -0
- package/src/internal/cursor/backend-client.ts +6 -0
- package/src/internal/deploy-client.ts +79 -9
- package/src/internal/discovery/connections.ts +11 -0
- package/src/internal/event-mapper.ts +367 -36
- package/src/internal/hosted-delivery-protocol.ts +57 -20
- package/src/internal/hosted-delivery.ts +487 -229
- package/src/internal/hosting.ts +10 -3
- package/src/internal/install-cursor-skills.ts +56 -53
- package/src/internal/legacy-command-guard.ts +13 -1
- package/src/internal/mcp-host.ts +45 -17
- package/src/internal/sdk-runner.ts +11 -0
- package/src/internal/server.ts +13 -1
- package/src/internal/session-engine.ts +33 -13
- package/src/types.ts +56 -5
- 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.Caw9W1pM.js +0 -1
- package/dist/docs/assets/chunks/channel.Sapo9HJZ.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.NPiy3Hz7.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.NPiy3Hz7.js +0 -1
- package/dist/docs/assets/chunks/clone.zl2qolPE.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2._auCa3fR.js +0 -1
- 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/dist/playground/assets/index-BMV_IcEE.css +0 -1
- /package/dist/docs/assets/{reference_artifacts.md.IFFC5Zln.lean.js → reference_artifacts.md.CQfKq8F2.lean.js} +0 -0
- /package/dist/docs/assets/{reference_hooks.md.Dg3dEugd.lean.js → reference_hooks.md.DbthhtIR.lean.js} +0 -0
- /package/dist/docs/assets/{reference_sessions.md.BtpTjZmh.lean.js → reference_sessions.md.DeRUItHD.lean.js} +0 -0
package/docs/reference/cli.md
CHANGED
|
@@ -53,12 +53,12 @@ provide their own `help` subcommands.
|
|
|
53
53
|
| --- | --- |
|
|
54
54
|
| [`chat`](#chat) | Talk to a running agent |
|
|
55
55
|
| [`resume`](#resume) | Reattach chat to a previous session |
|
|
56
|
-
| [`run`](#run) | Start or continue work on a local, running, or
|
|
56
|
+
| [`run`](#run) | Start or continue work on a local, running, or hosted agent |
|
|
57
57
|
| [`call`](#call) | Call a server tool without a model turn |
|
|
58
58
|
| [`skill`](#skill) | Read an authored skill without a model turn |
|
|
59
59
|
| [`logs`](#logs) | Follow or dump agent logs |
|
|
60
60
|
| [`sessions`](#sessions) | List sessions |
|
|
61
|
-
| [`session`](#session) | Inspect a session or start a
|
|
61
|
+
| [`session`](#session) | Inspect a session or start a hosted session turn |
|
|
62
62
|
| [`cost`](#cost) | Report token usage and estimated cost |
|
|
63
63
|
| [`playground`](#playground) | Open an agent's playground |
|
|
64
64
|
| [`trajectory`](#trajectory) | Summarize a saved event stream |
|
|
@@ -73,8 +73,8 @@ provide their own `help` subcommands.
|
|
|
73
73
|
| [`deployment`](#deployment) | Inspect one deployment |
|
|
74
74
|
| [`stop`](#stop) | Stop a deployment |
|
|
75
75
|
| [`cancel-runs`](#cancel-runs) | Cancel active runs and reminder wakes |
|
|
76
|
-
| [`event-repos`](#event-repos) | Replace a
|
|
77
|
-
| [`upgrade`](#upgrade) | Move a
|
|
76
|
+
| [`event-repos`](#event-repos) | Replace a deployment's event repositories |
|
|
77
|
+
| [`upgrade`](#upgrade) | Move a deployment to a release |
|
|
78
78
|
| [`delete`](#delete) | Delete a deployment |
|
|
79
79
|
| [`rotate-token`](#rotate-token) | Replace a deployment's alias token |
|
|
80
80
|
| [`secrets`](#secrets) | Set, list, or remove deployment secrets |
|
|
@@ -100,8 +100,7 @@ Commands that send requests support these targets:
|
|
|
100
100
|
| Ephemeral local server | Omit `--url` and `--prod` | `run`, `call`, `skill`, `eval` |
|
|
101
101
|
| Running server | Pass `--url <baseUrl>` | `chat`, `resume`, `run`, `call`, `skill`, `eval`, `logs`, `sessions`, `session`, `cost`, `playground`, `mcp` |
|
|
102
102
|
| Default local server | Omit `--url` and `--prod`; uses `http://127.0.0.1:3000` | `chat`, `resume`, `logs`, `sessions`, `session`, `cost`, `playground` |
|
|
103
|
-
| Hosted deployment | Pass `--prod` | `
|
|
104
|
-
| Managed application | Pass `--prod` | `run`, `session` |
|
|
103
|
+
| Hosted deployment | Pass `--prod` | `run`, `session`, `playground` |
|
|
105
104
|
|
|
106
105
|
An explicit `--url` must include the slug for a multi-agent server, such as
|
|
107
106
|
`http://127.0.0.1:3000/pr-approver`. `--slug` never changes an explicit URL.
|
|
@@ -111,7 +110,7 @@ An explicit `--url` must include the slug for a multi-agent server, such as
|
|
|
111
110
|
| --- | --- |
|
|
112
111
|
| `--dir <path>` | Select the project root. The default is the current directory. |
|
|
113
112
|
| `--url <baseUrl>` | Use a running agent instead of local project discovery. |
|
|
114
|
-
| `--prod` | Use
|
|
113
|
+
| `--prod` | Use the hosted deployment. Only `run`, `session`, and `playground` accept it. |
|
|
115
114
|
| `--slug <slug>` | Select an agent from a multi-agent project or a hosted resource. Under `--prod`, the default is the `--dir` basename. |
|
|
116
115
|
| `--team <id>` | Select a Cursor team. The signed-in account's team is the default. |
|
|
117
116
|
| `--api-key <key>` | Override the Cursor credential for commands that authenticate with Cursor. |
|
|
@@ -189,9 +188,9 @@ prints the URL without opening a browser.
|
|
|
189
188
|
`chat` connects to a running server and never starts an ephemeral one:
|
|
190
189
|
|
|
191
190
|
```text
|
|
192
|
-
bdk chat [--url <baseUrl>
|
|
191
|
+
bdk chat [--url <baseUrl>] [--message <text>]
|
|
193
192
|
[--session <id> | --resume] [--continuation-token <token>]
|
|
194
|
-
[--slug <slug>] [--
|
|
193
|
+
[--slug <slug>] [--json] [--text] [--no-color]
|
|
195
194
|
```
|
|
196
195
|
|
|
197
196
|
| Input mode | Behavior |
|
|
@@ -213,9 +212,9 @@ token. An explicit session ID takes precedence.
|
|
|
213
212
|
`resume` provides the same reattachment contract as `chat --session`:
|
|
214
213
|
|
|
215
214
|
```text
|
|
216
|
-
bdk resume [sessionId] [--url <baseUrl>
|
|
215
|
+
bdk resume [sessionId] [--url <baseUrl>]
|
|
217
216
|
[--message <text>] [--json] [--text]
|
|
218
|
-
[--continuation-token <token>] [--slug <slug>]
|
|
217
|
+
[--continuation-token <token>] [--slug <slug>]
|
|
219
218
|
```
|
|
220
219
|
|
|
221
220
|
Omit the session ID to select the most recently updated followable session.
|
|
@@ -237,27 +236,28 @@ bdk run [--dir <path>] [--message <text>]...
|
|
|
237
236
|
|
|
238
237
|
| Option | Contract |
|
|
239
238
|
| --- | --- |
|
|
240
|
-
| `--message <text>` | Send a user message. Repeat it for a multi-turn local or `--url` run.
|
|
239
|
+
| `--message <text>` | Send a user message. Repeat it for a multi-turn local or `--url` run. `--prod` starts accept one message. |
|
|
241
240
|
| `--messages-file <path>` | Read a JSON array of strings. File messages run before repeated `--message` values. |
|
|
242
|
-
| `--session <id>` | Continue a session.
|
|
243
|
-
| `--continuation-token <token>` | Continue the session selected by `--session` on a running server.
|
|
241
|
+
| `--session <id>` | Continue a session. With `--prod`, pass a hosted `ses_...` ID. |
|
|
242
|
+
| `--continuation-token <token>` | Continue the session selected by `--session` on a running server. `--prod` starts use `--session` instead. |
|
|
244
243
|
| `--events <file>` | Write the raw NDJSON stream to this path. |
|
|
245
244
|
| `--no-events` | Skip the NDJSON trace. |
|
|
246
245
|
| `--text` | Print a compact trajectory instead of JSON. |
|
|
247
246
|
| `--timeout-ms <n>` | Stop waiting after a positive number of milliseconds. There is no default timeout. |
|
|
248
247
|
| `--no-stream` | Hide live tool and reply progress on stderr. |
|
|
249
|
-
| `--dry-run` | Mark a
|
|
250
|
-
| `--as-of <instant>` | Freeze a
|
|
251
|
-
| `--component <key>` | Select a
|
|
248
|
+
| `--dry-run` | Mark a `--prod` turn as non-mutating. |
|
|
249
|
+
| `--as-of <instant>` | Freeze a `--prod` session's clock at a timezone-bearing ISO-8601 instant. |
|
|
250
|
+
| `--component <key>` | Select a hosted deployment's component instead of its default. |
|
|
252
251
|
|
|
253
252
|
For local and running-server targets, JSON output contains `ok`, `sessionId`,
|
|
254
253
|
`continuationToken`, `trace`, `playgroundUrl`, `playgroundHint`, `visualize`,
|
|
255
254
|
and `trajectory`. The `trace` value gives the saved path when event output is
|
|
256
|
-
enabled.
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
255
|
+
enabled. With `--prod`, `run` prints a `deliveryId` when the deployment accepts
|
|
256
|
+
the turn and returns before the turn finishes. A fresh start has no
|
|
257
|
+
`sessionId` yet, even with `--dry-run`; a continuation includes it. `--prod`
|
|
258
|
+
starts ignore `--events`, `--no-events`, `--text`, `--timeout-ms`, and
|
|
259
|
+
`--no-stream`, and a successful start exits `0` before the turn outcome is
|
|
260
|
+
known. See [Verify a hosted turn](../deployment.md#verify-a-hosted-turn).
|
|
261
261
|
|
|
262
262
|
### Call a tool {#call}
|
|
263
263
|
|
|
@@ -265,8 +265,8 @@ known. A fresh start doesn't return `sessionId` synchronously.
|
|
|
265
265
|
|
|
266
266
|
```text
|
|
267
267
|
bdk call <tool> [--input <json>]
|
|
268
|
-
[--dir <path> | --url <baseUrl>
|
|
269
|
-
[--session <id>] [--slug <slug>]
|
|
268
|
+
[--dir <path> | --url <baseUrl>]
|
|
269
|
+
[--session <id>] [--slug <slug>]
|
|
270
270
|
```
|
|
271
271
|
|
|
272
272
|
`--input` accepts JSON and defaults to `{}`. `--session` uses the session
|
|
@@ -274,6 +274,9 @@ workspace and records the call on its event stream. The command prints the
|
|
|
274
274
|
server's JSON response and succeeds only when the HTTP response succeeds with
|
|
275
275
|
`ok: true`.
|
|
276
276
|
|
|
277
|
+
Hosted deployments don't support `call`. Start a model turn with `run --prod`
|
|
278
|
+
and check it with [`session`](#session).
|
|
279
|
+
|
|
277
280
|
See [Tools](./tools.md#call-a-tool-without-a-model-turn) for validation,
|
|
278
281
|
busy-session behavior, and error codes.
|
|
279
282
|
|
|
@@ -282,8 +285,8 @@ busy-session behavior, and error codes.
|
|
|
282
285
|
`skill` reads an authored skill without a model turn:
|
|
283
286
|
|
|
284
287
|
```text
|
|
285
|
-
bdk skill <name> [--dir <path> | --url <baseUrl>
|
|
286
|
-
[--slug <slug>] [--
|
|
288
|
+
bdk skill <name> [--dir <path> | --url <baseUrl>]
|
|
289
|
+
[--slug <slug>] [--text]
|
|
287
290
|
```
|
|
288
291
|
|
|
289
292
|
The default output is the server's JSON response. `--text` prints the rendered
|
|
@@ -292,14 +295,18 @@ The default output is the server's JSON response. `--text` prints the rendered
|
|
|
292
295
|
### List sessions {#sessions}
|
|
293
296
|
|
|
294
297
|
```text
|
|
295
|
-
bdk sessions [--url <baseUrl>
|
|
296
|
-
[--slug <slug>] [--
|
|
298
|
+
bdk sessions [--url <baseUrl>]
|
|
299
|
+
[--slug <slug>] [--bearer-token <token>] [--json]
|
|
297
300
|
```
|
|
298
301
|
|
|
299
302
|
Text output shows the session ID, channel, mode, turn count, running status,
|
|
300
303
|
and update time. `--json` prints `{ sessions }`, including continuation
|
|
301
304
|
tokens.
|
|
302
305
|
|
|
306
|
+
Hosted deployments don't support `sessions`. Find a hosted session in the
|
|
307
|
+
deployment's **Sessions** list in the dashboard, then check it with
|
|
308
|
+
[`session <sessionId> --prod`](#session).
|
|
309
|
+
|
|
303
310
|
### Inspect a session {#session}
|
|
304
311
|
|
|
305
312
|
```text
|
|
@@ -318,29 +325,31 @@ bdk session --prod [<sessionId>] --slug <slug> --message <text>
|
|
|
318
325
|
| `--json` | Print the trajectory object. |
|
|
319
326
|
| `--events` | Print `{ sessionId, events }` with the raw event list. |
|
|
320
327
|
| `--out <file.ndjson>` | Write the raw NDJSON trace instead of printing it. |
|
|
321
|
-
| `--prod --message <text>` | Start a
|
|
328
|
+
| `--prod --message <text>` | Start a hosted session or continue the supplied hosted session ID. |
|
|
322
329
|
|
|
323
|
-
`--events` and `--json` are mutually exclusive.
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
330
|
+
`--events` and `--json` are mutually exclusive. With `--prod`, the command
|
|
331
|
+
prints the session's runs and logs in text or JSON, and `--events` and `--out`
|
|
332
|
+
aren't available. While a hosted turn is running, text output also reports the
|
|
333
|
+
event count so far and prints `Turn running; runs may lag behind events.` Use
|
|
334
|
+
[`resume`](#resume) to continue a conversational session.
|
|
327
335
|
|
|
328
336
|
### Follow logs {#logs}
|
|
329
337
|
|
|
330
338
|
```text
|
|
331
|
-
bdk logs [--url <baseUrl>
|
|
332
|
-
[--slug <slug>] [--
|
|
339
|
+
bdk logs [--url <baseUrl>]
|
|
340
|
+
[--slug <slug>] [--once] [--json]
|
|
333
341
|
```
|
|
334
342
|
|
|
335
343
|
The command follows logs until Ctrl-C. `--once` prints the current buffer and
|
|
336
|
-
exits; `--json` emits newline-delimited JSON events.
|
|
337
|
-
|
|
344
|
+
exits; `--json` emits newline-delimited JSON events. For a hosted deployment,
|
|
345
|
+
use [`deployment`](#deployment) for rollout status and
|
|
346
|
+
[`session <sessionId> --prod`](#session) for a session's runs and logs.
|
|
338
347
|
|
|
339
348
|
### Report costs {#cost}
|
|
340
349
|
|
|
341
350
|
```text
|
|
342
|
-
bdk cost [sessionId] [--url <baseUrl>
|
|
343
|
-
[--slug <slug>] [--
|
|
351
|
+
bdk cost [sessionId] [--url <baseUrl>]
|
|
352
|
+
[--slug <slug>] [--json]
|
|
344
353
|
```
|
|
345
354
|
|
|
346
355
|
With a session ID, `cost` prints per-turn token usage and estimated cost.
|
|
@@ -358,6 +367,8 @@ bdk playground [--url <baseUrl> | --prod] [--session <id>]
|
|
|
358
367
|
The command prints the playground URL and opens it unless `--print` is set.
|
|
359
368
|
`--session` opens a deep link. A running target with credentials that a
|
|
360
369
|
browser can't send starts a loopback proxy and stays open until Ctrl-C.
|
|
370
|
+
`--session` links for a hosted deployment may not open yet; check that session
|
|
371
|
+
with [`session <sessionId> --prod`](#session) instead.
|
|
361
372
|
|
|
362
373
|
### Inspect a trajectory {#trajectory}
|
|
363
374
|
|
|
@@ -380,8 +391,7 @@ bdk eval [--dir <path>] [evalId...]
|
|
|
380
391
|
[--timeout-ms <n>] [--strict] [--max-concurrency <n>]
|
|
381
392
|
[--junit <path>] [--artifacts <dir> | --no-artifacts]
|
|
382
393
|
[--skip-report] [--out <file.json>] [--no-stream]
|
|
383
|
-
[--url <baseUrl>
|
|
384
|
-
[--slug <slug>] [--team <id>]
|
|
394
|
+
[--url <baseUrl>] [--no-wait] [--slug <slug>]
|
|
385
395
|
```
|
|
386
396
|
|
|
387
397
|
Select an exact case such as `weather/nyc`, a file prefix such as `weather`,
|
|
@@ -404,22 +414,18 @@ between 1 and 200.
|
|
|
404
414
|
| `--no-artifacts` | Skip artifacts for an ephemeral local run. |
|
|
405
415
|
| `--skip-report` | Ignore reporters from eval files and the eval config during an ephemeral local run. |
|
|
406
416
|
| `--out <file.json>` | Also write the full result JSON. |
|
|
407
|
-
| `--no-wait` | Return after a running server
|
|
417
|
+
| `--no-wait` | Return after a running server accepts the batch. |
|
|
408
418
|
|
|
409
|
-
A running server
|
|
410
|
-
batch.
|
|
419
|
+
A running server prints its Eval ID when it accepts the batch.
|
|
411
420
|
Use these commands to inspect or cancel it:
|
|
412
421
|
|
|
413
422
|
```text
|
|
414
|
-
bdk eval status [evalId] --prod [--slug <slug>] [--team <id>]
|
|
415
423
|
bdk eval status [evalId] --url <baseUrl>
|
|
416
|
-
bdk eval cancel <evalId> --prod [--slug <slug>] [--team <id>]
|
|
417
424
|
bdk eval cancel <evalId> --url <baseUrl>
|
|
418
425
|
```
|
|
419
426
|
|
|
420
427
|
`eval status` without an ID lists recent remote runs. `eval status --out`
|
|
421
|
-
requires an ID. The `status` and `cancel` subcommands require `--url
|
|
422
|
-
`--prod`.
|
|
428
|
+
requires an ID. The `status` and `cancel` subcommands require `--url`.
|
|
423
429
|
|
|
424
430
|
## Projects
|
|
425
431
|
|
|
@@ -571,7 +577,7 @@ service-account API key with agent access can deploy.
|
|
|
571
577
|
| `--repo <https-url>` | Set the source repository. The CLI infers it from the current checkout when possible. HTTPS is required. |
|
|
572
578
|
| `--ref <git-ref>` | Set the source Git ref. The CLI infers the current branch when possible. |
|
|
573
579
|
| `--path <agent-path>` | Set the project path relative to the repository root. |
|
|
574
|
-
| `--cursor-events-repo <owner/name>` |
|
|
580
|
+
| `--cursor-events-repo <owner/name>` | Watch a repository's Cursor events. Repeat the flag for each repository; the repositories you pass replace the previous list. Without the flag, the deployment watches its GitHub source repository. |
|
|
575
581
|
| `--allow-domain <domain>` | Add an egress hostname. Repeat for multiple domains; values are combined with `hosting.egressDomains`. |
|
|
576
582
|
| `--no-wait` | Return after the deployment request is accepted. |
|
|
577
583
|
| `--json` | Print one object for one target or an array for multiple targets. |
|
|
@@ -579,7 +585,8 @@ service-account API key with agent access can deploy.
|
|
|
579
585
|
Deployment slugs contain lowercase letters, digits, `_`, or `-`, start with a
|
|
580
586
|
letter or digit, and have at most 64 characters. Egress entries are lowercase
|
|
581
587
|
hostnames with an alphabetic top-level domain; one leading `*.` wildcard is
|
|
582
|
-
allowed, with at most
|
|
588
|
+
allowed, or a trailing `:port` for a protocol that is not HTTPS, with at most
|
|
589
|
+
64 entries.
|
|
583
590
|
|
|
584
591
|
By default, `deploy` waits until the deployment is running and exits nonzero
|
|
585
592
|
if it reaches a failed state. A first deployment can return an alias token
|
|
@@ -614,8 +621,7 @@ bdk stop <slug> [--team <id>] [--no-wait] [--cancel-runs] [--json]
|
|
|
614
621
|
|
|
615
622
|
The command waits for `stopped` by default. `--no-wait` returns after the
|
|
616
623
|
request is accepted. `--cancel-runs` also requests cancellation of active
|
|
617
|
-
runs and reminder wakes
|
|
618
|
-
reject this option.
|
|
624
|
+
runs and reminder wakes.
|
|
619
625
|
|
|
620
626
|
### Cancel active runs {#cancel-runs}
|
|
621
627
|
|
|
@@ -623,8 +629,8 @@ reject this option.
|
|
|
623
629
|
bdk cancel-runs <slug> [--team <id>] [--json]
|
|
624
630
|
```
|
|
625
631
|
|
|
626
|
-
The command requests cancellation for a
|
|
627
|
-
|
|
632
|
+
The command requests cancellation for a deployment's active runs and reminder
|
|
633
|
+
wakes. For a multi-tenant
|
|
628
634
|
application, this cancels every install; use `stop --cancel-runs` for
|
|
629
635
|
install-local cancellation. It exits nonzero if any cancellation request fails
|
|
630
636
|
to start.
|
|
@@ -636,11 +642,11 @@ bdk event-repos <slug> [--repo <owner/name>]...
|
|
|
636
642
|
[--team <id>] [--json]
|
|
637
643
|
```
|
|
638
644
|
|
|
639
|
-
The supplied repositories replace the
|
|
640
|
-
|
|
641
|
-
|
|
645
|
+
The supplied repositories replace the deployment's complete event repository
|
|
646
|
+
list; they aren't merged with the previous list. Omit `--repo` to clear the
|
|
647
|
+
list.
|
|
642
648
|
|
|
643
|
-
### Upgrade a
|
|
649
|
+
### Upgrade a deployment {#upgrade}
|
|
644
650
|
|
|
645
651
|
```text
|
|
646
652
|
bdk upgrade <slug> [--release <id-or-version>]
|
|
@@ -695,11 +701,8 @@ most 4096 bytes, and each deployment holds at most 32 secrets.
|
|
|
695
701
|
### Connect an MCP client {#mcp}
|
|
696
702
|
|
|
697
703
|
```text
|
|
698
|
-
bdk mcp --prod [--slug <slug>] [--team <id>]
|
|
699
704
|
bdk mcp --url <baseUrl> [--bearer-token <token>]
|
|
700
705
|
|
|
701
|
-
bdk mcp install --prod [--slug <slug>] [--team <id>]
|
|
702
|
-
[--name <server-name>] [--print] [--json] [--remote]
|
|
703
706
|
bdk mcp install --url <baseUrl> [--bearer-token <token>]
|
|
704
707
|
[--name <server-name>] [--print] [--json]
|
|
705
708
|
```
|
|
@@ -708,7 +711,6 @@ bdk mcp install --url <baseUrl> [--bearer-token <token>]
|
|
|
708
711
|
| --- | --- |
|
|
709
712
|
| `mcp` | Read newline-delimited JSON-RPC from stdin and proxy it to the selected agent's MCP endpoint. stdout is reserved for MCP messages. A target is required. |
|
|
710
713
|
| `mcp install` | Add the selected agent to `~/.cursor/mcp.json`. `--name` sets the server name, `--print` previews the entry, and `--json` prints a machine-readable result. A `--url` entry with `--bearer-token` contains that token; handle printed and written copies as credentials. |
|
|
711
|
-
| `mcp install --remote --prod` | Write a remote HTTP entry for clients that can't spawn a stdio process. The entry contains the API key in plain text and must be handled as a credential. |
|
|
712
714
|
|
|
713
715
|
### Authorize MCP OAuth {#mcp-oauth}
|
|
714
716
|
|
|
@@ -723,7 +725,7 @@ bdk mcp oauth <connection> [--dir <path>] [--store]
|
|
|
723
725
|
| Connection | Result |
|
|
724
726
|
| --- | --- |
|
|
725
727
|
| `defineConnection({ url, oauth: true })` | Open a browser PKCE flow and save tokens in `mcp-auth.json` under the CLI config directory. `--store` also sets the matching deployment secrets. |
|
|
726
|
-
| `defineConnection({ cursorAccount: true })` | Authorize the
|
|
728
|
+
| `defineConnection({ cursorAccount: true })` | Authorize the hosted deployment's service account through Cursor. `--store` isn't needed. |
|
|
727
729
|
|
|
728
730
|
Stored secret names are `MCP_OAUTH_<NAME>_ACCESS_TOKEN`,
|
|
729
731
|
`MCP_OAUTH_<NAME>_REFRESH_TOKEN`, and `MCP_OAUTH_<NAME>_CLIENT_ID`. Declare
|
|
@@ -28,11 +28,37 @@ import { defineConnection } from "@cursor/bdk/connections";
|
|
|
28
28
|
|
|
29
29
|
export default defineConnection({
|
|
30
30
|
url: "https://mcp.linear.app/mcp",
|
|
31
|
-
headers: { authorization:
|
|
31
|
+
headers: { authorization: "Bearer ${LINEAR_TOKEN}" },
|
|
32
32
|
});
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
## Credentials in headers and env
|
|
36
|
+
|
|
37
|
+
Write a credential as a `${NAME}` template in `headers` on a remote
|
|
38
|
+
connection or in `env` on a stdio one. The connection stores the template
|
|
39
|
+
as you wrote it and reads `NAME` from the environment every time it opens a
|
|
40
|
+
client, so the value can arrive after the project loads.
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
export default defineConnection({
|
|
44
|
+
command: "slack-mcp-server",
|
|
45
|
+
args: ["--transport", "stdio"],
|
|
46
|
+
env: { SLACK_MCP_XOXB_TOKEN: "${SLACK_BOT_TOKEN}" },
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
That timing is the point of the template. Your connection file is imported
|
|
51
|
+
once, when the project loads, and a hosted deployment has none of its
|
|
52
|
+
secrets in the environment yet, because the platform passes them to the
|
|
53
|
+
agent per request. So a `process.env.SLACK_BOT_TOKEN` read at the top of
|
|
54
|
+
the file captures an empty string and keeps sending it for the life of the
|
|
55
|
+
process, while the same file works locally because `.env.local` was read
|
|
56
|
+
before the import. The template form is right in both places.
|
|
57
|
+
|
|
58
|
+
`bdk validate` warns about a template the environment does not define and
|
|
59
|
+
names the variable. It stays a warning rather than an error, since a
|
|
60
|
+
hosted deployment resolves it later. An unset variable resolves to an
|
|
61
|
+
empty value at connect time, which the server reports as an auth failure.
|
|
36
62
|
|
|
37
63
|
## Host MCP OAuth
|
|
38
64
|
|
package/docs/reference/evals.md
CHANGED
|
@@ -270,19 +270,18 @@ disables them. This location is independent of `--state-root`.
|
|
|
270
270
|
|
|
271
271
|
## Run evals against a server
|
|
272
272
|
|
|
273
|
-
The playground **Evals** view starts batches on its running server
|
|
274
|
-
`--url` targets a named running server
|
|
275
|
-
targets a hosted deployment.
|
|
273
|
+
The playground **Evals** view starts batches on its running server, and
|
|
274
|
+
`--url` targets a named running server:
|
|
276
275
|
|
|
277
276
|
```text
|
|
278
|
-
bdk eval --
|
|
279
|
-
bdk eval status <eval-id> --
|
|
280
|
-
bdk eval cancel <eval-id> --
|
|
277
|
+
bdk eval --url http://127.0.0.1:3000/vulnerability-scanner --tag smoke
|
|
278
|
+
bdk eval status <eval-id> --url http://127.0.0.1:3000/vulnerability-scanner
|
|
279
|
+
bdk eval cancel <eval-id> --url http://127.0.0.1:3000/vulnerability-scanner
|
|
281
280
|
```
|
|
282
281
|
|
|
283
282
|
Server-side batches use the target's discovered cases and return an eval
|
|
284
283
|
ID for `status` or `cancel`. Local reporter and concurrency flags don't
|
|
285
|
-
apply to `--url`
|
|
284
|
+
apply to `--url` runs.
|
|
286
285
|
|
|
287
286
|
## Related
|
|
288
287
|
|
package/docs/reference/hooks.md
CHANGED
|
@@ -78,8 +78,9 @@ want the final text; `message.completed` already has it.
|
|
|
78
78
|
| `message.received` | `{ text }` |
|
|
79
79
|
| `turn.completed` | `{ result?, usage?, cost? }`. `usage` has `inputTokens`, `outputTokens`, `cacheReadTokens`, `cacheWriteTokens`, and optional `reasoningTokens`. `cost` has `totalUsd` and the `model` it was priced against |
|
|
80
80
|
| `turn.failed` | `{ message, status? }`. `status` is `"error"` or `"cancelled"` when present |
|
|
81
|
-
| `actions.requested` | `{ calls: [{ callId, toolName, args?, parentCallId? }], parentCallId? }`. `parentCallId` marks subagent work
|
|
82
|
-
| `
|
|
81
|
+
| `actions.requested` | `{ calls: [{ callId, toolName, args?, parentCallId? }], parentCallId? }`. One envelope per model step once that step has listed its tools. A single tool is a batch of one. `parentCallId` marks subagent work |
|
|
82
|
+
| `actions.completed` | `{ results: [{ callId, toolName, output?, isError, stubbed?, parentCallId? }], parentCallId? }`. Pair with `actions.requested`; emitted when every call in that batch has a result |
|
|
83
|
+
| `action.result` | `{ callId, toolName, output?, isError, stubbed?, parentCallId? }`. Live per-call envelope for chips and spans. `stubbed` means a dry-run session answered a write without running it |
|
|
83
84
|
|
|
84
85
|
The types are `SessionEvent`, `SessionEventType`, and `HookContext`,
|
|
85
86
|
exported from `@cursor/bdk`.
|
|
@@ -90,13 +90,14 @@ within one session. The `at` field is an ISO-8601 timestamp.
|
|
|
90
90
|
| Steps | `step.started`, `step.completed` | Model step boundaries and duration |
|
|
91
91
|
| Reasoning | `reasoning.appended`, `reasoning.completed` | Streamed reasoning blocks |
|
|
92
92
|
| Reply | `message.appended`, `message.completed` | Text deltas and finalized assistant messages |
|
|
93
|
-
| Tools | `actions.requested`, `action.result` | Tool names, validated arguments, outputs, and errors |
|
|
93
|
+
| Tools | `actions.requested`, `actions.completed`, `action.result` | Tool names, validated arguments, outputs, and errors |
|
|
94
94
|
| Approvals | `action.approval_requested`, `action.approval_resolved` | A parked tool call and the human decision |
|
|
95
95
|
| Subagents | `subagent.called`, `subagent.completed` | Delegated work |
|
|
96
96
|
| Artifacts | `artifact.tagged` | A durable [artifact](./artifacts.md) was tagged for this session, by host code or `tag_artifact` |
|
|
97
97
|
|
|
98
|
-
Pair `actions.requested` with `
|
|
99
|
-
|
|
98
|
+
Pair `actions.requested` with `actions.completed` for each model-step
|
|
99
|
+
batch. `action.result` is the live per-call envelope. Read
|
|
100
|
+
`turn.completed.data.usage` for input, output, and
|
|
100
101
|
cache token counts. With `bot/result.ts`, `turn.failed` is emitted when
|
|
101
102
|
`commit` throws, the turn has no assistant text, or `ctx.reject(message)`
|
|
102
103
|
doesn't lead to an accepted revision.
|
package/docs/troubleshooting.md
CHANGED
|
@@ -35,6 +35,7 @@ Match the visible symptom below. The `bdk` binary ships with
|
|
|
35
35
|
| File reads and greps fail repeatedly with `NGHTTP2_FRAME_SIZE_ERROR` | Run the agent under Node 22.13 or newer, never Bun. |
|
|
36
36
|
| The turn immediately reports a missing API key | Set `CURSOR_API_KEY`, `CURSOR_API_KEY_FILE`, or `CURSOR_SERVICE_ACCOUNT_KEY`, or run `bdk login`. |
|
|
37
37
|
| Login succeeds but the model host rejects the key | Point login and model traffic at the same API host; check `CURSOR_API_BASE_URL` and `CURSOR_BACKEND_URL`. |
|
|
38
|
+
| The first turn reports `[resource_exhausted]` | Treat it as a capacity-shaped error. For a GitHub wake, also check the connected GitHub credential and any GitHub `429` rate limit before assuming the model quota is exhausted. |
|
|
38
39
|
|
|
39
40
|
## A turn behaves unexpectedly
|
|
40
41
|
|
|
@@ -61,9 +62,12 @@ Match the visible symptom below. The `bdk` binary ships with
|
|
|
61
62
|
| What you see | What to do |
|
|
62
63
|
| --- | --- |
|
|
63
64
|
| Local changes do not appear after deploy | `deploy` reads a pushed Git ref, not the working tree. Commit and push the intended ref, then deploy it again. |
|
|
64
|
-
| The deployment never becomes running | Run `bdk deployment <slug
|
|
65
|
+
| The deployment never becomes running | Run `bdk deployment <slug>`, then act on the reported build or startup error. |
|
|
65
66
|
| A secret or egress change has no effect | Confirm the name with `secrets list`, verify the `hosting` block exists on the pushed ref, and follow the CLI or dashboard prompt to redeploy. |
|
|
66
|
-
| Cursor events stopped after redeploy |
|
|
67
|
+
| Cursor events stopped after redeploy | Each redeploy replaces the watched repositories. Pass every `--cursor-events-repo` value again; without the flag, the deployment watches only its GitHub source repository. |
|
|
68
|
+
| `run --prod` prints a `deliveryId` but no `sessionId` | The deployment accepted the turn and is still starting it, which is expected with or without `--dry-run`. Find the session in the deployment's **Sessions** list in the dashboard, then follow [Verify a hosted turn](./deployment.md#verify-a-hosted-turn). |
|
|
69
|
+
| A high-effort turn runs for several minutes while runs look empty | Turns can take about eight minutes. Rerun `bdk session <sessionId> --prod --slug <slug>`; a growing event count means the turn is still working. Escalate only after about two to three minutes with no new events. |
|
|
70
|
+
| A dashboard link to a single session returns 404 | Check the session with `bdk session <sessionId> --prod --slug <slug>`. |
|
|
67
71
|
| External HTTP rejects the alias token | Update the caller with the current token. If the token is lost or exposed, run `bdk rotate-token <slug>` and replace it everywhere. |
|
|
68
72
|
|
|
69
73
|
See [Deployment](./deployment.md) for source, credential, and
|
|
@@ -86,7 +90,7 @@ direct webhooks.
|
|
|
86
90
|
| What you see | What to do |
|
|
87
91
|
| --- | --- |
|
|
88
92
|
| Logs say `channel idle ... missing credentials` | Run `bdk slack create --dir <agent>`, then check the generated prefix with `bdk slack doctor`. Use `slack init --manual` only for an app you own. |
|
|
89
|
-
| `slack create` is waiting for workspace approval |
|
|
93
|
+
| `slack create` is waiting for workspace approval | Keep the CLI running, open the **Request approval** link it prints, and select **Retry** in the dashboard's **Add Slack** wizard after an admin approves. See [Slack](./guides/slack.md#connect). |
|
|
90
94
|
| The bot ignores ordinary channel posts | Configure `engagement.channelPosts`, create the app with `--channel-posts`, and invite it to every allowed channel. |
|
|
91
95
|
| Approval buttons do nothing | Set `toolApprovals: true`, then recreate the app if its interactivity is not enabled. |
|
|
92
96
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cursor/bdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "(early alpha) Filesystem-first framework for defining Cursor agents as markdown and TypeScript and serving them over channels with the Cursor SDK.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"repository": {
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
"!dist/internal/tenant-mcp/**",
|
|
26
26
|
"!dist/internal/tenant-slack/**",
|
|
27
27
|
"!dist/internal/grokbot/**",
|
|
28
|
-
"!dist/extensions/cursor-grokbot-agents/**",
|
|
29
28
|
"!dist/internal/review-comments*",
|
|
30
29
|
"!dist/internal/shallow-clone.*",
|
|
31
30
|
"!dist/internal/managed-delivery.*",
|
|
@@ -34,7 +33,6 @@
|
|
|
34
33
|
"!src/internal/tenant-mcp/**",
|
|
35
34
|
"!src/internal/tenant-slack/**",
|
|
36
35
|
"!src/internal/grokbot/**",
|
|
37
|
-
"!src/extensions/cursor-grokbot-agents/**",
|
|
38
36
|
"!src/internal/review-comments*",
|
|
39
37
|
"!src/internal/shallow-clone.ts",
|
|
40
38
|
"!src/internal/managed-delivery.ts",
|
|
@@ -314,7 +312,7 @@
|
|
|
314
312
|
},
|
|
315
313
|
"dependencies": {
|
|
316
314
|
"@bazel/runfiles": "6.5.0",
|
|
317
|
-
"@cursor/sdk": "1.0.
|
|
315
|
+
"@cursor/sdk": "1.0.32",
|
|
318
316
|
"@modelcontextprotocol/sdk": "1.25.1",
|
|
319
317
|
"@octokit/auth-app": "^7.2.0",
|
|
320
318
|
"@octokit/rest": "^21.1.1",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* postinstall: copy
|
|
3
|
+
* postinstall: copy BDK coding-agent skills into ~/.cursor/skills/bdk
|
|
4
4
|
* so Cursor discovers them after `npm install` / `npx @cursor/bdk`.
|
|
5
5
|
*
|
|
6
6
|
* Never fails the package install. No-op in the monorepo source checkout
|
package/skills/debug/SKILL.md
CHANGED
package/skills/deploy/SKILL.md
CHANGED
package/skills/evals/SKILL.md
CHANGED
package/skills/github/SKILL.md
CHANGED
package/skills/mcp-auth/SKILL.md
CHANGED
package/skills/otel/SKILL.md
CHANGED
package/src/artifacts.ts
CHANGED
|
@@ -39,7 +39,10 @@ export type {
|
|
|
39
39
|
ArtifactTagInput,
|
|
40
40
|
} from "./types.js";
|
|
41
41
|
|
|
42
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* Default {@link ArtifactsConfig.max}. Architecture v1 and self-hosted v2
|
|
44
|
+
* evict to this cap. Hosted architecture v2 does not evict.
|
|
45
|
+
*/
|
|
43
46
|
export const ARTIFACTS_DEFAULT_MAX = 1_000;
|
|
44
47
|
|
|
45
48
|
export function defineArtifacts(config: ArtifactsConfig): ArtifactsDefinition {
|
|
@@ -59,7 +62,7 @@ export function defineArtifacts(config: ArtifactsConfig): ArtifactsDefinition {
|
|
|
59
62
|
return brandDefinition("artifacts", config);
|
|
60
63
|
}
|
|
61
64
|
|
|
62
|
-
/** Effective
|
|
65
|
+
/** Effective cap where eviction still runs (default {@link ARTIFACTS_DEFAULT_MAX}). */
|
|
63
66
|
export function resolveArtifactsMax(config: ArtifactsConfig | undefined): number {
|
|
64
67
|
return config?.max ?? ARTIFACTS_DEFAULT_MAX;
|
|
65
68
|
}
|