@cursor/bdk 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/agent-serve.js +9 -1
- package/dist/channels/slack/attachments.d.ts +2 -1
- package/dist/channels/slack/attachments.d.ts.map +1 -1
- package/dist/channels/slack/attachments.js +19 -9
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +26 -24
- package/dist/channels/slack/thread-context.d.ts +21 -11
- package/dist/channels/slack/thread-context.d.ts.map +1 -1
- package/dist/channels/slack/thread-context.js +75 -27
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.BOIHhrKi.js → app.4kQ8Db_q.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.CvuAJ0My.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.D49zVZqM.js → VPLocalSearchBox.DY1RwB8Q.js} +1 -1
- package/dist/docs/assets/chunks/{arc.hmjb-sc4.js → arc.CxE_fSPK.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CxEI1KqM.js → architectureDiagram-Q4EWVU46.CPX426ui.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.DHHvBWoV.js → baseUniq.CB52JrKG.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DnXW-3bu.js → blockDiagram-DXYQGD6D.J0cNaQCL.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.e-47O2jM.js → c4Diagram-AHTNJAMY.DJn3vEGT.js} +1 -1
- package/dist/docs/assets/chunks/channel.BoNycAoN.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.3ry4pYXB.js → chunk-4BX2VUAB.Dao618F6.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DGIZFRx6.js → chunk-4TB4RGXK.QW8Rhjai.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.DKBnqg9U.js → chunk-55IACEB6.DfRLLKF_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BIU8Ue5k.js → chunk-EDXVE4YY.CIV2ApKQ.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DP-TFhjI.js → chunk-FMBD7UC4.BEheSuxp.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Ux0OYj5v.js → chunk-OYMX7WX6.CUN88ENB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BzHMwYox.js → chunk-QZHKN3VN.CgqCs8b_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.D4OGAsSP.js → chunk-YZCP3GAM.iCH0nnTJ.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/clone.Db22cH_-.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Jq_7BUNx.js → cose-bilkent-S5V4N54A.BLcUxhWE.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.Di-skR2x.js → dagre-KV5264BT.Ep7LofOm.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DeREHIdH.js → diagram-5BDNPKRD.Bzf4GSQ4.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.C7Kcqxro.js → diagram-G4DWMVQ6.DD6Jh-eM.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BK3eohyo.js → diagram-MMDJMWI5.oOIl8bWd.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.C6TyymXT.js → diagram-TYMM5635.DHs85Ade.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DYGG-gGx.js → erDiagram-SMLLAGMA.BIb5ghCk.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.C9nBcSV4.js → flowDiagram-DWJPFMVM.DV4paY9k.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.wAg_ymsp.js → ganttDiagram-T4ZO3ILL.AyEKA6_v.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.B87j9Oeg.js → gitGraphDiagram-UUTBAWPF.BltiCDFo.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CuFMj31w.js → graph.DzuEYGdC.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.P_mLGumP.js → infoDiagram-42DDH7IO.BV2l981J.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DyuL_MsT.js → ishikawaDiagram-UXIWVN3A.BA4Izf-m.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CtP09IoJ.js → journeyDiagram-VCZTEJTY.DjaFbFS3.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BoeSYPZo.js → kanban-definition-6JOO6SKY.CfTFieDs.js} +1 -1
- package/dist/docs/assets/chunks/{layout.B0lMMtNo.js → layout.DzfWqTBV.js} +1 -1
- package/dist/docs/assets/chunks/{linear.HxRBiAFX.js → linear.BO6mpulV.js} +1 -1
- package/dist/docs/assets/chunks/{min.BGlFFHwS.js → min.BGgTadgT.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.JyLBD9M8.js → mindmap-definition-QFDTVHPH.DPuIXVWY.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DnSmNZF8.js → pieDiagram-DEJITSTG.BOnl3bBg.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CUCnbfCa.js → quadrantDiagram-34T5L4WZ.DNB6Ckdc.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.py0IVUn5.js → requirementDiagram-MS252O5E.D5-Qo7vb.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.Bkc-HWYp.js → sankeyDiagram-XADWPNL6.8t65cesf.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Dqn8Mlv2.js → sequenceDiagram-FGHM5R23.CaG07BdS.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.JikkoQUU.js → stateDiagram-FHFEXIEX.TKOweTB6.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CuqmyQc4.js +1 -0
- package/dist/docs/assets/chunks/{theme.b6HQ6zG_.js → theme.Dx-JhpTB.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BvpSXiBj.js → timeline-definition-GMOUNBTQ.fE53zQ2s.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CU7MVnZx.js → vennDiagram-DHZGUBPP.DJsZZaJg.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.BKwC4ctG.js → wardley-RL74JXVD.844kyrjl.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.BfaF6Uhe.js → wardleyDiagram-NUSXRM2D.CMZ-Ru_t.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Bg5dcpj4.js → xychartDiagram-5P7HB3ND.XXrhBc7a.js} +1 -1
- package/dist/docs/assets/{deployment.md.BJ8i7Q6p.js → deployment.md.UhnJIMr-.js} +2 -2
- package/dist/docs/assets/{deployment.md.BJ8i7Q6p.lean.js → deployment.md.UhnJIMr-.lean.js} +1 -1
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.js → guides_jev.md.CRcgmjDb.js} +2 -2
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.lean.js → guides_jev.md.CRcgmjDb.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.DzGI777n.js → reference_agent-config.md.Cj5uBKp4.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.js → reference_extensions.md.pa2tN-e4.js} +4 -3
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.lean.js → reference_extensions.md.pa2tN-e4.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +37 -37
- package/dist/docs/deployment.md +4 -1
- package/dist/docs/evals.html +35 -35
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +35 -35
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +35 -35
- package/dist/docs/guides/gitlab.html +35 -35
- package/dist/docs/guides/grokbot-agents.html +35 -35
- package/dist/docs/guides/hooks.html +35 -35
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/jev.md +7 -0
- package/dist/docs/guides/mcp-oauth.html +35 -35
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +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 +25 -2
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/agent-config.md +1 -1
- package/dist/docs/reference/artifacts.html +35 -35
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +35 -35
- package/dist/docs/reference/connections.html +35 -35
- package/dist/docs/reference/evals.html +35 -35
- package/dist/docs/reference/extensions.html +39 -38
- package/dist/docs/reference/extensions.md +13 -0
- package/dist/docs/reference/hooks.html +35 -35
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +35 -35
- package/dist/docs/reference/sessions.html +35 -35
- package/dist/docs/reference/skills.html +35 -35
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +35 -35
- package/dist/extensions/jev/extension.d.ts +3 -0
- package/dist/extensions/jev/extension.d.ts.map +1 -1
- package/dist/extensions/jev/extension.js +10 -1
- package/dist/extensions/jev/lib/evaluate.d.ts +4 -0
- package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -1
- package/dist/extensions/jev/lib/evaluate.js +6 -2
- package/dist/extensions.d.ts +4 -2
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +5 -2
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +19 -5
- package/dist/internal/discovery/agent-config.d.ts +6 -5
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +29 -28
- package/dist/internal/discovery/agent.js +1 -1
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +12 -0
- package/dist/internal/hosting.d.ts +8 -0
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +24 -0
- package/dist/types.d.ts +18 -2
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +4 -1
- package/docs/guides/jev.md +7 -0
- package/docs/reference/agent-config.md +1 -1
- package/docs/reference/extensions.md +13 -0
- package/package.json +1 -9
- package/dist/docs/assets/chunks/@localSearchIndexroot.D5L-b34G.js +0 -1
- package/dist/docs/assets/chunks/channel.BbOGaJQP.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Db58HCb1.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Db58HCb1.js +0 -1
- package/dist/docs/assets/chunks/clone.Co4MBflG.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CMsKhrW0.js +0 -1
- package/src/artifacts.ts +0 -68
- package/src/bin/agent-serve.ts +0 -1854
- package/src/channels/bitbucket/api.ts +0 -891
- package/src/channels/bitbucket/binding.ts +0 -417
- package/src/channels/bitbucket/bitbucket-channel.ts +0 -162
- package/src/channels/bitbucket/bitbucket-webhook.ts +0 -519
- package/src/channels/bitbucket/checks.ts +0 -146
- package/src/channels/bitbucket/cursor-account.ts +0 -106
- package/src/channels/bitbucket/defaults.ts +0 -100
- package/src/channels/bitbucket/events.ts +0 -74
- package/src/channels/bitbucket/index.ts +0 -51
- package/src/channels/bitbucket/replay.ts +0 -421
- package/src/channels/bitbucket/state.ts +0 -59
- package/src/channels/bitbucket/types.ts +0 -261
- package/src/channels/change-monitors/change-monitors-channel.ts +0 -63
- package/src/channels/change-monitors/index.ts +0 -8
- package/src/channels/change-monitors/types.ts +0 -42
- package/src/channels/checks.ts +0 -185
- package/src/channels/deployments/deployments-channel.ts +0 -224
- package/src/channels/deployments/index.ts +0 -25
- package/src/channels/deployments/types.ts +0 -92
- package/src/channels/github/api.ts +0 -526
- package/src/channels/github/auth.ts +0 -293
- package/src/channels/github/binding.ts +0 -233
- package/src/channels/github/checks.ts +0 -145
- package/src/channels/github/cursor-account.ts +0 -303
- package/src/channels/github/defaults.ts +0 -168
- package/src/channels/github/events.ts +0 -67
- package/src/channels/github/forward.ts +0 -359
- package/src/channels/github/github-channel.ts +0 -2334
- package/src/channels/github/index.ts +0 -54
- package/src/channels/github/progress.ts +0 -365
- package/src/channels/github/replay.ts +0 -372
- package/src/channels/github/state.ts +0 -124
- package/src/channels/github/types.ts +0 -590
- package/src/channels/gitlab/api.ts +0 -329
- package/src/channels/gitlab/binding.ts +0 -231
- package/src/channels/gitlab/checks.ts +0 -228
- package/src/channels/gitlab/cursor-account.ts +0 -105
- package/src/channels/gitlab/defaults.ts +0 -80
- package/src/channels/gitlab/events.ts +0 -37
- package/src/channels/gitlab/gitlab-channel.ts +0 -160
- package/src/channels/gitlab/gitlab-webhook.ts +0 -509
- package/src/channels/gitlab/index.ts +0 -44
- package/src/channels/gitlab/replay.ts +0 -328
- package/src/channels/gitlab/state.ts +0 -55
- package/src/channels/gitlab/types.ts +0 -247
- package/src/channels/issues/index.ts +0 -9
- package/src/channels/issues/issues-channel.ts +0 -45
- package/src/channels/issues/types.ts +0 -38
- package/src/channels/origin/api.ts +0 -507
- package/src/channels/origin/binding.ts +0 -114
- package/src/channels/origin/checks.ts +0 -250
- package/src/channels/origin/cursor-account.ts +0 -58
- package/src/channels/origin/defaults.ts +0 -140
- package/src/channels/origin/events.ts +0 -35
- package/src/channels/origin/index.ts +0 -35
- package/src/channels/origin/origin-channel.ts +0 -815
- package/src/channels/origin/origin-webhook.ts +0 -296
- package/src/channels/origin/reactions.ts +0 -72
- package/src/channels/origin/state.ts +0 -54
- package/src/channels/origin/types.ts +0 -295
- package/src/channels/slack/agentic-delivery.ts +0 -634
- package/src/channels/slack/agentic-posted.ts +0 -135
- package/src/channels/slack/agentic-signals.ts +0 -231
- package/src/channels/slack/api.ts +0 -761
- package/src/channels/slack/approvals.ts +0 -279
- package/src/channels/slack/assistant.ts +0 -76
- package/src/channels/slack/attachments.ts +0 -596
- package/src/channels/slack/auth.ts +0 -127
- package/src/channels/slack/blocks.ts +0 -131
- package/src/channels/slack/bot-mentions.ts +0 -318
- package/src/channels/slack/channel-watch.ts +0 -314
- package/src/channels/slack/cli-project.ts +0 -249
- package/src/channels/slack/code-fences.ts +0 -171
- package/src/channels/slack/constants.ts +0 -38
- package/src/channels/slack/credentials.ts +0 -88
- package/src/channels/slack/defaults.ts +0 -714
- package/src/channels/slack/dispatch.ts +0 -1060
- package/src/channels/slack/doctor.ts +0 -338
- package/src/channels/slack/eval-directive.ts +0 -306
- package/src/channels/slack/event-id-dedupe.ts +0 -30
- package/src/channels/slack/external-policy.ts +0 -75
- package/src/channels/slack/footer.ts +0 -106
- package/src/channels/slack/inbound.ts +0 -416
- package/src/channels/slack/index.ts +0 -53
- package/src/channels/slack/init.ts +0 -169
- package/src/channels/slack/interactive.ts +0 -406
- package/src/channels/slack/links.ts +0 -23
- package/src/channels/slack/live-delivery.ts +0 -489
- package/src/channels/slack/log.ts +0 -70
- package/src/channels/slack/manifest.ts +0 -240
- package/src/channels/slack/message-body.ts +0 -82
- package/src/channels/slack/nudge-carrier.ts +0 -224
- package/src/channels/slack/nudge-store.ts +0 -334
- package/src/channels/slack/paint-start.ts +0 -93
- package/src/channels/slack/placeholder.ts +0 -358
- package/src/channels/slack/pr-ref.ts +0 -74
- package/src/channels/slack/progress-delivery.ts +0 -138
- package/src/channels/slack/reasoning-card.ts +0 -125
- package/src/channels/slack/reasoning-chip.ts +0 -41
- package/src/channels/slack/recording-sink.ts +0 -167
- package/src/channels/slack/redact.ts +0 -6
- package/src/channels/slack/reply-options.ts +0 -279
- package/src/channels/slack/setup.ts +0 -125
- package/src/channels/slack/slack-channel.ts +0 -744
- package/src/channels/slack/socket-mode.ts +0 -140
- package/src/channels/slack/stop.ts +0 -25
- package/src/channels/slack/stream.ts +0 -66
- package/src/channels/slack/thread-context.ts +0 -485
- package/src/channels/slack/tool-approval-events.ts +0 -233
- package/src/channels/slack/tool-cards.ts +0 -198
- package/src/channels/slack/tool-chip.ts +0 -34
- package/src/channels/slack/types.ts +0 -787
- package/src/channels/slack/upload.ts +0 -137
- package/src/channels.ts +0 -543
- package/src/connections.ts +0 -153
- package/src/dashboard-session-url.ts +0 -30
- package/src/evals/assertions.ts +0 -688
- package/src/evals/expect.ts +0 -250
- package/src/evals/judge.ts +0 -329
- package/src/evals/loaders.ts +0 -111
- package/src/evals/matchers.ts +0 -223
- package/src/evals/reporters.ts +0 -257
- package/src/evals/results.ts +0 -130
- package/src/evals/run-facts.ts +0 -306
- package/src/evals.ts +0 -709
- package/src/extensions/cursor-cloud-agents/extension.ts +0 -131
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +0 -386
- package/src/extensions/cursor-cloud-agents/lib/channels.ts +0 -11
- package/src/extensions/cursor-cloud-agents/lib/fleet.ts +0 -98
- package/src/extensions/cursor-cloud-agents/lib/inputs.ts +0 -5
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +0 -80
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +0 -19
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +0 -37
- package/src/extensions/cursor-cloud-agents/tools/cancel.ts +0 -21
- package/src/extensions/cursor-cloud-agents/tools/dump.ts +0 -47
- package/src/extensions/cursor-cloud-agents/tools/get.ts +0 -18
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +0 -62
- package/src/extensions/cursor-cloud-agents/tools/list.ts +0 -31
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +0 -36
- package/src/extensions/cursor-grokbot-agents/extension.ts +0 -132
- package/src/extensions/cursor-grokbot-agents/lib/agents.ts +0 -42
- package/src/extensions/cursor-grokbot-agents/lib/backend.ts +0 -208
- package/src/extensions/cursor-grokbot-agents/lib/contacts.ts +0 -74
- package/src/extensions/cursor-grokbot-agents/lib/conversation.ts +0 -260
- package/src/extensions/cursor-grokbot-agents/lib/inputs.ts +0 -21
- package/src/extensions/cursor-grokbot-agents/lib/lock.ts +0 -26
- package/src/extensions/cursor-grokbot-agents/skills/consult.md +0 -40
- package/src/extensions/cursor-grokbot-agents/tools/ask.ts +0 -32
- package/src/extensions/cursor-grokbot-agents/tools/check.ts +0 -25
- package/src/extensions/cursor-grokbot-agents/tools/interrupt.ts +0 -17
- package/src/extensions/cursor-grokbot-agents/tools/list.ts +0 -26
- package/src/extensions/improve/extension.ts +0 -69
- package/src/extensions/improve/skills/yourself.ts +0 -50
- package/src/extensions/jev/extension.ts +0 -95
- package/src/extensions/jev/lib/evaluate.ts +0 -266
- package/src/extensions/jev/skills/gated-write.md +0 -25
- package/src/extensions/jev/skills/questions.md +0 -33
- package/src/extensions/jev/tools/evaluate.ts +0 -82
- package/src/extensions/slack-communication/evals/harness.ts +0 -705
- package/src/extensions/slack-communication/evals/slack-communication.eval.ts +0 -830
- package/src/extensions/slack-communication/evals/slack-placeholder.eval.ts +0 -172
- package/src/extensions/slack-communication/extension.ts +0 -44
- package/src/extensions/slack-communication/skills/slack-voice.ts +0 -56
- package/src/extensions/slack-communication/tools/delete-message.ts +0 -33
- package/src/extensions/slack-communication/tools/edit-message.ts +0 -42
- package/src/extensions/slack-communication/tools/post-card.ts +0 -28
- package/src/extensions/slack-communication/tools/post-file.ts +0 -82
- package/src/extensions/slack-communication/tools/post-update.ts +0 -40
- package/src/extensions/slack-communication/tools/react.ts +0 -30
- package/src/extensions/slack-communication/tools/set-status.ts +0 -21
- package/src/extensions.ts +0 -179
- package/src/files-backends/agent-store-presigned-url.ts +0 -11
- package/src/files-backends/cursor-hosted.ts +0 -1212
- package/src/files-backends/local-fs.ts +0 -163
- package/src/files.ts +0 -293
- package/src/filesystem.ts +0 -2005
- package/src/hooks.ts +0 -30
- package/src/index.ts +0 -259
- package/src/internal/advertise-tools.ts +0 -370
- package/src/internal/approval-gate.ts +0 -103
- package/src/internal/artifacts-store.ts +0 -836
- package/src/internal/as-of.ts +0 -257
- package/src/internal/auth.ts +0 -46
- package/src/internal/authored-alias-hooks.ts +0 -138
- package/src/internal/authored-loaders.ts +0 -188
- package/src/internal/bounded-int.ts +0 -24
- package/src/internal/bounded.ts +0 -25
- package/src/internal/brand.ts +0 -28
- package/src/internal/browser-origin-guard.ts +0 -67
- package/src/internal/builtin-tools/artifacts.ts +0 -62
- package/src/internal/builtin-tools/index.ts +0 -53
- package/src/internal/builtin-tools/reminders.ts +0 -145
- package/src/internal/channel-dispatch.ts +0 -129
- package/src/internal/channel-route-dispatch.ts +0 -58
- package/src/internal/channel-state.ts +0 -83
- package/src/internal/chat-client.ts +0 -594
- package/src/internal/cli-ax.ts +0 -2318
- package/src/internal/cli-bitbucket.ts +0 -438
- package/src/internal/cli-convert-automation.ts +0 -335
- package/src/internal/cli-cursor.ts +0 -282
- package/src/internal/cli-deploy.ts +0 -2519
- package/src/internal/cli-docs.ts +0 -192
- package/src/internal/cli-github.ts +0 -806
- package/src/internal/cli-gitlab.ts +0 -452
- package/src/internal/cli-images.ts +0 -672
- package/src/internal/cli-manifest.ts +0 -56
- package/src/internal/cli-mcp-oauth.ts +0 -396
- package/src/internal/cli-mcp.ts +0 -808
- package/src/internal/cli-skills.ts +0 -98
- package/src/internal/cli-slack-manual.ts +0 -418
- package/src/internal/cli-slack.ts +0 -874
- package/src/internal/cloud-merge.ts +0 -51
- package/src/internal/cloud-turn-cost.ts +0 -159
- package/src/internal/connection-env.ts +0 -106
- package/src/internal/continuation-channel.ts +0 -233
- package/src/internal/continuation-identity.ts +0 -935
- package/src/internal/conversation-mirror.ts +0 -423
- package/src/internal/convert-automation/convert-workflow.ts +0 -1377
- package/src/internal/convert-automation/slug.ts +0 -29
- package/src/internal/convert-automation/types.ts +0 -212
- package/src/internal/cron.ts +0 -76
- package/src/internal/cursor/account-mcp.ts +0 -692
- package/src/internal/cursor/backend-client.ts +0 -984
- package/src/internal/cursor/bound-secret-file.ts +0 -101
- package/src/internal/cursor/credentials.ts +0 -560
- package/src/internal/cursor/cursor-api-transport.ts +0 -65
- package/src/internal/cursor/github-credentials.ts +0 -228
- package/src/internal/cursor/hosted-bound-secrets.ts +0 -71
- package/src/internal/cursor/hosted-deployment-secrets.ts +0 -100
- package/src/internal/cursor/hosted-store-secrets.ts +0 -152
- package/src/internal/cursor/session-token.ts +0 -111
- package/src/internal/cursor/store-api-client.ts +0 -323
- package/src/internal/cursor-account-mcp-auth.ts +0 -303
- package/src/internal/cursor-agent-template.ts +0 -50
- package/src/internal/cursor-deployment-relay.ts +0 -315
- package/src/internal/cursor-event-relay.ts +0 -675
- package/src/internal/cursor-relay-core.ts +0 -563
- package/src/internal/deferred-channel-session.ts +0 -61
- package/src/internal/deploy-client.ts +0 -1574
- package/src/internal/deploy-manifest.ts +0 -361
- package/src/internal/deploy-source.ts +0 -144
- package/src/internal/describe-error.ts +0 -32
- package/src/internal/dev-mode.ts +0 -20
- package/src/internal/discovery/agent-config.ts +0 -288
- package/src/internal/discovery/agent.ts +0 -381
- package/src/internal/discovery/channels.ts +0 -100
- package/src/internal/discovery/connections.ts +0 -516
- package/src/internal/discovery/context.ts +0 -38
- package/src/internal/discovery/cursor-plugin.ts +0 -628
- package/src/internal/discovery/extension-overlay.ts +0 -247
- package/src/internal/discovery/extensions.ts +0 -490
- package/src/internal/discovery/fs.ts +0 -103
- package/src/internal/discovery/hooks.ts +0 -63
- package/src/internal/discovery/info.ts +0 -174
- package/src/internal/discovery/instructions.ts +0 -98
- package/src/internal/discovery/modules.ts +0 -107
- package/src/internal/discovery/names.ts +0 -45
- package/src/internal/discovery/project.ts +0 -319
- package/src/internal/discovery/reminders.ts +0 -65
- package/src/internal/discovery/runtime.ts +0 -158
- package/src/internal/discovery/schedules.ts +0 -120
- package/src/internal/discovery/seed-files.ts +0 -34
- package/src/internal/discovery/services.ts +0 -151
- package/src/internal/discovery/skills.ts +0 -174
- package/src/internal/discovery/subagent.ts +0 -138
- package/src/internal/discovery/tools.ts +0 -170
- package/src/internal/discovery.ts +0 -27
- package/src/internal/distribution.ts +0 -126
- package/src/internal/docs-site.ts +0 -248
- package/src/internal/duration.ts +0 -37
- package/src/internal/env-file.ts +0 -83
- package/src/internal/eval-judge-model.ts +0 -142
- package/src/internal/eval-run-store.ts +0 -585
- package/src/internal/eval-runner.ts +0 -823
- package/src/internal/evals-client.ts +0 -475
- package/src/internal/event-log.ts +0 -342
- package/src/internal/event-mapper.ts +0 -811
- package/src/internal/expected-delivery-failure.ts +0 -34
- package/src/internal/factory-resource-channel.ts +0 -103
- package/src/internal/filesystem/errors.ts +0 -207
- package/src/internal/filesystem/format.ts +0 -253
- package/src/internal/filesystem/merge.ts +0 -192
- package/src/internal/filesystem/nearest.ts +0 -112
- package/src/internal/filesystem/scratch.ts +0 -239
- package/src/internal/filesystem/sdk-schemas.ts +0 -204
- package/src/internal/filesystem/tools.ts +0 -804
- package/src/internal/filesystem/walk.ts +0 -366
- package/src/internal/fixtures/units-server.ts +0 -52
- package/src/internal/framework-file-storage.ts +0 -357
- package/src/internal/framework-storage-selection.ts +0 -156
- package/src/internal/frontmatter.ts +0 -108
- package/src/internal/github-fanout.ts +0 -144
- package/src/internal/guest-network.ts +0 -391
- package/src/internal/handleAgentServeTrigger.ts +0 -286
- package/src/internal/host-files.ts +0 -341
- package/src/internal/host-kv.ts +0 -81
- package/src/internal/host-otel.ts +0 -231
- package/src/internal/host-platforms.ts +0 -170
- package/src/internal/hosted-admission-adapter.ts +0 -47
- package/src/internal/hosted-admission-context.ts +0 -37
- package/src/internal/hosted-catch-protocol.ts +0 -112
- package/src/internal/hosted-catch.ts +0 -179
- package/src/internal/hosted-delivery-protocol.ts +0 -824
- package/src/internal/hosted-delivery.ts +0 -1410
- package/src/internal/hosted-execution-diag.ts +0 -291
- package/src/internal/hosted-execution-flush.ts +0 -136
- package/src/internal/hosted-execution-latency.ts +0 -301
- package/src/internal/hosted-managed-automation.ts +0 -116
- package/src/internal/hosting.ts +0 -114
- package/src/internal/http-channel-define.ts +0 -25
- package/src/internal/http-channel.ts +0 -669
- package/src/internal/http-control-plane-session.ts +0 -110
- package/src/internal/ids.ts +0 -39
- package/src/internal/incoming-headers-to-fetch.ts +0 -45
- package/src/internal/init-interview.ts +0 -360
- package/src/internal/init-project.ts +0 -711
- package/src/internal/init-scaffold.ts +0 -182
- package/src/internal/inline-stdio-define-stub.ts +0 -4
- package/src/internal/inline-stdio-mcp.ts +0 -230
- package/src/internal/install-cursor-skills.ts +0 -604
- package/src/internal/is-record.ts +0 -3
- package/src/internal/json-schema.ts +0 -95
- package/src/internal/legacy-command-guard.ts +0 -66
- package/src/internal/listen-port.ts +0 -85
- package/src/internal/local-control-plane.ts +0 -442
- package/src/internal/local-env.ts +0 -59
- package/src/internal/local-ingress.ts +0 -90
- package/src/internal/log-ring.ts +0 -59
- package/src/internal/logs-client.ts +0 -477
- package/src/internal/map-pool.ts +0 -39
- package/src/internal/mcp-endpoint.ts +0 -747
- package/src/internal/mcp-host.ts +0 -509
- package/src/internal/mcp-oauth-on-demand.ts +0 -337
- package/src/internal/mcp-oauth-persist.ts +0 -118
- package/src/internal/mcp-oauth.ts +0 -549
- package/src/internal/net.ts +0 -29
- package/src/internal/open-browser.ts +0 -41
- package/src/internal/otel/attrs.ts +0 -16
- package/src/internal/otel/collector.ts +0 -937
- package/src/internal/otel/config.ts +0 -287
- package/src/internal/otel/http.ts +0 -122
- package/src/internal/otel/mcp.ts +0 -56
- package/src/internal/otel/propagation.ts +0 -17
- package/src/internal/otel/runtime.ts +0 -441
- package/src/internal/package-inline-stdio.ts +0 -114
- package/src/internal/peer-connections.ts +0 -96
- package/src/internal/platform-schedule-sync.ts +0 -75
- package/src/internal/platform-timers.ts +0 -365
- package/src/internal/playground/static.ts +0 -278
- package/src/internal/playground/toolchain.ts +0 -270
- package/src/internal/playground-proxy.ts +0 -564
- package/src/internal/process-memory-telemetry.ts +0 -334
- package/src/internal/project-layout.ts +0 -31
- package/src/internal/prompt-context.ts +0 -116
- package/src/internal/reminder-control-plane-protocol.ts +0 -482
- package/src/internal/reminder-runner.ts +0 -1559
- package/src/internal/reminder-schedule.ts +0 -104
- package/src/internal/reminder-store.ts +0 -176
- package/src/internal/request-error-status.ts +0 -95
- package/src/internal/request-headers.ts +0 -21
- package/src/internal/resolve-prod-target.ts +0 -334
- package/src/internal/resolved-connections.ts +0 -190
- package/src/internal/router.ts +0 -143
- package/src/internal/run-client.ts +0 -354
- package/src/internal/runtime-dispatch-runner.ts +0 -50
- package/src/internal/sanitize-mcp-tool-name.ts +0 -31
- package/src/internal/schedule-runner.ts +0 -154
- package/src/internal/scm/pr-url.ts +0 -245
- package/src/internal/sdk-runner.ts +0 -959
- package/src/internal/serve-restart.ts +0 -113
- package/src/internal/server.ts +0 -3147
- package/src/internal/session-cost.ts +0 -208
- package/src/internal/session-engine.ts +0 -5622
- package/src/internal/session-links.ts +0 -84
- package/src/internal/session-run-log.ts +0 -535
- package/src/internal/session-store.ts +0 -307
- package/src/internal/session-urls.ts +0 -32
- package/src/internal/sessions-client.ts +0 -239
- package/src/internal/skill-catalog.ts +0 -66
- package/src/internal/skills-sync.ts +0 -55
- package/src/internal/slack-provision-client.ts +0 -544
- package/src/internal/slack-thread-key.ts +0 -11
- package/src/internal/sleep.ts +0 -3
- package/src/internal/start-log-store.ts +0 -164
- package/src/internal/steering.ts +0 -17
- package/src/internal/storage-coordinator.ts +0 -800
- package/src/internal/storage-roles.ts +0 -86
- package/src/internal/storage.ts +0 -1
- package/src/internal/store-api-protocol.ts +0 -205
- package/src/internal/store-mirror.ts +0 -73
- package/src/internal/stream-progress.ts +0 -294
- package/src/internal/terminal-style.ts +0 -133
- package/src/internal/testing/factory-resource-fixtures.ts +0 -84
- package/src/internal/testing/scm-continuation-fixtures.ts +0 -285
- package/src/internal/tool-catalog.ts +0 -104
- package/src/internal/tool-policy.ts +0 -222
- package/src/internal/tool-result.ts +0 -50
- package/src/internal/trajectory.ts +0 -418
- package/src/internal/turn-cost.ts +0 -136
- package/src/internal/turn-governor.ts +0 -145
- package/src/internal/turn-lease-store.ts +0 -144
- package/src/internal/turn-outbox.ts +0 -77
- package/src/internal/update-check.ts +0 -517
- package/src/internal/v2-hosting.ts +0 -52
- package/src/internal/workspace-sync.ts +0 -114
- package/src/internal/workspace.ts +0 -505
- package/src/kv/memory-kv.ts +0 -94
- package/src/kv.ts +0 -18
- package/src/memory.ts +0 -487
- package/src/otel-public.ts +0 -24
- package/src/otel.ts +0 -320
- package/src/prompt.ts +0 -80
- package/src/reminders.ts +0 -65
- package/src/schedules.ts +0 -31
- package/src/skills.ts +0 -27
- package/src/storage-backends/cursor-hosted-v2.ts +0 -204
- package/src/storage-backends/cursor-hosted.ts +0 -388
- package/src/storage-backends/file-kv.ts +0 -276
- package/src/storage-protocol.ts +0 -261
- package/src/storage.ts +0 -408
- package/src/tools.ts +0 -166
- package/src/types.ts +0 -3776
- /package/dist/docs/assets/{reference_agent-config.md.DzGI777n.lean.js → reference_agent-config.md.Cj5uBKp4.lean.js} +0 -0
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Serves the built Vite playground SPA and the host home page.
|
|
3
|
-
*
|
|
4
|
-
* The playground is a Vite + React app (see `playground/`). `serve` auto-builds
|
|
5
|
-
* `dist/playground/` when the local vite toolchain is present (see
|
|
6
|
-
* `toolchain.ts`); `pnpm run build` also emits it for publish. In `--dev`,
|
|
7
|
-
* Vite HMR is spawned separately; this module only serves the static bundle.
|
|
8
|
-
*
|
|
9
|
-
* The server mounts the SPA at `/playground` (single agent) or
|
|
10
|
-
* `/<slug>/playground` (multi), so the built `index.html` — whose asset URLs
|
|
11
|
-
* are relative — gets a `<base href>` injected to resolve them under the mount.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
15
|
-
import { extname, join, normalize } from "node:path";
|
|
16
|
-
import { fileURLToPath } from "node:url";
|
|
17
|
-
|
|
18
|
-
// src/internal/playground/static.ts -> packages/agent-serve/dist/playground/.
|
|
19
|
-
// Resolves the same from compiled dist/internal/playground/static.js.
|
|
20
|
-
const DIST_DIR = fileURLToPath(new URL("../../../dist/playground/", import.meta.url));
|
|
21
|
-
const INDEX_HTML = join(DIST_DIR, "index.html");
|
|
22
|
-
const ASSETS_DIR = join(DIST_DIR, "assets");
|
|
23
|
-
|
|
24
|
-
/** Content types for the static bundles this server ships (playground, docs). */
|
|
25
|
-
export const STATIC_CONTENT_TYPES: Record<string, string> = {
|
|
26
|
-
".html": "text/html; charset=utf-8",
|
|
27
|
-
".js": "text/javascript; charset=utf-8",
|
|
28
|
-
".md": "text/markdown; charset=utf-8",
|
|
29
|
-
".mjs": "text/javascript; charset=utf-8",
|
|
30
|
-
".css": "text/css; charset=utf-8",
|
|
31
|
-
".map": "application/json; charset=utf-8",
|
|
32
|
-
".json": "application/json; charset=utf-8",
|
|
33
|
-
".svg": "image/svg+xml",
|
|
34
|
-
".png": "image/png",
|
|
35
|
-
".jpg": "image/jpeg",
|
|
36
|
-
".jpeg": "image/jpeg",
|
|
37
|
-
".gif": "image/gif",
|
|
38
|
-
".webp": "image/webp",
|
|
39
|
-
".ico": "image/x-icon",
|
|
40
|
-
".woff": "font/woff",
|
|
41
|
-
".woff2": "font/woff2",
|
|
42
|
-
".ttf": "font/ttf",
|
|
43
|
-
".txt": "text/plain; charset=utf-8",
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
/** Whether `pnpm run build:playground` has produced the SPA bundle. */
|
|
47
|
-
export function playgroundBundleExists(): boolean {
|
|
48
|
-
return existsSync(INDEX_HTML);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* The SPA `index.html` with a `<base href>` injected so its relative asset
|
|
53
|
-
* URLs resolve under the mount point (`/playground/` or `/<slug>/playground/`).
|
|
54
|
-
* Falls back to a helpful placeholder page when the bundle is missing.
|
|
55
|
-
* The hosted alias performs the same injection for its central copy
|
|
56
|
-
* (`backend/server/src/agentServe/aliasPlaygroundShell.ts`) — keep them
|
|
57
|
-
* behaviorally aligned.
|
|
58
|
-
*/
|
|
59
|
-
export function renderPlaygroundIndexHtml(baseHref: string): string {
|
|
60
|
-
if (!playgroundBundleExists()) {
|
|
61
|
-
return fallbackHtml(baseHref);
|
|
62
|
-
}
|
|
63
|
-
const html = readFileSync(INDEX_HTML, "utf8");
|
|
64
|
-
const baseTag = `<base href="${escapeHtml(baseHref)}" />`;
|
|
65
|
-
if (html.includes("<head>")) {
|
|
66
|
-
return html.replace("<head>", `<head>\n ${baseTag}`);
|
|
67
|
-
}
|
|
68
|
-
return `${baseTag}\n${html}`;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/** Serve one built asset from `dist/playground/assets/` by filename. */
|
|
72
|
-
export function renderPlaygroundAsset(file: string): Response {
|
|
73
|
-
// The route captures a single path segment, but normalize + reject anything
|
|
74
|
-
// that escapes the assets dir defensively.
|
|
75
|
-
const safe = normalize(file).replace(/^(\.\.[/\\])+/, "");
|
|
76
|
-
if (safe.includes("/") || safe.includes("\\") || safe === "") {
|
|
77
|
-
return new Response("Not found", { status: 404 });
|
|
78
|
-
}
|
|
79
|
-
const filePath = join(ASSETS_DIR, safe);
|
|
80
|
-
if (!filePath.startsWith(ASSETS_DIR) || !existsSync(filePath)) {
|
|
81
|
-
return new Response("Not found", { status: 404 });
|
|
82
|
-
}
|
|
83
|
-
const body = readFileSync(filePath);
|
|
84
|
-
const type = STATIC_CONTENT_TYPES[extname(safe).toLowerCase()] ?? "application/octet-stream";
|
|
85
|
-
return new Response(new Uint8Array(body), {
|
|
86
|
-
headers: {
|
|
87
|
-
"content-type": type,
|
|
88
|
-
// Vite emits content-hashed filenames, so they are safe to cache hard.
|
|
89
|
-
"cache-control": "public, max-age=31536000, immutable",
|
|
90
|
-
},
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/** Slack surface summary for the host home / `GET /v1/agents`. */
|
|
95
|
-
export type AgentIndexSlack = { kind: "socket" };
|
|
96
|
-
|
|
97
|
-
/** One row on the host home page and `GET /v1/agents`. */
|
|
98
|
-
export interface AgentIndexEntry {
|
|
99
|
-
slug: string;
|
|
100
|
-
name: string;
|
|
101
|
-
model: string;
|
|
102
|
-
tools: number;
|
|
103
|
-
channels: number;
|
|
104
|
-
slack?: AgentIndexSlack;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export interface HostHomeOptions {
|
|
108
|
-
/** When false, omit `/docs` from the route list. Default true. */
|
|
109
|
-
docs?: boolean;
|
|
110
|
-
/** Same as the serve host's `multi` — mounts `/v1/agents` + host `/v1/health`. */
|
|
111
|
-
multi?: boolean;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Orienting `/` page: mounted agents (playground links) plus live host routes.
|
|
116
|
-
* Used for both single-agent (empty slug) and multi-agent mounts.
|
|
117
|
-
*/
|
|
118
|
-
export function renderAgentsIndexHtml(
|
|
119
|
-
agents: AgentIndexEntry[],
|
|
120
|
-
options: HostHomeOptions = {},
|
|
121
|
-
): string {
|
|
122
|
-
const docs = options.docs !== false;
|
|
123
|
-
const multi = options.multi === true;
|
|
124
|
-
const cards = agents
|
|
125
|
-
.map(agent => {
|
|
126
|
-
const playground = agent.slug === "" ? "/playground" : `/${agent.slug}/playground`;
|
|
127
|
-
const slugLabel = agent.slug === "" ? "/" : `/${agent.slug}`;
|
|
128
|
-
const meta = `${agent.model || "—"} · ${agent.tools} tool${
|
|
129
|
-
agent.tools === 1 ? "" : "s"
|
|
130
|
-
} · ${agent.channels} channel${agent.channels === 1 ? "" : "s"}`;
|
|
131
|
-
return ` <a class="card" href="${escapeHtml(playground)}">
|
|
132
|
-
<div class="card-name">${escapeHtml(agent.name)}</div>
|
|
133
|
-
<div class="card-slug">${escapeHtml(slugLabel)} → playground</div>
|
|
134
|
-
<div class="card-meta">${escapeHtml(meta)}</div>
|
|
135
|
-
</a>`;
|
|
136
|
-
})
|
|
137
|
-
.join("\n");
|
|
138
|
-
|
|
139
|
-
const routes = hostRouteRows(agents, docs, multi)
|
|
140
|
-
.map(
|
|
141
|
-
row =>
|
|
142
|
-
` <tr><td><a href="${escapeHtml(row.href)}"><code>${escapeHtml(row.path)}</code></a></td><td>${escapeHtml(row.blurb)}</td></tr>`,
|
|
143
|
-
)
|
|
144
|
-
.join("\n");
|
|
145
|
-
|
|
146
|
-
return HOST_HOME_TEMPLATE.replace(
|
|
147
|
-
"<!--CARDS-->",
|
|
148
|
-
cards || ' <div class="card-meta">No agents mounted.</div>',
|
|
149
|
-
)
|
|
150
|
-
.replace("<!--COUNT-->", String(agents.length))
|
|
151
|
-
.replace("<!--ROUTES-->", routes);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
function hostRouteRows(
|
|
155
|
-
agents: AgentIndexEntry[],
|
|
156
|
-
docs: boolean,
|
|
157
|
-
multi: boolean,
|
|
158
|
-
): Array<{ path: string; href: string; blurb: string }> {
|
|
159
|
-
const rows: Array<{ path: string; href: string; blurb: string }> = [
|
|
160
|
-
{ path: "/", href: "/", blurb: "This page" },
|
|
161
|
-
];
|
|
162
|
-
for (const agent of agents) {
|
|
163
|
-
const base = agent.slug === "" ? "" : `/${agent.slug}`;
|
|
164
|
-
const label = agent.slug === "" ? agent.name : agent.slug;
|
|
165
|
-
rows.push({
|
|
166
|
-
path: `${base}/playground`,
|
|
167
|
-
href: `${base}/playground`,
|
|
168
|
-
blurb: `Playground — ${label}`,
|
|
169
|
-
});
|
|
170
|
-
rows.push({
|
|
171
|
-
path: `${base}/v1/health`,
|
|
172
|
-
href: `${base}/v1/health`,
|
|
173
|
-
blurb: `Health — ${label}`,
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
if (multi) {
|
|
177
|
-
rows.push({
|
|
178
|
-
path: "/v1/agents",
|
|
179
|
-
href: "/v1/agents",
|
|
180
|
-
blurb: "JSON index of mounted agents",
|
|
181
|
-
});
|
|
182
|
-
rows.push({
|
|
183
|
-
path: "/v1/health",
|
|
184
|
-
href: "/v1/health",
|
|
185
|
-
blurb: "Host liveness",
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
if (docs) {
|
|
189
|
-
rows.push({
|
|
190
|
-
path: "/docs",
|
|
191
|
-
href: "/docs/",
|
|
192
|
-
blurb: "Agent SDK documentation",
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
return rows;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
function escapeHtml(value: string): string {
|
|
199
|
-
return value
|
|
200
|
-
.replace(/&/g, "&")
|
|
201
|
-
.replace(/</g, "<")
|
|
202
|
-
.replace(/>/g, ">")
|
|
203
|
-
.replace(/"/g, """);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
function fallbackHtml(baseHref: string): string {
|
|
207
|
-
return `<!doctype html>
|
|
208
|
-
<html lang="en">
|
|
209
|
-
<head>
|
|
210
|
-
<base href="${escapeHtml(baseHref)}" />
|
|
211
|
-
<meta charset="utf-8" />
|
|
212
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
213
|
-
<title>agent-sdk playground</title>
|
|
214
|
-
<style>
|
|
215
|
-
body { margin: 0; background: #0e1116; color: #e6edf3; font: 14px/1.6 ui-sans-serif, system-ui, sans-serif; }
|
|
216
|
-
.box { max-width: 640px; margin: 64px auto; padding: 0 24px; }
|
|
217
|
-
code { background: #1b212b; padding: 2px 6px; border-radius: 6px; font-family: ui-monospace, monospace; }
|
|
218
|
-
h1 { font-size: 18px; }
|
|
219
|
-
a { color: #6cb6ff; }
|
|
220
|
-
</style>
|
|
221
|
-
</head>
|
|
222
|
-
<body>
|
|
223
|
-
<div class="box">
|
|
224
|
-
<h1>Playground bundle not built</h1>
|
|
225
|
-
<p>
|
|
226
|
-
The Vite playground has not been built yet. <code>agent-sdk serve</code>
|
|
227
|
-
auto-builds it when the local vite toolchain is available; otherwise run
|
|
228
|
-
<code>pnpm run build:playground</code> from <code>packages/agent-serve</code>,
|
|
229
|
-
or <code>pnpm run dev:playground</code> for Vite HMR.
|
|
230
|
-
</p>
|
|
231
|
-
</div>
|
|
232
|
-
</body>
|
|
233
|
-
</html>`;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
const HOST_HOME_TEMPLATE = `<!doctype html>
|
|
237
|
-
<html lang="en">
|
|
238
|
-
<head>
|
|
239
|
-
<meta charset="utf-8" />
|
|
240
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
241
|
-
<title>Agent SDK</title>
|
|
242
|
-
<style>
|
|
243
|
-
:root { color-scheme: dark; }
|
|
244
|
-
body { margin: 0; background: #0e1116; color: #e6edf3; font: 14px/1.6 ui-sans-serif, system-ui, -apple-system, sans-serif; }
|
|
245
|
-
.wrap { max-width: 880px; margin: 0 auto; padding: 48px 24px; }
|
|
246
|
-
h1 { font-size: 20px; font-weight: 650; margin: 0 0 2px; }
|
|
247
|
-
h2 { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #8b949e; margin: 36px 0 12px; }
|
|
248
|
-
.sub { color: #8b949e; font-size: 13px; margin-bottom: 28px; }
|
|
249
|
-
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
|
|
250
|
-
.card { display: block; text-decoration: none; color: inherit; background: #161b22; border: 1px solid #30363d; border-radius: 12px; padding: 16px 18px; transition: border-color 0.12s; }
|
|
251
|
-
.card:hover { border-color: #6cb6ff; }
|
|
252
|
-
.card-name { font-size: 15px; font-weight: 600; }
|
|
253
|
-
.card-slug { font-family: ui-monospace, monospace; font-size: 12px; color: #6cb6ff; margin-top: 2px; }
|
|
254
|
-
.card-meta { color: #6e7681; font-size: 12px; margin-top: 10px; }
|
|
255
|
-
table.routes { width: 100%; border-collapse: collapse; font-size: 13px; }
|
|
256
|
-
table.routes td { padding: 8px 0; border-bottom: 1px solid #21262d; vertical-align: top; }
|
|
257
|
-
table.routes td:first-child { width: 42%; padding-right: 16px; }
|
|
258
|
-
table.routes code { font-family: ui-monospace, monospace; font-size: 12px; color: #6cb6ff; }
|
|
259
|
-
table.routes a { text-decoration: none; }
|
|
260
|
-
table.routes a:hover code { text-decoration: underline; }
|
|
261
|
-
.muted { color: #8b949e; }
|
|
262
|
-
</style>
|
|
263
|
-
</head>
|
|
264
|
-
<body>
|
|
265
|
-
<div class="wrap">
|
|
266
|
-
<h1>Agent SDK</h1>
|
|
267
|
-
<div class="sub"><!--COUNT--> agent(s) on this host. Open a playground or use a route below.</div>
|
|
268
|
-
<h2>Agents</h2>
|
|
269
|
-
<div class="grid">
|
|
270
|
-
<!--CARDS-->
|
|
271
|
-
</div>
|
|
272
|
-
<h2>Routes</h2>
|
|
273
|
-
<table class="routes">
|
|
274
|
-
<!--ROUTES-->
|
|
275
|
-
</table>
|
|
276
|
-
</div>
|
|
277
|
-
</body>
|
|
278
|
-
</html>`;
|
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Local Vite toolchain for the playground SPA.
|
|
3
|
-
*
|
|
4
|
-
* Published installs ship `dist/playground/` and do not need this — vite is a
|
|
5
|
-
* devDependency and `playground/` sources may be absent. In a monorepo / source
|
|
6
|
-
* checkout, `serve` uses this to auto-build a missing bundle and (with `--dev`)
|
|
7
|
-
* spawn the Vite HMR server.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { spawn } from "node:child_process";
|
|
11
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
12
|
-
import { createRequire } from "node:module";
|
|
13
|
-
import { dirname, join } from "node:path";
|
|
14
|
-
import { fileURLToPath } from "node:url";
|
|
15
|
-
import { playgroundBundleExists } from "./static.js";
|
|
16
|
-
|
|
17
|
-
const VITE_CONFIG = "playground/vite.config.ts";
|
|
18
|
-
|
|
19
|
-
/** Package root (works from `src/` or `dist/`). */
|
|
20
|
-
export function packageRoot(): string {
|
|
21
|
-
// src|dist/internal/playground/toolchain.ts → packages/agent-serve/
|
|
22
|
-
return fileURLToPath(new URL("../../..", import.meta.url));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface PlaygroundToolchain {
|
|
26
|
-
packageRoot: string;
|
|
27
|
-
viteCli: string;
|
|
28
|
-
viteConfig: string;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/** Resolve the absolute path to vite's CLI bin without using blocked package exports. */
|
|
32
|
-
function resolveViteCli(root: string): string | undefined {
|
|
33
|
-
try {
|
|
34
|
-
const require = createRequire(join(root, "package.json"));
|
|
35
|
-
let dir = dirname(require.resolve("vite"));
|
|
36
|
-
for (let i = 0; i < 6; i++) {
|
|
37
|
-
const pkgPath = join(dir, "package.json");
|
|
38
|
-
if (existsSync(pkgPath)) {
|
|
39
|
-
const pkg = JSON.parse(readFileSync(pkgPath, "utf8")) as {
|
|
40
|
-
name?: string;
|
|
41
|
-
bin?: string | Record<string, string>;
|
|
42
|
-
};
|
|
43
|
-
if (pkg.name === "vite") {
|
|
44
|
-
const binRel = typeof pkg.bin === "string" ? pkg.bin : (pkg.bin?.vite ?? "bin/vite.js");
|
|
45
|
-
const binAbs = join(dir, binRel);
|
|
46
|
-
return existsSync(binAbs) ? binAbs : undefined;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
const parent = dirname(dir);
|
|
50
|
-
if (parent === dir) {
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
dir = parent;
|
|
54
|
-
}
|
|
55
|
-
} catch {
|
|
56
|
-
return undefined;
|
|
57
|
-
}
|
|
58
|
-
return undefined;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/** True when playground sources + a resolvable `vite` CLI are present. */
|
|
62
|
-
export function resolvePlaygroundToolchain(): PlaygroundToolchain | undefined {
|
|
63
|
-
const root = packageRoot();
|
|
64
|
-
const viteConfig = join(root, VITE_CONFIG);
|
|
65
|
-
if (!existsSync(viteConfig)) {
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
const viteCli = resolveViteCli(root);
|
|
69
|
-
if (viteCli === undefined) {
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
return { packageRoot: root, viteCli, viteConfig };
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export function playgroundToolchainAvailable(): boolean {
|
|
76
|
-
return resolvePlaygroundToolchain() !== undefined;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* `AGENT_SERVE_BASE` for the Vite proxy when serving a single slugged agent.
|
|
81
|
-
* Multi-agent serve uses path-based HMR (`/<slug>/playground`) unless the
|
|
82
|
-
* caller pins one slug via {@link playgroundDevBaseFromEnv}.
|
|
83
|
-
*/
|
|
84
|
-
export function playgroundDevBasePath(mounts: ReadonlyArray<{ slug: string }>): string | undefined {
|
|
85
|
-
if (mounts.length === 1 && mounts[0]?.slug !== "") {
|
|
86
|
-
return `/${mounts[0].slug}`;
|
|
87
|
-
}
|
|
88
|
-
return undefined;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Optional pin for multi-agent Vite HMR (SPA at root, rewrite `/v1` → base).
|
|
93
|
-
* Empty / unset → multi-agent path mode (`AGENT_SERVE_MULTI`).
|
|
94
|
-
*/
|
|
95
|
-
export function playgroundDevBaseFromEnv(env: NodeJS.ProcessEnv = process.env): string | undefined {
|
|
96
|
-
const raw = env.AGENT_SERVE_BASE?.trim();
|
|
97
|
-
if (raw === undefined || raw === "") {
|
|
98
|
-
return undefined;
|
|
99
|
-
}
|
|
100
|
-
const normalized = raw.replace(/\/+$/, "");
|
|
101
|
-
if (normalized === "" || normalized === "/") {
|
|
102
|
-
return undefined;
|
|
103
|
-
}
|
|
104
|
-
return normalized.startsWith("/") ? normalized : `/${normalized}`;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/** Run `vite build` for the playground; throws on non-zero exit. */
|
|
108
|
-
export async function runPlaygroundBuild(
|
|
109
|
-
logger: (line: string) => void = console.log,
|
|
110
|
-
): Promise<void> {
|
|
111
|
-
const toolchain = resolvePlaygroundToolchain();
|
|
112
|
-
if (toolchain === undefined) {
|
|
113
|
-
throw new Error(
|
|
114
|
-
"playground vite toolchain unavailable (need playground/ sources and the vite package)",
|
|
115
|
-
);
|
|
116
|
-
}
|
|
117
|
-
logger("[agent-sdk] building playground (vite)...");
|
|
118
|
-
const code = await spawnVite(toolchain, ["build", "--config", VITE_CONFIG], {
|
|
119
|
-
env: process.env,
|
|
120
|
-
});
|
|
121
|
-
if (code !== 0) {
|
|
122
|
-
throw new Error(`playground vite build failed (exit ${code})`);
|
|
123
|
-
}
|
|
124
|
-
if (!playgroundBundleExists()) {
|
|
125
|
-
throw new Error("playground vite build finished but dist/playground/index.html is missing");
|
|
126
|
-
}
|
|
127
|
-
logger("[agent-sdk] playground build complete");
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* If the SPA bundle is missing and the local toolchain is available, build it.
|
|
132
|
-
* No-op when the bundle already exists. Soft-skips (logs) when vite is absent
|
|
133
|
-
* so published installs without a prebuilt bundle still start.
|
|
134
|
-
*/
|
|
135
|
-
export async function ensurePlaygroundBundle(
|
|
136
|
-
logger: (line: string) => void = console.log,
|
|
137
|
-
): Promise<void> {
|
|
138
|
-
if (playgroundBundleExists()) {
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
if (resolvePlaygroundToolchain() === undefined) {
|
|
142
|
-
logger(
|
|
143
|
-
"[agent-sdk] playground bundle missing and vite toolchain unavailable; /playground will show a build hint",
|
|
144
|
-
);
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
await runPlaygroundBuild(logger);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
export interface PlaygroundDevServer {
|
|
151
|
-
url: string;
|
|
152
|
-
stop(): void;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Spawn Vite HMR for the playground, proxying API calls at {@link targetUrl}.
|
|
157
|
-
* Multi-agent mode serves `/<slug>/playground` + the agents index at `/`.
|
|
158
|
-
* Returns undefined when the toolchain is unavailable.
|
|
159
|
-
*/
|
|
160
|
-
export function startPlaygroundDevServer(options: {
|
|
161
|
-
targetUrl: string;
|
|
162
|
-
basePath?: string;
|
|
163
|
-
/** Path-based multi-agent HMR (no single-slug `/v1` rewrite). */
|
|
164
|
-
multiAgent?: boolean;
|
|
165
|
-
logger?: (line: string) => void;
|
|
166
|
-
}): PlaygroundDevServer | undefined {
|
|
167
|
-
const logger = options.logger ?? console.log;
|
|
168
|
-
const toolchain = resolvePlaygroundToolchain();
|
|
169
|
-
if (toolchain === undefined) {
|
|
170
|
-
return undefined;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
const port = playgroundDevPort();
|
|
174
|
-
const multiAgent = options.multiAgent === true;
|
|
175
|
-
const env: NodeJS.ProcessEnv = {
|
|
176
|
-
...process.env,
|
|
177
|
-
AGENT_SERVE_PLAYGROUND_PORT: String(port),
|
|
178
|
-
AGENT_SERVE_TARGET: options.targetUrl,
|
|
179
|
-
};
|
|
180
|
-
if (multiAgent) {
|
|
181
|
-
env.AGENT_SERVE_MULTI = "1";
|
|
182
|
-
delete env.AGENT_SERVE_BASE;
|
|
183
|
-
} else {
|
|
184
|
-
delete env.AGENT_SERVE_MULTI;
|
|
185
|
-
if (options.basePath !== undefined && options.basePath !== "") {
|
|
186
|
-
env.AGENT_SERVE_BASE = options.basePath;
|
|
187
|
-
} else {
|
|
188
|
-
delete env.AGENT_SERVE_BASE;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
// Quiet + isolated from the TTY: the serve banner owns the terminal.
|
|
193
|
-
// Piped stdio keeps Vite from seeing a TTY (so it cannot clearScreen), and
|
|
194
|
-
// silent logging drops the "VITE ready" / URL spam. Errors still surface via
|
|
195
|
-
// spawn/exit handlers below.
|
|
196
|
-
const child = spawn(
|
|
197
|
-
process.execPath,
|
|
198
|
-
[toolchain.viteCli, "--config", VITE_CONFIG, "--logLevel", "silent"],
|
|
199
|
-
{
|
|
200
|
-
cwd: toolchain.packageRoot,
|
|
201
|
-
env,
|
|
202
|
-
stdio: ["ignore", "ignore", "pipe"],
|
|
203
|
-
},
|
|
204
|
-
);
|
|
205
|
-
|
|
206
|
-
child.stderr?.on("data", (chunk: Buffer) => {
|
|
207
|
-
const text = chunk.toString().trimEnd();
|
|
208
|
-
if (text !== "") {
|
|
209
|
-
logger(`[agent-sdk] playground: ${text}`);
|
|
210
|
-
}
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
let stopped = false;
|
|
214
|
-
child.on("error", err => {
|
|
215
|
-
if (stopped) {
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
logger(
|
|
219
|
-
`[agent-sdk] playground spawn failed: ${err.message} — static /playground still served when built`,
|
|
220
|
-
);
|
|
221
|
-
});
|
|
222
|
-
child.on("exit", (code, signal) => {
|
|
223
|
-
if (stopped) {
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
if (code !== 0 && code !== null) {
|
|
227
|
-
logger(
|
|
228
|
-
`[agent-sdk] playground exited (code ${code}${
|
|
229
|
-
signal ? `, signal ${signal}` : ""
|
|
230
|
-
}) — static /playground still served when built`,
|
|
231
|
-
);
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
return {
|
|
236
|
-
url: `http://127.0.0.1:${port}/`,
|
|
237
|
-
stop: () => {
|
|
238
|
-
stopped = true;
|
|
239
|
-
if (!child.killed) {
|
|
240
|
-
child.kill("SIGTERM");
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
export function playgroundDevPort(): number {
|
|
247
|
-
const parsed = Number(process.env.AGENT_SERVE_PLAYGROUND_PORT ?? "5273");
|
|
248
|
-
if (!Number.isInteger(parsed) || parsed <= 0 || parsed > 65535) {
|
|
249
|
-
return 5273;
|
|
250
|
-
}
|
|
251
|
-
return parsed;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
function spawnVite(
|
|
255
|
-
toolchain: PlaygroundToolchain,
|
|
256
|
-
args: string[],
|
|
257
|
-
options: { env: NodeJS.ProcessEnv },
|
|
258
|
-
): Promise<number> {
|
|
259
|
-
return new Promise((resolve, reject) => {
|
|
260
|
-
const child = spawn(process.execPath, [toolchain.viteCli, ...args], {
|
|
261
|
-
cwd: toolchain.packageRoot,
|
|
262
|
-
env: options.env,
|
|
263
|
-
stdio: "inherit",
|
|
264
|
-
});
|
|
265
|
-
child.on("error", reject);
|
|
266
|
-
child.on("exit", code => {
|
|
267
|
-
resolve(code ?? 1);
|
|
268
|
-
});
|
|
269
|
-
});
|
|
270
|
-
}
|