@cursor/bdk 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -1
- package/dist/bin/agent-serve.js +32 -8
- package/dist/channels/github/auth.d.ts.map +1 -1
- package/dist/channels/github/auth.js +36 -5
- package/dist/channels/slack/attachments.d.ts +2 -1
- package/dist/channels/slack/attachments.d.ts.map +1 -1
- package/dist/channels/slack/attachments.js +19 -9
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +26 -24
- package/dist/channels/slack/thread-context.d.ts +21 -11
- package/dist/channels/slack/thread-context.d.ts.map +1 -1
- package/dist/channels/slack/thread-context.js +75 -27
- package/dist/connections.d.ts +1 -1
- package/dist/connections.js +1 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.DtYVVVyK.js → app.4kQ8Db_q.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.CvuAJ0My.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.D47xT7J4.js → VPLocalSearchBox.DY1RwB8Q.js} +1 -1
- package/dist/docs/assets/chunks/{arc.CDJ6xzxR.js → arc.CxE_fSPK.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.l1Xnjd3N.js → architectureDiagram-Q4EWVU46.CPX426ui.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.x-finShZ.js → baseUniq.CB52JrKG.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.COC3qynH.js → blockDiagram-DXYQGD6D.J0cNaQCL.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.DdQO850E.js → c4Diagram-AHTNJAMY.DJn3vEGT.js} +1 -1
- package/dist/docs/assets/chunks/channel.BoNycAoN.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.Dpn8omLk.js → chunk-4BX2VUAB.Dao618F6.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.C0XWStUN.js → chunk-4TB4RGXK.QW8Rhjai.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.DsKSZfIM.js → chunk-55IACEB6.DfRLLKF_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.dNU6JDu6.js → chunk-EDXVE4YY.CIV2ApKQ.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DN41fxKE.js → chunk-FMBD7UC4.BEheSuxp.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.COpKCZus.js → chunk-OYMX7WX6.CUN88ENB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.HDB-azx2.js → chunk-QZHKN3VN.CgqCs8b_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.DEeX_a2j.js → chunk-YZCP3GAM.iCH0nnTJ.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/clone.Db22cH_-.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.C3yGL2A8.js → cose-bilkent-S5V4N54A.BLcUxhWE.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.Bpl24en4.js → dagre-KV5264BT.Ep7LofOm.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.nFco6seU.js → diagram-5BDNPKRD.Bzf4GSQ4.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DXhA6DWR.js → diagram-G4DWMVQ6.DD6Jh-eM.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.8GoOYcwk.js → diagram-MMDJMWI5.oOIl8bWd.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.DDBlqvlJ.js → diagram-TYMM5635.DHs85Ade.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.vl_N81P4.js → erDiagram-SMLLAGMA.BIb5ghCk.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.Cteg8g7I.js → flowDiagram-DWJPFMVM.DV4paY9k.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.D4aMhlMM.js → ganttDiagram-T4ZO3ILL.AyEKA6_v.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DF_J0D4q.js → gitGraphDiagram-UUTBAWPF.BltiCDFo.js} +1 -1
- package/dist/docs/assets/chunks/{graph.DJs0LDCf.js → graph.DzuEYGdC.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.Bb-4RQwg.js → infoDiagram-42DDH7IO.BV2l981J.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DEtQRSbc.js → ishikawaDiagram-UXIWVN3A.BA4Izf-m.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.DhQQ75FA.js → journeyDiagram-VCZTEJTY.DjaFbFS3.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.C4gEw3Rk.js → kanban-definition-6JOO6SKY.CfTFieDs.js} +1 -1
- package/dist/docs/assets/chunks/{layout.DT-PGlXa.js → layout.DzfWqTBV.js} +1 -1
- package/dist/docs/assets/chunks/{linear.BMMe__JW.js → linear.BO6mpulV.js} +1 -1
- package/dist/docs/assets/chunks/{min.XyaU9K9Q.js → min.BGgTadgT.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CbBM6xZ-.js → mindmap-definition-QFDTVHPH.DPuIXVWY.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DFJoIVou.js → pieDiagram-DEJITSTG.BOnl3bBg.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CQjkDYqb.js → quadrantDiagram-34T5L4WZ.DNB6Ckdc.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.D-mK-JQu.js → requirementDiagram-MS252O5E.D5-Qo7vb.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.BStQInpd.js → sankeyDiagram-XADWPNL6.8t65cesf.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.CA_eooPJ.js → sequenceDiagram-FGHM5R23.CaG07BdS.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.BXl-b7ad.js → stateDiagram-FHFEXIEX.TKOweTB6.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CuqmyQc4.js +1 -0
- package/dist/docs/assets/chunks/{theme.q37tOs4x.js → theme.Dx-JhpTB.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.vjuaGOSe.js → timeline-definition-GMOUNBTQ.fE53zQ2s.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BxduJl-F.js → vennDiagram-DHZGUBPP.DJsZZaJg.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.844kyrjl.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.D1z3ds0D.js → wardleyDiagram-NUSXRM2D.CMZ-Ru_t.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CRU5Ti9b.js → xychartDiagram-5P7HB3ND.XXrhBc7a.js} +1 -1
- package/dist/docs/assets/{deployment.md.nGo1yIsa.js → deployment.md.UhnJIMr-.js} +6 -9
- package/dist/docs/assets/{deployment.md.nGo1yIsa.lean.js → deployment.md.UhnJIMr-.lean.js} +1 -1
- package/dist/docs/assets/{guides_github.md.C2_DSWlE.js → guides_github.md.Bq9kQU9B.js} +9 -3
- package/dist/docs/assets/{guides_github.md.C2_DSWlE.lean.js → guides_github.md.Bq9kQU9B.lean.js} +1 -1
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.js → guides_jev.md.CRcgmjDb.js} +2 -2
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.lean.js → guides_jev.md.CRcgmjDb.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.ZbHQETOT.js → guides_slack.md.diqqXTTm.js} +2 -2
- package/dist/docs/assets/{guides_slack.md.ZbHQETOT.lean.js → guides_slack.md.diqqXTTm.lean.js} +1 -1
- package/dist/docs/assets/{quickstart.md.wG4shE1f.js → quickstart.md.CHpHPBUN.js} +5 -3
- package/dist/docs/assets/{quickstart.md.wG4shE1f.lean.js → quickstart.md.CHpHPBUN.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.DzGI777n.js → reference_agent-config.md.Cj5uBKp4.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.CFMNPreZ.js → reference_artifacts.md.CQfKq8F2.js} +1 -1
- package/dist/docs/assets/reference_cli.md.DgeLTO18.js +91 -0
- package/dist/docs/assets/reference_cli.md.DgeLTO18.lean.js +1 -0
- package/dist/docs/assets/{reference_connections.md._XpKiOaF.js → reference_connections.md.COq--gAm.js} +7 -3
- package/dist/docs/assets/{reference_connections.md._XpKiOaF.lean.js → reference_connections.md.COq--gAm.lean.js} +1 -1
- package/dist/docs/assets/{reference_evals.md.DqNyHMA6.js → reference_evals.md.CJm3uCUm.js} +4 -4
- package/dist/docs/assets/{reference_evals.md.DqNyHMA6.lean.js → reference_evals.md.CJm3uCUm.lean.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.js → reference_extensions.md.pa2tN-e4.js} +4 -3
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.lean.js → reference_extensions.md.pa2tN-e4.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.CRFTxt9M.js → reference_skills.md.Cy00QMKS.js} +3 -3
- package/dist/docs/assets/{reference_skills.md.CRFTxt9M.lean.js → reference_skills.md.Cy00QMKS.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.Cw5PKa3t.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.BzZSu1Gz.lean.js → troubleshooting.md.Cw5PKa3t.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +41 -44
- package/dist/docs/deployment.md +49 -16
- package/dist/docs/evals.html +35 -35
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +35 -35
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +43 -37
- package/dist/docs/guides/github.md +34 -0
- package/dist/docs/guides/gitlab.html +35 -35
- package/dist/docs/guides/grokbot-agents.html +35 -35
- package/dist/docs/guides/hooks.html +35 -35
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/jev.md +7 -0
- package/dist/docs/guides/mcp-oauth.html +35 -35
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +37 -37
- package/dist/docs/guides/slack.md +5 -0
- package/dist/docs/guides/webhooks.html +35 -35
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +35 -35
- package/dist/docs/index.html +35 -35
- package/dist/docs/llms-full.txt +223 -94
- package/dist/docs/quickstart.html +40 -38
- package/dist/docs/quickstart.md +7 -1
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/agent-config.md +1 -1
- package/dist/docs/reference/artifacts.html +37 -37
- package/dist/docs/reference/artifacts.md +1 -1
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +55 -61
- package/dist/docs/reference/cli.md +65 -63
- package/dist/docs/reference/connections.html +42 -38
- package/dist/docs/reference/connections.md +28 -2
- package/dist/docs/reference/evals.html +39 -39
- package/dist/docs/reference/evals.md +6 -7
- package/dist/docs/reference/extensions.html +39 -38
- package/dist/docs/reference/extensions.md +13 -0
- package/dist/docs/reference/hooks.html +35 -35
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +35 -35
- package/dist/docs/reference/sessions.html +35 -35
- package/dist/docs/reference/skills.html +38 -38
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/docs/troubleshooting.md +7 -3
- package/dist/extensions/cursor-grokbot-agents/extension.d.ts +77 -0
- package/dist/extensions/cursor-grokbot-agents/extension.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/extension.js +63 -0
- package/dist/extensions/cursor-grokbot-agents/lib/agents.d.ts +11 -0
- package/dist/extensions/cursor-grokbot-agents/lib/agents.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/agents.js +31 -0
- package/dist/extensions/cursor-grokbot-agents/lib/backend.d.ts +56 -0
- package/dist/extensions/cursor-grokbot-agents/lib/backend.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/backend.js +158 -0
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.d.ts +28 -0
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +59 -0
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.d.ts +53 -0
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +206 -0
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +15 -0
- package/dist/extensions/cursor-grokbot-agents/lib/lock.d.ts +12 -0
- package/dist/extensions/cursor-grokbot-agents/lib/lock.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/lock.js +25 -0
- package/dist/extensions/cursor-grokbot-agents/skills/consult.md +40 -0
- package/dist/extensions/cursor-grokbot-agents/tools/ask.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/ask.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/ask.js +37 -0
- package/dist/extensions/cursor-grokbot-agents/tools/check.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/check.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/check.js +32 -0
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +24 -0
- package/dist/extensions/cursor-grokbot-agents/tools/list.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/list.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/list.js +34 -0
- package/dist/extensions/jev/extension.d.ts +3 -0
- package/dist/extensions/jev/extension.d.ts.map +1 -1
- package/dist/extensions/jev/extension.js +10 -1
- package/dist/extensions/jev/lib/evaluate.d.ts +4 -0
- package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -1
- package/dist/extensions/jev/lib/evaluate.js +6 -2
- package/dist/extensions.d.ts +4 -2
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +5 -2
- package/dist/internal/cli-ax.d.ts +1 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +43 -10
- package/dist/internal/cli-deploy.d.ts +5 -1
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +41 -9
- package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
- package/dist/internal/cli-mcp-oauth.js +2 -1
- package/dist/internal/cli-skills.d.ts +1 -1
- package/dist/internal/cli-skills.d.ts.map +1 -1
- package/dist/internal/cli-skills.js +5 -5
- package/dist/internal/connection-env.d.ts +31 -0
- package/dist/internal/connection-env.d.ts.map +1 -0
- package/dist/internal/connection-env.js +84 -0
- package/dist/internal/cursor/backend-client.js +5 -0
- package/dist/internal/deploy-client.d.ts +30 -6
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +45 -9
- package/dist/internal/discovery/agent-config.d.ts +6 -5
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +29 -28
- package/dist/internal/discovery/agent.js +1 -1
- package/dist/internal/discovery/connections.d.ts.map +1 -1
- package/dist/internal/discovery/connections.js +11 -0
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +12 -0
- package/dist/internal/hosted-delivery-protocol.d.ts +36 -11
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +31 -8
- package/dist/internal/hosted-delivery.d.ts +2 -2
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +228 -48
- package/dist/internal/hosting.d.ts +10 -2
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +33 -3
- package/dist/internal/install-cursor-skills.d.ts +20 -24
- package/dist/internal/install-cursor-skills.d.ts.map +1 -1
- package/dist/internal/install-cursor-skills.js +50 -48
- package/dist/internal/legacy-command-guard.d.ts +2 -0
- package/dist/internal/legacy-command-guard.d.ts.map +1 -1
- package/dist/internal/legacy-command-guard.js +10 -1
- package/dist/internal/mcp-host.d.ts +6 -0
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +35 -16
- package/dist/internal/sdk-runner.d.ts +2 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +10 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +11 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +9 -5
- package/dist/types.d.ts +29 -3
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +49 -16
- package/docs/guides/github.md +34 -0
- package/docs/guides/jev.md +7 -0
- package/docs/guides/slack.md +5 -0
- package/docs/quickstart.md +7 -1
- package/docs/reference/agent-config.md +1 -1
- package/docs/reference/artifacts.md +1 -1
- package/docs/reference/cli.md +65 -63
- package/docs/reference/connections.md +28 -2
- package/docs/reference/evals.md +6 -7
- package/docs/reference/extensions.md +13 -0
- package/docs/troubleshooting.md +7 -3
- package/package.json +1 -11
- package/scripts/install-cursor-skills.mjs +1 -1
- package/skills/create-agent/SKILL.md +1 -1
- package/skills/debug/SKILL.md +1 -1
- package/skills/deploy/SKILL.md +1 -1
- package/skills/evals/SKILL.md +1 -1
- package/skills/framework-map/SKILL.md +1 -1
- package/skills/github/SKILL.md +1 -1
- package/skills/hillclimb/SKILL.md +1 -1
- package/skills/mcp-auth/SKILL.md +1 -1
- package/skills/otel/SKILL.md +1 -1
- package/skills/setup-slack/SKILL.md +1 -1
- package/templates/agents-md/bot/lib/collect.ts +1 -4
- package/templates/code-wiki/bot/channels/github.ts +2 -2
- package/templates/demo/bot/channels/github.ts +5 -1
- package/templates/pr-autofixer/bot/lib/start-drive.ts +4 -4
- package/templates/triage/bot/lib/types.ts +6 -6
- package/dist/docs/assets/chunks/@localSearchIndexroot.BgTA2tV1.js +0 -1
- package/dist/docs/assets/chunks/channel.B2nMEx82.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D8iCH2ve.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D8iCH2ve.js +0 -1
- package/dist/docs/assets/chunks/clone.5XNLjby0.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.yGM2uLZQ.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.DKfyIejL.js +0 -162
- package/dist/docs/assets/reference_cli.md.BK2QUH67.js +0 -97
- package/dist/docs/assets/reference_cli.md.BK2QUH67.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.BzZSu1Gz.js +0 -1
- package/src/artifacts.ts +0 -68
- package/src/bin/agent-serve.ts +0 -1833
- package/src/channels/bitbucket/api.ts +0 -891
- package/src/channels/bitbucket/binding.ts +0 -417
- package/src/channels/bitbucket/bitbucket-channel.ts +0 -162
- package/src/channels/bitbucket/bitbucket-webhook.ts +0 -519
- package/src/channels/bitbucket/checks.ts +0 -146
- package/src/channels/bitbucket/cursor-account.ts +0 -106
- package/src/channels/bitbucket/defaults.ts +0 -100
- package/src/channels/bitbucket/events.ts +0 -74
- package/src/channels/bitbucket/index.ts +0 -51
- package/src/channels/bitbucket/replay.ts +0 -421
- package/src/channels/bitbucket/state.ts +0 -59
- package/src/channels/bitbucket/types.ts +0 -261
- package/src/channels/change-monitors/change-monitors-channel.ts +0 -63
- package/src/channels/change-monitors/index.ts +0 -8
- package/src/channels/change-monitors/types.ts +0 -42
- package/src/channels/checks.ts +0 -185
- package/src/channels/deployments/deployments-channel.ts +0 -224
- package/src/channels/deployments/index.ts +0 -25
- package/src/channels/deployments/types.ts +0 -92
- package/src/channels/github/api.ts +0 -526
- package/src/channels/github/auth.ts +0 -254
- package/src/channels/github/binding.ts +0 -233
- package/src/channels/github/checks.ts +0 -145
- package/src/channels/github/cursor-account.ts +0 -303
- package/src/channels/github/defaults.ts +0 -168
- package/src/channels/github/events.ts +0 -67
- package/src/channels/github/forward.ts +0 -359
- package/src/channels/github/github-channel.ts +0 -2334
- package/src/channels/github/index.ts +0 -54
- package/src/channels/github/progress.ts +0 -365
- package/src/channels/github/replay.ts +0 -372
- package/src/channels/github/state.ts +0 -124
- package/src/channels/github/types.ts +0 -590
- package/src/channels/gitlab/api.ts +0 -329
- package/src/channels/gitlab/binding.ts +0 -231
- package/src/channels/gitlab/checks.ts +0 -228
- package/src/channels/gitlab/cursor-account.ts +0 -105
- package/src/channels/gitlab/defaults.ts +0 -80
- package/src/channels/gitlab/events.ts +0 -37
- package/src/channels/gitlab/gitlab-channel.ts +0 -160
- package/src/channels/gitlab/gitlab-webhook.ts +0 -509
- package/src/channels/gitlab/index.ts +0 -44
- package/src/channels/gitlab/replay.ts +0 -328
- package/src/channels/gitlab/state.ts +0 -55
- package/src/channels/gitlab/types.ts +0 -247
- package/src/channels/issues/index.ts +0 -9
- package/src/channels/issues/issues-channel.ts +0 -45
- package/src/channels/issues/types.ts +0 -38
- package/src/channels/origin/api.ts +0 -507
- package/src/channels/origin/binding.ts +0 -114
- package/src/channels/origin/checks.ts +0 -250
- package/src/channels/origin/cursor-account.ts +0 -58
- package/src/channels/origin/defaults.ts +0 -140
- package/src/channels/origin/events.ts +0 -35
- package/src/channels/origin/index.ts +0 -35
- package/src/channels/origin/origin-channel.ts +0 -815
- package/src/channels/origin/origin-webhook.ts +0 -296
- package/src/channels/origin/reactions.ts +0 -72
- package/src/channels/origin/state.ts +0 -54
- package/src/channels/origin/types.ts +0 -295
- package/src/channels/slack/agentic-delivery.ts +0 -634
- package/src/channels/slack/agentic-posted.ts +0 -135
- package/src/channels/slack/agentic-signals.ts +0 -231
- package/src/channels/slack/api.ts +0 -761
- package/src/channels/slack/approvals.ts +0 -279
- package/src/channels/slack/assistant.ts +0 -76
- package/src/channels/slack/attachments.ts +0 -596
- package/src/channels/slack/auth.ts +0 -127
- package/src/channels/slack/blocks.ts +0 -131
- package/src/channels/slack/bot-mentions.ts +0 -318
- package/src/channels/slack/channel-watch.ts +0 -314
- package/src/channels/slack/cli-project.ts +0 -249
- package/src/channels/slack/code-fences.ts +0 -171
- package/src/channels/slack/constants.ts +0 -38
- package/src/channels/slack/credentials.ts +0 -88
- package/src/channels/slack/defaults.ts +0 -714
- package/src/channels/slack/dispatch.ts +0 -1060
- package/src/channels/slack/doctor.ts +0 -338
- package/src/channels/slack/eval-directive.ts +0 -306
- package/src/channels/slack/event-id-dedupe.ts +0 -30
- package/src/channels/slack/external-policy.ts +0 -75
- package/src/channels/slack/footer.ts +0 -106
- package/src/channels/slack/inbound.ts +0 -416
- package/src/channels/slack/index.ts +0 -53
- package/src/channels/slack/init.ts +0 -169
- package/src/channels/slack/interactive.ts +0 -406
- package/src/channels/slack/links.ts +0 -23
- package/src/channels/slack/live-delivery.ts +0 -489
- package/src/channels/slack/log.ts +0 -70
- package/src/channels/slack/manifest.ts +0 -240
- package/src/channels/slack/message-body.ts +0 -82
- package/src/channels/slack/nudge-carrier.ts +0 -224
- package/src/channels/slack/nudge-store.ts +0 -334
- package/src/channels/slack/paint-start.ts +0 -93
- package/src/channels/slack/placeholder.ts +0 -358
- package/src/channels/slack/pr-ref.ts +0 -74
- package/src/channels/slack/progress-delivery.ts +0 -138
- package/src/channels/slack/reasoning-card.ts +0 -125
- package/src/channels/slack/reasoning-chip.ts +0 -41
- package/src/channels/slack/recording-sink.ts +0 -167
- package/src/channels/slack/redact.ts +0 -6
- package/src/channels/slack/reply-options.ts +0 -279
- package/src/channels/slack/setup.ts +0 -125
- package/src/channels/slack/slack-channel.ts +0 -744
- package/src/channels/slack/socket-mode.ts +0 -140
- package/src/channels/slack/stop.ts +0 -25
- package/src/channels/slack/stream.ts +0 -66
- package/src/channels/slack/thread-context.ts +0 -485
- package/src/channels/slack/tool-approval-events.ts +0 -233
- package/src/channels/slack/tool-cards.ts +0 -198
- package/src/channels/slack/tool-chip.ts +0 -34
- package/src/channels/slack/types.ts +0 -787
- package/src/channels/slack/upload.ts +0 -137
- package/src/channels.ts +0 -543
- package/src/connections.ts +0 -153
- package/src/dashboard-session-url.ts +0 -30
- package/src/evals/assertions.ts +0 -688
- package/src/evals/expect.ts +0 -250
- package/src/evals/judge.ts +0 -329
- package/src/evals/loaders.ts +0 -111
- package/src/evals/matchers.ts +0 -223
- package/src/evals/reporters.ts +0 -257
- package/src/evals/results.ts +0 -130
- package/src/evals/run-facts.ts +0 -306
- package/src/evals.ts +0 -709
- package/src/extensions/cursor-cloud-agents/extension.ts +0 -131
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +0 -386
- package/src/extensions/cursor-cloud-agents/lib/channels.ts +0 -11
- package/src/extensions/cursor-cloud-agents/lib/fleet.ts +0 -98
- package/src/extensions/cursor-cloud-agents/lib/inputs.ts +0 -5
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +0 -80
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +0 -19
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +0 -37
- package/src/extensions/cursor-cloud-agents/tools/cancel.ts +0 -21
- package/src/extensions/cursor-cloud-agents/tools/dump.ts +0 -47
- package/src/extensions/cursor-cloud-agents/tools/get.ts +0 -18
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +0 -62
- package/src/extensions/cursor-cloud-agents/tools/list.ts +0 -31
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +0 -36
- package/src/extensions/improve/extension.ts +0 -69
- package/src/extensions/improve/skills/yourself.ts +0 -50
- package/src/extensions/jev/extension.ts +0 -95
- package/src/extensions/jev/lib/evaluate.ts +0 -266
- package/src/extensions/jev/skills/gated-write.md +0 -25
- package/src/extensions/jev/skills/questions.md +0 -33
- package/src/extensions/jev/tools/evaluate.ts +0 -82
- package/src/extensions/slack-communication/evals/harness.ts +0 -705
- package/src/extensions/slack-communication/evals/slack-communication.eval.ts +0 -830
- package/src/extensions/slack-communication/evals/slack-placeholder.eval.ts +0 -172
- package/src/extensions/slack-communication/extension.ts +0 -44
- package/src/extensions/slack-communication/skills/slack-voice.ts +0 -56
- package/src/extensions/slack-communication/tools/delete-message.ts +0 -33
- package/src/extensions/slack-communication/tools/edit-message.ts +0 -42
- package/src/extensions/slack-communication/tools/post-card.ts +0 -28
- package/src/extensions/slack-communication/tools/post-file.ts +0 -82
- package/src/extensions/slack-communication/tools/post-update.ts +0 -40
- package/src/extensions/slack-communication/tools/react.ts +0 -30
- package/src/extensions/slack-communication/tools/set-status.ts +0 -21
- package/src/extensions.ts +0 -179
- package/src/files-backends/agent-store-presigned-url.ts +0 -11
- package/src/files-backends/cursor-hosted.ts +0 -1212
- package/src/files-backends/local-fs.ts +0 -163
- package/src/files.ts +0 -293
- package/src/filesystem.ts +0 -2005
- package/src/hooks.ts +0 -30
- package/src/index.ts +0 -259
- package/src/internal/advertise-tools.ts +0 -370
- package/src/internal/approval-gate.ts +0 -103
- package/src/internal/artifacts-store.ts +0 -836
- package/src/internal/as-of.ts +0 -257
- package/src/internal/auth.ts +0 -46
- package/src/internal/authored-alias-hooks.ts +0 -138
- package/src/internal/authored-loaders.ts +0 -188
- package/src/internal/bounded-int.ts +0 -24
- package/src/internal/bounded.ts +0 -25
- package/src/internal/brand.ts +0 -28
- package/src/internal/browser-origin-guard.ts +0 -67
- package/src/internal/builtin-tools/artifacts.ts +0 -62
- package/src/internal/builtin-tools/index.ts +0 -53
- package/src/internal/builtin-tools/reminders.ts +0 -145
- package/src/internal/channel-dispatch.ts +0 -129
- package/src/internal/channel-route-dispatch.ts +0 -58
- package/src/internal/channel-state.ts +0 -83
- package/src/internal/chat-client.ts +0 -594
- package/src/internal/cli-ax.ts +0 -2273
- package/src/internal/cli-bitbucket.ts +0 -438
- package/src/internal/cli-convert-automation.ts +0 -335
- package/src/internal/cli-cursor.ts +0 -282
- package/src/internal/cli-deploy.ts +0 -2486
- package/src/internal/cli-docs.ts +0 -192
- package/src/internal/cli-github.ts +0 -806
- package/src/internal/cli-gitlab.ts +0 -452
- package/src/internal/cli-images.ts +0 -672
- package/src/internal/cli-manifest.ts +0 -56
- package/src/internal/cli-mcp-oauth.ts +0 -395
- package/src/internal/cli-mcp.ts +0 -808
- package/src/internal/cli-skills.ts +0 -99
- package/src/internal/cli-slack-manual.ts +0 -418
- package/src/internal/cli-slack.ts +0 -874
- package/src/internal/cloud-merge.ts +0 -51
- package/src/internal/cloud-turn-cost.ts +0 -159
- package/src/internal/continuation-channel.ts +0 -233
- package/src/internal/continuation-identity.ts +0 -935
- package/src/internal/conversation-mirror.ts +0 -423
- package/src/internal/convert-automation/convert-workflow.ts +0 -1377
- package/src/internal/convert-automation/slug.ts +0 -29
- package/src/internal/convert-automation/types.ts +0 -212
- package/src/internal/cron.ts +0 -76
- package/src/internal/cursor/account-mcp.ts +0 -692
- package/src/internal/cursor/backend-client.ts +0 -978
- package/src/internal/cursor/bound-secret-file.ts +0 -101
- package/src/internal/cursor/credentials.ts +0 -560
- package/src/internal/cursor/cursor-api-transport.ts +0 -65
- package/src/internal/cursor/github-credentials.ts +0 -228
- package/src/internal/cursor/hosted-bound-secrets.ts +0 -71
- package/src/internal/cursor/hosted-deployment-secrets.ts +0 -100
- package/src/internal/cursor/hosted-store-secrets.ts +0 -152
- package/src/internal/cursor/session-token.ts +0 -111
- package/src/internal/cursor/store-api-client.ts +0 -323
- package/src/internal/cursor-account-mcp-auth.ts +0 -303
- package/src/internal/cursor-agent-template.ts +0 -50
- package/src/internal/cursor-deployment-relay.ts +0 -315
- package/src/internal/cursor-event-relay.ts +0 -675
- package/src/internal/cursor-relay-core.ts +0 -563
- package/src/internal/deferred-channel-session.ts +0 -61
- package/src/internal/deploy-client.ts +0 -1504
- package/src/internal/deploy-manifest.ts +0 -361
- package/src/internal/deploy-source.ts +0 -144
- package/src/internal/describe-error.ts +0 -32
- package/src/internal/dev-mode.ts +0 -20
- package/src/internal/discovery/agent-config.ts +0 -288
- package/src/internal/discovery/agent.ts +0 -381
- package/src/internal/discovery/channels.ts +0 -100
- package/src/internal/discovery/connections.ts +0 -505
- package/src/internal/discovery/context.ts +0 -38
- package/src/internal/discovery/cursor-plugin.ts +0 -628
- package/src/internal/discovery/extension-overlay.ts +0 -247
- package/src/internal/discovery/extensions.ts +0 -490
- package/src/internal/discovery/fs.ts +0 -103
- package/src/internal/discovery/hooks.ts +0 -63
- package/src/internal/discovery/info.ts +0 -174
- package/src/internal/discovery/instructions.ts +0 -98
- package/src/internal/discovery/modules.ts +0 -107
- package/src/internal/discovery/names.ts +0 -45
- package/src/internal/discovery/project.ts +0 -319
- package/src/internal/discovery/reminders.ts +0 -65
- package/src/internal/discovery/runtime.ts +0 -158
- package/src/internal/discovery/schedules.ts +0 -120
- package/src/internal/discovery/seed-files.ts +0 -34
- package/src/internal/discovery/services.ts +0 -151
- package/src/internal/discovery/skills.ts +0 -174
- package/src/internal/discovery/subagent.ts +0 -138
- package/src/internal/discovery/tools.ts +0 -170
- package/src/internal/discovery.ts +0 -27
- package/src/internal/distribution.ts +0 -126
- package/src/internal/docs-site.ts +0 -248
- package/src/internal/duration.ts +0 -37
- package/src/internal/env-file.ts +0 -83
- package/src/internal/eval-judge-model.ts +0 -142
- package/src/internal/eval-run-store.ts +0 -585
- package/src/internal/eval-runner.ts +0 -823
- package/src/internal/evals-client.ts +0 -475
- package/src/internal/event-log.ts +0 -342
- package/src/internal/event-mapper.ts +0 -811
- package/src/internal/expected-delivery-failure.ts +0 -34
- package/src/internal/factory-resource-channel.ts +0 -103
- package/src/internal/filesystem/errors.ts +0 -207
- package/src/internal/filesystem/format.ts +0 -253
- package/src/internal/filesystem/merge.ts +0 -192
- package/src/internal/filesystem/nearest.ts +0 -112
- package/src/internal/filesystem/scratch.ts +0 -239
- package/src/internal/filesystem/sdk-schemas.ts +0 -204
- package/src/internal/filesystem/tools.ts +0 -804
- package/src/internal/filesystem/walk.ts +0 -366
- package/src/internal/fixtures/units-server.ts +0 -52
- package/src/internal/framework-file-storage.ts +0 -357
- package/src/internal/framework-storage-selection.ts +0 -156
- package/src/internal/frontmatter.ts +0 -108
- package/src/internal/github-fanout.ts +0 -144
- package/src/internal/guest-network.ts +0 -391
- package/src/internal/handleAgentServeTrigger.ts +0 -286
- package/src/internal/host-files.ts +0 -341
- package/src/internal/host-kv.ts +0 -81
- package/src/internal/host-otel.ts +0 -231
- package/src/internal/host-platforms.ts +0 -170
- package/src/internal/hosted-admission-adapter.ts +0 -47
- package/src/internal/hosted-admission-context.ts +0 -37
- package/src/internal/hosted-catch-protocol.ts +0 -112
- package/src/internal/hosted-catch.ts +0 -179
- package/src/internal/hosted-delivery-protocol.ts +0 -787
- package/src/internal/hosted-delivery.ts +0 -1152
- package/src/internal/hosted-execution-diag.ts +0 -291
- package/src/internal/hosted-execution-flush.ts +0 -136
- package/src/internal/hosted-execution-latency.ts +0 -301
- package/src/internal/hosted-managed-automation.ts +0 -116
- package/src/internal/hosting.ts +0 -107
- package/src/internal/http-channel-define.ts +0 -25
- package/src/internal/http-channel.ts +0 -669
- package/src/internal/http-control-plane-session.ts +0 -110
- package/src/internal/ids.ts +0 -39
- package/src/internal/incoming-headers-to-fetch.ts +0 -45
- package/src/internal/init-interview.ts +0 -360
- package/src/internal/init-project.ts +0 -711
- package/src/internal/init-scaffold.ts +0 -182
- package/src/internal/inline-stdio-define-stub.ts +0 -4
- package/src/internal/inline-stdio-mcp.ts +0 -230
- package/src/internal/install-cursor-skills.ts +0 -601
- package/src/internal/is-record.ts +0 -3
- package/src/internal/json-schema.ts +0 -95
- package/src/internal/legacy-command-guard.ts +0 -54
- package/src/internal/listen-port.ts +0 -85
- package/src/internal/local-control-plane.ts +0 -442
- package/src/internal/local-env.ts +0 -59
- package/src/internal/local-ingress.ts +0 -90
- package/src/internal/log-ring.ts +0 -59
- package/src/internal/logs-client.ts +0 -477
- package/src/internal/map-pool.ts +0 -39
- package/src/internal/mcp-endpoint.ts +0 -747
- package/src/internal/mcp-host.ts +0 -481
- package/src/internal/mcp-oauth-on-demand.ts +0 -337
- package/src/internal/mcp-oauth-persist.ts +0 -118
- package/src/internal/mcp-oauth.ts +0 -549
- package/src/internal/net.ts +0 -29
- package/src/internal/open-browser.ts +0 -41
- package/src/internal/otel/attrs.ts +0 -16
- package/src/internal/otel/collector.ts +0 -937
- package/src/internal/otel/config.ts +0 -287
- package/src/internal/otel/http.ts +0 -122
- package/src/internal/otel/mcp.ts +0 -56
- package/src/internal/otel/propagation.ts +0 -17
- package/src/internal/otel/runtime.ts +0 -441
- package/src/internal/package-inline-stdio.ts +0 -114
- package/src/internal/peer-connections.ts +0 -96
- package/src/internal/platform-schedule-sync.ts +0 -75
- package/src/internal/platform-timers.ts +0 -365
- package/src/internal/playground/static.ts +0 -278
- package/src/internal/playground/toolchain.ts +0 -270
- package/src/internal/playground-proxy.ts +0 -564
- package/src/internal/process-memory-telemetry.ts +0 -334
- package/src/internal/project-layout.ts +0 -31
- package/src/internal/prompt-context.ts +0 -116
- package/src/internal/reminder-control-plane-protocol.ts +0 -482
- package/src/internal/reminder-runner.ts +0 -1559
- package/src/internal/reminder-schedule.ts +0 -104
- package/src/internal/reminder-store.ts +0 -176
- package/src/internal/request-error-status.ts +0 -95
- package/src/internal/request-headers.ts +0 -21
- package/src/internal/resolve-prod-target.ts +0 -334
- package/src/internal/resolved-connections.ts +0 -190
- package/src/internal/router.ts +0 -143
- package/src/internal/run-client.ts +0 -354
- package/src/internal/runtime-dispatch-runner.ts +0 -50
- package/src/internal/sanitize-mcp-tool-name.ts +0 -31
- package/src/internal/schedule-runner.ts +0 -154
- package/src/internal/scm/pr-url.ts +0 -245
- package/src/internal/sdk-runner.ts +0 -948
- package/src/internal/serve-restart.ts +0 -113
- package/src/internal/server.ts +0 -3135
- package/src/internal/session-cost.ts +0 -208
- package/src/internal/session-engine.ts +0 -5618
- package/src/internal/session-links.ts +0 -84
- package/src/internal/session-run-log.ts +0 -535
- package/src/internal/session-store.ts +0 -307
- package/src/internal/session-urls.ts +0 -32
- package/src/internal/sessions-client.ts +0 -239
- package/src/internal/skill-catalog.ts +0 -66
- package/src/internal/skills-sync.ts +0 -55
- package/src/internal/slack-provision-client.ts +0 -544
- package/src/internal/slack-thread-key.ts +0 -11
- package/src/internal/sleep.ts +0 -3
- package/src/internal/start-log-store.ts +0 -164
- package/src/internal/steering.ts +0 -17
- package/src/internal/storage-coordinator.ts +0 -800
- package/src/internal/storage-roles.ts +0 -86
- package/src/internal/storage.ts +0 -1
- package/src/internal/store-api-protocol.ts +0 -205
- package/src/internal/store-mirror.ts +0 -73
- package/src/internal/stream-progress.ts +0 -294
- package/src/internal/terminal-style.ts +0 -133
- package/src/internal/testing/factory-resource-fixtures.ts +0 -84
- package/src/internal/testing/scm-continuation-fixtures.ts +0 -285
- package/src/internal/tool-catalog.ts +0 -104
- package/src/internal/tool-policy.ts +0 -222
- package/src/internal/tool-result.ts +0 -50
- package/src/internal/trajectory.ts +0 -418
- package/src/internal/turn-cost.ts +0 -136
- package/src/internal/turn-governor.ts +0 -145
- package/src/internal/turn-lease-store.ts +0 -144
- package/src/internal/turn-outbox.ts +0 -77
- package/src/internal/update-check.ts +0 -517
- package/src/internal/v2-hosting.ts +0 -52
- package/src/internal/workspace-sync.ts +0 -114
- package/src/internal/workspace.ts +0 -505
- package/src/kv/memory-kv.ts +0 -94
- package/src/kv.ts +0 -18
- package/src/memory.ts +0 -487
- package/src/otel-public.ts +0 -24
- package/src/otel.ts +0 -320
- package/src/prompt.ts +0 -80
- package/src/reminders.ts +0 -65
- package/src/schedules.ts +0 -31
- package/src/skills.ts +0 -27
- package/src/storage-backends/cursor-hosted-v2.ts +0 -204
- package/src/storage-backends/cursor-hosted.ts +0 -388
- package/src/storage-backends/file-kv.ts +0 -276
- package/src/storage-protocol.ts +0 -261
- package/src/storage.ts +0 -408
- package/src/tools.ts +0 -166
- package/src/types.ts +0 -3766
- /package/dist/docs/assets/{reference_agent-config.md.DzGI777n.lean.js → reference_agent-config.md.Cj5uBKp4.lean.js} +0 -0
- /package/dist/docs/assets/{reference_artifacts.md.CFMNPreZ.lean.js → reference_artifacts.md.CQfKq8F2.lean.js} +0 -0
|
@@ -1,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,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Self-improvement as an extension. An agent's behaviour is source in a
|
|
3
|
-
* repository, so changing how it behaves is a change to that source: a
|
|
4
|
-
* one-off Cursor cloud agent does the coding on a branch and opens a pull
|
|
5
|
-
* request, the agent that mounted this writes the brief and reports the
|
|
6
|
-
* pull request. Durable behavior changes only after review, merge, and
|
|
7
|
-
* deployment. A cloud-runtime turn may edit its ephemeral checkout while
|
|
8
|
-
* preparing the pull request.
|
|
9
|
-
*
|
|
10
|
-
* ```ts
|
|
11
|
-
* // agent/extensions/improve.ts
|
|
12
|
-
* import improve from "@cursor/bdk/extensions/improve";
|
|
13
|
-
*
|
|
14
|
-
* export default improve({
|
|
15
|
-
* repo: "https://github.com/acme/agents",
|
|
16
|
-
* path: "agents/concierge",
|
|
17
|
-
* });
|
|
18
|
-
* ```
|
|
19
|
-
*
|
|
20
|
-
* Contributes the `<namespace>__yourself` skill; mount it as `improve` so
|
|
21
|
-
* the skill reads `improve__yourself`. The coding goes through the
|
|
22
|
-
* cursor-cloud-agents extension, so mount that too, with `repo` among its
|
|
23
|
-
* `cloud.repos`. An agent whose own turns run on a cloud VM with the
|
|
24
|
-
* repository checked out needs no second mount: the skill has it work in
|
|
25
|
-
* that checkout.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
import { z } from "zod";
|
|
29
|
-
import { defineExtension } from "../../extensions.js";
|
|
30
|
-
import type { Extension } from "../../types.js";
|
|
31
|
-
|
|
32
|
-
export interface ImproveOptions {
|
|
33
|
-
/** Repository that holds the agent's source. One of the cloud agents mount's `cloud.repos`. */
|
|
34
|
-
repo: string;
|
|
35
|
-
/** The agent's directory in the repository, as `agent-sdk deploy --path` names it. */
|
|
36
|
-
path: string;
|
|
37
|
-
/** Ref the deployment tracks: branches start there and pull requests target it. Defaults to `main`. */
|
|
38
|
-
ref?: string;
|
|
39
|
-
/** What a coding agent must know about this tree beyond the Agent SDK layout, one line each. */
|
|
40
|
-
notes?: string[];
|
|
41
|
-
/** Who deploys a merged change and when it is live. Defaults to "It takes effect at the next deploy." */
|
|
42
|
-
deploy?: string;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/** {@link ImproveOptions} with defaults applied. */
|
|
46
|
-
export interface ImproveConfig extends ImproveOptions {
|
|
47
|
-
ref: string;
|
|
48
|
-
notes: string[];
|
|
49
|
-
deploy: string;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const line = z.string().trim().min(1);
|
|
53
|
-
|
|
54
|
-
const improve: Extension<ImproveConfig, ImproveOptions> = defineExtension({
|
|
55
|
-
root: import.meta.dirname,
|
|
56
|
-
description:
|
|
57
|
-
"Propose changes to your own source through a branch and pull request; durable behavior changes after review and deployment.",
|
|
58
|
-
config: z.object({
|
|
59
|
-
repo: z.string().url(),
|
|
60
|
-
path: z
|
|
61
|
-
.string()
|
|
62
|
-
.regex(/^[^\s/]+(\/[^\s/]+)*$/, "Expected a repository-relative path like agents/concierge"),
|
|
63
|
-
ref: line.default("main"),
|
|
64
|
-
notes: z.array(line).default([]),
|
|
65
|
-
deploy: line.default("It takes effect at the next deploy."),
|
|
66
|
-
}),
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
export default improve;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { defineSkill } from "../../../skills.js";
|
|
2
|
-
import type { SkillDefinition } from "../../../types.js";
|
|
3
|
-
import extension from "../extension.js";
|
|
4
|
-
|
|
5
|
-
const { repo, path, ref, notes, deploy } = extension.config;
|
|
6
|
-
|
|
7
|
-
const treeNotes =
|
|
8
|
-
notes.length === 0
|
|
9
|
-
? ""
|
|
10
|
-
: `\nAbout this tree in particular; copy these into the brief verbatim:\n\n${notes.map(note => `- ${note}`).join("\n")}\n`;
|
|
11
|
-
|
|
12
|
-
const yourself: SkillDefinition = defineSkill({
|
|
13
|
-
description:
|
|
14
|
-
"Change your own source (instructions, skills, tools, channels, connections, model, deployment) through a one-off Cursor cloud agent and a pull request. Use whenever the ask is about how you yourself behave, including adding or editing a skill, so the change lands in the repository instead of the tree you happen to be running from.",
|
|
15
|
-
markdown: `# Improve yourself
|
|
16
|
-
|
|
17
|
-
You are the Agent SDK agent at \`${path}\` in ${repo}, deployed from \`${ref}\`. A change to how you behave is a change to that source, and it goes through the repository like any other change: a branch, a pull request, review, a deploy. Nothing about it is special except that people describe it in the second person.
|
|
18
|
-
|
|
19
|
-
## What changes where
|
|
20
|
-
|
|
21
|
-
Under \`${path}/agent/\`:
|
|
22
|
-
|
|
23
|
-
- \`instructions.md\` is the always-on system prompt: identity, tool-choice rules, the output contract.
|
|
24
|
-
- \`skills/<name>.md\` is a procedure loaded on demand; a \`<name>/SKILL.md\` directory carries sibling files. The \`description\` frontmatter is the routing rule the model sees.
|
|
25
|
-
- \`tools/<name>.ts\` is typed, executable behaviour: anything that must be right every time.
|
|
26
|
-
- \`channels/\`, \`mcp-connections/\`, and \`host-connections/\` are the surfaces and connectors.
|
|
27
|
-
- \`agent.ts\` is the model, its parameters, and the runtime.
|
|
28
|
-
- \`extensions/<ns>.ts\` mounts an extension. This skill arrives through one.
|
|
29
|
-
${treeNotes}
|
|
30
|
-
## The change is made on a clean checkout
|
|
31
|
-
|
|
32
|
-
Durable source changes happen on a branch from a clean checkout of ${repo} at \`${ref}\`, never by mutating a deployed local-runtime copy. When your own turn runs on a cloud VM with that repository checked out, its ephemeral tree is the checkout: branch there. Otherwise hand the coding to a one-off Cursor cloud agent through the cloud agents extension, with \`launch\` under its mount namespace, \`repo\` set to ${repo}, and \`starting_ref\` to \`${ref}\`. One agent per change; steer it with \`reply\` instead of launching another.
|
|
33
|
-
|
|
34
|
-
## The brief
|
|
35
|
-
|
|
36
|
-
Whoever makes the change works from the same brief. For a cloud agent it is the whole handoff, because it cannot see this conversation:
|
|
37
|
-
|
|
38
|
-
- Who and why. A change to the source of the Agent SDK agent at \`${path}\`, asked for by the person in front of you: the change in their words, and what you know about why they want it.
|
|
39
|
-
- Where. Repository ${repo}, ref \`${ref}\`, directory \`${path}\`, the layout above, and the files you expect to change.
|
|
40
|
-
- How. Follow the repository's own conventions (its \`AGENTS.md\` files and rules along the paths touched). Keep the diff to the change. Run the checks the repository defines for \`${path}\`. Open a pull request against \`${ref}\`; never merge it.
|
|
41
|
-
- Report. The pull request URL, what changed, what was verified and how, and anything left unverified.
|
|
42
|
-
|
|
43
|
-
## Report
|
|
44
|
-
|
|
45
|
-
If you launched a cloud agent, give the person its URL with the full id, read its report with \`dump\` (\`get\` for status), and read the pull request before repeating its claims. Report the pull request, not that you delegated.
|
|
46
|
-
|
|
47
|
-
A merged pull request changes nothing by itself. ${deploy} Never say you have already changed yourself. Editing your own source is still an edit: do it when asked, and stop at the pull request. Deploying is a separate authorization.`,
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
export default yourself;
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Jev decisions as an extension. Mount it and the agent can ask Jev for
|
|
3
|
-
* typed boolean, choice, and score answers, then call `decide` from your
|
|
4
|
-
* own channel hooks and tools before they start a turn or write.
|
|
5
|
-
*
|
|
6
|
-
* ```ts
|
|
7
|
-
* // agent/extensions/jev.ts
|
|
8
|
-
* import jev from "@cursor/bdk/extensions/jev";
|
|
9
|
-
*
|
|
10
|
-
* export default jev();
|
|
11
|
-
* ```
|
|
12
|
-
*
|
|
13
|
-
* Contributes `<namespace>__evaluate` plus the `questions` and
|
|
14
|
-
* `gated-write` skills (the namespace is the mount filename). Auth is
|
|
15
|
-
* `TYPESAFE_API_KEY`. The default model is `jev-latest`. Custom tools
|
|
16
|
-
* import `decide`, `above`, and `needsHuman` from this same module. Set
|
|
17
|
-
* `harnessTools` or `skills` to false when the agent should not see those
|
|
18
|
-
* contributions.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
import { z } from "zod";
|
|
22
|
-
import { defineExtension } from "../../extensions.js";
|
|
23
|
-
import type { Extension } from "../../types.js";
|
|
24
|
-
import { DEFAULT_EVALUATION_MODEL } from "./lib/evaluate.js";
|
|
25
|
-
|
|
26
|
-
/** Mount options; every field is optional. */
|
|
27
|
-
export interface JevOptions {
|
|
28
|
-
/** TypeSafe API key. Defaults to `TYPESAFE_API_KEY`. */
|
|
29
|
-
apiKey?: string;
|
|
30
|
-
/** TypeSafe model id. Defaults to `jev-latest`. */
|
|
31
|
-
model?: string;
|
|
32
|
-
/** Mount the namespaced `evaluate` harness tool. Defaults to true. */
|
|
33
|
-
harnessTools?: boolean;
|
|
34
|
-
/** Mount the `questions` and `gated-write` skills. Defaults to true. */
|
|
35
|
-
skills?: boolean;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/** {@link JevOptions} with defaults applied. */
|
|
39
|
-
export interface JevConfig {
|
|
40
|
-
apiKey?: string;
|
|
41
|
-
model: string;
|
|
42
|
-
harnessTools: boolean;
|
|
43
|
-
skills: boolean;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const config: z.ZodType<JevConfig, z.ZodTypeDef, JevOptions | undefined> = z
|
|
47
|
-
.object({
|
|
48
|
-
apiKey: z.string().min(1).optional(),
|
|
49
|
-
model: z.string().min(1).optional(),
|
|
50
|
-
harnessTools: z.boolean().default(true),
|
|
51
|
-
skills: z.boolean().default(true),
|
|
52
|
-
})
|
|
53
|
-
.default({})
|
|
54
|
-
.transform(options => ({
|
|
55
|
-
apiKey: options.apiKey,
|
|
56
|
-
model: options.model ?? DEFAULT_EVALUATION_MODEL,
|
|
57
|
-
harnessTools: options.harnessTools,
|
|
58
|
-
skills: options.skills,
|
|
59
|
-
}));
|
|
60
|
-
|
|
61
|
-
const jev: Extension<JevConfig, JevOptions | undefined> = defineExtension({
|
|
62
|
-
root: import.meta.dirname,
|
|
63
|
-
description: "Ask Jev for typed choice, score, and boolean answers.",
|
|
64
|
-
config,
|
|
65
|
-
contributions: options => ({
|
|
66
|
-
tools: options.harnessTools,
|
|
67
|
-
skills: options.skills,
|
|
68
|
-
}),
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
export type {
|
|
72
|
-
AnswersFor,
|
|
73
|
-
BooleanAnswer,
|
|
74
|
-
BooleanQuestion,
|
|
75
|
-
ChoiceAnswer,
|
|
76
|
-
ChoiceQuestion,
|
|
77
|
-
EvaluateArgs,
|
|
78
|
-
EvaluateResult,
|
|
79
|
-
EvaluationAnswer,
|
|
80
|
-
EvaluationQuestion,
|
|
81
|
-
EvaluationState,
|
|
82
|
-
QuestionMap,
|
|
83
|
-
ScoreAnswer,
|
|
84
|
-
ScoreQuestion,
|
|
85
|
-
} from "./lib/evaluate.js";
|
|
86
|
-
export {
|
|
87
|
-
above,
|
|
88
|
-
DEFAULT_EVALUATION_MODEL,
|
|
89
|
-
DEFAULT_HUMAN_THRESHOLD,
|
|
90
|
-
decide,
|
|
91
|
-
evaluate,
|
|
92
|
-
needsHuman,
|
|
93
|
-
} from "./lib/evaluate.js";
|
|
94
|
-
|
|
95
|
-
export default jev;
|