@cursor/bdk 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/agent-serve.js +52 -57
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +32 -8
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +37 -29
- package/dist/channels/slack/external-policy.d.ts.map +1 -1
- package/dist/channels/slack/external-policy.js +6 -6
- package/dist/channels/slack/inbound.d.ts +5 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +13 -0
- package/dist/channels/slack/index.d.ts +3 -0
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +3 -0
- package/dist/channels/slack/log.d.ts +1 -1
- package/dist/channels/slack/log.js +1 -1
- package/dist/channels/slack/self-identity.d.ts +15 -0
- package/dist/channels/slack/self-identity.d.ts.map +1 -0
- package/dist/channels/slack/self-identity.js +48 -0
- package/dist/channels/slack/sender-name.d.ts +17 -0
- package/dist/channels/slack/sender-name.d.ts.map +1 -0
- package/dist/channels/slack/sender-name.js +87 -0
- package/dist/channels/slack/setup.js +1 -1
- package/dist/channels/slack/user-info.d.ts +15 -0
- package/dist/channels/slack/user-info.d.ts.map +1 -0
- package/dist/channels/slack/user-info.js +57 -0
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.CJLKDVza.js → app.oyjtOr3W.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BW9mrQmq.js → VPLocalSearchBox.D0P6J_UJ.js} +1 -1
- package/dist/docs/assets/chunks/{arc.D8ZOvM1m.js → arc.B0LY1J1h.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CXEKhLW-.js → architectureDiagram-Q4EWVU46.dPduLUxY.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.BJkVKblr.js → baseUniq.B_Ohm21h.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DQDbHxor.js → blockDiagram-DXYQGD6D.B4zcanaJ.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.ByMD6LYM.js → c4Diagram-AHTNJAMY.D9Iw21nx.js} +1 -1
- package/dist/docs/assets/chunks/channel.CRUyWDV-.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.Dtq1aVI9.js → chunk-4BX2VUAB.DDVwRShI.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.BL_XrkoQ.js → chunk-4TB4RGXK.DsYcdn1i.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.BDPXu94_.js → chunk-55IACEB6.BzzQvcYp.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.DhGOQj4k.js → chunk-EDXVE4YY.BMiXZ7FX.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DSF5nr8v.js → chunk-FMBD7UC4.D_mBcLoc.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Day7wayw.js → chunk-OYMX7WX6.CMVjWVMx.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.CpBEC0zA.js → chunk-QZHKN3VN.BG-FrPv9.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.X_7rY1rx.js → chunk-YZCP3GAM.CkFE1ap3.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +1 -0
- package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BVRmi2ko.js → cose-bilkent-S5V4N54A.BVNnCTvY.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.Dei9oslB.js → dagre-KV5264BT.CDN5PR9l.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD._M-efGt7.js → diagram-5BDNPKRD.DQRUlT-i.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.D1Vmhfsj.js → diagram-G4DWMVQ6.CoeblYQT.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.cE1bmvAC.js → diagram-MMDJMWI5.DW3ymjl0.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.DkXAfznP.js → diagram-TYMM5635.BP0uN4Jw.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DH_pSwPg.js → erDiagram-SMLLAGMA.DVFUWEn4.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.kAWVN9j1.js → flowDiagram-DWJPFMVM.HU-eHspv.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.8r0w49-p.js → ganttDiagram-T4ZO3ILL.DHNhXijY.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.BDa7Bi1i.js → gitGraphDiagram-UUTBAWPF.DkISXcO3.js} +1 -1
- package/dist/docs/assets/chunks/{graph.BMPXHz_B.js → graph.CCV0fuRR.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.BmlcqewS.js → infoDiagram-42DDH7IO.bgILzOoc.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CVSEQSul.js → ishikawaDiagram-UXIWVN3A.CuryXC0F.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BpeWJ5n-.js → journeyDiagram-VCZTEJTY.BL1Pr-wu.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.DHbDXuxB.js → kanban-definition-6JOO6SKY.BbGjvk4l.js} +1 -1
- package/dist/docs/assets/chunks/{layout.CzrCDgkP.js → layout.C4PfdldS.js} +1 -1
- package/dist/docs/assets/chunks/{linear.HwBsflwN.js → linear.C3xD1T6X.js} +1 -1
- package/dist/docs/assets/chunks/{min.DqGHolT3.js → min.CzgRAQ9c.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.ZYGlOawh.js → mindmap-definition-QFDTVHPH.CA9rSWum.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.C2KRXlNR.js → pieDiagram-DEJITSTG.B8MprgJu.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CHj3Qefp.js → quadrantDiagram-34T5L4WZ.DndDwbKT.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.B1L4Tf7k.js → requirementDiagram-MS252O5E.Zhfgwlnn.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.dNR2yi1B.js → sankeyDiagram-XADWPNL6.B6RRm6N5.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.BrvQ3C6m.js → sequenceDiagram-FGHM5R23.Bfmz-1PN.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.BtehEykA.js → stateDiagram-FHFEXIEX.gbrdNqgj.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +1 -0
- package/dist/docs/assets/chunks/{theme.BDHBZUkP.js → theme.gpWjytMh.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bn7nhqEN.js → timeline-definition-GMOUNBTQ.Bl1l7M1f.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.DKhc38sz.js → vennDiagram-DHZGUBPP.Dfle4U0d.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.DOXQ0w8J.js → wardley-RL74JXVD.BJrCW6xc.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.Bbq5B2Ic.js → wardleyDiagram-NUSXRM2D.CM_4lmvZ.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.B77HE1K8.js → xychartDiagram-5P7HB3ND.CHT5X28R.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.BsgDqYPh.js → reference_cli.md.GwugN3n-.js} +5 -5
- package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +1 -0
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +35 -35
- package/dist/docs/evals.html +35 -35
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +35 -35
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +35 -35
- package/dist/docs/guides/gitlab.html +35 -35
- package/dist/docs/guides/grokbot-agents.html +35 -35
- package/dist/docs/guides/hooks.html +35 -35
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +35 -35
- package/dist/docs/guides/mcp-oauth.html +35 -35
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +35 -35
- package/dist/docs/guides/webhooks.html +35 -35
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +35 -35
- package/dist/docs/index.html +35 -35
- package/dist/docs/llms-full.txt +20 -9
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +35 -35
- package/dist/docs/reference/artifacts.html +35 -35
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +39 -39
- package/dist/docs/reference/cli.md +20 -9
- package/dist/docs/reference/connections.html +35 -35
- package/dist/docs/reference/evals.html +35 -35
- package/dist/docs/reference/extensions.html +35 -35
- package/dist/docs/reference/hooks.html +35 -35
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +35 -35
- package/dist/docs/reference/sessions.html +35 -35
- package/dist/docs/reference/skills.html +35 -35
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/grokbot-agents.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +35 -35
- package/dist/extensions/cursor-cloud-agents/extension.d.ts +14 -0
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +5 -0
- package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts +17 -0
- package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/watch.js +99 -0
- package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.d.ts +19 -0
- package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +71 -0
- package/dist/extensions/cursor-cloud-agents/skills/handoff.md +9 -5
- package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/cancel.js +3 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +3 -2
- package/dist/extensions.d.ts +1 -1
- package/dist/extensions.js +1 -1
- package/dist/files-backends/cursor-hosted.d.ts +22 -83
- package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/files-backends/cursor-hosted.js +46 -160
- package/dist/files.d.ts +9 -32
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +7 -32
- package/dist/internal/artifacts-store.d.ts +13 -25
- package/dist/internal/artifacts-store.d.ts.map +1 -1
- package/dist/internal/artifacts-store.js +25 -46
- package/dist/internal/cli-ax.d.ts +10 -17
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +87 -155
- package/dist/internal/cli-bitbucket.js +5 -5
- package/dist/internal/cli-deploy.d.ts +4 -1
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +117 -20
- package/dist/internal/cli-github.js +13 -13
- package/dist/internal/cli-gitlab.js +5 -5
- package/dist/internal/continuation-identity.d.ts +2 -0
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +4 -0
- package/dist/internal/conversation-mirror.d.ts +9 -38
- package/dist/internal/conversation-mirror.d.ts.map +1 -1
- package/dist/internal/conversation-mirror.js +62 -68
- package/dist/internal/cursor/account-mcp.d.ts +1 -1
- package/dist/internal/cursor/account-mcp.js +1 -1
- package/dist/internal/cursor/backend-client.js +1 -1
- package/dist/internal/cursor/github-credentials.js +3 -3
- package/dist/internal/cursor/hosted-bound-secrets.d.ts +6 -2
- package/dist/internal/cursor/hosted-bound-secrets.d.ts.map +1 -1
- package/dist/internal/cursor/hosted-bound-secrets.js +13 -2
- package/dist/internal/cursor/hosted-store-secrets.d.ts +13 -37
- package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -1
- package/dist/internal/cursor/hosted-store-secrets.js +13 -37
- package/dist/internal/cursor/store-api-client.d.ts +17 -39
- package/dist/internal/cursor/store-api-client.d.ts.map +1 -1
- package/dist/internal/cursor/store-api-client.js +15 -37
- package/dist/internal/cursor-deployment-relay.js +3 -3
- package/dist/internal/cursor-event-relay.js +1 -1
- package/dist/internal/cursor-relay-core.d.ts +1 -1
- package/dist/internal/cursor-relay-core.d.ts.map +1 -1
- package/dist/internal/deploy-client.d.ts +55 -63
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +48 -28
- package/dist/internal/discovery/agent.d.ts +1 -1
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +4 -0
- package/dist/internal/discovery/extensions.d.ts +2 -1
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +11 -1
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +1 -0
- package/dist/internal/distribution.d.ts +2 -2
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +2 -2
- package/dist/internal/docs-site.js +3 -3
- package/dist/internal/eval-run-store.js +8 -8
- package/dist/internal/framework-file-storage.d.ts +10 -34
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +12 -39
- package/dist/internal/framework-storage-selection.d.ts +10 -46
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/framework-storage-selection.js +15 -64
- package/dist/internal/github-fanout.js +2 -2
- package/dist/internal/handleAgentServeTrigger.d.ts +5 -8
- package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -1
- package/dist/internal/handleAgentServeTrigger.js +5 -8
- package/dist/internal/host-files.js +6 -9
- package/dist/internal/host-platforms.js +5 -5
- package/dist/internal/hosted-catch.d.ts +3 -2
- package/dist/internal/hosted-catch.d.ts.map +1 -1
- package/dist/internal/hosted-catch.js +27 -9
- package/dist/internal/hosted-delivery-protocol.d.ts +31 -8
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +102 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +32 -12
- package/dist/internal/hosted-execution-diag.d.ts +13 -24
- package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
- package/dist/internal/hosted-execution-diag.js +11 -20
- package/dist/internal/hosted-execution-flush.d.ts +22 -10
- package/dist/internal/hosted-execution-flush.d.ts.map +1 -1
- package/dist/internal/hosted-execution-flush.js +45 -9
- package/dist/internal/hosted-managed-automation.js +5 -5
- package/dist/internal/hosting.d.ts +5 -10
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +5 -10
- package/dist/internal/legacy-command-guard.d.ts +1 -4
- package/dist/internal/legacy-command-guard.d.ts.map +1 -1
- package/dist/internal/legacy-command-guard.js +2 -11
- package/dist/internal/listen-port.js +1 -1
- package/dist/internal/local-control-plane.js +6 -6
- package/dist/internal/logs-client.d.ts +20 -1
- package/dist/internal/logs-client.d.ts.map +1 -1
- package/dist/internal/logs-client.js +89 -1
- package/dist/internal/mcp-endpoint.js +1 -1
- package/dist/internal/otel/collector.js +1 -1
- package/dist/internal/otel/runtime.js +13 -13
- package/dist/internal/platform-schedule-sync.js +2 -2
- package/dist/internal/playground/toolchain.js +6 -6
- package/dist/internal/process-memory-telemetry.js +2 -2
- package/dist/internal/reminder-runner.d.ts +8 -3
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +51 -52
- package/dist/internal/resolve-prod-target.d.ts +1 -12
- package/dist/internal/resolve-prod-target.d.ts.map +1 -1
- package/dist/internal/resolve-prod-target.js +2 -32
- package/dist/internal/resolved-connections.js +8 -8
- package/dist/internal/run-client.d.ts +4 -3
- package/dist/internal/run-client.d.ts.map +1 -1
- package/dist/internal/run-client.js +98 -61
- package/dist/internal/runtime-dispatch-runner.d.ts +1 -0
- package/dist/internal/runtime-dispatch-runner.d.ts.map +1 -1
- package/dist/internal/runtime-dispatch-runner.js +7 -1
- package/dist/internal/schedule-runner.js +1 -1
- package/dist/internal/sdk-runner.d.ts +4 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +37 -22
- package/dist/internal/server.d.ts +2 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +39 -38
- package/dist/internal/session-engine.d.ts +40 -44
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +108 -97
- package/dist/internal/session-run-log.d.ts +10 -24
- package/dist/internal/session-run-log.d.ts.map +1 -1
- package/dist/internal/session-run-log.js +13 -27
- package/dist/internal/sessions-client.d.ts.map +1 -1
- package/dist/internal/sessions-client.js +6 -3
- package/dist/internal/skills-sync.d.ts +3 -5
- package/dist/internal/skills-sync.d.ts.map +1 -1
- package/dist/internal/skills-sync.js +3 -5
- package/dist/internal/start-log-store.d.ts +7 -18
- package/dist/internal/start-log-store.d.ts.map +1 -1
- package/dist/internal/start-log-store.js +47 -24
- package/dist/internal/storage-coordinator.d.ts +7 -10
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +18 -20
- package/dist/internal/storage-roles.d.ts +5 -0
- package/dist/internal/storage-roles.d.ts.map +1 -1
- package/dist/internal/store-api-protocol.d.ts +12 -33
- package/dist/internal/store-api-protocol.d.ts.map +1 -1
- package/dist/internal/store-api-protocol.js +6 -22
- package/dist/internal/store-mirror.d.ts +4 -5
- package/dist/internal/store-mirror.d.ts.map +1 -1
- package/dist/internal/store-mirror.js +6 -8
- package/dist/internal/turn-cost.d.ts.map +1 -1
- package/dist/internal/turn-cost.js +31 -18
- package/dist/internal/turn-lease-store.d.ts +12 -5
- package/dist/internal/turn-lease-store.d.ts.map +1 -1
- package/dist/internal/turn-lease-store.js +61 -8
- package/dist/internal/v2-hosting.d.ts +4 -7
- package/dist/internal/v2-hosting.d.ts.map +1 -1
- package/dist/internal/v2-hosting.js +4 -7
- package/dist/internal/workspace-sync.d.ts +3 -6
- package/dist/internal/workspace-sync.d.ts.map +1 -1
- package/dist/internal/workspace-sync.js +3 -6
- package/dist/internal/workspace.d.ts +10 -16
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +9 -14
- package/dist/memory.d.ts +17 -43
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +34 -80
- package/dist/playground/assets/index-DPKLl4C_.css +1 -0
- package/dist/playground/assets/index-MijLHTbB.js +71 -0
- package/dist/playground/index.html +2 -2
- package/dist/storage-backends/cursor-hosted-v2.d.ts +8 -36
- package/dist/storage-backends/cursor-hosted-v2.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted-v2.js +9 -37
- package/dist/storage-backends/cursor-hosted.d.ts +17 -30
- package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted.js +14 -27
- package/dist/storage-protocol.d.ts +13 -38
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +14 -39
- package/dist/types.d.ts +29 -30
- package/dist/types.d.ts.map +1 -1
- package/docs/reference/cli.md +20 -9
- package/package.json +1 -1
- package/templates/pr-autofixer/bot/instructions.md +3 -3
- package/dist/docs/assets/chunks/@localSearchIndexroot.Bq-pxRXm.js +0 -1
- package/dist/docs/assets/chunks/channel.DCU8W1RP.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DwpXsM06.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DwpXsM06.js +0 -1
- package/dist/docs/assets/chunks/clone.DH6Mx2zB.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.kzD0-U89.js +0 -1
- package/dist/docs/assets/reference_cli.md.BsgDqYPh.lean.js +0 -1
- package/dist/playground/assets/index-6BbTPnaT.css +0 -1
- package/dist/playground/assets/index-CI7FAmOP.js +0 -71
|
@@ -76,7 +76,10 @@ export interface DeployCliOptions {
|
|
|
76
76
|
timeoutMs?: number;
|
|
77
77
|
out?: (text: string) => void;
|
|
78
78
|
err?: (text: string) => void;
|
|
79
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
* `secrets set` value input. A TTY uses the hidden prompt. One NAME reads
|
|
81
|
+
* all of stdin. Several NAMEs take one line each.
|
|
82
|
+
*/
|
|
80
83
|
stdin?: SecretInputStream;
|
|
81
84
|
/**
|
|
82
85
|
* Opt in to `NAME=VALUE` argv secrets. Default is names only (hidden
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,OAAO,EAOL,sBAAsB,EAevB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EACL,KAAK,aAAa,EAMnB,MAAM,gBAAgB,CAAC;AAiBxB,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE,SAAS,YAAY,EAAE,KAC5B,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,qEAAqE;IACrE,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B
|
|
1
|
+
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,7 +222,15 @@ export function cmdDeploy(options) {
|
|
|
222
222
|
function resolveDeployTargets(options, ctx) {
|
|
223
223
|
return __awaiter(this, void 0, void 0, function* () {
|
|
224
224
|
var _a, _b;
|
|
225
|
-
|
|
225
|
+
let dir = resolve((_a = options.dir) !== null && _a !== void 0 ? _a : ".");
|
|
226
|
+
// A repo-root deploy commonly names the local agent through --path. Use
|
|
227
|
+
// that project for manifest discovery unless --dir or --all chose a scope.
|
|
228
|
+
if (options.dir === undefined && options.path !== undefined && options.all !== true) {
|
|
229
|
+
const localSourceDir = resolve(options.path);
|
|
230
|
+
if (yield isAgentProjectDir(localSourceDir)) {
|
|
231
|
+
dir = localSourceDir;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
226
234
|
if (options.slug !== undefined) {
|
|
227
235
|
const slugError = validateDeploymentSlug(options.slug);
|
|
228
236
|
if (slugError !== undefined) {
|
|
@@ -483,9 +491,11 @@ function deployOne(ctx, options, target, extras) {
|
|
|
483
491
|
if (!ctx.json && (manifest === null || manifest === void 0 ? void 0 : manifest.httpChannelPublicEndpoint) === true) {
|
|
484
492
|
ctx.err(`warning: publicEndpoint() on the built-in HTTP channel has no effect on hosting — only custom channels (/v1/channels/…) can be public; the session API always requires the alias token.\n`);
|
|
485
493
|
}
|
|
486
|
-
if (!ctx.json && publicRoutePaths.length > 0) {
|
|
494
|
+
if (!ctx.json && publicRoutePaths.length > 0 && (manifest === null || manifest === void 0 ? void 0 : manifest.architecture) !== "v2") {
|
|
487
495
|
// Security-relevant surface change: say exactly what will be reachable
|
|
488
|
-
// without the alias token before the deploy is accepted.
|
|
496
|
+
// without the alias token before the deploy is accepted. v2 registers
|
|
497
|
+
// these routes only after bake, so a relative path here would not be a
|
|
498
|
+
// live webhook URL — the running status prints the absolute one.
|
|
489
499
|
ctx.err(` public: ${publicRoutePaths.join(", ")} (served WITHOUT the alias token — these channels authenticate requests themselves)\n`);
|
|
490
500
|
}
|
|
491
501
|
const extensionEgress = (_h = manifest === null || manifest === void 0 ? void 0 : manifest.extensionEgress) !== null && _h !== void 0 ? _h : [];
|
|
@@ -673,8 +683,7 @@ function deployAgentsdkApplication(ctx, options, targets, declarations) {
|
|
|
673
683
|
}
|
|
674
684
|
/**
|
|
675
685
|
* `architecture: "v2"` deploy: POST `/internal/agentsdk/deployments` and
|
|
676
|
-
* poll the matching GET.
|
|
677
|
-
* not mint an engine alias or alias token.
|
|
686
|
+
* poll the matching GET.
|
|
678
687
|
*/
|
|
679
688
|
function deployOneAgentsdk(ctx, extras, args) {
|
|
680
689
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -696,6 +705,9 @@ function deployOneAgentsdk(ctx, extras, args) {
|
|
|
696
705
|
teamId: ctx.teamId,
|
|
697
706
|
});
|
|
698
707
|
}
|
|
708
|
+
if (!ctx.json && accepted.aliasToken !== undefined) {
|
|
709
|
+
ctx.out(aliasTokenBlock(accepted.aliasToken));
|
|
710
|
+
}
|
|
699
711
|
if (ctx.noWait) {
|
|
700
712
|
if ((extras === null || extras === void 0 ? void 0 : extras.jsonCollect) !== undefined) {
|
|
701
713
|
extras.jsonCollect.push(accepted);
|
|
@@ -707,6 +719,7 @@ function deployOneAgentsdk(ctx, extras, args) {
|
|
|
707
719
|
ctx.out(`Deploy accepted: ${slug} (team ${ctx.teamId}, v2)\n` +
|
|
708
720
|
` application: ${accepted.applicationId}\n` +
|
|
709
721
|
` release: ${accepted.releaseId}\n` +
|
|
722
|
+
` alias: ${ctx.client.aliasUrl(accepted.engineAlias)}\n` +
|
|
710
723
|
componentsLine);
|
|
711
724
|
}
|
|
712
725
|
return 0;
|
|
@@ -718,12 +731,13 @@ function deployOneAgentsdk(ctx, extras, args) {
|
|
|
718
731
|
catch (error) {
|
|
719
732
|
return renderApiError(error, ctx.err);
|
|
720
733
|
}
|
|
734
|
+
const payload = Object.assign(Object.assign({}, detail), { aliasToken: accepted.aliasToken });
|
|
721
735
|
if ((extras === null || extras === void 0 ? void 0 : extras.jsonCollect) !== undefined) {
|
|
722
|
-
extras.jsonCollect.push(
|
|
736
|
+
extras.jsonCollect.push(payload);
|
|
723
737
|
return detail.status === "running" ? 0 : 1;
|
|
724
738
|
}
|
|
725
739
|
if (ctx.json) {
|
|
726
|
-
ctx.out(`${JSON.stringify(
|
|
740
|
+
ctx.out(`${JSON.stringify(payload, null, 2)}\n`);
|
|
727
741
|
return detail.status === "running" ? 0 : 1;
|
|
728
742
|
}
|
|
729
743
|
if (detail.status !== "running") {
|
|
@@ -737,6 +751,7 @@ function deployOneAgentsdk(ctx, extras, args) {
|
|
|
737
751
|
` architecture: v2\n` +
|
|
738
752
|
` application: ${detail.applicationId}\n` +
|
|
739
753
|
` release: ${detail.releaseId}\n` +
|
|
754
|
+
` alias: ${ctx.client.aliasUrl(accepted.engineAlias)}\n` +
|
|
740
755
|
(args.components === undefined
|
|
741
756
|
? ""
|
|
742
757
|
: ` components: ${args.components
|
|
@@ -744,7 +759,8 @@ function deployOneAgentsdk(ctx, extras, args) {
|
|
|
744
759
|
.join(", ")}\n`) +
|
|
745
760
|
(detail.repositories === undefined || !watchesRepositories
|
|
746
761
|
? ""
|
|
747
|
-
: ` watching: ${detail.repositories.length === 0 ? "(nothing)" : detail.repositories.join(", ")}\n`)
|
|
762
|
+
: ` watching: ${detail.repositories.length === 0 ? "(nothing)" : detail.repositories.join(", ")}\n`) +
|
|
763
|
+
livePublicWebhookLines(ctx, detail));
|
|
748
764
|
// An agent with GitHub/Origin/deployments channels bound to no repository
|
|
749
765
|
// scope gets no deliveries at all (deployments channels receive the
|
|
750
766
|
// watched repos' deployment events), which is otherwise invisible here.
|
|
@@ -1047,6 +1063,23 @@ export function cmdDeploymentStatus(slug, options) {
|
|
|
1047
1063
|
return 0;
|
|
1048
1064
|
});
|
|
1049
1065
|
}
|
|
1066
|
+
/**
|
|
1067
|
+
* Absolute webhook URLs for channels the running release actually admits
|
|
1068
|
+
* without an alias token. A missing alias or an empty path list prints
|
|
1069
|
+
* nothing — a relative `/v1/channels/…` line is not a live URL. A
|
|
1070
|
+
* multi-tenant release returns an empty list: the engine alias 404s, and
|
|
1071
|
+
* the deployment URL is not this application's alias.
|
|
1072
|
+
*/
|
|
1073
|
+
function livePublicWebhookLines(ctx, detail) {
|
|
1074
|
+
var _a;
|
|
1075
|
+
const engineAlias = detail.engineAlias;
|
|
1076
|
+
if (detail.status !== "running" || engineAlias === undefined) {
|
|
1077
|
+
return "";
|
|
1078
|
+
}
|
|
1079
|
+
return ((_a = detail.publicRoutePaths) !== null && _a !== void 0 ? _a : [])
|
|
1080
|
+
.map(path => ` public: ${ctx.client.aliasUrl(engineAlias)}${path} (no alias token)\n`)
|
|
1081
|
+
.join("");
|
|
1082
|
+
}
|
|
1050
1083
|
function renderAgentkitDeploymentStatus(ctx, detail) {
|
|
1051
1084
|
if (ctx.json) {
|
|
1052
1085
|
ctx.out(`${JSON.stringify(detail, null, 2)}\n`);
|
|
@@ -1069,6 +1102,10 @@ function renderAgentkitDeploymentStatus(ctx, detail) {
|
|
|
1069
1102
|
if (detail.secretNames !== undefined && detail.secretNames.length > 0) {
|
|
1070
1103
|
lines.push(` secrets: ${detail.secretNames.join(", ")}`);
|
|
1071
1104
|
}
|
|
1105
|
+
const publicLines = livePublicWebhookLines(ctx, detail);
|
|
1106
|
+
if (publicLines.length > 0) {
|
|
1107
|
+
lines.push(...publicLines.replace(/\n$/, "").split("\n"));
|
|
1108
|
+
}
|
|
1072
1109
|
if (detail.lastError !== null && detail.lastError !== undefined) {
|
|
1073
1110
|
lines.push(` last error: ${sanitizeCustomerError(detail.lastError)}`);
|
|
1074
1111
|
}
|
|
@@ -1513,7 +1550,8 @@ export function cmdSecretsSet(slug, specs, options) {
|
|
|
1513
1550
|
const usageErr = (_a = options.err) !== null && _a !== void 0 ? _a : ((t) => void process.stderr.write(t));
|
|
1514
1551
|
if (slug === undefined || slug === "" || specs.length === 0) {
|
|
1515
1552
|
usageErr(`Usage: ${CLI} secrets set <slug> NAME [NAME2 ...] [--team <id>] [--json]\n` +
|
|
1516
|
-
`
|
|
1553
|
+
` Hidden prompt on a TTY. One NAME reads all of stdin (redirect a PEM).\n` +
|
|
1554
|
+
` Several NAMEs: one stdin line each.\n` +
|
|
1517
1555
|
` Opt-in (leaks into argv / agent terminals): NAME=VALUE … --from-argv\n`);
|
|
1518
1556
|
return 1;
|
|
1519
1557
|
}
|
|
@@ -1535,8 +1573,9 @@ export function cmdSecretsSet(slug, specs, options) {
|
|
|
1535
1573
|
usageErr(`Refusing NAME=VALUE on argv (shows up in shell history and agent-captured terminals).\n` +
|
|
1536
1574
|
`Pass names only:\n` +
|
|
1537
1575
|
` ${CLI} secrets set ${slug} NAME\n` +
|
|
1538
|
-
`Hidden prompt on a TTY
|
|
1539
|
-
`
|
|
1576
|
+
`Hidden prompt on a TTY. One NAME reads all of stdin, including newlines:\n` +
|
|
1577
|
+
` ${CLI} secrets set ${slug} NAME < ./secret.pem\n` +
|
|
1578
|
+
`Several NAMEs take one stdin line each.\n`);
|
|
1540
1579
|
return 1;
|
|
1541
1580
|
}
|
|
1542
1581
|
if (hasArgvValues) {
|
|
@@ -1547,17 +1586,26 @@ export function cmdSecretsSet(slug, specs, options) {
|
|
|
1547
1586
|
return ctx;
|
|
1548
1587
|
}
|
|
1549
1588
|
const stdin = (_b = options.stdin) !== null && _b !== void 0 ? _b : process.stdin;
|
|
1550
|
-
const readValue = createSecretValueReader(stdin, ctx.err);
|
|
1551
1589
|
const secrets = [];
|
|
1552
|
-
for (const entry of parsed) {
|
|
1553
|
-
secrets.push({
|
|
1554
|
-
name: entry.name,
|
|
1555
|
-
value: (_c = entry.value) !== null && _c !== void 0 ? _c : (yield readValue(entry.name)),
|
|
1556
|
-
});
|
|
1557
|
-
}
|
|
1558
1590
|
let secretNames;
|
|
1559
1591
|
let architecture;
|
|
1560
1592
|
try {
|
|
1593
|
+
const only = parsed.length === 1 ? parsed[0] : undefined;
|
|
1594
|
+
if (only !== undefined && only.value === undefined && stdin.isTTY !== true) {
|
|
1595
|
+
secrets.push({
|
|
1596
|
+
name: only.name,
|
|
1597
|
+
value: yield readWholeStdinValue(stdin, only.name),
|
|
1598
|
+
});
|
|
1599
|
+
}
|
|
1600
|
+
else {
|
|
1601
|
+
const readValue = createSecretValueReader(stdin, ctx.err);
|
|
1602
|
+
for (const entry of parsed) {
|
|
1603
|
+
secrets.push({
|
|
1604
|
+
name: entry.name,
|
|
1605
|
+
value: (_c = entry.value) !== null && _c !== void 0 ? _c : (yield readValue(entry.name)),
|
|
1606
|
+
});
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1561
1609
|
architecture = yield secretDeploymentArchitecture(ctx, slug);
|
|
1562
1610
|
secretNames =
|
|
1563
1611
|
architecture === "v2"
|
|
@@ -1665,6 +1713,8 @@ export function cmdSecretsUnset(slug, name, options) {
|
|
|
1665
1713
|
* Returns a reader for interactive secret values: hidden (no-echo) prompt
|
|
1666
1714
|
* when `stdin` is a TTY, otherwise one line per secret from the piped
|
|
1667
1715
|
* stream. One reader per command so piped lines are consumed in order.
|
|
1716
|
+
* A single NAME uses {@link readWholeStdinValue} instead, so a redirected
|
|
1717
|
+
* PEM keeps its internal newlines.
|
|
1668
1718
|
*/
|
|
1669
1719
|
function createSecretValueReader(stdin, err) {
|
|
1670
1720
|
if (stdin.isTTY === true) {
|
|
@@ -1746,6 +1796,54 @@ function promptHidden(stdin, err, prompt) {
|
|
|
1746
1796
|
stdin.on("data", onData);
|
|
1747
1797
|
});
|
|
1748
1798
|
}
|
|
1799
|
+
/**
|
|
1800
|
+
* Whole piped stdin for a single secret. One trailing newline is removed so
|
|
1801
|
+
* `echo value | secrets set slug NAME` still stores `value`. Internal
|
|
1802
|
+
* newlines stay, which is what a redirected PEM needs.
|
|
1803
|
+
*/
|
|
1804
|
+
function readWholeStdinValue(stdin, name) {
|
|
1805
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1806
|
+
const raw = yield readStreamText(stdin);
|
|
1807
|
+
if (raw === "") {
|
|
1808
|
+
throw new DeployApiError(`stdin ended before a value for ${name} was provided.`, 0);
|
|
1809
|
+
}
|
|
1810
|
+
return stripOneTrailingNewline(raw);
|
|
1811
|
+
});
|
|
1812
|
+
}
|
|
1813
|
+
function stripOneTrailingNewline(value) {
|
|
1814
|
+
if (value.endsWith("\r\n")) {
|
|
1815
|
+
return value.slice(0, -2);
|
|
1816
|
+
}
|
|
1817
|
+
if (value.endsWith("\n") || value.endsWith("\r")) {
|
|
1818
|
+
return value.slice(0, -1);
|
|
1819
|
+
}
|
|
1820
|
+
return value;
|
|
1821
|
+
}
|
|
1822
|
+
function readStreamText(stream) {
|
|
1823
|
+
return new Promise((resolve, reject) => {
|
|
1824
|
+
const chunks = [];
|
|
1825
|
+
const cleanup = () => {
|
|
1826
|
+
stream.off("data", onData);
|
|
1827
|
+
stream.off("end", onEnd);
|
|
1828
|
+
stream.off("error", onError);
|
|
1829
|
+
};
|
|
1830
|
+
const onData = (chunk) => {
|
|
1831
|
+
chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
|
|
1832
|
+
};
|
|
1833
|
+
const onEnd = () => {
|
|
1834
|
+
cleanup();
|
|
1835
|
+
resolve(Buffer.concat(chunks).toString("utf8"));
|
|
1836
|
+
};
|
|
1837
|
+
const onError = (error) => {
|
|
1838
|
+
cleanup();
|
|
1839
|
+
reject(error instanceof Error ? error : new Error(String(error)));
|
|
1840
|
+
};
|
|
1841
|
+
stream.on("data", onData);
|
|
1842
|
+
stream.on("end", onEnd);
|
|
1843
|
+
stream.on("error", onError);
|
|
1844
|
+
stream.resume();
|
|
1845
|
+
});
|
|
1846
|
+
}
|
|
1749
1847
|
/** Buffered line reader over a piped stream; undefined once it ends. */
|
|
1750
1848
|
export function createLineReader(stream) {
|
|
1751
1849
|
let buffer = "";
|
|
@@ -1923,8 +2021,7 @@ function pollUntilGone(ctx, slug, getDetail) {
|
|
|
1923
2021
|
function aliasTokenBlock(aliasToken) {
|
|
1924
2022
|
return (`\n Alias token (shown ONCE — save it now, it cannot be retrieved again):\n\n` +
|
|
1925
2023
|
` ${aliasToken}\n\n` +
|
|
1926
|
-
` Send it as the X-Agent-Alias-Token header on requests to the alias URL
|
|
1927
|
-
` or paste it into the hosted playground (<alias>/playground) sign-in gate.\n` +
|
|
2024
|
+
` Send it as the X-Agent-Alias-Token header on requests to the alias URL.\n` +
|
|
1928
2025
|
` Lost tokens: \`${CLI} rotate-token <slug>\` mints a replacement.\n\n`);
|
|
1929
2026
|
}
|
|
1930
2027
|
/**
|
|
@@ -131,7 +131,7 @@ function cmdGithubForward(options) {
|
|
|
131
131
|
process.stderr.write("could not infer the repository — pass --repo owner/repo (or --org <org>)\n");
|
|
132
132
|
return 1;
|
|
133
133
|
}
|
|
134
|
-
process.stderr.write(`[
|
|
134
|
+
process.stderr.write(`[bdk] inferred --repo ${repo}\n`);
|
|
135
135
|
}
|
|
136
136
|
const secret = (_c = options.secret) !== null && _c !== void 0 ? _c : process.env.GITHUB_WEBHOOK_SECRET;
|
|
137
137
|
// `gh webhook forward` targets a single URL, and GitHub allows only one
|
|
@@ -149,21 +149,21 @@ function cmdGithubForward(options) {
|
|
|
149
149
|
org,
|
|
150
150
|
secret,
|
|
151
151
|
});
|
|
152
|
-
process.stderr.write(`[
|
|
152
|
+
process.stderr.write(`[bdk] forwarding ${org !== undefined ? `org ${org}` : `repo ${repo}`} to ${targets.length} channel${targets.length === 1 ? "" : "s"}:\n`);
|
|
153
153
|
for (const target of targets) {
|
|
154
|
-
process.stderr.write(`[
|
|
154
|
+
process.stderr.write(`[bdk] → ${targetLabel(target)} ${target.url} (${target.events.join(", ")})\n`);
|
|
155
155
|
}
|
|
156
156
|
if (fanout) {
|
|
157
|
-
process.stderr.write(`[
|
|
157
|
+
process.stderr.write(`[bdk] fan-out proxy on ${forwardUrl} (union events: ${events.join(", ")})\n`);
|
|
158
158
|
}
|
|
159
159
|
if (secret === undefined || secret === "") {
|
|
160
|
-
process.stderr.write("[
|
|
160
|
+
process.stderr.write("[bdk] no signing secret — deliveries are unsigned. A `serve --dev` github channel accepts them; set GITHUB_WEBHOOK_SECRET on both sides to verify signatures (required for a non-dev target).\n");
|
|
161
161
|
}
|
|
162
162
|
const envToken = detectGitHubEnvTokenOverride();
|
|
163
163
|
if (envToken !== undefined) {
|
|
164
|
-
process.stderr.write(`[
|
|
164
|
+
process.stderr.write(`[bdk] warning: ${githubEnvTokenHint(envToken)}\n`);
|
|
165
165
|
}
|
|
166
|
-
process.stderr.write(`[
|
|
166
|
+
process.stderr.write(`[bdk] running: gh ${redact(args)}\n`);
|
|
167
167
|
try {
|
|
168
168
|
return yield spawnGh(args);
|
|
169
169
|
}
|
|
@@ -232,7 +232,7 @@ function cmdGithubReplay(options) {
|
|
|
232
232
|
const requested = parseEventList(options.events);
|
|
233
233
|
const { events: eventsToReplay, unsupported } = selectReplayEvents(requested, unionForwardEvents(targets));
|
|
234
234
|
if (unsupported.length > 0) {
|
|
235
|
-
process.stderr.write(`[
|
|
235
|
+
process.stderr.write(`[bdk] cannot synthesize (skipped): ${unsupported.join(", ")}\n`);
|
|
236
236
|
}
|
|
237
237
|
if (eventsToReplay.length === 0) {
|
|
238
238
|
process.stderr.write("no synthesizable events selected\n");
|
|
@@ -265,7 +265,7 @@ function cmdGithubReplay(options) {
|
|
|
265
265
|
check,
|
|
266
266
|
});
|
|
267
267
|
if ("error" in result) {
|
|
268
|
-
process.stderr.write(`[
|
|
268
|
+
process.stderr.write(`[bdk] skipping ${event}: ${result.error}\n`);
|
|
269
269
|
continue;
|
|
270
270
|
}
|
|
271
271
|
synthesized.push(result);
|
|
@@ -275,7 +275,7 @@ function cmdGithubReplay(options) {
|
|
|
275
275
|
return 1;
|
|
276
276
|
}
|
|
277
277
|
const secret = (_j = options.secret) !== null && _j !== void 0 ? _j : process.env.GITHUB_WEBHOOK_SECRET;
|
|
278
|
-
process.stderr.write(`[
|
|
278
|
+
process.stderr.write(`[bdk] replaying ${ref.label} (${synthesized
|
|
279
279
|
.map(s => s.eventName)
|
|
280
280
|
.join(", ")}) → ${targets.length} channel${targets.length === 1 ? "" : "s"}\n`);
|
|
281
281
|
const report = [];
|
|
@@ -292,7 +292,7 @@ function cmdGithubReplay(options) {
|
|
|
292
292
|
}
|
|
293
293
|
if (options.out !== undefined) {
|
|
294
294
|
const file = yield writeReplayFixture(options.out, event);
|
|
295
|
-
process.stderr.write(`[
|
|
295
|
+
process.stderr.write(`[bdk] wrote ${file}\n`);
|
|
296
296
|
}
|
|
297
297
|
const label = eventLabel(event);
|
|
298
298
|
if (options.dryRun === true) {
|
|
@@ -311,7 +311,7 @@ function cmdGithubReplay(options) {
|
|
|
311
311
|
const summary = deliveries
|
|
312
312
|
.map(delivery => `${delivery.label} ${delivery.status || "ERR"}${delivery.ok ? "" : " (rejected)"}`)
|
|
313
313
|
.join(", ") || "(no matching channel)";
|
|
314
|
-
process.stderr.write(`[
|
|
314
|
+
process.stderr.write(`[bdk] ${label} → ${summary}\n`);
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
317
|
if (options.json === true) {
|
|
@@ -549,7 +549,7 @@ function ensureWebhookExtension(install) {
|
|
|
549
549
|
: `${GITHUB_WEBHOOK_EXTENSION} is ${(_b = parseGhWebhookExtensionVersion(list)) !== null && _b !== void 0 ? _b : "unknown"} (need ${GITHUB_WEBHOOK_EXTENSION_PIN}) — re-run with --install`,
|
|
550
550
|
};
|
|
551
551
|
}
|
|
552
|
-
process.stderr.write(`[
|
|
552
|
+
process.stderr.write(`[bdk] installing ${GITHUB_WEBHOOK_EXTENSION}@${GITHUB_WEBHOOK_EXTENSION_PIN}…\n`);
|
|
553
553
|
if ((yield tryExec({
|
|
554
554
|
command: "gh",
|
|
555
555
|
args: ghWebhookExtensionInstallArgs({ force: installed && !pinOk }),
|
|
@@ -152,7 +152,7 @@ function cmdGitlabReplay(options) {
|
|
|
152
152
|
const declared = [...new Set(targets.flatMap(target => target.events))];
|
|
153
153
|
const { events, unsupported } = selectGitLabReplayEvents(requested, declared);
|
|
154
154
|
if (unsupported.length > 0) {
|
|
155
|
-
process.stderr.write(`[
|
|
155
|
+
process.stderr.write(`[bdk] cannot synthesize (skipped): ${unsupported.join(", ")}\n`);
|
|
156
156
|
}
|
|
157
157
|
if (events.length === 0) {
|
|
158
158
|
process.stderr.write("no synthesizable events selected\n");
|
|
@@ -201,7 +201,7 @@ function cmdGitlabReplay(options) {
|
|
|
201
201
|
pipeline,
|
|
202
202
|
});
|
|
203
203
|
if ("error" in result) {
|
|
204
|
-
process.stderr.write(`[
|
|
204
|
+
process.stderr.write(`[bdk] skipping ${event}: ${result.error}\n`);
|
|
205
205
|
continue;
|
|
206
206
|
}
|
|
207
207
|
synthesized.push(result);
|
|
@@ -211,7 +211,7 @@ function cmdGitlabReplay(options) {
|
|
|
211
211
|
return 1;
|
|
212
212
|
}
|
|
213
213
|
const secret = (_b = options.secret) !== null && _b !== void 0 ? _b : process.env.GITLAB_WEBHOOK_SECRET;
|
|
214
|
-
process.stderr.write(`[
|
|
214
|
+
process.stderr.write(`[bdk] replaying ${ref.label} (${synthesized
|
|
215
215
|
.map(eventLabel)
|
|
216
216
|
.join(", ")}) → ${targets.length} channel${targets.length === 1 ? "" : "s"}\n`);
|
|
217
217
|
const report = [];
|
|
@@ -228,7 +228,7 @@ function cmdGitlabReplay(options) {
|
|
|
228
228
|
}
|
|
229
229
|
if (options.out !== undefined) {
|
|
230
230
|
const file = yield writeReplayFixture(options.out, event);
|
|
231
|
-
process.stderr.write(`[
|
|
231
|
+
process.stderr.write(`[bdk] wrote ${file}\n`);
|
|
232
232
|
}
|
|
233
233
|
const label = eventLabel(event);
|
|
234
234
|
if (options.dryRun === true) {
|
|
@@ -247,7 +247,7 @@ function cmdGitlabReplay(options) {
|
|
|
247
247
|
const summary = deliveries
|
|
248
248
|
.map(d => `${d.label} ${d.status || "ERR"}${d.ok ? "" : " (rejected)"}`)
|
|
249
249
|
.join(", ") || "(no matching channel)";
|
|
250
|
-
process.stderr.write(`[
|
|
250
|
+
process.stderr.write(`[bdk] ${label} → ${summary}\n`);
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
if (options.json === true) {
|
|
@@ -78,6 +78,8 @@ export declare function parseContinuationSelector(selector: string): ParsedConti
|
|
|
78
78
|
export declare function normalizeIdentity(raw?: ContinuationIdentity, kind?: string): ContinuationIdentity;
|
|
79
79
|
export declare function continuationSource(identity?: ContinuationIdentity, kind?: string): "engine" | "control-plane";
|
|
80
80
|
export declare function isV2DurableContinuationKey(key: string): boolean;
|
|
81
|
+
/** A v2 `evt:` key names one event: a later send on it opens a new session, never joins. */
|
|
82
|
+
export declare function isOneShotContinuationKey(key: string): boolean;
|
|
81
83
|
export declare function mintClaim(claim: ContinuationClaim): string;
|
|
82
84
|
export declare function handshakeContinuation(input: {
|
|
83
85
|
kind?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-identity.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-identity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"continuation-identity.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -299,6 +299,10 @@ export function continuationSource(identity, kind) {
|
|
|
299
299
|
export function isV2DurableContinuationKey(key) {
|
|
300
300
|
return key.startsWith("cont:") || key.startsWith("evt:");
|
|
301
301
|
}
|
|
302
|
+
/** A v2 `evt:` key names one event: a later send on it opens a new session, never joins. */
|
|
303
|
+
export function isOneShotContinuationKey(key) {
|
|
304
|
+
return key.startsWith("evt:");
|
|
305
|
+
}
|
|
302
306
|
function newEvtKey() {
|
|
303
307
|
return `evt:${randomBytes(16).toString("hex")}`;
|
|
304
308
|
}
|
|
@@ -1,39 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Durable mirror for the SDK runner's conversation store.
|
|
3
3
|
*
|
|
4
|
-
* The
|
|
5
|
-
*
|
|
6
|
-
*
|
|
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.
|
|
4
|
+
* The mirror restores checkpoint state before a conversation resumes and
|
|
5
|
+
* persists it after each local turn. Conversation data uses framework-owned
|
|
6
|
+
* storage, isolated from author-facing files and KV.
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
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.
|
|
8
|
+
* Restore failures propagate so a temporary storage outage cannot fork an
|
|
9
|
+
* existing thread into a fresh conversation. Run bookkeeping remains local;
|
|
10
|
+
* the durable session event stream already records user-visible history.
|
|
37
11
|
*/
|
|
38
12
|
import type { LocalAgentStore } from "@cursor/sdk";
|
|
39
13
|
import { type FileSink } from "../files.js";
|
|
@@ -70,12 +44,9 @@ export declare function createConversationMirror(options: CreateConversationMirr
|
|
|
70
44
|
/**
|
|
71
45
|
* Whether (and over which sink) this serve process mirrors conversations.
|
|
72
46
|
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* lives with session records and transcripts, never on the author-facing
|
|
77
|
-
* user store. Self-hosted v2 keeps everything on the state root (the
|
|
78
|
-
* operator owns the disk), and v1 keeps today's behavior while it runs.
|
|
47
|
+
* Enabled for architecture-v2 agents on Cursor-managed hosting.
|
|
48
|
+
* Conversation state is framework-owned and never uses author-facing
|
|
49
|
+
* storage. Self-hosted and architecture-v1 agents keep local behavior.
|
|
79
50
|
*/
|
|
80
51
|
export declare function selectConversationMirror(input: {
|
|
81
52
|
project: AgentProject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-mirror.d.ts","sourceRoot":"","sources":["../../src/internal/conversation-mirror.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"conversation-mirror.d.ts","sourceRoot":"","sources":["../../src/internal/conversation-mirror.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAA0B,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAYD,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,QAAQ,CAAC;IACf,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,kEAAkE;AAClE,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,GACvC,kBAAkB,CAoQpB;AAyED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,kBAAkB,GAAG,SAAS,CAgBjC"}
|