@cursor/bdk 0.2.5 → 0.2.7
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 +55 -54
- package/dist/channels/github/github-channel.d.ts +4 -4
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +39 -13
- package/dist/channels/github/types.d.ts +6 -0
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +37 -29
- package/dist/channels/slack/eval-directive.js +1 -1
- 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.94Iu5dyD.js → app.oyjtOr3W.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.DTKFDlBr.js → VPLocalSearchBox.D0P6J_UJ.js} +1 -1
- package/dist/docs/assets/chunks/{arc.DuzwHEeg.js → arc.B0LY1J1h.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.C6lyhLs0.js → architectureDiagram-Q4EWVU46.dPduLUxY.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.DUNEWlY8.js → baseUniq.B_Ohm21h.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.CXOQGI0O.js → blockDiagram-DXYQGD6D.B4zcanaJ.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BYdPE-Oe.js → c4Diagram-AHTNJAMY.D9Iw21nx.js} +1 -1
- package/dist/docs/assets/chunks/channel.CRUyWDV-.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.YIV9HeX0.js → chunk-4BX2VUAB.DDVwRShI.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.BG80DEOc.js → chunk-4TB4RGXK.DsYcdn1i.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.BDKJSZQc.js → chunk-55IACEB6.BzzQvcYp.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.CtYnQqts.js → chunk-EDXVE4YY.BMiXZ7FX.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CityOth-.js → chunk-FMBD7UC4.D_mBcLoc.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMD22CQX.js → chunk-OYMX7WX6.CMVjWVMx.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.WWpc3ND0.js → chunk-QZHKN3VN.BG-FrPv9.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.BMg-yhj3.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.Buu_LC5q.js → cose-bilkent-S5V4N54A.BVNnCTvY.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.DW7onj6E.js → dagre-KV5264BT.CDN5PR9l.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.B3NxIbEV.js → diagram-5BDNPKRD.DQRUlT-i.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.BJvN6Vkv.js → diagram-G4DWMVQ6.CoeblYQT.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.wfRWrexs.js → diagram-MMDJMWI5.DW3ymjl0.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.7QtjSYio.js → diagram-TYMM5635.BP0uN4Jw.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.jxPgDH1t.js → erDiagram-SMLLAGMA.DVFUWEn4.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BhDWA-TO.js → flowDiagram-DWJPFMVM.HU-eHspv.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.Ijq8iYKv.js → ganttDiagram-T4ZO3ILL.DHNhXijY.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DXpfW4YG.js → gitGraphDiagram-UUTBAWPF.DkISXcO3.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CoPlssRl.js → graph.CCV0fuRR.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.eJuv_EOz.js → infoDiagram-42DDH7IO.bgILzOoc.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A._OEzenCR.js → ishikawaDiagram-UXIWVN3A.CuryXC0F.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CwlTjirB.js → journeyDiagram-VCZTEJTY.BL1Pr-wu.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.DSp_C8cZ.js → kanban-definition-6JOO6SKY.BbGjvk4l.js} +1 -1
- package/dist/docs/assets/chunks/{layout.Bms9s7uB.js → layout.C4PfdldS.js} +1 -1
- package/dist/docs/assets/chunks/{linear.BjnmB4je.js → linear.C3xD1T6X.js} +1 -1
- package/dist/docs/assets/chunks/{min.CKkYlMsn.js → min.CzgRAQ9c.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.T2d0vJ7X.js → mindmap-definition-QFDTVHPH.CA9rSWum.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DU0RoCvx.js → pieDiagram-DEJITSTG.B8MprgJu.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.9QZjM-x0.js → quadrantDiagram-34T5L4WZ.DndDwbKT.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CZpylJMd.js → requirementDiagram-MS252O5E.Zhfgwlnn.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.CnFdfW95.js → sankeyDiagram-XADWPNL6.B6RRm6N5.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.-jC0PP1t.js → sequenceDiagram-FGHM5R23.Bfmz-1PN.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DG7yBRUU.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.B3O9koXV.js → theme.gpWjytMh.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bf9u4Ebb.js → timeline-definition-GMOUNBTQ.Bl1l7M1f.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BjhbbYE6.js → vennDiagram-DHZGUBPP.Dfle4U0d.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.8fRb4Nb5.js → wardleyDiagram-NUSXRM2D.CM_4lmvZ.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.DoOP3zZM.js → xychartDiagram-5P7HB3ND.CHT5X28R.js} +1 -1
- package/dist/docs/assets/{evals.md.LRCSn6Ik.js → evals.md.C851kViu.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/assets/{templates_agentic-owners.md.vtjfwxbf.js → templates_agentic-owners.md.CvmABtia.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.vtjfwxbf.lean.js → templates_agentic-owners.md.CvmABtia.lean.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.CX9l9bcg.js → templates_security-reviewer.md.Gh6EF9Us.js} +3 -2
- package/dist/docs/assets/{templates_security-reviewer.md.CX9l9bcg.lean.js → templates_security-reviewer.md.Gh6EF9Us.lean.js} +1 -1
- package/dist/docs/assets/{templates_thermo-quality-review.md.95qmTmr1.js → templates_thermo-quality-review.md.B77UyTrX.js} +1 -1
- package/dist/docs/assets/{templates_thermo-review.md.DQh6Q0C-.js → templates_thermo-review.md.DRJ7mC5U.js} +1 -1
- package/dist/docs/assets/{templates_triage.md.BFlQhWXf.js → templates_triage.md.CNN6b0JZ.js} +3 -3
- package/dist/docs/assets/{templates_triage.md.BFlQhWXf.lean.js → templates_triage.md.CNN6b0JZ.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +35 -35
- package/dist/docs/evals.html +37 -37
- package/dist/docs/evals.md +2 -2
- 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 +41 -24
- 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 +37 -37
- package/dist/docs/templates/agentic-owners.md +2 -0
- package/dist/docs/templates/grokbot-agents.html +35 -35
- package/dist/docs/templates/security-reviewer.html +38 -37
- package/dist/docs/templates/security-reviewer.md +7 -8
- package/dist/docs/templates/thermo-quality-review.html +37 -37
- package/dist/docs/templates/thermo-quality-review.md +2 -2
- package/dist/docs/templates/thermo-review.html +37 -37
- package/dist/docs/templates/thermo-review.md +2 -2
- package/dist/docs/templates/triage.html +38 -38
- package/dist/docs/templates/triage.md +6 -1
- package/dist/docs/troubleshooting.html +35 -35
- package/dist/evals.d.ts +2 -2
- 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 +92 -153
- 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/eval-runner.js +7 -4
- 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/init-interview.d.ts +0 -1
- package/dist/internal/init-interview.d.ts.map +1 -1
- package/dist/internal/init-interview.js +15 -24
- 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/platform-timers.d.ts +8 -1
- package/dist/internal/platform-timers.d.ts.map +1 -1
- package/dist/internal/platform-timers.js +10 -2
- package/dist/internal/playground/toolchain.js +6 -6
- package/dist/internal/process-memory-telemetry.js +2 -2
- package/dist/internal/reminder-control-plane-protocol.d.ts +8 -1
- package/dist/internal/reminder-control-plane-protocol.d.ts.map +1 -1
- package/dist/internal/reminder-runner.d.ts +13 -3
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +78 -53
- package/dist/internal/resolve-prod-target.d.ts +1 -9
- package/dist/internal/resolve-prod-target.d.ts.map +1 -1
- package/dist/internal/resolve-prod-target.js +1 -30
- package/dist/internal/resolved-connections.js +8 -8
- package/dist/internal/run-client.d.ts +11 -1
- package/dist/internal/run-client.d.ts.map +1 -1
- package/dist/internal/run-client.js +197 -59
- 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 +8 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +58 -45
- package/dist/internal/session-engine.d.ts +31 -44
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +67 -83
- package/dist/internal/session-links.d.ts.map +1 -1
- package/dist/internal/session-links.js +8 -7
- 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 +1 -0
- package/dist/internal/sessions-client.d.ts.map +1 -1
- package/dist/internal/sessions-client.js +8 -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-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/evals.md +2 -2
- package/docs/reference/cli.md +20 -9
- package/docs/templates/agentic-owners.md +2 -0
- package/docs/templates/security-reviewer.md +7 -8
- package/docs/templates/thermo-quality-review.md +2 -2
- package/docs/templates/thermo-review.md +2 -2
- package/docs/templates/triage.md +6 -1
- package/package.json +1 -1
- package/templates/agents-md/evals/agents.eval.ts +1 -0
- package/templates/code-wiki/bot/instructions.md +4 -4
- package/templates/pr-autofixer/bot/instructions.md +3 -3
- package/templates/security-reviewer/README.md +5 -3
- package/templates/security-reviewer/bot/tools/post_findings.ts +8 -8
- package/templates/thermo-quality-review/bot/tools/post_findings.ts +8 -8
- package/templates/thermo-review/bot/tools/post_findings.ts +8 -8
- package/dist/docs/assets/chunks/@localSearchIndexroot.BITLoOQa.js +0 -1
- package/dist/docs/assets/chunks/channel.B46uXH41.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.0cmCFsSf.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.0cmCFsSf.js +0 -1
- package/dist/docs/assets/chunks/clone.1vTOFZT1.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CbsZcOOu.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.DEA21akR.js +0 -162
- 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/docs/assets/{evals.md.LRCSn6Ik.lean.js → evals.md.C851kViu.lean.js} +0 -0
- /package/dist/docs/assets/{templates_thermo-quality-review.md.95qmTmr1.lean.js → templates_thermo-quality-review.md.B77UyTrX.lean.js} +0 -0
- /package/dist/docs/assets/{templates_thermo-review.md.DQh6Q0C-.lean.js → templates_thermo-review.md.DRJ7mC5U.lean.js} +0 -0
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
* Durable artifact rows and payloads behind `ctx.artifacts`
|
|
3
3
|
* ({@link ArtifactsApi}).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* deploys and are visible on cloud VMs under the store mount); otherwise
|
|
8
|
-
* they land under `--state-root/artifacts` on local disk.
|
|
5
|
+
* Cursor-managed hosting preserves artifacts across deployment replacement.
|
|
6
|
+
* Self-hosted agents store them under `--state-root/artifacts`.
|
|
9
7
|
*/
|
|
10
8
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
9
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -36,26 +34,19 @@ export const ARTIFACTS_PAGE_MAX_LIMIT = 1000;
|
|
|
36
34
|
*/
|
|
37
35
|
const ARTIFACTS_PAGE_SCAN_MIN = 250;
|
|
38
36
|
/**
|
|
39
|
-
* Row-body hydration
|
|
40
|
-
*
|
|
41
|
-
* `Promise.all` over ~1k rows is a fleet-visible read burst (the 2026-09-18
|
|
42
|
-
* Agent Store read storm was this exact fan-out, run once per insert by the
|
|
43
|
-
* pre-metadata eviction path).
|
|
37
|
+
* Row-body hydration concurrency. A bounded fan-out keeps large listings
|
|
38
|
+
* from overwhelming the backing store.
|
|
44
39
|
*/
|
|
45
40
|
const ROW_HYDRATION_CONCURRENCY = 8;
|
|
46
41
|
/**
|
|
47
|
-
* Rows hydrated per round trip when the row store
|
|
48
|
-
*
|
|
49
|
-
* batch, so one page-scan slice is one control-plane request instead of one
|
|
50
|
-
* per row.
|
|
42
|
+
* Rows hydrated per round trip when the row store supports
|
|
43
|
+
* {@link ArtifactRowStore.getMany}.
|
|
51
44
|
*/
|
|
52
45
|
const ARTIFACTS_SCAN_BATCH_ROWS = 100;
|
|
53
46
|
/**
|
|
54
47
|
* Most rows one eviction pass may delete. Bounds the tag-latency cost of
|
|
55
|
-
* draining a store
|
|
56
|
-
*
|
|
57
|
-
* {@link ROW_HYDRATION_CONCURRENCY}-way batching, a full pass stays under
|
|
58
|
-
* ~10s while a backlog drains across the inserts that keep arriving.
|
|
48
|
+
* draining a store far past the retention cap; a backlog drains across
|
|
49
|
+
* subsequent inserts.
|
|
59
50
|
*/
|
|
60
51
|
const ARTIFACTS_EVICT_MAX_PER_PASS = 64;
|
|
61
52
|
/** Kind used by freeform tags when no kinds are declared. */
|
|
@@ -157,7 +148,7 @@ export class ArtifactsStore {
|
|
|
157
148
|
}
|
|
158
149
|
/**
|
|
159
150
|
* Bounded cursor pagination, newest-updated first. On a store whose
|
|
160
|
-
* listing tracks mtimes
|
|
151
|
+
* listing tracks mtimes, a page hydrates only
|
|
161
152
|
* the rows it examines — roughly `limit` bodies, never the whole store.
|
|
162
153
|
* Row-body order is the listing's mtime order (upserts rewrite the row,
|
|
163
154
|
* so mtime tracks `updatedAt`; same argument as eviction). The
|
|
@@ -165,15 +156,15 @@ export class ArtifactsStore {
|
|
|
165
156
|
* exactly by `updatedAt`.
|
|
166
157
|
*
|
|
167
158
|
* `matches` is a host-side *visibility* predicate composed with the
|
|
168
|
-
* public filter
|
|
159
|
+
* public filter. The engine passes session ownership through it. Its
|
|
169
160
|
* presence forces the exact hydrated lane: the metadata lane's cursor
|
|
170
|
-
* and
|
|
171
|
-
*
|
|
161
|
+
* and short-page continuation include hidden records. Returning them to a
|
|
162
|
+
* caller who cannot see those records would create a
|
|
172
163
|
* side channel (existence, count within the scan budget, boundary
|
|
173
164
|
* mtimes and cohort depths of hidden rows) that the pre-pagination
|
|
174
165
|
* filtered list never had. The exact lane's cursor names only a record
|
|
175
166
|
* the caller received, and continues only while more *visible* records
|
|
176
|
-
* remain
|
|
167
|
+
* remain, at the bounded cost of hydrating the full set.
|
|
177
168
|
*/
|
|
178
169
|
page(options) {
|
|
179
170
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -230,9 +221,8 @@ export class ArtifactsStore {
|
|
|
230
221
|
const records = [];
|
|
231
222
|
let examined = 0;
|
|
232
223
|
let lastExamined = start - 1;
|
|
233
|
-
// A batched row store hydrates a bigger slice per round trip
|
|
234
|
-
//
|
|
235
|
-
// the per-row fan-out bound so concurrency stays capped. An unfiltered
|
|
224
|
+
// A batched row store hydrates a bigger slice per round trip. Without
|
|
225
|
+
// one, keep the slice at the per-row fan-out bound. An unfiltered
|
|
236
226
|
// page needs exactly the rows it returns — every hydrated row matches —
|
|
237
227
|
// so cap its slice at the remaining page instead of over-hydrating a
|
|
238
228
|
// full batch for a small `limit`.
|
|
@@ -351,21 +341,11 @@ export class ArtifactsStore {
|
|
|
351
341
|
/**
|
|
352
342
|
* Trim toward the retention cap from listing metadata alone. Past the
|
|
353
343
|
* cap this runs on every new-row insert, so it must not hydrate row
|
|
354
|
-
* bodies
|
|
355
|
-
*
|
|
356
|
-
* 2026-09-18 read storm on the security-reviewer deployment. The store
|
|
357
|
-
* listing carries last-modified metadata, and a row is rewritten on
|
|
358
|
-
* every upsert, so listing mtime orders rows the same way their
|
|
359
|
-
* `updatedAt` does.
|
|
344
|
+
* bodies. The listing carries last-modified metadata, and each upsert
|
|
345
|
+
* rewrites its row, so listing mtime orders rows like `updatedAt`.
|
|
360
346
|
*
|
|
361
|
-
* Deletes are capped per pass
|
|
362
|
-
*
|
|
363
|
-
* store far past the cap (evictions failed during the 2026-09-19 read
|
|
364
|
-
* throttling and the backlog grew unchecked) must drain amortized
|
|
365
|
-
* across inserts, not wedge one insert deleting the whole backlog — on
|
|
366
|
-
* 2026-09-20 an uncapped pass held security-reviewer tags for hours and
|
|
367
|
-
* tripled review stage durations. Steady state (excess of 1) is
|
|
368
|
-
* unaffected.
|
|
347
|
+
* Deletes are capped per pass so a store far past the cap drains across
|
|
348
|
+
* inserts instead of delaying one insert for the entire backlog.
|
|
369
349
|
*/
|
|
370
350
|
evictPastCap() {
|
|
371
351
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -387,9 +367,8 @@ export class ArtifactsStore {
|
|
|
387
367
|
return __awaiter(this, void 0, void 0, function* () {
|
|
388
368
|
if (metas.some(meta => meta.mtimeMs !== undefined)) {
|
|
389
369
|
// A store that tracks mtimes must never regress to per-insert
|
|
390
|
-
// hydration.
|
|
391
|
-
//
|
|
392
|
-
// evicting an anomaly beats re-reading every row on every insert.
|
|
370
|
+
// hydration. An entry missing one sorts oldest via the comparator's
|
|
371
|
+
// `?? 0` and is evicted first, avoiding a full hydration on each insert.
|
|
393
372
|
return metas
|
|
394
373
|
.sort(byOldestModified)
|
|
395
374
|
.slice(0, excess)
|
|
@@ -457,9 +436,9 @@ export function artifactIdForKey(key) {
|
|
|
457
436
|
return `art_${createHash("sha256").update(key, "utf8").digest("hex").slice(0, 32)}`;
|
|
458
437
|
}
|
|
459
438
|
/**
|
|
460
|
-
* Oldest-modified first. Store mtimes can be coarse
|
|
461
|
-
*
|
|
462
|
-
*
|
|
439
|
+
* Oldest-modified first. Store mtimes can be coarse, so equal stamps
|
|
440
|
+
* tie-break by id. Within the same-stamp cohort, any victim is equally past
|
|
441
|
+
* the retention cap.
|
|
463
442
|
*/
|
|
464
443
|
function byOldestModified(a, b) {
|
|
465
444
|
var _a, _b;
|
|
@@ -517,7 +496,7 @@ function sinkBody(found) {
|
|
|
517
496
|
}
|
|
518
497
|
return found instanceof Uint8Array ? found : found.body;
|
|
519
498
|
}
|
|
520
|
-
/** Rows as one JSON
|
|
499
|
+
/** Rows as one JSON document each in the durable sink. */
|
|
521
500
|
function createSinkRowStore(sink, agentName) {
|
|
522
501
|
const key = (id) => agentStoreKeys.artifactRow(agentName, id);
|
|
523
502
|
return {
|
|
@@ -67,15 +67,13 @@ export interface AxCliOptions {
|
|
|
67
67
|
/** Remote agent base URL (skip local host) for run/eval/chat. */
|
|
68
68
|
url?: string;
|
|
69
69
|
/**
|
|
70
|
-
* Route chat/resume/run/call/
|
|
70
|
+
* Route chat/resume/run/call/logs/sessions at the team's hosted
|
|
71
71
|
* deployment instead of a local ephemeral server. Mutually exclusive with
|
|
72
|
-
* `--url`.
|
|
73
|
-
* `/v1/dev/evals/runs` (persisted when `defineStorage` has an `evals` table);
|
|
74
|
-
* without `--prod`, eval defaults to an ephemeral local harness.
|
|
72
|
+
* `--url`. `eval` rejects it.
|
|
75
73
|
*/
|
|
76
74
|
prod?: boolean;
|
|
77
75
|
/**
|
|
78
|
-
* `eval` (`--
|
|
76
|
+
* `eval` (`--url` only): start the batch via
|
|
79
77
|
* `POST /v1/dev/evals/runs` and return the `runId` without polling.
|
|
80
78
|
* Mutually exclusive with `--list`.
|
|
81
79
|
*/
|
|
@@ -157,26 +155,20 @@ export declare function cmdCall(options: AxCliOptions): Promise<number>;
|
|
|
157
155
|
export declare function cmdSkill(skillName: string | undefined, options: AxCliOptions): Promise<number>;
|
|
158
156
|
export declare function cmdTrajectory(options: AxCliOptions): Promise<number>;
|
|
159
157
|
/**
|
|
160
|
-
* Which surface `eval` should target
|
|
161
|
-
*
|
|
162
|
-
* Exported for tests.
|
|
158
|
+
* Which surface `eval` should target: an ephemeral local server by default,
|
|
159
|
+
* or a running server with `--url`. Exported for tests.
|
|
163
160
|
*/
|
|
164
|
-
export declare function resolveEvalTargetMode(options: Pick<AxCliOptions, "prod" | "url">): "local" | "url" |
|
|
161
|
+
export declare function resolveEvalTargetMode(options: Pick<AxCliOptions, "prod" | "url">): "local" | "url" | {
|
|
165
162
|
error: string;
|
|
166
163
|
};
|
|
167
164
|
export declare function cmdEval(options: AxCliOptions): Promise<number>;
|
|
168
|
-
/**
|
|
169
|
-
* Flags to re-target the same surface from an `eval --no-wait` hint.
|
|
170
|
-
* Exported for tests.
|
|
171
|
-
*/
|
|
172
|
-
export declare function formatEvalStatusFlags(options: Pick<AxCliOptions, "prod" | "url" | "slug" | "team">): string;
|
|
173
165
|
/**
|
|
174
166
|
* `eval cancel <runId>` — cancel a running remote batch by Eval ID.
|
|
175
167
|
*/
|
|
176
168
|
export declare function cmdEvalCancel(runId: string | undefined, options: AxCliOptions): Promise<number>;
|
|
177
169
|
/**
|
|
178
|
-
* `eval status [runId]` — fetch one batch (or list recent) on the
|
|
179
|
-
*
|
|
170
|
+
* `eval status [runId]` — fetch one batch (or list recent) on the `--url`
|
|
171
|
+
* target. Exit `0` when the batch is completed with all cases passing,
|
|
180
172
|
* `1` when failed / any case failed / unknown, `2` for usage errors, `3` when
|
|
181
173
|
* the batch is still running (for poll loops after `--no-wait`).
|
|
182
174
|
*/
|
|
@@ -196,7 +188,8 @@ export declare function resolveEvalArtifactsDir(projectRoot: string, options: Pi
|
|
|
196
188
|
export declare function formatEvalAssertionLine(assertion: EvalAssertionResult): string;
|
|
197
189
|
/**
|
|
198
190
|
* `logs` — follow deploy progress (`--prod`) then runtime agent logs.
|
|
199
|
-
* Local / `--url` tails `/v1/logs` only.
|
|
191
|
+
* Local / `--url` tails `/v1/logs` only. On architecture v2, `--prod` tails
|
|
192
|
+
* the output of the deployment's recent sessions, or one with `--session`.
|
|
200
193
|
*/
|
|
201
194
|
export declare function cmdLogs(options: AxCliOptions): Promise<number>;
|
|
202
195
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-ax.d.ts","sourceRoot":"","sources":["../../src/internal/cli-ax.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAA8C,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-ax.d.ts","sourceRoot":"","sources":["../../src/internal/cli-ax.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/cli-ax.js
CHANGED
|
@@ -30,12 +30,12 @@ import { cancelRemoteEvalRun, getRemoteEvalRun, listRemoteEvalRuns, listRemoteEv
|
|
|
30
30
|
import { runTemplateInit } from "./init-interview.js";
|
|
31
31
|
import { checkInitTarget, formatInitNextSteps, formatInitScaffoldSummary, initNextCommands, initProject, installScaffoldDependencies, linkCliOntoPath, printInitGuide, resolveTemplate, } from "./init-project.js";
|
|
32
32
|
import { offerInstallCursorSkills } from "./install-cursor-skills.js";
|
|
33
|
-
import {
|
|
34
|
-
import { runLogsTail, sanitizeCustomerError } from "./logs-client.js";
|
|
33
|
+
import { deploymentArchitecture, v2HostedVerifyHint } from "./legacy-command-guard.js";
|
|
34
|
+
import { followHostedLogs, runLogsTail, sanitizeCustomerError } from "./logs-client.js";
|
|
35
35
|
import { mapPool } from "./map-pool.js";
|
|
36
36
|
import { openBrowser } from "./open-browser.js";
|
|
37
37
|
import { startPlaygroundProxy } from "./playground-proxy.js";
|
|
38
|
-
import {
|
|
38
|
+
import { resolveProdPlaygroundUrl, resolveProdSlug, resolveProdTarget, } from "./resolve-prod-target.js";
|
|
39
39
|
import { runSession } from "./run-client.js";
|
|
40
40
|
import { buildSessionCostReport, formatSessionCostText, formatSessionsCostText, } from "./session-cost.js";
|
|
41
41
|
import { fetchSessionEvents, formatSessionsTable, listSessionsWithSource, resolvePreviousSessionId, } from "./sessions-client.js";
|
|
@@ -70,16 +70,17 @@ function pickAgentUrl(handle, slug) {
|
|
|
70
70
|
const root = handle.agents.find(a => a.slug === "");
|
|
71
71
|
return (root !== null && root !== void 0 ? root : handle.agents[0]).url;
|
|
72
72
|
}
|
|
73
|
-
function startEphemeral(
|
|
74
|
-
return __awaiter(this,
|
|
73
|
+
function startEphemeral(options_1) {
|
|
74
|
+
return __awaiter(this, arguments, void 0, function* (options, evals = false) {
|
|
75
75
|
var _a, _b;
|
|
76
76
|
const dir = resolve((_a = options.cwd) !== null && _a !== void 0 ? _a : process.cwd(), options.dir);
|
|
77
77
|
const stateRoot = (_b = options.stateRoot) !== null && _b !== void 0 ? _b : (yield mkdtemp(join(tmpdir(), "agent-serve-ax-")));
|
|
78
|
-
const
|
|
78
|
+
const serveOptions = Object.assign({ host: "127.0.0.1", port: 0, stateRoot, playground: false, schedules: false, evals,
|
|
79
79
|
// Keep host/tool timing off stdout so `run`/`eval` JSON stays clean.
|
|
80
80
|
logger: (line) => {
|
|
81
81
|
process.stderr.write(`${line}\n`);
|
|
82
|
-
} }, (options.bearerToken === undefined ? {} : { authToken: options.bearerToken }))
|
|
82
|
+
} }, (options.bearerToken === undefined ? {} : { authToken: options.bearerToken }));
|
|
83
|
+
const handle = yield serve(dir, serveOptions);
|
|
83
84
|
return {
|
|
84
85
|
agentUrl: pickAgentUrl(handle, options.slug),
|
|
85
86
|
close: () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -682,25 +683,17 @@ export function cmdTrajectory(options) {
|
|
|
682
683
|
});
|
|
683
684
|
}
|
|
684
685
|
/**
|
|
685
|
-
* Which surface `eval` should target
|
|
686
|
-
*
|
|
687
|
-
* Exported for tests.
|
|
686
|
+
* Which surface `eval` should target: an ephemeral local server by default,
|
|
687
|
+
* or a running server with `--url`. Exported for tests.
|
|
688
688
|
*/
|
|
689
689
|
export function resolveEvalTargetMode(options) {
|
|
690
|
-
const flags = [
|
|
691
|
-
options.prod === true ? "--prod" : undefined,
|
|
692
|
-
options.url !== undefined ? "--url" : undefined,
|
|
693
|
-
].filter(flag => flag !== undefined);
|
|
694
|
-
if (flags.length > 1) {
|
|
695
|
-
return { error: `${flags.join(" and ")} are mutually exclusive` };
|
|
696
|
-
}
|
|
697
|
-
if (options.url !== undefined) {
|
|
698
|
-
return "url";
|
|
699
|
-
}
|
|
700
690
|
if (options.prod === true) {
|
|
701
|
-
return
|
|
691
|
+
return {
|
|
692
|
+
error: `eval does not support --prod. Run \`${CLI_COMMAND_NAME} eval\` locally, ` +
|
|
693
|
+
`or pass --url for a running server.`,
|
|
694
|
+
};
|
|
702
695
|
}
|
|
703
|
-
return "local";
|
|
696
|
+
return options.url === undefined ? "local" : "url";
|
|
704
697
|
}
|
|
705
698
|
/** Resolve the eval target; prints a CLI-ready error and returns an exit code on failure. */
|
|
706
699
|
function resolveEvalTarget(options) {
|
|
@@ -713,34 +706,7 @@ function resolveEvalTarget(options) {
|
|
|
713
706
|
if (mode === "url") {
|
|
714
707
|
return { agentUrl: options.url.replace(/\/$/, "") };
|
|
715
708
|
}
|
|
716
|
-
|
|
717
|
-
return startEphemeral(options);
|
|
718
|
-
}
|
|
719
|
-
try {
|
|
720
|
-
const prod = yield resolveProdTarget({
|
|
721
|
-
dir: options.dir,
|
|
722
|
-
cwd: options.cwd,
|
|
723
|
-
slug: options.slug,
|
|
724
|
-
team: options.team,
|
|
725
|
-
apiKey: options.apiKey,
|
|
726
|
-
fetchImpl: options.fetchImpl,
|
|
727
|
-
});
|
|
728
|
-
return { agentUrl: prod.agentUrl, headers: prod.headers };
|
|
729
|
-
}
|
|
730
|
-
catch (error) {
|
|
731
|
-
if (error instanceof ProdTargetError && error.notFound) {
|
|
732
|
-
// Keep the API error text: a 404 can also mean a wrong API host or a
|
|
733
|
-
// disabled feature gate, and the message distinguishes those from a
|
|
734
|
-
// genuinely missing deployment.
|
|
735
|
-
process.stderr.write(`${sanitizeCustomerError(error.message)}\n` +
|
|
736
|
-
` deploy it first: ${CLI_COMMAND_NAME} deploy --slug ${error.slug}\n` +
|
|
737
|
-
` or omit --prod: ${CLI_COMMAND_NAME} eval --dir ${options.dir}\n`);
|
|
738
|
-
return 1;
|
|
739
|
-
}
|
|
740
|
-
process.stderr.write(`${sanitizeCustomerError(error instanceof Error ? error.message : String(error))}\n` +
|
|
741
|
-
`Pass --prod for the hosted deployment, or omit it to run on an ephemeral local server.\n`);
|
|
742
|
-
return 1;
|
|
743
|
-
}
|
|
709
|
+
return startEphemeral(options, true);
|
|
744
710
|
});
|
|
745
711
|
}
|
|
746
712
|
export function cmdEval(options) {
|
|
@@ -759,7 +725,7 @@ export function cmdEval(options) {
|
|
|
759
725
|
return 2;
|
|
760
726
|
}
|
|
761
727
|
if (mode === "local") {
|
|
762
|
-
process.stderr.write("--no-wait requires --
|
|
728
|
+
process.stderr.write("--no-wait requires --url (not the default local target)\n");
|
|
763
729
|
return 2;
|
|
764
730
|
}
|
|
765
731
|
}
|
|
@@ -777,7 +743,7 @@ export function cmdEval(options) {
|
|
|
777
743
|
const tags = options.tags === undefined || options.tags.length === 0 ? undefined : options.tags;
|
|
778
744
|
if (options.list) {
|
|
779
745
|
// List the same surface a run will execute: local filesystem by default,
|
|
780
|
-
// GET /v1/dev/evals on --
|
|
746
|
+
// GET /v1/dev/evals on --url.
|
|
781
747
|
if (mode === "local") {
|
|
782
748
|
return listLocalEvals(projectRoot, options, filterIds, tags);
|
|
783
749
|
}
|
|
@@ -823,7 +789,7 @@ export function cmdEval(options) {
|
|
|
823
789
|
process.stderr.write(`eval target: ${target.agentUrl}\n`);
|
|
824
790
|
}
|
|
825
791
|
// Default local: ephemeral in-process harness against local eval sources.
|
|
826
|
-
// --
|
|
792
|
+
// --url: run on the serve process via /v1/dev/evals/runs so the
|
|
827
793
|
// batch lands in playground history and defineStorage evals (when set).
|
|
828
794
|
if (mode === "local") {
|
|
829
795
|
const progress = stream ? createStreamProgress() : undefined;
|
|
@@ -869,7 +835,7 @@ export function cmdEval(options) {
|
|
|
869
835
|
},
|
|
870
836
|
fetchImpl: options.fetchImpl,
|
|
871
837
|
});
|
|
872
|
-
return
|
|
838
|
+
return printEvalAccepted(started, options, target.agentUrl);
|
|
873
839
|
}
|
|
874
840
|
const progress = createRemoteEvalProgress(options.verbose === true || stream);
|
|
875
841
|
// Start first so we can print the Eval ID before the (often long) wait.
|
|
@@ -885,7 +851,7 @@ export function cmdEval(options) {
|
|
|
885
851
|
},
|
|
886
852
|
fetchImpl: options.fetchImpl,
|
|
887
853
|
});
|
|
888
|
-
|
|
854
|
+
printEvalIdBanner(started, options, target.agentUrl);
|
|
889
855
|
(_a = progress === null || progress === void 0 ? void 0 : progress.onSnapshot) === null || _a === void 0 ? void 0 : _a.call(progress, started);
|
|
890
856
|
const snapshot = yield pollRemoteEvalRun({
|
|
891
857
|
baseUrl: target.agentUrl,
|
|
@@ -924,106 +890,58 @@ export function cmdEval(options) {
|
|
|
924
890
|
}
|
|
925
891
|
});
|
|
926
892
|
}
|
|
927
|
-
/**
|
|
928
|
-
* Flags to re-target the same surface from an `eval --no-wait` hint.
|
|
929
|
-
* Exported for tests.
|
|
930
|
-
*/
|
|
931
|
-
export function formatEvalStatusFlags(options) {
|
|
932
|
-
const parts = [];
|
|
933
|
-
if (options.url !== undefined) {
|
|
934
|
-
parts.push(`--url ${options.url.replace(/\/$/, "")}`);
|
|
935
|
-
}
|
|
936
|
-
else {
|
|
937
|
-
parts.push("--prod");
|
|
938
|
-
if (options.slug !== undefined && options.slug !== "") {
|
|
939
|
-
parts.push(`--slug ${options.slug}`);
|
|
940
|
-
}
|
|
941
|
-
}
|
|
942
|
-
if (options.team !== undefined && options.team !== "") {
|
|
943
|
-
parts.push(`--team ${options.team}`);
|
|
944
|
-
}
|
|
945
|
-
return parts.length === 0 ? "" : ` ${parts.join(" ")}`;
|
|
946
|
-
}
|
|
947
893
|
/** Print Eval ID + cancel/status hints after a remote batch is accepted. */
|
|
948
894
|
function printEvalIdBanner(started, options, agentUrl) {
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
}
|
|
965
|
-
});
|
|
895
|
+
const pollPath = `${agentUrl.replace(/\/$/, "")}/v1/dev/evals/runs/${started.runId}`;
|
|
896
|
+
const statusFlags = ` --url ${agentUrl.replace(/\/$/, "")}`;
|
|
897
|
+
const playgroundUrl = evalPlaygroundDeepLink(started.runId, agentUrl);
|
|
898
|
+
if (options.json) {
|
|
899
|
+
// Waiters still want the id on stderr so progress text stays readable.
|
|
900
|
+
process.stderr.write(`${JSON.stringify(Object.assign({ evalId: started.runId, runId: started.runId, status: started.status, summary: started.summary, pollUrl: pollPath }, (playgroundUrl === undefined ? {} : { playgroundUrl })))}\n`);
|
|
901
|
+
return;
|
|
902
|
+
}
|
|
903
|
+
const durable = started.config.durableRuns === true ? " (persisted)" : "";
|
|
904
|
+
process.stderr.write(`Eval ID: ${started.runId}${durable} — ${started.summary.total} case(s)\n`);
|
|
905
|
+
process.stderr.write(`Cancel: ${CLI_COMMAND_NAME} eval cancel ${started.runId}${statusFlags}\n`);
|
|
906
|
+
process.stderr.write(`Status: ${CLI_COMMAND_NAME} eval status ${started.runId}${statusFlags}\n`);
|
|
907
|
+
if (playgroundUrl !== undefined) {
|
|
908
|
+
process.stderr.write(`Playground: ${playgroundUrl}\n`);
|
|
909
|
+
}
|
|
966
910
|
}
|
|
967
911
|
/** `--no-wait`: print the accepted batch id (and how to poll) then exit. */
|
|
968
912
|
function printEvalAccepted(started, options, agentUrl) {
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
process.stdout.write(`Playground: ${playgroundUrl}\n`);
|
|
983
|
-
}
|
|
984
|
-
process.stdout.write(`Poll: ${pollPath}\n`);
|
|
913
|
+
const pollPath = `${agentUrl.replace(/\/$/, "")}/v1/dev/evals/runs/${started.runId}`;
|
|
914
|
+
const statusFlags = ` --url ${agentUrl.replace(/\/$/, "")}`;
|
|
915
|
+
const playgroundUrl = evalPlaygroundDeepLink(started.runId, agentUrl);
|
|
916
|
+
if (options.json) {
|
|
917
|
+
process.stdout.write(`${JSON.stringify(Object.assign({ ok: true, accepted: true, evalId: started.runId, runId: started.runId, status: started.status, summary: started.summary, pollUrl: pollPath, durableRuns: started.config.durableRuns === true }, (playgroundUrl === undefined ? {} : { playgroundUrl })), null, 2)}\n`);
|
|
918
|
+
}
|
|
919
|
+
else {
|
|
920
|
+
const durable = started.config.durableRuns === true ? " (persisted)" : "";
|
|
921
|
+
process.stdout.write(`Eval ID: ${started.runId}${durable} — ${started.summary.total} case(s)\n`);
|
|
922
|
+
process.stdout.write(`Cancel: ${CLI_COMMAND_NAME} eval cancel ${started.runId}${statusFlags}\n`);
|
|
923
|
+
process.stdout.write(`Status: ${CLI_COMMAND_NAME} eval status ${started.runId}${statusFlags}\n`);
|
|
924
|
+
if (playgroundUrl !== undefined) {
|
|
925
|
+
process.stdout.write(`Playground: ${playgroundUrl}\n`);
|
|
985
926
|
}
|
|
986
|
-
|
|
987
|
-
}
|
|
927
|
+
process.stdout.write(`Poll: ${pollPath}\n`);
|
|
928
|
+
}
|
|
929
|
+
return 0;
|
|
988
930
|
}
|
|
989
931
|
/**
|
|
990
|
-
*
|
|
991
|
-
*
|
|
932
|
+
* Playground URL with `view=evals` + `evalRunId` so the SPA opens the batch
|
|
933
|
+
* that CLI / Slack started (not a stale sessionStorage id).
|
|
992
934
|
*/
|
|
993
|
-
function
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
catch (_a) {
|
|
1004
|
-
return undefined;
|
|
1005
|
-
}
|
|
1006
|
-
}
|
|
1007
|
-
try {
|
|
1008
|
-
const resolved = yield resolveProdAliasPlaygroundUrl({
|
|
1009
|
-
dir: options.dir,
|
|
1010
|
-
cwd: options.cwd,
|
|
1011
|
-
slug: options.slug,
|
|
1012
|
-
team: options.team,
|
|
1013
|
-
apiKey: options.apiKey,
|
|
1014
|
-
fetchImpl: options.fetchImpl,
|
|
1015
|
-
// Avoid a second "Using hosted deployment" line; banner already has context.
|
|
1016
|
-
err: () => { },
|
|
1017
|
-
});
|
|
1018
|
-
const url = new URL(resolved.playgroundUrl);
|
|
1019
|
-
url.searchParams.set("view", "evals");
|
|
1020
|
-
url.searchParams.set("evalRunId", runId);
|
|
1021
|
-
return url.toString();
|
|
1022
|
-
}
|
|
1023
|
-
catch (_b) {
|
|
1024
|
-
return undefined;
|
|
1025
|
-
}
|
|
1026
|
-
});
|
|
935
|
+
function evalPlaygroundDeepLink(runId, agentUrl) {
|
|
936
|
+
try {
|
|
937
|
+
const url = new URL(`${agentUrl.replace(/\/$/, "")}/playground`);
|
|
938
|
+
url.searchParams.set("view", "evals");
|
|
939
|
+
url.searchParams.set("evalRunId", runId);
|
|
940
|
+
return url.toString();
|
|
941
|
+
}
|
|
942
|
+
catch (_a) {
|
|
943
|
+
return undefined;
|
|
944
|
+
}
|
|
1027
945
|
}
|
|
1028
946
|
/**
|
|
1029
947
|
* `eval cancel <runId>` — cancel a running remote batch by Eval ID.
|
|
@@ -1036,11 +954,11 @@ export function cmdEvalCancel(runId, options) {
|
|
|
1036
954
|
return 2;
|
|
1037
955
|
}
|
|
1038
956
|
if (mode === "local") {
|
|
1039
|
-
process.stderr.write("eval cancel requires --
|
|
957
|
+
process.stderr.write("eval cancel requires --url (not the default local target)\n");
|
|
1040
958
|
return 2;
|
|
1041
959
|
}
|
|
1042
960
|
if (runId === undefined || runId === "") {
|
|
1043
|
-
process.stderr.write("usage: eval cancel <evalId> --
|
|
961
|
+
process.stderr.write("usage: eval cancel <evalId> --url <baseUrl>\n");
|
|
1044
962
|
return 2;
|
|
1045
963
|
}
|
|
1046
964
|
if (options.list === true || options.noWait === true) {
|
|
@@ -1081,8 +999,8 @@ export function cmdEvalCancel(runId, options) {
|
|
|
1081
999
|
});
|
|
1082
1000
|
}
|
|
1083
1001
|
/**
|
|
1084
|
-
* `eval status [runId]` — fetch one batch (or list recent) on the
|
|
1085
|
-
*
|
|
1002
|
+
* `eval status [runId]` — fetch one batch (or list recent) on the `--url`
|
|
1003
|
+
* target. Exit `0` when the batch is completed with all cases passing,
|
|
1086
1004
|
* `1` when failed / any case failed / unknown, `2` for usage errors, `3` when
|
|
1087
1005
|
* the batch is still running (for poll loops after `--no-wait`).
|
|
1088
1006
|
*/
|
|
@@ -1094,7 +1012,7 @@ export function cmdEvalStatus(runId, options) {
|
|
|
1094
1012
|
return 2;
|
|
1095
1013
|
}
|
|
1096
1014
|
if (mode === "local") {
|
|
1097
|
-
process.stderr.write("eval status requires --
|
|
1015
|
+
process.stderr.write("eval status requires --url (not the default local target)\n");
|
|
1098
1016
|
return 2;
|
|
1099
1017
|
}
|
|
1100
1018
|
if (options.list === true || options.noWait === true) {
|
|
@@ -1399,7 +1317,8 @@ export function formatEvalAssertionLine(assertion) {
|
|
|
1399
1317
|
}
|
|
1400
1318
|
/**
|
|
1401
1319
|
* `logs` — follow deploy progress (`--prod`) then runtime agent logs.
|
|
1402
|
-
* Local / `--url` tails `/v1/logs` only.
|
|
1320
|
+
* Local / `--url` tails `/v1/logs` only. On architecture v2, `--prod` tails
|
|
1321
|
+
* the output of the deployment's recent sessions, or one with `--session`.
|
|
1403
1322
|
*/
|
|
1404
1323
|
export function cmdLogs(options) {
|
|
1405
1324
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1408,6 +1327,11 @@ export function cmdLogs(options) {
|
|
|
1408
1327
|
process.stderr.write("--prod and --url are mutually exclusive\n");
|
|
1409
1328
|
return 2;
|
|
1410
1329
|
}
|
|
1330
|
+
const sessionId = trimNonEmpty(options.sessionId);
|
|
1331
|
+
if (sessionId !== undefined && options.prod !== true) {
|
|
1332
|
+
process.stderr.write("A session id needs --prod on an architecture v2 deployment\n");
|
|
1333
|
+
return 2;
|
|
1334
|
+
}
|
|
1411
1335
|
const controller = new AbortController();
|
|
1412
1336
|
const onSignal = () => {
|
|
1413
1337
|
controller.abort();
|
|
@@ -1429,11 +1353,26 @@ export function cmdLogs(options) {
|
|
|
1429
1353
|
if (typeof auth === "number") {
|
|
1430
1354
|
return auth;
|
|
1431
1355
|
}
|
|
1432
|
-
yield
|
|
1356
|
+
const architecture = yield deploymentArchitecture({
|
|
1433
1357
|
client: auth.client,
|
|
1434
1358
|
teamId: auth.teamId,
|
|
1435
1359
|
slug,
|
|
1436
1360
|
});
|
|
1361
|
+
if (architecture === "v2") {
|
|
1362
|
+
yield followHostedLogs({
|
|
1363
|
+
slug,
|
|
1364
|
+
read: signal => auth.client.getAgentkitDeploymentLogs({ teamId: auth.teamId, slug, sessionId, signal }),
|
|
1365
|
+
scoped: sessionId !== undefined,
|
|
1366
|
+
once: options.once === true,
|
|
1367
|
+
json: options.json === true,
|
|
1368
|
+
signal: controller.signal,
|
|
1369
|
+
});
|
|
1370
|
+
return 0;
|
|
1371
|
+
}
|
|
1372
|
+
if (sessionId !== undefined) {
|
|
1373
|
+
process.stderr.write(`A session id needs an architecture v2 deployment; "${slug}" is v1\n`);
|
|
1374
|
+
return 2;
|
|
1375
|
+
}
|
|
1437
1376
|
yield runLogsTail({
|
|
1438
1377
|
prod: true,
|
|
1439
1378
|
dir: options.dir,
|