@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,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `agent/storage.ts`, `agent/otel.ts`, `agent/artifacts.ts`:
|
|
3
|
-
* host services the agent configures.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { join } from "node:path";
|
|
7
|
-
import { defineArtifacts } from "../../artifacts.js";
|
|
8
|
-
import type { OtelDefinition } from "../../otel.js";
|
|
9
|
-
import type { StorageDefinition } from "../../storage.js";
|
|
10
|
-
import type { AgentArchitecture, ArtifactsDefinition, ResolvedAgent } from "../../types.js";
|
|
11
|
-
import { artifactBuiltinTool, TAG_ARTIFACT_TOOL_NAME } from "../builtin-tools/index.js";
|
|
12
|
-
import { type DiscoveryContext, displayPath } from "./context.js";
|
|
13
|
-
import { findModuleFile } from "./fs.js";
|
|
14
|
-
import { importDefault } from "./modules.js";
|
|
15
|
-
|
|
16
|
-
export async function loadStorage(
|
|
17
|
-
ctx: DiscoveryContext,
|
|
18
|
-
agentDir: string,
|
|
19
|
-
architecture: AgentArchitecture | undefined,
|
|
20
|
-
): Promise<StorageDefinition | undefined> {
|
|
21
|
-
const path = await findModuleFile(agentDir, "storage");
|
|
22
|
-
if (path === undefined) {
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
if (architecture === "v2") {
|
|
26
|
-
// Storage is a hosting-mode decision on v2, made by
|
|
27
|
-
// framework-storage-selection.ts: the state root when self-hosted,
|
|
28
|
-
// Cursor-managed storage on Cursor hosting. Fail early (error
|
|
29
|
-
// diagnostics refuse serve and deploy) rather than silently running
|
|
30
|
-
// with storage the author believes they configured. Not imported.
|
|
31
|
-
ctx.diagnostics.push({
|
|
32
|
-
severity: "error",
|
|
33
|
-
path: displayPath(ctx, path),
|
|
34
|
-
message:
|
|
35
|
-
'defineStorage is not supported on architecture "v2": the platform selects storage (the local state root when self-hosted; Cursor-managed storage on Cursor hosting). Delete the file.',
|
|
36
|
-
});
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
39
|
-
// v1 keeps loading the authored sink, with notice: defineStorage is going
|
|
40
|
-
// away with the v1 control plane.
|
|
41
|
-
ctx.diagnostics.push({
|
|
42
|
-
severity: "warning",
|
|
43
|
-
path: displayPath(ctx, path),
|
|
44
|
-
message:
|
|
45
|
-
'defineStorage is deprecated and going away: architecture "v2" selects storage automatically (the local state root when self-hosted; Cursor-managed storage on Cursor hosting). Still honored on v1.',
|
|
46
|
-
});
|
|
47
|
-
const definition = await importDefault(ctx, path, "storage");
|
|
48
|
-
return definition as StorageDefinition | undefined;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export async function loadOtel(
|
|
52
|
-
ctx: DiscoveryContext,
|
|
53
|
-
agentDir: string,
|
|
54
|
-
): Promise<OtelDefinition | undefined> {
|
|
55
|
-
const path = await findModuleFile(agentDir, "otel");
|
|
56
|
-
if (path === undefined) {
|
|
57
|
-
return undefined;
|
|
58
|
-
}
|
|
59
|
-
const definition = await importDefault(ctx, path, "otel");
|
|
60
|
-
return definition as OtelDefinition | undefined;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export async function loadArtifacts(
|
|
64
|
-
ctx: DiscoveryContext,
|
|
65
|
-
agentDir: string,
|
|
66
|
-
): Promise<ArtifactsDefinition | undefined> {
|
|
67
|
-
const path = await findModuleFile(agentDir, "artifacts");
|
|
68
|
-
if (path === undefined) {
|
|
69
|
-
return undefined;
|
|
70
|
-
}
|
|
71
|
-
const imported = await importDefault(ctx, path, "artifacts");
|
|
72
|
-
if (imported === undefined) {
|
|
73
|
-
return undefined;
|
|
74
|
-
}
|
|
75
|
-
const definition = imported as ArtifactsDefinition;
|
|
76
|
-
if (definition.agentTool === true && Object.keys(definition.kinds ?? {}).length === 0) {
|
|
77
|
-
ctx.diagnostics.push({
|
|
78
|
-
severity: "error",
|
|
79
|
-
path: displayPath(ctx, path),
|
|
80
|
-
message:
|
|
81
|
-
"artifacts.agentTool requires kinds: the tag_artifact tool needs at least one declared kind; its descriptions are the tool prompt.",
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
return definition;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* `defineResult` / `agent/result.ts` is gone. A leftover file is an
|
|
89
|
-
* authoring error so discovery fails closed instead of silently ignoring
|
|
90
|
-
* host actuation that no longer runs.
|
|
91
|
-
*/
|
|
92
|
-
export async function rejectLegacyResult(ctx: DiscoveryContext, agentDir: string): Promise<void> {
|
|
93
|
-
const path = await findModuleFile(agentDir, "result");
|
|
94
|
-
if (path === undefined) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
ctx.diagnostics.push({
|
|
98
|
-
severity: "error",
|
|
99
|
-
path: displayPath(ctx, path),
|
|
100
|
-
message:
|
|
101
|
-
"agent/result.ts is no longer supported; defineResult has been removed. Record structured output with an authored tool and actuate from a turn.completed hook.",
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/** Merge namespaced extension kinds onto the agent's artifacts registry. */
|
|
106
|
-
export function mergeArtifacts(
|
|
107
|
-
agent: ArtifactsDefinition | undefined,
|
|
108
|
-
extra: ArtifactsDefinition | undefined,
|
|
109
|
-
): ArtifactsDefinition | undefined {
|
|
110
|
-
if (extra === undefined) {
|
|
111
|
-
return agent;
|
|
112
|
-
}
|
|
113
|
-
if (agent === undefined) {
|
|
114
|
-
return extra;
|
|
115
|
-
}
|
|
116
|
-
return defineArtifacts({
|
|
117
|
-
kinds: { ...agent.kinds, ...extra.kinds },
|
|
118
|
-
agentTool: agent.agentTool === true || extra.agentTool === true,
|
|
119
|
-
max: agent.max ?? extra.max,
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Materialize the `tag_artifact` built-in when `defineArtifacts` set
|
|
125
|
-
* `agentTool: true`. Appended after `loadAgent` because the tool is
|
|
126
|
-
* generated from the artifacts kinds registry, not `AgentConfig.builtinTools`.
|
|
127
|
-
*/
|
|
128
|
-
export async function appendArtifactTool(
|
|
129
|
-
ctx: DiscoveryContext,
|
|
130
|
-
agentDir: string,
|
|
131
|
-
agent: ResolvedAgent,
|
|
132
|
-
artifacts: ArtifactsDefinition | undefined,
|
|
133
|
-
): Promise<void> {
|
|
134
|
-
const tool = artifactBuiltinTool(artifacts);
|
|
135
|
-
if (tool === undefined) {
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
const artifactsPath = displayPath(
|
|
139
|
-
ctx,
|
|
140
|
-
(await findModuleFile(agentDir, "artifacts")) ?? join(agentDir, "artifacts.ts"),
|
|
141
|
-
);
|
|
142
|
-
if (agent.tools.some(t => t.name === TAG_ARTIFACT_TOOL_NAME)) {
|
|
143
|
-
ctx.diagnostics.push({
|
|
144
|
-
severity: "warning",
|
|
145
|
-
path: artifactsPath,
|
|
146
|
-
message: `Authored tool "${TAG_ARTIFACT_TOOL_NAME}" shadows the built-in tool of the same name; the authored tool wins.`,
|
|
147
|
-
});
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
agent.tools.push(tool);
|
|
151
|
-
}
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `agent/skills/*`: markdown, packaged, and `defineSkill` skills.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { readFile } from "node:fs/promises";
|
|
6
|
-
import { join, relative } from "node:path";
|
|
7
|
-
import type {
|
|
8
|
-
DiscoveredSkill,
|
|
9
|
-
SkillConfig,
|
|
10
|
-
SkillDefinition,
|
|
11
|
-
SkillFileSource,
|
|
12
|
-
} from "../../types.js";
|
|
13
|
-
import { getDefinitionKind } from "../brand.js";
|
|
14
|
-
import { parseFrontmatter } from "../frontmatter.js";
|
|
15
|
-
import { type DiscoveryContext, displayPath, isBlank } from "./context.js";
|
|
16
|
-
import {
|
|
17
|
-
isDirectory,
|
|
18
|
-
isFile,
|
|
19
|
-
isModuleFile,
|
|
20
|
-
moduleStem,
|
|
21
|
-
sortedEntries,
|
|
22
|
-
toPosix,
|
|
23
|
-
walkFiles,
|
|
24
|
-
} from "./fs.js";
|
|
25
|
-
import { importDefault } from "./modules.js";
|
|
26
|
-
import { validateName } from "./names.js";
|
|
27
|
-
|
|
28
|
-
/** Declared frontmatter, else the body's first line, else a generic line. */
|
|
29
|
-
export function skillDescription(name: string, declared: string | undefined, body: string): string {
|
|
30
|
-
return declared ?? deriveSkillDescription(body) ?? `Instructions for the ${name} skill.`;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/** A packaged skill's sibling files, keyed by path relative to the skill dir. */
|
|
34
|
-
export async function skillFiles(skillDir: string): Promise<Record<string, SkillFileSource>> {
|
|
35
|
-
const files: Record<string, SkillFileSource> = {};
|
|
36
|
-
for (const filePath of await walkFiles(skillDir)) {
|
|
37
|
-
const rel = toPosix(relative(skillDir, filePath));
|
|
38
|
-
if (rel !== "SKILL.md") {
|
|
39
|
-
files[rel] = { sourcePath: filePath };
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return files;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export async function loadSkills(
|
|
46
|
-
ctx: DiscoveryContext,
|
|
47
|
-
skillsDir: string,
|
|
48
|
-
onDisable?: (name: string, path: string) => void,
|
|
49
|
-
): Promise<DiscoveredSkill[]> {
|
|
50
|
-
if (!(await isDirectory(skillsDir))) {
|
|
51
|
-
return [];
|
|
52
|
-
}
|
|
53
|
-
const skills: DiscoveredSkill[] = [];
|
|
54
|
-
for (const entry of await sortedEntries(skillsDir)) {
|
|
55
|
-
const entryPath = join(skillsDir, entry.name);
|
|
56
|
-
if (entry.isDirectory()) {
|
|
57
|
-
const skill = await loadPackagedSkill(ctx, entryPath, entry.name);
|
|
58
|
-
if (skill !== undefined) {
|
|
59
|
-
skills.push(skill);
|
|
60
|
-
}
|
|
61
|
-
continue;
|
|
62
|
-
}
|
|
63
|
-
if (!entry.isFile()) {
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
if (entry.name.endsWith(".md")) {
|
|
67
|
-
const name = entry.name.slice(0, -".md".length);
|
|
68
|
-
if (!validateName(ctx, "skill", name, entryPath)) {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
const { data, body } = parseFrontmatter(await readFile(entryPath, "utf8"));
|
|
72
|
-
skills.push({
|
|
73
|
-
name,
|
|
74
|
-
description: skillDescription(name, data.description, body),
|
|
75
|
-
markdown: body.trim(),
|
|
76
|
-
files: {},
|
|
77
|
-
});
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
if (isModuleFile(entry.name)) {
|
|
81
|
-
const name = moduleStem(entry.name);
|
|
82
|
-
if (!validateName(ctx, "skill", name, entryPath)) {
|
|
83
|
-
continue;
|
|
84
|
-
}
|
|
85
|
-
const definition = await importDefault(
|
|
86
|
-
ctx,
|
|
87
|
-
entryPath,
|
|
88
|
-
onDisable === undefined ? "skill" : ["skill", "disabled"],
|
|
89
|
-
);
|
|
90
|
-
if (definition === undefined) {
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
if (getDefinitionKind(definition) === "disabled") {
|
|
94
|
-
onDisable?.(name, entryPath);
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
skills.push(compileSkill(name, definition as SkillDefinition));
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return skills;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/** A skill whose body and sibling files are in memory (`defineSkill`, extensions). */
|
|
104
|
-
function compileSkill(name: string, skill: SkillConfig): DiscoveredSkill {
|
|
105
|
-
const files: Record<string, SkillFileSource> = {};
|
|
106
|
-
for (const [rel, contents] of Object.entries(skill.files ?? {})) {
|
|
107
|
-
files[rel] = { contents };
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
name,
|
|
111
|
-
description: skillDescription(name, skill.description, skill.markdown),
|
|
112
|
-
markdown: skill.markdown.trim(),
|
|
113
|
-
files,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
async function loadPackagedSkill(
|
|
118
|
-
ctx: DiscoveryContext,
|
|
119
|
-
skillDir: string,
|
|
120
|
-
name: string,
|
|
121
|
-
): Promise<DiscoveredSkill | undefined> {
|
|
122
|
-
const skillMdPath = join(skillDir, "SKILL.md");
|
|
123
|
-
if (!(await isFile(skillMdPath))) {
|
|
124
|
-
ctx.diagnostics.push({
|
|
125
|
-
severity: "warning",
|
|
126
|
-
path: displayPath(ctx, skillDir),
|
|
127
|
-
message: "Skill directories must contain a SKILL.md; ignoring.",
|
|
128
|
-
});
|
|
129
|
-
return undefined;
|
|
130
|
-
}
|
|
131
|
-
if (!validateName(ctx, "skill", name, skillDir)) {
|
|
132
|
-
return undefined;
|
|
133
|
-
}
|
|
134
|
-
const { data, body } = parseFrontmatter(await readFile(skillMdPath, "utf8"));
|
|
135
|
-
if (data.description === undefined || isBlank(data.description)) {
|
|
136
|
-
ctx.diagnostics.push({
|
|
137
|
-
severity: "error",
|
|
138
|
-
path: displayPath(ctx, skillMdPath),
|
|
139
|
-
message:
|
|
140
|
-
"Packaged skills require `description` frontmatter in SKILL.md (there is no filename slug to fall back on).",
|
|
141
|
-
});
|
|
142
|
-
return undefined;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
return {
|
|
146
|
-
name,
|
|
147
|
-
description: data.description,
|
|
148
|
-
markdown: body.trim(),
|
|
149
|
-
files: await skillFiles(skillDir),
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Advertise the first non-empty, non-code-fence line of the body, with any
|
|
155
|
-
* leading `#`, `>`, `*`, or `-` markers stripped.
|
|
156
|
-
*/
|
|
157
|
-
function deriveSkillDescription(markdown: string): string | undefined {
|
|
158
|
-
let inFence = false;
|
|
159
|
-
for (const rawLine of markdown.split(/\r?\n/)) {
|
|
160
|
-
const line = rawLine.trim();
|
|
161
|
-
if (line.startsWith("```")) {
|
|
162
|
-
inFence = !inFence;
|
|
163
|
-
continue;
|
|
164
|
-
}
|
|
165
|
-
if (inFence || line === "") {
|
|
166
|
-
continue;
|
|
167
|
-
}
|
|
168
|
-
const stripped = line.replace(/^[#>*\s-]+/, "").trim();
|
|
169
|
-
if (stripped !== "") {
|
|
170
|
-
return stripped.length > 200 ? `${stripped.slice(0, 197)}...` : stripped;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
return undefined;
|
|
174
|
-
}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A subagent as the Cursor harness runs it: description, model, and prompt. Its other slots are inert.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { join } from "node:path";
|
|
6
|
-
import type { ModelSetting, ResolvedAgent } from "../../types.js";
|
|
7
|
-
import { withIdentityPreamble } from "../workspace.js";
|
|
8
|
-
import { loadAgentConfig } from "./agent-config.js";
|
|
9
|
-
import { type DiscoveryContext, displayPath } from "./context.js";
|
|
10
|
-
import { findModuleFile, isDirectory, sortedEntries } from "./fs.js";
|
|
11
|
-
import { loadInstructions } from "./instructions.js";
|
|
12
|
-
import { validateName } from "./names.js";
|
|
13
|
-
|
|
14
|
-
interface SubagentFields {
|
|
15
|
-
description?: string;
|
|
16
|
-
model?: ModelSetting;
|
|
17
|
-
/** Authored prompt; the identity preamble is prepended. */
|
|
18
|
-
prompt?: string;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export function subagent(name: string, fields: SubagentFields): ResolvedAgent {
|
|
22
|
-
return {
|
|
23
|
-
name,
|
|
24
|
-
description: fields.description,
|
|
25
|
-
model: fields.model,
|
|
26
|
-
instructions: withIdentityPreamble(name, fields.prompt),
|
|
27
|
-
runtime: "local",
|
|
28
|
-
tools: [],
|
|
29
|
-
skills: [],
|
|
30
|
-
connections: [],
|
|
31
|
-
hostConnections: [],
|
|
32
|
-
subagents: [],
|
|
33
|
-
seedFiles: [],
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export async function loadSubagents(
|
|
38
|
-
ctx: DiscoveryContext,
|
|
39
|
-
subagentsDir: string,
|
|
40
|
-
): Promise<ResolvedAgent[]> {
|
|
41
|
-
if (!(await isDirectory(subagentsDir))) {
|
|
42
|
-
return [];
|
|
43
|
-
}
|
|
44
|
-
const subagents: ResolvedAgent[] = [];
|
|
45
|
-
for (const entry of await sortedEntries(subagentsDir)) {
|
|
46
|
-
if (!entry.isDirectory()) {
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
const subagentDir = join(subagentsDir, entry.name);
|
|
50
|
-
if (!validateName(ctx, "subagent", entry.name, subagentDir)) {
|
|
51
|
-
continue;
|
|
52
|
-
}
|
|
53
|
-
subagents.push(await loadSubagent(ctx, subagentDir, entry.name));
|
|
54
|
-
}
|
|
55
|
-
return subagents;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export async function loadSubagent(
|
|
59
|
-
ctx: DiscoveryContext,
|
|
60
|
-
agentDir: string,
|
|
61
|
-
name: string,
|
|
62
|
-
): Promise<ResolvedAgent> {
|
|
63
|
-
const config = await loadAgentConfig(ctx, agentDir, false);
|
|
64
|
-
const prompt = await loadInstructions(ctx, agentDir, config, false);
|
|
65
|
-
await warnUnsupportedSubagentSlots(ctx, agentDir);
|
|
66
|
-
if (config?.builtinTools !== undefined) {
|
|
67
|
-
ctx.diagnostics.push({
|
|
68
|
-
severity: "warning",
|
|
69
|
-
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
70
|
-
message: "builtinTools is not supported on subagents; ignoring.",
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
if (config?.tools !== undefined) {
|
|
74
|
-
ctx.diagnostics.push({
|
|
75
|
-
severity: "warning",
|
|
76
|
-
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
77
|
-
message:
|
|
78
|
-
"tools is not supported on subagents (they keep the harness task-tool toolset); ignoring.",
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
if (config?.architecture !== undefined) {
|
|
82
|
-
ctx.diagnostics.push({
|
|
83
|
-
severity: "warning",
|
|
84
|
-
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
85
|
-
message: "architecture is not supported on subagents; ignoring.",
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
const artifactsPath = await findModuleFile(agentDir, "artifacts");
|
|
89
|
-
if (artifactsPath !== undefined) {
|
|
90
|
-
ctx.diagnostics.push({
|
|
91
|
-
severity: "warning",
|
|
92
|
-
path: displayPath(ctx, artifactsPath),
|
|
93
|
-
message: "artifacts are not supported on subagents; ignoring.",
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
const resultPath = await findModuleFile(agentDir, "result");
|
|
97
|
-
if (resultPath !== undefined) {
|
|
98
|
-
ctx.diagnostics.push({
|
|
99
|
-
severity: "error",
|
|
100
|
-
path: displayPath(ctx, resultPath),
|
|
101
|
-
message:
|
|
102
|
-
"agent/result.ts is no longer supported; defineResult has been removed. Record structured output with an authored tool and actuate from a turn.completed hook.",
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
return subagent(config?.name ?? name, {
|
|
106
|
-
description: config?.description,
|
|
107
|
-
model: config?.model,
|
|
108
|
-
prompt,
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
async function warnUnsupportedSubagentSlots(
|
|
113
|
-
ctx: DiscoveryContext,
|
|
114
|
-
subagentDir: string,
|
|
115
|
-
): Promise<void> {
|
|
116
|
-
const unsupported = [
|
|
117
|
-
["tools", "tools"],
|
|
118
|
-
["skills", "skills"],
|
|
119
|
-
["extensions", "extensions"],
|
|
120
|
-
["mcp-connections", "MCP connections"],
|
|
121
|
-
["host-connections", "host MCP connections"],
|
|
122
|
-
["subagents", "nested subagents"],
|
|
123
|
-
["channels", "channels"],
|
|
124
|
-
["schedules", "schedules"],
|
|
125
|
-
["reminders", "reminders"],
|
|
126
|
-
["hooks", "hooks"],
|
|
127
|
-
["sandbox", "sandbox files"],
|
|
128
|
-
] as const;
|
|
129
|
-
for (const [slot, label] of unsupported) {
|
|
130
|
-
if (await isDirectory(join(subagentDir, slot))) {
|
|
131
|
-
ctx.diagnostics.push({
|
|
132
|
-
severity: "warning",
|
|
133
|
-
path: displayPath(ctx, join(subagentDir, slot)),
|
|
134
|
-
message: `Subagent ${label} are not supported on the Cursor harness yet; the subagent runs with the parent's execution surface. Ignoring.`,
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `agent/tools/*.ts`: typed tools and the built-in tools appended after them.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { join } from "node:path";
|
|
6
|
-
import type {
|
|
7
|
-
BuiltinToolsConfig,
|
|
8
|
-
DiscoveredTool,
|
|
9
|
-
ToolDefinition,
|
|
10
|
-
ToolEffect,
|
|
11
|
-
} from "../../types.js";
|
|
12
|
-
import { builtinTools } from "../builtin-tools/index.js";
|
|
13
|
-
import { toolInputJsonSchema, toolOutputJsonSchema } from "../json-schema.js";
|
|
14
|
-
import { type DiscoveryContext, displayPath, errorMessage, isBlank } from "./context.js";
|
|
15
|
-
import { importDefault, moduleEntries } from "./modules.js";
|
|
16
|
-
|
|
17
|
-
export async function loadTools(
|
|
18
|
-
ctx: DiscoveryContext,
|
|
19
|
-
toolsDir: string,
|
|
20
|
-
): Promise<DiscoveredTool[]> {
|
|
21
|
-
const tools: DiscoveredTool[] = [];
|
|
22
|
-
for (const { name, path } of await moduleEntries(ctx, toolsDir, "tool")) {
|
|
23
|
-
const definition = await importDefault(ctx, path, "tool");
|
|
24
|
-
if (definition === undefined) {
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
const tool = compileTool(ctx, path, name, definition as ToolDefinition);
|
|
28
|
-
if (tool !== undefined) {
|
|
29
|
-
tools.push(tool);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return tools;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Validate one tool definition against the tool contract and convert its
|
|
37
|
-
* schemas. Diagnostics point at `entryPath` (the authored file, or the
|
|
38
|
-
* extension mount that contributed the tool).
|
|
39
|
-
*/
|
|
40
|
-
export function compileTool(
|
|
41
|
-
ctx: DiscoveryContext,
|
|
42
|
-
entryPath: string,
|
|
43
|
-
name: string,
|
|
44
|
-
tool: ToolDefinition,
|
|
45
|
-
): DiscoveredTool | undefined {
|
|
46
|
-
if (isBlank(tool.description)) {
|
|
47
|
-
ctx.diagnostics.push({
|
|
48
|
-
severity: "error",
|
|
49
|
-
path: displayPath(ctx, entryPath),
|
|
50
|
-
message: "Tools require a non-empty description.",
|
|
51
|
-
});
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
54
|
-
const execution = tool.execution === "agent" ? "agent" : "server";
|
|
55
|
-
const needsApprovalConfigured =
|
|
56
|
-
tool.needsApproval === true || typeof tool.needsApproval === "function";
|
|
57
|
-
const effect = declaredEffect(tool);
|
|
58
|
-
if (execution === "agent") {
|
|
59
|
-
if (isBlank(tool.script)) {
|
|
60
|
-
ctx.diagnostics.push({
|
|
61
|
-
severity: "error",
|
|
62
|
-
path: displayPath(ctx, entryPath),
|
|
63
|
-
message:
|
|
64
|
-
'Tools with execution: "agent" require a non-empty `script` (shell body; JSON on stdin, result on stdout).',
|
|
65
|
-
});
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
if (typeof tool.execute === "function") {
|
|
69
|
-
ctx.diagnostics.push({
|
|
70
|
-
severity: "warning",
|
|
71
|
-
path: displayPath(ctx, entryPath),
|
|
72
|
-
message:
|
|
73
|
-
'`execute` is ignored when execution is "agent"; the Cursor agent runs `script` instead.',
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
if (needsApprovalConfigured) {
|
|
77
|
-
ctx.diagnostics.push({
|
|
78
|
-
severity: "error",
|
|
79
|
-
path: displayPath(ctx, entryPath),
|
|
80
|
-
message: '`needsApproval` is only supported for execution: "server" tools (in-process).',
|
|
81
|
-
});
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
} else if (typeof tool.execute !== "function") {
|
|
85
|
-
ctx.diagnostics.push({
|
|
86
|
-
severity: "error",
|
|
87
|
-
path: displayPath(ctx, entryPath),
|
|
88
|
-
message:
|
|
89
|
-
'Tools require an execute(input, ctx) function (or set execution: "agent" with a script).',
|
|
90
|
-
});
|
|
91
|
-
return undefined;
|
|
92
|
-
}
|
|
93
|
-
let inputSchema: DiscoveredTool["inputSchema"];
|
|
94
|
-
try {
|
|
95
|
-
inputSchema = toolInputJsonSchema(tool.inputSchema);
|
|
96
|
-
} catch (error) {
|
|
97
|
-
ctx.diagnostics.push({
|
|
98
|
-
severity: "error",
|
|
99
|
-
path: displayPath(ctx, entryPath),
|
|
100
|
-
message: `Failed to convert inputSchema to JSON Schema: ${errorMessage(error)}`,
|
|
101
|
-
});
|
|
102
|
-
return undefined;
|
|
103
|
-
}
|
|
104
|
-
let outputSchema: DiscoveredTool["outputSchema"];
|
|
105
|
-
try {
|
|
106
|
-
outputSchema = toolOutputJsonSchema(tool.outputSchema);
|
|
107
|
-
} catch (error) {
|
|
108
|
-
ctx.diagnostics.push({
|
|
109
|
-
severity: "error",
|
|
110
|
-
path: displayPath(ctx, entryPath),
|
|
111
|
-
message: `Failed to convert outputSchema to JSON Schema: ${errorMessage(error)}`,
|
|
112
|
-
});
|
|
113
|
-
return undefined;
|
|
114
|
-
}
|
|
115
|
-
return {
|
|
116
|
-
name,
|
|
117
|
-
description: tool.description,
|
|
118
|
-
inputSchema,
|
|
119
|
-
outputSchema,
|
|
120
|
-
execution,
|
|
121
|
-
needsApproval: needsApprovalConfigured,
|
|
122
|
-
effect,
|
|
123
|
-
script: execution === "agent" ? tool.script : undefined,
|
|
124
|
-
definition: tool,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Static view of a tool's `effect` for the manifest: the literal when it is
|
|
130
|
-
* one, `"dynamic"` for a per-call predicate, `undefined` when undeclared. A
|
|
131
|
-
* malformed value is left undeclared rather than guessed — undeclared is the
|
|
132
|
-
* safe state (a dry run stubs it), where a guess could be the unsafe one.
|
|
133
|
-
*/
|
|
134
|
-
function declaredEffect(tool: ToolDefinition): ToolEffect | "dynamic" | undefined {
|
|
135
|
-
if (typeof tool.effect === "function") {
|
|
136
|
-
return "dynamic";
|
|
137
|
-
}
|
|
138
|
-
return tool.effect === "read" || tool.effect === "write" ? tool.effect : undefined;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Append enabled built-in tools after authored tools. Authored tools with
|
|
143
|
-
* the same name win.
|
|
144
|
-
*/
|
|
145
|
-
export function appendBuiltinTools(
|
|
146
|
-
ctx: DiscoveryContext,
|
|
147
|
-
agentDir: string,
|
|
148
|
-
tools: DiscoveredTool[],
|
|
149
|
-
config: BuiltinToolsConfig | undefined,
|
|
150
|
-
): void {
|
|
151
|
-
const builtin = builtinTools(config);
|
|
152
|
-
if (builtin.length === 0) {
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
const agentPath = displayPath(ctx, join(agentDir, "agent.ts"));
|
|
156
|
-
for (const tool of builtin) {
|
|
157
|
-
const existing = tools.find(t => t.name === tool.name);
|
|
158
|
-
if (existing !== undefined) {
|
|
159
|
-
const owner =
|
|
160
|
-
existing.extension === undefined ? "Authored" : `Extension "${existing.extension}"`;
|
|
161
|
-
ctx.diagnostics.push({
|
|
162
|
-
severity: "warning",
|
|
163
|
-
path: agentPath,
|
|
164
|
-
message: `${owner} tool "${tool.name}" shadows the built-in tool of the same name; the built-in is skipped.`,
|
|
165
|
-
});
|
|
166
|
-
continue;
|
|
167
|
-
}
|
|
168
|
-
tools.push(tool);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Filesystem discovery: walks a project's `bot/` directory and compiles
|
|
3
|
-
* the authored files (markdown and TypeScript) into an {@link AgentProject}
|
|
4
|
-
* manifest. Identity comes from the path — a tool at `bot/tools/foo.ts`
|
|
5
|
-
* is named `foo`, a subagent at `bot/subagents/researcher/` is named
|
|
6
|
-
* `researcher` — so no definition carries a `name` field.
|
|
7
|
-
*
|
|
8
|
-
* The loaders live under `./discovery/`, one module per authored slot;
|
|
9
|
-
* this module is the public surface the CLI, server, and tests import.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
export {
|
|
13
|
-
DEFAULT_AGENT_ARCHITECTURE,
|
|
14
|
-
runtimeArchitectureCompatibilityError,
|
|
15
|
-
} from "./discovery/agent-config.js";
|
|
16
|
-
export type { LoadAgentProjectOptions } from "./discovery/context.js";
|
|
17
|
-
export { projectInfo } from "./discovery/info.js";
|
|
18
|
-
export {
|
|
19
|
-
type ChildAgentDir,
|
|
20
|
-
formatDiagnostics,
|
|
21
|
-
hasErrorDiagnostics,
|
|
22
|
-
isAgentProjectDir,
|
|
23
|
-
listChildAgentDirs,
|
|
24
|
-
loadAgentProject,
|
|
25
|
-
loadAgentProjects,
|
|
26
|
-
resolveAgentMounts,
|
|
27
|
-
} from "./discovery/project.js";
|