@cursor/bdk 0.2.11 → 0.2.13
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 +28 -26
- package/dist/channels/bitbucket/api.js +8 -8
- package/dist/channels/bitbucket/binding.js +4 -4
- package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
- package/dist/channels/bitbucket/bitbucket-webhook.js +1 -1
- package/dist/channels/bitbucket/checks.js +1 -1
- package/dist/channels/bitbucket/cursor-account.js +1 -1
- package/dist/channels/bitbucket/events.js +1 -1
- package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
- package/dist/channels/checks.js +2 -2
- package/dist/channels/deployments/deployments-channel.js +1 -1
- package/dist/channels/github/cursor-account.js +3 -3
- package/dist/channels/github/defaults.js +3 -3
- package/dist/channels/github/events.js +1 -1
- package/dist/channels/github/forward.js +8 -8
- package/dist/channels/github/github-channel.js +2 -2
- package/dist/channels/github/index.d.ts +22 -12
- package/dist/channels/github/index.d.ts.map +1 -1
- package/dist/channels/github/index.js +11 -12
- package/dist/channels/gitlab/binding.js +4 -4
- package/dist/channels/gitlab/checks.js +1 -1
- package/dist/channels/gitlab/cursor-account.js +1 -1
- package/dist/channels/gitlab/events.js +1 -1
- package/dist/channels/gitlab/gitlab-channel.js +1 -1
- package/dist/channels/gitlab/gitlab-webhook.js +1 -1
- package/dist/channels/gitlab/replay.js +2 -2
- package/dist/channels/origin/binding.js +3 -3
- package/dist/channels/origin/checks.js +1 -1
- package/dist/channels/origin/cursor-account.js +1 -1
- package/dist/channels/origin/events.js +1 -1
- package/dist/channels/origin/index.d.ts +21 -11
- package/dist/channels/origin/index.d.ts.map +1 -1
- package/dist/channels/origin/index.js +10 -11
- package/dist/channels/origin/origin-channel.js +1 -1
- package/dist/channels/origin/origin-webhook.js +2 -2
- package/dist/channels/slack/agentic-delivery.js +3 -3
- package/dist/channels/slack/agentic-signals.js +1 -1
- package/dist/channels/slack/api.js +5 -5
- package/dist/channels/slack/approvals.js +1 -1
- package/dist/channels/slack/attachments.js +3 -3
- package/dist/channels/slack/blocks.js +3 -3
- package/dist/channels/slack/bot-mentions.js +4 -4
- package/dist/channels/slack/channel-watch.js +4 -4
- package/dist/channels/slack/cli-project.js +3 -3
- package/dist/channels/slack/dispatch.js +1 -1
- package/dist/channels/slack/doctor.js +1 -1
- package/dist/channels/slack/eval-directive.js +1 -1
- package/dist/channels/slack/footer.js +1 -1
- package/dist/channels/slack/interactive.js +2 -2
- package/dist/channels/slack/log.d.ts.map +1 -1
- package/dist/channels/slack/log.js +1 -1
- package/dist/channels/slack/manifest.js +1 -1
- package/dist/channels/slack/nudge-carrier.js +1 -1
- package/dist/channels/slack/nudge-store.js +2 -2
- package/dist/channels/slack/recording-sink.js +6 -6
- package/dist/channels/slack/reply-options.js +6 -6
- package/dist/channels/slack/self-identity.d.ts +7 -4
- package/dist/channels/slack/self-identity.d.ts.map +1 -1
- package/dist/channels/slack/self-identity.js +17 -8
- package/dist/channels/slack/sender-name.d.ts.map +1 -1
- package/dist/channels/slack/sender-name.js +2 -6
- package/dist/channels/slack/setup.d.ts.map +1 -1
- package/dist/channels/slack/setup.js +1 -1
- package/dist/channels/slack/slack-channel.js +2 -2
- package/dist/channels/slack/socket-mode.js +2 -2
- package/dist/channels/slack/thread-context.js +8 -8
- package/dist/channels/slack/tool-cards.js +1 -1
- package/dist/channels/slack/user-info.d.ts +2 -1
- package/dist/channels/slack/user-info.d.ts.map +1 -1
- package/dist/channels/slack/user-info.js +16 -1
- package/dist/channels.js +1 -1
- package/dist/docs/404.html +3 -3
- package/dist/docs/assets/{app.DXI7bwox.js → app.CaLG1pPt.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.DvlKuIO-.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BrbO5mEe.js → VPLocalSearchBox.YsP_2wqD.js} +2 -2
- package/dist/docs/assets/chunks/{arc.BOG1yms8.js → arc.C2j9hR7c.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.C0hsMZnZ.js → architectureDiagram-Q4EWVU46.C5qkGp7y.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.H044KjKs.js → baseUniq.U6GgTHOD.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BsRW6GoB.js → blockDiagram-DXYQGD6D.D51mJop2.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.B9HV5PFR.js → c4Diagram-AHTNJAMY.w1d6QxV7.js} +1 -1
- package/dist/docs/assets/chunks/channel.BRSFxCcD.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CPoT_ajl.js → chunk-4BX2VUAB.B_A815un.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DZBwWuCL.js → chunk-4TB4RGXK.DMrm-ZCb.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.CZ3yTiyq.js → chunk-55IACEB6.8qw6Xdal.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.6DfvHSd8.js → chunk-EDXVE4YY.Cq_nHODn.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CpBj8HfK.js → chunk-FMBD7UC4.B67ohCYn.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BdKo8YqS.js → chunk-OYMX7WX6.Bo8rQI8F.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnXNyxJx.js → chunk-QZHKN3VN.BERUMfE9.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.Cg1OcF8G.js → chunk-YZCP3GAM.DWG2tXIX.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Cmtm6WkN.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Cmtm6WkN.js +1 -0
- package/dist/docs/assets/chunks/clone.JMC96Eo6.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.1SP8al9c.js → cose-bilkent-S5V4N54A.tezXBs9b.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.DS1L6hJt.js → dagre-KV5264BT.aSbEUwT7.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.ChsausbG.js → diagram-5BDNPKRD.vnT6aJ57.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.3XsptNWj.js → diagram-G4DWMVQ6.hGYdrDa2.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DPA9Dk_P.js → diagram-MMDJMWI5.CmdSUP6L.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.BVswXWrB.js → diagram-TYMM5635.BbAnLEBB.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BSak5OSP.js → erDiagram-SMLLAGMA.H40W4HWE.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.CQgN4TTz.js → flowDiagram-DWJPFMVM.BFMtUSv-.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.GrT0kA4a.js → ganttDiagram-T4ZO3ILL.CbYiu7Dt.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CdS7Ucll.js → gitGraphDiagram-UUTBAWPF.Cyc5mzZD.js} +1 -1
- package/dist/docs/assets/chunks/{graph.BVqKRmRo.js → graph.BRptDG1H.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.C3C9FRto.js → infoDiagram-42DDH7IO.Bz6KCA3a.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js → ishikawaDiagram-UXIWVN3A.DDJ_7_Fq.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CaHMfK4b.js → journeyDiagram-VCZTEJTY.D0t_ltlb.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CjhIUwcA.js → kanban-definition-6JOO6SKY.DyyNsMfi.js} +1 -1
- package/dist/docs/assets/chunks/{layout.CGU3gfSf.js → layout.Cbxq-Rhp.js} +1 -1
- package/dist/docs/assets/chunks/{linear.DaihpW_n.js → linear.DxGYL0MP.js} +1 -1
- package/dist/docs/assets/chunks/{min.BS-j8kHQ.js → min.DA5KL8wu.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BVJ1Bbnk.js → mindmap-definition-QFDTVHPH.Bc72Utls.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.Cz1WIv9r.js → pieDiagram-DEJITSTG.BtpHnIB_.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DKLFxcjy.js → quadrantDiagram-34T5L4WZ.Cx4oCSRR.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.BHegiK7x.js → requirementDiagram-MS252O5E.BC0hXWlW.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DYkY6yPc.js → sankeyDiagram-XADWPNL6.Dg8T1SEp.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.DYQ1QUrI.js → sequenceDiagram-FGHM5R23.CWSdHYAF.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.Iru8BsFo.js → stateDiagram-FHFEXIEX.0MVPRI28.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.N4Am6sXd.js +1 -0
- package/dist/docs/assets/chunks/{theme.DaplWQhQ.js → theme.DO1avLBn.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BwFA8hiX.js → timeline-definition-GMOUNBTQ.BuRinAVi.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CZ60W1C_.js → vennDiagram-DHZGUBPP.DXf0PCoJ.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD._eATmGtu.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.B69D2r8-.js → wardleyDiagram-NUSXRM2D.T4ThngYV.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CLPZEIU9.js → xychartDiagram-5P7HB3ND.b4pZF3D5.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.Bljpve-y.js → reference_connections.md.DLrgAd5f.js} +1 -1
- package/dist/docs/assets/{reference_hooks.md.C5LCJ1R3.js → reference_hooks.md.B-eGa2km.js} +3 -3
- package/dist/docs/assets/{reference_hooks.md.C5LCJ1R3.lean.js → reference_hooks.md.B-eGa2km.lean.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.CM5zo3w4.js → reference_sessions.md.CyM7ARz1.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.v3SXVSs_.js → reference_tools.md.DzIY9JzY.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.v3SXVSs_.lean.js → reference_tools.md.DzIY9JzY.lean.js} +1 -1
- package/dist/docs/assets/{style.C130MVnH.css → style.Dwls12uf.css} +1 -1
- package/dist/docs/building-with-agents.html +37 -37
- package/dist/docs/deployment.html +37 -37
- package/dist/docs/evals.html +37 -37
- package/dist/docs/guides/agent-to-agent.html +37 -37
- package/dist/docs/guides/bitbucket.html +37 -37
- package/dist/docs/guides/cloud-agents.html +37 -37
- package/dist/docs/guides/convert-automation.html +37 -37
- package/dist/docs/guides/github.html +37 -37
- package/dist/docs/guides/gitlab.html +37 -37
- package/dist/docs/guides/grokbot-agents.html +37 -37
- package/dist/docs/guides/hooks.html +37 -37
- package/dist/docs/guides/improve.html +37 -37
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/mcp-oauth.html +37 -37
- package/dist/docs/guides/migrate.html +37 -37
- package/dist/docs/guides/opentelemetry.html +37 -37
- package/dist/docs/guides/slack.html +37 -37
- package/dist/docs/guides/webhooks.html +37 -37
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +37 -37
- package/dist/docs/index.html +37 -37
- package/dist/docs/llms-full.txt +15 -2
- package/dist/docs/quickstart.html +37 -37
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/artifacts.html +37 -37
- package/dist/docs/reference/channels.html +37 -37
- package/dist/docs/reference/cli.html +37 -37
- package/dist/docs/reference/connections.html +39 -39
- package/dist/docs/reference/connections.md +2 -1
- package/dist/docs/reference/evals.html +37 -37
- package/dist/docs/reference/extensions.html +37 -37
- package/dist/docs/reference/hooks.html +39 -39
- package/dist/docs/reference/hooks.md +1 -0
- package/dist/docs/reference/http-api.html +37 -37
- package/dist/docs/reference/instructions.html +37 -37
- package/dist/docs/reference/playground.html +36 -36
- package/dist/docs/reference/project-layout.html +37 -37
- package/dist/docs/reference/prompt.html +37 -37
- package/dist/docs/reference/schedules.html +37 -37
- package/dist/docs/reference/sessions.html +37 -37
- package/dist/docs/reference/sessions.md +1 -1
- package/dist/docs/reference/skills.html +40 -40
- package/dist/docs/reference/subagents.html +37 -37
- package/dist/docs/reference/tools.html +39 -39
- package/dist/docs/reference/tools.md +11 -0
- package/dist/docs/templates/agentic-owners.html +37 -37
- package/dist/docs/templates/grokbot-agents.html +37 -37
- package/dist/docs/templates/security-reviewer.html +37 -37
- package/dist/docs/templates/thermo-quality-review.html +37 -37
- package/dist/docs/templates/thermo-review.html +37 -37
- package/dist/docs/templates/triage.html +37 -37
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/evals/assertions.d.ts.map +1 -1
- package/dist/evals/assertions.js +21 -19
- package/dist/evals/expect.js +1 -1
- package/dist/evals/judge.js +1 -1
- package/dist/evals/reporters.js +8 -8
- package/dist/evals/run-facts.js +2 -2
- package/dist/evals.js +6 -6
- package/dist/extensions/cursor-cloud-agents/extension.d.ts +2 -0
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +2 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +16 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +44 -3
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts +23 -0
- package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/launch-agent.js +32 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.js +2 -2
- package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -2
- package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/watch.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +3 -8
- package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/extension.js +3 -3
- package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +3 -3
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +4 -4
- package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
- package/dist/extensions/improve/skills/yourself.js +1 -1
- package/dist/extensions/jev/extension.js +2 -2
- package/dist/extensions/jev/tools/evaluate.js +1 -1
- package/dist/extensions/slack-communication/tools/react.js +1 -1
- package/dist/files-backends/cursor-hosted.js +8 -8
- package/dist/files-backends/local-fs.js +1 -1
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +15 -15
- package/dist/internal/advertise-tools.d.ts +3 -2
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +11 -9
- package/dist/internal/approval-gate.js +1 -1
- package/dist/internal/artifacts-store.js +13 -13
- package/dist/internal/as-of.js +2 -2
- package/dist/internal/authored-alias-hooks.d.ts +4 -3
- package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
- package/dist/internal/authored-alias-hooks.js +16 -7
- package/dist/internal/authored-loaders.d.ts.map +1 -1
- package/dist/internal/authored-loaders.js +21 -5
- package/dist/internal/builtin-tools/reminders.js +2 -2
- package/dist/internal/chat-client.js +5 -5
- package/dist/internal/cli-ax.js +14 -14
- package/dist/internal/cli-bitbucket.js +10 -10
- package/dist/internal/cli-convert-automation.js +2 -2
- package/dist/internal/cli-cursor.js +2 -2
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +40 -40
- package/dist/internal/cli-docs.js +5 -5
- package/dist/internal/cli-github.js +15 -15
- package/dist/internal/cli-gitlab.js +10 -10
- package/dist/internal/cli-images.js +16 -16
- package/dist/internal/cli-manifest.js +1 -1
- package/dist/internal/cli-mcp-oauth.js +5 -5
- package/dist/internal/cli-mcp.js +3 -3
- package/dist/internal/cli-migrate.js +1 -1
- package/dist/internal/cli-skills.js +2 -2
- package/dist/internal/cli-slack.js +5 -5
- package/dist/internal/cloud-turn-cost.js +1 -1
- package/dist/internal/continuation-identity.js +6 -6
- package/dist/internal/conversation-mirror.js +5 -5
- package/dist/internal/convert-automation/convert-workflow.js +24 -24
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +20 -20
- package/dist/internal/cursor/backend-client.js +6 -6
- package/dist/internal/cursor/credentials.js +1 -1
- package/dist/internal/cursor/store-api-client.js +1 -1
- package/dist/internal/cursor-account-mcp-auth.js +9 -9
- package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
- package/dist/internal/cursor-deployment-relay.js +9 -9
- package/dist/internal/cursor-event-relay.js +10 -10
- package/dist/internal/cursor-relay-core.js +2 -2
- package/dist/internal/deploy-manifest.d.ts +14 -0
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +33 -10
- package/dist/internal/discovery/agent-config.js +2 -2
- package/dist/internal/discovery/agent.js +6 -6
- package/dist/internal/discovery/connections.js +5 -5
- package/dist/internal/discovery/cursor-plugin.js +12 -12
- package/dist/internal/discovery/extension-overlay.js +3 -3
- package/dist/internal/discovery/extensions.js +6 -6
- package/dist/internal/discovery/info.js +9 -9
- package/dist/internal/discovery/instructions.js +1 -1
- package/dist/internal/discovery/project.js +3 -3
- package/dist/internal/discovery/services.js +1 -1
- package/dist/internal/discovery/tools.js +1 -1
- package/dist/internal/docs-site.js +2 -2
- package/dist/internal/env-file.js +1 -1
- package/dist/internal/eval-run-store.js +7 -7
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +14 -14
- package/dist/internal/eval-transport.js +1 -1
- package/dist/internal/evals-client.d.ts.map +1 -1
- package/dist/internal/evals-client.js +4 -4
- package/dist/internal/event-log.js +8 -8
- package/dist/internal/event-mapper.js +13 -13
- package/dist/internal/expected-delivery-failure.js +2 -2
- package/dist/internal/filesystem/format.js +2 -2
- package/dist/internal/filesystem/nearest.js +3 -3
- package/dist/internal/filesystem/scratch.js +3 -3
- package/dist/internal/filesystem/tools.js +6 -6
- package/dist/internal/filesystem/walk.d.ts.map +1 -1
- package/dist/internal/filesystem/walk.js +2 -2
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +6 -5
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/framework-storage-selection.js +4 -2
- package/dist/internal/github-fanout.d.ts.map +1 -1
- package/dist/internal/github-fanout.js +3 -3
- package/dist/internal/guest-network.js +4 -4
- package/dist/internal/host-files.js +1 -1
- package/dist/internal/host-kv.js +2 -2
- package/dist/internal/hosted-catch-protocol.js +1 -1
- package/dist/internal/hosted-catch.js +1 -1
- package/dist/internal/hosted-delivery-protocol.d.ts +24 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +58 -14
- package/dist/internal/hosted-delivery.d.ts +6 -0
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +64 -13
- package/dist/internal/hosted-eval-cases.js +4 -4
- package/dist/internal/hosted-execution-diag.js +3 -3
- package/dist/internal/hosted-managed-automation.d.ts +3 -3
- package/dist/internal/hosted-managed-automation.js +3 -3
- package/dist/internal/hosting.js +1 -1
- package/dist/internal/http-channel.js +1 -1
- package/dist/internal/http-control-plane-session.js +2 -2
- package/dist/internal/init-interview.js +7 -7
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +12 -12
- package/dist/internal/inline-stdio-mcp.js +2 -2
- package/dist/internal/install-cursor-skills.js +11 -11
- package/dist/internal/json-schema.js +1 -1
- package/dist/internal/local-control-plane.js +3 -3
- package/dist/internal/local-env.js +3 -3
- package/dist/internal/log-ring.js +1 -1
- package/dist/internal/logs-client.js +1 -1
- package/dist/internal/mcp-endpoint.js +8 -8
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +5 -5
- package/dist/internal/mcp-oauth-on-demand.js +3 -3
- package/dist/internal/mcp-oauth.js +5 -5
- package/dist/internal/net.js +2 -2
- package/dist/internal/otel/config.js +3 -3
- package/dist/internal/otel/runtime.js +13 -13
- package/dist/internal/peer-connections.js +2 -2
- package/dist/internal/persistent-stage-log-mirror.d.ts +57 -0
- package/dist/internal/persistent-stage-log-mirror.d.ts.map +1 -0
- package/dist/internal/persistent-stage-log-mirror.js +231 -0
- package/dist/internal/platform-schedule-sync.js +1 -1
- package/dist/internal/platform-timers.js +1 -1
- package/dist/internal/playground/static.js +2 -2
- package/dist/internal/playground/toolchain.js +2 -2
- package/dist/internal/playground-proxy.js +3 -3
- package/dist/internal/process-memory-telemetry.js +1 -1
- package/dist/internal/reminder-runner.d.ts +1 -1
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +14 -16
- package/dist/internal/reminder-store.js +1 -1
- package/dist/internal/resolved-connections.js +8 -8
- package/dist/internal/router.js +4 -4
- package/dist/internal/run-client.js +2 -2
- package/dist/internal/schedule-runner.d.ts +13 -2
- package/dist/internal/schedule-runner.d.ts.map +1 -1
- package/dist/internal/schedule-runner.js +48 -9
- package/dist/internal/sdk-runner.d.ts +2 -1
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +13 -8
- package/dist/internal/serve-restart.js +1 -1
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +101 -76
- package/dist/internal/session-cost.js +3 -3
- package/dist/internal/session-engine.d.ts +8 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +183 -118
- package/dist/internal/session-live-publisher.d.ts +48 -0
- package/dist/internal/session-live-publisher.d.ts.map +1 -0
- package/dist/internal/session-live-publisher.js +415 -0
- package/dist/internal/session-run-log.js +6 -6
- package/dist/internal/sessions-client.js +3 -3
- package/dist/internal/skill-catalog.js +2 -2
- package/dist/internal/sleep.js +1 -1
- package/dist/internal/start-log-store.d.ts +5 -1
- package/dist/internal/start-log-store.d.ts.map +1 -1
- package/dist/internal/start-log-store.js +5 -3
- package/dist/internal/storage-coordinator.js +12 -12
- package/dist/internal/store-api-protocol.d.ts +51 -0
- package/dist/internal/store-api-protocol.d.ts.map +1 -1
- package/dist/internal/store-api-protocol.js +39 -2
- package/dist/internal/store-mirror.js +4 -4
- package/dist/internal/stream-progress.d.ts.map +1 -1
- package/dist/internal/stream-progress.js +4 -0
- package/dist/internal/terminal-style.js +2 -2
- package/dist/internal/testing/conversation-identity-vectors.d.ts +48 -0
- package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -0
- package/dist/internal/testing/conversation-identity-vectors.js +136 -0
- package/dist/internal/tool-call-retry.d.ts +87 -0
- package/dist/internal/tool-call-retry.d.ts.map +1 -0
- package/dist/internal/tool-call-retry.js +387 -0
- package/dist/internal/tool-result.js +3 -3
- package/dist/internal/trajectory.js +7 -7
- package/dist/internal/turn-governor.js +2 -2
- package/dist/internal/turn-outbox.js +1 -1
- package/dist/internal/update-check.d.ts.map +1 -1
- package/dist/internal/update-check.js +4 -2
- package/dist/internal/v2-hosting.d.ts +6 -0
- package/dist/internal/v2-hosting.d.ts.map +1 -1
- package/dist/internal/v2-hosting.js +7 -1
- package/dist/internal/workspace.js +4 -4
- package/dist/kv/memory-kv.js +3 -3
- package/dist/playground/assets/index-CzttDc-d.css +1 -0
- package/dist/playground/assets/{index-Be0-1hw2.js → index-DIiKbZ25.js} +42 -42
- package/dist/playground/index.html +2 -2
- package/dist/prompt.js +1 -1
- package/dist/storage-backends/cursor-hosted-v2.js +2 -2
- package/dist/storage-backends/file-kv.js +7 -7
- package/dist/storage-protocol.d.ts +7 -0
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +7 -0
- package/dist/storage.js +3 -3
- package/dist/types.d.ts +21 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -4
- package/docs/reference/connections.md +2 -1
- package/docs/reference/hooks.md +1 -0
- package/docs/reference/sessions.md +1 -1
- package/docs/reference/tools.md +11 -0
- package/package.json +6 -6
- package/templates/agentic-owners/bot/channels/github.ts +2 -2
- package/templates/agentic-owners/bot/lib/github.ts +7 -5
- package/templates/agentic-owners/bot/lib/owners/decision.ts +9 -9
- package/templates/agentic-owners/bot/lib/owners/handles.ts +2 -2
- package/templates/agentic-owners/bot/lib/owners/match.ts +5 -3
- package/templates/agentic-owners/bot/lib/owners/matching.ts +1 -1
- package/templates/agentic-owners/bot/lib/owners/parse.ts +4 -4
- package/templates/agentic-owners/bot/lib/owners/prompt.ts +1 -1
- package/templates/agentic-owners/bot/lib/review.ts +18 -17
- package/templates/agentic-owners/evals/owners.eval.ts +2 -2
- package/templates/agents-md/bot/lib/collect.ts +6 -6
- package/templates/agents-md/bot/lib/config.ts +1 -1
- package/templates/agents-md/bot/tools/apply_agents.ts +4 -4
- package/templates/code-wiki/bot/channels/github.ts +3 -3
- package/templates/code-wiki/bot/lib/repos.ts +1 -1
- package/templates/code-wiki/bot/tools/apply_wiki.ts +2 -2
- package/templates/demo/bot/lib/collect.ts +1 -1
- package/templates/demo/bot/lib/repos.ts +1 -1
- package/templates/demo/bot/tools/record_demo.ts +1 -1
- package/templates/pr-autofixer/bot/channels/github.ts +2 -2
- package/templates/pr-autofixer/bot/lib/merge-watch.ts +2 -2
- package/templates/pr-autofixer/bot/lib/repos.ts +2 -2
- package/templates/pr-autofixer/bot/lib/webhook-routing.ts +1 -1
- package/templates/security-help/bot/lib/repos.ts +1 -1
- package/templates/security-reviewer/bot/lib/repos.ts +1 -1
- package/templates/triage/bot/lib/actuate.ts +15 -15
- package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +0 -1
- package/dist/docs/assets/chunks/channel.CBwrU9rP.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +0 -1
- package/dist/docs/assets/chunks/clone.BTvFyY1a.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +0 -162
- package/dist/playground/assets/index-Clz6uHj9.css +0 -1
- /package/dist/docs/assets/{reference_connections.md.Bljpve-y.lean.js → reference_connections.md.DLrgAd5f.lean.js} +0 -0
- /package/dist/docs/assets/{reference_sessions.md.CM5zo3w4.lean.js → reference_sessions.md.CyM7ARz1.lean.js} +0 -0
- /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
|
@@ -80,6 +80,20 @@ export interface AgentDeployManifestDeclarations {
|
|
|
80
80
|
*/
|
|
81
81
|
catch?: AgentDeployManifestCatchDeclaration;
|
|
82
82
|
}>;
|
|
83
|
+
/**
|
|
84
|
+
* Authored `agent/schedules/*`. The v2 control plane compiles these into
|
|
85
|
+
* Temporal calendars at deploy time; a fire wakes a VM that runs the
|
|
86
|
+
* schedule (markdown task, or the `run` handler including any `receive`
|
|
87
|
+
* hand-off) within one delivery.
|
|
88
|
+
*/
|
|
89
|
+
schedules?: AgentDeployManifestScheduleDeclaration[];
|
|
90
|
+
}
|
|
91
|
+
export interface AgentDeployManifestScheduleDeclaration {
|
|
92
|
+
/** Path under `agent/schedules/` without extension. */
|
|
93
|
+
id: string;
|
|
94
|
+
/** Five-field cron, evaluated in UTC. */
|
|
95
|
+
cron: string;
|
|
96
|
+
kind: "markdown" | "run";
|
|
83
97
|
}
|
|
84
98
|
export interface AgentDeployManifestCatchDeclaration {
|
|
85
99
|
routes: Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQlE,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAI/F,eAAO,MAAM,uBAAuB,EAAE,CAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,6 +80,20 @@ const slackReplyDeclarationSchema = z.object({
|
|
|
80
80
|
.regex(/^(?!.*(?:<!|<@))[^\r\n]{2,80}$/)
|
|
81
81
|
.optional(),
|
|
82
82
|
});
|
|
83
|
+
/**
|
|
84
|
+
* Hosted v2 schedule ids name the reserved `schedule:<id>` hosted-admission
|
|
85
|
+
* channel, which the control plane bounds at 128 characters.
|
|
86
|
+
*/
|
|
87
|
+
const SCHEDULE_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._/-]{0,99}$/;
|
|
88
|
+
const MAX_SCHEDULES = 64;
|
|
89
|
+
const scheduleDeclarationSchema = z.object({
|
|
90
|
+
id: z
|
|
91
|
+
.string()
|
|
92
|
+
.regex(SCHEDULE_ID_PATTERN, "hosted v2 schedule names are 1-100 letters, digits, `.`, `_`, `-`, or `/`, starting with a letter or digit")
|
|
93
|
+
.refine((id) => !id.split("/").includes(".."), "must not contain `..` segments"),
|
|
94
|
+
cron: z.string().min(1).max(128),
|
|
95
|
+
kind: z.enum(["markdown", "run"]),
|
|
96
|
+
});
|
|
83
97
|
const agentDeployManifestV1Schema = z.object({
|
|
84
98
|
manifestVersion: z.literal(DEPLOY_MANIFEST_VERSION),
|
|
85
99
|
generatedAtMs: z.number().int().nonnegative(),
|
|
@@ -106,6 +120,7 @@ const agentDeployManifestV1Schema = z.object({
|
|
|
106
120
|
slackChannelPosts: z.array(z.string().min(1).max(80)).max(64).optional(),
|
|
107
121
|
}))
|
|
108
122
|
.max(64),
|
|
123
|
+
schedules: z.array(scheduleDeclarationSchema).max(MAX_SCHEDULES).optional(),
|
|
109
124
|
}),
|
|
110
125
|
// Full `projectInfo` payload — opaque to the wire contract.
|
|
111
126
|
info: z.record(z.unknown()),
|
|
@@ -120,7 +135,7 @@ export function buildAgentDeployManifest(project, options) {
|
|
|
120
135
|
throw new Error(runtimeArchitectureError);
|
|
121
136
|
}
|
|
122
137
|
applyAgentContinuationDefaults(project);
|
|
123
|
-
const channels = project.channels.map(channel => {
|
|
138
|
+
const channels = project.channels.map((channel) => {
|
|
124
139
|
const architectureError = channelArchitectureError(project.agent.architecture, channel.definition);
|
|
125
140
|
if (architectureError !== undefined) {
|
|
126
141
|
throw new Error(`channels/${channel.id}: ${architectureError}`);
|
|
@@ -150,8 +165,8 @@ export function buildAgentDeployManifest(project, options) {
|
|
|
150
165
|
// Same mapping as `july deploy` (cli-deploy.ts): channels declared public
|
|
151
166
|
// via `publicEndpoint()` become alias-token-free route prefixes.
|
|
152
167
|
const publicRoutePaths = project.channels
|
|
153
|
-
.filter(channel => (channel.definition.auth ?? []).some(isPublicEndpointPolicy))
|
|
154
|
-
.map(channel => `/v1/channels/${channel.id}`);
|
|
168
|
+
.filter((channel) => (channel.definition.auth ?? []).some(isPublicEndpointPolicy))
|
|
169
|
+
.map((channel) => `/v1/channels/${channel.id}`);
|
|
155
170
|
const manifest = {
|
|
156
171
|
manifestVersion: DEPLOY_MANIFEST_VERSION,
|
|
157
172
|
generatedAtMs: options?.nowMs ?? Date.now(),
|
|
@@ -174,13 +189,21 @@ export function buildAgentDeployManifest(project, options) {
|
|
|
174
189
|
persistent: project.agent.persistent,
|
|
175
190
|
...(project.agent.hosting?.image === undefined ? {} : { image: project.agent.hosting.image }),
|
|
176
191
|
channels,
|
|
192
|
+
// v1 calendars stay engine-synced at boot; only v2 compiles declarations.
|
|
193
|
+
schedules: project.agent.architecture === "v2"
|
|
194
|
+
? project.schedules.map((schedule) => ({
|
|
195
|
+
id: schedule.name,
|
|
196
|
+
cron: schedule.cron,
|
|
197
|
+
kind: schedule.kind,
|
|
198
|
+
}))
|
|
199
|
+
: undefined,
|
|
177
200
|
},
|
|
178
201
|
info: projectInfo(project),
|
|
179
202
|
};
|
|
180
203
|
const validation = agentDeployManifestV1Schema.safeParse(manifest);
|
|
181
204
|
if (!validation.success) {
|
|
182
205
|
const issues = validation.error.issues
|
|
183
|
-
.map(issue => `${issue.path.join(".")}: ${issue.message}`)
|
|
206
|
+
.map((issue) => `${issue.path.join(".")}: ${issue.message}`)
|
|
184
207
|
.join("; ");
|
|
185
208
|
throw new Error(`Invalid Agent SDK deploy manifest: ${issues}`);
|
|
186
209
|
}
|
|
@@ -207,7 +230,7 @@ export function channelCatchDeclaration(definition) {
|
|
|
207
230
|
}
|
|
208
231
|
const declared = (definition.auth ?? [])
|
|
209
232
|
.map(catchAuthDeclaration)
|
|
210
|
-
.filter(declaration => declaration !== undefined);
|
|
233
|
+
.filter((declaration) => declaration !== undefined);
|
|
211
234
|
if (declared.length === 0) {
|
|
212
235
|
return undefined;
|
|
213
236
|
}
|
|
@@ -219,9 +242,9 @@ export function channelCatchDeclaration(definition) {
|
|
|
219
242
|
// claim-checked, and senders keep sending the secret regardless of
|
|
220
243
|
// whether anything still checks it. HMAC policies carry body digests,
|
|
221
244
|
// not secrets, so nothing is lost by dropping them.
|
|
222
|
-
const isPublic = declared.some(policy => policy.kind === "public");
|
|
245
|
+
const isPublic = declared.some((policy) => policy.kind === "public");
|
|
223
246
|
const auth = isPublic
|
|
224
|
-
? [{ kind: "public" }, ...declared.filter(policy => policy.kind === "header")]
|
|
247
|
+
? [{ kind: "public" }, ...declared.filter((policy) => policy.kind === "header")]
|
|
225
248
|
: declared;
|
|
226
249
|
if (routes.length > CATCH_MAX_ROUTES) {
|
|
227
250
|
if (isPublic) {
|
|
@@ -238,7 +261,7 @@ export function channelCatchDeclaration(definition) {
|
|
|
238
261
|
: `Catch channels may declare at most ${CATCH_MAX_AUTH_POLICIES} secret policies (got ${auth.length}).`);
|
|
239
262
|
}
|
|
240
263
|
return {
|
|
241
|
-
routes: routes.map(route => ({ method: route.method, path: route.path })),
|
|
264
|
+
routes: routes.map((route) => ({ method: route.method, path: route.path })),
|
|
242
265
|
auth,
|
|
243
266
|
};
|
|
244
267
|
}
|
|
@@ -252,11 +275,11 @@ export function channelCatchDeclaration(definition) {
|
|
|
252
275
|
*/
|
|
253
276
|
export function channelCatchSecretNames(definition) {
|
|
254
277
|
const declaration = channelCatchDeclaration(definition);
|
|
255
|
-
if (declaration === undefined || declaration.auth.some(policy => policy.kind === "public")) {
|
|
278
|
+
if (declaration === undefined || declaration.auth.some((policy) => policy.kind === "public")) {
|
|
256
279
|
return [];
|
|
257
280
|
}
|
|
258
281
|
return [
|
|
259
|
-
...new Set(declaration.auth.flatMap(policy => (policy.kind === "public" ? [] : [policy.secret]))),
|
|
282
|
+
...new Set(declaration.auth.flatMap((policy) => (policy.kind === "public" ? [] : [policy.secret]))),
|
|
260
283
|
];
|
|
261
284
|
}
|
|
262
285
|
/**
|
|
@@ -107,7 +107,7 @@ export function resolveHosting(ctx, agentDir, hosting, extensions) {
|
|
|
107
107
|
warn(`hosting.image: ${imageError}`);
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
const mountedEgress = extensions.flatMap(extension => extension.hosting?.egressDomains ?? []);
|
|
110
|
+
const mountedEgress = extensions.flatMap((extension) => extension.hosting?.egressDomains ?? []);
|
|
111
111
|
const egressDomains = [...new Set([...(hosting?.egressDomains ?? []), ...mountedEgress])];
|
|
112
112
|
if (egressDomains.length > MAX_EGRESS_DOMAINS) {
|
|
113
113
|
const withMounts = mountedEgress.length > 0 ? " with mounted extensions" : "";
|
|
@@ -116,7 +116,7 @@ export function resolveHosting(ctx, agentDir, hosting, extensions) {
|
|
|
116
116
|
const secretNames = [
|
|
117
117
|
...new Set([
|
|
118
118
|
...(hosting?.secretNames ?? []),
|
|
119
|
-
...extensions.flatMap(extension => extension.hosting?.secretNames ?? []),
|
|
119
|
+
...extensions.flatMap((extension) => extension.hosting?.secretNames ?? []),
|
|
120
120
|
]),
|
|
121
121
|
];
|
|
122
122
|
if (egressDomains.length === 0 && secretNames.length === 0 && hosting?.image === undefined) {
|
|
@@ -115,7 +115,7 @@ export async function loadAgent(ctx, agentDir, options) {
|
|
|
115
115
|
hasRoot,
|
|
116
116
|
tools: authoredAllowlist,
|
|
117
117
|
}));
|
|
118
|
-
const clash = tools.find(tool => {
|
|
118
|
+
const clash = tools.find((tool) => {
|
|
119
119
|
if (reservedNames.has(tool.name)) {
|
|
120
120
|
return true;
|
|
121
121
|
}
|
|
@@ -176,7 +176,7 @@ export async function loadAgent(ctx, agentDir, options) {
|
|
|
176
176
|
// non-local agent that declares them must fail at serve start — never
|
|
177
177
|
// run without the connection's tools or identity. (Hybrid per-send
|
|
178
178
|
// cloud sessions fail closed in the session engine.)
|
|
179
|
-
const perSessionConnection = connections.find(connection => connection.advertiseTools === true || connection.auth !== undefined);
|
|
179
|
+
const perSessionConnection = connections.find((connection) => connection.advertiseTools === true || connection.auth !== undefined);
|
|
180
180
|
if (perSessionConnection !== undefined && runtime !== "local") {
|
|
181
181
|
ctx.diagnostics.push({
|
|
182
182
|
severity: "error",
|
|
@@ -189,7 +189,7 @@ export async function loadAgent(ctx, agentDir, options) {
|
|
|
189
189
|
// strands authored scripts deserves a loud diagnostic, not silence.
|
|
190
190
|
if (allowedTools !== undefined &&
|
|
191
191
|
!allowedTools.includes("shell") &&
|
|
192
|
-
tools.some(tool => tool.execution === "agent")) {
|
|
192
|
+
tools.some((tool) => tool.execution === "agent")) {
|
|
193
193
|
ctx.diagnostics.push({
|
|
194
194
|
severity: "warning",
|
|
195
195
|
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
@@ -227,7 +227,7 @@ export async function loadAgent(ctx, agentDir, options) {
|
|
|
227
227
|
}
|
|
228
228
|
if (runtime === "cloud") {
|
|
229
229
|
warnCloudRuntimeLimitations(ctx, agentDir, {
|
|
230
|
-
agentTools: tools.filter(tool => tool.execution === "agent").length,
|
|
230
|
+
agentTools: tools.filter((tool) => tool.execution === "agent").length,
|
|
231
231
|
skills: skills.length,
|
|
232
232
|
seedFiles: seedFiles.length,
|
|
233
233
|
hasCloudOptions: cloud !== undefined,
|
|
@@ -237,8 +237,8 @@ export async function loadAgent(ctx, agentDir, options) {
|
|
|
237
237
|
// After appendBuiltinTools so opted-in built-ins (server-executed) count.
|
|
238
238
|
if (runtime === "grokbot") {
|
|
239
239
|
checkGrokBotRuntimeLimitations(ctx, agentDir, {
|
|
240
|
-
serverTools: tools.filter(tool => tool.execution === "server").length,
|
|
241
|
-
agentTools: tools.filter(tool => tool.execution === "agent").length,
|
|
240
|
+
serverTools: tools.filter((tool) => tool.execution === "server").length,
|
|
241
|
+
agentTools: tools.filter((tool) => tool.execution === "agent").length,
|
|
242
242
|
skills: skills.length,
|
|
243
243
|
seedFiles: seedFiles.length,
|
|
244
244
|
connections: connections.length + hostConnections.length,
|
|
@@ -27,7 +27,7 @@ function hasAuthorizationHeader(headers) {
|
|
|
27
27
|
if (headers === undefined) {
|
|
28
28
|
return false;
|
|
29
29
|
}
|
|
30
|
-
return Object.keys(headers).some(key => key.toLowerCase() === "authorization");
|
|
30
|
+
return Object.keys(headers).some((key) => key.toLowerCase() === "authorization");
|
|
31
31
|
}
|
|
32
32
|
function parseConnectionEffects(effects) {
|
|
33
33
|
if (effects === undefined) {
|
|
@@ -53,7 +53,7 @@ function parseConnectionTools(tools) {
|
|
|
53
53
|
if (!Array.isArray(tools) || tools.length === 0) {
|
|
54
54
|
return { ok: false };
|
|
55
55
|
}
|
|
56
|
-
if (tools.some(name => typeof name !== "string")) {
|
|
56
|
+
if (tools.some((name) => typeof name !== "string")) {
|
|
57
57
|
return { ok: false };
|
|
58
58
|
}
|
|
59
59
|
const normalized = normalizeConnectionTools(tools);
|
|
@@ -107,7 +107,7 @@ function connectionTransport(connection) {
|
|
|
107
107
|
export async function loadHostConnections(ctx, agentDir, modelConnections) {
|
|
108
108
|
const hostDir = join(agentDir, "host-connections");
|
|
109
109
|
const loaded = await loadConnections(ctx, hostDir, "host");
|
|
110
|
-
const modelNames = new Set(modelConnections.map(connection => connection.name));
|
|
110
|
+
const modelNames = new Set(modelConnections.map((connection) => connection.name));
|
|
111
111
|
const hostConnections = [];
|
|
112
112
|
for (const connection of loaded) {
|
|
113
113
|
if (modelNames.has(connection.name)) {
|
|
@@ -330,7 +330,7 @@ export async function compileConnection(ctx, entryPath, name, connection, role)
|
|
|
330
330
|
}
|
|
331
331
|
if ("cursorAccount" in transport &&
|
|
332
332
|
transport.servers !== undefined &&
|
|
333
|
-
(transport.servers.length === 0 || transport.servers.some(server => isBlank(server)))) {
|
|
333
|
+
(transport.servers.length === 0 || transport.servers.some((server) => isBlank(server)))) {
|
|
334
334
|
ctx.diagnostics.push({
|
|
335
335
|
severity: "error",
|
|
336
336
|
path: displayPath(ctx, entryPath),
|
|
@@ -353,7 +353,7 @@ export async function compileConnection(ctx, entryPath, name, connection, role)
|
|
|
353
353
|
ctx.diagnostics.push({
|
|
354
354
|
severity: "warning",
|
|
355
355
|
path: displayPath(ctx, entryPath),
|
|
356
|
-
message: `MCP connection "${name}" templates ${unresolved.map(variable => `\${${variable}}`).join(", ")}, which the environment does not set. The value resolves when the connection opens, so hosted deployments are fine; locally, set it before the turn or the credential is empty.`,
|
|
356
|
+
message: `MCP connection "${name}" templates ${unresolved.map((variable) => `\${${variable}}`).join(", ")}, which the environment does not set. The value resolves when the connection opens, so hosted deployments are fine; locally, set it before the turn or the credential is empty.`,
|
|
357
357
|
});
|
|
358
358
|
}
|
|
359
359
|
return {
|
|
@@ -21,12 +21,12 @@ const PLUGIN_ROOT_VARIABLES = new Set(["CURSOR_PLUGIN_ROOT", "CLAUDE_PLUGIN_ROOT
|
|
|
21
21
|
/** A component slot's declaration: one directory or a list of paths. */
|
|
22
22
|
const pathsSchema = z
|
|
23
23
|
.union([z.string(), z.array(z.string())])
|
|
24
|
-
.transform(value => (typeof value === "string" ? [value] : value));
|
|
24
|
+
.transform((value) => (typeof value === "string" ? [value] : value));
|
|
25
25
|
/** A blank or null value reads as absent, as a missing key would. */
|
|
26
26
|
const text = z
|
|
27
27
|
.string()
|
|
28
28
|
.nullish()
|
|
29
|
-
.transform(value => value === undefined || value === null || value.trim() === "" ? undefined : value);
|
|
29
|
+
.transform((value) => value === undefined || value === null || value.trim() === "" ? undefined : value);
|
|
30
30
|
const manifestSchema = z.object({
|
|
31
31
|
description: text.optional(),
|
|
32
32
|
skills: pathsSchema.optional(),
|
|
@@ -41,11 +41,11 @@ const manifestSchema = z.object({
|
|
|
41
41
|
z.array(z.union([z.string(), z.record(z.unknown())])),
|
|
42
42
|
])
|
|
43
43
|
.optional()
|
|
44
|
-
.transform(value => {
|
|
44
|
+
.transform((value) => {
|
|
45
45
|
const items = value === undefined || Array.isArray(value) ? (value ?? []) : [value];
|
|
46
46
|
return {
|
|
47
|
-
paths: items.filter(item => typeof item === "string"),
|
|
48
|
-
inline: items.filter(item => typeof item !== "string"),
|
|
47
|
+
paths: items.filter((item) => typeof item === "string"),
|
|
48
|
+
inline: items.filter((item) => typeof item !== "string"),
|
|
49
49
|
};
|
|
50
50
|
}),
|
|
51
51
|
});
|
|
@@ -84,7 +84,7 @@ export async function readCursorPlugin(ctx, root, mountPath, variables, overlaid
|
|
|
84
84
|
};
|
|
85
85
|
const skills = await loadPluginSkills(plugin, manifest.data.skills);
|
|
86
86
|
for (const command of await loadPluginCommands(plugin, manifest.data.commands)) {
|
|
87
|
-
if (skills.some(skill => skill.name === command.name)) {
|
|
87
|
+
if (skills.some((skill) => skill.name === command.name)) {
|
|
88
88
|
ctx.diagnostics.push({
|
|
89
89
|
severity: "warning",
|
|
90
90
|
path: displayPath(ctx, root),
|
|
@@ -170,7 +170,7 @@ async function loadPluginSkills(plugin, declared) {
|
|
|
170
170
|
const skills = [];
|
|
171
171
|
for (const dir of dirs) {
|
|
172
172
|
const skill = await readSkillDir(plugin, dir);
|
|
173
|
-
if (skill !== undefined && !skills.some(s => s.name === skill.name)) {
|
|
173
|
+
if (skill !== undefined && !skills.some((s) => s.name === skill.name)) {
|
|
174
174
|
skills.push(skill);
|
|
175
175
|
}
|
|
176
176
|
}
|
|
@@ -226,7 +226,7 @@ async function loadPluginAgents(plugin, declared) {
|
|
|
226
226
|
for (const path of await componentFiles(plugin, declared, "agents", MARKDOWN_EXTENSIONS)) {
|
|
227
227
|
const { data, body } = await readMarkdown(plugin, path);
|
|
228
228
|
const name = componentName(plugin, data.name ?? fileStem(path), path);
|
|
229
|
-
if (name === undefined || agents.some(agent => agent.name === name)) {
|
|
229
|
+
if (name === undefined || agents.some((agent) => agent.name === name)) {
|
|
230
230
|
continue;
|
|
231
231
|
}
|
|
232
232
|
if (isBlank(body)) {
|
|
@@ -311,7 +311,7 @@ function mcpServersOf(data) {
|
|
|
311
311
|
}
|
|
312
312
|
function serverConnection(plugin, name, raw, path) {
|
|
313
313
|
const unresolved = new Set();
|
|
314
|
-
const expanded = expandPlaceholders(raw, key => {
|
|
314
|
+
const expanded = expandPlaceholders(raw, (key) => {
|
|
315
315
|
if (PLUGIN_ROOT_VARIABLES.has(key)) {
|
|
316
316
|
return plugin.root;
|
|
317
317
|
}
|
|
@@ -321,7 +321,7 @@ function serverConnection(plugin, name, raw, path) {
|
|
|
321
321
|
plugin.ctx.diagnostics.push({
|
|
322
322
|
severity: "error",
|
|
323
323
|
path: displayPath(plugin.ctx, path),
|
|
324
|
-
message: `MCP server "${name}" needs ${[...unresolved].map(v => `\${${v}}`).join(", ")}. Pass it in cursorPlugin({ variables }) or set it in the environment.`,
|
|
324
|
+
message: `MCP server "${name}" needs ${[...unresolved].map((v) => `\${${v}}`).join(", ")}. Pass it in cursorPlugin({ variables }) or set it in the environment.`,
|
|
325
325
|
});
|
|
326
326
|
return undefined;
|
|
327
327
|
}
|
|
@@ -395,7 +395,7 @@ function expandPlaceholders(value, lookup, unresolved) {
|
|
|
395
395
|
});
|
|
396
396
|
}
|
|
397
397
|
if (Array.isArray(value)) {
|
|
398
|
-
return value.map(item => expandPlaceholders(item, lookup, unresolved));
|
|
398
|
+
return value.map((item) => expandPlaceholders(item, lookup, unresolved));
|
|
399
399
|
}
|
|
400
400
|
if (isRecord(value)) {
|
|
401
401
|
const out = {};
|
|
@@ -433,7 +433,7 @@ async function componentFiles(plugin, declared, folder, extensions) {
|
|
|
433
433
|
files.push(path);
|
|
434
434
|
}
|
|
435
435
|
}
|
|
436
|
-
return files.filter(file => extensions.has(extname(file)));
|
|
436
|
+
return files.filter((file) => extensions.has(extname(file)));
|
|
437
437
|
}
|
|
438
438
|
/** Manifest paths resolve against the plugin root; escaping ones are refused, as in Cursor. */
|
|
439
439
|
function declaredPaths(plugin, declared) {
|
|
@@ -34,13 +34,13 @@ export async function overlaySlot(ctx, site, contributed, entries, slot) {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
export async function overlaySkills(ctx, site, contributed, dir) {
|
|
37
|
-
await overlayNamed(ctx, site, contributed, dir, "disableSkill", onDisable => loadSkills(ctx, dir, onDisable));
|
|
37
|
+
await overlayNamed(ctx, site, contributed, dir, "disableSkill", (onDisable) => loadSkills(ctx, dir, onDisable));
|
|
38
38
|
}
|
|
39
39
|
export async function overlayHooks(ctx, site, contributed, dir) {
|
|
40
|
-
await overlayNamed(ctx, site, contributed, dir, "disableHook", onDisable => loadHooks(ctx, dir, onDisable));
|
|
40
|
+
await overlayNamed(ctx, site, contributed, dir, "disableHook", (onDisable) => loadHooks(ctx, dir, onDisable));
|
|
41
41
|
}
|
|
42
42
|
export async function overlaySchedules(ctx, site, contributed, dir) {
|
|
43
|
-
await overlayNamed(ctx, site, contributed, dir, "disableSchedule", onDisable => loadSchedules(ctx, dir, onDisable));
|
|
43
|
+
await overlayNamed(ctx, site, contributed, dir, "disableSchedule", (onDisable) => loadSchedules(ctx, dir, onDisable));
|
|
44
44
|
}
|
|
45
45
|
export async function overlayChannels(ctx, site, contributed, dir) {
|
|
46
46
|
if (!(await isDirectory(dir))) {
|
|
@@ -38,7 +38,7 @@ export async function appendExtensions(ctx, extensionsDir, into) {
|
|
|
38
38
|
if (site === undefined) {
|
|
39
39
|
continue;
|
|
40
40
|
}
|
|
41
|
-
if (extensions.some(extension => extension.name === site.ns)) {
|
|
41
|
+
if (extensions.some((extension) => extension.name === site.ns)) {
|
|
42
42
|
ctx.diagnostics.push({
|
|
43
43
|
severity: "error",
|
|
44
44
|
path: displayPath(ctx, path),
|
|
@@ -129,7 +129,7 @@ async function mountExtension(ctx, site, mount, into) {
|
|
|
129
129
|
for (const agent of tree.agents) {
|
|
130
130
|
subagents.set(agent.name, subagent(agent.name, agent));
|
|
131
131
|
}
|
|
132
|
-
const seedFiles = new Map(tree.seedFiles.map(seed => [seed.relativePath, seed]));
|
|
132
|
+
const seedFiles = new Map(tree.seedFiles.map((seed) => [seed.relativePath, seed]));
|
|
133
133
|
let artifacts = tree.artifacts;
|
|
134
134
|
let instructions = tree.instructions;
|
|
135
135
|
if (site.overlayDir !== undefined) {
|
|
@@ -231,7 +231,7 @@ async function mountExtension(ctx, site, mount, into) {
|
|
|
231
231
|
mounted.instructions = true;
|
|
232
232
|
}
|
|
233
233
|
for (const seed of seedFiles.values()) {
|
|
234
|
-
if (into.seedFiles.some(existing => existing.relativePath === seed.relativePath)) {
|
|
234
|
+
if (into.seedFiles.some((existing) => existing.relativePath === seed.relativePath)) {
|
|
235
235
|
ctx.diagnostics.push({
|
|
236
236
|
severity: "warning",
|
|
237
237
|
path: displayPath(ctx, seed.sourcePath),
|
|
@@ -272,7 +272,7 @@ async function readExtensionTree(ctx, site, mount, root) {
|
|
|
272
272
|
const connectionOverlay = site.overlayDir === undefined
|
|
273
273
|
? []
|
|
274
274
|
: await moduleEntries(ctx, join(site.overlayDir, "mcp-connections"), "connection");
|
|
275
|
-
const plugin = await readCursorPlugin(ctx, root, site.mountPath, mount.extension.variables, new Set(connectionOverlay.map(entry => entry.name)));
|
|
275
|
+
const plugin = await readCursorPlugin(ctx, root, site.mountPath, mount.extension.variables, new Set(connectionOverlay.map((entry) => entry.name)));
|
|
276
276
|
if (plugin === undefined) {
|
|
277
277
|
return undefined;
|
|
278
278
|
}
|
|
@@ -323,10 +323,10 @@ function namespaceSubagent(composed, child) {
|
|
|
323
323
|
};
|
|
324
324
|
}
|
|
325
325
|
function byName(items) {
|
|
326
|
-
return new Map(items.map(item => [item.name, item]));
|
|
326
|
+
return new Map(items.map((item) => [item.name, item]));
|
|
327
327
|
}
|
|
328
328
|
function byId(items) {
|
|
329
|
-
return new Map(items.map(item => [item.id, item]));
|
|
329
|
+
return new Map(items.map((item) => [item.id, item]));
|
|
330
330
|
}
|
|
331
331
|
/**
|
|
332
332
|
* Agent-singleton slots: one runtime (`agent.ts`), one storage backend,
|
|
@@ -54,7 +54,7 @@ export function projectInfo(project) {
|
|
|
54
54
|
? `${agent.instructions.slice(0, 277)}...`
|
|
55
55
|
: agent.instructions,
|
|
56
56
|
},
|
|
57
|
-
tools: agent.tools.map(tool => ({
|
|
57
|
+
tools: agent.tools.map((tool) => ({
|
|
58
58
|
name: tool.name,
|
|
59
59
|
description: tool.description,
|
|
60
60
|
execution: tool.execution,
|
|
@@ -62,12 +62,12 @@ export function projectInfo(project) {
|
|
|
62
62
|
effect: tool.effect,
|
|
63
63
|
inputSchema: tool.inputSchema,
|
|
64
64
|
})),
|
|
65
|
-
skills: agent.skills.map(skill => ({
|
|
65
|
+
skills: agent.skills.map((skill) => ({
|
|
66
66
|
name: skill.name,
|
|
67
67
|
description: skill.description,
|
|
68
68
|
})),
|
|
69
69
|
extensions: agent.extensions ?? [],
|
|
70
|
-
connections: agent.connections.map(connection => ({
|
|
70
|
+
connections: agent.connections.map((connection) => ({
|
|
71
71
|
name: connection.name,
|
|
72
72
|
transport: connectionTransportLabel(connection.transport),
|
|
73
73
|
advertiseTools: connection.advertiseTools,
|
|
@@ -77,17 +77,17 @@ export function projectInfo(project) {
|
|
|
77
77
|
disallowedTools: connection.disallowedTools,
|
|
78
78
|
cursorAccountServers: "cursorAccount" in connection.transport ? (connection.transport.servers ?? "*") : undefined,
|
|
79
79
|
})),
|
|
80
|
-
subagents: agent.subagents.map(subagent => ({
|
|
80
|
+
subagents: agent.subagents.map((subagent) => ({
|
|
81
81
|
name: subagent.name,
|
|
82
82
|
description: subagent.description,
|
|
83
83
|
model: subagent.model,
|
|
84
84
|
})),
|
|
85
85
|
channels: [
|
|
86
86
|
{ id: "http", routes: httpRoutes },
|
|
87
|
-
...project.channels.map(channel => {
|
|
87
|
+
...project.channels.map((channel) => {
|
|
88
88
|
const info = {
|
|
89
89
|
id: channel.id,
|
|
90
|
-
routes: (channel.definition.routes ?? []).map(r => {
|
|
90
|
+
routes: (channel.definition.routes ?? []).map((r) => {
|
|
91
91
|
const routeInfo = {
|
|
92
92
|
method: r.method,
|
|
93
93
|
path: r.path,
|
|
@@ -136,17 +136,17 @@ export function projectInfo(project) {
|
|
|
136
136
|
return info;
|
|
137
137
|
}),
|
|
138
138
|
],
|
|
139
|
-
schedules: project.schedules.map(schedule => ({
|
|
139
|
+
schedules: project.schedules.map((schedule) => ({
|
|
140
140
|
name: schedule.name,
|
|
141
141
|
cron: schedule.cron,
|
|
142
142
|
kind: schedule.kind,
|
|
143
143
|
})),
|
|
144
144
|
reminders: (project.reminders ?? []).length === 0
|
|
145
145
|
? undefined
|
|
146
|
-
: (project.reminders ?? []).map(reminder => ({
|
|
146
|
+
: (project.reminders ?? []).map((reminder) => ({
|
|
147
147
|
name: reminder.name,
|
|
148
148
|
})),
|
|
149
|
-
hooks: project.hooks.map(hook => hook.name),
|
|
149
|
+
hooks: project.hooks.map((hook) => hook.name),
|
|
150
150
|
storage: project.storage === undefined ? undefined : { name: project.storage.name },
|
|
151
151
|
artifacts: project.artifacts === undefined
|
|
152
152
|
? undefined
|
|
@@ -40,7 +40,7 @@ export async function loadInstructions(ctx, agentDir, config, isRoot) {
|
|
|
40
40
|
if (config?.instructions !== undefined && !isBlank(config.instructions)) {
|
|
41
41
|
parts.push(config.instructions.trim());
|
|
42
42
|
}
|
|
43
|
-
const combined = parts.filter(part => part !== "").join("\n\n");
|
|
43
|
+
const combined = parts.filter((part) => part !== "").join("\n\n");
|
|
44
44
|
if (combined === "") {
|
|
45
45
|
if (isRoot) {
|
|
46
46
|
ctx.diagnostics.push({
|
|
@@ -167,7 +167,7 @@ export async function loadAgentProject(dir, options = {}) {
|
|
|
167
167
|
});
|
|
168
168
|
const { channels, httpChannelDefinition } = await loadChannels(ctx, join(agentDir, "channels"));
|
|
169
169
|
for (const channel of projectSlots.channels) {
|
|
170
|
-
if (channel.id === "http" || channels.some(c => c.id === channel.id)) {
|
|
170
|
+
if (channel.id === "http" || channels.some((c) => c.id === channel.id)) {
|
|
171
171
|
ctx.diagnostics.push({
|
|
172
172
|
severity: "error",
|
|
173
173
|
path: displayPath(ctx, join(agentDir, "extensions")),
|
|
@@ -256,11 +256,11 @@ async function mergeProjectArtifacts(ctx, agentDir, extra) {
|
|
|
256
256
|
}
|
|
257
257
|
/** True when the project has diagnostics that must block serving. */
|
|
258
258
|
export function hasErrorDiagnostics(project) {
|
|
259
|
-
return project.diagnostics.some(d => d.severity === "error");
|
|
259
|
+
return project.diagnostics.some((d) => d.severity === "error");
|
|
260
260
|
}
|
|
261
261
|
export function formatDiagnostics(diagnostics) {
|
|
262
262
|
return diagnostics
|
|
263
|
-
.map(d => {
|
|
263
|
+
.map((d) => {
|
|
264
264
|
const location = d.path === undefined ? "" : ` (${d.path})`;
|
|
265
265
|
return `${d.severity}: ${d.message}${location}`;
|
|
266
266
|
})
|
|
@@ -104,7 +104,7 @@ export async function appendArtifactTool(ctx, agentDir, agent, artifacts) {
|
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
106
106
|
const artifactsPath = displayPath(ctx, (await findModuleFile(agentDir, "artifacts")) ?? join(agentDir, "artifacts.ts"));
|
|
107
|
-
if (agent.tools.some(t => t.name === TAG_ARTIFACT_TOOL_NAME)) {
|
|
107
|
+
if (agent.tools.some((t) => t.name === TAG_ARTIFACT_TOOL_NAME)) {
|
|
108
108
|
ctx.diagnostics.push({
|
|
109
109
|
severity: "warning",
|
|
110
110
|
path: artifactsPath,
|
|
@@ -129,7 +129,7 @@ export function appendBuiltinTools(ctx, agentDir, tools, config) {
|
|
|
129
129
|
}
|
|
130
130
|
const agentPath = displayPath(ctx, join(agentDir, "agent.ts"));
|
|
131
131
|
for (const tool of builtin) {
|
|
132
|
-
const existing = tools.find(t => t.name === tool.name);
|
|
132
|
+
const existing = tools.find((t) => t.name === tool.name);
|
|
133
133
|
if (existing !== undefined) {
|
|
134
134
|
const owner = existing.extension === undefined ? "Authored" : `Extension "${existing.extension}"`;
|
|
135
135
|
ctx.diagnostics.push({
|
|
@@ -86,7 +86,7 @@ export function docsSiteExists(distDir = docsDistDir()) {
|
|
|
86
86
|
export function resolveDocsFile(requestPath, distDir = docsDistDir()) {
|
|
87
87
|
const decoded = requestPath
|
|
88
88
|
.split("/")
|
|
89
|
-
.filter(part => part !== "")
|
|
89
|
+
.filter((part) => part !== "")
|
|
90
90
|
.join("/");
|
|
91
91
|
const normalized = normalize(decoded === "" ? "." : decoded);
|
|
92
92
|
if (normalized.startsWith("..") || normalized.includes(`..${sep}`)) {
|
|
@@ -161,7 +161,7 @@ export async function ensureDocsSiteBundle(logger = console.log) {
|
|
|
161
161
|
stdio: "inherit",
|
|
162
162
|
});
|
|
163
163
|
child.on("error", reject);
|
|
164
|
-
child.on("exit", exitCode => resolve(exitCode ?? 1));
|
|
164
|
+
child.on("exit", (exitCode) => resolve(exitCode ?? 1));
|
|
165
165
|
});
|
|
166
166
|
if (code !== 0) {
|
|
167
167
|
throw new Error(`docs vitepress build failed (exit ${code})`);
|
|
@@ -62,7 +62,7 @@ export async function ensureEnvLocalGitignored(dir) {
|
|
|
62
62
|
const existing = await readOptionalFile(path);
|
|
63
63
|
const covered = existing
|
|
64
64
|
.split(/\r?\n/)
|
|
65
|
-
.some(line => /^\.env(\.local\*?|\.\*|\*)$/.test(line.trim()));
|
|
65
|
+
.some((line) => /^\.env(\.local\*?|\.\*|\*)$/.test(line.trim()));
|
|
66
66
|
if (covered) {
|
|
67
67
|
return false;
|
|
68
68
|
}
|
|
@@ -29,7 +29,7 @@ export class EvalRunStore {
|
|
|
29
29
|
await this.hydrate();
|
|
30
30
|
const { evals, config } = await discoverEvals(this.projectRoot);
|
|
31
31
|
return {
|
|
32
|
-
evals: evals.map(e => ({
|
|
32
|
+
evals: evals.map((e) => ({
|
|
33
33
|
id: e.id,
|
|
34
34
|
fileId: e.fileId,
|
|
35
35
|
...(e.definition.description === undefined
|
|
@@ -86,7 +86,7 @@ export class EvalRunStore {
|
|
|
86
86
|
throw new EvalRunEmptyError();
|
|
87
87
|
}
|
|
88
88
|
const runId = `evalrun_${randomUUID().replace(/-/g, "").slice(0, 16)}`;
|
|
89
|
-
const cases = selected.map(e => discoveredToPending(e));
|
|
89
|
+
const cases = selected.map((e) => discoveredToPending(e));
|
|
90
90
|
const snapshot = {
|
|
91
91
|
runId,
|
|
92
92
|
status: "running",
|
|
@@ -259,12 +259,12 @@ export class EvalRunStore {
|
|
|
259
259
|
...(opts.bearerToken === undefined ? {} : { bearerToken: opts.bearerToken }),
|
|
260
260
|
...(opts.verbose === undefined ? {} : { verbose: opts.verbose }),
|
|
261
261
|
...(opts.timeoutMs === undefined ? {} : { timeoutMs: opts.timeoutMs }),
|
|
262
|
-
onCaseStart: id => {
|
|
262
|
+
onCaseStart: (id) => {
|
|
263
263
|
const run = this.runs.get(runId);
|
|
264
264
|
if (run === undefined || run.status === "cancelled") {
|
|
265
265
|
return;
|
|
266
266
|
}
|
|
267
|
-
const c = run.cases.find(x => x.id === id);
|
|
267
|
+
const c = run.cases.find((x) => x.id === id);
|
|
268
268
|
if (c !== undefined) {
|
|
269
269
|
c.status = "running";
|
|
270
270
|
c.inputs = [];
|
|
@@ -281,7 +281,7 @@ export class EvalRunStore {
|
|
|
281
281
|
if (run === undefined) {
|
|
282
282
|
return;
|
|
283
283
|
}
|
|
284
|
-
const c = run.cases.find(x => x.id === id);
|
|
284
|
+
const c = run.cases.find((x) => x.id === id);
|
|
285
285
|
if (c === undefined) {
|
|
286
286
|
return;
|
|
287
287
|
}
|
|
@@ -300,7 +300,7 @@ export class EvalRunStore {
|
|
|
300
300
|
c.finalText = event.data.text;
|
|
301
301
|
}
|
|
302
302
|
},
|
|
303
|
-
onCaseDone: result => {
|
|
303
|
+
onCaseDone: (result) => {
|
|
304
304
|
this.applyCaseResult(runId, result);
|
|
305
305
|
const run = this.runs.get(runId);
|
|
306
306
|
if (run !== undefined) {
|
|
@@ -347,7 +347,7 @@ export class EvalRunStore {
|
|
|
347
347
|
if (run === undefined) {
|
|
348
348
|
return;
|
|
349
349
|
}
|
|
350
|
-
const c = run.cases.find(x => x.id === result.id);
|
|
350
|
+
const c = run.cases.find((x) => x.id === result.id);
|
|
351
351
|
if (c === undefined) {
|
|
352
352
|
return;
|
|
353
353
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-runner.d.ts","sourceRoot":"","sources":["../../src/internal/eval-runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"eval-runner.d.ts","sourceRoot":"","sources":["../../src/internal/eval-runner.ts"],"names":[],"mappings":"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"}
|