@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,276 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File-backed `defineStorage` helper: a file-per-key KV store plus a
|
|
3
|
-
* file-backed `evals` table.
|
|
4
|
-
*
|
|
5
|
-
* Implements the whole `defineStorage` surface with zero external
|
|
6
|
-
* dependencies: the four KV methods against a flat directory of JSON files
|
|
7
|
-
* (one file per key, filename = URI-encoded key), the `cas`
|
|
8
|
-
* group (single-process conditional writes — see the `cas` member below),
|
|
9
|
-
* and eval runs as `eval-runs/<agent>/<runId>.json`. KV keys carry the
|
|
10
|
-
* agent name inside the framework key scheme, but the evals table has no
|
|
11
|
-
* such scheme — the agent subdirectory keeps agents sharing one storage
|
|
12
|
-
* `dir` from mixing or overwriting each other's history. Swap this for a
|
|
13
|
-
* real backend (Postgres, S3, …) in production; the contracts are
|
|
14
|
-
* identical.
|
|
15
|
-
*
|
|
16
|
-
* Layout notes:
|
|
17
|
-
* - KV filenames encode the full key (`encodeURIComponent(key) + ".json"`),
|
|
18
|
-
* so `list(prefix)` is a readdir + decode + filter, returned in key
|
|
19
|
-
* order as the contract requires.
|
|
20
|
-
* - `put` writes via tmp + rename: the framework serializes writes, but a
|
|
21
|
-
* restore-path `get`/`list` can run concurrently and must never see a
|
|
22
|
-
* torn file.
|
|
23
|
-
* - `get` distinguishes a definitive miss (ENOENT → `undefined`) from a
|
|
24
|
-
* real failure (anything else throws) — on the lazy-restore path a
|
|
25
|
-
* throw correctly fails the follow-up instead of forking the session.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
import { createHash, randomUUID } from "node:crypto";
|
|
29
|
-
import { mkdir, readdir, readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
30
|
-
import { isAbsolute, join } from "node:path";
|
|
31
|
-
import type { EvalRunSnapshot } from "../evals.js";
|
|
32
|
-
import type {
|
|
33
|
-
StorageCasTable,
|
|
34
|
-
StorageConfig,
|
|
35
|
-
StorageContext,
|
|
36
|
-
StorageEntry,
|
|
37
|
-
StorageEvalsTable,
|
|
38
|
-
} from "../storage.js";
|
|
39
|
-
import type { JsonValue, KvVersionedEntry } from "../types.js";
|
|
40
|
-
|
|
41
|
-
export interface FileKvOptions {
|
|
42
|
-
/**
|
|
43
|
-
* Directory holding the storage files, relative to the agent project root
|
|
44
|
-
* (default `".agent-serve/kv"`). Absolute paths are used as-is.
|
|
45
|
-
*/
|
|
46
|
-
dir?: string;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
type FileKvMethods = Required<Pick<StorageConfig, "put" | "get" | "delete" | "list">> & {
|
|
50
|
-
cas: StorageCasTable;
|
|
51
|
-
evals: StorageEvalsTable;
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
/** File-backed `defineStorage` methods, ready to spread into `defineStorage({...})`. */
|
|
55
|
-
export function fileKv(options?: FileKvOptions): FileKvMethods {
|
|
56
|
-
const resolveDir = (ctx: StorageContext): string => {
|
|
57
|
-
const dir = options?.dir ?? ".agent-serve/kv";
|
|
58
|
-
return isAbsolute(dir) ? dir : join(ctx.projectRoot, dir);
|
|
59
|
-
};
|
|
60
|
-
// The evals table is scoped per agent (KV keys already carry the agent
|
|
61
|
-
// name via the framework key scheme).
|
|
62
|
-
const evalRunsDir = (ctx: StorageContext): string =>
|
|
63
|
-
join(resolveDir(ctx), "eval-runs", encodeURIComponent(ctx.agentName));
|
|
64
|
-
const filePath = (ctx: StorageContext, key: string): string =>
|
|
65
|
-
join(resolveDir(ctx), `${encodeURIComponent(key)}.json`);
|
|
66
|
-
const readRaw = async (ctx: StorageContext, key: string): Promise<string | undefined> => {
|
|
67
|
-
try {
|
|
68
|
-
return await readFile(filePath(ctx, key), "utf8");
|
|
69
|
-
} catch (error) {
|
|
70
|
-
if ((error as NodeJS.ErrnoException).code === "ENOENT") {
|
|
71
|
-
return undefined; // definitive miss — key was never written
|
|
72
|
-
}
|
|
73
|
-
throw error; // real failure: let lazy restore fail the follow-up
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
const readKey = async (ctx: StorageContext, key: string): Promise<JsonValue | undefined> => {
|
|
77
|
-
const text = await readRaw(ctx, key);
|
|
78
|
-
return text === undefined ? undefined : (JSON.parse(text) as JsonValue);
|
|
79
|
-
};
|
|
80
|
-
const readVersioned = async (
|
|
81
|
-
ctx: StorageContext,
|
|
82
|
-
key: string,
|
|
83
|
-
): Promise<KvVersionedEntry | undefined> => {
|
|
84
|
-
const text = await readRaw(ctx, key);
|
|
85
|
-
if (text === undefined) {
|
|
86
|
-
return undefined;
|
|
87
|
-
}
|
|
88
|
-
return { value: JSON.parse(text) as JsonValue, version: versionOf(text) };
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
// In-process mutex: CAS check-then-write pairs queue on one promise
|
|
92
|
-
// chain so they cannot interleave with each other. Plain `put` stays
|
|
93
|
-
// outside the chain on purpose — it is unconditional LWW and always
|
|
94
|
-
// wins the key, like a SQL upsert would win the row.
|
|
95
|
-
let casChain: Promise<unknown> = Promise.resolve();
|
|
96
|
-
const locked = <T>(task: () => Promise<T>): Promise<T> => {
|
|
97
|
-
const result = casChain.then(task, task);
|
|
98
|
-
casChain = result.then(
|
|
99
|
-
() => undefined,
|
|
100
|
-
() => undefined,
|
|
101
|
-
);
|
|
102
|
-
return result;
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
return {
|
|
106
|
-
async put(key, value, ctx): Promise<void> {
|
|
107
|
-
await writeJsonAtomic({
|
|
108
|
-
dir: resolveDir(ctx),
|
|
109
|
-
fileName: `${encodeURIComponent(key)}.json`,
|
|
110
|
-
value,
|
|
111
|
-
});
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
get(key, ctx): Promise<JsonValue | undefined> {
|
|
115
|
-
return readKey(ctx, key);
|
|
116
|
-
},
|
|
117
|
-
|
|
118
|
-
async delete(key, ctx): Promise<void> {
|
|
119
|
-
await rm(filePath(ctx, key), { force: true });
|
|
120
|
-
},
|
|
121
|
-
|
|
122
|
-
async list(prefix, ctx): Promise<StorageEntry[]> {
|
|
123
|
-
let names: string[];
|
|
124
|
-
try {
|
|
125
|
-
names = await readdir(resolveDir(ctx));
|
|
126
|
-
} catch (error) {
|
|
127
|
-
if ((error as NodeJS.ErrnoException).code === "ENOENT") {
|
|
128
|
-
return []; // nothing stored yet
|
|
129
|
-
}
|
|
130
|
-
throw error;
|
|
131
|
-
}
|
|
132
|
-
const keys = names
|
|
133
|
-
.filter(name => name.endsWith(".json"))
|
|
134
|
-
.map(name => decodeURIComponent(name.slice(0, -".json".length)))
|
|
135
|
-
.filter(key => key.startsWith(prefix))
|
|
136
|
-
.sort();
|
|
137
|
-
const entries: StorageEntry[] = [];
|
|
138
|
-
for (const key of keys) {
|
|
139
|
-
const value = await readKey(ctx, key);
|
|
140
|
-
if (value !== undefined) {
|
|
141
|
-
entries.push({ key, value });
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return entries;
|
|
145
|
-
},
|
|
146
|
-
|
|
147
|
-
// Conditional writes over the same raw value files — no on-disk format
|
|
148
|
-
// change, so data written before the CAS group existed stays readable
|
|
149
|
-
// and plain `put` stays byte-identical. The version token is a content
|
|
150
|
-
// hash of the stored JSON text: it changes whenever the value does,
|
|
151
|
-
// and the in-process mutex makes read-check-write atomic, so a token
|
|
152
|
-
// can never go stale between the check and the rename. The one caveat
|
|
153
|
-
// of hash versions — ABA when a value returns to identical bytes — is
|
|
154
|
-
// moot for coordination values that carry a monotonic counter. CAS
|
|
155
|
-
// correctness is **single-process only**: two pods sharing this
|
|
156
|
-
// directory would race between read and rename, so a file store is
|
|
157
|
-
// only safe for single-instance deployments.
|
|
158
|
-
cas: {
|
|
159
|
-
getWithVersion: (key, ctx): Promise<KvVersionedEntry | undefined> => readVersioned(ctx, key),
|
|
160
|
-
|
|
161
|
-
putIfAbsent: (key, value, ctx) =>
|
|
162
|
-
locked(async () => {
|
|
163
|
-
const current = await readVersioned(ctx, key);
|
|
164
|
-
if (current !== undefined) {
|
|
165
|
-
return { ok: false, current };
|
|
166
|
-
}
|
|
167
|
-
const text = JSON.stringify(value);
|
|
168
|
-
await writeTextAtomic({
|
|
169
|
-
dir: resolveDir(ctx),
|
|
170
|
-
fileName: `${encodeURIComponent(key)}.json`,
|
|
171
|
-
text,
|
|
172
|
-
});
|
|
173
|
-
return { ok: true, version: versionOf(text) };
|
|
174
|
-
}),
|
|
175
|
-
|
|
176
|
-
putIfVersion: (key, value, expectedVersion, ctx) =>
|
|
177
|
-
locked(async () => {
|
|
178
|
-
const current = await readVersioned(ctx, key);
|
|
179
|
-
if (current === undefined || current.version !== expectedVersion) {
|
|
180
|
-
return { ok: false, current };
|
|
181
|
-
}
|
|
182
|
-
const text = JSON.stringify(value);
|
|
183
|
-
await writeTextAtomic({
|
|
184
|
-
dir: resolveDir(ctx),
|
|
185
|
-
fileName: `${encodeURIComponent(key)}.json`,
|
|
186
|
-
text,
|
|
187
|
-
});
|
|
188
|
-
return { ok: true, version: versionOf(text) };
|
|
189
|
-
}),
|
|
190
|
-
|
|
191
|
-
async listKeys(prefix, ctx): Promise<string[]> {
|
|
192
|
-
let names: string[];
|
|
193
|
-
try {
|
|
194
|
-
names = await readdir(resolveDir(ctx));
|
|
195
|
-
} catch (error) {
|
|
196
|
-
if ((error as NodeJS.ErrnoException).code === "ENOENT") {
|
|
197
|
-
return [];
|
|
198
|
-
}
|
|
199
|
-
throw error;
|
|
200
|
-
}
|
|
201
|
-
return names
|
|
202
|
-
.filter(name => name.endsWith(".json"))
|
|
203
|
-
.map(name => decodeURIComponent(name.slice(0, -".json".length)))
|
|
204
|
-
.filter(key => key.startsWith(prefix))
|
|
205
|
-
.sort();
|
|
206
|
-
},
|
|
207
|
-
},
|
|
208
|
-
|
|
209
|
-
// Playground eval batches: one JSON file per run under eval-runs/<agent>/.
|
|
210
|
-
evals: {
|
|
211
|
-
async put(run, ctx): Promise<void> {
|
|
212
|
-
await writeJsonAtomic({
|
|
213
|
-
dir: evalRunsDir(ctx),
|
|
214
|
-
fileName: `${encodeURIComponent(run.runId)}.json`,
|
|
215
|
-
value: run,
|
|
216
|
-
});
|
|
217
|
-
},
|
|
218
|
-
async delete(runId, ctx): Promise<void> {
|
|
219
|
-
await rm(join(evalRunsDir(ctx), `${encodeURIComponent(runId)}.json`), {
|
|
220
|
-
force: true,
|
|
221
|
-
});
|
|
222
|
-
},
|
|
223
|
-
async list(ctx): Promise<EvalRunSnapshot[]> {
|
|
224
|
-
const dir = evalRunsDir(ctx);
|
|
225
|
-
let names: string[];
|
|
226
|
-
try {
|
|
227
|
-
names = await readdir(dir);
|
|
228
|
-
} catch (error) {
|
|
229
|
-
if ((error as NodeJS.ErrnoException).code === "ENOENT") {
|
|
230
|
-
return [];
|
|
231
|
-
}
|
|
232
|
-
throw error;
|
|
233
|
-
}
|
|
234
|
-
const runs: EvalRunSnapshot[] = [];
|
|
235
|
-
for (const name of names.filter(n => n.endsWith(".json")).sort()) {
|
|
236
|
-
// One unreadable/corrupt file must not wipe the whole history:
|
|
237
|
-
// hydrate treats a throwing list() as "nothing saved".
|
|
238
|
-
try {
|
|
239
|
-
runs.push(JSON.parse(await readFile(join(dir, name), "utf8")) as EvalRunSnapshot);
|
|
240
|
-
} catch {}
|
|
241
|
-
}
|
|
242
|
-
return runs;
|
|
243
|
-
},
|
|
244
|
-
},
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/** Content-hash version token for a stored JSON text. */
|
|
249
|
-
function versionOf(text: string): string {
|
|
250
|
-
return `sha256:${createHash("sha256").update(text, "utf8").digest("hex")}`;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
/** tmp + rename write so concurrent readers never see a torn file. */
|
|
254
|
-
async function writeJsonAtomic(args: {
|
|
255
|
-
dir: string;
|
|
256
|
-
fileName: string;
|
|
257
|
-
value: unknown;
|
|
258
|
-
}): Promise<void> {
|
|
259
|
-
await writeTextAtomic({
|
|
260
|
-
dir: args.dir,
|
|
261
|
-
fileName: args.fileName,
|
|
262
|
-
text: JSON.stringify(args.value),
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/** tmp + rename write of exact text (CAS hashes the same bytes it wrote). */
|
|
267
|
-
async function writeTextAtomic(args: {
|
|
268
|
-
dir: string;
|
|
269
|
-
fileName: string;
|
|
270
|
-
text: string;
|
|
271
|
-
}): Promise<void> {
|
|
272
|
-
await mkdir(args.dir, { recursive: true });
|
|
273
|
-
const tmp = join(args.dir, `.tmp-${randomUUID()}`);
|
|
274
|
-
await writeFile(tmp, args.text, "utf8");
|
|
275
|
-
await rename(tmp, join(args.dir, args.fileName));
|
|
276
|
-
}
|
package/src/storage-protocol.ts
DELETED
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Durable session KV contract: key families plus a tolerant SessionRecord
|
|
3
|
-
* decoder. Architecture v1 remains in lockstep with the Bugbot-backed control
|
|
4
|
-
* plane. Architecture v2 uses the same key shape under its AgentSDK root.
|
|
5
|
-
*
|
|
6
|
-
* Additive JSON only — unknown fields are ignored.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { createHash } from "node:crypto";
|
|
10
|
-
import { isRecord } from "./internal/is-record.js";
|
|
11
|
-
|
|
12
|
-
/** Legacy architecture-v1 storage root. */
|
|
13
|
-
export const STORAGE_KEY_ROOT = "agentkit/v1" as const;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Architecture-v2 storage root. Hard cutoff: v2 writes and reads this
|
|
17
|
-
* prefix only. Existing `agentkit/v1` v2 objects are not migrated.
|
|
18
|
-
*/
|
|
19
|
-
export const AGENTSDK_STORAGE_KEY_ROOT = "agentsdk/v1" as const;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Exact session-record keys: `{agentkit|agentsdk}/v1/{agent}/session/{sessionId}`.
|
|
23
|
-
* Rejects `session-events/` and the CP-owned `_cp` agent name.
|
|
24
|
-
*/
|
|
25
|
-
const DURABLE_SESSION_RECORD_KEY_RE = /^(agentkit|agentsdk)\/v1\/([^/]+)\/session\/([^/]+)$/;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Build the framework-owned key scheme under one versioned root. Channel ids
|
|
29
|
-
* and continuation tokens are URI-encoded, and oversized segments are
|
|
30
|
-
* replaced by a deterministic `sha256:…` digest.
|
|
31
|
-
*
|
|
32
|
-
* | Key | Value |
|
|
33
|
-
* | --- | --- |
|
|
34
|
-
* | `{root}/{agent}/session/{sessionId}` | `SessionRecord` |
|
|
35
|
-
* | `{root}/{agent}/session-events/{sessionId}/{index}` | `SessionEvent[]` chunk (index = first event's index, zero-padded) |
|
|
36
|
-
* | `{root}/{agent}/session-runs/{sessionPublicId}` | One session-level hosted-execution log (executions[] + lastFailure) |
|
|
37
|
-
* | `{root}/{agent}/logs/{logId}` | Hosted engine stdout/stderr tee (on-disk `start.log`; `ses_…` after send, `wf:{workflowId}` on admission failure) |
|
|
38
|
-
* | `{root}/{agent}/continuation/{channelId}/{token}` | `{ sessionId }` |
|
|
39
|
-
* | `{root}/{agent}/kv/{key}` | Author JSON via `HostContext.kv` |
|
|
40
|
-
*
|
|
41
|
-
* The `eval-runs` family is minted only by the table `defineStorage`
|
|
42
|
-
* derives over the KV core; a backend that authors a dedicated
|
|
43
|
-
* `StorageConfig.evals` group never sees it.
|
|
44
|
-
*/
|
|
45
|
-
function createStorageKeys(root: string) {
|
|
46
|
-
return {
|
|
47
|
-
session: (agent: string, sessionId: string): string => `${root}/${agent}/session/${sessionId}`,
|
|
48
|
-
sessionPrefix: (agent: string): string => `${root}/${agent}/session/`,
|
|
49
|
-
sessionEvents: (agent: string, sessionId: string, firstIndex: number): string =>
|
|
50
|
-
`${root}/${agent}/session-events/${sessionId}/${String(firstIndex).padStart(8, "0")}`,
|
|
51
|
-
sessionEventsPrefix: (agent: string, sessionId: string): string =>
|
|
52
|
-
`${root}/${agent}/session-events/${sessionId}/`,
|
|
53
|
-
/**
|
|
54
|
-
* One session-level hosted-execution log (v2 only). `sessionPublicId` is
|
|
55
|
-
* the factory `ses_…` so a throw that never minted a July session still
|
|
56
|
-
* lands under a stable key. Per-execution rows live inside the document.
|
|
57
|
-
*/
|
|
58
|
-
sessionRun: (agent: string, sessionPublicId: string): string =>
|
|
59
|
-
`${root}/${agent}/session-runs/${keySegment(sessionPublicId)}`,
|
|
60
|
-
sessionRunsPrefix: (agent: string): string => `${root}/${agent}/session-runs/`,
|
|
61
|
-
/**
|
|
62
|
-
* The v2 customer log: the engine stdout/stderr tee (on-disk `start.log`).
|
|
63
|
-
* `logId` is the factory `ses_…` after a `send`, or
|
|
64
|
-
* `wf:{workflowId}` / `wf:{workflowId}/{runId}` when admission fails
|
|
65
|
-
* before a session exists. Skip/task admissions do not write this key.
|
|
66
|
-
* Stored as raw UTF-8, not JSON — the file store accepts 64 MiB
|
|
67
|
-
* objects, and this key is flushed in snapshots, not per line.
|
|
68
|
-
*/
|
|
69
|
-
log: (agent: string, logId: string): string => `${root}/${agent}/logs/${keySegment(logId)}`,
|
|
70
|
-
logsPrefix: (agent: string): string => `${root}/${agent}/logs/`,
|
|
71
|
-
continuation: (agent: string, channelId: string, continuationKey: string): string =>
|
|
72
|
-
`${root}/${agent}/continuation/${keySegment(channelId)}/${keySegment(continuationKey)}`,
|
|
73
|
-
/**
|
|
74
|
-
* Author-facing opaque JSON (see `HostContext.kv`). `key` is URI-encoded /
|
|
75
|
-
* digested like other caller-controlled segments.
|
|
76
|
-
*/
|
|
77
|
-
kv: (agent: string, key: string): string => `${root}/${agent}/kv/${keySegment(key)}`,
|
|
78
|
-
kvPrefix: (agent: string): string => `${root}/${agent}/kv/`,
|
|
79
|
-
/** One playground eval-run snapshot (derived `evals` table). */
|
|
80
|
-
evalRun: (agent: string, runId: string): string =>
|
|
81
|
-
`${root}/${agent}/eval-runs/${keySegment(runId)}`,
|
|
82
|
-
evalRunsPrefix: (agent: string): string => `${root}/${agent}/eval-runs/`,
|
|
83
|
-
} as const;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export type StorageKeys = ReturnType<typeof createStorageKeys>;
|
|
87
|
-
|
|
88
|
-
/** Architecture-v1 keys. Kept stable for existing deployments. */
|
|
89
|
-
export const storageKeys: StorageKeys = createStorageKeys(STORAGE_KEY_ROOT);
|
|
90
|
-
|
|
91
|
-
/** Architecture-v2 keys. Hard cutoff onto {@link AGENTSDK_STORAGE_KEY_ROOT}. */
|
|
92
|
-
export const agentSdkStorageKeys: StorageKeys = createStorageKeys(AGENTSDK_STORAGE_KEY_ROOT);
|
|
93
|
-
|
|
94
|
-
export function storageKeysForArchitecture(architecture: "v1" | "v2" | undefined): StorageKeys {
|
|
95
|
-
return architecture === "v2" ? agentSdkStorageKeys : storageKeys;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Max bytes a caller-controlled key segment may occupy after URI-encoding.
|
|
100
|
-
* Chosen so full keys stay well under common backend limits (Postgres btree
|
|
101
|
-
* index tuples cap at ~2704 bytes; S3 keys at 1024). Longer segments are
|
|
102
|
-
* replaced by their SHA-256 digest, keeping every minted key bounded.
|
|
103
|
-
*/
|
|
104
|
-
export const MAX_KEY_SEGMENT_BYTES = 256;
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Stable start-log object id. A `send` attaches to the factory session
|
|
108
|
-
* so the factory/dashboard session-runs read can see it. Admission that
|
|
109
|
-
* fails before a session exists is keyed on the Temporal workflow run
|
|
110
|
-
* (`wf:{workflowId}` or `wf:{workflowId}/{runId}`) so the object joins
|
|
111
|
-
* the Temporal UI. A successful skip/task writes nothing — there is no
|
|
112
|
-
* customer log.
|
|
113
|
-
*/
|
|
114
|
-
export function frameworkStartLogId(args: {
|
|
115
|
-
sessionPublicId?: string | null;
|
|
116
|
-
workflowId?: string | null;
|
|
117
|
-
runId?: string | null;
|
|
118
|
-
}): string | undefined {
|
|
119
|
-
const sessionPublicId = args.sessionPublicId?.trim() ?? "";
|
|
120
|
-
if (sessionPublicId.length > 0) {
|
|
121
|
-
return sessionPublicId;
|
|
122
|
-
}
|
|
123
|
-
const workflowId = args.workflowId?.trim() ?? "";
|
|
124
|
-
if (workflowId.length === 0) {
|
|
125
|
-
return undefined;
|
|
126
|
-
}
|
|
127
|
-
const runId = args.runId?.trim() ?? "";
|
|
128
|
-
return runId.length > 0 ? `wf:${workflowId}/${runId}` : `wf:${workflowId}`;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* URI-encode one caller-controlled key segment, substituting a `sha256:…`
|
|
133
|
-
* digest of the raw value when the encoding exceeds
|
|
134
|
-
* {@link MAX_KEY_SEGMENT_BYTES}. Deterministic, so key construction on the
|
|
135
|
-
* write path and the continuation-lookup path always agree.
|
|
136
|
-
*/
|
|
137
|
-
export function keySegment(raw: string): string {
|
|
138
|
-
const encoded = encodeURIComponent(raw);
|
|
139
|
-
if (Buffer.byteLength(encoded, "utf8") <= MAX_KEY_SEGMENT_BYTES) {
|
|
140
|
-
return encoded;
|
|
141
|
-
}
|
|
142
|
-
return `sha256:${createHash("sha256").update(raw, "utf8").digest("hex")}`;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export function isDurableSessionRecordKey(key: string): boolean {
|
|
146
|
-
const match = DURABLE_SESSION_RECORD_KEY_RE.exec(key);
|
|
147
|
-
return match !== null && match[2] !== "_cp";
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/** List fields of a persisted `SessionRecord`. Unknown properties are dropped. */
|
|
151
|
-
export type DurableSessionRecord = {
|
|
152
|
-
sessionId: string;
|
|
153
|
-
channelId: string;
|
|
154
|
-
mode: string;
|
|
155
|
-
continuationKey: string | null | undefined;
|
|
156
|
-
title: string | undefined;
|
|
157
|
-
turnCount: number;
|
|
158
|
-
createdAt: string;
|
|
159
|
-
updatedAt: string;
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Session metadata for history UIs. `running` is omitted unless a live
|
|
164
|
-
* overlay (the engine process) supplies it — a KV-only reader must not
|
|
165
|
-
* claim a turn is in flight.
|
|
166
|
-
*/
|
|
167
|
-
export type DurableSessionSummary = {
|
|
168
|
-
sessionId: string;
|
|
169
|
-
channelId: string;
|
|
170
|
-
mode: string;
|
|
171
|
-
title: string | undefined;
|
|
172
|
-
turnCount: number;
|
|
173
|
-
createdAt: string;
|
|
174
|
-
updatedAt: string;
|
|
175
|
-
running: boolean | undefined;
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
function stringValue(value: unknown): string | undefined {
|
|
179
|
-
return typeof value === "string" ? value : undefined;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Tolerant `SessionRecord` decoder. Extra fields (`auth`, `purpose`,
|
|
184
|
-
* future keys) are ignored. Returns undefined when required list
|
|
185
|
-
* fields are missing or the wrong type.
|
|
186
|
-
*/
|
|
187
|
-
export function parseDurableSessionRecord(value: unknown): DurableSessionRecord | undefined {
|
|
188
|
-
if (!isRecord(value)) {
|
|
189
|
-
return undefined;
|
|
190
|
-
}
|
|
191
|
-
const sessionId = stringValue(value.sessionId);
|
|
192
|
-
const channelId = stringValue(value.channelId);
|
|
193
|
-
const mode = stringValue(value.mode);
|
|
194
|
-
const turnCount = typeof value.turnCount === "number" ? value.turnCount : undefined;
|
|
195
|
-
const createdAt = stringValue(value.createdAt);
|
|
196
|
-
const updatedAt = stringValue(value.updatedAt);
|
|
197
|
-
if (
|
|
198
|
-
sessionId === undefined ||
|
|
199
|
-
sessionId.length === 0 ||
|
|
200
|
-
channelId === undefined ||
|
|
201
|
-
mode === undefined ||
|
|
202
|
-
turnCount === undefined ||
|
|
203
|
-
createdAt === undefined ||
|
|
204
|
-
updatedAt === undefined
|
|
205
|
-
) {
|
|
206
|
-
return undefined;
|
|
207
|
-
}
|
|
208
|
-
if (
|
|
209
|
-
value.continuationKey !== undefined &&
|
|
210
|
-
value.continuationKey !== null &&
|
|
211
|
-
typeof value.continuationKey !== "string"
|
|
212
|
-
) {
|
|
213
|
-
return undefined;
|
|
214
|
-
}
|
|
215
|
-
const continuationKey = value.continuationKey;
|
|
216
|
-
return {
|
|
217
|
-
sessionId,
|
|
218
|
-
channelId,
|
|
219
|
-
mode,
|
|
220
|
-
continuationKey,
|
|
221
|
-
title: typeof value.title === "string" ? value.title : undefined,
|
|
222
|
-
turnCount,
|
|
223
|
-
createdAt,
|
|
224
|
-
updatedAt,
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
export function summarizeDurableSessionRecord(args: {
|
|
229
|
-
record: DurableSessionRecord;
|
|
230
|
-
running?: boolean;
|
|
231
|
-
}): DurableSessionSummary {
|
|
232
|
-
const { record, running } = args;
|
|
233
|
-
return {
|
|
234
|
-
sessionId: record.sessionId,
|
|
235
|
-
channelId: record.channelId,
|
|
236
|
-
mode: record.mode,
|
|
237
|
-
title: record.title,
|
|
238
|
-
turnCount: record.turnCount,
|
|
239
|
-
createdAt: record.createdAt,
|
|
240
|
-
updatedAt: record.updatedAt,
|
|
241
|
-
running,
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Golden persisted record: required list fields plus extras a future engine
|
|
247
|
-
* might write. Both this package and the CP decoder must accept it.
|
|
248
|
-
*/
|
|
249
|
-
export const GOLDEN_DURABLE_SESSION_RECORD: Record<string, unknown> = {
|
|
250
|
-
sessionId: "ses_aaaaaaaaaaaaaaaaaaaaaaaa",
|
|
251
|
-
channelId: "playground",
|
|
252
|
-
mode: "chat",
|
|
253
|
-
purpose: "live",
|
|
254
|
-
continuationKey: "cont_key_1",
|
|
255
|
-
auth: { kind: "user", userId: 42 },
|
|
256
|
-
title: "Weather in NYC",
|
|
257
|
-
turnCount: 3,
|
|
258
|
-
createdAt: "2026-08-01T12:00:00.000Z",
|
|
259
|
-
updatedAt: "2026-08-01T12:05:00.000Z",
|
|
260
|
-
extraUnknownField: { nested: true },
|
|
261
|
-
};
|