@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
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Author-facing OpenTelemetry surface for {@link HostContext.otel}.
|
|
3
|
-
*
|
|
4
|
-
* Always present on `ctx.host`. Counters and histograms no-op when no meter
|
|
5
|
-
* is running. `setAttributes` still tags open turn/tool spans when a
|
|
6
|
-
* collector is attached. `forSession` is engine-only so a tool cannot
|
|
7
|
-
* retarget another conversation's tags.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type { Counter, Histogram, Meter } from "@opentelemetry/api";
|
|
11
|
-
import type { HostOtelApi, HostOtelAttributes } from "../types.js";
|
|
12
|
-
import type { AttrValue } from "./otel/attrs.js";
|
|
13
|
-
import { attrs } from "./otel/attrs.js";
|
|
14
|
-
import type { OtelCollector } from "./otel/collector.js";
|
|
15
|
-
|
|
16
|
-
const METRIC_NAME = /^[A-Za-z][A-Za-z0-9_./-]*$/;
|
|
17
|
-
|
|
18
|
-
const RESERVED_METRICS = new Set([
|
|
19
|
-
"cursor.token.usage",
|
|
20
|
-
"cursor.tool.calls",
|
|
21
|
-
"cursor.cost.usage",
|
|
22
|
-
"agent_sdk.session.count",
|
|
23
|
-
"agent_sdk.turn.count",
|
|
24
|
-
"agent_sdk.subagent.count",
|
|
25
|
-
"agent_sdk.http.duration",
|
|
26
|
-
]);
|
|
27
|
-
|
|
28
|
-
const RESERVED_ATTRIBUTES = new Set([
|
|
29
|
-
"cursor.conversation.id",
|
|
30
|
-
"agent_sdk.session_id",
|
|
31
|
-
"agent_sdk.agent",
|
|
32
|
-
"agent_sdk.turn_id",
|
|
33
|
-
"agent_sdk.framework",
|
|
34
|
-
]);
|
|
35
|
-
|
|
36
|
-
export interface CreateHostOtelApiOptions {
|
|
37
|
-
agentName: string;
|
|
38
|
-
meter?: Meter;
|
|
39
|
-
collector?: OtelCollector;
|
|
40
|
-
/** Session bound for join tags; prefer {@link HostOtelSessionApi.forSession}. */
|
|
41
|
-
sessionId?: string;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/** Engine-only binding. Not part of the public {@link HostOtelApi}. */
|
|
45
|
-
export interface HostOtelSessionApi extends HostOtelApi {
|
|
46
|
-
forSession(sessionId: string): HostOtelSessionApi;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
interface CachedInstrument {
|
|
50
|
-
kind: "counter" | "histogram";
|
|
51
|
-
instrument: Counter | Histogram;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
interface SharedState {
|
|
55
|
-
agentName: string;
|
|
56
|
-
meter: Meter | undefined;
|
|
57
|
-
collector: OtelCollector | undefined;
|
|
58
|
-
instruments: Map<string, CachedInstrument>;
|
|
59
|
-
/** Used when no collector is attached so bound instances still share tags. */
|
|
60
|
-
sessionTags: Map<string, Record<string, AttrValue>>;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
interface BoundState {
|
|
64
|
-
shared: SharedState;
|
|
65
|
-
sessionId: string | undefined;
|
|
66
|
-
localTags: Record<string, AttrValue>;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/** Build the host OpenTelemetry API for one agent process. */
|
|
70
|
-
export function createHostOtelApi(options: CreateHostOtelApiOptions): HostOtelSessionApi {
|
|
71
|
-
return createBoundHostOtelApi({
|
|
72
|
-
shared: {
|
|
73
|
-
agentName: options.agentName,
|
|
74
|
-
meter: options.meter,
|
|
75
|
-
collector: options.collector,
|
|
76
|
-
instruments: new Map(),
|
|
77
|
-
sessionTags: new Map(),
|
|
78
|
-
},
|
|
79
|
-
sessionId: options.sessionId,
|
|
80
|
-
localTags: {},
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
function createBoundHostOtelApi(state: BoundState): HostOtelSessionApi {
|
|
85
|
-
const api: HostOtelSessionApi = {
|
|
86
|
-
get enabled(): boolean {
|
|
87
|
-
return state.shared.meter !== undefined;
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
setAttributes(attributes) {
|
|
91
|
-
const cleaned = validateAttributes(attributes);
|
|
92
|
-
if (state.sessionId === undefined) {
|
|
93
|
-
Object.assign(state.localTags, cleaned);
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
mergeSessionTags(state, state.sessionId, cleaned);
|
|
97
|
-
state.shared.collector?.setSessionAttributes(state.sessionId, cleaned);
|
|
98
|
-
},
|
|
99
|
-
|
|
100
|
-
increment(
|
|
101
|
-
name: string,
|
|
102
|
-
valueOrAttributes?: number | HostOtelAttributes,
|
|
103
|
-
maybeAttributes?: HostOtelAttributes,
|
|
104
|
-
) {
|
|
105
|
-
const value = typeof valueOrAttributes === "number" ? valueOrAttributes : 1;
|
|
106
|
-
const attributes =
|
|
107
|
-
typeof valueOrAttributes === "number" ? maybeAttributes : valueOrAttributes;
|
|
108
|
-
counter(state.shared, name)?.add(value, emitAttributes(state, attributes));
|
|
109
|
-
},
|
|
110
|
-
|
|
111
|
-
record(name, value, attributes) {
|
|
112
|
-
histogram(state.shared, name)?.record(value, emitAttributes(state, attributes));
|
|
113
|
-
},
|
|
114
|
-
|
|
115
|
-
forSession(sessionId) {
|
|
116
|
-
const trimmed = sessionId.trim();
|
|
117
|
-
if (trimmed === "") {
|
|
118
|
-
throw new Error("host.otel.forSession requires a non-empty session id");
|
|
119
|
-
}
|
|
120
|
-
return createBoundHostOtelApi({
|
|
121
|
-
shared: state.shared,
|
|
122
|
-
sessionId: trimmed,
|
|
123
|
-
localTags: {},
|
|
124
|
-
});
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
|
-
return api;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
function mergeSessionTags(
|
|
131
|
-
state: BoundState,
|
|
132
|
-
sessionId: string,
|
|
133
|
-
incoming: Record<string, AttrValue>,
|
|
134
|
-
): void {
|
|
135
|
-
const bag = state.shared.sessionTags.get(sessionId) ?? {};
|
|
136
|
-
Object.assign(bag, incoming);
|
|
137
|
-
state.shared.sessionTags.set(sessionId, bag);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
function emitAttributes(
|
|
141
|
-
state: BoundState,
|
|
142
|
-
callSite: HostOtelAttributes | undefined,
|
|
143
|
-
): Record<string, AttrValue> {
|
|
144
|
-
return attrs({
|
|
145
|
-
...sessionBag(state),
|
|
146
|
-
...validateAttributes(callSite),
|
|
147
|
-
"agent_sdk.agent": state.shared.agentName,
|
|
148
|
-
...(state.sessionId === undefined
|
|
149
|
-
? {}
|
|
150
|
-
: {
|
|
151
|
-
"cursor.conversation.id": state.sessionId,
|
|
152
|
-
"agent_sdk.session_id": state.sessionId,
|
|
153
|
-
}),
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
function sessionBag(state: BoundState): Record<string, AttrValue> {
|
|
158
|
-
if (state.sessionId === undefined) {
|
|
159
|
-
return state.localTags;
|
|
160
|
-
}
|
|
161
|
-
const fromCollector = state.shared.collector?.getSessionAttributes(state.sessionId);
|
|
162
|
-
const fromShared = state.shared.sessionTags.get(state.sessionId) ?? {};
|
|
163
|
-
return {
|
|
164
|
-
...fromShared,
|
|
165
|
-
...(fromCollector ?? {}),
|
|
166
|
-
...state.localTags,
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
function counter(shared: SharedState, name: string): Counter | undefined {
|
|
171
|
-
validateMetricName(name);
|
|
172
|
-
if (shared.meter === undefined) {
|
|
173
|
-
return undefined;
|
|
174
|
-
}
|
|
175
|
-
const existing = shared.instruments.get(name);
|
|
176
|
-
if (existing !== undefined) {
|
|
177
|
-
if (existing.kind !== "counter") {
|
|
178
|
-
throw new Error(`host.otel metric "${name}" is already a histogram`);
|
|
179
|
-
}
|
|
180
|
-
return existing.instrument as Counter;
|
|
181
|
-
}
|
|
182
|
-
const instrument = shared.meter.createCounter(name);
|
|
183
|
-
shared.instruments.set(name, { kind: "counter", instrument });
|
|
184
|
-
return instrument;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
function histogram(shared: SharedState, name: string): Histogram | undefined {
|
|
188
|
-
validateMetricName(name);
|
|
189
|
-
if (shared.meter === undefined) {
|
|
190
|
-
return undefined;
|
|
191
|
-
}
|
|
192
|
-
const existing = shared.instruments.get(name);
|
|
193
|
-
if (existing !== undefined) {
|
|
194
|
-
if (existing.kind !== "histogram") {
|
|
195
|
-
throw new Error(`host.otel metric "${name}" is already a counter`);
|
|
196
|
-
}
|
|
197
|
-
return existing.instrument as Histogram;
|
|
198
|
-
}
|
|
199
|
-
const instrument = shared.meter.createHistogram(name);
|
|
200
|
-
shared.instruments.set(name, { kind: "histogram", instrument });
|
|
201
|
-
return instrument;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
function validateMetricName(name: string): void {
|
|
205
|
-
if (!METRIC_NAME.test(name)) {
|
|
206
|
-
throw new Error(`host.otel metric name "${name}" must match [A-Za-z][A-Za-z0-9_./-]*`);
|
|
207
|
-
}
|
|
208
|
-
if (RESERVED_METRICS.has(name)) {
|
|
209
|
-
throw new Error(`host.otel metric name "${name}" is reserved`);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
function validateAttributes(attributes: HostOtelAttributes | undefined): Record<string, AttrValue> {
|
|
214
|
-
if (attributes === undefined) {
|
|
215
|
-
return {};
|
|
216
|
-
}
|
|
217
|
-
const out: Record<string, AttrValue> = {};
|
|
218
|
-
for (const [key, value] of Object.entries(attributes)) {
|
|
219
|
-
if (value === undefined) {
|
|
220
|
-
continue;
|
|
221
|
-
}
|
|
222
|
-
if (RESERVED_ATTRIBUTES.has(key)) {
|
|
223
|
-
throw new Error(`host.otel attribute "${key}" is reserved; the runtime always sets it`);
|
|
224
|
-
}
|
|
225
|
-
if (typeof value !== "string" && typeof value !== "number" && typeof value !== "boolean") {
|
|
226
|
-
throw new Error(`host.otel attribute "${key}" must be a string, number, or boolean`);
|
|
227
|
-
}
|
|
228
|
-
out[key] = value;
|
|
229
|
-
}
|
|
230
|
-
return out;
|
|
231
|
-
}
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Host-side GitHub + Slack clients shared across tools, channel routes,
|
|
3
|
-
* schedules, and channel packs — same injection pattern as MCP.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { WebClient } from "@slack/web-api";
|
|
7
|
-
import { createGitHubOctokit } from "../channels/github/api.js";
|
|
8
|
-
import {
|
|
9
|
-
ensureGhCliTokenEnv,
|
|
10
|
-
hasGitHubAppCredentials,
|
|
11
|
-
resolveCredentialValue,
|
|
12
|
-
resolveGitHubInstallationId,
|
|
13
|
-
tryResolveGhAuthToken,
|
|
14
|
-
} from "../channels/github/auth.js";
|
|
15
|
-
import type { GitHubChannelCredentials } from "../channels/github/types.js";
|
|
16
|
-
import { slackEnvKeys, tryResolveBotToken } from "../channels/slack/credentials.js";
|
|
17
|
-
import type { SlackCredentials } from "../channels/slack/types.js";
|
|
18
|
-
import type { HostGitHubClient, HostSlackClient } from "../types.js";
|
|
19
|
-
|
|
20
|
-
export interface HostPlatforms {
|
|
21
|
-
github: HostGitHubClient;
|
|
22
|
-
slack: HostSlackClient;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* How ambient host GitHub auth was resolved.
|
|
27
|
-
* `app` = GitHub App installation token (preferred in production).
|
|
28
|
-
* `env` / `gh` = local PAT / CLI fallbacks when App creds are unset.
|
|
29
|
-
*/
|
|
30
|
-
export type HostGitHubAuthSource = "app" | "cursor-account" | "env" | "gh" | "unavailable";
|
|
31
|
-
|
|
32
|
-
export interface HostPlatformsOptions {
|
|
33
|
-
githubCredentials?: GitHubChannelCredentials;
|
|
34
|
-
/**
|
|
35
|
-
* Per-agent Slack credentials (usually from a channel `envPrefix`).
|
|
36
|
-
* When omitted, `getClient()` falls back to `SLACK_BOT_TOKEN`.
|
|
37
|
-
*/
|
|
38
|
-
slackCredentials?: SlackCredentials;
|
|
39
|
-
/** Env prefix used only to name the missing-token error. */
|
|
40
|
-
slackEnvPrefix?: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/** Bot-token Slack client. Pass channel credentials so `envPrefix` is honored. */
|
|
44
|
-
export function createHostSlackClient(
|
|
45
|
-
options: { credentials?: SlackCredentials; envPrefix?: string } = {},
|
|
46
|
-
): HostSlackClient {
|
|
47
|
-
let slackPromise: ReturnType<HostSlackClient["getClient"]> | undefined;
|
|
48
|
-
return {
|
|
49
|
-
getClient: async () => {
|
|
50
|
-
slackPromise ??= (async () => {
|
|
51
|
-
const token = await tryResolveBotToken(options.credentials);
|
|
52
|
-
if (token === undefined) {
|
|
53
|
-
const botKey = slackEnvKeys(options.envPrefix).bot;
|
|
54
|
-
const hint =
|
|
55
|
-
options.envPrefix === undefined || options.envPrefix.trim() === ""
|
|
56
|
-
? `${botKey} or a channel envPrefix`
|
|
57
|
-
: botKey;
|
|
58
|
-
throw new Error(`No Slack bot token available (set ${hint}).`);
|
|
59
|
-
}
|
|
60
|
-
return new WebClient(token);
|
|
61
|
-
})();
|
|
62
|
-
return slackPromise;
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Build host platforms from ambient credentials. Prefer App installation
|
|
69
|
-
* auth when configured; otherwise fall back to PAT / `gh auth` for local
|
|
70
|
-
* testing. Webhook-scoped calls should still prefer `ctx.github`.
|
|
71
|
-
*/
|
|
72
|
-
export function createHostPlatforms(options: HostPlatformsOptions = {}): HostPlatforms {
|
|
73
|
-
let octokitPromise: ReturnType<HostGitHubClient["getOctokit"]> | undefined;
|
|
74
|
-
|
|
75
|
-
return {
|
|
76
|
-
github: {
|
|
77
|
-
getOctokit: () => {
|
|
78
|
-
octokitPromise ??= createGitHubOctokit({
|
|
79
|
-
credentials: options.githubCredentials,
|
|
80
|
-
});
|
|
81
|
-
return octokitPromise;
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
slack: createHostSlackClient({
|
|
85
|
-
credentials: options.slackCredentials,
|
|
86
|
-
envPrefix: options.slackEnvPrefix,
|
|
87
|
-
}),
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Detect ambient host GitHub auth without throwing.
|
|
93
|
-
* Order matches {@link createGitHubOctokit}: App installation, then
|
|
94
|
-
* `GITHUB_TOKEN` / `GH_TOKEN`, then `gh auth token`.
|
|
95
|
-
*/
|
|
96
|
-
export async function resolveHostGitHubAuthSource(): Promise<HostGitHubAuthSource> {
|
|
97
|
-
if ((await hasGitHubAppCredentials()) && (await resolveGitHubInstallationId()) !== undefined) {
|
|
98
|
-
return "app";
|
|
99
|
-
}
|
|
100
|
-
const fromEnv =
|
|
101
|
-
(await resolveCredentialValue(process.env.GITHUB_TOKEN)) ??
|
|
102
|
-
(await resolveCredentialValue(process.env.GH_TOKEN));
|
|
103
|
-
if (fromEnv !== undefined) {
|
|
104
|
-
return "env";
|
|
105
|
-
}
|
|
106
|
-
const fromGh = await tryResolveGhAuthToken();
|
|
107
|
-
return fromGh === undefined ? "unavailable" : "gh";
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Soft boot-time GitHub auth check: log the resolved source and optionally
|
|
112
|
-
* prime `github.getOctokit()` so the first request does not pay CLI latency.
|
|
113
|
-
* When auth is App-backed, also export an installation token as `GH_TOKEN`
|
|
114
|
-
* so tools that shell out to `gh` (a host-side `prepare_pr` tool, say)
|
|
115
|
-
* authenticate on corp hosts that have no PAT / `gh
|
|
116
|
-
* auth login`. Never fails serve — missing auth is logged as a warning.
|
|
117
|
-
*/
|
|
118
|
-
export async function warmupHostGitHubAuth(options: {
|
|
119
|
-
logger: (line: string) => void;
|
|
120
|
-
github?: HostGitHubClient;
|
|
121
|
-
authSource?: HostGitHubAuthSource;
|
|
122
|
-
}): Promise<HostGitHubAuthSource> {
|
|
123
|
-
const source = options.authSource ?? (await resolveHostGitHubAuthSource());
|
|
124
|
-
if (source === "unavailable") {
|
|
125
|
-
options.logger(
|
|
126
|
-
"[agent-sdk] GitHub auth: unavailable (set GITHUB_APP_ID + GITHUB_APP_PRIVATE_KEY + GITHUB_APP_INSTALLATION_ID, or GITHUB_TOKEN / GH_TOKEN, or run `gh auth login`)",
|
|
127
|
-
);
|
|
128
|
-
return source;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
let exportedGhToken = false;
|
|
132
|
-
if (source === "app") {
|
|
133
|
-
try {
|
|
134
|
-
exportedGhToken = await ensureGhCliTokenEnv();
|
|
135
|
-
} catch (error) {
|
|
136
|
-
options.logger(
|
|
137
|
-
`[agent-sdk] GitHub auth: failed to export GH_TOKEN for gh CLI: ${
|
|
138
|
-
error instanceof Error ? error.message : String(error)
|
|
139
|
-
}`,
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
const label =
|
|
145
|
-
source === "cursor-account"
|
|
146
|
-
? "Cursor account repo-scoped credential (also exported as GH_TOKEN for gh CLI)"
|
|
147
|
-
: source === "app"
|
|
148
|
-
? exportedGhToken
|
|
149
|
-
? "GitHub App installation token (also exported as GH_TOKEN for gh CLI)"
|
|
150
|
-
: "GitHub App installation token"
|
|
151
|
-
: source === "env"
|
|
152
|
-
? "GITHUB_TOKEN/GH_TOKEN"
|
|
153
|
-
: "gh auth token";
|
|
154
|
-
if (options.github === undefined) {
|
|
155
|
-
options.logger(`[agent-sdk] GitHub auth: ${label}`);
|
|
156
|
-
return source;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
try {
|
|
160
|
-
await options.github.getOctokit();
|
|
161
|
-
options.logger(`[agent-sdk] GitHub auth: ${label}`);
|
|
162
|
-
} catch (error) {
|
|
163
|
-
options.logger(
|
|
164
|
-
`[agent-sdk] GitHub auth: ${label} resolved but Octokit warmup failed: ${
|
|
165
|
-
error instanceof Error ? error.message : String(error)
|
|
166
|
-
}`,
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
return source;
|
|
170
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { ChannelHandlerArgs } from "../types.js";
|
|
2
|
-
import type { HostedAdmissionPlatformHandoff } from "./hosted-delivery-protocol.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Hosted-admission hook a channel pack attaches to its definition.
|
|
6
|
-
*
|
|
7
|
-
* Hosted delivery looks this up from the mounted definition — it does not
|
|
8
|
-
* switch on `channelKind`. A new forge implements `dispatch` next to its
|
|
9
|
-
* webhook handler and calls {@link attachHostedAdmissionAdapter} from the
|
|
10
|
-
* channel constructor. Every 2xx from `dispatch` must carry a tag from
|
|
11
|
-
* `internal/channel-dispatch`; an untagged one is answered with 502
|
|
12
|
-
* `channel_outcome_missing`.
|
|
13
|
-
*/
|
|
14
|
-
export type HostedAdmissionAdapter = {
|
|
15
|
-
kind: string;
|
|
16
|
-
/**
|
|
17
|
-
* Optional wrap of the capturing `send` / `waitUntil` args (the PR
|
|
18
|
-
* channels use this to propagate background-task errors). Identity when
|
|
19
|
-
* omitted.
|
|
20
|
-
*/
|
|
21
|
-
prepareArgs?(args: ChannelHandlerArgs): ChannelHandlerArgs;
|
|
22
|
-
dispatch(input: {
|
|
23
|
-
/** Mounted channel id the delivery addressed (always set by hosted delivery). */
|
|
24
|
-
channelId?: string;
|
|
25
|
-
eventType: string;
|
|
26
|
-
payload: unknown;
|
|
27
|
-
deliveryId: string;
|
|
28
|
-
args: ChannelHandlerArgs;
|
|
29
|
-
/** Mailbox key the control plane already allocated for this admission. */
|
|
30
|
-
mailboxContinuationKey?: string;
|
|
31
|
-
/** Trusted control-plane handoff (Slack placeholder ts, …). */
|
|
32
|
-
platformHandoff?: HostedAdmissionPlatformHandoff;
|
|
33
|
-
}): Promise<Response>;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
const adapters = new WeakMap<object, HostedAdmissionAdapter>();
|
|
37
|
-
|
|
38
|
-
export function attachHostedAdmissionAdapter(
|
|
39
|
-
definition: object,
|
|
40
|
-
adapter: HostedAdmissionAdapter,
|
|
41
|
-
): void {
|
|
42
|
-
adapters.set(definition, adapter);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export function getHostedAdmissionAdapter(definition: object): HostedAdmissionAdapter | undefined {
|
|
46
|
-
return adapters.get(definition);
|
|
47
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* A `send()` captured outside the delivery (typically at channel `onStart`,
|
|
5
|
-
* which binds directly to the engine) reached the engine during a hosted
|
|
6
|
-
* admission window. Running it would start a local July session on a
|
|
7
|
-
* sessionless pod — invisible to the control plane, destroyed with the pod —
|
|
8
|
-
* so it fails loudly instead. This is a deterministic authored bug and is
|
|
9
|
-
* surfaced as a non-retryable 422 by the admission route.
|
|
10
|
-
*/
|
|
11
|
-
export class HostedAdmissionLocalSendError extends Error {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(
|
|
14
|
-
"send() reached the local engine during hosted admission. A send " +
|
|
15
|
-
"captured at channel startup (onStart) bypasses hosted capture and " +
|
|
16
|
-
"would run an invisible local session on a sessionless pod. Use the " +
|
|
17
|
-
"per-delivery send passed to the task callback " +
|
|
18
|
-
"(task: (args) => args.send(…)) instead.",
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const admissionWindow = new AsyncLocalStorage<true>();
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Run `work` inside the hosted admission window. The context follows the
|
|
27
|
-
* async graph, including `waitUntil` task bodies scheduled during dispatch,
|
|
28
|
-
* so the engine can refuse local sends that bypass the capture stub.
|
|
29
|
-
*/
|
|
30
|
-
export function runDuringHostedAdmission<T>(work: () => T): T {
|
|
31
|
-
return admissionWindow.run(true, work);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/** True while executing inside a hosted admission window. */
|
|
35
|
-
export function isDuringHostedAdmission(): boolean {
|
|
36
|
-
return admissionWindow.getStore() === true;
|
|
37
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Catch ingress wire contract, July copy. The control plane keeps a
|
|
3
|
-
* byte-identical copy of these constants in
|
|
4
|
-
* `backend/packages/server-shared/src/agentServe/agentSdkCatch.ts`; a
|
|
5
|
-
* backend drift test compares the two as text. Neither package imports the
|
|
6
|
-
* other.
|
|
7
|
-
*
|
|
8
|
-
* A caught request is one hosted admission whose `eventType` is
|
|
9
|
-
* {@link AGENT_SDK_CATCH_EVENT_TYPE} and whose `payload` is a
|
|
10
|
-
* {@link CatchRequestEnvelope}: the HTTP request the control plane
|
|
11
|
-
* accepted on a manifest-declared route after verifying the deployment's
|
|
12
|
-
* secret. July replays it into the authored route handler; the control
|
|
13
|
-
* plane never runs channel code.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import { isRecord } from "./is-record.js";
|
|
17
|
-
|
|
18
|
-
export const AGENT_SDK_CATCH_ENVELOPE_VERSION = 1;
|
|
19
|
-
export const AGENT_SDK_CATCH_EVENT_TYPE = "http.request";
|
|
20
|
-
export const AGENT_SDK_CUSTOM_CHANNEL_KIND = "custom";
|
|
21
|
-
export const AGENT_SDK_SESSION_EVENT_TYPE = "agentsdk.session";
|
|
22
|
-
export const AGENT_SDK_HTTP_CHANNEL_ID = "http";
|
|
23
|
-
export const AGENT_SDK_HTTP_CHANNEL_KIND = "http";
|
|
24
|
-
export const AGENT_SDK_SESSION_RESUME_KEY_PREFIX = "cont:session:";
|
|
25
|
-
export const AGENT_SDK_CATCH_MAX_BODY_BYTES: number = 256 * 1024;
|
|
26
|
-
|
|
27
|
-
export const AGENT_SDK_CATCH_ROUTE_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE"] as const;
|
|
28
|
-
export type CatchRouteMethod = (typeof AGENT_SDK_CATCH_ROUTE_METHODS)[number];
|
|
29
|
-
|
|
30
|
-
export type CatchRequestEnvelope = {
|
|
31
|
-
v: 1;
|
|
32
|
-
method: CatchRouteMethod;
|
|
33
|
-
/** Channel-relative path, e.g. `/webhook`. */
|
|
34
|
-
path: string;
|
|
35
|
-
/** Raw query string without the leading `?`; empty when absent. */
|
|
36
|
-
query: string;
|
|
37
|
-
/** Lowercased header names. */
|
|
38
|
-
headers: Record<string, string>;
|
|
39
|
-
body: { encoding: "utf8" | "base64"; data: string } | null;
|
|
40
|
-
receivedAt: string;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Mailbox key the control plane stamps on an explicit `ses_…` resume. The
|
|
45
|
-
* suffix is the CP session id the hosted execution also names, so the
|
|
46
|
-
* engine can recognise the key as "this existing session" rather than a
|
|
47
|
-
* new continuation identity.
|
|
48
|
-
*/
|
|
49
|
-
export function hostedSessionResumeKey(sessionPublicId: string): string {
|
|
50
|
-
return `${AGENT_SDK_SESSION_RESUME_KEY_PREFIX}${sessionPublicId}`;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const ENVELOPE_KEYS = new Set(["v", "method", "path", "query", "headers", "body", "receivedAt"]);
|
|
54
|
-
const METHODS = new Set<string>(AGENT_SDK_CATCH_ROUTE_METHODS);
|
|
55
|
-
const MAX_PATH_CHARS = 1024;
|
|
56
|
-
const MAX_QUERY_CHARS = 4096;
|
|
57
|
-
const MAX_HEADER_COUNT = 64;
|
|
58
|
-
const MAX_HEADER_BYTES = 16 * 1024;
|
|
59
|
-
|
|
60
|
-
/** Strict parse of a claim-checked catch envelope; anything else is undefined. */
|
|
61
|
-
export function parseCatchRequestEnvelope(value: unknown): CatchRequestEnvelope | undefined {
|
|
62
|
-
if (!isRecord(value)) {
|
|
63
|
-
return undefined;
|
|
64
|
-
}
|
|
65
|
-
if (
|
|
66
|
-
Object.keys(value).some(key => !ENVELOPE_KEYS.has(key)) ||
|
|
67
|
-
value.v !== AGENT_SDK_CATCH_ENVELOPE_VERSION ||
|
|
68
|
-
typeof value.method !== "string" ||
|
|
69
|
-
!METHODS.has(value.method) ||
|
|
70
|
-
typeof value.path !== "string" ||
|
|
71
|
-
!value.path.startsWith("/") ||
|
|
72
|
-
value.path.length > MAX_PATH_CHARS ||
|
|
73
|
-
typeof value.query !== "string" ||
|
|
74
|
-
value.query.length > MAX_QUERY_CHARS ||
|
|
75
|
-
typeof value.receivedAt !== "string" ||
|
|
76
|
-
!isRecord(value.headers)
|
|
77
|
-
) {
|
|
78
|
-
return undefined;
|
|
79
|
-
}
|
|
80
|
-
const entries = Object.entries(value.headers);
|
|
81
|
-
if (entries.length > MAX_HEADER_COUNT) {
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
let headerBytes = 0;
|
|
85
|
-
for (const [name, headerValue] of entries) {
|
|
86
|
-
if (typeof headerValue !== "string" || name !== name.toLowerCase()) {
|
|
87
|
-
return undefined;
|
|
88
|
-
}
|
|
89
|
-
headerBytes += name.length + headerValue.length;
|
|
90
|
-
}
|
|
91
|
-
if (headerBytes > MAX_HEADER_BYTES) {
|
|
92
|
-
return undefined;
|
|
93
|
-
}
|
|
94
|
-
if (value.body !== null) {
|
|
95
|
-
if (
|
|
96
|
-
!isRecord(value.body) ||
|
|
97
|
-
(value.body.encoding !== "utf8" && value.body.encoding !== "base64") ||
|
|
98
|
-
typeof value.body.data !== "string"
|
|
99
|
-
) {
|
|
100
|
-
return undefined;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return value as CatchRequestEnvelope;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/** Raw request bytes from an envelope body; empty for a null body. */
|
|
107
|
-
export function decodeCatchBody(body: CatchRequestEnvelope["body"]): Buffer {
|
|
108
|
-
if (body === null) {
|
|
109
|
-
return Buffer.alloc(0);
|
|
110
|
-
}
|
|
111
|
-
return Buffer.from(body.data, body.encoding);
|
|
112
|
-
}
|