@cursor/bdk 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/agent-serve.js +9 -1
- package/dist/channels/slack/attachments.d.ts +2 -1
- package/dist/channels/slack/attachments.d.ts.map +1 -1
- package/dist/channels/slack/attachments.js +19 -9
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +26 -24
- package/dist/channels/slack/thread-context.d.ts +21 -11
- package/dist/channels/slack/thread-context.d.ts.map +1 -1
- package/dist/channels/slack/thread-context.js +75 -27
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.BOIHhrKi.js → app.4kQ8Db_q.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.CvuAJ0My.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.D49zVZqM.js → VPLocalSearchBox.DY1RwB8Q.js} +1 -1
- package/dist/docs/assets/chunks/{arc.hmjb-sc4.js → arc.CxE_fSPK.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CxEI1KqM.js → architectureDiagram-Q4EWVU46.CPX426ui.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.DHHvBWoV.js → baseUniq.CB52JrKG.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DnXW-3bu.js → blockDiagram-DXYQGD6D.J0cNaQCL.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.e-47O2jM.js → c4Diagram-AHTNJAMY.DJn3vEGT.js} +1 -1
- package/dist/docs/assets/chunks/channel.BoNycAoN.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.3ry4pYXB.js → chunk-4BX2VUAB.Dao618F6.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DGIZFRx6.js → chunk-4TB4RGXK.QW8Rhjai.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.DKBnqg9U.js → chunk-55IACEB6.DfRLLKF_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BIU8Ue5k.js → chunk-EDXVE4YY.CIV2ApKQ.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DP-TFhjI.js → chunk-FMBD7UC4.BEheSuxp.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Ux0OYj5v.js → chunk-OYMX7WX6.CUN88ENB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BzHMwYox.js → chunk-QZHKN3VN.CgqCs8b_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.D4OGAsSP.js → chunk-YZCP3GAM.iCH0nnTJ.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/clone.Db22cH_-.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Jq_7BUNx.js → cose-bilkent-S5V4N54A.BLcUxhWE.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.Di-skR2x.js → dagre-KV5264BT.Ep7LofOm.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DeREHIdH.js → diagram-5BDNPKRD.Bzf4GSQ4.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.C7Kcqxro.js → diagram-G4DWMVQ6.DD6Jh-eM.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BK3eohyo.js → diagram-MMDJMWI5.oOIl8bWd.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.C6TyymXT.js → diagram-TYMM5635.DHs85Ade.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DYGG-gGx.js → erDiagram-SMLLAGMA.BIb5ghCk.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.C9nBcSV4.js → flowDiagram-DWJPFMVM.DV4paY9k.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.wAg_ymsp.js → ganttDiagram-T4ZO3ILL.AyEKA6_v.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.B87j9Oeg.js → gitGraphDiagram-UUTBAWPF.BltiCDFo.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CuFMj31w.js → graph.DzuEYGdC.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.P_mLGumP.js → infoDiagram-42DDH7IO.BV2l981J.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DyuL_MsT.js → ishikawaDiagram-UXIWVN3A.BA4Izf-m.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CtP09IoJ.js → journeyDiagram-VCZTEJTY.DjaFbFS3.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BoeSYPZo.js → kanban-definition-6JOO6SKY.CfTFieDs.js} +1 -1
- package/dist/docs/assets/chunks/{layout.B0lMMtNo.js → layout.DzfWqTBV.js} +1 -1
- package/dist/docs/assets/chunks/{linear.HxRBiAFX.js → linear.BO6mpulV.js} +1 -1
- package/dist/docs/assets/chunks/{min.BGlFFHwS.js → min.BGgTadgT.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.JyLBD9M8.js → mindmap-definition-QFDTVHPH.DPuIXVWY.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DnSmNZF8.js → pieDiagram-DEJITSTG.BOnl3bBg.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CUCnbfCa.js → quadrantDiagram-34T5L4WZ.DNB6Ckdc.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.py0IVUn5.js → requirementDiagram-MS252O5E.D5-Qo7vb.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.Bkc-HWYp.js → sankeyDiagram-XADWPNL6.8t65cesf.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Dqn8Mlv2.js → sequenceDiagram-FGHM5R23.CaG07BdS.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.JikkoQUU.js → stateDiagram-FHFEXIEX.TKOweTB6.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CuqmyQc4.js +1 -0
- package/dist/docs/assets/chunks/{theme.b6HQ6zG_.js → theme.Dx-JhpTB.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BvpSXiBj.js → timeline-definition-GMOUNBTQ.fE53zQ2s.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CU7MVnZx.js → vennDiagram-DHZGUBPP.DJsZZaJg.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.BKwC4ctG.js → wardley-RL74JXVD.844kyrjl.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.BfaF6Uhe.js → wardleyDiagram-NUSXRM2D.CMZ-Ru_t.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Bg5dcpj4.js → xychartDiagram-5P7HB3ND.XXrhBc7a.js} +1 -1
- package/dist/docs/assets/{deployment.md.BJ8i7Q6p.js → deployment.md.UhnJIMr-.js} +2 -2
- package/dist/docs/assets/{deployment.md.BJ8i7Q6p.lean.js → deployment.md.UhnJIMr-.lean.js} +1 -1
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.js → guides_jev.md.CRcgmjDb.js} +2 -2
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.lean.js → guides_jev.md.CRcgmjDb.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.DzGI777n.js → reference_agent-config.md.Cj5uBKp4.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.js → reference_extensions.md.pa2tN-e4.js} +4 -3
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.lean.js → reference_extensions.md.pa2tN-e4.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +37 -37
- package/dist/docs/deployment.md +4 -1
- package/dist/docs/evals.html +35 -35
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +35 -35
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +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 +35 -35
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/jev.md +7 -0
- package/dist/docs/guides/mcp-oauth.html +35 -35
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +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 +25 -2
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/agent-config.md +1 -1
- 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 +39 -38
- package/dist/docs/reference/extensions.md +13 -0
- package/dist/docs/reference/hooks.html +35 -35
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +35 -35
- package/dist/docs/reference/sessions.html +35 -35
- package/dist/docs/reference/skills.html +35 -35
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +35 -35
- package/dist/extensions/jev/extension.d.ts +3 -0
- package/dist/extensions/jev/extension.d.ts.map +1 -1
- package/dist/extensions/jev/extension.js +10 -1
- package/dist/extensions/jev/lib/evaluate.d.ts +4 -0
- package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -1
- package/dist/extensions/jev/lib/evaluate.js +6 -2
- package/dist/extensions.d.ts +4 -2
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +5 -2
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +19 -5
- package/dist/internal/discovery/agent-config.d.ts +6 -5
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +29 -28
- package/dist/internal/discovery/agent.js +1 -1
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +12 -0
- package/dist/internal/hosting.d.ts +8 -0
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +24 -0
- package/dist/types.d.ts +18 -2
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +4 -1
- package/docs/guides/jev.md +7 -0
- package/docs/reference/agent-config.md +1 -1
- package/docs/reference/extensions.md +13 -0
- package/package.json +1 -9
- package/dist/docs/assets/chunks/@localSearchIndexroot.D5L-b34G.js +0 -1
- package/dist/docs/assets/chunks/channel.BbOGaJQP.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Db58HCb1.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Db58HCb1.js +0 -1
- package/dist/docs/assets/chunks/clone.Co4MBflG.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CMsKhrW0.js +0 -1
- package/src/artifacts.ts +0 -68
- package/src/bin/agent-serve.ts +0 -1854
- package/src/channels/bitbucket/api.ts +0 -891
- package/src/channels/bitbucket/binding.ts +0 -417
- package/src/channels/bitbucket/bitbucket-channel.ts +0 -162
- package/src/channels/bitbucket/bitbucket-webhook.ts +0 -519
- package/src/channels/bitbucket/checks.ts +0 -146
- package/src/channels/bitbucket/cursor-account.ts +0 -106
- package/src/channels/bitbucket/defaults.ts +0 -100
- package/src/channels/bitbucket/events.ts +0 -74
- package/src/channels/bitbucket/index.ts +0 -51
- package/src/channels/bitbucket/replay.ts +0 -421
- package/src/channels/bitbucket/state.ts +0 -59
- package/src/channels/bitbucket/types.ts +0 -261
- package/src/channels/change-monitors/change-monitors-channel.ts +0 -63
- package/src/channels/change-monitors/index.ts +0 -8
- package/src/channels/change-monitors/types.ts +0 -42
- package/src/channels/checks.ts +0 -185
- package/src/channels/deployments/deployments-channel.ts +0 -224
- package/src/channels/deployments/index.ts +0 -25
- package/src/channels/deployments/types.ts +0 -92
- package/src/channels/github/api.ts +0 -526
- package/src/channels/github/auth.ts +0 -293
- package/src/channels/github/binding.ts +0 -233
- package/src/channels/github/checks.ts +0 -145
- package/src/channels/github/cursor-account.ts +0 -303
- package/src/channels/github/defaults.ts +0 -168
- package/src/channels/github/events.ts +0 -67
- package/src/channels/github/forward.ts +0 -359
- package/src/channels/github/github-channel.ts +0 -2334
- package/src/channels/github/index.ts +0 -54
- package/src/channels/github/progress.ts +0 -365
- package/src/channels/github/replay.ts +0 -372
- package/src/channels/github/state.ts +0 -124
- package/src/channels/github/types.ts +0 -590
- package/src/channels/gitlab/api.ts +0 -329
- package/src/channels/gitlab/binding.ts +0 -231
- package/src/channels/gitlab/checks.ts +0 -228
- package/src/channels/gitlab/cursor-account.ts +0 -105
- package/src/channels/gitlab/defaults.ts +0 -80
- package/src/channels/gitlab/events.ts +0 -37
- package/src/channels/gitlab/gitlab-channel.ts +0 -160
- package/src/channels/gitlab/gitlab-webhook.ts +0 -509
- package/src/channels/gitlab/index.ts +0 -44
- package/src/channels/gitlab/replay.ts +0 -328
- package/src/channels/gitlab/state.ts +0 -55
- package/src/channels/gitlab/types.ts +0 -247
- package/src/channels/issues/index.ts +0 -9
- package/src/channels/issues/issues-channel.ts +0 -45
- package/src/channels/issues/types.ts +0 -38
- package/src/channels/origin/api.ts +0 -507
- package/src/channels/origin/binding.ts +0 -114
- package/src/channels/origin/checks.ts +0 -250
- package/src/channels/origin/cursor-account.ts +0 -58
- package/src/channels/origin/defaults.ts +0 -140
- package/src/channels/origin/events.ts +0 -35
- package/src/channels/origin/index.ts +0 -35
- package/src/channels/origin/origin-channel.ts +0 -815
- package/src/channels/origin/origin-webhook.ts +0 -296
- package/src/channels/origin/reactions.ts +0 -72
- package/src/channels/origin/state.ts +0 -54
- package/src/channels/origin/types.ts +0 -295
- package/src/channels/slack/agentic-delivery.ts +0 -634
- package/src/channels/slack/agentic-posted.ts +0 -135
- package/src/channels/slack/agentic-signals.ts +0 -231
- package/src/channels/slack/api.ts +0 -761
- package/src/channels/slack/approvals.ts +0 -279
- package/src/channels/slack/assistant.ts +0 -76
- package/src/channels/slack/attachments.ts +0 -596
- package/src/channels/slack/auth.ts +0 -127
- package/src/channels/slack/blocks.ts +0 -131
- package/src/channels/slack/bot-mentions.ts +0 -318
- package/src/channels/slack/channel-watch.ts +0 -314
- package/src/channels/slack/cli-project.ts +0 -249
- package/src/channels/slack/code-fences.ts +0 -171
- package/src/channels/slack/constants.ts +0 -38
- package/src/channels/slack/credentials.ts +0 -88
- package/src/channels/slack/defaults.ts +0 -714
- package/src/channels/slack/dispatch.ts +0 -1060
- package/src/channels/slack/doctor.ts +0 -338
- package/src/channels/slack/eval-directive.ts +0 -306
- package/src/channels/slack/event-id-dedupe.ts +0 -30
- package/src/channels/slack/external-policy.ts +0 -75
- package/src/channels/slack/footer.ts +0 -106
- package/src/channels/slack/inbound.ts +0 -416
- package/src/channels/slack/index.ts +0 -53
- package/src/channels/slack/init.ts +0 -169
- package/src/channels/slack/interactive.ts +0 -406
- package/src/channels/slack/links.ts +0 -23
- package/src/channels/slack/live-delivery.ts +0 -489
- package/src/channels/slack/log.ts +0 -70
- package/src/channels/slack/manifest.ts +0 -240
- package/src/channels/slack/message-body.ts +0 -82
- package/src/channels/slack/nudge-carrier.ts +0 -224
- package/src/channels/slack/nudge-store.ts +0 -334
- package/src/channels/slack/paint-start.ts +0 -93
- package/src/channels/slack/placeholder.ts +0 -358
- package/src/channels/slack/pr-ref.ts +0 -74
- package/src/channels/slack/progress-delivery.ts +0 -138
- package/src/channels/slack/reasoning-card.ts +0 -125
- package/src/channels/slack/reasoning-chip.ts +0 -41
- package/src/channels/slack/recording-sink.ts +0 -167
- package/src/channels/slack/redact.ts +0 -6
- package/src/channels/slack/reply-options.ts +0 -279
- package/src/channels/slack/setup.ts +0 -125
- package/src/channels/slack/slack-channel.ts +0 -744
- package/src/channels/slack/socket-mode.ts +0 -140
- package/src/channels/slack/stop.ts +0 -25
- package/src/channels/slack/stream.ts +0 -66
- package/src/channels/slack/thread-context.ts +0 -485
- package/src/channels/slack/tool-approval-events.ts +0 -233
- package/src/channels/slack/tool-cards.ts +0 -198
- package/src/channels/slack/tool-chip.ts +0 -34
- package/src/channels/slack/types.ts +0 -787
- package/src/channels/slack/upload.ts +0 -137
- package/src/channels.ts +0 -543
- package/src/connections.ts +0 -153
- package/src/dashboard-session-url.ts +0 -30
- package/src/evals/assertions.ts +0 -688
- package/src/evals/expect.ts +0 -250
- package/src/evals/judge.ts +0 -329
- package/src/evals/loaders.ts +0 -111
- package/src/evals/matchers.ts +0 -223
- package/src/evals/reporters.ts +0 -257
- package/src/evals/results.ts +0 -130
- package/src/evals/run-facts.ts +0 -306
- package/src/evals.ts +0 -709
- package/src/extensions/cursor-cloud-agents/extension.ts +0 -131
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +0 -386
- package/src/extensions/cursor-cloud-agents/lib/channels.ts +0 -11
- package/src/extensions/cursor-cloud-agents/lib/fleet.ts +0 -98
- package/src/extensions/cursor-cloud-agents/lib/inputs.ts +0 -5
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +0 -80
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +0 -19
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +0 -37
- package/src/extensions/cursor-cloud-agents/tools/cancel.ts +0 -21
- package/src/extensions/cursor-cloud-agents/tools/dump.ts +0 -47
- package/src/extensions/cursor-cloud-agents/tools/get.ts +0 -18
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +0 -62
- package/src/extensions/cursor-cloud-agents/tools/list.ts +0 -31
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +0 -36
- package/src/extensions/cursor-grokbot-agents/extension.ts +0 -132
- package/src/extensions/cursor-grokbot-agents/lib/agents.ts +0 -42
- package/src/extensions/cursor-grokbot-agents/lib/backend.ts +0 -208
- package/src/extensions/cursor-grokbot-agents/lib/contacts.ts +0 -74
- package/src/extensions/cursor-grokbot-agents/lib/conversation.ts +0 -260
- package/src/extensions/cursor-grokbot-agents/lib/inputs.ts +0 -21
- package/src/extensions/cursor-grokbot-agents/lib/lock.ts +0 -26
- package/src/extensions/cursor-grokbot-agents/skills/consult.md +0 -40
- package/src/extensions/cursor-grokbot-agents/tools/ask.ts +0 -32
- package/src/extensions/cursor-grokbot-agents/tools/check.ts +0 -25
- package/src/extensions/cursor-grokbot-agents/tools/interrupt.ts +0 -17
- package/src/extensions/cursor-grokbot-agents/tools/list.ts +0 -26
- package/src/extensions/improve/extension.ts +0 -69
- package/src/extensions/improve/skills/yourself.ts +0 -50
- package/src/extensions/jev/extension.ts +0 -95
- package/src/extensions/jev/lib/evaluate.ts +0 -266
- package/src/extensions/jev/skills/gated-write.md +0 -25
- package/src/extensions/jev/skills/questions.md +0 -33
- package/src/extensions/jev/tools/evaluate.ts +0 -82
- package/src/extensions/slack-communication/evals/harness.ts +0 -705
- package/src/extensions/slack-communication/evals/slack-communication.eval.ts +0 -830
- package/src/extensions/slack-communication/evals/slack-placeholder.eval.ts +0 -172
- package/src/extensions/slack-communication/extension.ts +0 -44
- package/src/extensions/slack-communication/skills/slack-voice.ts +0 -56
- package/src/extensions/slack-communication/tools/delete-message.ts +0 -33
- package/src/extensions/slack-communication/tools/edit-message.ts +0 -42
- package/src/extensions/slack-communication/tools/post-card.ts +0 -28
- package/src/extensions/slack-communication/tools/post-file.ts +0 -82
- package/src/extensions/slack-communication/tools/post-update.ts +0 -40
- package/src/extensions/slack-communication/tools/react.ts +0 -30
- package/src/extensions/slack-communication/tools/set-status.ts +0 -21
- package/src/extensions.ts +0 -179
- package/src/files-backends/agent-store-presigned-url.ts +0 -11
- package/src/files-backends/cursor-hosted.ts +0 -1212
- package/src/files-backends/local-fs.ts +0 -163
- package/src/files.ts +0 -293
- package/src/filesystem.ts +0 -2005
- package/src/hooks.ts +0 -30
- package/src/index.ts +0 -259
- package/src/internal/advertise-tools.ts +0 -370
- package/src/internal/approval-gate.ts +0 -103
- package/src/internal/artifacts-store.ts +0 -836
- package/src/internal/as-of.ts +0 -257
- package/src/internal/auth.ts +0 -46
- package/src/internal/authored-alias-hooks.ts +0 -138
- package/src/internal/authored-loaders.ts +0 -188
- package/src/internal/bounded-int.ts +0 -24
- package/src/internal/bounded.ts +0 -25
- package/src/internal/brand.ts +0 -28
- package/src/internal/browser-origin-guard.ts +0 -67
- package/src/internal/builtin-tools/artifacts.ts +0 -62
- package/src/internal/builtin-tools/index.ts +0 -53
- package/src/internal/builtin-tools/reminders.ts +0 -145
- package/src/internal/channel-dispatch.ts +0 -129
- package/src/internal/channel-route-dispatch.ts +0 -58
- package/src/internal/channel-state.ts +0 -83
- package/src/internal/chat-client.ts +0 -594
- package/src/internal/cli-ax.ts +0 -2318
- package/src/internal/cli-bitbucket.ts +0 -438
- package/src/internal/cli-convert-automation.ts +0 -335
- package/src/internal/cli-cursor.ts +0 -282
- package/src/internal/cli-deploy.ts +0 -2519
- package/src/internal/cli-docs.ts +0 -192
- package/src/internal/cli-github.ts +0 -806
- package/src/internal/cli-gitlab.ts +0 -452
- package/src/internal/cli-images.ts +0 -672
- package/src/internal/cli-manifest.ts +0 -56
- package/src/internal/cli-mcp-oauth.ts +0 -396
- package/src/internal/cli-mcp.ts +0 -808
- package/src/internal/cli-skills.ts +0 -98
- package/src/internal/cli-slack-manual.ts +0 -418
- package/src/internal/cli-slack.ts +0 -874
- package/src/internal/cloud-merge.ts +0 -51
- package/src/internal/cloud-turn-cost.ts +0 -159
- package/src/internal/connection-env.ts +0 -106
- package/src/internal/continuation-channel.ts +0 -233
- package/src/internal/continuation-identity.ts +0 -935
- package/src/internal/conversation-mirror.ts +0 -423
- package/src/internal/convert-automation/convert-workflow.ts +0 -1377
- package/src/internal/convert-automation/slug.ts +0 -29
- package/src/internal/convert-automation/types.ts +0 -212
- package/src/internal/cron.ts +0 -76
- package/src/internal/cursor/account-mcp.ts +0 -692
- package/src/internal/cursor/backend-client.ts +0 -984
- package/src/internal/cursor/bound-secret-file.ts +0 -101
- package/src/internal/cursor/credentials.ts +0 -560
- package/src/internal/cursor/cursor-api-transport.ts +0 -65
- package/src/internal/cursor/github-credentials.ts +0 -228
- package/src/internal/cursor/hosted-bound-secrets.ts +0 -71
- package/src/internal/cursor/hosted-deployment-secrets.ts +0 -100
- package/src/internal/cursor/hosted-store-secrets.ts +0 -152
- package/src/internal/cursor/session-token.ts +0 -111
- package/src/internal/cursor/store-api-client.ts +0 -323
- package/src/internal/cursor-account-mcp-auth.ts +0 -303
- package/src/internal/cursor-agent-template.ts +0 -50
- package/src/internal/cursor-deployment-relay.ts +0 -315
- package/src/internal/cursor-event-relay.ts +0 -675
- package/src/internal/cursor-relay-core.ts +0 -563
- package/src/internal/deferred-channel-session.ts +0 -61
- package/src/internal/deploy-client.ts +0 -1574
- package/src/internal/deploy-manifest.ts +0 -361
- package/src/internal/deploy-source.ts +0 -144
- package/src/internal/describe-error.ts +0 -32
- package/src/internal/dev-mode.ts +0 -20
- package/src/internal/discovery/agent-config.ts +0 -288
- package/src/internal/discovery/agent.ts +0 -381
- package/src/internal/discovery/channels.ts +0 -100
- package/src/internal/discovery/connections.ts +0 -516
- package/src/internal/discovery/context.ts +0 -38
- package/src/internal/discovery/cursor-plugin.ts +0 -628
- package/src/internal/discovery/extension-overlay.ts +0 -247
- package/src/internal/discovery/extensions.ts +0 -490
- package/src/internal/discovery/fs.ts +0 -103
- package/src/internal/discovery/hooks.ts +0 -63
- package/src/internal/discovery/info.ts +0 -174
- package/src/internal/discovery/instructions.ts +0 -98
- package/src/internal/discovery/modules.ts +0 -107
- package/src/internal/discovery/names.ts +0 -45
- package/src/internal/discovery/project.ts +0 -319
- package/src/internal/discovery/reminders.ts +0 -65
- package/src/internal/discovery/runtime.ts +0 -158
- package/src/internal/discovery/schedules.ts +0 -120
- package/src/internal/discovery/seed-files.ts +0 -34
- package/src/internal/discovery/services.ts +0 -151
- package/src/internal/discovery/skills.ts +0 -174
- package/src/internal/discovery/subagent.ts +0 -138
- package/src/internal/discovery/tools.ts +0 -170
- package/src/internal/discovery.ts +0 -27
- package/src/internal/distribution.ts +0 -126
- package/src/internal/docs-site.ts +0 -248
- package/src/internal/duration.ts +0 -37
- package/src/internal/env-file.ts +0 -83
- package/src/internal/eval-judge-model.ts +0 -142
- package/src/internal/eval-run-store.ts +0 -585
- package/src/internal/eval-runner.ts +0 -823
- package/src/internal/evals-client.ts +0 -475
- package/src/internal/event-log.ts +0 -342
- package/src/internal/event-mapper.ts +0 -811
- package/src/internal/expected-delivery-failure.ts +0 -34
- package/src/internal/factory-resource-channel.ts +0 -103
- package/src/internal/filesystem/errors.ts +0 -207
- package/src/internal/filesystem/format.ts +0 -253
- package/src/internal/filesystem/merge.ts +0 -192
- package/src/internal/filesystem/nearest.ts +0 -112
- package/src/internal/filesystem/scratch.ts +0 -239
- package/src/internal/filesystem/sdk-schemas.ts +0 -204
- package/src/internal/filesystem/tools.ts +0 -804
- package/src/internal/filesystem/walk.ts +0 -366
- package/src/internal/fixtures/units-server.ts +0 -52
- package/src/internal/framework-file-storage.ts +0 -357
- package/src/internal/framework-storage-selection.ts +0 -156
- package/src/internal/frontmatter.ts +0 -108
- package/src/internal/github-fanout.ts +0 -144
- package/src/internal/guest-network.ts +0 -391
- package/src/internal/handleAgentServeTrigger.ts +0 -286
- package/src/internal/host-files.ts +0 -341
- package/src/internal/host-kv.ts +0 -81
- package/src/internal/host-otel.ts +0 -231
- package/src/internal/host-platforms.ts +0 -170
- package/src/internal/hosted-admission-adapter.ts +0 -47
- package/src/internal/hosted-admission-context.ts +0 -37
- package/src/internal/hosted-catch-protocol.ts +0 -112
- package/src/internal/hosted-catch.ts +0 -179
- package/src/internal/hosted-delivery-protocol.ts +0 -824
- package/src/internal/hosted-delivery.ts +0 -1410
- package/src/internal/hosted-execution-diag.ts +0 -291
- package/src/internal/hosted-execution-flush.ts +0 -136
- package/src/internal/hosted-execution-latency.ts +0 -301
- package/src/internal/hosted-managed-automation.ts +0 -116
- package/src/internal/hosting.ts +0 -114
- package/src/internal/http-channel-define.ts +0 -25
- package/src/internal/http-channel.ts +0 -669
- package/src/internal/http-control-plane-session.ts +0 -110
- package/src/internal/ids.ts +0 -39
- package/src/internal/incoming-headers-to-fetch.ts +0 -45
- package/src/internal/init-interview.ts +0 -360
- package/src/internal/init-project.ts +0 -711
- package/src/internal/init-scaffold.ts +0 -182
- package/src/internal/inline-stdio-define-stub.ts +0 -4
- package/src/internal/inline-stdio-mcp.ts +0 -230
- package/src/internal/install-cursor-skills.ts +0 -604
- package/src/internal/is-record.ts +0 -3
- package/src/internal/json-schema.ts +0 -95
- package/src/internal/legacy-command-guard.ts +0 -66
- package/src/internal/listen-port.ts +0 -85
- package/src/internal/local-control-plane.ts +0 -442
- package/src/internal/local-env.ts +0 -59
- package/src/internal/local-ingress.ts +0 -90
- package/src/internal/log-ring.ts +0 -59
- package/src/internal/logs-client.ts +0 -477
- package/src/internal/map-pool.ts +0 -39
- package/src/internal/mcp-endpoint.ts +0 -747
- package/src/internal/mcp-host.ts +0 -509
- package/src/internal/mcp-oauth-on-demand.ts +0 -337
- package/src/internal/mcp-oauth-persist.ts +0 -118
- package/src/internal/mcp-oauth.ts +0 -549
- package/src/internal/net.ts +0 -29
- package/src/internal/open-browser.ts +0 -41
- package/src/internal/otel/attrs.ts +0 -16
- package/src/internal/otel/collector.ts +0 -937
- package/src/internal/otel/config.ts +0 -287
- package/src/internal/otel/http.ts +0 -122
- package/src/internal/otel/mcp.ts +0 -56
- package/src/internal/otel/propagation.ts +0 -17
- package/src/internal/otel/runtime.ts +0 -441
- package/src/internal/package-inline-stdio.ts +0 -114
- package/src/internal/peer-connections.ts +0 -96
- package/src/internal/platform-schedule-sync.ts +0 -75
- package/src/internal/platform-timers.ts +0 -365
- package/src/internal/playground/static.ts +0 -278
- package/src/internal/playground/toolchain.ts +0 -270
- package/src/internal/playground-proxy.ts +0 -564
- package/src/internal/process-memory-telemetry.ts +0 -334
- package/src/internal/project-layout.ts +0 -31
- package/src/internal/prompt-context.ts +0 -116
- package/src/internal/reminder-control-plane-protocol.ts +0 -482
- package/src/internal/reminder-runner.ts +0 -1559
- package/src/internal/reminder-schedule.ts +0 -104
- package/src/internal/reminder-store.ts +0 -176
- package/src/internal/request-error-status.ts +0 -95
- package/src/internal/request-headers.ts +0 -21
- package/src/internal/resolve-prod-target.ts +0 -334
- package/src/internal/resolved-connections.ts +0 -190
- package/src/internal/router.ts +0 -143
- package/src/internal/run-client.ts +0 -354
- package/src/internal/runtime-dispatch-runner.ts +0 -50
- package/src/internal/sanitize-mcp-tool-name.ts +0 -31
- package/src/internal/schedule-runner.ts +0 -154
- package/src/internal/scm/pr-url.ts +0 -245
- package/src/internal/sdk-runner.ts +0 -959
- package/src/internal/serve-restart.ts +0 -113
- package/src/internal/server.ts +0 -3147
- package/src/internal/session-cost.ts +0 -208
- package/src/internal/session-engine.ts +0 -5622
- package/src/internal/session-links.ts +0 -84
- package/src/internal/session-run-log.ts +0 -535
- package/src/internal/session-store.ts +0 -307
- package/src/internal/session-urls.ts +0 -32
- package/src/internal/sessions-client.ts +0 -239
- package/src/internal/skill-catalog.ts +0 -66
- package/src/internal/skills-sync.ts +0 -55
- package/src/internal/slack-provision-client.ts +0 -544
- package/src/internal/slack-thread-key.ts +0 -11
- package/src/internal/sleep.ts +0 -3
- package/src/internal/start-log-store.ts +0 -164
- package/src/internal/steering.ts +0 -17
- package/src/internal/storage-coordinator.ts +0 -800
- package/src/internal/storage-roles.ts +0 -86
- package/src/internal/storage.ts +0 -1
- package/src/internal/store-api-protocol.ts +0 -205
- package/src/internal/store-mirror.ts +0 -73
- package/src/internal/stream-progress.ts +0 -294
- package/src/internal/terminal-style.ts +0 -133
- package/src/internal/testing/factory-resource-fixtures.ts +0 -84
- package/src/internal/testing/scm-continuation-fixtures.ts +0 -285
- package/src/internal/tool-catalog.ts +0 -104
- package/src/internal/tool-policy.ts +0 -222
- package/src/internal/tool-result.ts +0 -50
- package/src/internal/trajectory.ts +0 -418
- package/src/internal/turn-cost.ts +0 -136
- package/src/internal/turn-governor.ts +0 -145
- package/src/internal/turn-lease-store.ts +0 -144
- package/src/internal/turn-outbox.ts +0 -77
- package/src/internal/update-check.ts +0 -517
- package/src/internal/v2-hosting.ts +0 -52
- package/src/internal/workspace-sync.ts +0 -114
- package/src/internal/workspace.ts +0 -505
- package/src/kv/memory-kv.ts +0 -94
- package/src/kv.ts +0 -18
- package/src/memory.ts +0 -487
- package/src/otel-public.ts +0 -24
- package/src/otel.ts +0 -320
- package/src/prompt.ts +0 -80
- package/src/reminders.ts +0 -65
- package/src/schedules.ts +0 -31
- package/src/skills.ts +0 -27
- package/src/storage-backends/cursor-hosted-v2.ts +0 -204
- package/src/storage-backends/cursor-hosted.ts +0 -388
- package/src/storage-backends/file-kv.ts +0 -276
- package/src/storage-protocol.ts +0 -261
- package/src/storage.ts +0 -408
- package/src/tools.ts +0 -166
- package/src/types.ts +0 -3776
- /package/dist/docs/assets/{reference_agent-config.md.DzGI777n.lean.js → reference_agent-config.md.Cj5uBKp4.lean.js} +0 -0
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Which repositories a launch may target. The model picks `repo` / `ref` /
|
|
3
|
-
* `prUrl` per call, but the author's `cloud.repos` are the allowlist.
|
|
4
|
-
* Model-chosen targets always require that allowlist: an unbound mount
|
|
5
|
-
* (no `cloud.repos`) must not accept an arbitrary URL under the host API
|
|
6
|
-
* key, with or without `envVars`. A function allowlist is resolved on every
|
|
7
|
-
* call and always narrows the launch to one of its repositories.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { parsePrUrl } from "../../../internal/scm/pr-url.js";
|
|
11
|
-
import type { AgentCloudOptions } from "../../../types.js";
|
|
12
|
-
import type { CursorCloudAgentsCloudOptions } from "../extension.js";
|
|
13
|
-
|
|
14
|
-
export interface LaunchTarget {
|
|
15
|
-
repo?: string;
|
|
16
|
-
ref?: string;
|
|
17
|
-
prUrl?: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function launchRepos(
|
|
21
|
-
target: LaunchTarget,
|
|
22
|
-
cloud: CursorCloudAgentsCloudOptions,
|
|
23
|
-
): AgentCloudOptions["repos"] {
|
|
24
|
-
const resolved = typeof cloud.repos === "function";
|
|
25
|
-
const allowlist = typeof cloud.repos === "function" ? cloud.repos() : cloud.repos;
|
|
26
|
-
if (resolved && allowlist?.length === 0) {
|
|
27
|
-
throw new Error("No repositories are available to cloud agents for this deployment.");
|
|
28
|
-
}
|
|
29
|
-
if (
|
|
30
|
-
!resolved &&
|
|
31
|
-
target.repo === undefined &&
|
|
32
|
-
target.ref === undefined &&
|
|
33
|
-
target.prUrl === undefined
|
|
34
|
-
) {
|
|
35
|
-
return allowlist;
|
|
36
|
-
}
|
|
37
|
-
const pr = target.prUrl === undefined ? undefined : parsePrUrl(target.prUrl);
|
|
38
|
-
if (target.prUrl !== undefined && pr?.provider !== "github") {
|
|
39
|
-
throw new Error(`prUrl must be a GitHub pull request URL: ${target.prUrl}`);
|
|
40
|
-
}
|
|
41
|
-
const prRepo = pr === undefined ? undefined : `https://github.com/${pr.owner}/${pr.repo}`;
|
|
42
|
-
// A lone `ref` needs exactly one configured repository to apply to.
|
|
43
|
-
const configured = allowlist ?? [];
|
|
44
|
-
const url = target.repo ?? prRepo ?? (configured.length === 1 ? configured[0]?.url : undefined);
|
|
45
|
-
if (url === undefined) {
|
|
46
|
-
throw new Error(
|
|
47
|
-
configured.length > 1
|
|
48
|
-
? "`repo` is required: this extension configures several repositories."
|
|
49
|
-
: "`repo` is required: this extension has no configured default repository.",
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
if (prRepo !== undefined && repoKey(prRepo) !== repoKey(url)) {
|
|
53
|
-
throw new Error(`prUrl ${target.prUrl} is not a pull request of ${url}.`);
|
|
54
|
-
}
|
|
55
|
-
const allowlisted = allowlist?.some(configured => repoKey(configured.url) === repoKey(url));
|
|
56
|
-
if (allowlisted !== true) {
|
|
57
|
-
throw new Error(
|
|
58
|
-
allowlist === undefined
|
|
59
|
-
? `Configure cloud.repos before launching against a model-chosen repository (${url}).`
|
|
60
|
-
: `${url} is not one of this extension's configured repositories.`,
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
// Keep the matching allowlist entry's branch / PR defaults when the model
|
|
64
|
-
// only names the repository (handoff always passes `repo`). An explicit
|
|
65
|
-
// `ref` clears an inherited `prUrl` so branch and PR targets do not mix.
|
|
66
|
-
const match = configured.find(configuredRepo => repoKey(configuredRepo.url) === repoKey(url));
|
|
67
|
-
return [
|
|
68
|
-
{
|
|
69
|
-
url: match?.url ?? url,
|
|
70
|
-
startingRef: target.ref ?? match?.startingRef,
|
|
71
|
-
prUrl: target.prUrl ?? (target.ref !== undefined ? undefined : match?.prUrl),
|
|
72
|
-
},
|
|
73
|
-
];
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function repoKey(url: string): string {
|
|
77
|
-
const parsed = new URL(url);
|
|
78
|
-
const path = parsed.pathname.replace(/\.git$/, "").replace(/\/+$/, "");
|
|
79
|
-
return `${parsed.hostname}${path}`.toLowerCase();
|
|
80
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/** A cloud agent's conversation as JSONL lines, one message per line. */
|
|
2
|
-
|
|
3
|
-
import type { CloudAgentMessage } from "./backend.js";
|
|
4
|
-
|
|
5
|
-
/** Workspace-relative path of a dumped transcript; the directory Sand uses too. */
|
|
6
|
-
export function transcriptPath(agentId: string): string {
|
|
7
|
-
return `cloud-agent-transcripts/${agentId}.jsonl`;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export function transcriptLines(messages: CloudAgentMessage[]): string[] {
|
|
11
|
-
return messages.map(message => JSON.stringify(message));
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/** The text of the last assistant message, the agent's report. */
|
|
15
|
-
export function lastAssistantText(messages: CloudAgentMessage[]): string | undefined {
|
|
16
|
-
return messages
|
|
17
|
-
.toReversed()
|
|
18
|
-
.find(message => message.role === "assistant" && message.text !== undefined)?.text;
|
|
19
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Delegate coding work to Cursor cloud agents: when to hand off, how to write the prompt, and how to look an agent up by id, read what it did, reply, and cancel."
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Cloud agent handoff
|
|
6
|
-
|
|
7
|
-
Hand work to a Cursor cloud agent when it needs a repository checkout, a long run, or an isolated machine: implementing a change, running a test suite, opening a pull request. Answer questions and small reads yourself.
|
|
8
|
-
|
|
9
|
-
The tools below are this extension's; they appear under its mount namespace, as `<namespace>__launch` and so on. Every agent is addressed by its `agent_id` (`bc-...`).
|
|
10
|
-
|
|
11
|
-
## Launch
|
|
12
|
-
|
|
13
|
-
Call `launch` with a self-contained prompt: the goal, the repository or pull request, constraints (branch, files to leave alone), and what done looks like (tests pass, PR opened). Pass `starting_ref` or `pr_url` to pick a branch or pull request; `repo` must be one of the configured repositories.
|
|
14
|
-
|
|
15
|
-
The result carries `agentId` (`bc-...`) and a `url`. Report both in full. Never truncate the id.
|
|
16
|
-
|
|
17
|
-
## Look an agent up by id
|
|
18
|
-
|
|
19
|
-
Call `get` with the `agent_id`. It returns the agent's `status` (`creating`, `running`, `finished`, `error`, `expired`, or `unknown`), its `branch` and pull request `prUrl` once pushed, change counts, a `summary` when one exists, and an `error` when it failed. A run takes minutes: check when asked or when you need the result, not in a tight loop. The final report itself comes from `dump`.
|
|
20
|
-
|
|
21
|
-
## Read what it did
|
|
22
|
-
|
|
23
|
-
To read the report or understand what was done, call `dump` with the `agent_id`. Once a transcript exists, it writes the agent's whole conversation to `cloud-agent-transcripts/<agent_id>.jsonl` in your workspace and returns the absolute `path` plus `finalMessage`. Before any transcript exists, either value may be absent; wait for output instead of inventing a report.
|
|
24
|
-
|
|
25
|
-
Use `finalMessage` as the agent's report. Read the returned transcript path when you need its prompts, reasoning, or tool calls, then inspect the resulting branch or pull request before claiming exact code changes. The transcript is evidence of what the agent did, not a canonical diff.
|
|
26
|
-
|
|
27
|
-
## Reply
|
|
28
|
-
|
|
29
|
-
Call `reply` with the `agent_id` and a prompt to steer an agent or ask for changes on its branch. The follow-up queues behind the current run and starts when it finishes; pass `interrupt: true` to stop the current step and deliver it now. Do not launch a second agent for follow-up work on the same branch.
|
|
30
|
-
|
|
31
|
-
## Cancel
|
|
32
|
-
|
|
33
|
-
Call `cancel` with the `agent_id` to stop the active run. The agent keeps its branch and conversation, so a `reply` can continue from where it stopped.
|
|
34
|
-
|
|
35
|
-
## Fleet
|
|
36
|
-
|
|
37
|
-
`list` returns the agents launched in this session, newest first; pass `scope: "all"` to include your launches from other sessions. Launch one agent per independent task and give each a descriptive `name`. Agents launched by others are out of reach.
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { defineTool } from "../../../tools.js";
|
|
2
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
3
|
-
import { cloudAgentsBackend } from "../lib/backend.js";
|
|
4
|
-
import { assertWriteChannel } from "../lib/channels.js";
|
|
5
|
-
import { assertOwned } from "../lib/fleet.js";
|
|
6
|
-
import { agentRef } from "../lib/inputs.js";
|
|
7
|
-
|
|
8
|
-
const cancel: ToolDefinition = defineTool({
|
|
9
|
-
description:
|
|
10
|
-
"Stop a cloud agent's active run. The agent keeps its branch and conversation; reply to it to continue.",
|
|
11
|
-
effect: "write",
|
|
12
|
-
inputSchema: agentRef,
|
|
13
|
-
async execute(input, ctx) {
|
|
14
|
-
assertWriteChannel(ctx);
|
|
15
|
-
await assertOwned(ctx, input.agent_id);
|
|
16
|
-
await cloudAgentsBackend().pause(input.agent_id);
|
|
17
|
-
return { agentId: input.agent_id, cancelled: true };
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
export default cancel;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
-
import { dirname, join } from "node:path";
|
|
3
|
-
import { defineTool } from "../../../tools.js";
|
|
4
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
5
|
-
import { cloudAgentsBackend } from "../lib/backend.js";
|
|
6
|
-
import { assertOwned } from "../lib/fleet.js";
|
|
7
|
-
import { agentRef } from "../lib/inputs.js";
|
|
8
|
-
import { lastAssistantText, transcriptLines, transcriptPath } from "../lib/transcript.js";
|
|
9
|
-
|
|
10
|
-
const dump: ToolDefinition = defineTool({
|
|
11
|
-
description:
|
|
12
|
-
"Write a cloud agent's full conversation to a JSONL file in your workspace so you can read what it did: one JSON message per line (prompts, assistant text, thinking, tool calls). Read the last line for the final report.",
|
|
13
|
-
effect: "read",
|
|
14
|
-
inputSchema: agentRef,
|
|
15
|
-
async execute(input, ctx) {
|
|
16
|
-
await assertOwned(ctx, input.agent_id);
|
|
17
|
-
const backend = cloudAgentsBackend();
|
|
18
|
-
const [messages, info] = await Promise.all([
|
|
19
|
-
backend.conversation(input.agent_id),
|
|
20
|
-
backend.info(input.agent_id),
|
|
21
|
-
]);
|
|
22
|
-
if (messages.length === 0) {
|
|
23
|
-
return {
|
|
24
|
-
agentId: input.agent_id,
|
|
25
|
-
lineCount: 0,
|
|
26
|
-
status: info.status,
|
|
27
|
-
note: "The agent has not produced any transcript yet.",
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
// Absolute: the harness's shell does not run in the workspace directory.
|
|
31
|
-
const path = join(ctx.workspaceDir, transcriptPath(input.agent_id));
|
|
32
|
-
const jsonl = `${transcriptLines(messages).join("\n")}\n`;
|
|
33
|
-
await mkdir(dirname(path), { recursive: true });
|
|
34
|
-
await writeFile(path, jsonl, "utf8");
|
|
35
|
-
return {
|
|
36
|
-
agentId: input.agent_id,
|
|
37
|
-
path,
|
|
38
|
-
sizeBytes: Buffer.byteLength(jsonl),
|
|
39
|
-
lineCount: messages.length,
|
|
40
|
-
status: info.status,
|
|
41
|
-
finalMessage: lastAssistantText(messages),
|
|
42
|
-
note: `One JSON message per line. Grep it, or read the final report with \`tail -n 1 ${path}\`.`,
|
|
43
|
-
};
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
export default dump;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { defineTool } from "../../../tools.js";
|
|
2
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
3
|
-
import { cloudAgentsBackend } from "../lib/backend.js";
|
|
4
|
-
import { assertOwned } from "../lib/fleet.js";
|
|
5
|
-
import { agentRef } from "../lib/inputs.js";
|
|
6
|
-
|
|
7
|
-
const get: ToolDefinition = defineTool({
|
|
8
|
-
description:
|
|
9
|
-
"Look up a cloud agent you launched by id: its status, branch, pull request, changed-file counts, summary, and any error. Use dump to read everything it did.",
|
|
10
|
-
effect: "read",
|
|
11
|
-
inputSchema: agentRef,
|
|
12
|
-
async execute(input, ctx) {
|
|
13
|
-
await assertOwned(ctx, input.agent_id);
|
|
14
|
-
return cloudAgentsBackend().info(input.agent_id);
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
export default get;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { defineTool } from "../../../tools.js";
|
|
3
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
4
|
-
import extension from "../extension.js";
|
|
5
|
-
import { cloudAgentsBackend } from "../lib/backend.js";
|
|
6
|
-
import { assertWriteChannel } from "../lib/channels.js";
|
|
7
|
-
import { recordLaunch } from "../lib/fleet.js";
|
|
8
|
-
import { launchRepos } from "../lib/repos.js";
|
|
9
|
-
|
|
10
|
-
const launch: ToolDefinition = defineTool({
|
|
11
|
-
description:
|
|
12
|
-
"Launch a Cursor cloud agent on a repository with a self-contained task. Returns the agent id and URL; check on it with get, read what it did with dump.",
|
|
13
|
-
effect: "write",
|
|
14
|
-
needsApproval: () => extension.config.needsApproval,
|
|
15
|
-
inputSchema: z.object({
|
|
16
|
-
prompt: z
|
|
17
|
-
.string()
|
|
18
|
-
.min(1)
|
|
19
|
-
.describe("Self-contained task: goal, constraints, and what done looks like."),
|
|
20
|
-
repo: z
|
|
21
|
-
.string()
|
|
22
|
-
.url()
|
|
23
|
-
.optional()
|
|
24
|
-
.describe(
|
|
25
|
-
"Repository clone URL (GitHub or Origin), one of the configured repositories. Defaults to the configured repository when there is exactly one.",
|
|
26
|
-
),
|
|
27
|
-
starting_ref: z
|
|
28
|
-
.string()
|
|
29
|
-
.optional()
|
|
30
|
-
.describe("Branch or commit to start from; defaults to the configured or default branch."),
|
|
31
|
-
pr_url: z
|
|
32
|
-
.string()
|
|
33
|
-
.url()
|
|
34
|
-
.optional()
|
|
35
|
-
.describe("Work on this pull request's branch instead of a new one."),
|
|
36
|
-
name: z
|
|
37
|
-
.string()
|
|
38
|
-
.max(100)
|
|
39
|
-
.optional()
|
|
40
|
-
.describe("Display name; derived from the prompt when omitted."),
|
|
41
|
-
}),
|
|
42
|
-
async execute(input, ctx) {
|
|
43
|
-
assertWriteChannel(ctx);
|
|
44
|
-
const { cloud, model } = extension.config;
|
|
45
|
-
const launched = await cloudAgentsBackend().launch({
|
|
46
|
-
prompt: input.prompt,
|
|
47
|
-
name: input.name,
|
|
48
|
-
model,
|
|
49
|
-
cloud: {
|
|
50
|
-
...cloud,
|
|
51
|
-
repos: launchRepos(
|
|
52
|
-
{ repo: input.repo, ref: input.starting_ref, prUrl: input.pr_url },
|
|
53
|
-
cloud,
|
|
54
|
-
),
|
|
55
|
-
},
|
|
56
|
-
});
|
|
57
|
-
await recordLaunch(ctx, launched.agentId, input.name);
|
|
58
|
-
return launched;
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
export default launch;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { defineTool } from "../../../tools.js";
|
|
3
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
4
|
-
import { agentUrl } from "../lib/backend.js";
|
|
5
|
-
import { listFleet } from "../lib/fleet.js";
|
|
6
|
-
|
|
7
|
-
const list: ToolDefinition = defineTool({
|
|
8
|
-
description:
|
|
9
|
-
'List the cloud agents launched in this session, newest first. Pass scope "all" for every agent you launched, in any session.',
|
|
10
|
-
effect: "read",
|
|
11
|
-
inputSchema: z.object({
|
|
12
|
-
scope: z
|
|
13
|
-
.enum(["session", "all"])
|
|
14
|
-
.default("session")
|
|
15
|
-
.describe(
|
|
16
|
-
"session: agents this session launched; all: every agent launched by you, in any session.",
|
|
17
|
-
),
|
|
18
|
-
limit: z.number().int().min(1).max(100).default(20),
|
|
19
|
-
}),
|
|
20
|
-
async execute(input, ctx) {
|
|
21
|
-
const fleet = await listFleet(ctx, input.scope);
|
|
22
|
-
return {
|
|
23
|
-
sessionId: ctx.session.id,
|
|
24
|
-
agents: fleet
|
|
25
|
-
.slice(0, input.limit)
|
|
26
|
-
.map(entry => ({ ...entry, url: agentUrl(entry.agentId) })),
|
|
27
|
-
};
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
export default list;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { defineTool } from "../../../tools.js";
|
|
3
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
4
|
-
import extension from "../extension.js";
|
|
5
|
-
import { cloudAgentsBackend } from "../lib/backend.js";
|
|
6
|
-
import { assertWriteChannel } from "../lib/channels.js";
|
|
7
|
-
import { assertOwned } from "../lib/fleet.js";
|
|
8
|
-
import { agentRef } from "../lib/inputs.js";
|
|
9
|
-
|
|
10
|
-
const reply: ToolDefinition = defineTool({
|
|
11
|
-
description:
|
|
12
|
-
"Send a follow-up prompt to a cloud agent you launched. It queues behind the current run; pass interrupt to stop that run's current step and deliver it now.",
|
|
13
|
-
effect: "write",
|
|
14
|
-
needsApproval: () => extension.config.needsApproval,
|
|
15
|
-
inputSchema: agentRef.extend({
|
|
16
|
-
prompt: z.string().min(1).describe("The follow-up instruction."),
|
|
17
|
-
interrupt: z
|
|
18
|
-
.boolean()
|
|
19
|
-
.default(false)
|
|
20
|
-
.describe(
|
|
21
|
-
"Deliver now, cancelling the in-flight step, instead of waiting for the current run to finish.",
|
|
22
|
-
),
|
|
23
|
-
}),
|
|
24
|
-
async execute(input, ctx) {
|
|
25
|
-
assertWriteChannel(ctx);
|
|
26
|
-
await assertOwned(ctx, input.agent_id);
|
|
27
|
-
const { runId } = await cloudAgentsBackend().followUp(
|
|
28
|
-
input.agent_id,
|
|
29
|
-
input.prompt,
|
|
30
|
-
input.interrupt,
|
|
31
|
-
);
|
|
32
|
-
return { agentId: input.agent_id, runId, queued: !input.interrupt };
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
export default reply;
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Your Grok Bot agents as an extension. Mount it and the agent can talk to
|
|
3
|
-
* the Grok Bot agents of the host's account: send a message, read the
|
|
4
|
-
* reply, keep waiting on a long turn, interrupt one.
|
|
5
|
-
*
|
|
6
|
-
* ```ts
|
|
7
|
-
* // agent/extensions/grokbot.ts
|
|
8
|
-
* import cursorGrokBotAgents from "@cursor/bdk/extensions/cursor-grokbot-agents";
|
|
9
|
-
*
|
|
10
|
-
* export default cursorGrokBotAgents({
|
|
11
|
-
* agents: [
|
|
12
|
-
* { name: "Plan Keeper", description: "Keeps or moves outdoor plans." },
|
|
13
|
-
* ],
|
|
14
|
-
* });
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* Contributes `grokbot__ask`, `grokbot__check`, `grokbot__interrupt`,
|
|
18
|
-
* `grokbot__list` and the `grokbot__consult` skill (the namespace is the
|
|
19
|
-
* mount filename), over the same public `/v0/grokbot` session API the
|
|
20
|
-
* grokbot runtime uses, under the serve host's Cursor API key
|
|
21
|
-
* (`CURSOR_API_KEY`, key file, or `login`). Agents are addressed by name and
|
|
22
|
-
* resolved on the account the key belongs to; a message lands in that
|
|
23
|
-
* account's own conversation with the agent, and the reply is what the agent
|
|
24
|
-
* sends back during that turn. The tools run on the serve host, so they
|
|
25
|
-
* need the local runtime.
|
|
26
|
-
*
|
|
27
|
-
* This is the other direction from `defineAgent({ runtime: "grokbot" })`:
|
|
28
|
-
* the runtime runs *this* agent's turns on the hosted Grok Bot harness; the
|
|
29
|
-
* extension keeps the agent where it is and lets it talk to *other* Grok
|
|
30
|
-
* Bot agents.
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
import { z } from "zod";
|
|
34
|
-
import { defineExtension } from "../../extensions.js";
|
|
35
|
-
import type { Extension } from "../../types.js";
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* A Grok Bot agent the model may address, by the name shown in the app.
|
|
39
|
-
* Type alias, not an interface: `list` returns these.
|
|
40
|
-
*/
|
|
41
|
-
export type ConfiguredGrokBotAgent = {
|
|
42
|
-
name: string;
|
|
43
|
-
/** What the agent is for; shown to the model by `list`. */
|
|
44
|
-
description?: string;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
/** Mount options; every field is optional. */
|
|
48
|
-
export interface CursorGrokBotAgentsOptions {
|
|
49
|
-
/**
|
|
50
|
-
* The Grok Bot agents the model may talk to, by name. This is the
|
|
51
|
-
* allowlist for a call's own `agent`: names outside it are refused, and a
|
|
52
|
-
* lone configured agent is the default when a call names none. Without
|
|
53
|
-
* it, any name goes through and `needsApproval` defaults to true, since
|
|
54
|
-
* an unknown name creates an agent of that name on the account.
|
|
55
|
-
*/
|
|
56
|
-
agents?: Array<string | ConfiguredGrokBotAgent>;
|
|
57
|
-
/**
|
|
58
|
-
* Park messages for a human approval. Defaults to `true` when no `agents`
|
|
59
|
-
* are configured; `false` once they are. Pass an explicit boolean to
|
|
60
|
-
* override. Configured names still bound the model's choice regardless.
|
|
61
|
-
*/
|
|
62
|
-
needsApproval?: boolean;
|
|
63
|
-
/** Cursor API key. Defaults to the serve host's own key. */
|
|
64
|
-
apiKey?: string;
|
|
65
|
-
/**
|
|
66
|
-
* How often to read the agent's transcript while waiting for a reply, in
|
|
67
|
-
* milliseconds. Defaults to 750.
|
|
68
|
-
*/
|
|
69
|
-
pollIntervalMs?: number;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/** {@link CursorGrokBotAgentsOptions} with defaults applied. */
|
|
73
|
-
export interface CursorGrokBotAgentsConfig {
|
|
74
|
-
agents?: ConfiguredGrokBotAgent[];
|
|
75
|
-
needsApproval: boolean;
|
|
76
|
-
apiKey?: string;
|
|
77
|
-
pollIntervalMs: number;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/** The backend's session name limit. */
|
|
81
|
-
export const AGENT_NAME_MAX_LENGTH = 255;
|
|
82
|
-
const DEFAULT_POLL_INTERVAL_MS = 750;
|
|
83
|
-
|
|
84
|
-
const agentName = z
|
|
85
|
-
.string()
|
|
86
|
-
.trim()
|
|
87
|
-
.min(1, "Grok Bot agent names must not be empty.")
|
|
88
|
-
.max(AGENT_NAME_MAX_LENGTH);
|
|
89
|
-
|
|
90
|
-
const configuredAgent: z.ZodType<
|
|
91
|
-
ConfiguredGrokBotAgent,
|
|
92
|
-
z.ZodTypeDef,
|
|
93
|
-
string | ConfiguredGrokBotAgent
|
|
94
|
-
> = z
|
|
95
|
-
.union([agentName, z.object({ name: agentName, description: z.string().optional() })])
|
|
96
|
-
.transform(agent => (typeof agent === "string" ? { name: agent } : agent));
|
|
97
|
-
|
|
98
|
-
const agents = z
|
|
99
|
-
.array(configuredAgent)
|
|
100
|
-
.min(1, "agents must name at least one Grok Bot agent; omit it to allow any.")
|
|
101
|
-
.refine(
|
|
102
|
-
list => new Set(list.map(agent => agent.name.toLowerCase())).size === list.length,
|
|
103
|
-
"agents must not repeat a name (names match case-insensitively).",
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
const config: z.ZodType<
|
|
107
|
-
CursorGrokBotAgentsConfig,
|
|
108
|
-
z.ZodTypeDef,
|
|
109
|
-
CursorGrokBotAgentsOptions | undefined
|
|
110
|
-
> = z
|
|
111
|
-
.object({
|
|
112
|
-
agents: agents.optional(),
|
|
113
|
-
needsApproval: z.boolean().optional(),
|
|
114
|
-
apiKey: z.string().optional(),
|
|
115
|
-
pollIntervalMs: z.number().int().min(1).default(DEFAULT_POLL_INTERVAL_MS),
|
|
116
|
-
})
|
|
117
|
-
.default({})
|
|
118
|
-
.transform(options => ({
|
|
119
|
-
...options,
|
|
120
|
-
needsApproval: options.needsApproval ?? options.agents === undefined,
|
|
121
|
-
}));
|
|
122
|
-
|
|
123
|
-
const cursorGrokBotAgents: Extension<
|
|
124
|
-
CursorGrokBotAgentsConfig,
|
|
125
|
-
CursorGrokBotAgentsOptions | undefined
|
|
126
|
-
> = defineExtension({
|
|
127
|
-
root: import.meta.dirname,
|
|
128
|
-
description: "Talk to your Grok Bot agents and read their replies.",
|
|
129
|
-
config,
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
export default cursorGrokBotAgents;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Which Grok Bot agent a call addresses. The model names one per call, but
|
|
3
|
-
* the author's `agents` are the allowlist: with them configured, a name
|
|
4
|
-
* outside the list is refused (the backend would create an agent of that
|
|
5
|
-
* name), and a lone configured agent stands in when the call names none.
|
|
6
|
-
* Matching is case-insensitive and resolves to the configured spelling,
|
|
7
|
-
* since the backend looks names up exactly.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type { ConfiguredGrokBotAgent } from "../extension.js";
|
|
11
|
-
|
|
12
|
-
export function resolveAgentName(
|
|
13
|
-
requested: string | undefined,
|
|
14
|
-
configured: ConfiguredGrokBotAgent[] | undefined,
|
|
15
|
-
): string {
|
|
16
|
-
const name = requested?.trim();
|
|
17
|
-
if (configured === undefined) {
|
|
18
|
-
if (name === undefined || name === "") {
|
|
19
|
-
throw new Error("`agent` is required: this extension has no configured Grok Bot agents.");
|
|
20
|
-
}
|
|
21
|
-
return name;
|
|
22
|
-
}
|
|
23
|
-
const names = configured.map(agent => `"${agent.name}"`).join(", ");
|
|
24
|
-
if (name === undefined || name === "") {
|
|
25
|
-
const only = configured.length === 1 ? configured[0] : undefined;
|
|
26
|
-
if (only === undefined) {
|
|
27
|
-
throw new Error(
|
|
28
|
-
`\`agent\` is required: this extension configures several Grok Bot agents (${names}).`,
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
return only.name;
|
|
32
|
-
}
|
|
33
|
-
const match =
|
|
34
|
-
configured.find(agent => agent.name === name) ??
|
|
35
|
-
configured.find(agent => agent.name.toLowerCase() === name.toLowerCase());
|
|
36
|
-
if (match === undefined) {
|
|
37
|
-
throw new Error(
|
|
38
|
-
`"${name}" is not one of this extension's configured Grok Bot agents (${names}).`,
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
return match.name;
|
|
42
|
-
}
|