@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/evals.ts
DELETED
|
@@ -1,709 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Filesystem-first evals for agent-serve projects.
|
|
3
|
-
*
|
|
4
|
-
* Author cases under evals/ as `*.eval.ts` files with {@link defineEval}.
|
|
5
|
-
* One file may hold a single datapoint (`test`) or many (`cases`). Drive the
|
|
6
|
-
* agent with `t.send(...)` and assert with `t.succeeded()`, `t.calledTool()`,
|
|
7
|
-
* `t.messageIncludes(...)`, or `t.check(value, includes(...))`.
|
|
8
|
-
*
|
|
9
|
-
* ```ts
|
|
10
|
-
* import { defineEval, includes } from "@cursor/bdk/evals";
|
|
11
|
-
*
|
|
12
|
-
* // One datapoint — id is the file path (evals/weather/nyc.eval.ts → weather/nyc)
|
|
13
|
-
* export default defineEval({
|
|
14
|
-
* description: "Weather tool is used for temperature questions.",
|
|
15
|
-
* async test(t) {
|
|
16
|
-
* await t.send("What's the temperature in NYC?");
|
|
17
|
-
* t.succeeded();
|
|
18
|
-
* t.calledTool("get_weather");
|
|
19
|
-
* t.check(t.reply, includes(/°|F|C/));
|
|
20
|
-
* },
|
|
21
|
-
* });
|
|
22
|
-
*
|
|
23
|
-
* // Many datapoints in one file — ids are <fileId>/<case.id>
|
|
24
|
-
* // evals/weather.eval.ts → weather/nyc, weather/paris
|
|
25
|
-
* export default defineEval({
|
|
26
|
-
* tags: ["smoke", "weather"],
|
|
27
|
-
* cases: [
|
|
28
|
-
* {
|
|
29
|
-
* id: "nyc",
|
|
30
|
-
* async test(t) {
|
|
31
|
-
* await t.send("What's the temperature in NYC?");
|
|
32
|
-
* t.succeeded();
|
|
33
|
-
* t.calledTool("get_weather");
|
|
34
|
-
* },
|
|
35
|
-
* },
|
|
36
|
-
* {
|
|
37
|
-
* id: "paris",
|
|
38
|
-
* async test(t) {
|
|
39
|
-
* await t.send("What's the weather in Paris?");
|
|
40
|
-
* t.succeeded();
|
|
41
|
-
* t.calledTool("get_weather");
|
|
42
|
-
* },
|
|
43
|
-
* },
|
|
44
|
-
* ],
|
|
45
|
-
* });
|
|
46
|
-
* ```
|
|
47
|
-
*
|
|
48
|
-
* ## Severity: gates and scores
|
|
49
|
-
*
|
|
50
|
-
* Every assertion returns a chainable handle, so severity rides on the
|
|
51
|
-
* assertion instead of a separate thresholds map. Gates are hard (a miss fails
|
|
52
|
-
* the eval and `eval` exits non-zero); soft assertions are tracked scores that
|
|
53
|
-
* mark the eval `scored` and only fail the build under `--strict`:
|
|
54
|
-
*
|
|
55
|
-
* ```ts
|
|
56
|
-
* t.succeeded(); // gate (default)
|
|
57
|
-
* t.calledTool("get_weather").soft(); // tracked, no gate
|
|
58
|
-
* t.check(t.reply, similarity("Sunny, 72F")).atLeast(0.8);
|
|
59
|
-
* t.judge.closedQA("cites a source").atLeast(0.6); // LLM-graded
|
|
60
|
-
* ```
|
|
61
|
-
*
|
|
62
|
-
* Matchers narrow tool assertions (`{ input, output, status, count }` accept a
|
|
63
|
-
* literal, a RegExp, or a predicate), and each turn returned by `t.send(...)`
|
|
64
|
-
* carries the same vocabulary scoped to that turn.
|
|
65
|
-
*/
|
|
66
|
-
|
|
67
|
-
import type { EvalAssertionResult, EvalAssertions, EvalVerdict } from "./evals/assertions.js";
|
|
68
|
-
import type { Expectation } from "./evals/expect.js";
|
|
69
|
-
import type { EvalJudge, EvalJudgeConfig } from "./evals/judge.js";
|
|
70
|
-
import type { EvalReporter } from "./evals/results.js";
|
|
71
|
-
import { normalizePositiveInt } from "./internal/bounded-int.js";
|
|
72
|
-
import { brandDefinition } from "./internal/brand.js";
|
|
73
|
-
import type { AgentCloudOptions, SessionEvent } from "./types.js";
|
|
74
|
-
|
|
75
|
-
// Assertion severity, the scoped assertion vocabulary, value assertion
|
|
76
|
-
// builders, the judge surface, and result/reporter types are all part of the
|
|
77
|
-
// authoring surface: one import (`@cursor/bdk/evals`) covers a whole eval file.
|
|
78
|
-
export type {
|
|
79
|
-
EvalAssertionHandle,
|
|
80
|
-
EvalAssertionResult,
|
|
81
|
-
EvalAssertionSeverity,
|
|
82
|
-
EvalAssertions,
|
|
83
|
-
EvalTaggedArtifactFact,
|
|
84
|
-
EvalVerdict,
|
|
85
|
-
} from "./evals/assertions.js";
|
|
86
|
-
export { computeVerdict, verdictFailsRun } from "./evals/assertions.js";
|
|
87
|
-
export type { EvalSchemaLike, Expectation } from "./evals/expect.js";
|
|
88
|
-
export {
|
|
89
|
-
equals,
|
|
90
|
-
includes,
|
|
91
|
-
matches,
|
|
92
|
-
normalizedSimilarity,
|
|
93
|
-
satisfies,
|
|
94
|
-
similarity,
|
|
95
|
-
} from "./evals/expect.js";
|
|
96
|
-
export type {
|
|
97
|
-
EvalJudge,
|
|
98
|
-
EvalJudgeCallOptions,
|
|
99
|
-
EvalJudgeConfig,
|
|
100
|
-
EvalJudgeGraderName,
|
|
101
|
-
} from "./evals/judge.js";
|
|
102
|
-
// A custom judge built on `t.judge.model` embeds the same attacker-controlled
|
|
103
|
-
// agent output the built-in graders do, so it needs the same two protections.
|
|
104
|
-
export { EVAL_JUDGE_INJECTION_GUARD, fenceUntrusted } from "./evals/judge.js";
|
|
105
|
-
export type {
|
|
106
|
-
EvalCountMatcher,
|
|
107
|
-
EvalEventMatcher,
|
|
108
|
-
EvalEventOrderMatcher,
|
|
109
|
-
EvalMatcher,
|
|
110
|
-
EvalSubagentMatcher,
|
|
111
|
-
EvalToolCallMatcher,
|
|
112
|
-
EvalToolCallStatus,
|
|
113
|
-
} from "./evals/matchers.js";
|
|
114
|
-
export type {
|
|
115
|
-
EvalReporter,
|
|
116
|
-
EvalReporterEvalInfo,
|
|
117
|
-
EvalReporterTarget,
|
|
118
|
-
EvalRunResult,
|
|
119
|
-
EvalRunSummary,
|
|
120
|
-
} from "./evals/results.js";
|
|
121
|
-
export type {
|
|
122
|
-
EvalInputRequestFact,
|
|
123
|
-
EvalRunFacts,
|
|
124
|
-
EvalSubagentFact,
|
|
125
|
-
EvalToolCallFact,
|
|
126
|
-
} from "./evals/run-facts.js";
|
|
127
|
-
export { deriveRunFacts } from "./evals/run-facts.js";
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* One settled turn. Carries the same assertion vocabulary as `t`, narrowed to
|
|
131
|
-
* this turn's events, so an intermediate turn can be graded before the next
|
|
132
|
-
* `send` overwrites `t.reply`:
|
|
133
|
-
*
|
|
134
|
-
* ```ts
|
|
135
|
-
* const draft = await t.send("Draft the summary.");
|
|
136
|
-
* draft.calledTool("read_file");
|
|
137
|
-
* t.check(draft.message, includes("Summary"));
|
|
138
|
-
* ```
|
|
139
|
-
*/
|
|
140
|
-
export interface EvalTurnResult extends EvalAssertions {
|
|
141
|
-
message: string;
|
|
142
|
-
sessionId: string;
|
|
143
|
-
events: SessionEvent[];
|
|
144
|
-
/** Tool names requested during this turn, in order. */
|
|
145
|
-
toolCalls: string[];
|
|
146
|
-
ok: boolean;
|
|
147
|
-
/** 1-based turn index within the case. */
|
|
148
|
-
index: number;
|
|
149
|
-
/** Throws when this turn failed. Only needed when later steps depend on it. */
|
|
150
|
-
expectOk(): EvalTurnResult;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
export interface EvalSendOptions {
|
|
154
|
-
/** Absolute harness `cwd` for a new session (`SendMessageOptions.workspaceDir`). */
|
|
155
|
-
workspaceDir?: string;
|
|
156
|
-
/** Files seeded into the session workspace before the first turn. */
|
|
157
|
-
workspaceFiles?: Record<string, string>;
|
|
158
|
-
/**
|
|
159
|
-
* Per-session cloud options merged over the agent's static `cloud` config
|
|
160
|
-
* (create only). Use this to attach a pinned fixture repo for cloud evals
|
|
161
|
-
* without putting it on the agent's default `cloud.repos`.
|
|
162
|
-
*/
|
|
163
|
-
cloud?: AgentCloudOptions;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* The eval driver and assertion surface.
|
|
168
|
-
*
|
|
169
|
-
* `t` both drives the agent and grades it. Assertions on `t` read the whole run
|
|
170
|
-
* once `test` finishes; assertions on the turn returned by `t.send(...)` read
|
|
171
|
-
* only that turn. Recorded assertions never throw, so one run reports every
|
|
172
|
-
* failure rather than dying on the first.
|
|
173
|
-
*/
|
|
174
|
-
export interface EvalTestContext extends EvalAssertions {
|
|
175
|
-
/** Send a turn and wait until the session parks (or fails). */
|
|
176
|
-
send(message: string, options?: EvalSendOptions): Promise<EvalTurnResult>;
|
|
177
|
-
/** Last assistant text, or null before the first send. */
|
|
178
|
-
readonly reply: string | null;
|
|
179
|
-
readonly sessionId: string | undefined;
|
|
180
|
-
/** All events captured so far across turns. */
|
|
181
|
-
readonly events: SessionEvent[];
|
|
182
|
-
/** Turns settled so far, oldest first. */
|
|
183
|
-
readonly turns: readonly EvalTurnResult[];
|
|
184
|
-
/**
|
|
185
|
-
* 1-based index of this run when {@link EvalConfig.iterations} /
|
|
186
|
-
* {@link EvalDatapoint.iterations} expands a datapoint. Always `1` when
|
|
187
|
-
* iterations is unset or `1`.
|
|
188
|
-
*/
|
|
189
|
-
readonly iteration: number;
|
|
190
|
-
/** Total iterations for this datapoint (default `1`). */
|
|
191
|
-
readonly iterations: number;
|
|
192
|
-
/** Aborts when the case hits its timeout. */
|
|
193
|
-
readonly signal: AbortSignal;
|
|
194
|
-
/**
|
|
195
|
-
* LLM-as-judge assertions. Soft by default (tracked, never fatal); add a bar
|
|
196
|
-
* with `.atLeast(0.7)` or promote with `.gate(0.8)`. Requires a judge model
|
|
197
|
-
* from `defineEvalConfig({ judge })`, `defineEval({ judge })`, or the call.
|
|
198
|
-
*/
|
|
199
|
-
readonly judge: EvalJudge;
|
|
200
|
-
/**
|
|
201
|
-
* Record a gate that must pass before the script can safely continue.
|
|
202
|
-
* Returns `value` when it passes and stops the test body when it does not,
|
|
203
|
-
* without adding a duplicate execution error.
|
|
204
|
-
*/
|
|
205
|
-
require<T>(value: T, assertion: Expectation): Promise<T>;
|
|
206
|
-
/**
|
|
207
|
-
* End the case as skipped. Skipped cases are reported separately and never
|
|
208
|
-
* change the exit code. Call it before sending messages.
|
|
209
|
-
*/
|
|
210
|
-
skip(reason: string): never;
|
|
211
|
-
/** Debug line (surfaced under `agent-sdk eval --verbose`). */
|
|
212
|
-
log(message: string): void;
|
|
213
|
-
/**
|
|
214
|
-
* Structured score for the playground (and CLI). Values appear on the
|
|
215
|
-
* case card; agents can further customize rendering via
|
|
216
|
-
* `agent/playground/evals.tsx`.
|
|
217
|
-
*/
|
|
218
|
-
metric(name: string, value: string | number): void;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/** Hard ceiling for {@link EvalConfig.iterations} / case `iterations`. */
|
|
222
|
-
export const EVAL_MAX_ITERATIONS = 100;
|
|
223
|
-
|
|
224
|
-
/** One runnable datapoint inside a multi-case {@link defineEval} file. */
|
|
225
|
-
export interface EvalDatapoint {
|
|
226
|
-
/**
|
|
227
|
-
* Path segment under the file id. Must be a single segment (no `/`).
|
|
228
|
-
* Full case id = `<fileId>/<id>` (e.g. file `weather.eval.ts` + `nyc` →
|
|
229
|
-
* `weather/nyc`).
|
|
230
|
-
*/
|
|
231
|
-
id: string;
|
|
232
|
-
description?: string;
|
|
233
|
-
tags?: string[];
|
|
234
|
-
timeoutMs?: number;
|
|
235
|
-
/**
|
|
236
|
-
* How many times to run this datapoint (default `1`, or the file-level
|
|
237
|
-
* {@link EvalConfig.iterations}). When greater than 1, discovery expands
|
|
238
|
-
* to `<fileId>/<id>/1` … `<fileId>/<id>/<n>` so each iteration is its own
|
|
239
|
-
* concurrent case.
|
|
240
|
-
*/
|
|
241
|
-
iterations?: number;
|
|
242
|
-
/** Free-form data carried onto the result and every reporter. */
|
|
243
|
-
metadata?: Record<string, unknown>;
|
|
244
|
-
/** Judge model for this datapoint (overrides `evals.config.ts`). */
|
|
245
|
-
judge?: EvalJudgeConfig;
|
|
246
|
-
/** Destinations for just this datapoint, in addition to config reporters. */
|
|
247
|
-
reporters?: EvalReporter[];
|
|
248
|
-
test: (t: EvalTestContext) => Promise<void>;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* Eval file config. Provide either a single {@link test} or a {@link cases}
|
|
253
|
-
* array — not both.
|
|
254
|
-
*/
|
|
255
|
-
export interface EvalConfig {
|
|
256
|
-
description?: string;
|
|
257
|
-
tags?: string[];
|
|
258
|
-
timeoutMs?: number;
|
|
259
|
-
/**
|
|
260
|
-
* Default iterations for every datapoint in this file (default `1`).
|
|
261
|
-
* Case-level {@link EvalDatapoint.iterations} overrides this.
|
|
262
|
-
*/
|
|
263
|
-
iterations?: number;
|
|
264
|
-
/** Free-form data carried onto every result in this file and to reporters. */
|
|
265
|
-
metadata?: Record<string, unknown>;
|
|
266
|
-
/** Judge model for this file (overrides `evals.config.ts`). */
|
|
267
|
-
judge?: EvalJudgeConfig;
|
|
268
|
-
/** Destinations for this file, in addition to config reporters. */
|
|
269
|
-
reporters?: EvalReporter[];
|
|
270
|
-
/** Single-datapoint shorthand. Case id = file path under `evals/`. */
|
|
271
|
-
test?: (t: EvalTestContext) => Promise<void>;
|
|
272
|
-
/** Multiple datapoints in this file. Each id = `<fileId>/<case.id>`. */
|
|
273
|
-
cases?: EvalDatapoint[];
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/** Normalized single datapoint used by the runner after discovery. */
|
|
277
|
-
export interface EvalCaseDefinition {
|
|
278
|
-
description?: string;
|
|
279
|
-
tags?: string[];
|
|
280
|
-
timeoutMs?: number;
|
|
281
|
-
/** Total iterations configured for the authored datapoint. */
|
|
282
|
-
iterations?: number;
|
|
283
|
-
/** 1-based iteration index for this expanded runnable case. */
|
|
284
|
-
iteration?: number;
|
|
285
|
-
metadata?: Record<string, unknown>;
|
|
286
|
-
judge?: EvalJudgeConfig;
|
|
287
|
-
reporters?: EvalReporter[];
|
|
288
|
-
test: (t: EvalTestContext) => Promise<void>;
|
|
289
|
-
readonly __agentServe: "eval";
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
export type EvalDefinition = EvalConfig & { readonly __agentServe: "eval" };
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Author an eval file. The path under `evals/` is the file id:
|
|
296
|
-
* `evals/weather.eval.ts` → `weather`. With a single `test`, that is also
|
|
297
|
-
* the case id. With `cases`, each datapoint is `<fileId>/<case.id>`.
|
|
298
|
-
*/
|
|
299
|
-
export function normalizeEvalIterations(value: unknown): number {
|
|
300
|
-
return normalizePositiveInt(value, {
|
|
301
|
-
label: "defineEval: iterations",
|
|
302
|
-
max: EVAL_MAX_ITERATIONS,
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
export function defineEval(config: EvalConfig): EvalDefinition {
|
|
307
|
-
const hasTest = typeof config.test === "function";
|
|
308
|
-
const hasCases = config.cases !== undefined;
|
|
309
|
-
if (hasTest && hasCases) {
|
|
310
|
-
throw new Error("defineEval: set either test or cases, not both");
|
|
311
|
-
}
|
|
312
|
-
if (!hasTest && !hasCases) {
|
|
313
|
-
throw new Error("defineEval requires test(t) or a non-empty cases array");
|
|
314
|
-
}
|
|
315
|
-
if (config.iterations !== undefined) {
|
|
316
|
-
normalizeEvalIterations(config.iterations);
|
|
317
|
-
}
|
|
318
|
-
if (hasCases) {
|
|
319
|
-
if (!Array.isArray(config.cases) || config.cases.length === 0) {
|
|
320
|
-
throw new Error("defineEval: cases must be a non-empty array");
|
|
321
|
-
}
|
|
322
|
-
const seen = new Set<string>();
|
|
323
|
-
for (const datapoint of config.cases) {
|
|
324
|
-
validateDatapointId(datapoint.id);
|
|
325
|
-
if (seen.has(datapoint.id)) {
|
|
326
|
-
throw new Error(`defineEval: duplicate case id ${JSON.stringify(datapoint.id)}`);
|
|
327
|
-
}
|
|
328
|
-
seen.add(datapoint.id);
|
|
329
|
-
if (typeof datapoint.test !== "function") {
|
|
330
|
-
throw new Error(`defineEval: cases[${JSON.stringify(datapoint.id)}] requires test(t)`);
|
|
331
|
-
}
|
|
332
|
-
if (datapoint.iterations !== undefined) {
|
|
333
|
-
normalizeEvalIterations(datapoint.iterations);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
return brandDefinition("eval", config);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
function validateDatapointId(id: unknown): asserts id is string {
|
|
341
|
-
if (typeof id !== "string" || id.length === 0) {
|
|
342
|
-
throw new Error("defineEval: each case needs a non-empty string id");
|
|
343
|
-
}
|
|
344
|
-
if (id.includes("/") || id.includes("\\") || id.includes("..")) {
|
|
345
|
-
throw new Error(
|
|
346
|
-
`defineEval: case id must be a single path segment (got ${JSON.stringify(id)})`,
|
|
347
|
-
);
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
/**
|
|
352
|
-
* Expand a file-level definition into runnable datapoints.
|
|
353
|
-
* Exported for tests and tooling.
|
|
354
|
-
*
|
|
355
|
-
* When `iterations` > 1, each authored datapoint expands to
|
|
356
|
-
* `<fileId>/<case.id>/1` … `<fileId>/<case.id>/<n>` (single-test files
|
|
357
|
-
* expand to `<fileId>/1` … `<fileId>/<n>`).
|
|
358
|
-
*/
|
|
359
|
-
export function expandEvalDefinition(
|
|
360
|
-
fileId: string,
|
|
361
|
-
definition: EvalDefinition,
|
|
362
|
-
): Array<{ id: string; definition: EvalCaseDefinition }> {
|
|
363
|
-
if (definition.cases !== undefined) {
|
|
364
|
-
return definition.cases.flatMap(datapoint => {
|
|
365
|
-
const description = datapoint.description ?? definition.description;
|
|
366
|
-
const timeoutMs = datapoint.timeoutMs ?? definition.timeoutMs;
|
|
367
|
-
const iterations = normalizeEvalIterations(
|
|
368
|
-
datapoint.iterations ?? definition.iterations ?? 1,
|
|
369
|
-
);
|
|
370
|
-
const metadata =
|
|
371
|
-
datapoint.metadata === undefined && definition.metadata === undefined
|
|
372
|
-
? undefined
|
|
373
|
-
: { ...definition.metadata, ...datapoint.metadata };
|
|
374
|
-
return expandIterations({
|
|
375
|
-
baseId: `${fileId}/${datapoint.id}`,
|
|
376
|
-
description,
|
|
377
|
-
tags: datapoint.tags ?? definition.tags,
|
|
378
|
-
timeoutMs,
|
|
379
|
-
iterations,
|
|
380
|
-
metadata,
|
|
381
|
-
judge: datapoint.judge ?? definition.judge,
|
|
382
|
-
reporters: mergeReporters(definition.reporters, datapoint.reporters),
|
|
383
|
-
test: datapoint.test,
|
|
384
|
-
});
|
|
385
|
-
});
|
|
386
|
-
}
|
|
387
|
-
if (typeof definition.test !== "function") {
|
|
388
|
-
throw new Error(`defineEval(${fileId}): missing test(t)`);
|
|
389
|
-
}
|
|
390
|
-
const iterations = normalizeEvalIterations(definition.iterations ?? 1);
|
|
391
|
-
return expandIterations({
|
|
392
|
-
baseId: fileId,
|
|
393
|
-
description: definition.description,
|
|
394
|
-
tags: definition.tags,
|
|
395
|
-
timeoutMs: definition.timeoutMs,
|
|
396
|
-
iterations,
|
|
397
|
-
metadata: definition.metadata,
|
|
398
|
-
judge: definition.judge,
|
|
399
|
-
reporters: definition.reporters,
|
|
400
|
-
test: definition.test,
|
|
401
|
-
});
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
/** Union file-level and case-level reporters, keeping each instance once. */
|
|
405
|
-
function mergeReporters(
|
|
406
|
-
fileLevel: EvalReporter[] | undefined,
|
|
407
|
-
caseLevel: EvalReporter[] | undefined,
|
|
408
|
-
): EvalReporter[] | undefined {
|
|
409
|
-
if (fileLevel === undefined) {
|
|
410
|
-
return caseLevel;
|
|
411
|
-
}
|
|
412
|
-
if (caseLevel === undefined) {
|
|
413
|
-
return fileLevel;
|
|
414
|
-
}
|
|
415
|
-
return [...new Set([...fileLevel, ...caseLevel])];
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
function expandIterations(args: {
|
|
419
|
-
baseId: string;
|
|
420
|
-
description?: string;
|
|
421
|
-
tags?: string[];
|
|
422
|
-
timeoutMs?: number;
|
|
423
|
-
iterations: number;
|
|
424
|
-
metadata?: Record<string, unknown>;
|
|
425
|
-
judge?: EvalJudgeConfig;
|
|
426
|
-
reporters?: EvalReporter[];
|
|
427
|
-
test: (t: EvalTestContext) => Promise<void>;
|
|
428
|
-
}): Array<{ id: string; definition: EvalCaseDefinition }> {
|
|
429
|
-
const out: Array<{ id: string; definition: EvalCaseDefinition }> = [];
|
|
430
|
-
for (let iteration = 1; iteration <= args.iterations; iteration++) {
|
|
431
|
-
const id = args.iterations === 1 ? args.baseId : `${args.baseId}/${iteration}`;
|
|
432
|
-
const description =
|
|
433
|
-
args.iterations === 1 || args.description === undefined
|
|
434
|
-
? args.description
|
|
435
|
-
: `${args.description} (iteration ${iteration}/${args.iterations})`;
|
|
436
|
-
out.push({
|
|
437
|
-
id,
|
|
438
|
-
definition: brandDefinition("eval", {
|
|
439
|
-
...(description !== undefined ? { description } : {}),
|
|
440
|
-
...(args.tags !== undefined ? { tags: args.tags } : {}),
|
|
441
|
-
...(args.timeoutMs !== undefined ? { timeoutMs: args.timeoutMs } : {}),
|
|
442
|
-
metadata: args.metadata,
|
|
443
|
-
judge: args.judge,
|
|
444
|
-
reporters: args.reporters,
|
|
445
|
-
iterations: args.iterations,
|
|
446
|
-
iteration,
|
|
447
|
-
test: args.test,
|
|
448
|
-
}),
|
|
449
|
-
});
|
|
450
|
-
}
|
|
451
|
-
return out;
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
/**
|
|
455
|
-
* Whether a discovered case id matches a CLI filter.
|
|
456
|
-
* - exact datapoint: `weather/nyc`
|
|
457
|
-
* - whole file / prefix: `weather` selects `weather`, `weather/nyc`, …
|
|
458
|
-
* - multiple filters: OR
|
|
459
|
-
*/
|
|
460
|
-
export function matchesEvalIdFilter(caseId: string, filter: string): boolean {
|
|
461
|
-
return caseId === filter || caseId.startsWith(`${filter}/`);
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
/**
|
|
465
|
-
* Tag for suite-aggregator datapoints that wait on sibling cases from the
|
|
466
|
-
* same eval file (e.g. `deepsec-recall/overall`). Selecting a summary case
|
|
467
|
-
* alone expands the batch to the whole file via
|
|
468
|
-
* {@link expandSummarySuiteSelection}.
|
|
469
|
-
*/
|
|
470
|
-
export const EVAL_SUMMARY_TAG = "summary";
|
|
471
|
-
|
|
472
|
-
/** True when `tags` marks a suite-aggregator case. */
|
|
473
|
-
export function isEvalSummaryCase(tags: readonly string[] | undefined): boolean {
|
|
474
|
-
return tags?.includes(EVAL_SUMMARY_TAG) ?? false;
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
/**
|
|
478
|
-
* If `selected` includes any summary-tagged suite aggregator, pull in every
|
|
479
|
-
* other datapoint from the same `fileId` so the aggregator is not run alone.
|
|
480
|
-
* Preserves discovery order from `all`.
|
|
481
|
-
*/
|
|
482
|
-
export function expandSummarySuiteSelection<T extends { id: string; fileId: string }>(
|
|
483
|
-
all: readonly T[],
|
|
484
|
-
selected: readonly T[],
|
|
485
|
-
isSummary: (item: T) => boolean,
|
|
486
|
-
): T[] {
|
|
487
|
-
const fileIdsNeedingSuite = new Set(
|
|
488
|
-
selected.filter(item => isSummary(item)).map(item => item.fileId),
|
|
489
|
-
);
|
|
490
|
-
if (fileIdsNeedingSuite.size === 0) {
|
|
491
|
-
return [...selected];
|
|
492
|
-
}
|
|
493
|
-
const selectedIds = new Set(selected.map(item => item.id));
|
|
494
|
-
const extras = all.filter(
|
|
495
|
-
item => fileIdsNeedingSuite.has(item.fileId) && !selectedIds.has(item.id),
|
|
496
|
-
);
|
|
497
|
-
if (extras.length === 0) {
|
|
498
|
-
return [...selected];
|
|
499
|
-
}
|
|
500
|
-
const want = new Set([...selectedIds, ...extras.map(item => item.id)]);
|
|
501
|
-
return all.filter(item => want.has(item.id));
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
/**
|
|
505
|
-
* Hard ceiling for concurrent eval cases.
|
|
506
|
-
*
|
|
507
|
-
* Each case issues model provider requests; unbounded parallelism would
|
|
508
|
-
* overwhelm provider rate limits and exhaust local API quota.
|
|
509
|
-
*/
|
|
510
|
-
export const EVAL_MAX_CONCURRENCY_LIMIT = 200;
|
|
511
|
-
|
|
512
|
-
/** Default playground batches kept in the serve process when `maxPlaygroundRuns` is omitted. */
|
|
513
|
-
export const EVAL_DEFAULT_MAX_PLAYGROUND_RUNS = 20;
|
|
514
|
-
|
|
515
|
-
/** Hard ceiling for {@link EvalConfigFile.maxPlaygroundRuns}. */
|
|
516
|
-
export const EVAL_MAX_PLAYGROUND_RUNS = 500;
|
|
517
|
-
|
|
518
|
-
export type EvalCaseRunStatus = "pending" | "running" | "done";
|
|
519
|
-
export type EvalBatchStatus = "running" | "completed" | "failed" | "cancelled";
|
|
520
|
-
|
|
521
|
-
/** One case inside a playground / HTTP eval batch snapshot. */
|
|
522
|
-
export interface EvalCaseSnapshot {
|
|
523
|
-
id: string;
|
|
524
|
-
fileId: string;
|
|
525
|
-
description?: string;
|
|
526
|
-
tags?: string[];
|
|
527
|
-
status: EvalCaseRunStatus;
|
|
528
|
-
ok?: boolean;
|
|
529
|
-
/** Full grade, including `scored` (soft threshold miss) and `skipped`. */
|
|
530
|
-
verdict?: EvalVerdict;
|
|
531
|
-
/** Reason passed to `t.skip(...)`. */
|
|
532
|
-
skipReason?: string;
|
|
533
|
-
assertions?: EvalAssertionResult[];
|
|
534
|
-
sessionId?: string;
|
|
535
|
-
durationMs?: number;
|
|
536
|
-
error?: string;
|
|
537
|
-
logs?: string[];
|
|
538
|
-
/** Structured scores from {@link EvalTestContext.metric}. */
|
|
539
|
-
metrics?: Record<string, string | number>;
|
|
540
|
-
/** Author-supplied metadata from `defineEval({ metadata })`. */
|
|
541
|
-
metadata?: Record<string, unknown>;
|
|
542
|
-
inputs?: string[];
|
|
543
|
-
finalText?: string;
|
|
544
|
-
tools?: string[];
|
|
545
|
-
toolCalls?: Array<{
|
|
546
|
-
toolName: string;
|
|
547
|
-
args?: unknown;
|
|
548
|
-
output?: unknown;
|
|
549
|
-
isError: boolean;
|
|
550
|
-
}>;
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
/** Playground / HTTP snapshot of one eval batch (`POST /v1/dev/evals/runs`). */
|
|
554
|
-
export interface EvalRunSnapshot {
|
|
555
|
-
runId: string;
|
|
556
|
-
status: EvalBatchStatus;
|
|
557
|
-
startedAt: string;
|
|
558
|
-
finishedAt?: string;
|
|
559
|
-
error?: string;
|
|
560
|
-
summary: {
|
|
561
|
-
passed: number;
|
|
562
|
-
failed: number;
|
|
563
|
-
/**
|
|
564
|
-
* Cases that only missed a soft threshold (fatal only under `--strict`).
|
|
565
|
-
* Optional: a batch persisted by an older serve process has no such count.
|
|
566
|
-
*/
|
|
567
|
-
scored?: number;
|
|
568
|
-
/** Cases ended by `t.skip(...)`; they never change the exit code. */
|
|
569
|
-
skipped?: number;
|
|
570
|
-
total: number;
|
|
571
|
-
done: number;
|
|
572
|
-
};
|
|
573
|
-
cases: EvalCaseSnapshot[];
|
|
574
|
-
config: {
|
|
575
|
-
maxConcurrency?: number;
|
|
576
|
-
timeoutMs?: number;
|
|
577
|
-
maxPlaygroundRuns?: number;
|
|
578
|
-
durableRuns?: boolean;
|
|
579
|
-
};
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
/** One discovered eval datapoint as returned by {@link HostEvalsApi.list}. */
|
|
583
|
-
export interface HostEvalListItem {
|
|
584
|
-
id: string;
|
|
585
|
-
fileId: string;
|
|
586
|
-
description?: string;
|
|
587
|
-
tags?: string[];
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
/** Config slice returned with {@link HostEvalsApi.list}. */
|
|
591
|
-
export interface HostEvalListConfig {
|
|
592
|
-
maxConcurrency?: number;
|
|
593
|
-
timeoutMs?: number;
|
|
594
|
-
maxPlaygroundRuns: number;
|
|
595
|
-
/** True when `agent/storage.ts` declares an `evals` table. */
|
|
596
|
-
durableRuns: boolean;
|
|
597
|
-
}
|
|
598
|
-
|
|
599
|
-
/** Input for {@link HostEvalsApi.start} (same filters as `POST /v1/dev/evals/runs`). */
|
|
600
|
-
export interface HostStartEvalRunInput {
|
|
601
|
-
filterIds?: string[];
|
|
602
|
-
tags?: string[];
|
|
603
|
-
/** Per-case timeout override (same semantics as CLI `--timeout-ms`). */
|
|
604
|
-
timeoutMs?: number;
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
/**
|
|
608
|
-
* Host-facing playground eval batches — the same surface as
|
|
609
|
-
* `/v1/dev/evals*` and `agent-sdk eval --prod`. Attached to
|
|
610
|
-
* {@link import("./types.js").HostContext.evals} by `serve`.
|
|
611
|
-
*/
|
|
612
|
-
export interface HostEvalsApi {
|
|
613
|
-
list(): Promise<{
|
|
614
|
-
evals: HostEvalListItem[];
|
|
615
|
-
config: HostEvalListConfig;
|
|
616
|
-
}>;
|
|
617
|
-
get(runId: string): Promise<EvalRunSnapshot | undefined>;
|
|
618
|
-
listRunsWithActive(): Promise<{
|
|
619
|
-
runs: EvalRunSnapshot[];
|
|
620
|
-
activeRunId?: string;
|
|
621
|
-
}>;
|
|
622
|
-
start(input?: HostStartEvalRunInput): Promise<EvalRunSnapshot>;
|
|
623
|
-
/** Cancel a running batch by Eval ID (`runId`). */
|
|
624
|
-
cancel(runId: string): Promise<EvalRunSnapshot>;
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
export interface EvalConfigFile {
|
|
628
|
-
timeoutMs?: number;
|
|
629
|
-
/**
|
|
630
|
-
* Max number of eval cases to run in parallel. Required.
|
|
631
|
-
* Hard-capped at {@link EVAL_MAX_CONCURRENCY_LIMIT} due to model provider
|
|
632
|
-
* request limits.
|
|
633
|
-
*/
|
|
634
|
-
maxConcurrency: number;
|
|
635
|
-
/**
|
|
636
|
-
* Default judge model for `t.judge.*` across this tree. Optional: a tree of
|
|
637
|
-
* fully deterministic evals never needs one.
|
|
638
|
-
*/
|
|
639
|
-
judge?: EvalJudgeConfig;
|
|
640
|
-
/**
|
|
641
|
-
* Destinations that observe **every** case in the run — the right place for a
|
|
642
|
-
* shared one, so you do not repeat it in each eval file. `--skip-report`
|
|
643
|
-
* suppresses them for a local iteration loop.
|
|
644
|
-
*/
|
|
645
|
-
reporters?: EvalReporter[];
|
|
646
|
-
/**
|
|
647
|
-
* Optional. Max batches kept in the **playground / `/v1/dev/evals*`**
|
|
648
|
-
* history window (in-memory, and pruned from the `defineStorage` evals
|
|
649
|
-
* table when one is configured). Includes server-side batches started by
|
|
650
|
-
* `agent-sdk eval --prod` or `--url` (not the default local harness).
|
|
651
|
-
*
|
|
652
|
-
* Default {@link EVAL_DEFAULT_MAX_PLAYGROUND_RUNS}; hard-capped at
|
|
653
|
-
* {@link EVAL_MAX_PLAYGROUND_RUNS}. Newest batches win.
|
|
654
|
-
*/
|
|
655
|
-
maxPlaygroundRuns?: number;
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
/**
|
|
659
|
-
* Defaults for every eval under `evals/` (`evals/evals.config.ts`).
|
|
660
|
-
* `maxConcurrency` is required (1–{@link EVAL_MAX_CONCURRENCY_LIMIT}).
|
|
661
|
-
*
|
|
662
|
-
* Playground batches default to **in-memory only**; author an `evals`
|
|
663
|
-
* table in `agent/storage.ts` (`defineStorage`) to survive serve restart.
|
|
664
|
-
*/
|
|
665
|
-
export function defineEvalConfig(config: EvalConfigFile): EvalConfigFile {
|
|
666
|
-
return {
|
|
667
|
-
...(config.timeoutMs === undefined ? {} : { timeoutMs: config.timeoutMs }),
|
|
668
|
-
maxConcurrency: normalizeEvalMaxConcurrency(config.maxConcurrency),
|
|
669
|
-
maxPlaygroundRuns: normalizeEvalMaxPlaygroundRuns(
|
|
670
|
-
config.maxPlaygroundRuns ?? EVAL_DEFAULT_MAX_PLAYGROUND_RUNS,
|
|
671
|
-
),
|
|
672
|
-
judge: config.judge,
|
|
673
|
-
reporters: config.reporters,
|
|
674
|
-
};
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
/**
|
|
678
|
-
* Validate and enforce the hard concurrency ceiling.
|
|
679
|
-
*/
|
|
680
|
-
export function normalizeEvalMaxConcurrency(value: unknown): number {
|
|
681
|
-
return normalizePositiveInt(value, {
|
|
682
|
-
label: "evals.config.ts: maxConcurrency",
|
|
683
|
-
max: EVAL_MAX_CONCURRENCY_LIMIT,
|
|
684
|
-
maxMessage: `evals.config.ts: maxConcurrency ${String(value)} exceeds the hard limit of ${EVAL_MAX_CONCURRENCY_LIMIT} (model provider request limits)`,
|
|
685
|
-
});
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
/** Validate {@link EvalConfigFile.maxPlaygroundRuns}. */
|
|
689
|
-
export function normalizeEvalMaxPlaygroundRuns(value: unknown): number {
|
|
690
|
-
return normalizePositiveInt(value, {
|
|
691
|
-
label: "evals.config.ts: maxPlaygroundRuns",
|
|
692
|
-
max: EVAL_MAX_PLAYGROUND_RUNS,
|
|
693
|
-
});
|
|
694
|
-
}
|
|
695
|
-
|
|
696
|
-
/**
|
|
697
|
-
* Effective playground history window. Invalid values fall back to
|
|
698
|
-
* {@link EVAL_DEFAULT_MAX_PLAYGROUND_RUNS} (same as a missing field).
|
|
699
|
-
*/
|
|
700
|
-
export function resolveEvalMaxPlaygroundRuns(value: unknown): number {
|
|
701
|
-
if (value === undefined) {
|
|
702
|
-
return EVAL_DEFAULT_MAX_PLAYGROUND_RUNS;
|
|
703
|
-
}
|
|
704
|
-
try {
|
|
705
|
-
return normalizeEvalMaxPlaygroundRuns(value);
|
|
706
|
-
} catch {
|
|
707
|
-
return EVAL_DEFAULT_MAX_PLAYGROUND_RUNS;
|
|
708
|
-
}
|
|
709
|
-
}
|