@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,423 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Durable mirror for the SDK runner's conversation store.
|
|
3
|
-
*
|
|
4
|
-
* The Cursor SDK keeps each local conversation in SQLite under the engine's
|
|
5
|
-
* state root (`runner/index.db` + `runner/agents/agent-<hash>/store.db`).
|
|
6
|
-
* That disk dies with the pod: on architecture v2, session **records** and
|
|
7
|
-
* event chunks survive replacement through the control-plane storage mirror
|
|
8
|
-
* (framework-storage-selection.ts), but the conversation itself was never
|
|
9
|
-
* hydrated anywhere — a replacement pod resumed every thread as a fresh
|
|
10
|
-
* conversation.
|
|
11
|
-
*
|
|
12
|
-
* This module mirrors the conversation through the SDK's own store APIs —
|
|
13
|
-
* the agent document (which carries `sdkMetadata.blobEncryptionKey`, without
|
|
14
|
-
* which the checkpoint blobs cannot be decrypted) plus its content-addressed
|
|
15
|
-
* checkpoint blobs — into the deployment's **framework-level** file store
|
|
16
|
-
* (`AGENT_SERVE_FRAMEWORK_STORE_SOURCE_ID`), alongside session records and
|
|
17
|
-
* transcripts and apart from the author-facing user store. The store is an
|
|
18
|
-
* Agent Store reached over `/v0/agent-serve-files` presigned URLs — **not
|
|
19
|
-
* mounted** as a filesystem in the engine VM (the FUSE mount at
|
|
20
|
-
* {@link DEPLOYMENT_STORE_MOUNT_PATH} exists only on cloud-runtime VMs) —
|
|
21
|
-
* so the mirror moves bytes through the {@link FileSink} contract instead.
|
|
22
|
-
*
|
|
23
|
-
* Going through the store APIs rather than copying `store.db` files sidesteps
|
|
24
|
-
* WAL consistency and the shared `index.db` (per-session raw copies would
|
|
25
|
-
* clobber other sessions' rows); checkpoint blobs are content-addressed, so
|
|
26
|
-
* repeat persists upload only what is new.
|
|
27
|
-
*
|
|
28
|
-
* Timing: the runner hydrates before `Agent.resume` (so a follow-up landing
|
|
29
|
-
* on a fresh pod — including a v2 hosted-execution delivery — finds the
|
|
30
|
-
* conversation before the turn runs) and persists after each local turn
|
|
31
|
-
* settles, **awaited**, because a hosted pod can be parked immediately after
|
|
32
|
-
* the execution reply.
|
|
33
|
-
*
|
|
34
|
-
* Run rows and run events are deliberately not mirrored: they are per-pod
|
|
35
|
-
* bookkeeping (turn numbers, stream offsets), and the durable session event
|
|
36
|
-
* stream already lives in the control-plane storage mirror.
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
import type { LocalAgentDocument, LocalAgentStore } from "@cursor/sdk";
|
|
40
|
-
import { agentSdkAgentStoreKeys, type FileSink } from "../files.js";
|
|
41
|
-
import { cursorHostedFiles } from "../files-backends/cursor-hosted.js";
|
|
42
|
-
import type { AgentProject } from "../types.js";
|
|
43
|
-
import { mapBounded } from "./bounded.js";
|
|
44
|
-
import { resolveApiKeySync } from "./cursor/credentials.js";
|
|
45
|
-
import { describeError } from "./describe-error.js";
|
|
46
|
-
import { resolveAgentV2Hosting } from "./v2-hosting.js";
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Persist/restore one SDK conversation between a {@link LocalAgentStore} and
|
|
50
|
-
* durable file storage. Implemented by {@link createConversationMirror};
|
|
51
|
-
* consumed by the SDK runner.
|
|
52
|
-
*/
|
|
53
|
-
export interface ConversationMirror {
|
|
54
|
-
/**
|
|
55
|
-
* Restore `sdkAgentId`'s conversation into `store` when the store does not
|
|
56
|
-
* already hold it. Resolves `true` when a conversation was restored,
|
|
57
|
-
* `false` on a definitive miss (never persisted, or already local — the
|
|
58
|
-
* caller falls through to its fresh-conversation path). A sink **failure**
|
|
59
|
-
* propagates: an outage must fail the turn (retryable) rather than
|
|
60
|
-
* silently fork the thread onto a fresh conversation.
|
|
61
|
-
*/
|
|
62
|
-
hydrate(store: LocalAgentStore, sdkAgentId: string): Promise<boolean>;
|
|
63
|
-
/**
|
|
64
|
-
* Mirror `sdkAgentId`'s conversation from `store` to the sink
|
|
65
|
-
* (last write wins). No-op until the conversation has a checkpoint.
|
|
66
|
-
*/
|
|
67
|
-
persist(store: LocalAgentStore, sdkAgentId: string): Promise<void>;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/** Wire shape at {@link agentSdkAgentStoreKeys.conversationManifest}. */
|
|
71
|
-
interface ConversationManifestV1 {
|
|
72
|
-
v: 1;
|
|
73
|
-
/** The SDK agent document, verbatim apart from `activeRunId` (nulled). */
|
|
74
|
-
agent: LocalAgentDocument;
|
|
75
|
-
/** Checkpoint blob ids present under the conversation's blob prefix. */
|
|
76
|
-
blobIds: string[];
|
|
77
|
-
persistedAtMs: number;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export interface CreateConversationMirrorOptions {
|
|
81
|
-
sink: FileSink;
|
|
82
|
-
/** Agent name baked into every minted key. */
|
|
83
|
-
agentName: string;
|
|
84
|
-
logger?: (line: string) => void;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/** Build a {@link ConversationMirror} over a {@link FileSink}. */
|
|
88
|
-
export function createConversationMirror(
|
|
89
|
-
options: CreateConversationMirrorOptions,
|
|
90
|
-
): ConversationMirror {
|
|
91
|
-
const { sink, agentName } = options;
|
|
92
|
-
const logger = options.logger ?? (() => {});
|
|
93
|
-
/**
|
|
94
|
-
* Blob ids known to be in the sink, per SDK agent id (upload dedupe).
|
|
95
|
-
* Bounded oldest-out like the files backend's etag cache: a resident
|
|
96
|
-
* engine touches an unbounded number of conversations over its lifetime,
|
|
97
|
-
* and a miss costs one manifest read, never correctness.
|
|
98
|
-
*/
|
|
99
|
-
const mirrored = new Map<string, Set<string>>();
|
|
100
|
-
const rememberMirrored = (sdkAgentId: string, blobIds: Set<string>): void => {
|
|
101
|
-
if (!mirrored.has(sdkAgentId) && mirrored.size >= MAX_TRACKED_CONVERSATIONS) {
|
|
102
|
-
const oldest = mirrored.keys().next();
|
|
103
|
-
if (!oldest.done) {
|
|
104
|
-
mirrored.delete(oldest.value);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
mirrored.set(sdkAgentId, blobIds);
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* Content of the last manifest each conversation **successfully** wrote
|
|
111
|
-
* (minus `persistedAtMs`, which changes on every call by construction).
|
|
112
|
-
* A persist whose agent document and blob list are unchanged skips the
|
|
113
|
-
* manifest rewrite — `persist` runs on every turn boundary, but most
|
|
114
|
-
* boundaries between checkpoints change nothing durable. Same bound and
|
|
115
|
-
* eviction as `mirrored`; a miss only costs a redundant rewrite.
|
|
116
|
-
*/
|
|
117
|
-
const lastManifestContent = new Map<string, string>();
|
|
118
|
-
const rememberManifest = (sdkAgentId: string, content: string): void => {
|
|
119
|
-
if (
|
|
120
|
-
!lastManifestContent.has(sdkAgentId) &&
|
|
121
|
-
lastManifestContent.size >= MAX_TRACKED_CONVERSATIONS
|
|
122
|
-
) {
|
|
123
|
-
const oldest = lastManifestContent.keys().next();
|
|
124
|
-
if (!oldest.done) {
|
|
125
|
-
lastManifestContent.delete(oldest.value);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
lastManifestContent.set(sdkAgentId, content);
|
|
129
|
-
};
|
|
130
|
-
/**
|
|
131
|
-
* Per-conversation serialization so a persist cannot interleave with a
|
|
132
|
-
* hydrate (or another persist) for the same conversation. Entries are
|
|
133
|
-
* removed once their chain settles as the tail, so the map tracks only
|
|
134
|
-
* conversations with work in flight.
|
|
135
|
-
*/
|
|
136
|
-
const chains = new Map<string, Promise<unknown>>();
|
|
137
|
-
|
|
138
|
-
function serialize<T>(sdkAgentId: string, run: () => Promise<T>): Promise<T> {
|
|
139
|
-
const previous = chains.get(sdkAgentId) ?? Promise.resolve();
|
|
140
|
-
const next = previous.then(run, run);
|
|
141
|
-
const stored = next
|
|
142
|
-
.catch(() => {})
|
|
143
|
-
.then(() => {
|
|
144
|
-
if (chains.get(sdkAgentId) === stored) {
|
|
145
|
-
chains.delete(sdkAgentId);
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
chains.set(sdkAgentId, stored);
|
|
149
|
-
return next;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
async function mirroredBlobIds(sdkAgentId: string): Promise<Set<string>> {
|
|
153
|
-
const cached = mirrored.get(sdkAgentId);
|
|
154
|
-
if (cached !== undefined) {
|
|
155
|
-
return cached;
|
|
156
|
-
}
|
|
157
|
-
// Seed from the previous manifest so a fresh pod does not re-upload the
|
|
158
|
-
// whole history on its first persist. A miss, an unusable manifest, or
|
|
159
|
-
// a failed read seeds empty — re-uploading is wasteful, never wrong.
|
|
160
|
-
const seeded = new Set<string>();
|
|
161
|
-
try {
|
|
162
|
-
const read = await readManifest(sink, agentName, sdkAgentId);
|
|
163
|
-
if (read.outcome === "found") {
|
|
164
|
-
for (const blobId of read.manifest.blobIds) {
|
|
165
|
-
seeded.add(blobId);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
} catch (error) {
|
|
169
|
-
logger(
|
|
170
|
-
`[agent-sdk] conversation mirror: could not read the prior manifest for ${sdkAgentId} (${describeError(error)}); re-uploading blobs`,
|
|
171
|
-
);
|
|
172
|
-
}
|
|
173
|
-
rememberMirrored(sdkAgentId, seeded);
|
|
174
|
-
return seeded;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
return {
|
|
178
|
-
persist(store, sdkAgentId): Promise<void> {
|
|
179
|
-
return serialize(sdkAgentId, async () => {
|
|
180
|
-
const document = await store.agents.get({ agentId: sdkAgentId });
|
|
181
|
-
if (document === null || document.latestCheckpoint == null) {
|
|
182
|
-
// Nothing restorable yet (no conversation, or no checkpoint).
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
const uploaded = await mirroredBlobIds(sdkAgentId);
|
|
186
|
-
const blobIds = await listCheckpointBlobIds(store, sdkAgentId);
|
|
187
|
-
for (const blobId of blobIds) {
|
|
188
|
-
if (uploaded.has(blobId)) {
|
|
189
|
-
continue;
|
|
190
|
-
}
|
|
191
|
-
const bytes = await store.checkpoints.get({
|
|
192
|
-
agentId: sdkAgentId,
|
|
193
|
-
blobId,
|
|
194
|
-
});
|
|
195
|
-
if (bytes === null) {
|
|
196
|
-
continue;
|
|
197
|
-
}
|
|
198
|
-
await sink.put(
|
|
199
|
-
agentSdkAgentStoreKeys.conversationBlob(agentName, sdkAgentId, blobId),
|
|
200
|
-
bytes,
|
|
201
|
-
);
|
|
202
|
-
// Content-addressed: once in the sink, never re-uploaded.
|
|
203
|
-
uploaded.add(blobId);
|
|
204
|
-
}
|
|
205
|
-
const manifest: ConversationManifestV1 = {
|
|
206
|
-
v: 1,
|
|
207
|
-
// The referenced run is pod-local bookkeeping and is not mirrored;
|
|
208
|
-
// a hydrated store must not point at a run row it does not hold.
|
|
209
|
-
agent: { ...document, activeRunId: null },
|
|
210
|
-
blobIds: blobIds.filter(blobId => uploaded.has(blobId)),
|
|
211
|
-
persistedAtMs: Date.now(),
|
|
212
|
-
};
|
|
213
|
-
// Skip the rewrite when nothing durable changed. `persistedAtMs`
|
|
214
|
-
// is excluded from the comparison — it differs on every call by
|
|
215
|
-
// construction and carries no restore semantics.
|
|
216
|
-
const content = JSON.stringify({
|
|
217
|
-
agent: manifest.agent,
|
|
218
|
-
blobIds: manifest.blobIds,
|
|
219
|
-
});
|
|
220
|
-
if (lastManifestContent.get(sdkAgentId) === content) {
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
lastManifestContent.delete(sdkAgentId);
|
|
224
|
-
// Manifest last: it only ever references blobs already uploaded.
|
|
225
|
-
await sink.put(
|
|
226
|
-
agentSdkAgentStoreKeys.conversationManifest(agentName, sdkAgentId),
|
|
227
|
-
new TextEncoder().encode(JSON.stringify(manifest)),
|
|
228
|
-
);
|
|
229
|
-
rememberManifest(sdkAgentId, content);
|
|
230
|
-
});
|
|
231
|
-
},
|
|
232
|
-
|
|
233
|
-
hydrate(store, sdkAgentId): Promise<boolean> {
|
|
234
|
-
return serialize(sdkAgentId, async () => {
|
|
235
|
-
const existing = await store.agents.get({ agentId: sdkAgentId });
|
|
236
|
-
if (existing !== null) {
|
|
237
|
-
return false;
|
|
238
|
-
}
|
|
239
|
-
const read = await readManifest(sink, agentName, sdkAgentId);
|
|
240
|
-
if (read.outcome === "miss") {
|
|
241
|
-
return false;
|
|
242
|
-
}
|
|
243
|
-
if (read.outcome === "unusable") {
|
|
244
|
-
// Definitive, non-transient state (a future manifest version
|
|
245
|
-
// during a rolling redeploy, or corruption): retrying would fail
|
|
246
|
-
// identically forever, so fall through to the caller's
|
|
247
|
-
// fresh-conversation path instead of wedging the session.
|
|
248
|
-
logger(
|
|
249
|
-
`[agent-sdk] conversation mirror: the manifest for ${sdkAgentId} is unusable (${read.reason}); treating the conversation as unrestorable`,
|
|
250
|
-
);
|
|
251
|
-
return false;
|
|
252
|
-
}
|
|
253
|
-
const manifest = read.manifest;
|
|
254
|
-
const rootBlobId = manifest.agent.latestCheckpoint?.rootBlobId;
|
|
255
|
-
if (rootBlobId === undefined || !manifest.blobIds.includes(rootBlobId)) {
|
|
256
|
-
logger(
|
|
257
|
-
`[agent-sdk] conversation mirror: the manifest for ${sdkAgentId} does not list its root checkpoint blob; treating the conversation as unrestorable`,
|
|
258
|
-
);
|
|
259
|
-
return false;
|
|
260
|
-
}
|
|
261
|
-
// This sits on the resume critical path. Prefer the sink's batched
|
|
262
|
-
// read — on the hosted sink that is one presign call per 100 blobs
|
|
263
|
-
// instead of one per blob, keeping a checkpoint-heavy restore under
|
|
264
|
-
// the store's per-deployment rate budget — and fall back to
|
|
265
|
-
// bounded-parallel per-blob gets elsewhere.
|
|
266
|
-
const blobKeys = manifest.blobIds.map(blobId =>
|
|
267
|
-
agentSdkAgentStoreKeys.conversationBlob(agentName, sdkAgentId, blobId),
|
|
268
|
-
);
|
|
269
|
-
const blobBodies =
|
|
270
|
-
sink.getMany !== undefined
|
|
271
|
-
? await sink.getMany(blobKeys)
|
|
272
|
-
: await mapBounded(blobKeys, HYDRATE_DOWNLOAD_CONCURRENCY, key => sink.get(key));
|
|
273
|
-
const bodies = manifest.blobIds.map((blobId, index) => ({
|
|
274
|
-
blobId,
|
|
275
|
-
body: blobBodies[index],
|
|
276
|
-
}));
|
|
277
|
-
const missing = bodies.filter(entry => entry.body === undefined);
|
|
278
|
-
if (missing.length > 0) {
|
|
279
|
-
// The manifest lists exactly what a previous persist uploaded, so
|
|
280
|
-
// any definitive absence is store loss — and the checkpoint graph
|
|
281
|
-
// may reach any listed blob, not just the root. Restoring a
|
|
282
|
-
// partial graph would create an agent row whose resume succeeds
|
|
283
|
-
// and whose checkpoint walk then fails unrecoverably.
|
|
284
|
-
logger(
|
|
285
|
-
`[agent-sdk] conversation mirror: ${missing.length} checkpoint blob(s) for ${sdkAgentId} are missing from the sink; treating the conversation as unrestorable`,
|
|
286
|
-
);
|
|
287
|
-
return false;
|
|
288
|
-
}
|
|
289
|
-
const restored = new Set<string>();
|
|
290
|
-
for (const entry of bodies) {
|
|
291
|
-
const body = entry.body as NonNullable<typeof entry.body>;
|
|
292
|
-
const bytes = body instanceof Uint8Array ? body : body.body;
|
|
293
|
-
if (
|
|
294
|
-
(await store.checkpoints.get({
|
|
295
|
-
agentId: sdkAgentId,
|
|
296
|
-
blobId: entry.blobId,
|
|
297
|
-
})) === null
|
|
298
|
-
) {
|
|
299
|
-
await store.checkpoints.create({
|
|
300
|
-
agentId: sdkAgentId,
|
|
301
|
-
blobId: entry.blobId,
|
|
302
|
-
data: bytes,
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
restored.add(entry.blobId);
|
|
306
|
-
}
|
|
307
|
-
await store.agents.create({
|
|
308
|
-
agent: { ...manifest.agent, activeRunId: null },
|
|
309
|
-
});
|
|
310
|
-
rememberMirrored(sdkAgentId, restored);
|
|
311
|
-
logger(
|
|
312
|
-
`[agent-sdk] conversation mirror: restored the conversation for ${sdkAgentId} (${restored.size} checkpoint blob(s))`,
|
|
313
|
-
);
|
|
314
|
-
return true;
|
|
315
|
-
});
|
|
316
|
-
},
|
|
317
|
-
};
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
/** Oldest-out cap on the per-conversation upload-dedupe cache. */
|
|
321
|
-
const MAX_TRACKED_CONVERSATIONS = 1_000;
|
|
322
|
-
|
|
323
|
-
/** Parallel blob downloads during hydrate (resume critical path). */
|
|
324
|
-
const HYDRATE_DOWNLOAD_CONCURRENCY = 8;
|
|
325
|
-
|
|
326
|
-
type ManifestRead =
|
|
327
|
-
/** No manifest was ever persisted (definitive miss). */
|
|
328
|
-
| { outcome: "miss" }
|
|
329
|
-
/**
|
|
330
|
-
* A manifest exists but cannot be used (future version, corruption,
|
|
331
|
-
* wrong agent). Definitive and non-transient — callers must not retry,
|
|
332
|
-
* and must not treat it as a sink outage.
|
|
333
|
-
*/
|
|
334
|
-
| { outcome: "unusable"; reason: string }
|
|
335
|
-
| { outcome: "found"; manifest: ConversationManifestV1 };
|
|
336
|
-
|
|
337
|
-
/**
|
|
338
|
-
* Read the persisted manifest. Sink transport failures propagate (an
|
|
339
|
-
* outage must fail the follow-up, not fork the thread); everything the
|
|
340
|
-
* bytes themselves can be wrong about is reported as `unusable`.
|
|
341
|
-
*/
|
|
342
|
-
async function readManifest(
|
|
343
|
-
sink: FileSink,
|
|
344
|
-
agentName: string,
|
|
345
|
-
sdkAgentId: string,
|
|
346
|
-
): Promise<ManifestRead> {
|
|
347
|
-
const body = await sink.get(agentSdkAgentStoreKeys.conversationManifest(agentName, sdkAgentId));
|
|
348
|
-
if (body === undefined) {
|
|
349
|
-
return { outcome: "miss" };
|
|
350
|
-
}
|
|
351
|
-
const bytes = body instanceof Uint8Array ? body : body.body;
|
|
352
|
-
let parsed: unknown;
|
|
353
|
-
try {
|
|
354
|
-
parsed = JSON.parse(new TextDecoder().decode(bytes));
|
|
355
|
-
} catch {
|
|
356
|
-
return { outcome: "unusable", reason: "not JSON" };
|
|
357
|
-
}
|
|
358
|
-
if (parsed === null || typeof parsed !== "object" || (parsed as { v?: unknown }).v !== 1) {
|
|
359
|
-
return { outcome: "unusable", reason: "unsupported manifest version" };
|
|
360
|
-
}
|
|
361
|
-
const manifest = parsed as ConversationManifestV1;
|
|
362
|
-
if (
|
|
363
|
-
manifest.agent === null ||
|
|
364
|
-
typeof manifest.agent !== "object" ||
|
|
365
|
-
manifest.agent.agentId !== sdkAgentId ||
|
|
366
|
-
!Array.isArray(manifest.blobIds)
|
|
367
|
-
) {
|
|
368
|
-
return { outcome: "unusable", reason: "malformed manifest" };
|
|
369
|
-
}
|
|
370
|
-
return { outcome: "found", manifest };
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
async function listCheckpointBlobIds(
|
|
374
|
-
store: LocalAgentStore,
|
|
375
|
-
sdkAgentId: string,
|
|
376
|
-
): Promise<string[]> {
|
|
377
|
-
const blobIds: string[] = [];
|
|
378
|
-
let cursor: string | undefined;
|
|
379
|
-
do {
|
|
380
|
-
const page = await store.checkpoints.list({
|
|
381
|
-
filter: { agentIds: [sdkAgentId], cursor },
|
|
382
|
-
});
|
|
383
|
-
blobIds.push(...page.items);
|
|
384
|
-
cursor = page.nextCursor;
|
|
385
|
-
} while (cursor !== undefined);
|
|
386
|
-
return blobIds;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
/**
|
|
390
|
-
* Whether (and over which sink) this serve process mirrors conversations.
|
|
391
|
-
*
|
|
392
|
-
* Selected for architecture-v2 agents on Cursor-managed hosting — the same
|
|
393
|
-
* generation signal as framework-storage-selection.ts, plus a provisioned
|
|
394
|
-
* **framework-level** file store: conversation state is engine-owned, so it
|
|
395
|
-
* lives with session records and transcripts, never on the author-facing
|
|
396
|
-
* user store. Self-hosted v2 keeps everything on the state root (the
|
|
397
|
-
* operator owns the disk), and v1 keeps today's behavior while it runs.
|
|
398
|
-
*/
|
|
399
|
-
export function selectConversationMirror(input: {
|
|
400
|
-
project: AgentProject;
|
|
401
|
-
logger?: (line: string) => void;
|
|
402
|
-
env?: Record<string, string | undefined>;
|
|
403
|
-
}): ConversationMirror | undefined {
|
|
404
|
-
const hosting = resolveAgentV2Hosting({
|
|
405
|
-
architecture: input.project.agent.architecture,
|
|
406
|
-
env: input.env as NodeJS.ProcessEnv | undefined,
|
|
407
|
-
});
|
|
408
|
-
if (hosting.kind !== "cursor-managed") {
|
|
409
|
-
return undefined;
|
|
410
|
-
}
|
|
411
|
-
return createConversationMirror({
|
|
412
|
-
sink: cursorHostedFiles({
|
|
413
|
-
resolveStoreSourceId: () => hosting.resolveStoreIds().frameworkStoreSourceId,
|
|
414
|
-
// Full chain (env → key file → stored login), resolved lazily: frozen
|
|
415
|
-
// engines listen unsigned and only gain a credential at task time,
|
|
416
|
-
// after this sink is constructed. Hosted deliveries have consumed the
|
|
417
|
-
// bind file into CURSOR_API_KEY by then, so this resolves from env.
|
|
418
|
-
resolveApiKey: () => resolveApiKeySync()?.apiKey,
|
|
419
|
-
}),
|
|
420
|
-
agentName: input.project.name,
|
|
421
|
-
logger: input.logger,
|
|
422
|
-
});
|
|
423
|
-
}
|