@cursor/bdk 0.2.3 → 0.2.5
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/README.md +76 -1154
- 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.94Iu5dyD.js} +4 -4
- package/dist/docs/assets/{building-with-agents.md.-fcjCmJU.js → building-with-agents.md.BPjPFxFg.js} +2 -2
- package/dist/docs/assets/{building-with-agents.md.-fcjCmJU.lean.js → building-with-agents.md.BPjPFxFg.lean.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.BITLoOQa.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.D49zVZqM.js → VPLocalSearchBox.DTKFDlBr.js} +1 -1
- package/dist/docs/assets/chunks/{arc.hmjb-sc4.js → arc.DuzwHEeg.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CxEI1KqM.js → architectureDiagram-Q4EWVU46.C6lyhLs0.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.DHHvBWoV.js → baseUniq.DUNEWlY8.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DnXW-3bu.js → blockDiagram-DXYQGD6D.CXOQGI0O.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.e-47O2jM.js → c4Diagram-AHTNJAMY.BYdPE-Oe.js} +1 -1
- package/dist/docs/assets/chunks/channel.B46uXH41.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.3ry4pYXB.js → chunk-4BX2VUAB.YIV9HeX0.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DGIZFRx6.js → chunk-4TB4RGXK.BG80DEOc.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.DKBnqg9U.js → chunk-55IACEB6.BDKJSZQc.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BIU8Ue5k.js → chunk-EDXVE4YY.CtYnQqts.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DP-TFhjI.js → chunk-FMBD7UC4.CityOth-.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Ux0OYj5v.js → chunk-OYMX7WX6.CMD22CQX.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BzHMwYox.js → chunk-QZHKN3VN.WWpc3ND0.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.D4OGAsSP.js → chunk-YZCP3GAM.BMg-yhj3.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.0cmCFsSf.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.0cmCFsSf.js +1 -0
- package/dist/docs/assets/chunks/clone.1vTOFZT1.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Jq_7BUNx.js → cose-bilkent-S5V4N54A.Buu_LC5q.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.Di-skR2x.js → dagre-KV5264BT.DW7onj6E.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DeREHIdH.js → diagram-5BDNPKRD.B3NxIbEV.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.C7Kcqxro.js → diagram-G4DWMVQ6.BJvN6Vkv.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BK3eohyo.js → diagram-MMDJMWI5.wfRWrexs.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.C6TyymXT.js → diagram-TYMM5635.7QtjSYio.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DYGG-gGx.js → erDiagram-SMLLAGMA.jxPgDH1t.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.C9nBcSV4.js → flowDiagram-DWJPFMVM.BhDWA-TO.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.wAg_ymsp.js → ganttDiagram-T4ZO3ILL.Ijq8iYKv.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.B87j9Oeg.js → gitGraphDiagram-UUTBAWPF.DXpfW4YG.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CuFMj31w.js → graph.CoPlssRl.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.P_mLGumP.js → infoDiagram-42DDH7IO.eJuv_EOz.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DyuL_MsT.js → ishikawaDiagram-UXIWVN3A._OEzenCR.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CtP09IoJ.js → journeyDiagram-VCZTEJTY.CwlTjirB.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BoeSYPZo.js → kanban-definition-6JOO6SKY.DSp_C8cZ.js} +1 -1
- package/dist/docs/assets/chunks/{layout.B0lMMtNo.js → layout.Bms9s7uB.js} +1 -1
- package/dist/docs/assets/chunks/{linear.HxRBiAFX.js → linear.BjnmB4je.js} +1 -1
- package/dist/docs/assets/chunks/{min.BGlFFHwS.js → min.CKkYlMsn.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.JyLBD9M8.js → mindmap-definition-QFDTVHPH.T2d0vJ7X.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DnSmNZF8.js → pieDiagram-DEJITSTG.DU0RoCvx.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CUCnbfCa.js → quadrantDiagram-34T5L4WZ.9QZjM-x0.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.py0IVUn5.js → requirementDiagram-MS252O5E.CZpylJMd.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.Bkc-HWYp.js → sankeyDiagram-XADWPNL6.CnFdfW95.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Dqn8Mlv2.js → sequenceDiagram-FGHM5R23.-jC0PP1t.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.JikkoQUU.js → stateDiagram-FHFEXIEX.DG7yBRUU.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CbsZcOOu.js +1 -0
- package/dist/docs/assets/chunks/{theme.b6HQ6zG_.js → theme.B3O9koXV.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BvpSXiBj.js → timeline-definition-GMOUNBTQ.Bf9u4Ebb.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CU7MVnZx.js → vennDiagram-DHZGUBPP.BjhbbYE6.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.BKwC4ctG.js → wardley-RL74JXVD.DEA21akR.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.BfaF6Uhe.js → wardleyDiagram-NUSXRM2D.8fRb4Nb5.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Bg5dcpj4.js → xychartDiagram-5P7HB3ND.DoOP3zZM.js} +1 -1
- package/dist/docs/assets/{deployment.md.BJ8i7Q6p.js → deployment.md.BdqTiGdc.js} +5 -5
- package/dist/docs/assets/{deployment.md.BJ8i7Q6p.lean.js → deployment.md.BdqTiGdc.lean.js} +1 -1
- package/dist/docs/assets/{evals.md.CCAtNcuL.js → evals.md.LRCSn6Ik.js} +2 -2
- package/dist/docs/assets/{evals.md.CCAtNcuL.lean.js → evals.md.LRCSn6Ik.lean.js} +1 -1
- package/dist/docs/assets/{guides_agent-to-agent.md.CGkicXeB.js → guides_agent-to-agent.md.Cps5NiCV.js} +2 -2
- package/dist/docs/assets/{guides_agent-to-agent.md.CGkicXeB.lean.js → guides_agent-to-agent.md.Cps5NiCV.lean.js} +1 -1
- package/dist/docs/assets/{guides_bitbucket.md.Cb3LPKt3.js → guides_bitbucket.md.BB6fqD-M.js} +2 -2
- package/dist/docs/assets/{guides_bitbucket.md.Cb3LPKt3.lean.js → guides_bitbucket.md.BB6fqD-M.lean.js} +1 -1
- package/dist/docs/assets/{guides_cloud-agents.md.BuEkDCwo.js → guides_cloud-agents.md.CWJjS9No.js} +2 -2
- package/dist/docs/assets/{guides_cloud-agents.md.BuEkDCwo.lean.js → guides_cloud-agents.md.CWJjS9No.lean.js} +1 -1
- package/dist/docs/assets/{guides_convert-automation.md.Ci-Y2iD5.js → guides_convert-automation.md.DMEX9nF-.js} +3 -3
- package/dist/docs/assets/{guides_convert-automation.md.Ci-Y2iD5.lean.js → guides_convert-automation.md.DMEX9nF-.lean.js} +1 -1
- package/dist/docs/assets/{guides_github.md.Bq9kQU9B.js → guides_github.md.Cr1Xlf-m.js} +3 -3
- package/dist/docs/assets/{guides_github.md.Bq9kQU9B.lean.js → guides_github.md.Cr1Xlf-m.lean.js} +1 -1
- package/dist/docs/assets/{guides_gitlab.md.BM27P43u.js → guides_gitlab.md.CMpmFi4M.js} +2 -2
- package/dist/docs/assets/{guides_gitlab.md.BM27P43u.lean.js → guides_gitlab.md.CMpmFi4M.lean.js} +1 -1
- package/dist/docs/assets/{guides_grokbot-agents.md.yxVbSlKA.js → guides_grokbot-agents.md.tD1smFhU.js} +2 -2
- package/dist/docs/assets/{guides_grokbot-agents.md.yxVbSlKA.lean.js → guides_grokbot-agents.md.tD1smFhU.lean.js} +1 -1
- package/dist/docs/assets/{guides_hooks.md.BWoiNaMq.js → guides_hooks.md.5Ce3NXxZ.js} +2 -2
- package/dist/docs/assets/{guides_hooks.md.BWoiNaMq.lean.js → guides_hooks.md.5Ce3NXxZ.lean.js} +1 -1
- package/dist/docs/assets/{guides_improve.md.COtL-6ft.js → guides_improve.md.CRrYq22s.js} +2 -2
- package/dist/docs/assets/{guides_improve.md.COtL-6ft.lean.js → guides_improve.md.CRrYq22s.lean.js} +1 -1
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.js → guides_jev.md.D7XH4JH3.js} +2 -2
- package/dist/docs/assets/{guides_mcp-oauth.md.Cu6mhZ_3.js → guides_mcp-oauth.md.DR3zhC9r.js} +2 -2
- package/dist/docs/assets/{guides_mcp-oauth.md.Cu6mhZ_3.lean.js → guides_mcp-oauth.md.DR3zhC9r.lean.js} +1 -1
- package/dist/docs/assets/{guides_opentelemetry.md.DLlIB5rv.js → guides_opentelemetry.md.jcPNrQbH.js} +8 -6
- package/dist/docs/assets/{guides_opentelemetry.md.DLlIB5rv.lean.js → guides_opentelemetry.md.jcPNrQbH.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.diqqXTTm.js → guides_slack.md.Bn-WupSE.js} +8 -8
- package/dist/docs/assets/{guides_slack.md.diqqXTTm.lean.js → guides_slack.md.Bn-WupSE.lean.js} +1 -1
- package/dist/docs/assets/{guides_webhooks.md.D0furjw0.js → guides_webhooks.md.BBvAm_VF.js} +2 -2
- package/dist/docs/assets/{guides_webhooks.md.D0furjw0.lean.js → guides_webhooks.md.BBvAm_VF.lean.js} +1 -1
- package/dist/docs/assets/{hillclimbing.md.Biy0m-Qb.js → hillclimbing.md.Dxvd-0gT.js} +2 -2
- package/dist/docs/assets/{hillclimbing.md.Biy0m-Qb.lean.js → hillclimbing.md.Dxvd-0gT.lean.js} +1 -1
- package/dist/docs/assets/index.md.Dxxr7pFa.js +27 -0
- package/dist/docs/assets/{index.md.CVc_oOA3.lean.js → index.md.Dxxr7pFa.lean.js} +1 -1
- package/dist/docs/assets/{quickstart.md.CHpHPBUN.js → quickstart.md.BK5gjHM2.js} +2 -2
- package/dist/docs/assets/{quickstart.md.CHpHPBUN.lean.js → quickstart.md.BK5gjHM2.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.DzGI777n.js → reference_agent-config.md.DrtLxWgR.js} +4 -4
- package/dist/docs/assets/{reference_agent-config.md.DzGI777n.lean.js → reference_agent-config.md.DrtLxWgR.lean.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.CQfKq8F2.js → reference_artifacts.md.DLV9MZES.js} +2 -2
- package/dist/docs/assets/{reference_artifacts.md.CQfKq8F2.lean.js → reference_artifacts.md.DLV9MZES.lean.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.mbNtKCiR.js → reference_channels.md.LbNIJBwd.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.mbNtKCiR.lean.js → reference_channels.md.LbNIJBwd.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.DgeLTO18.js → reference_cli.md.BsgDqYPh.js} +4 -4
- package/dist/docs/assets/{reference_cli.md.DgeLTO18.lean.js → reference_cli.md.BsgDqYPh.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.COq--gAm.js → reference_connections.md.Bljpve-y.js} +4 -4
- package/dist/docs/assets/{reference_connections.md.COq--gAm.lean.js → reference_connections.md.Bljpve-y.lean.js} +1 -1
- package/dist/docs/assets/{reference_evals.md.CJm3uCUm.js → reference_evals.md.D5i8PuXJ.js} +2 -2
- package/dist/docs/assets/{reference_evals.md.CJm3uCUm.lean.js → reference_evals.md.D5i8PuXJ.lean.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.js → reference_extensions.md.OUacPetl.js} +5 -4
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.lean.js → reference_extensions.md.OUacPetl.lean.js} +1 -1
- package/dist/docs/assets/{reference_hooks.md.DbthhtIR.js → reference_hooks.md.C5LCJ1R3.js} +2 -2
- package/dist/docs/assets/{reference_hooks.md.DbthhtIR.lean.js → reference_hooks.md.C5LCJ1R3.lean.js} +1 -1
- package/dist/docs/assets/{reference_http-api.md.BZOvhCqY.js → reference_http-api.md.DbFNOubV.js} +1 -1
- package/dist/docs/assets/{reference_instructions.md.Bdwscs4G.js → reference_instructions.md.DrcHZXig.js} +2 -2
- package/dist/docs/assets/{reference_instructions.md.Bdwscs4G.lean.js → reference_instructions.md.DrcHZXig.lean.js} +1 -1
- package/dist/docs/assets/reference_playground.md.1hx0gcIu.js +1 -0
- package/dist/docs/assets/{reference_playground.md.BdQzRJc2.lean.js → reference_playground.md.1hx0gcIu.lean.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.CpLQ9j4K.js → reference_project-layout.md.C2JMRh7p.js} +2 -2
- package/dist/docs/assets/{reference_prompt.md.BQZB4eaV.js → reference_prompt.md.DqPh71XN.js} +3 -3
- package/dist/docs/assets/{reference_prompt.md.BQZB4eaV.lean.js → reference_prompt.md.DqPh71XN.lean.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.BVU5EFbz.js → reference_schedules.md.BuJ8fgMa.js} +2 -2
- package/dist/docs/assets/{reference_schedules.md.BVU5EFbz.lean.js → reference_schedules.md.BuJ8fgMa.lean.js} +1 -1
- package/dist/docs/assets/reference_sessions.md.CM5zo3w4.js +1 -0
- package/dist/docs/assets/{reference_sessions.md.DeRUItHD.lean.js → reference_sessions.md.CM5zo3w4.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.Cy00QMKS.js → reference_skills.md.C0guGcH0.js} +4 -4
- package/dist/docs/assets/{reference_skills.md.Cy00QMKS.lean.js → reference_skills.md.C0guGcH0.lean.js} +1 -1
- package/dist/docs/assets/{reference_subagents.md.B8oyeXOI.js → reference_subagents.md.gmPt5J-M.js} +2 -2
- package/dist/docs/assets/{reference_subagents.md.B8oyeXOI.lean.js → reference_subagents.md.gmPt5J-M.lean.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.hg2Wi5Bq.js → reference_tools.md.v3SXVSs_.js} +2 -2
- package/dist/docs/assets/{reference_tools.md.hg2Wi5Bq.lean.js → reference_tools.md.v3SXVSs_.lean.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.BykUiZ8j.js → templates_agentic-owners.md.vtjfwxbf.js} +2 -2
- package/dist/docs/assets/{templates_agentic-owners.md.BykUiZ8j.lean.js → templates_agentic-owners.md.vtjfwxbf.lean.js} +1 -1
- package/dist/docs/assets/templates_grokbot-agents.md.2sydjFiO.js +5 -0
- package/dist/docs/assets/templates_grokbot-agents.md.2sydjFiO.lean.js +1 -0
- package/dist/docs/assets/{templates_security-reviewer.md.DXMmKl_o.js → templates_security-reviewer.md.CX9l9bcg.js} +2 -2
- package/dist/docs/assets/{templates_security-reviewer.md.DXMmKl_o.lean.js → templates_security-reviewer.md.CX9l9bcg.lean.js} +1 -1
- package/dist/docs/assets/{templates_thermo-quality-review.md.Dg1p1MsG.js → templates_thermo-quality-review.md.95qmTmr1.js} +2 -2
- package/dist/docs/assets/{templates_thermo-quality-review.md.Dg1p1MsG.lean.js → templates_thermo-quality-review.md.95qmTmr1.lean.js} +1 -1
- package/dist/docs/assets/{templates_thermo-review.md.Dlylkowj.js → templates_thermo-review.md.DQh6Q0C-.js} +2 -2
- package/dist/docs/assets/{templates_thermo-review.md.Dlylkowj.lean.js → templates_thermo-review.md.DQh6Q0C-.lean.js} +1 -1
- package/dist/docs/assets/{templates_triage.md.CvJyx81N.js → templates_triage.md.BFlQhWXf.js} +3 -3
- package/dist/docs/assets/{templates_triage.md.CvJyx81N.lean.js → templates_triage.md.BFlQhWXf.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.Cw5PKa3t.lean.js → troubleshooting.md.Bscj6ODe.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +36 -36
- package/dist/docs/building-with-agents.md +0 -3
- package/dist/docs/deployment.html +39 -39
- package/dist/docs/deployment.md +6 -10
- package/dist/docs/evals.html +36 -36
- package/dist/docs/evals.md +0 -3
- package/dist/docs/guides/agent-to-agent.html +36 -36
- package/dist/docs/guides/agent-to-agent.md +0 -3
- package/dist/docs/guides/bitbucket.html +36 -36
- package/dist/docs/guides/bitbucket.md +0 -3
- package/dist/docs/guides/cloud-agents.html +36 -36
- package/dist/docs/guides/cloud-agents.md +0 -4
- package/dist/docs/guides/convert-automation.html +37 -37
- package/dist/docs/guides/convert-automation.md +2 -5
- package/dist/docs/guides/github.html +37 -37
- package/dist/docs/guides/github.md +1 -4
- package/dist/docs/guides/gitlab.html +36 -36
- package/dist/docs/guides/gitlab.md +0 -3
- package/dist/docs/guides/grokbot-agents.html +37 -37
- package/dist/docs/guides/grokbot-agents.md +1 -4
- package/dist/docs/guides/hooks.html +36 -36
- package/dist/docs/guides/hooks.md +0 -3
- package/dist/docs/guides/improve.html +36 -36
- package/dist/docs/guides/improve.md +0 -3
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/jev.md +7 -3
- package/dist/docs/guides/mcp-oauth.html +37 -37
- package/dist/docs/guides/mcp-oauth.md +1 -4
- package/dist/docs/guides/opentelemetry.html +42 -40
- package/dist/docs/guides/opentelemetry.md +4 -5
- package/dist/docs/guides/slack.html +43 -43
- package/dist/docs/guides/slack.md +14 -24
- package/dist/docs/guides/webhooks.html +36 -36
- package/dist/docs/guides/webhooks.md +0 -3
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +36 -36
- package/dist/docs/hillclimbing.md +0 -3
- package/dist/docs/index.html +38 -38
- package/dist/docs/index.md +9 -16
- package/dist/docs/llms-full.txt +156 -220
- package/dist/docs/llms.txt +1 -0
- package/dist/docs/quickstart.html +36 -36
- package/dist/docs/quickstart.md +2 -7
- package/dist/docs/reference/agent-config.html +38 -38
- package/dist/docs/reference/agent-config.md +4 -7
- package/dist/docs/reference/artifacts.html +36 -36
- package/dist/docs/reference/artifacts.md +0 -3
- package/dist/docs/reference/channels.html +37 -37
- package/dist/docs/reference/channels.md +1 -6
- package/dist/docs/reference/cli.html +38 -38
- package/dist/docs/reference/cli.md +7 -14
- package/dist/docs/reference/connections.html +38 -38
- package/dist/docs/reference/connections.md +7 -10
- package/dist/docs/reference/evals.html +36 -36
- package/dist/docs/reference/evals.md +0 -3
- package/dist/docs/reference/extensions.html +40 -39
- package/dist/docs/reference/extensions.md +15 -5
- package/dist/docs/reference/hooks.html +36 -36
- package/dist/docs/reference/hooks.md +0 -3
- package/dist/docs/reference/http-api.html +37 -37
- package/dist/docs/reference/http-api.md +1 -1
- package/dist/docs/reference/instructions.html +36 -36
- package/dist/docs/reference/instructions.md +0 -3
- package/dist/docs/reference/playground.html +36 -36
- package/dist/docs/reference/playground.md +0 -3
- package/dist/docs/reference/project-layout.html +37 -37
- package/dist/docs/reference/project-layout.md +2 -2
- package/dist/docs/reference/prompt.html +37 -37
- package/dist/docs/reference/prompt.md +0 -3
- package/dist/docs/reference/schedules.html +36 -36
- package/dist/docs/reference/schedules.md +0 -3
- package/dist/docs/reference/sessions.html +36 -36
- package/dist/docs/reference/sessions.md +0 -3
- package/dist/docs/reference/skills.html +38 -38
- package/dist/docs/reference/skills.md +0 -3
- package/dist/docs/reference/subagents.html +36 -36
- package/dist/docs/reference/subagents.md +0 -3
- package/dist/docs/reference/tools.html +36 -36
- package/dist/docs/reference/tools.md +1 -5
- package/dist/docs/templates/agentic-owners.html +36 -36
- package/dist/docs/templates/agentic-owners.md +0 -3
- package/dist/docs/templates/grokbot-agents.html +64 -0
- package/dist/docs/templates/grokbot-agents.md +55 -0
- package/dist/docs/templates/security-reviewer.html +37 -37
- package/dist/docs/templates/security-reviewer.md +0 -3
- package/dist/docs/templates/thermo-quality-review.html +36 -36
- package/dist/docs/templates/thermo-quality-review.md +3 -6
- package/dist/docs/templates/thermo-review.html +36 -36
- package/dist/docs/templates/thermo-review.md +3 -5
- package/dist/docs/templates/triage.html +37 -37
- package/dist/docs/templates/triage.md +2 -3
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/docs/troubleshooting.md +3 -7
- 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/README.md +9 -16
- package/docs/building-with-agents.md +0 -3
- package/docs/deployment.md +6 -10
- package/docs/evals.md +0 -3
- package/docs/guides/agent-to-agent.md +0 -3
- package/docs/guides/bitbucket.md +0 -3
- package/docs/guides/cloud-agents.md +0 -4
- package/docs/guides/convert-automation.md +2 -5
- package/docs/guides/github.md +1 -4
- package/docs/guides/gitlab.md +0 -3
- package/docs/guides/grokbot-agents.md +1 -4
- package/docs/guides/hooks.md +0 -3
- package/docs/guides/improve.md +0 -3
- package/docs/guides/jev.md +7 -3
- package/docs/guides/mcp-oauth.md +1 -4
- package/docs/guides/opentelemetry.md +4 -5
- package/docs/guides/slack.md +14 -24
- package/docs/guides/webhooks.md +0 -3
- package/docs/hillclimbing.md +0 -3
- package/docs/quickstart.md +2 -7
- package/docs/reference/agent-config.md +4 -7
- package/docs/reference/artifacts.md +0 -3
- package/docs/reference/channels.md +1 -6
- package/docs/reference/cli.md +7 -14
- package/docs/reference/connections.md +7 -10
- package/docs/reference/evals.md +0 -3
- package/docs/reference/extensions.md +15 -5
- package/docs/reference/hooks.md +0 -3
- package/docs/reference/http-api.md +1 -1
- package/docs/reference/instructions.md +0 -3
- package/docs/reference/playground.md +0 -3
- package/docs/reference/project-layout.md +2 -2
- package/docs/reference/prompt.md +0 -3
- package/docs/reference/schedules.md +0 -3
- package/docs/reference/sessions.md +0 -3
- package/docs/reference/skills.md +0 -3
- package/docs/reference/subagents.md +0 -3
- package/docs/reference/tools.md +1 -5
- package/docs/templates/agentic-owners.md +0 -3
- package/docs/templates/grokbot-agents.md +60 -0
- package/docs/templates/security-reviewer.md +0 -3
- package/docs/templates/thermo-quality-review.md +3 -6
- package/docs/templates/thermo-review.md +3 -5
- package/docs/templates/triage.md +2 -3
- package/docs/troubleshooting.md +3 -7
- package/package.json +2 -10
- package/templates/agentic-owners/README.md +0 -3
- package/templates/agents-md/README.md +4 -3
- package/templates/code-wiki/README.md +0 -3
- package/templates/demo/README.md +0 -3
- package/templates/grokbot-agents/README.md +4 -6
- package/templates/security-help/README.md +12 -6
- package/templates/security-reviewer/README.md +0 -3
- package/templates/thermo-quality-review/README.md +0 -3
- package/templates/thermo-review/README.md +0 -3
- package/templates/triage/README.md +0 -3
- package/templates/triage/overlays/jira/README.md +0 -3
- package/templates/triage/overlays/linear/README.md +0 -3
- 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/dist/docs/assets/index.md.CVc_oOA3.js +0 -27
- package/dist/docs/assets/reference_playground.md.BdQzRJc2.js +0 -1
- package/dist/docs/assets/reference_sessions.md.DeRUItHD.js +0 -1
- package/dist/docs/assets/troubleshooting.md.Cw5PKa3t.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/{guides_jev.md.BNDm14Gy.lean.js → guides_jev.md.D7XH4JH3.lean.js} +0 -0
- /package/dist/docs/assets/{reference_http-api.md.BZOvhCqY.lean.js → reference_http-api.md.DbFNOubV.lean.js} +0 -0
- /package/dist/docs/assets/{reference_project-layout.md.CpLQ9j4K.lean.js → reference_project-layout.md.C2JMRh7p.lean.js} +0 -0
package/src/hooks.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `defineHook` — authored at `agent/hooks/<slug>.ts`.
|
|
3
|
-
*
|
|
4
|
-
* Hooks subscribe to the session event stream and run side effects after
|
|
5
|
-
* each event is durably recorded (audit logging, metrics, persisting
|
|
6
|
-
* transcripts to your own database). Handlers are observe-only.
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* import { defineHook } from "@cursor/bdk/hooks";
|
|
10
|
-
*
|
|
11
|
-
* export default defineHook({
|
|
12
|
-
* events: {
|
|
13
|
-
* async "turn.completed"(event, ctx) {
|
|
14
|
-
* const prior = await ctx.host.kv.get("last-result");
|
|
15
|
-
* const notes = await ctx.host.files.read("notes.md");
|
|
16
|
-
* console.log("turn done", ctx.session.id, event.data.usage, prior, notes);
|
|
17
|
-
* },
|
|
18
|
-
* },
|
|
19
|
-
* });
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
import { brandDefinition } from "./internal/brand.js";
|
|
24
|
-
import type { HookConfig, HookDefinition } from "./types.js";
|
|
25
|
-
|
|
26
|
-
export type { HookConfig, HookContext, HookDefinition, HookHandler } from "./types.js";
|
|
27
|
-
|
|
28
|
-
export function defineHook(config: HookConfig): HookDefinition {
|
|
29
|
-
return brandDefinition("hook", config);
|
|
30
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @cursor/bdk
|
|
3
|
-
*
|
|
4
|
-
* Filesystem-first framework for Cursor agents: define an agent as markdown
|
|
5
|
-
* and TypeScript files under an `agent/` directory, and serve it over
|
|
6
|
-
* channels with the Cursor SDK as the execution harness.
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* import { serve } from "@cursor/bdk";
|
|
10
|
-
*
|
|
11
|
-
* const handle = await serve(".", { port: 3000 });
|
|
12
|
-
* console.log(`agent listening on ${handle.url}`);
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import { registerAuthoredModuleLoaders } from "./internal/authored-loaders.js";
|
|
17
|
-
import { brandDefinition } from "./internal/brand.js";
|
|
18
|
-
import { setDevMode } from "./internal/dev-mode.js";
|
|
19
|
-
import { type LoadAgentProjectOptions, resolveAgentMounts } from "./internal/discovery.js";
|
|
20
|
-
import { type AgentMount, startServer } from "./internal/server.js";
|
|
21
|
-
import type {
|
|
22
|
-
AgentConfig,
|
|
23
|
-
AgentConfigDefinition,
|
|
24
|
-
AgentProject,
|
|
25
|
-
AgentServeHandle,
|
|
26
|
-
InstructionsConfig,
|
|
27
|
-
InstructionsDefinition,
|
|
28
|
-
ServeOptions,
|
|
29
|
-
} from "./types.js";
|
|
30
|
-
|
|
31
|
-
export { defineArtifacts } from "./artifacts.js";
|
|
32
|
-
// Authoring helpers (also available on their focused subpath exports).
|
|
33
|
-
export {
|
|
34
|
-
allowAll,
|
|
35
|
-
bearerAuth,
|
|
36
|
-
DELETE,
|
|
37
|
-
defineChannel,
|
|
38
|
-
GET,
|
|
39
|
-
localDev,
|
|
40
|
-
localDevStrict,
|
|
41
|
-
loopbackGitHubDev,
|
|
42
|
-
loopbackOnly,
|
|
43
|
-
PATCH,
|
|
44
|
-
POST,
|
|
45
|
-
PUT,
|
|
46
|
-
publicEndpoint,
|
|
47
|
-
} from "./channels.js";
|
|
48
|
-
export { defineConnection } from "./connections.js";
|
|
49
|
-
export {
|
|
50
|
-
cursorPlugin,
|
|
51
|
-
defineExtension,
|
|
52
|
-
disable,
|
|
53
|
-
disableArtifacts,
|
|
54
|
-
disableChannel,
|
|
55
|
-
disableConnection,
|
|
56
|
-
disableHook,
|
|
57
|
-
disableInstructions,
|
|
58
|
-
disableSchedule,
|
|
59
|
-
disableSkill,
|
|
60
|
-
disableSubagent,
|
|
61
|
-
disableTool,
|
|
62
|
-
} from "./extensions.js";
|
|
63
|
-
export type {
|
|
64
|
-
DirEntry,
|
|
65
|
-
EditQuery,
|
|
66
|
-
EditResult,
|
|
67
|
-
FileInfo,
|
|
68
|
-
FileSystem,
|
|
69
|
-
GlobOptions,
|
|
70
|
-
GrepQuery,
|
|
71
|
-
GrepResult,
|
|
72
|
-
ListOptions,
|
|
73
|
-
SearchQuery,
|
|
74
|
-
SearchResult,
|
|
75
|
-
} from "./filesystem.js";
|
|
76
|
-
export {
|
|
77
|
-
DeleteNotSupportedError,
|
|
78
|
-
EditError,
|
|
79
|
-
emptyFs,
|
|
80
|
-
FILE_SYSTEM_SCAN_LIMIT,
|
|
81
|
-
FileNotFoundError,
|
|
82
|
-
hostFs,
|
|
83
|
-
InvalidGrepPatternError,
|
|
84
|
-
isFileNotFoundError,
|
|
85
|
-
NoMountError,
|
|
86
|
-
overlayFs,
|
|
87
|
-
PathError,
|
|
88
|
-
ReadOnlyMountError,
|
|
89
|
-
strReplaceOnFileSystem,
|
|
90
|
-
tempFs,
|
|
91
|
-
unionFs,
|
|
92
|
-
WriteFailedError,
|
|
93
|
-
} from "./filesystem.js";
|
|
94
|
-
export { defineHook } from "./hooks.js";
|
|
95
|
-
export { InvalidAsOfError, VacuousTimeArgsError } from "./internal/as-of.js";
|
|
96
|
-
export type {
|
|
97
|
-
ContinuationBuiltin,
|
|
98
|
-
ContinuationClaim,
|
|
99
|
-
ContinuationIdentity,
|
|
100
|
-
ContinuationSelector,
|
|
101
|
-
ConversationType,
|
|
102
|
-
MailboxContinuation,
|
|
103
|
-
ParsedContinuation,
|
|
104
|
-
} from "./internal/continuation-identity.js";
|
|
105
|
-
export { mintClaim } from "./internal/continuation-identity.js";
|
|
106
|
-
export type { LoadAgentProjectOptions } from "./internal/discovery.js";
|
|
107
|
-
export {
|
|
108
|
-
formatDiagnostics,
|
|
109
|
-
hasErrorDiagnostics,
|
|
110
|
-
isAgentProjectDir,
|
|
111
|
-
loadAgentProject,
|
|
112
|
-
loadAgentProjects,
|
|
113
|
-
projectInfo,
|
|
114
|
-
resolveAgentMounts,
|
|
115
|
-
} from "./internal/discovery.js";
|
|
116
|
-
export { nearestNeighborMissHint } from "./internal/filesystem/nearest.js";
|
|
117
|
-
export type {
|
|
118
|
-
AgentServeGitHubTriggerEvent,
|
|
119
|
-
AgentServeGitHubTriggerTarget,
|
|
120
|
-
AgentServeOriginTriggerEvent,
|
|
121
|
-
AgentServeOriginTriggerTarget,
|
|
122
|
-
AgentServeTriggerEvent,
|
|
123
|
-
AgentServeTriggerResult,
|
|
124
|
-
AgentServeTriggerTargetResult,
|
|
125
|
-
} from "./internal/handleAgentServeTrigger.js";
|
|
126
|
-
export {
|
|
127
|
-
collectGitHubTriggerTargets,
|
|
128
|
-
collectOriginTriggerTargets,
|
|
129
|
-
handleAgentServeTrigger,
|
|
130
|
-
} from "./internal/handleAgentServeTrigger.js";
|
|
131
|
-
export {
|
|
132
|
-
MCP_CHANNEL_ID,
|
|
133
|
-
MCP_ENDPOINT_PATH,
|
|
134
|
-
mcpEndpointToolNames,
|
|
135
|
-
TOOL_MCP_ENDPOINT_PATH,
|
|
136
|
-
} from "./internal/mcp-endpoint.js";
|
|
137
|
-
export {
|
|
138
|
-
REMINDER_ARGS_MAX_BYTES,
|
|
139
|
-
ReminderValidationError,
|
|
140
|
-
rejectAnonymousReminderHandlers,
|
|
141
|
-
UnknownReminderError,
|
|
142
|
-
} from "./internal/reminder-runner.js";
|
|
143
|
-
export type { AgentMount } from "./internal/server.js";
|
|
144
|
-
export {
|
|
145
|
-
SessionBusyError,
|
|
146
|
-
ToolInputError,
|
|
147
|
-
ToolNotDirectlyCallableError,
|
|
148
|
-
UnknownChannelError,
|
|
149
|
-
UnknownSessionError,
|
|
150
|
-
UnknownToolError,
|
|
151
|
-
} from "./internal/session-engine.js";
|
|
152
|
-
export type { MemoryBackend, TurnMemoryRecord } from "./memory.js";
|
|
153
|
-
export { agentStoreMemoryBackend, fileMemoryBackend, memoryHook } from "./memory.js";
|
|
154
|
-
export type { OtelConfig, OtelDefinition, OtelExporterConfig } from "./otel.js";
|
|
155
|
-
export type { PromptTag } from "./prompt.js";
|
|
156
|
-
export { prompt } from "./prompt.js";
|
|
157
|
-
export type {
|
|
158
|
-
ReminderBusyPolicy,
|
|
159
|
-
ReminderCreateInput,
|
|
160
|
-
ReminderDefinition,
|
|
161
|
-
ReminderFireContext,
|
|
162
|
-
ReminderFireResult,
|
|
163
|
-
ReminderFollowupOptions,
|
|
164
|
-
ReminderHandlerConfig,
|
|
165
|
-
ReminderHostApi,
|
|
166
|
-
ReminderInfo,
|
|
167
|
-
ReminderReschedule,
|
|
168
|
-
ReminderScheduleKind,
|
|
169
|
-
ReminderStatus,
|
|
170
|
-
ReminderTarget,
|
|
171
|
-
ReminderUntilContext,
|
|
172
|
-
} from "./reminders.js";
|
|
173
|
-
export { defineReminder } from "./reminders.js";
|
|
174
|
-
export { defineSchedule } from "./schedules.js";
|
|
175
|
-
export { defineSkill } from "./skills.js";
|
|
176
|
-
export { defineTool } from "./tools.js";
|
|
177
|
-
export type * from "./types.js";
|
|
178
|
-
export {
|
|
179
|
-
cursorAccountServersHasMixedWildcard,
|
|
180
|
-
DEFAULT_MODEL,
|
|
181
|
-
DIRECT_TOOL_CALL_CHANNEL_ID,
|
|
182
|
-
HttpSessionAdmitError,
|
|
183
|
-
isCursorAccountTransport,
|
|
184
|
-
isPeerConnectionTransport,
|
|
185
|
-
isSymbolicConnectionTransport,
|
|
186
|
-
isToolEffect,
|
|
187
|
-
MAX_RUNNING_TURNS_LIMIT,
|
|
188
|
-
normalizeConnectionEffects,
|
|
189
|
-
normalizeConnectionTools,
|
|
190
|
-
normalizeCursorAccountServers,
|
|
191
|
-
supportsKvCas,
|
|
192
|
-
} from "./types.js";
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Runtime config for an agent — authored at `agent/agent.ts` (the root
|
|
196
|
-
* agent) or `agent/subagents/<id>/agent.ts` (a subagent).
|
|
197
|
-
*/
|
|
198
|
-
export function defineAgent(config: AgentConfig): AgentConfigDefinition {
|
|
199
|
-
return brandDefinition("agent", config);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Programmatic instructions — authored at `agent/instructions.ts` when the
|
|
204
|
-
* system prompt needs to be generated rather than written as markdown.
|
|
205
|
-
*/
|
|
206
|
-
export function defineInstructions(config: InstructionsConfig): InstructionsDefinition {
|
|
207
|
-
return brandDefinition("instructions", config);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Discover and serve one or more agents over HTTP.
|
|
212
|
-
*
|
|
213
|
-
* Defaults to multi-agent layout: each agent is mounted under `/<slug>/v1/*`
|
|
214
|
-
* and `/<slug>/playground`, with an index at `/`.
|
|
215
|
-
*
|
|
216
|
-
* - Given a directory that is itself an agent project, mounts it under its
|
|
217
|
-
* directory name as the slug.
|
|
218
|
-
* - Given a directory whose immediate children are agent projects, mounts
|
|
219
|
-
* each under its directory name.
|
|
220
|
-
* - Pass `mode: "single"` (or an {@link AgentProject}) for the unslugged
|
|
221
|
-
* `/v1/*` surface.
|
|
222
|
-
*
|
|
223
|
-
* The built-in session channel lives under `/v1/session*`, custom channels
|
|
224
|
-
* under `/v1/channels/<id>`, plus `/v1/health` and `/v1/info`. Schedules run
|
|
225
|
-
* on their cron cadence unless dev mode or `schedules: false` disables them.
|
|
226
|
-
*/
|
|
227
|
-
export async function serve(
|
|
228
|
-
projectOrDir: string | AgentProject,
|
|
229
|
-
options: ServeOptions & {
|
|
230
|
-
discovery?: LoadAgentProjectOptions;
|
|
231
|
-
/**
|
|
232
|
-
* Mount layout. Defaults to `"multi"` (slugged routes + index).
|
|
233
|
-
* `"single"` serves one agent at `/v1/*` with an empty slug. Ignored when
|
|
234
|
-
* an {@link AgentProject} is passed (always single-mount).
|
|
235
|
-
*/
|
|
236
|
-
mode?: "single" | "multi";
|
|
237
|
-
} = {},
|
|
238
|
-
): Promise<AgentServeHandle> {
|
|
239
|
-
const { discovery, mode, ...serveOptions } = options;
|
|
240
|
-
|
|
241
|
-
// Programmatic embedders get the same authored-TypeScript loading as the
|
|
242
|
-
// CLI (idempotent; the bin registers earlier, source runs are a no-op).
|
|
243
|
-
await registerAuthoredModuleLoaders();
|
|
244
|
-
|
|
245
|
-
// Set before discovery so channel factories (constructed at import time) can
|
|
246
|
-
// relax dev-only defaults — e.g. the GitHub channel accepting unsigned
|
|
247
|
-
// loopback-forwarded deliveries. No-op outside dev.
|
|
248
|
-
setDevMode(serveOptions.dev === true);
|
|
249
|
-
|
|
250
|
-
if (typeof projectOrDir !== "string") {
|
|
251
|
-
return startServer([{ slug: "", project: projectOrDir }], serveOptions);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
const mounts: AgentMount[] = await resolveAgentMounts(projectOrDir, {
|
|
255
|
-
...discovery,
|
|
256
|
-
...(mode === undefined ? {} : { mode }),
|
|
257
|
-
});
|
|
258
|
-
return startServer(mounts, serveOptions);
|
|
259
|
-
}
|
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Advertised connection tools (`defineConnection({ advertiseTools: true })`).
|
|
3
|
-
*
|
|
4
|
-
* The session engine calls {@link resolveAdvertisedTools} while building
|
|
5
|
-
* every local turn: for each advertising connection it lists the server's
|
|
6
|
-
* tools and synthesizes a named 1:1 passthrough server tool per entry —
|
|
7
|
-
* the server's own names, descriptions, and live schemas — merged into the
|
|
8
|
-
* authored `agent/tools/` catalog. Because it runs at turn-build time it
|
|
9
|
-
* covers every way a turn starts (dispatcher sends, follow-ups, reminder
|
|
10
|
-
* fires that call the engine directly) and survives process restarts,
|
|
11
|
-
* since nothing is parked in memory between turns.
|
|
12
|
-
*
|
|
13
|
-
* Connections with per-session `auth` are listed and called through a
|
|
14
|
-
* one-off client carrying that session's headers (the registry's cached
|
|
15
|
-
* per-name client would leak one session's identity into another);
|
|
16
|
-
* auth-less connections go through the shared `host.mcp` registry, which
|
|
17
|
-
* also covers serve-resolved transports (Cursor account bridges, peers).
|
|
18
|
-
*
|
|
19
|
-
* Advertised names follow the Cursor-account MCP bridge
|
|
20
|
-
* (`packages/agent-serve/src/internal/cursor/account-mcp.ts`): slug
|
|
21
|
-
* `[^a-zA-Z0-9_-]` to `_`, collision suffixes `_2` / `_3`, and call the
|
|
22
|
-
* original advertised name. That is the same mapping `packages/agent`
|
|
23
|
-
* `normalizeMcpToolName` uses for IDE/Sand MCP tools. A listing failure
|
|
24
|
-
* still fails the turn rather than running it with a silently shrunken
|
|
25
|
-
* toolset.
|
|
26
|
-
*
|
|
27
|
-
* `defineConnection({ effects })` filters the listing before names are
|
|
28
|
-
* assigned: only tools whose MCP annotations classify as an intended
|
|
29
|
-
* effect are advertised. Unclassified tools are omitted, not guessed.
|
|
30
|
-
* `defineConnection({ tools: [...] })` keeps only the named tools.
|
|
31
|
-
* `disallowedTools` drops names. A name filter that matches nothing on
|
|
32
|
-
* the server fails the turn.
|
|
33
|
-
* Tools whose `annotations.title` is `do-not-call` are dropped as well
|
|
34
|
-
* (vendor host-UI / MCP Apps helpers that still carry `readOnlyHint`).
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
import {
|
|
38
|
-
connectionAllowsTool,
|
|
39
|
-
type DiscoveredConnection,
|
|
40
|
-
type DiscoveredTool,
|
|
41
|
-
type HostMcpCallResult,
|
|
42
|
-
type HostMcpToolInfo,
|
|
43
|
-
type JsonSchemaObject,
|
|
44
|
-
type McpToolAnnotations,
|
|
45
|
-
type ResolvedAgent,
|
|
46
|
-
type SessionInfo,
|
|
47
|
-
type ToolDefinition,
|
|
48
|
-
type ToolEffect,
|
|
49
|
-
} from "../types.js";
|
|
50
|
-
import { brandDefinition } from "./brand.js";
|
|
51
|
-
import { describeError } from "./describe-error.js";
|
|
52
|
-
import type { HostMcpOneOff } from "./mcp-host.js";
|
|
53
|
-
import { sanitizeMcpToolName, suffixMcpToolName } from "./sanitize-mcp-tool-name.js";
|
|
54
|
-
import { classifyAnnotationsEffect } from "./tool-policy.js";
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* What the resolver needs from the host MCP registry: the shared cached
|
|
58
|
-
* clients for auth-less connections, and one-off clients (per-session
|
|
59
|
-
* headers, never cached) for auth'd ones. `McpHost` implements this.
|
|
60
|
-
*/
|
|
61
|
-
export interface AdvertiseHostMcp {
|
|
62
|
-
listTools(connectionName: string): Promise<HostMcpToolInfo[]>;
|
|
63
|
-
callTool(
|
|
64
|
-
connectionName: string,
|
|
65
|
-
toolName: string,
|
|
66
|
-
args?: Record<string, unknown>,
|
|
67
|
-
): Promise<HostMcpCallResult>;
|
|
68
|
-
oneOff(connection: DiscoveredConnection): HostMcpOneOff;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Model-facing advertised names after {@link sanitizeMcpToolName} — the
|
|
73
|
-
* same MCP-client shape the Cursor-account bridge documents
|
|
74
|
-
* (`^[a-zA-Z0-9_-]{1,128}$`). Authored `agent/tools/` filenames stay on
|
|
75
|
-
* discovery's stricter `NAME_PATTERN` (must start alphanumeric).
|
|
76
|
-
*/
|
|
77
|
-
export const ADVERTISED_TOOL_NAME_PATTERN: RegExp = /^[A-Za-z0-9_-]{1,128}$/;
|
|
78
|
-
|
|
79
|
-
const ANY_OBJECT_SCHEMA: JsonSchemaObject = {
|
|
80
|
-
type: "object",
|
|
81
|
-
additionalProperties: true,
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
/** How one advertising connection is listed and called. */
|
|
85
|
-
export interface AdvertisedToolSource {
|
|
86
|
-
listTools(): Promise<HostMcpToolInfo[]>;
|
|
87
|
-
callTool(toolName: string, args: Record<string, unknown>): Promise<HostMcpCallResult>;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Resolve the advertised tools for one session. Returns `[]` when no
|
|
92
|
-
* connection advertises; throws (failing the turn) when a listing fails
|
|
93
|
-
* or a definition is invalid.
|
|
94
|
-
*/
|
|
95
|
-
export async function resolveAdvertisedTools(args: {
|
|
96
|
-
agent: ResolvedAgent;
|
|
97
|
-
session: SessionInfo;
|
|
98
|
-
hostMcp: AdvertiseHostMcp;
|
|
99
|
-
/**
|
|
100
|
-
* When set, a connection whose source or listing fails is reported here
|
|
101
|
-
* and skipped instead of throwing. Turns keep the throwing default (a
|
|
102
|
-
* turn must fail closed); the inspection catalog passes this so one
|
|
103
|
-
* broken connector does not hide every other tool.
|
|
104
|
-
*/
|
|
105
|
-
onConnectionError?: (connection: string, error: unknown) => void;
|
|
106
|
-
/** Test seam; defaults to {@link sourceForConnection}. */
|
|
107
|
-
sourceFor?: (
|
|
108
|
-
connection: DiscoveredConnection,
|
|
109
|
-
session: SessionInfo,
|
|
110
|
-
hostMcp: AdvertiseHostMcp,
|
|
111
|
-
) => Promise<AdvertisedToolSource>;
|
|
112
|
-
}): Promise<DiscoveredTool[]> {
|
|
113
|
-
const advertising = args.agent.connections.filter(
|
|
114
|
-
connection => connection.advertiseTools === true,
|
|
115
|
-
);
|
|
116
|
-
if (advertising.length === 0) {
|
|
117
|
-
return [];
|
|
118
|
-
}
|
|
119
|
-
const sourceFor = args.sourceFor ?? sourceForConnection;
|
|
120
|
-
// Each connection's listing is a network round trip against a distinct
|
|
121
|
-
// server (auth callback, MCP initialize, tools/list), so they run
|
|
122
|
-
// concurrently; the fan-out is bounded by the agent's declared
|
|
123
|
-
// connections. Name assignment below stays in declaration order so
|
|
124
|
-
// collision suffixes do not depend on which server answered first.
|
|
125
|
-
type Listing =
|
|
126
|
-
| {
|
|
127
|
-
connection: DiscoveredConnection;
|
|
128
|
-
ok: true;
|
|
129
|
-
source: AdvertisedToolSource;
|
|
130
|
-
listed: HostMcpToolInfo[];
|
|
131
|
-
}
|
|
132
|
-
| { connection: DiscoveredConnection; ok: false; error: unknown };
|
|
133
|
-
const listings = await Promise.all(
|
|
134
|
-
advertising.map(async (connection): Promise<Listing> => {
|
|
135
|
-
try {
|
|
136
|
-
const source = await sourceFor(connection, args.session, args.hostMcp);
|
|
137
|
-
const listed = await source.listTools();
|
|
138
|
-
return {
|
|
139
|
-
connection,
|
|
140
|
-
ok: true,
|
|
141
|
-
source,
|
|
142
|
-
listed: listed.filter(info => connectionAllowsTool(connection, info.name)),
|
|
143
|
-
};
|
|
144
|
-
} catch (error) {
|
|
145
|
-
return { connection, ok: false, error };
|
|
146
|
-
}
|
|
147
|
-
}),
|
|
148
|
-
);
|
|
149
|
-
const claimed = new Set(args.agent.tools.map(tool => tool.name));
|
|
150
|
-
const resolved: DiscoveredTool[] = [];
|
|
151
|
-
for (const listing of listings) {
|
|
152
|
-
const { connection } = listing;
|
|
153
|
-
if (!listing.ok) {
|
|
154
|
-
if (args.onConnectionError !== undefined) {
|
|
155
|
-
args.onConnectionError(connection.name, listing.error);
|
|
156
|
-
continue;
|
|
157
|
-
}
|
|
158
|
-
if (connection.optional === true) {
|
|
159
|
-
continue;
|
|
160
|
-
}
|
|
161
|
-
throw new Error(
|
|
162
|
-
`Failed to list tools on advertised connection "${connection.name}": ${describeError(listing.error)}`,
|
|
163
|
-
{ cause: listing.error },
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
const { source, listed } = listing;
|
|
167
|
-
if (
|
|
168
|
-
(connection.tools !== undefined || connection.disallowedTools !== undefined) &&
|
|
169
|
-
listed.length === 0
|
|
170
|
-
) {
|
|
171
|
-
const error = new Error(
|
|
172
|
-
`Advertised connection "${connection.name}" tool filter matched no tools on the server.`,
|
|
173
|
-
);
|
|
174
|
-
if (args.onConnectionError !== undefined) {
|
|
175
|
-
args.onConnectionError(connection.name, error);
|
|
176
|
-
continue;
|
|
177
|
-
}
|
|
178
|
-
if (connection.optional === true) {
|
|
179
|
-
continue;
|
|
180
|
-
}
|
|
181
|
-
throw error;
|
|
182
|
-
}
|
|
183
|
-
const intended = listed.filter(
|
|
184
|
-
info =>
|
|
185
|
-
!isDoNotCallTool(info.annotations) &&
|
|
186
|
-
matchesIntendedEffects(info.annotations, connection.effects),
|
|
187
|
-
);
|
|
188
|
-
const exposed = exposeListedTools(intended, claimed);
|
|
189
|
-
for (const { info, exposedName } of exposed) {
|
|
190
|
-
resolved.push(toDiscoveredTool(connection, info, exposedName, source));
|
|
191
|
-
claimed.add(exposedName);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
return resolved;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* The production source for one advertising connection: the shared
|
|
199
|
-
* `host.mcp` registry client for auth-less connections (which also covers
|
|
200
|
-
* serve-resolved transports — Cursor account bridges, peers), or a
|
|
201
|
-
* registry one-off with the session's headers substituted when the
|
|
202
|
-
* connection has per-session `auth`. The auth callback is evaluated once
|
|
203
|
-
* per turn, here; the one-off opens a fresh client per operation so one
|
|
204
|
-
* session's identity can never serve another's call.
|
|
205
|
-
*/
|
|
206
|
-
export async function sourceForConnection(
|
|
207
|
-
connection: DiscoveredConnection,
|
|
208
|
-
session: SessionInfo,
|
|
209
|
-
hostMcp: AdvertiseHostMcp,
|
|
210
|
-
): Promise<AdvertisedToolSource> {
|
|
211
|
-
if (connection.auth === undefined) {
|
|
212
|
-
return {
|
|
213
|
-
listTools: () => hostMcp.listTools(connection.name),
|
|
214
|
-
callTool: (toolName, callArgs) => hostMcp.callTool(connection.name, toolName, callArgs),
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
const transport = connection.transport;
|
|
218
|
-
if (!("url" in transport)) {
|
|
219
|
-
// Discovery rejects auth on non-URL transports; guard for callers that
|
|
220
|
-
// bypass discovery (hand-built projects).
|
|
221
|
-
throw new Error(`Connection "${connection.name}" has per-session auth but no URL transport.`);
|
|
222
|
-
}
|
|
223
|
-
const evaluated = await connection.auth(session);
|
|
224
|
-
return hostMcp.oneOff({
|
|
225
|
-
...connection,
|
|
226
|
-
transport: {
|
|
227
|
-
...transport,
|
|
228
|
-
headers: { ...transport.headers, ...evaluated.headers },
|
|
229
|
-
},
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Same catalog rule as the Cursor-account bridge: slug illegal characters,
|
|
235
|
-
* then `_2` / `_3` … for colliders (including authored tools already in
|
|
236
|
-
* `claimed`). Suffix assignment is stable for a colliding group: sort by
|
|
237
|
-
* original advertised name, independent of `listTools` order.
|
|
238
|
-
*/
|
|
239
|
-
function exposeListedTools(
|
|
240
|
-
listed: HostMcpToolInfo[],
|
|
241
|
-
claimed: ReadonlySet<string>,
|
|
242
|
-
): Array<{ info: HostMcpToolInfo; exposedName: string }> {
|
|
243
|
-
const byBase = new Map<string, HostMcpToolInfo[]>();
|
|
244
|
-
for (const info of listed) {
|
|
245
|
-
const base = sanitizeMcpToolName(info.name);
|
|
246
|
-
const group = byBase.get(base);
|
|
247
|
-
if (group === undefined) {
|
|
248
|
-
byBase.set(base, [info]);
|
|
249
|
-
} else {
|
|
250
|
-
group.push(info);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
const taken = new Set(claimed);
|
|
254
|
-
const exposedNameByInfo = new Map<HostMcpToolInfo, string>();
|
|
255
|
-
const sortedBases = [...byBase.keys()].sort((left, right) =>
|
|
256
|
-
left < right ? -1 : left > right ? 1 : 0,
|
|
257
|
-
);
|
|
258
|
-
for (const base of sortedBases) {
|
|
259
|
-
const group = byBase.get(base)!;
|
|
260
|
-
group.sort((left, right) => (left.name < right.name ? -1 : left.name > right.name ? 1 : 0));
|
|
261
|
-
group.forEach((info, index) => {
|
|
262
|
-
let suffixIndex = index;
|
|
263
|
-
let exposedName = suffixMcpToolName(base, suffixIndex);
|
|
264
|
-
while (taken.has(exposedName)) {
|
|
265
|
-
suffixIndex++;
|
|
266
|
-
exposedName = suffixMcpToolName(base, suffixIndex);
|
|
267
|
-
}
|
|
268
|
-
taken.add(exposedName);
|
|
269
|
-
exposedNameByInfo.set(info, exposedName);
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
return listed.map(info => ({
|
|
273
|
-
info,
|
|
274
|
-
exposedName: exposedNameByInfo.get(info)!,
|
|
275
|
-
}));
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Vendors (Datadog MCP Apps) stamp host-UI-only helpers with this title.
|
|
280
|
-
* They still look like reads (`readOnlyHint: true`), so the effects
|
|
281
|
-
* filter would keep them. The model and agsh should not see them; the
|
|
282
|
-
* raw MCP listing stays intact for the host.
|
|
283
|
-
*/
|
|
284
|
-
const DO_NOT_CALL_TITLE = "do-not-call";
|
|
285
|
-
|
|
286
|
-
function isDoNotCallTool(annotations: McpToolAnnotations | undefined): boolean {
|
|
287
|
-
return annotations?.title?.trim() === DO_NOT_CALL_TITLE;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
function matchesIntendedEffects(
|
|
291
|
-
annotations: McpToolAnnotations | undefined,
|
|
292
|
-
effects: readonly ToolEffect[] | undefined,
|
|
293
|
-
): boolean {
|
|
294
|
-
if (effects === undefined) {
|
|
295
|
-
return true;
|
|
296
|
-
}
|
|
297
|
-
const effect = classifyAnnotationsEffect(annotations);
|
|
298
|
-
return effect !== undefined && effects.includes(effect);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
function toDiscoveredTool(
|
|
302
|
-
connection: DiscoveredConnection,
|
|
303
|
-
info: HostMcpToolInfo,
|
|
304
|
-
exposedName: string,
|
|
305
|
-
source: AdvertisedToolSource,
|
|
306
|
-
): DiscoveredTool {
|
|
307
|
-
const description =
|
|
308
|
-
info.description === undefined || info.description.trim() === ""
|
|
309
|
-
? `${info.name} — MCP tool on the "${connection.name}" connection, forwarded 1:1.`
|
|
310
|
-
: info.description;
|
|
311
|
-
const inputSchema = info.inputSchema ?? ANY_OBJECT_SCHEMA;
|
|
312
|
-
const outputSchema = info.outputSchema;
|
|
313
|
-
const effect =
|
|
314
|
-
connection.effects === undefined ? undefined : classifyAnnotationsEffect(info.annotations);
|
|
315
|
-
const definition: ToolDefinition = brandDefinition("tool", {
|
|
316
|
-
description,
|
|
317
|
-
inputSchema,
|
|
318
|
-
outputSchema,
|
|
319
|
-
effect,
|
|
320
|
-
execute: async (input: Record<string, unknown>) =>
|
|
321
|
-
formatMcpToolResult(
|
|
322
|
-
connection.name,
|
|
323
|
-
info.name,
|
|
324
|
-
await source.callTool(info.name, input ?? {}),
|
|
325
|
-
),
|
|
326
|
-
} as unknown as ToolDefinition);
|
|
327
|
-
return {
|
|
328
|
-
name: exposedName,
|
|
329
|
-
description,
|
|
330
|
-
inputSchema,
|
|
331
|
-
outputSchema,
|
|
332
|
-
execution: "server",
|
|
333
|
-
needsApproval: false,
|
|
334
|
-
effect,
|
|
335
|
-
// The server's own annotations ride along (bounded at listing time), so
|
|
336
|
-
// the harness listing carries them and effect classification can read
|
|
337
|
-
// them. Absent stays absent — the fail-closed state.
|
|
338
|
-
annotations: info.annotations,
|
|
339
|
-
advertised: true,
|
|
340
|
-
connection: connection.name,
|
|
341
|
-
definition,
|
|
342
|
-
};
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
/**
|
|
346
|
-
* Render an MCP call result for the model: text parts joined, non-text
|
|
347
|
-
* parts noted by type, `isError` surfaced as a thrown error so the turn
|
|
348
|
-
* records a tool error instead of error-shaped prose.
|
|
349
|
-
*/
|
|
350
|
-
export function formatMcpToolResult(
|
|
351
|
-
connectionName: string,
|
|
352
|
-
toolName: string,
|
|
353
|
-
result: HostMcpCallResult,
|
|
354
|
-
): string {
|
|
355
|
-
const parts = result.content.map(item =>
|
|
356
|
-
item.type === "text" && typeof item.text === "string"
|
|
357
|
-
? item.text
|
|
358
|
-
: `[${item.type} content omitted]`,
|
|
359
|
-
);
|
|
360
|
-
const text = parts.join("\n").trim();
|
|
361
|
-
if (result.isError === true) {
|
|
362
|
-
throw new Error(text === "" ? `${connectionName} tool ${toolName} failed` : text);
|
|
363
|
-
}
|
|
364
|
-
if (text !== "") {
|
|
365
|
-
return text;
|
|
366
|
-
}
|
|
367
|
-
return result.structuredContent !== undefined
|
|
368
|
-
? JSON.stringify(result.structuredContent, null, 2)
|
|
369
|
-
: "(empty result)";
|
|
370
|
-
}
|