@cursor/bdk 0.2.20 → 0.2.22
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/dist/channels/github/api.d.ts.map +1 -1
- package/dist/channels/github/api.js +47 -0
- package/dist/channels/github/defaults.d.ts +1 -1
- package/dist/channels/github/defaults.d.ts.map +1 -1
- package/dist/channels/github/defaults.js +1 -1
- package/dist/channels/github/progress.d.ts +1 -1
- package/dist/channels/github/progress.d.ts.map +1 -1
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +34 -1
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.BzgJFr_T.js → app.BD1yvHJK.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.DLNj_nNf.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.Bn5QyUDM.js → VPLocalSearchBox.D25E8cn2.js} +1 -1
- package/dist/docs/assets/chunks/{arc.D734Gm5d.js → arc.1hKM2X5X.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.NX1jj-YX.js → architectureDiagram-Q4EWVU46.B1jE4xrG.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.nd8dxdeO.js → baseUniq.BwPi_maB.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DG8faTim.js → blockDiagram-DXYQGD6D.Cpy78QaZ.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.zD31AJ3b.js → c4Diagram-AHTNJAMY.DkCQNehT.js} +1 -1
- package/dist/docs/assets/chunks/channel.DRdmGkBC.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.BHQj6Rko.js → chunk-4BX2VUAB.BuR2bNxe.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.Cs38Yh16.js → chunk-4TB4RGXK.C24IlKyd.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.CFUR21JO.js → chunk-55IACEB6.CRD5fIjA.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.C80-Sneg.js → chunk-EDXVE4YY.gKhxQpy2.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CdT1MGza.js → chunk-FMBD7UC4.DPlyJIaG.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BctEzab0.js → chunk-OYMX7WX6.DfDSVvIq.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.DTneeX3k.js → chunk-QZHKN3VN.CsA80Wio.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.Cz47F_-o.js → chunk-YZCP3GAM.BtXaaMC_.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CAGM3Q8f.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CAGM3Q8f.js +1 -0
- package/dist/docs/assets/chunks/clone.DjA1k4gh.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BPYgB-_O.js → cose-bilkent-S5V4N54A.Bw9v-Pfp.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.Cu6hECod.js → dagre-KV5264BT.Wc53s510.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.BMgp95Tz.js → diagram-5BDNPKRD.DxJJrlh5.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.towWdhDi.js → diagram-G4DWMVQ6.Ldxa4MKP.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.D9IfOvE9.js → diagram-MMDJMWI5.D30RWuU-.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.NTX57RPu.js → diagram-TYMM5635.BuJ0aD65.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DIQLqDqu.js → erDiagram-SMLLAGMA.2N-5dVK2.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.DhqpItRe.js → flowDiagram-DWJPFMVM.B_te6Lre.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.B998R3Ps.js → ganttDiagram-T4ZO3ILL.CuNbn0Wd.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.B45nTn8-.js → gitGraphDiagram-UUTBAWPF.C1uOicx6.js} +1 -1
- package/dist/docs/assets/chunks/{graph.DPseWzzM.js → graph.lSlSs4kh.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO._GhhBBai.js → infoDiagram-42DDH7IO.Cw_LmsnD.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CTUMcaMM.js → ishikawaDiagram-UXIWVN3A.DikoN3ai.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.DkJBUddC.js → journeyDiagram-VCZTEJTY.buwzIgeY.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.B5Q3uwhy.js → kanban-definition-6JOO6SKY.yacNqa4l.js} +1 -1
- package/dist/docs/assets/chunks/{layout.CDY13IKh.js → layout.CPlTUhtI.js} +1 -1
- package/dist/docs/assets/chunks/{linear.BPd1ql9p.js → linear.BpHFbx_2.js} +1 -1
- package/dist/docs/assets/chunks/{min.dlGuqIBP.js → min.B_dSxH85.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.Cp7zCtmb.js → mindmap-definition-QFDTVHPH.BO5-vmxy.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.CRH034nu.js → pieDiagram-DEJITSTG.Bwj1Zq54.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.BspgZ-pX.js → quadrantDiagram-34T5L4WZ.D5dcUqJC.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CQZqZ0nZ.js → requirementDiagram-MS252O5E.CCP5yuT4.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DllwFU3k.js → sankeyDiagram-XADWPNL6.BWAu-_Jq.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.B5fTXycf.js → sequenceDiagram-FGHM5R23.w545hYyz.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.12GQjmbD.js → stateDiagram-FHFEXIEX.CxcpDNk2.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CjwS--3R.js +1 -0
- package/dist/docs/assets/chunks/{theme.BgocqONV.js → theme.DSJaK7i1.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.DXKUL5rH.js → timeline-definition-GMOUNBTQ.2WxkfxRf.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BrsjYCjp.js → vennDiagram-DHZGUBPP.BGZwcK-Z.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.BtotXz_c.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.C4oM69gv.js → wardleyDiagram-NUSXRM2D.oryRmynQ.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.qzHH9efW.js → xychartDiagram-5P7HB3ND.Bq7gMvIU.js} +1 -1
- package/dist/docs/assets/{deployment.md.D0uprX2p.js → deployment.md.CtSJ6sF9.js} +2 -2
- package/dist/docs/assets/{deployment.md.D0uprX2p.lean.js → deployment.md.CtSJ6sF9.lean.js} +1 -1
- package/dist/docs/assets/{guides_hooks.md.B_bKG1oA.js → guides_hooks.md.Bfj0pK91.js} +1 -1
- package/dist/docs/assets/{guides_hooks.md.B_bKG1oA.lean.js → guides_hooks.md.Bfj0pK91.lean.js} +1 -1
- package/dist/docs/assets/{guides_opentelemetry.md.BHPm32OR.js → guides_opentelemetry.md.ByW1Fs7b.js} +4 -4
- package/dist/docs/assets/{guides_opentelemetry.md.BHPm32OR.lean.js → guides_opentelemetry.md.ByW1Fs7b.lean.js} +1 -1
- package/dist/docs/assets/{reference_hooks.md.CP3FENFJ.js → reference_hooks.md.B1jq3oGl.js} +2 -2
- package/dist/docs/assets/{reference_hooks.md.CP3FENFJ.lean.js → reference_hooks.md.B1jq3oGl.lean.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.SNzIvnmC.js → reference_project-layout.md.mFcS8yDD.js} +3 -3
- package/dist/docs/assets/{reference_project-layout.md.SNzIvnmC.lean.js → reference_project-layout.md.mFcS8yDD.lean.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.C_uzIWuy.js → reference_sessions.md.C8FXuGwk.js} +1 -1
- package/dist/docs/assets/{reference_subagents.md.gmPt5J-M.js → reference_subagents.md.ChNGh6HK.js} +1 -1
- package/dist/docs/assets/{reference_subagents.md.gmPt5J-M.lean.js → reference_subagents.md.ChNGh6HK.lean.js} +1 -1
- package/dist/docs/assets/{troubleshooting.md.PCafNCb5.js → troubleshooting.md.DFnoTDlQ.js} +1 -1
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +37 -37
- package/dist/docs/deployment.md +10 -3
- 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/export-grokbot.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 +35 -35
- package/dist/docs/guides/hooks.html +37 -37
- package/dist/docs/guides/hooks.md +3 -1
- 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/migrate.html +35 -35
- package/dist/docs/guides/opentelemetry.html +39 -39
- package/dist/docs/guides/opentelemetry.md +26 -13
- package/dist/docs/guides/slack.html +35 -35
- 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 +51 -23
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +35 -35
- package/dist/docs/reference/artifacts.html +35 -35
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +35 -35
- package/dist/docs/reference/connections.html +35 -35
- package/dist/docs/reference/evals.html +35 -35
- package/dist/docs/reference/extensions.html +35 -35
- package/dist/docs/reference/hooks.html +37 -37
- package/dist/docs/reference/hooks.md +4 -1
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/memory.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +37 -37
- package/dist/docs/reference/project-layout.md +4 -1
- 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 +1 -3
- package/dist/docs/reference/skills.html +35 -35
- package/dist/docs/reference/subagents.html +36 -36
- package/dist/docs/reference/subagents.md +2 -0
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/grokbot-agents.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 +1 -1
- package/dist/evals/assertions.d.ts +3 -3
- package/dist/evals/assertions.d.ts.map +1 -1
- package/dist/evals/assertions.js +2 -2
- package/dist/evals/judge.d.ts +5 -4
- package/dist/evals/judge.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.d.ts +4 -1
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +20 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +22 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts +3 -3
- package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts.map +1 -1
- package/dist/files-backends/cursor-hosted.js +4 -1
- package/dist/filesystem.js +1 -1
- package/dist/internal/cursor/account-mcp.d.ts +1 -1
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +1 -1
- package/dist/internal/cursor/github-credentials.d.ts +1 -1
- package/dist/internal/cursor/github-credentials.d.ts.map +1 -1
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -1
- package/dist/internal/cursor/hosted-deployment-secrets.js +22 -6
- package/dist/internal/deploy-client.js +20 -1
- package/dist/internal/discovery/agent.d.ts +1 -1
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/eval-judge-model.d.ts +1 -1
- package/dist/internal/eval-judge-model.d.ts.map +1 -1
- package/dist/internal/eval-runner.d.ts +2 -2
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +1 -1
- package/dist/internal/evals-client.d.ts +1 -1
- package/dist/internal/evals-client.d.ts.map +1 -1
- package/dist/internal/evals-client.js +1 -1
- package/dist/internal/event-log.d.ts.map +1 -1
- package/dist/internal/event-log.js +4 -1
- package/dist/internal/event-mapper.d.ts.map +1 -1
- package/dist/internal/event-mapper.js +5 -1
- package/dist/internal/filesystem/nearest.d.ts +1 -1
- package/dist/internal/filesystem/nearest.d.ts.map +1 -1
- package/dist/internal/filesystem/scratch.d.ts +7 -6
- package/dist/internal/filesystem/scratch.d.ts.map +1 -1
- package/dist/internal/filesystem/scratch.js +13 -7
- package/dist/internal/filesystem/walk.d.ts +1 -1
- package/dist/internal/filesystem/walk.d.ts.map +1 -1
- package/dist/internal/filesystem/walk.js +1 -1
- package/dist/internal/host-otel.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +10 -0
- package/dist/internal/hosted-eval-cases.js +1 -1
- package/dist/internal/memory-dir.d.ts +8 -0
- package/dist/internal/memory-dir.d.ts.map +1 -0
- package/dist/internal/memory-dir.js +7 -0
- package/dist/internal/otel/collector.d.ts.map +1 -1
- package/dist/internal/otel/collector.js +61 -23
- package/dist/internal/otel/computer-use-attrs.d.ts +8 -3
- package/dist/internal/otel/computer-use-attrs.d.ts.map +1 -1
- package/dist/internal/otel/computer-use-attrs.js +10 -9
- package/dist/internal/otel/config.d.ts +1 -1
- package/dist/internal/otel/config.d.ts.map +1 -1
- package/dist/internal/otel/config.js +1 -1
- package/dist/internal/otel/runtime.d.ts +2 -6
- package/dist/internal/otel/runtime.d.ts.map +1 -1
- package/dist/internal/otel/runtime.js +54 -43
- package/dist/internal/otel/tool-error-class.d.ts +4 -0
- package/dist/internal/otel/tool-error-class.d.ts.map +1 -0
- package/dist/internal/otel/tool-error-class.js +36 -0
- package/dist/internal/tool-result.d.ts +2 -2
- package/dist/internal/tool-result.d.ts.map +1 -1
- package/dist/internal/tool-result.js +16 -11
- package/dist/internal/workspace-sync.js +1 -1
- package/dist/internal/workspace.js +1 -1
- package/dist/memory.d.ts +0 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +1 -2
- package/dist/playground/assets/index-CzV_Cybi.css +1 -0
- package/dist/playground/assets/index-XXYKgdQn.js +71 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +8 -3
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +10 -3
- package/docs/guides/hooks.md +3 -1
- package/docs/guides/opentelemetry.md +26 -13
- package/docs/reference/hooks.md +4 -1
- package/docs/reference/project-layout.md +4 -1
- package/docs/reference/sessions.md +1 -3
- package/docs/reference/subagents.md +2 -0
- package/docs/troubleshooting.md +1 -1
- package/package.json +11 -6
- package/skills/evals/SKILL.md +1 -1
- package/skills/framework-map/SKILL.md +3 -1
- package/skills/otel/SKILL.md +4 -3
- package/templates/agentic-owners/bot/lib/owners/matching.ts +4 -1
- package/templates/pr-autofixer/bot/tools/drive_pr.ts +1 -2
- package/dist/docs/assets/chunks/@localSearchIndexroot.gGwBYU3d.js +0 -1
- package/dist/docs/assets/chunks/channel.DQLJQMi3.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.j55aerUT.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.j55aerUT.js +0 -1
- package/dist/docs/assets/chunks/clone.XimRS84I.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.Ctv5WEMu.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.DZDndEXQ.js +0 -162
- package/dist/playground/assets/index-C77_FdOx.css +0 -1
- package/dist/playground/assets/index-CvzI2lhj.js +0 -71
- /package/dist/docs/assets/{reference_sessions.md.C_uzIWuy.lean.js → reference_sessions.md.C8FXuGwk.lean.js} +0 -0
- /package/dist/docs/assets/{troubleshooting.md.PCafNCb5.lean.js → troubleshooting.md.DFnoTDlQ.lean.js} +0 -0
package/dist/docs/index.html
CHANGED
|
@@ -9,42 +9,42 @@
|
|
|
9
9
|
<link rel="preload stylesheet" href="/docs/assets/style.Dwls12uf.css" as="style">
|
|
10
10
|
<link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
|
|
11
11
|
|
|
12
|
-
<script type="module" src="/docs/assets/app.
|
|
12
|
+
<script type="module" src="/docs/assets/app.BD1yvHJK.js"></script>
|
|
13
13
|
<link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
|
14
14
|
<link rel="modulepreload" href="/docs/assets/chunks/framework.BNw1pucY.js">
|
|
15
|
-
<link rel="modulepreload" href="/docs/assets/chunks/theme.
|
|
15
|
+
<link rel="modulepreload" href="/docs/assets/chunks/theme.DSJaK7i1.js">
|
|
16
16
|
<link rel="modulepreload" href="/docs/assets/chunks/katex.DkKDou_j.js">
|
|
17
|
-
<link rel="modulepreload" href="/docs/assets/chunks/dagre-KV5264BT.
|
|
18
|
-
<link rel="modulepreload" href="/docs/assets/chunks/cose-bilkent-S5V4N54A.
|
|
19
|
-
<link rel="modulepreload" href="/docs/assets/chunks/c4Diagram-AHTNJAMY.
|
|
20
|
-
<link rel="modulepreload" href="/docs/assets/chunks/flowDiagram-DWJPFMVM.
|
|
21
|
-
<link rel="modulepreload" href="/docs/assets/chunks/erDiagram-SMLLAGMA.
|
|
22
|
-
<link rel="modulepreload" href="/docs/assets/chunks/gitGraphDiagram-UUTBAWPF.
|
|
23
|
-
<link rel="modulepreload" href="/docs/assets/chunks/ganttDiagram-T4ZO3ILL.
|
|
24
|
-
<link rel="modulepreload" href="/docs/assets/chunks/infoDiagram-42DDH7IO.
|
|
25
|
-
<link rel="modulepreload" href="/docs/assets/chunks/pieDiagram-DEJITSTG.
|
|
26
|
-
<link rel="modulepreload" href="/docs/assets/chunks/quadrantDiagram-34T5L4WZ.
|
|
27
|
-
<link rel="modulepreload" href="/docs/assets/chunks/xychartDiagram-5P7HB3ND.
|
|
28
|
-
<link rel="modulepreload" href="/docs/assets/chunks/requirementDiagram-MS252O5E.
|
|
29
|
-
<link rel="modulepreload" href="/docs/assets/chunks/sequenceDiagram-FGHM5R23.
|
|
30
|
-
<link rel="modulepreload" href="/docs/assets/chunks/classDiagram-6PBFFD2Q.
|
|
31
|
-
<link rel="modulepreload" href="/docs/assets/chunks/classDiagram-v2-HSJHXN6E.
|
|
32
|
-
<link rel="modulepreload" href="/docs/assets/chunks/stateDiagram-FHFEXIEX.
|
|
33
|
-
<link rel="modulepreload" href="/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.
|
|
34
|
-
<link rel="modulepreload" href="/docs/assets/chunks/journeyDiagram-VCZTEJTY.
|
|
35
|
-
<link rel="modulepreload" href="/docs/assets/chunks/timeline-definition-GMOUNBTQ.
|
|
36
|
-
<link rel="modulepreload" href="/docs/assets/chunks/mindmap-definition-QFDTVHPH.
|
|
37
|
-
<link rel="modulepreload" href="/docs/assets/chunks/kanban-definition-6JOO6SKY.
|
|
38
|
-
<link rel="modulepreload" href="/docs/assets/chunks/sankeyDiagram-XADWPNL6.
|
|
39
|
-
<link rel="modulepreload" href="/docs/assets/chunks/diagram-TYMM5635.
|
|
40
|
-
<link rel="modulepreload" href="/docs/assets/chunks/diagram-MMDJMWI5.
|
|
41
|
-
<link rel="modulepreload" href="/docs/assets/chunks/blockDiagram-DXYQGD6D.
|
|
42
|
-
<link rel="modulepreload" href="/docs/assets/chunks/diagram-5BDNPKRD.
|
|
43
|
-
<link rel="modulepreload" href="/docs/assets/chunks/architectureDiagram-Q4EWVU46.
|
|
44
|
-
<link rel="modulepreload" href="/docs/assets/chunks/ishikawaDiagram-UXIWVN3A.
|
|
45
|
-
<link rel="modulepreload" href="/docs/assets/chunks/vennDiagram-DHZGUBPP.
|
|
46
|
-
<link rel="modulepreload" href="/docs/assets/chunks/diagram-G4DWMVQ6.
|
|
47
|
-
<link rel="modulepreload" href="/docs/assets/chunks/wardleyDiagram-NUSXRM2D.
|
|
17
|
+
<link rel="modulepreload" href="/docs/assets/chunks/dagre-KV5264BT.Wc53s510.js">
|
|
18
|
+
<link rel="modulepreload" href="/docs/assets/chunks/cose-bilkent-S5V4N54A.Bw9v-Pfp.js">
|
|
19
|
+
<link rel="modulepreload" href="/docs/assets/chunks/c4Diagram-AHTNJAMY.DkCQNehT.js">
|
|
20
|
+
<link rel="modulepreload" href="/docs/assets/chunks/flowDiagram-DWJPFMVM.B_te6Lre.js">
|
|
21
|
+
<link rel="modulepreload" href="/docs/assets/chunks/erDiagram-SMLLAGMA.2N-5dVK2.js">
|
|
22
|
+
<link rel="modulepreload" href="/docs/assets/chunks/gitGraphDiagram-UUTBAWPF.C1uOicx6.js">
|
|
23
|
+
<link rel="modulepreload" href="/docs/assets/chunks/ganttDiagram-T4ZO3ILL.CuNbn0Wd.js">
|
|
24
|
+
<link rel="modulepreload" href="/docs/assets/chunks/infoDiagram-42DDH7IO.Cw_LmsnD.js">
|
|
25
|
+
<link rel="modulepreload" href="/docs/assets/chunks/pieDiagram-DEJITSTG.Bwj1Zq54.js">
|
|
26
|
+
<link rel="modulepreload" href="/docs/assets/chunks/quadrantDiagram-34T5L4WZ.D5dcUqJC.js">
|
|
27
|
+
<link rel="modulepreload" href="/docs/assets/chunks/xychartDiagram-5P7HB3ND.Bq7gMvIU.js">
|
|
28
|
+
<link rel="modulepreload" href="/docs/assets/chunks/requirementDiagram-MS252O5E.CCP5yuT4.js">
|
|
29
|
+
<link rel="modulepreload" href="/docs/assets/chunks/sequenceDiagram-FGHM5R23.w545hYyz.js">
|
|
30
|
+
<link rel="modulepreload" href="/docs/assets/chunks/classDiagram-6PBFFD2Q.CAGM3Q8f.js">
|
|
31
|
+
<link rel="modulepreload" href="/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CAGM3Q8f.js">
|
|
32
|
+
<link rel="modulepreload" href="/docs/assets/chunks/stateDiagram-FHFEXIEX.CxcpDNk2.js">
|
|
33
|
+
<link rel="modulepreload" href="/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CjwS--3R.js">
|
|
34
|
+
<link rel="modulepreload" href="/docs/assets/chunks/journeyDiagram-VCZTEJTY.buwzIgeY.js">
|
|
35
|
+
<link rel="modulepreload" href="/docs/assets/chunks/timeline-definition-GMOUNBTQ.2WxkfxRf.js">
|
|
36
|
+
<link rel="modulepreload" href="/docs/assets/chunks/mindmap-definition-QFDTVHPH.BO5-vmxy.js">
|
|
37
|
+
<link rel="modulepreload" href="/docs/assets/chunks/kanban-definition-6JOO6SKY.yacNqa4l.js">
|
|
38
|
+
<link rel="modulepreload" href="/docs/assets/chunks/sankeyDiagram-XADWPNL6.BWAu-_Jq.js">
|
|
39
|
+
<link rel="modulepreload" href="/docs/assets/chunks/diagram-TYMM5635.BuJ0aD65.js">
|
|
40
|
+
<link rel="modulepreload" href="/docs/assets/chunks/diagram-MMDJMWI5.D30RWuU-.js">
|
|
41
|
+
<link rel="modulepreload" href="/docs/assets/chunks/blockDiagram-DXYQGD6D.Cpy78QaZ.js">
|
|
42
|
+
<link rel="modulepreload" href="/docs/assets/chunks/diagram-5BDNPKRD.DxJJrlh5.js">
|
|
43
|
+
<link rel="modulepreload" href="/docs/assets/chunks/architectureDiagram-Q4EWVU46.B1jE4xrG.js">
|
|
44
|
+
<link rel="modulepreload" href="/docs/assets/chunks/ishikawaDiagram-UXIWVN3A.DikoN3ai.js">
|
|
45
|
+
<link rel="modulepreload" href="/docs/assets/chunks/vennDiagram-DHZGUBPP.BGZwcK-Z.js">
|
|
46
|
+
<link rel="modulepreload" href="/docs/assets/chunks/diagram-G4DWMVQ6.Ldxa4MKP.js">
|
|
47
|
+
<link rel="modulepreload" href="/docs/assets/chunks/wardleyDiagram-NUSXRM2D.oryRmynQ.js">
|
|
48
48
|
<link rel="modulepreload" href="/docs/assets/chunks/virtual_mermaid-config.DDnGl6nM.js">
|
|
49
49
|
<link rel="modulepreload" href="/docs/assets/index.md.CAnsLl8D.lean.js">
|
|
50
50
|
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
<link rel="alternate" type="text/markdown" href="/docs/index.md">
|
|
54
54
|
</head>
|
|
55
55
|
<body>
|
|
56
|
-
<div id="app"><div class="Layout" data-v-5ebc75e4><!--[--><!--]--><!--[--><span tabindex="-1" data-v-7de63af3></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-7de63af3>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5ebc75e4 data-v-e8579816><div class="VPNavBar" data-v-e8579816 data-v-bbf4446f><div class="wrapper" data-v-bbf4446f><div class="container" data-v-bbf4446f><div class="title" data-v-bbf4446f><div class="VPNavBarTitle has-sidebar" data-v-bbf4446f data-v-ebd5f04e><a class="title" href="/docs/" data-v-ebd5f04e><!--[--><!--]--><!----><span data-v-ebd5f04e>Bot Development Kit (BDK)</span><!--[--><!--[--><!--[--><!--[--><span class="bdk-version" title="BDK 0.2.20 (@cursor/bdk package)" data-v-d89e5038>0.2.20</span><!--]--><!--]--><!--]--><!--]--></a></div></div><div class="content" data-v-bbf4446f><div class="content-body" data-v-bbf4446f><!--[--><!--]--><div class="VPNavBarSearch search" data-v-bbf4446f><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-bbf4446f data-v-7fa90d1c><span id="main-nav-aria-label" class="visually-hidden" data-v-7fa90d1c> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/quickstart.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Quickstart</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/guides/mcp-oauth.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Guides</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/guides/github.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Integrations</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/templates/security-reviewer.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Templates</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/reference/project-layout.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Reference</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-bbf4446f data-v-6a44a4fa><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6a44a4fa data-v-b541f24b data-v-a48af969><span class="check" data-v-a48af969><span class="icon" data-v-a48af969><!--[--><span class="vpi-sun sun" data-v-b541f24b></span><span class="vpi-moon moon" data-v-b541f24b></span><!--]--></span></span></button></div><!----><div class="VPFlyout VPNavBarExtra extra" data-v-bbf4446f data-v-8d21ceac data-v-269c0ea1><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-269c0ea1><span class="vpi-more-horizontal icon" data-v-269c0ea1></span></button><div class="menu" data-v-269c0ea1><div class="VPMenu" data-v-269c0ea1 data-v-ab92b832><!----><!--[--><!--[--><!----><div class="group" data-v-8d21ceac><div class="item appearance" data-v-8d21ceac><p class="label" data-v-8d21ceac>Appearance</p><div class="appearance-action" data-v-8d21ceac><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-8d21ceac data-v-b541f24b data-v-a48af969><span class="check" data-v-a48af969><span class="icon" data-v-a48af969><!--[--><span class="vpi-sun sun" data-v-b541f24b></span><span class="vpi-moon moon" data-v-b541f24b></span><!--]--></span></span></button></div></div></div><!----><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-bbf4446f data-v-efff335d><span class="container" data-v-efff335d><span class="top" data-v-efff335d></span><span class="middle" data-v-efff335d></span><span class="bottom" data-v-efff335d></span></span></button></div></div></div></div><div class="divider" data-v-bbf4446f><div class="divider-line" data-v-bbf4446f></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5ebc75e4 data-v-636a9279><div class="container" data-v-636a9279><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-636a9279><span class="vpi-align-left menu-icon" data-v-636a9279></span><span class="menu-text" data-v-636a9279>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-636a9279 data-v-ae38d8b4><button data-v-ae38d8b4>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5ebc75e4 data-v-f102723c><div class="curtain" data-v-f102723c></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-f102723c><span class="visually-hidden" id="sidebar-aria-label" data-v-f102723c> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 has-active" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Getting started</h2><!----></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/quickstart.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Building your first agent</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Integrations</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/github.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>GitHub</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/slack.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Slack</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/webhooks.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Webhooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/convert-automation.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Cursor Automations</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/opentelemetry.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>OpenTelemetry</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/gitlab.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>GitLab</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/bitbucket.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Bitbucket</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Extensions</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/extensions.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/cloud-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Cloud agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/grokbot-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Grok Bot agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/improve.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Self-improvement</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/jev.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Jev</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Guides</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/mcp-oauth.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>MCP</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/hooks.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/agent-to-agent.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Peer agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/deployment.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Deployment</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/export-grokbot.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Export a Grok Bot</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/migrate.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Early-alpha migration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/evals.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Evals</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/hillclimbing.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Hillclimbing</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/building-with-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Build with a coding agent</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/troubleshooting.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Troubleshooting</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Templates</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/grokbot-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Grok Bot agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/security-reviewer.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Security reviewer</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/thermo-review.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Thermo review</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/thermo-quality-review.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Thermo quality review</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/agentic-owners.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Agentic Approver</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/triage.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Triage agent</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Reference</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/project-layout.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Project layout</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/agent-config.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Agent config</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/instructions.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Instructions</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/tools.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Tools</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/prompt.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>prompt</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/skills.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Skills</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/connections.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>MCP Connections</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/subagents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Subagents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/channels.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Channels</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/schedules.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Schedules & reminders</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/hooks.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/memory.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Memory</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/evals.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Evals</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/artifacts.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Artifacts</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/sessions.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Sessions & streaming</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/playground.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Playground</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/cli.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>CLI</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/http-api.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>HTTP API</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5ebc75e4 data-v-4ab733be><div class="VPDoc has-sidebar has-aside" data-v-4ab733be data-v-4e7466dc><!--[--><!--]--><div class="container" data-v-4e7466dc><div class="aside" data-v-4e7466dc><div class="aside-curtain" data-v-4e7466dc></div><div class="aside-container" data-v-4e7466dc><div class="aside-content" data-v-4e7466dc><div class="VPDocAside" data-v-4e7466dc data-v-4f3f9a30><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-4f3f9a30 data-v-aacbb3fc><div class="content" data-v-aacbb3fc><div class="outline-marker" data-v-aacbb3fc></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-aacbb3fc>On this page</div><ul class="VPDocOutlineItem root" data-v-aacbb3fc data-v-0ffefe2a><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-4f3f9a30></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-4e7466dc><div class="content-container" data-v-4e7466dc><!--[--><!--]--><main class="main" data-v-4e7466dc><div style="position:relative;" class="vp-doc _docs_" data-v-4e7466dc><div><h1 id="bot-development-kit-bdk" tabindex="-1">Bot Development Kit (BDK) <a class="header-anchor" href="#bot-development-kit-bdk" aria-label="Permalink to "Bot Development Kit (BDK)""></a></h1><p>The Bot Development Kit (BDK) lets you define, test, and deploy agents as code. It uses the Cursor SDK harness that powers Bugbot, Security Review, Approval Bot, and Rollouts.</p><p>A BDK project is a folder of Markdown and TypeScript. Combine deterministic code with model judgment, then make the bot or agent available in source control, Slack, issue trackers, and Cursor.</p><h2 id="why-use-it" tabindex="-1">Why use it <a class="header-anchor" href="#why-use-it" aria-label="Permalink to "Why use it""></a></h2><ul><li><p><strong>Bots and agents live in your repo.</strong> Instructions, tools, and evals are files you review, version, and ship like the rest of your code.</p></li><li><p><strong>Cursor runs the loop.</strong> You write the instructions and tools. Your agent gets Cursor's models, tool calling, skills, MCP, and subagents. Each turn runs on your host.</p></li><li><p><strong>Use it where you work.</strong> Trigger a project from source-control events, Slack threads, custom webhooks, or schedules.</p></li><li><p><strong>Test normal TypeScript.</strong> Add evals and unit tests without a separate configuration language.</p></li><li><p><strong>Choose where it runs.</strong> Deploy to Cursor-managed hosting or run the process on your infrastructure.</p></li></ul><h2 id="when-to-use-bdk" tabindex="-1">When to use BDK <a class="header-anchor" href="#when-to-use-bdk" aria-label="Permalink to "When to use BDK""></a></h2><table tabindex="0"><thead><tr><th></th><th>Cursor Automations</th><th>Grok Bot</th><th>BDK</th></tr></thead><tbody><tr><td><strong>Use for</strong></td><td>Repeatable jobs driven by a prompt and a trigger</td><td>Interactive agents that work with you in Cursor</td><td>Agents that need custom code, integrations, tests, or deployment choices</td></tr><tr><td><strong>You define</strong></td><td>A prompt, model, and trigger in the dashboard</td><td>Instructions, skills, and connected tools in the app</td><td>A versioned Markdown and TypeScript project</td></tr><tr><td><strong>Where it runs</strong></td><td>Cursor-managed</td><td>Cursor-managed</td><td>Cursor-managed hosting or your infrastructure</td></tr><tr><td><strong>Choose it when</strong></td><td>The job fits a schedule or event trigger</td><td>You want an agent you can configure and talk to without creating a software project</td><td>You want deterministic code around model judgment and a project your team can review and test</td></tr></tbody></table><h2 id="architecture" tabindex="-1">Architecture <a class="header-anchor" href="#architecture" aria-label="Permalink to "Architecture""></a></h2><p>Define the project in source control. Run execution, inference, and sandboxing on Cursor infrastructure or on your own host.</p><p><img src="/docs/architecture.svg" alt="BDK architecture: you bring the agent as code, and the platform provides triggers, runtime, integrations, and operations"></p><h2 id="get-started" tabindex="-1">Get started <a class="header-anchor" href="#get-started" aria-label="Permalink to "Get started""></a></h2><p>Install <code>@cursor/bdk</code>, then start with <code>bdk init</code> and <code>bdk dev</code>.</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>npm install --global @cursor/bdk</span></span>
|
|
56
|
+
<div id="app"><div class="Layout" data-v-5ebc75e4><!--[--><!--]--><!--[--><span tabindex="-1" data-v-7de63af3></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-7de63af3>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5ebc75e4 data-v-e8579816><div class="VPNavBar" data-v-e8579816 data-v-bbf4446f><div class="wrapper" data-v-bbf4446f><div class="container" data-v-bbf4446f><div class="title" data-v-bbf4446f><div class="VPNavBarTitle has-sidebar" data-v-bbf4446f data-v-ebd5f04e><a class="title" href="/docs/" data-v-ebd5f04e><!--[--><!--]--><!----><span data-v-ebd5f04e>Bot Development Kit (BDK)</span><!--[--><!--[--><!--[--><!--[--><span class="bdk-version" title="BDK 0.2.22 (@cursor/bdk package)" data-v-d89e5038>0.2.22</span><!--]--><!--]--><!--]--><!--]--></a></div></div><div class="content" data-v-bbf4446f><div class="content-body" data-v-bbf4446f><!--[--><!--]--><div class="VPNavBarSearch search" data-v-bbf4446f><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-bbf4446f data-v-7fa90d1c><span id="main-nav-aria-label" class="visually-hidden" data-v-7fa90d1c> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/quickstart.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Quickstart</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/guides/mcp-oauth.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Guides</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/guides/github.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Integrations</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/templates/security-reviewer.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Templates</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/reference/project-layout.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Reference</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-bbf4446f data-v-6a44a4fa><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6a44a4fa data-v-b541f24b data-v-a48af969><span class="check" data-v-a48af969><span class="icon" data-v-a48af969><!--[--><span class="vpi-sun sun" data-v-b541f24b></span><span class="vpi-moon moon" data-v-b541f24b></span><!--]--></span></span></button></div><!----><div class="VPFlyout VPNavBarExtra extra" data-v-bbf4446f data-v-8d21ceac data-v-269c0ea1><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-269c0ea1><span class="vpi-more-horizontal icon" data-v-269c0ea1></span></button><div class="menu" data-v-269c0ea1><div class="VPMenu" data-v-269c0ea1 data-v-ab92b832><!----><!--[--><!--[--><!----><div class="group" data-v-8d21ceac><div class="item appearance" data-v-8d21ceac><p class="label" data-v-8d21ceac>Appearance</p><div class="appearance-action" data-v-8d21ceac><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-8d21ceac data-v-b541f24b data-v-a48af969><span class="check" data-v-a48af969><span class="icon" data-v-a48af969><!--[--><span class="vpi-sun sun" data-v-b541f24b></span><span class="vpi-moon moon" data-v-b541f24b></span><!--]--></span></span></button></div></div></div><!----><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-bbf4446f data-v-efff335d><span class="container" data-v-efff335d><span class="top" data-v-efff335d></span><span class="middle" data-v-efff335d></span><span class="bottom" data-v-efff335d></span></span></button></div></div></div></div><div class="divider" data-v-bbf4446f><div class="divider-line" data-v-bbf4446f></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5ebc75e4 data-v-636a9279><div class="container" data-v-636a9279><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-636a9279><span class="vpi-align-left menu-icon" data-v-636a9279></span><span class="menu-text" data-v-636a9279>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-636a9279 data-v-ae38d8b4><button data-v-ae38d8b4>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5ebc75e4 data-v-f102723c><div class="curtain" data-v-f102723c></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-f102723c><span class="visually-hidden" id="sidebar-aria-label" data-v-f102723c> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 has-active" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Getting started</h2><!----></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/quickstart.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Building your first agent</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Integrations</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/github.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>GitHub</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/slack.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Slack</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/webhooks.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Webhooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/convert-automation.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Cursor Automations</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/opentelemetry.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>OpenTelemetry</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/gitlab.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>GitLab</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/bitbucket.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Bitbucket</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Extensions</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/extensions.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/cloud-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Cloud agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/grokbot-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Grok Bot agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/improve.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Self-improvement</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/jev.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Jev</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Guides</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/mcp-oauth.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>MCP</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/hooks.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/agent-to-agent.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Peer agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/deployment.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Deployment</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/export-grokbot.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Export a Grok Bot</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/migrate.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Early-alpha migration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/evals.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Evals</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/hillclimbing.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Hillclimbing</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/building-with-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Build with a coding agent</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/troubleshooting.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Troubleshooting</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Templates</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/grokbot-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Grok Bot agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/security-reviewer.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Security reviewer</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/thermo-review.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Thermo review</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/thermo-quality-review.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Thermo quality review</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/agentic-owners.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Agentic Approver</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/triage.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Triage agent</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Reference</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/project-layout.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Project layout</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/agent-config.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Agent config</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/instructions.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Instructions</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/tools.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Tools</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/prompt.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>prompt</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/skills.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Skills</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/connections.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>MCP Connections</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/subagents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Subagents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/channels.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Channels</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/schedules.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Schedules & reminders</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/hooks.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/memory.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Memory</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/evals.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Evals</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/artifacts.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Artifacts</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/sessions.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Sessions & streaming</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/playground.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Playground</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/cli.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>CLI</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/http-api.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>HTTP API</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5ebc75e4 data-v-4ab733be><div class="VPDoc has-sidebar has-aside" data-v-4ab733be data-v-4e7466dc><!--[--><!--]--><div class="container" data-v-4e7466dc><div class="aside" data-v-4e7466dc><div class="aside-curtain" data-v-4e7466dc></div><div class="aside-container" data-v-4e7466dc><div class="aside-content" data-v-4e7466dc><div class="VPDocAside" data-v-4e7466dc data-v-4f3f9a30><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-4f3f9a30 data-v-aacbb3fc><div class="content" data-v-aacbb3fc><div class="outline-marker" data-v-aacbb3fc></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-aacbb3fc>On this page</div><ul class="VPDocOutlineItem root" data-v-aacbb3fc data-v-0ffefe2a><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-4f3f9a30></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-4e7466dc><div class="content-container" data-v-4e7466dc><!--[--><!--]--><main class="main" data-v-4e7466dc><div style="position:relative;" class="vp-doc _docs_" data-v-4e7466dc><div><h1 id="bot-development-kit-bdk" tabindex="-1">Bot Development Kit (BDK) <a class="header-anchor" href="#bot-development-kit-bdk" aria-label="Permalink to "Bot Development Kit (BDK)""></a></h1><p>The Bot Development Kit (BDK) lets you define, test, and deploy agents as code. It uses the Cursor SDK harness that powers Bugbot, Security Review, Approval Bot, and Rollouts.</p><p>A BDK project is a folder of Markdown and TypeScript. Combine deterministic code with model judgment, then make the bot or agent available in source control, Slack, issue trackers, and Cursor.</p><h2 id="why-use-it" tabindex="-1">Why use it <a class="header-anchor" href="#why-use-it" aria-label="Permalink to "Why use it""></a></h2><ul><li><p><strong>Bots and agents live in your repo.</strong> Instructions, tools, and evals are files you review, version, and ship like the rest of your code.</p></li><li><p><strong>Cursor runs the loop.</strong> You write the instructions and tools. Your agent gets Cursor's models, tool calling, skills, MCP, and subagents. Each turn runs on your host.</p></li><li><p><strong>Use it where you work.</strong> Trigger a project from source-control events, Slack threads, custom webhooks, or schedules.</p></li><li><p><strong>Test normal TypeScript.</strong> Add evals and unit tests without a separate configuration language.</p></li><li><p><strong>Choose where it runs.</strong> Deploy to Cursor-managed hosting or run the process on your infrastructure.</p></li></ul><h2 id="when-to-use-bdk" tabindex="-1">When to use BDK <a class="header-anchor" href="#when-to-use-bdk" aria-label="Permalink to "When to use BDK""></a></h2><table tabindex="0"><thead><tr><th></th><th>Cursor Automations</th><th>Grok Bot</th><th>BDK</th></tr></thead><tbody><tr><td><strong>Use for</strong></td><td>Repeatable jobs driven by a prompt and a trigger</td><td>Interactive agents that work with you in Cursor</td><td>Agents that need custom code, integrations, tests, or deployment choices</td></tr><tr><td><strong>You define</strong></td><td>A prompt, model, and trigger in the dashboard</td><td>Instructions, skills, and connected tools in the app</td><td>A versioned Markdown and TypeScript project</td></tr><tr><td><strong>Where it runs</strong></td><td>Cursor-managed</td><td>Cursor-managed</td><td>Cursor-managed hosting or your infrastructure</td></tr><tr><td><strong>Choose it when</strong></td><td>The job fits a schedule or event trigger</td><td>You want an agent you can configure and talk to without creating a software project</td><td>You want deterministic code around model judgment and a project your team can review and test</td></tr></tbody></table><h2 id="architecture" tabindex="-1">Architecture <a class="header-anchor" href="#architecture" aria-label="Permalink to "Architecture""></a></h2><p>Define the project in source control. Run execution, inference, and sandboxing on Cursor infrastructure or on your own host.</p><p><img src="/docs/architecture.svg" alt="BDK architecture: you bring the agent as code, and the platform provides triggers, runtime, integrations, and operations"></p><h2 id="get-started" tabindex="-1">Get started <a class="header-anchor" href="#get-started" aria-label="Permalink to "Get started""></a></h2><p>Install <code>@cursor/bdk</code>, then start with <code>bdk init</code> and <code>bdk dev</code>.</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>npm install --global @cursor/bdk</span></span>
|
|
57
57
|
<span class="line"><span>bdk init ./my-bot</span></span>
|
|
58
58
|
<span class="line"><span>cd my-bot</span></span>
|
|
59
59
|
<span class="line"><span>bdk dev</span></span></code></pre></div><p>Open the project in Cursor. BDK projects use <code>bot/</code>.</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>my-bot/</span></span>
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
<span class="line"><span>│ └── audit.ts # observe session events</span></span>
|
|
81
81
|
<span class="line"><span>└── evals/</span></span>
|
|
82
82
|
<span class="line"><span> └── readiness.eval.ts # regression checks</span></span></code></pre></div><p>Describe your bot or agent in Cursor, or edit the files yourself.</p><h2 id="next-steps" tabindex="-1">Next steps <a class="header-anchor" href="#next-steps" aria-label="Permalink to "Next steps""></a></h2><ul><li><p><a href="./quickstart.html">Build your first PR reviewer</a>: a working GitHub reviewer, one step at a time.</p></li><li><p>Start from a template: <a href="./templates/grokbot-agents.html">Grok Bot agents</a>, <a href="./templates/security-reviewer.html">security reviewer</a>, <a href="./templates/thermo-review.html">Thermo review</a>, <a href="./templates/thermo-quality-review.html">Thermo quality review</a>, <a href="./templates/agentic-owners.html">owners-policy approver</a>, <a href="./templates/triage.html">issue triager</a>.</p></li><li><p><a href="./guides/convert-automation.html">Convert a Cursor Automation</a>: export an Automation from the dashboard into a project you own.</p></li><li><p><a href="./guides/export-grokbot.html">Export a Grok Bot</a>: turn a recipe into a BDK project and review what needs manual setup.</p></li><li><p><a href="./building-with-agents.html">Build agents with agents</a>: hand the build to a coding agent with the package's bundled skills.</p></li><li><p><a href="./reference/project-layout.html">Project layout</a> and <a href="./reference/cli.html">CLI</a>: every folder and every command.</p></li></ul></div></div></main><footer class="VPDocFooter" data-v-4e7466dc data-v-5e6607d6><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-5e6607d6><span class="visually-hidden" id="doc-footer-aria-label" data-v-5e6607d6>Pager</span><div class="pager" data-v-5e6607d6><!----></div><div class="pager" data-v-5e6607d6><a class="VPLink link pager-link next" href="/docs/quickstart.html" data-v-5e6607d6><!--[--><span class="desc" data-v-5e6607d6>Next page</span><span class="title" data-v-5e6607d6>Building your first agent</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
|
|
83
|
-
<script>window.__VP_HASH_MAP__=JSON.parse("{\"building-with-agents.md\":\"FZXrY8Nk\",\"deployment.md\":\"
|
|
83
|
+
<script>window.__VP_HASH_MAP__=JSON.parse("{\"building-with-agents.md\":\"FZXrY8Nk\",\"deployment.md\":\"CtSJ6sF9\",\"evals.md\":\"CHR34K1Y\",\"guides_agent-to-agent.md\":\"CwL5cwuE\",\"guides_bitbucket.md\":\"CKUayYtD\",\"guides_cloud-agents.md\":\"CBK7W0-O\",\"guides_convert-automation.md\":\"DMEX9nF-\",\"guides_export-grokbot.md\":\"qo5bxi4h\",\"guides_github.md\":\"TuNiZAOQ\",\"guides_gitlab.md\":\"CtNI4fSH\",\"guides_grokbot-agents.md\":\"BwAykJ7U\",\"guides_hooks.md\":\"Bfj0pK91\",\"guides_improve.md\":\"CZKVt1cT\",\"guides_jev.md\":\"D7XH4JH3\",\"guides_mcp-oauth.md\":\"BM_eFC0L\",\"guides_migrate.md\":\"DZBL7dqT\",\"guides_opentelemetry.md\":\"ByW1Fs7b\",\"guides_slack.md\":\"Bn-WupSE\",\"guides_webhooks.md\":\"Cpdc3BDX\",\"hillclimbing.md\":\"Dxvd-0gT\",\"index.md\":\"CAnsLl8D\",\"quickstart.md\":\"D8JDfkKO\",\"reference_agent-config.md\":\"DYA6ge6t\",\"reference_artifacts.md\":\"DLV9MZES\",\"reference_channels.md\":\"DYg0CLud\",\"reference_cli.md\":\"Bkrsce22\",\"reference_connections.md\":\"BJE2Zllp\",\"reference_evals.md\":\"Ccwp4x3o\",\"reference_extensions.md\":\"OUacPetl\",\"reference_hooks.md\":\"B1jq3oGl\",\"reference_http-api.md\":\"Dji-DD_Z\",\"reference_instructions.md\":\"DrcHZXig\",\"reference_memory.md\":\"BwyJXYZe\",\"reference_playground.md\":\"q4MI-0td\",\"reference_project-layout.md\":\"mFcS8yDD\",\"reference_prompt.md\":\"DqPh71XN\",\"reference_schedules.md\":\"03Ryy9ca\",\"reference_sessions.md\":\"C8FXuGwk\",\"reference_skills.md\":\"C2GWh7g8\",\"reference_subagents.md\":\"ChNGh6HK\",\"reference_tools.md\":\"08XR7lIl\",\"templates_agentic-owners.md\":\"CvmABtia\",\"templates_grokbot-agents.md\":\"DgpPEs7B\",\"templates_security-reviewer.md\":\"Gh6EF9Us\",\"templates_thermo-quality-review.md\":\"B77UyTrX\",\"templates_thermo-review.md\":\"DRJ7mC5U\",\"templates_triage.md\":\"CNN6b0JZ\",\"troubleshooting.md\":\"DFnoTDlQ\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Bot Development Kit (BDK)\",\"description\":\"Build and serve bots and agents from versioned Markdown and TypeScript.\",\"base\":\"/docs/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"sdkVersion\":\"0.2.22\",\"nav\":[{\"text\":\"Quickstart\",\"link\":\"/quickstart\"},{\"text\":\"Guides\",\"link\":\"/guides/mcp-oauth\"},{\"text\":\"Integrations\",\"link\":\"/guides/github\"},{\"text\":\"Templates\",\"link\":\"/templates/security-reviewer\"},{\"text\":\"Reference\",\"link\":\"/reference/project-layout\"}],\"search\":{\"provider\":\"local\"},\"outline\":{\"level\":[2,3]},\"sidebar\":[{\"text\":\"Getting started\",\"items\":[{\"text\":\"Overview\",\"link\":\"/\"},{\"text\":\"Building your first agent\",\"link\":\"/quickstart\"}]},{\"text\":\"Integrations\",\"collapsed\":false,\"items\":[{\"text\":\"GitHub\",\"link\":\"/guides/github\"},{\"text\":\"Slack\",\"link\":\"/guides/slack\"},{\"text\":\"Webhooks\",\"link\":\"/guides/webhooks\"},{\"text\":\"Cursor Automations\",\"link\":\"/guides/convert-automation\"},{\"text\":\"OpenTelemetry\",\"link\":\"/guides/opentelemetry\"},{\"text\":\"GitLab\",\"link\":\"/guides/gitlab\"},{\"text\":\"Bitbucket\",\"link\":\"/guides/bitbucket\"}]},{\"text\":\"Extensions\",\"collapsed\":false,\"items\":[{\"text\":\"Overview\",\"link\":\"/reference/extensions\"},{\"text\":\"Cloud agents\",\"link\":\"/guides/cloud-agents\"},{\"text\":\"Grok Bot agents\",\"link\":\"/guides/grokbot-agents\"},{\"text\":\"Self-improvement\",\"link\":\"/guides/improve\"},{\"text\":\"Jev\",\"link\":\"/guides/jev\"}]},{\"text\":\"Guides\",\"collapsed\":false,\"items\":[{\"text\":\"MCP\",\"link\":\"/guides/mcp-oauth\"},{\"text\":\"Hooks\",\"link\":\"/guides/hooks\"},{\"text\":\"Peer agents\",\"link\":\"/guides/agent-to-agent\"},{\"text\":\"Deployment\",\"link\":\"/deployment\"},{\"text\":\"Export a Grok Bot\",\"link\":\"/guides/export-grokbot\"},{\"text\":\"Early-alpha migration\",\"link\":\"/guides/migrate\"},{\"text\":\"Evals\",\"link\":\"/evals\"},{\"text\":\"Hillclimbing\",\"link\":\"/hillclimbing\"},{\"text\":\"Build with a coding agent\",\"link\":\"/building-with-agents\"},{\"text\":\"Troubleshooting\",\"link\":\"/troubleshooting\"}]},{\"text\":\"Templates\",\"collapsed\":false,\"items\":[{\"text\":\"Grok Bot agents\",\"link\":\"/templates/grokbot-agents\"},{\"text\":\"Security reviewer\",\"link\":\"/templates/security-reviewer\"},{\"text\":\"Thermo review\",\"link\":\"/templates/thermo-review\"},{\"text\":\"Thermo quality review\",\"link\":\"/templates/thermo-quality-review\"},{\"text\":\"Agentic Approver\",\"link\":\"/templates/agentic-owners\"},{\"text\":\"Triage agent\",\"link\":\"/templates/triage\"}]},{\"text\":\"Reference\",\"collapsed\":false,\"items\":[{\"text\":\"Project layout\",\"link\":\"/reference/project-layout\"},{\"text\":\"Agent config\",\"link\":\"/reference/agent-config\"},{\"text\":\"Instructions\",\"link\":\"/reference/instructions\"},{\"text\":\"Tools\",\"link\":\"/reference/tools\"},{\"text\":\"prompt\",\"link\":\"/reference/prompt\"},{\"text\":\"Skills\",\"link\":\"/reference/skills\"},{\"text\":\"MCP Connections\",\"link\":\"/reference/connections\"},{\"text\":\"Subagents\",\"link\":\"/reference/subagents\"},{\"text\":\"Channels\",\"link\":\"/reference/channels\"},{\"text\":\"Schedules & reminders\",\"link\":\"/reference/schedules\"},{\"text\":\"Hooks\",\"link\":\"/reference/hooks\"},{\"text\":\"Memory\",\"link\":\"/reference/memory\"},{\"text\":\"Evals\",\"link\":\"/reference/evals\"},{\"text\":\"Artifacts\",\"link\":\"/reference/artifacts\"},{\"text\":\"Sessions & streaming\",\"link\":\"/reference/sessions\"},{\"text\":\"Playground\",\"link\":\"/reference/playground\"},{\"text\":\"CLI\",\"link\":\"/reference/cli\"},{\"text\":\"HTTP API\",\"link\":\"/reference/http-api\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
|
84
84
|
|
|
85
85
|
</body>
|
|
86
86
|
</html>
|
package/dist/docs/llms-full.txt
CHANGED
|
@@ -210,13 +210,20 @@ session affinity, and local development.
|
|
|
210
210
|
|
|
211
211
|
A hosted deployment stores a snapshot of its source repository, along
|
|
212
212
|
with the sessions, KV, files, and logs the agent creates for your team.
|
|
213
|
-
Whether
|
|
214
|
-
you, which is your team's setting when the team
|
|
213
|
+
Whether managed hosting is available depends on the privacy setting
|
|
214
|
+
that applies to you, which is your team's setting when the team
|
|
215
|
+
enforces one:
|
|
215
216
|
|
|
216
217
|
| Privacy setting | Managed hosting |
|
|
217
218
|
| --- | --- |
|
|
218
219
|
| Privacy Mode | Available. Cursor stores deployment data the same way it does without Privacy Mode, and the agent's model requests get the same Privacy Mode handling as your other Cursor requests. |
|
|
219
|
-
| Privacy Mode (Legacy) | Not available. `deploy
|
|
220
|
+
| Privacy Mode (Legacy) | Not available. `deploy`, a hosted session, and an eval run all refuse. |
|
|
221
|
+
|
|
222
|
+
`deploy` refuses because a deployment stores a snapshot of your
|
|
223
|
+
repository. A hosted session refuses, and Cursor does not store the
|
|
224
|
+
message. An eval run refuses because it stores prompts and replies.
|
|
225
|
+
Switch to Privacy Mode, or ask a team admin when your team enforces
|
|
226
|
+
this setting.
|
|
220
227
|
|
|
221
228
|
The stored data includes the [memory](/docs/reference/memory.md) journal,
|
|
222
229
|
which `bdk init` turns on. The journal holds user messages and the
|
|
@@ -2587,9 +2594,11 @@ replay recorded events into hooks.
|
|
|
2587
2594
|
| --- | --- |
|
|
2588
2595
|
| Add context before the model | `instructions.md`, skills, or `workspaceFiles` |
|
|
2589
2596
|
| Deliver to Slack or a PR | Channel [`events`](/docs/reference/channels.md#events) or packs |
|
|
2590
|
-
| Gate final assistant text | `defineResult` |
|
|
2591
2597
|
| Gate behavior | [Evals](/docs/evals.md) |
|
|
2592
2598
|
|
|
2599
|
+
To act on a turn's decision, have the model record it with an authored
|
|
2600
|
+
[tool](/docs/reference/tools.md), then act on it from a `turn.completed` hook.
|
|
2601
|
+
|
|
2593
2602
|
[Cursor Agent hooks](https://cursor.com/docs/agent/hooks) in
|
|
2594
2603
|
`.cursor/hooks.json` are a different product. They can observe, block, or
|
|
2595
2604
|
modify the local agent loop.
|
|
@@ -3360,7 +3369,9 @@ await serve(".", {
|
|
|
3360
3369
|
|
|
3361
3370
|
Use environment variables when you start the agent with
|
|
3362
3371
|
`bdk serve`. Use `serve({ otel })` when your TypeScript
|
|
3363
|
-
application starts the server itself.
|
|
3372
|
+
application starts the server itself. When that application
|
|
3373
|
+
already uses OpenTelemetry, BDK sends its traces, metrics, and
|
|
3374
|
+
logs to the collector configured here.
|
|
3364
3375
|
|
|
3365
3376
|
## Follow one conversation
|
|
3366
3377
|
|
|
@@ -3383,19 +3394,29 @@ turn: agent_sdk.turn
|
|
|
3383
3394
|
A conversation can produce several turn traces, so use the session ID
|
|
3384
3395
|
as the join key instead of expecting one long-lived session span.
|
|
3385
3396
|
|
|
3397
|
+
### Subagents
|
|
3398
|
+
|
|
3399
|
+
A subagent's tool calls are `agent_sdk.tool` spans under its
|
|
3400
|
+
`agent_sdk.subagent` span. Its `reasoning.completed` and
|
|
3401
|
+
`message.completed` events sit on that span too, so the subagent span
|
|
3402
|
+
shows where its time went. Time between two tool spans is the model
|
|
3403
|
+
choosing the next step. A subagent that fails or is cancelled ends its
|
|
3404
|
+
span with ERROR status when it stops.
|
|
3405
|
+
|
|
3386
3406
|
### Computer use
|
|
3387
3407
|
|
|
3388
|
-
Each computer use
|
|
3389
|
-
`cursor.tool.name` set to `computerUse
|
|
3390
|
-
subagent
|
|
3391
|
-
describe
|
|
3408
|
+
Each computer use action is an `agent_sdk.tool` span with
|
|
3409
|
+
`cursor.tool.name` set to `computerUse`, under the computer use
|
|
3410
|
+
subagent's span. A failed action has ERROR status. These attributes
|
|
3411
|
+
describe the action without typed text, coordinates, or screenshots:
|
|
3392
3412
|
|
|
3393
3413
|
| Attribute | Value |
|
|
3394
3414
|
| --- | --- |
|
|
3395
|
-
| `agent_sdk.computer.actions` |
|
|
3396
|
-
| `agent_sdk.computer.
|
|
3397
|
-
| `agent_sdk.computer.
|
|
3398
|
-
|
|
3415
|
+
| `agent_sdk.computer.actions` | The action type, such as `click`, `type`, or `screenshot` |
|
|
3416
|
+
| `agent_sdk.computer.executor_duration_ms` | Time the desktop took to run the action and capture the screen |
|
|
3417
|
+
| `agent_sdk.computer.settle_ms` | Part of that time spent waiting for the screen to settle |
|
|
3418
|
+
|
|
3419
|
+
The two durations appear only on actions that succeed.
|
|
3399
3420
|
|
|
3400
3421
|
To export the full actions, turn on tool content as shown in
|
|
3401
3422
|
[Control what leaves the process](#control-what-leaves-the-process).
|
|
@@ -3452,10 +3473,11 @@ The first metrics to look for are `cursor.token.usage`,
|
|
|
3452
3473
|
|
|
3453
3474
|
## Control what leaves the process
|
|
3454
3475
|
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3476
|
+
Traces include structure, tool names, usage metrics, and span
|
|
3477
|
+
status. A failed tool's status includes a short failure reason.
|
|
3478
|
+
A tool or subagent that is still open when the turn ends gets
|
|
3479
|
+
ERROR status with the reason `no result`. User prompts, tool
|
|
3480
|
+
arguments, and full tool results stay off the wire until you opt in.
|
|
3459
3481
|
|
|
3460
3482
|
Turn on logs first, then opt into prompt or tool content separately:
|
|
3461
3483
|
|
|
@@ -7175,9 +7197,12 @@ All three consume the same stream, for different jobs:
|
|
|
7175
7197
|
| Add context before the model runs | The channel's `send` message and `workspaceFiles`, `instructions.md`, skills, or `sandbox/workspace/` seed files |
|
|
7176
7198
|
| Reply on Slack, comment on a PR, or post any other delivery | The channel's `events` map, or the Slack and GitHub packs |
|
|
7177
7199
|
| Show PR progress (merge-box check, sticky banner) | `githubChannel({ progress: { commitStatus, banner } })`; see [GitHub agents](/docs/guides/github.md) |
|
|
7178
|
-
| Act on the final assistant text, reject it for a same-turn repair, or fail a bad turn | `defineResult` |
|
|
7179
7200
|
| Gate a change on behavior | [Evals](/docs/evals.md) |
|
|
7180
7201
|
|
|
7202
|
+
To act on a turn's decision, such as a label or a ticket, have the model
|
|
7203
|
+
record it with an authored [tool](/docs/reference/tools.md). A `turn.completed` hook then
|
|
7204
|
+
reads the recorded decision and acts on it through `ctx.host`.
|
|
7205
|
+
|
|
7181
7206
|
## Test a hook
|
|
7182
7207
|
|
|
7183
7208
|
A hook definition is a plain object, so a unit test calls
|
|
@@ -7735,12 +7760,15 @@ Each path maps to a capability and a reference page.
|
|
|
7735
7760
|
| `channels/*.ts` | HTTP surfaces beyond the built-in session API; `slack.ts` and `github.ts` use the platform packs | [Channels](/docs/reference/channels.md) |
|
|
7736
7761
|
| `hooks/*.ts` | Observe-only event subscribers, never fatal | [Hooks](/docs/reference/hooks.md) |
|
|
7737
7762
|
| `artifacts.ts` | `defineArtifacts` kinds, the `tag_artifact` opt-in, and retention | [Artifacts](/docs/reference/artifacts.md) |
|
|
7738
|
-
| `result.ts` | `defineResult` host `commit` on the final assistant text (`throw` or `ctx.reject`) | None |
|
|
7739
7763
|
| `schedules/*` | Cron-driven runs (UTC, 5-field; never auto-fire under `--dev`) | [Schedules](/docs/reference/schedules.md) |
|
|
7740
7764
|
| `reminders/*.ts` | Named reminder handlers that stay armed across restarts | [Schedules](/docs/reference/schedules.md#reminders) |
|
|
7741
7765
|
| `sandbox/workspace/**` | Seed files copied into each local session workspace | [Sessions](/docs/reference/sessions.md#local-session-workspace) |
|
|
7742
7766
|
| `lib/` | Import-only shared code, never discovered | None |
|
|
7743
7767
|
|
|
7768
|
+
Discovery rejects a `bot/result.ts` file. To act on a turn's decision, have
|
|
7769
|
+
the model record it with an authored [tool](/docs/reference/tools.md), then act on it from a
|
|
7770
|
+
`turn.completed` [hook](/docs/reference/hooks.md).
|
|
7771
|
+
|
|
7744
7772
|
Evals use project-root paths:
|
|
7745
7773
|
|
|
7746
7774
|
| Project-root path | What it is | Reference |
|
|
@@ -8115,9 +8143,7 @@ within one session. The `at` field is an ISO-8601 timestamp.
|
|
|
8115
8143
|
Pair `actions.requested` with `actions.completed` for each model-step
|
|
8116
8144
|
batch. `action.result` is the live per-call envelope. Read
|
|
8117
8145
|
`turn.completed.data.usage` for input, output, and
|
|
8118
|
-
cache token counts.
|
|
8119
|
-
`commit` throws, the turn has no assistant text, or `ctx.reject(message)`
|
|
8120
|
-
doesn't lead to an accepted revision.
|
|
8146
|
+
cache token counts.
|
|
8121
8147
|
|
|
8122
8148
|
## Stream or replay events
|
|
8123
8149
|
|
|
@@ -8270,6 +8296,8 @@ mid-turn. Each one lives under `bot/subagents/<id>/` with a required
|
|
|
8270
8296
|
`agent.ts`. Add `instructions.md` or inline `instructions` in `agent.ts`
|
|
8271
8297
|
for a custom prompt. The parent model delegates through the `task` tool,
|
|
8272
8298
|
and the stream records `subagent.called` and `subagent.completed`.
|
|
8299
|
+
`subagent.completed` has `isError: true` when the subagent failed or was
|
|
8300
|
+
cancelled.
|
|
8273
8301
|
|
|
8274
8302
|
```text
|
|
8275
8303
|
bot/subagents/researcher/
|
|
@@ -9214,7 +9242,7 @@ Match the visible symptom below.
|
|
|
9214
9242
|
| `run --prod --session <sessionId>` reports the session belongs to another channel | `--session` continues only sessions that `run --prod` or `session --prod` started. Reach Slack, SCM, and custom-route sessions through their own channel. |
|
|
9215
9243
|
| A custom route returns `202` with no body | Expected on managed hosting. The handler runs after the response, so deliver results from the channel. See [Route responses](/docs/reference/channels.md#route-responses). |
|
|
9216
9244
|
| 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. |
|
|
9217
|
-
| `deploy
|
|
9245
|
+
| `deploy`, a hosted session, or an eval run says it is not available with Privacy Mode (Legacy) | Switch to Privacy Mode, or ask a team admin if your team enforces this setting. A refused session does not store the message. See [Privacy Mode](/docs/deployment.md#privacy-mode). |
|
|
9218
9246
|
| `deploy` says persistent deployments are limited to 1 per team | Another deployment of the team already sets `persistent: true`. Remove the setting from one agent, or delete that deployment. |
|
|
9219
9247
|
| A schedule does not fire on the hosted deployment | Make sure the deployment is running and its release has the schedule. Deploy again with `@cursor/bdk` 0.2.14 or newer. |
|
|
9220
9248
|
| A request to a custom route gets `429` | The deployment received more requests than its limit. Wait for the time in `Retry-After`, then send the request again. |
|