@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
package/dist/bin/agent-serve.js
CHANGED
|
@@ -57,10 +57,9 @@ Usage:
|
|
|
57
57
|
${CLI} resume [sessionId] [--url <baseUrl> | --prod] [--message <text>]
|
|
58
58
|
[--json] [--text] [--continuation-token <t>]
|
|
59
59
|
[--slug <slug>] [--team <id>]
|
|
60
|
-
${CLI} logs [--url <baseUrl> | --prod] [--
|
|
61
|
-
[--
|
|
62
|
-
|
|
63
|
-
session <ses_> --prod.
|
|
60
|
+
${CLI} logs [<ses_>] [--url <baseUrl> | --prod] [--session <ses_>]
|
|
61
|
+
[--once] [--json] [--slug <slug>] [--team <id>]
|
|
62
|
+
[--dir <path>]
|
|
64
63
|
${CLI} sessions [--url <baseUrl> | --prod] [--json]
|
|
65
64
|
[--slug <slug>] [--team <id>] [--dir <path>]
|
|
66
65
|
v2: unsupported. ${v2HostedVerifyHint()}
|
|
@@ -98,14 +97,10 @@ Usage:
|
|
|
98
97
|
[--junit <path>] [--artifacts <dir>|--no-artifacts]
|
|
99
98
|
[--out <file.json>]
|
|
100
99
|
[--skip-report] [--no-stream] [--no-wait]
|
|
101
|
-
[--
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
${CLI} eval cancel <runId> --prod|--url <baseUrl> [--dir <path>] [--json]
|
|
106
|
-
[--slug <slug>] [--team <id>]
|
|
107
|
-
v2: --prod unsupported for eval, status, and cancel;
|
|
108
|
-
run eval locally or pass --url.
|
|
100
|
+
[--url <baseUrl>] [--slug <slug>]
|
|
101
|
+
${CLI} eval status [runId] --url <baseUrl> [--dir <path>] [--json]
|
|
102
|
+
[--out <file.json>]
|
|
103
|
+
${CLI} eval cancel <runId> --url <baseUrl> [--dir <path>] [--json]
|
|
109
104
|
${CLI} info [--dir <path>] [--json]
|
|
110
105
|
${CLI} validate [--dir <path>]
|
|
111
106
|
${CLI} login [--api-key <key>] [--key-name <name>]
|
|
@@ -157,10 +152,12 @@ Commands:
|
|
|
157
152
|
--continuation-token is omitted, then replays the transcript.
|
|
158
153
|
Pass --prod for a hosted deployment.
|
|
159
154
|
logs Tail agent logs. Default follows (Ctrl-C to stop); --once dumps
|
|
160
|
-
the current buffer. --prod
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
155
|
+
the current buffer. Without --prod, tails the local server (or
|
|
156
|
+
--url). On a v1 deployment, --prod shows deploy progress until
|
|
157
|
+
the deployment is running, then tails runtime logs. On
|
|
158
|
+
architecture v2, --prod tails the output of the deployment's
|
|
159
|
+
most recent sessions, each under a ==> ses_… <== header; pass a
|
|
160
|
+
session id (positional or --session) to tail only that session.
|
|
164
161
|
sessions List sessions on a running agent or a v1 --prod deployment.
|
|
165
162
|
Unsupported on architecture v2. ${v2HostedVerifyHint()}
|
|
166
163
|
session Show one session. On v2: \`${CLI} session <ses_> --prod --slug <slug>\`.
|
|
@@ -230,18 +227,17 @@ Commands:
|
|
|
230
227
|
MCP_OAUTH_<NAME>_* secrets on the hosted deployment.
|
|
231
228
|
eval Run filesystem evals under evals/**/*.eval.ts (streams on a TTY).
|
|
232
229
|
Default: ephemeral local harness against evals on disk. Pass
|
|
233
|
-
--
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
\`${CLI} eval
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
named status/cancel still runs locally. Pass evalId args to
|
|
230
|
+
--url to kick off the batch on a running server via
|
|
231
|
+
/v1/dev/evals/runs so results appear in the playground and
|
|
232
|
+
persist when the agent declares an evals storage table. With
|
|
233
|
+
--url, prints an Eval ID as soon as the batch is accepted (also
|
|
234
|
+
with --no-wait). Check later with
|
|
235
|
+
\`${CLI} eval status <evalId> --url <baseUrl>\` (omit id to list
|
|
236
|
+
recent runs; exit 3 while still running) or cancel with
|
|
237
|
+
\`${CLI} eval cancel <evalId> --url <baseUrl>\`. The
|
|
238
|
+
status/cancel subcommands only bind when --url is set, so an
|
|
239
|
+
eval id named status/cancel still runs locally. eval does not
|
|
240
|
+
accept --prod. Pass evalId args to
|
|
245
241
|
select: one datapoint (weather/nyc), a whole file (weather → all
|
|
246
242
|
cases in that file), several of either, or omit to run all.
|
|
247
243
|
info Print the discovered agent surface (tools, skills, channels, ...).
|
|
@@ -362,17 +358,19 @@ Options:
|
|
|
362
358
|
--no-control-plane serve: do not start the bundled control plane (schedule
|
|
363
359
|
and reminder clocks). Cursor hosting passes this so the
|
|
364
360
|
kit uses the Cursor backend instead.
|
|
361
|
+
--cloud-tools-url serve: Cursor hosting passes the deployment's server-tools
|
|
362
|
+
MCP URL here. Hosted install probes this help text for the
|
|
363
|
+
flag before trusting a checkout build; keep it listed.
|
|
365
364
|
--team deploy/deployments/deployment/stop/rotate-token and
|
|
366
|
-
chat/resume/run/call/
|
|
365
|
+
chat/resume/run/call/logs/sessions/session/playground
|
|
367
366
|
--prod: Cursor team id. Defaults to the account's team when
|
|
368
367
|
it has one.
|
|
369
|
-
--prod chat/resume/run/call/
|
|
368
|
+
--prod chat/resume/run/call/logs/sessions/session/playground:
|
|
370
369
|
use the team's hosted deployment. Slug from --slug or the
|
|
371
370
|
--dir basename. Mutually exclusive with --url. Requires
|
|
372
|
-
\`${CLI} login\`.
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
${v2HostedVerifyHint()}
|
|
371
|
+
\`${CLI} login\`. eval does not accept --prod.
|
|
372
|
+
v2: only run, session, logs, and playground support
|
|
373
|
+
--prod. ${v2HostedVerifyHint()}
|
|
376
374
|
--dry-run run/session --prod: mark the hosted v2 turn non-mutating.
|
|
377
375
|
${v2HostedVerifyHint()}
|
|
378
376
|
--component run/session --prod: wake this v2 component key,
|
|
@@ -386,7 +384,7 @@ Options:
|
|
|
386
384
|
path without writing them.
|
|
387
385
|
--no-wait deploy/stop/eval: return right after the request is
|
|
388
386
|
accepted instead of polling until a terminal status.
|
|
389
|
-
For eval, prints the runId (
|
|
387
|
+
For eval, prints the runId (--url only).
|
|
390
388
|
--cancel-runs stop: also cancel this install's active Agent SDK v2
|
|
391
389
|
session runs and reminder clocks, and mark factory
|
|
392
390
|
creating/active sessions failed (not every tenant).
|
|
@@ -402,7 +400,7 @@ Options:
|
|
|
402
400
|
--messages-file JSON array of strings (run).
|
|
403
401
|
--session Existing session id (run/call follow-up, or chat reattach).
|
|
404
402
|
Prefer \`${CLI} resume [sessionId]\` for interactive
|
|
405
|
-
reattach.
|
|
403
|
+
reattach. logs --prod (v2): tail only this session.
|
|
406
404
|
--resume chat: reattach the previous followable session (most
|
|
407
405
|
recently updated in /v1/sessions). Same as
|
|
408
406
|
\`${CLI} resume\` with no session id. Ignored when
|
|
@@ -431,7 +429,8 @@ Options:
|
|
|
431
429
|
--json JSON output (init/convert-automation/install-skills/
|
|
432
430
|
info/chat/eval/logs/version/
|
|
433
431
|
sessions/session/github; run defaults to JSON). logs:
|
|
434
|
-
NDJSON progress/log events
|
|
432
|
+
NDJSON progress/log events (v2: {sessionId, line}).
|
|
433
|
+
session: trajectory JSON
|
|
435
434
|
(not raw events).
|
|
436
435
|
--no-color chat: force plain output.
|
|
437
436
|
--cursor-events serve: pull SCM webhook events from /v0/scm-events. The
|
|
@@ -493,7 +492,7 @@ function writeStdout(text) {
|
|
|
493
492
|
function main(argv) {
|
|
494
493
|
return __awaiter(this, void 0, void 0, function* () {
|
|
495
494
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
496
|
-
var _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
|
495
|
+
var _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
|
|
497
496
|
const [command, ...restIn] = argv;
|
|
498
497
|
if (command === undefined || command === "help" || command === "--help" || command === "-h") {
|
|
499
498
|
// Await the write: HELP is larger than a pipe buffer, and process.exit
|
|
@@ -798,7 +797,8 @@ function main(argv) {
|
|
|
798
797
|
// `--repo` is repeatable for `serve --cursor-events`; deploy targets a
|
|
799
798
|
// single source repo, so the last one wins.
|
|
800
799
|
const repo = (_e = values.repo) === null || _e === void 0 ? void 0 : _e.at(-1);
|
|
801
|
-
|
|
800
|
+
const dirFlagPassed = rest.includes("--dir") || rest.some(arg => arg.startsWith("--dir="));
|
|
801
|
+
return cmdDeploy(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, deployOptionsFromValues(values)), { dir: dirFlagPassed ? dir : undefined }), (values.slug === undefined ? {} : { slug: values.slug })), { all: values.all === true }), (repo === undefined ? {} : { repo })), (values.ref === undefined ? {} : { ref: values.ref })), (values.path === undefined ? {} : { path: values.path })), (values["cursor-events-repo"] === undefined
|
|
802
802
|
? {}
|
|
803
803
|
: { cursorEventsRepos: values["cursor-events-repo"] })), (values["allow-domain"] === undefined ? {} : { allowDomains: values["allow-domain"] })), { multiTenant: values["multi-tenant"] === true }));
|
|
804
804
|
}
|
|
@@ -935,29 +935,25 @@ function main(argv) {
|
|
|
935
935
|
}));
|
|
936
936
|
}
|
|
937
937
|
case "eval": {
|
|
938
|
-
// Remote status subcommand only when targeting --
|
|
939
|
-
//
|
|
940
|
-
if (positionals[0] === "status" &&
|
|
938
|
+
// Remote status subcommand only when targeting --url. Otherwise the
|
|
939
|
+
// bare token "status" is a normal eval id (evals/status.eval.ts).
|
|
940
|
+
if (positionals[0] === "status" && values.url !== undefined) {
|
|
941
941
|
return cmdEvalStatus(positionals[1], axFromOptions({
|
|
942
942
|
dir,
|
|
943
943
|
json: values.json,
|
|
944
944
|
url: values.url,
|
|
945
945
|
prod: values.prod,
|
|
946
|
-
team: values.team,
|
|
947
|
-
apiKey: values["api-key"],
|
|
948
946
|
slug: values.slug,
|
|
949
947
|
bearerToken: values["bearer-token"],
|
|
950
948
|
out: values.out,
|
|
951
949
|
}));
|
|
952
950
|
}
|
|
953
|
-
if (positionals[0] === "cancel" &&
|
|
951
|
+
if (positionals[0] === "cancel" && values.url !== undefined) {
|
|
954
952
|
return cmdEvalCancel(positionals[1], axFromOptions({
|
|
955
953
|
dir,
|
|
956
954
|
json: values.json,
|
|
957
955
|
url: values.url,
|
|
958
956
|
prod: values.prod,
|
|
959
|
-
team: values.team,
|
|
960
|
-
apiKey: values["api-key"],
|
|
961
957
|
slug: values.slug,
|
|
962
958
|
bearerToken: values["bearer-token"],
|
|
963
959
|
}));
|
|
@@ -972,8 +968,6 @@ function main(argv) {
|
|
|
972
968
|
url: values.url,
|
|
973
969
|
prod: values.prod,
|
|
974
970
|
noWait: values["no-wait"],
|
|
975
|
-
team: values.team,
|
|
976
|
-
apiKey: values["api-key"],
|
|
977
971
|
slug: values.slug,
|
|
978
972
|
bearerToken: values["bearer-token"],
|
|
979
973
|
stateRoot: values["state-root"],
|
|
@@ -1033,6 +1027,7 @@ function main(argv) {
|
|
|
1033
1027
|
apiKey: values["api-key"],
|
|
1034
1028
|
slug: values.slug,
|
|
1035
1029
|
bearerToken: values["bearer-token"],
|
|
1030
|
+
sessionId: (_u = (_t = positionals[0]) !== null && _t !== void 0 ? _t : values["session-id"]) !== null && _u !== void 0 ? _u : values.session,
|
|
1036
1031
|
json: values.json,
|
|
1037
1032
|
once: values.once,
|
|
1038
1033
|
}));
|
|
@@ -1064,14 +1059,14 @@ function main(argv) {
|
|
|
1064
1059
|
rawEvents: values["raw-events"],
|
|
1065
1060
|
out: values.out,
|
|
1066
1061
|
messages,
|
|
1067
|
-
sessionId: (
|
|
1062
|
+
sessionId: (_v = values["session-id"]) !== null && _v !== void 0 ? _v : values.session,
|
|
1068
1063
|
dryRun: values["dry-run"],
|
|
1069
1064
|
asOf: values["as-of"],
|
|
1070
1065
|
componentKey: values.component,
|
|
1071
1066
|
}));
|
|
1072
1067
|
}
|
|
1073
1068
|
case "cost": {
|
|
1074
|
-
return cmdCost((
|
|
1069
|
+
return cmdCost((_x = (_w = positionals[0]) !== null && _w !== void 0 ? _w : values["session-id"]) !== null && _x !== void 0 ? _x : values.session, axFromOptions({
|
|
1075
1070
|
dir,
|
|
1076
1071
|
url: values.url,
|
|
1077
1072
|
prod: values.prod,
|
|
@@ -1091,7 +1086,7 @@ function main(argv) {
|
|
|
1091
1086
|
apiKey: values["api-key"],
|
|
1092
1087
|
slug: values.slug,
|
|
1093
1088
|
bearerToken: values["bearer-token"],
|
|
1094
|
-
sessionId: (
|
|
1089
|
+
sessionId: (_y = values["session-id"]) !== null && _y !== void 0 ? _y : values.session,
|
|
1095
1090
|
print: values.print,
|
|
1096
1091
|
}));
|
|
1097
1092
|
}
|
|
@@ -1167,8 +1162,8 @@ function main(argv) {
|
|
|
1167
1162
|
lines.push(section("channels", info.channels.map(c => `${c.id}: ${c.routes.map(r => `${r.method} ${r.url}`).join(", ") || "(events only)"}`)));
|
|
1168
1163
|
lines.push(section("schedules", info.schedules.map(s => `${s.name} (${s.cron}, ${s.kind})`)));
|
|
1169
1164
|
lines.push(section("hooks", info.hooks));
|
|
1170
|
-
lines.push(section("hosting egress domains", (
|
|
1171
|
-
lines.push(section("hosting secret names", (
|
|
1165
|
+
lines.push(section("hosting egress domains", (_z = (_j = info.hosting) === null || _j === void 0 ? void 0 : _j.egressDomains) !== null && _z !== void 0 ? _z : []));
|
|
1166
|
+
lines.push(section("hosting secret names", (_0 = (_k = info.hosting) === null || _k === void 0 ? void 0 : _k.secretNames) !== null && _0 !== void 0 ? _0 : []));
|
|
1172
1167
|
if (info.diagnostics.length > 0) {
|
|
1173
1168
|
lines.push(`\ndiagnostics:\n${formatDiagnostics(info.diagnostics)}`);
|
|
1174
1169
|
}
|
|
@@ -1231,7 +1226,7 @@ function main(argv) {
|
|
|
1231
1226
|
docs: values["no-docs"] === true ? false : undefined,
|
|
1232
1227
|
publicUrl: values["public-url"],
|
|
1233
1228
|
cloudToolsUrl: values["cloud-tools-url"],
|
|
1234
|
-
cursorEvents: values["cursor-events"] === true ? { repos: (
|
|
1229
|
+
cursorEvents: values["cursor-events"] === true ? { repos: (_1 = values.repo) !== null && _1 !== void 0 ? _1 : [] } : undefined,
|
|
1235
1230
|
// Soft boot logs stay secondary to the banner. `dim` is a no-op on
|
|
1236
1231
|
// already-styled lines (the MCP warning box).
|
|
1237
1232
|
logger: (line) => {
|
|
@@ -1572,7 +1567,7 @@ function installTransportErrorGuards() {
|
|
|
1572
1567
|
};
|
|
1573
1568
|
const log = (label, reason) => {
|
|
1574
1569
|
const text = reason instanceof Error ? reason.message : String(reason);
|
|
1575
|
-
process.stderr.write(`[
|
|
1570
|
+
process.stderr.write(`[bdk] ${label} (server stays up): ${text.slice(0, 400)}\n`);
|
|
1576
1571
|
};
|
|
1577
1572
|
process.on("unhandledRejection", reason => {
|
|
1578
1573
|
if (isTransportNoise(reason)) {
|
|
@@ -1587,7 +1582,7 @@ function installTransportErrorGuards() {
|
|
|
1587
1582
|
log("swallowed uncaughtException", error);
|
|
1588
1583
|
return;
|
|
1589
1584
|
}
|
|
1590
|
-
process.stderr.write(`[
|
|
1585
|
+
process.stderr.write(`[bdk] uncaughtException: ${(_a = error.stack) !== null && _a !== void 0 ? _a : error.message}\n`);
|
|
1591
1586
|
void flushSessionRunFatal(error).finally(() => {
|
|
1592
1587
|
process.exit(1);
|
|
1593
1588
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/github/github-channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"github-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/github/github-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@ import { acknowledgeTask, acknowledgeTurn, isTaskDispatch, scheduleAfterAck, ski
|
|
|
14
14
|
import { continuationSource, normalizeIdentity } from "../../internal/continuation-identity.js";
|
|
15
15
|
import { isDevMode } from "../../internal/dev-mode.js";
|
|
16
16
|
import { attachHostedAdmissionAdapter } from "../../internal/hosted-admission-adapter.js";
|
|
17
|
+
import { CATCH_DELIVERY_ID_HEADER, replayCatchRequest } from "../../internal/hosted-catch.js";
|
|
18
|
+
import { AGENT_SDK_CATCH_EVENT_TYPE } from "../../internal/hosted-catch-protocol.js";
|
|
17
19
|
import { bindLocalIngressSend } from "../../internal/local-ingress.js";
|
|
18
20
|
import { resolveCredentialValue } from "./auth.js";
|
|
19
21
|
import { buildGitHubBinding, } from "./binding.js";
|
|
@@ -371,7 +373,13 @@ export function handleGitHubWebhookRequest(input) {
|
|
|
371
373
|
var _b, _c;
|
|
372
374
|
const bodyText = yield input.request.text();
|
|
373
375
|
const webhookSecret = (_b = (_a = input.options.credentials) === null || _a === void 0 ? void 0 : _a.webhookSecret) !== null && _b !== void 0 ? _b : envWebhookSecret();
|
|
374
|
-
|
|
376
|
+
// A hosted public catch is reachable without an alias token. Require a
|
|
377
|
+
// verified Hub signature there even when no secret is configured, so a
|
|
378
|
+
// missing secret is a rejection rather than an unsigned accept. Local
|
|
379
|
+
// routes keep the existing rule: verify only when a secret is set.
|
|
380
|
+
const requireSignature = input.skipSignatureVerification !== true &&
|
|
381
|
+
(webhookSecret !== undefined || input.request.headers.has(CATCH_DELIVERY_ID_HEADER));
|
|
382
|
+
if (requireSignature) {
|
|
375
383
|
const signatureResult = yield verifyGitHubWebhookSignature({
|
|
376
384
|
body: bodyText,
|
|
377
385
|
signatureHeader: input.request.headers.get("x-hub-signature-256"),
|
|
@@ -530,13 +538,29 @@ export function githubChannel(options = {}) {
|
|
|
530
538
|
attachHostedAdmissionAdapter(definition, {
|
|
531
539
|
kind: GITHUB_CHANNEL_KIND,
|
|
532
540
|
prepareArgs: withPropagatingBackgroundErrors,
|
|
533
|
-
dispatch: ({ eventType, payload, deliveryId, args }) =>
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
541
|
+
dispatch: ({ channelId, eventType, payload, deliveryId, args }) => {
|
|
542
|
+
var _a;
|
|
543
|
+
// A publicEndpoint() catch is an http.request envelope. Replay it
|
|
544
|
+
// into the route handler, which verifies X-Hub-Signature-256.
|
|
545
|
+
// Forge deliveries carry a GitHub event name and stay on
|
|
546
|
+
// dispatchGitHubWebhook.
|
|
547
|
+
if (eventType === AGENT_SDK_CATCH_EVENT_TYPE) {
|
|
548
|
+
return replayCatchRequest({
|
|
549
|
+
channelId: channelId !== null && channelId !== void 0 ? channelId : "github",
|
|
550
|
+
deliveryId,
|
|
551
|
+
routes: (_a = definition.routes) !== null && _a !== void 0 ? _a : [],
|
|
552
|
+
payload,
|
|
553
|
+
args,
|
|
554
|
+
});
|
|
555
|
+
}
|
|
556
|
+
return dispatchGitHubWebhook({
|
|
557
|
+
options: channelOptions,
|
|
558
|
+
eventName: eventType,
|
|
559
|
+
payload,
|
|
560
|
+
deliveryId,
|
|
561
|
+
args,
|
|
562
|
+
});
|
|
563
|
+
},
|
|
540
564
|
});
|
|
541
565
|
if (cursorCredentials !== undefined) {
|
|
542
566
|
registerGithubCursorAccountRuntime(definition, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/dispatch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,KAAK,oBAAoB,EAI1B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAKjG,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAa,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQ1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAY1D,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,8 @@ import { describeSlackEventShape, formatSlackContextBlock, parseAppHomeOpened, p
|
|
|
25
25
|
import { defaultSlackLog } from "./log.js";
|
|
26
26
|
import { paintTurnStart, retractTurnStart } from "./paint-start.js";
|
|
27
27
|
import { adoptPlaceholder, retractPlaceholderMessage, retractPlaceholderSlot, startPlaceholder, } from "./placeholder.js";
|
|
28
|
+
import { resolveSlackSelfIdentity } from "./self-identity.js";
|
|
29
|
+
import { resolveSlackSenderName } from "./sender-name.js";
|
|
28
30
|
import { isWholeMessageStop } from "./stop.js";
|
|
29
31
|
import { EMPTY_SLACK_THREAD_CONTEXT, loadSlackThreadContext, loadSlackThreadDelta, } from "./thread-context.js";
|
|
30
32
|
const FOLLOWUP_TYPING = "Saw your follow-up…";
|
|
@@ -126,10 +128,10 @@ function slackSessionContinuation(identity, channelId, threadTs) {
|
|
|
126
128
|
}
|
|
127
129
|
export function dispatchInboundMessage(args) {
|
|
128
130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;
|
|
130
|
-
var
|
|
131
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5;
|
|
132
|
+
var _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20;
|
|
131
133
|
const { message, kind } = args;
|
|
132
|
-
const log = (
|
|
134
|
+
const log = (_6 = args.log) !== null && _6 !== void 0 ? _6 : defaultSlackLog;
|
|
133
135
|
const binding = buildSlackBinding({
|
|
134
136
|
botToken: (_a = args.credentials) === null || _a === void 0 ? void 0 : _a.botToken,
|
|
135
137
|
channelId: message.channelId,
|
|
@@ -210,7 +212,7 @@ export function dispatchInboundMessage(args) {
|
|
|
210
212
|
log,
|
|
211
213
|
});
|
|
212
214
|
});
|
|
213
|
-
const userId = (
|
|
215
|
+
const userId = (_7 = (_d = message.author) === null || _d === void 0 ? void 0 : _d.userId) !== null && _7 !== void 0 ? _7 : "";
|
|
214
216
|
const teamId = message.teamId;
|
|
215
217
|
let membership;
|
|
216
218
|
if (args.blockExternals !== false && ((_e = message.author) === null || _e === void 0 ? void 0 : _e.isBot) !== true) {
|
|
@@ -268,7 +270,7 @@ export function dispatchInboundMessage(args) {
|
|
|
268
270
|
try {
|
|
269
271
|
yield binding.thread.startTyping(interrupted ? "Stopped." : "Nothing to stop.");
|
|
270
272
|
}
|
|
271
|
-
catch (
|
|
273
|
+
catch (_21) {
|
|
272
274
|
// best-effort status
|
|
273
275
|
}
|
|
274
276
|
yield retractUnadoptedHandoff();
|
|
@@ -279,7 +281,7 @@ export function dispatchInboundMessage(args) {
|
|
|
279
281
|
// whatever it says, and may open with `eval` while talking to someone else.
|
|
280
282
|
const evalCommandsEnabled = args.evalCommandsEnabled !== false && (kind === "app_mention" || kind === "direct_message");
|
|
281
283
|
const evalDirective = evalCommandsEnabled && args.host.evals !== undefined
|
|
282
|
-
? ((
|
|
284
|
+
? ((_8 = parseSlackEvalDirective(message.text)) !== null && _8 !== void 0 ? _8 : parseSlackEvalDirective(message.markdown))
|
|
283
285
|
: null;
|
|
284
286
|
if (evalDirective !== null && args.host.evals !== undefined) {
|
|
285
287
|
if (membership !== undefined && (yield membership)) {
|
|
@@ -370,7 +372,7 @@ export function dispatchInboundMessage(args) {
|
|
|
370
372
|
const excludeThreadTimestamps = [
|
|
371
373
|
message.ts,
|
|
372
374
|
...(handoffInThread === undefined ? [] : [handoffInThread.messageTs]),
|
|
373
|
-
...((
|
|
375
|
+
...((_9 = decision.excludeThreadTimestamps) !== null && _9 !== void 0 ? _9 : []),
|
|
374
376
|
];
|
|
375
377
|
const mergeMessages = [triggeringMergeMessage(message)];
|
|
376
378
|
const continuationExists = existsP === undefined ? false : yield existsP;
|
|
@@ -378,14 +380,19 @@ export function dispatchInboundMessage(args) {
|
|
|
378
380
|
const afterTs = loadThread && hasSession && args.getContinuationLastBotMessageTs !== undefined
|
|
379
381
|
? yield args.getContinuationLastBotMessageTs(continuation)
|
|
380
382
|
: undefined;
|
|
383
|
+
const selfIdentity = resolveSlackSelfIdentity((_m = args.credentials) === null || _m === void 0 ? void 0 : _m.botToken);
|
|
384
|
+
const senderName = resolveSlackSenderName({
|
|
385
|
+
botToken: (_o = args.credentials) === null || _o === void 0 ? void 0 : _o.botToken,
|
|
386
|
+
author: message.author,
|
|
387
|
+
});
|
|
381
388
|
// Channel mentions: cold <slack_thread>, warm <slack_thread_delta>.
|
|
382
389
|
const threadTask = !loadThread
|
|
383
390
|
? Promise.resolve(EMPTY_SLACK_THREAD_CONTEXT)
|
|
384
391
|
: hasSession
|
|
385
|
-
? loadSlackThreadDelta(Object.assign(Object.assign({ botToken: (
|
|
392
|
+
? loadSlackThreadDelta(Object.assign(Object.assign({ botToken: (_p = args.credentials) === null || _p === void 0 ? void 0 : _p.botToken, channelId: message.channelId, threadTs: message.threadTs }, (afterTs === undefined ? {} : { afterTs })), { excludeTs: excludeThreadTimestamps, mergeMessages,
|
|
386
393
|
log }))
|
|
387
394
|
: loadSlackThreadContext({
|
|
388
|
-
botToken: (
|
|
395
|
+
botToken: (_q = args.credentials) === null || _q === void 0 ? void 0 : _q.botToken,
|
|
389
396
|
channelId: message.channelId,
|
|
390
397
|
threadTs: message.threadTs,
|
|
391
398
|
excludeTs: excludeThreadTimestamps,
|
|
@@ -398,14 +405,14 @@ export function dispatchInboundMessage(args) {
|
|
|
398
405
|
if (painted !== undefined) {
|
|
399
406
|
yield painted;
|
|
400
407
|
yield retractTurnStart({
|
|
401
|
-
botToken: (
|
|
408
|
+
botToken: (_r = args.credentials) === null || _r === void 0 ? void 0 : _r.botToken,
|
|
402
409
|
channelId: message.channelId,
|
|
403
410
|
threadTs: message.threadTs,
|
|
404
|
-
ack: (
|
|
411
|
+
ack: (_10 = args.ack) !== null && _10 !== void 0 ? _10 : "",
|
|
405
412
|
log,
|
|
406
413
|
});
|
|
407
414
|
}
|
|
408
|
-
yield (
|
|
415
|
+
yield (_s = args.host.slackNudges) === null || _s === void 0 ? void 0 : _s.releaseAsk(message.channelId, message.ts);
|
|
409
416
|
yield retractAdoptedPlaceholder();
|
|
410
417
|
return;
|
|
411
418
|
}
|
|
@@ -415,7 +422,7 @@ export function dispatchInboundMessage(args) {
|
|
|
415
422
|
message,
|
|
416
423
|
threadFiles: thread.files,
|
|
417
424
|
decision,
|
|
418
|
-
botToken: (
|
|
425
|
+
botToken: (_t = args.credentials) === null || _t === void 0 ? void 0 : _t.botToken,
|
|
419
426
|
log,
|
|
420
427
|
});
|
|
421
428
|
if ((message.files !== undefined && message.files.length > 0) || threadFileCount > 0) {
|
|
@@ -424,18 +431,19 @@ export function dispatchInboundMessage(args) {
|
|
|
424
431
|
channel: message.channelId,
|
|
425
432
|
thread_ts: message.threadTs,
|
|
426
433
|
thread_files: threadFileCount,
|
|
427
|
-
images: (
|
|
428
|
-
workspace_files: Object.keys((
|
|
434
|
+
images: (_11 = (_u = media.images) === null || _u === void 0 ? void 0 : _u.length) !== null && _11 !== void 0 ? _11 : 0,
|
|
435
|
+
workspace_files: Object.keys((_12 = media.workspaceFiles) !== null && _12 !== void 0 ? _12 : {}).length,
|
|
429
436
|
event_id: args.eventId,
|
|
430
437
|
});
|
|
431
438
|
}
|
|
432
439
|
if (threadContext !== undefined) {
|
|
433
440
|
log.info(hasSession ? "thread delta loaded" : "thread context loaded", Object.assign({ kind, channel: message.channelId, thread_ts: message.threadTs, chars: threadContext.length, event_id: args.eventId }, (afterTs === undefined ? {} : { after_ts: afterTs })));
|
|
434
441
|
}
|
|
442
|
+
const [self, userName] = yield Promise.all([selfIdentity, senderName]);
|
|
435
443
|
const prompt = [
|
|
436
|
-
formatSlackContextBlock(Object.assign(Object.assign({ userId: (
|
|
444
|
+
formatSlackContextBlock(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ userId: (_13 = (_v = message.author) === null || _v === void 0 ? void 0 : _v.userId) !== null && _13 !== void 0 ? _13 : "", channelId: message.channelId, threadTs: message.threadTs }, (userName === undefined ? {} : { userName })), (((_w = message.author) === null || _w === void 0 ? void 0 : _w.isBot) === true ? { userIsBot: true } : {})), (((_x = message.author) === null || _x === void 0 ? void 0 : _x.botId) === undefined ? {} : { userBotId: message.author.botId })), (message.teamId === undefined ? {} : { teamId: message.teamId })), (self === undefined ? {} : { selfUserId: self.userId })), ((self === null || self === void 0 ? void 0 : self.name) === undefined ? {} : { selfName: self.name }))),
|
|
437
445
|
...(threadContext === undefined ? [] : [threadContext]),
|
|
438
|
-
...((
|
|
446
|
+
...((_14 = decision.context) !== null && _14 !== void 0 ? _14 : []),
|
|
439
447
|
"",
|
|
440
448
|
media.userText,
|
|
441
449
|
]
|
|
@@ -450,11 +458,11 @@ export function dispatchInboundMessage(args) {
|
|
|
450
458
|
const placeholder = !adoptedPlaceholder && hasPlaceholder && (!hosted || hostedFollowup)
|
|
451
459
|
? startPlaceholder({
|
|
452
460
|
line: placeholderLine,
|
|
453
|
-
botToken: (
|
|
461
|
+
botToken: (_y = args.credentials) === null || _y === void 0 ? void 0 : _y.botToken,
|
|
454
462
|
channelId: message.channelId,
|
|
455
463
|
threadTs: message.threadTs,
|
|
456
464
|
log,
|
|
457
|
-
recipientUserId: (
|
|
465
|
+
recipientUserId: (_z = message.author) === null || _z === void 0 ? void 0 : _z.userId,
|
|
458
466
|
recipientTeamId: message.teamId,
|
|
459
467
|
})
|
|
460
468
|
: undefined;
|
|
@@ -462,19 +470,19 @@ export function dispatchInboundMessage(args) {
|
|
|
462
470
|
const state = emptySlackChannelState({
|
|
463
471
|
channelId: message.channelId,
|
|
464
472
|
threadTs: message.threadTs,
|
|
465
|
-
teamId: (
|
|
466
|
-
triggeringUserId: (
|
|
473
|
+
teamId: (_15 = message.teamId) !== null && _15 !== void 0 ? _15 : null,
|
|
474
|
+
triggeringUserId: (_16 = (_0 = message.author) === null || _0 === void 0 ? void 0 : _0.userId) !== null && _16 !== void 0 ? _16 : null,
|
|
467
475
|
startPainted: paintedStart,
|
|
468
476
|
placeholderPosted: posted,
|
|
469
477
|
});
|
|
470
478
|
const sendOptions = Object.assign(Object.assign({ auth: decision.auth }, sendPatch), { admission: "coalesce", coalesceSourceTs: message.ts, state: state, refreshState: slackWakeChannelState({
|
|
471
479
|
channelId: message.channelId,
|
|
472
480
|
threadTs: message.threadTs,
|
|
473
|
-
teamId: (
|
|
474
|
-
triggeringUserId: (
|
|
481
|
+
teamId: (_17 = message.teamId) !== null && _17 !== void 0 ? _17 : null,
|
|
482
|
+
triggeringUserId: (_18 = (_1 = message.author) === null || _1 === void 0 ? void 0 : _1.userId) !== null && _18 !== void 0 ? _18 : null,
|
|
475
483
|
startPainted: paintedStart,
|
|
476
484
|
placeholderPosted: posted,
|
|
477
|
-
}), title: (
|
|
485
|
+
}), title: (_19 = decision.title) !== null && _19 !== void 0 ? _19 : `slack:${message.channelId}:${message.threadTs}`, workspaceDir: decision.workspaceDir, workspaceFiles: media.workspaceFiles, images: media.images, cloud: decision.cloud, sdkAgentId: decision.sdkAgentId });
|
|
478
486
|
try {
|
|
479
487
|
const session = yield args.send(prompt, sendOptions);
|
|
480
488
|
if (isDeferredChannelSession(session)) {
|
|
@@ -511,11 +519,11 @@ export function dispatchInboundMessage(args) {
|
|
|
511
519
|
});
|
|
512
520
|
if (!steeringEnabled()) {
|
|
513
521
|
try {
|
|
514
|
-
yield (
|
|
522
|
+
yield (_2 = args.host.slackNudges) === null || _2 === void 0 ? void 0 : _2.append({
|
|
515
523
|
continuationKey: continuation,
|
|
516
524
|
sourceTs: message.ts,
|
|
517
525
|
text: media.userText,
|
|
518
|
-
author: (
|
|
526
|
+
author: (_3 = message.author) === null || _3 === void 0 ? void 0 : _3.userName,
|
|
519
527
|
});
|
|
520
528
|
}
|
|
521
529
|
catch (nudgeError) {
|
|
@@ -541,7 +549,7 @@ export function dispatchInboundMessage(args) {
|
|
|
541
549
|
}
|
|
542
550
|
}
|
|
543
551
|
catch (error) {
|
|
544
|
-
yield (
|
|
552
|
+
yield (_4 = args.host.slackNudges) === null || _4 === void 0 ? void 0 : _4.releaseAsk(message.channelId, message.ts);
|
|
545
553
|
if (placeholder !== undefined) {
|
|
546
554
|
yield placeholder.retract();
|
|
547
555
|
}
|
|
@@ -549,10 +557,10 @@ export function dispatchInboundMessage(args) {
|
|
|
549
557
|
if (painted !== undefined) {
|
|
550
558
|
yield painted;
|
|
551
559
|
yield retractTurnStart({
|
|
552
|
-
botToken: (
|
|
560
|
+
botToken: (_5 = args.credentials) === null || _5 === void 0 ? void 0 : _5.botToken,
|
|
553
561
|
channelId: message.channelId,
|
|
554
562
|
threadTs: message.threadTs,
|
|
555
|
-
ack: (
|
|
563
|
+
ack: (_20 = args.ack) !== null && _20 !== void 0 ? _20 : "",
|
|
556
564
|
log,
|
|
557
565
|
});
|
|
558
566
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-policy.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/external-policy.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"external-policy.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/external-policy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,KAAK,aAAa,GAAG;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACxC,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;CACrB,GAAG,OAAO,CAcV;AAID,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED,4EAA4E;AAC5E,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BnB"}
|
|
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
12
|
});
|
|
13
13
|
};
|
|
14
|
-
import {
|
|
14
|
+
import { fetchSlackUserInfo, resetSlackUserInfoCache } from "./user-info.js";
|
|
15
15
|
/** Pure classifier over a `users.info` user object. Fails open to external. */
|
|
16
16
|
export function classifySlackUserExternality(args) {
|
|
17
17
|
var _a;
|
|
@@ -29,6 +29,7 @@ export function classifySlackUserExternality(args) {
|
|
|
29
29
|
const classified = new Map();
|
|
30
30
|
export function resetExternalSenderCache() {
|
|
31
31
|
classified.clear();
|
|
32
|
+
resetSlackUserInfoCache();
|
|
32
33
|
}
|
|
33
34
|
/** Lookup + classify. Empty userId / API failure → external. Hits cache. */
|
|
34
35
|
export function isExternalSlackSender(args) {
|
|
@@ -42,17 +43,16 @@ export function isExternalSlackSender(args) {
|
|
|
42
43
|
return cached;
|
|
43
44
|
}
|
|
44
45
|
try {
|
|
45
|
-
const
|
|
46
|
+
const user = yield fetchSlackUserInfo({
|
|
46
47
|
botToken: args.botToken,
|
|
47
|
-
|
|
48
|
-
body: { user: args.userId },
|
|
48
|
+
userId: args.userId,
|
|
49
49
|
});
|
|
50
|
-
if (
|
|
50
|
+
if (user === undefined) {
|
|
51
51
|
return true;
|
|
52
52
|
}
|
|
53
53
|
const external = classifySlackUserExternality({
|
|
54
54
|
slackTeamId: args.slackTeamId,
|
|
55
|
-
user:
|
|
55
|
+
user: user,
|
|
56
56
|
});
|
|
57
57
|
classified.set(key, external);
|
|
58
58
|
return external;
|