@cursor/july 0.1.111 → 0.1.113
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 +4 -0
- package/dist/bin/agent-serve.js +20 -4
- package/dist/channels/checks.d.ts +10 -0
- package/dist/channels/checks.d.ts.map +1 -1
- package/dist/channels/github/github-channel.d.ts +29 -19
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +29 -19
- package/dist/channels/origin/checks.d.ts +1 -1
- package/dist/channels/origin/checks.d.ts.map +1 -1
- package/dist/channels/slack/agentic-delivery.d.ts.map +1 -1
- package/dist/channels/slack/agentic-delivery.js +2 -0
- package/dist/channels/slack/dispatch.d.ts +11 -1
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +146 -39
- package/dist/channels/slack/placeholder.d.ts +26 -0
- package/dist/channels/slack/placeholder.d.ts.map +1 -1
- package/dist/channels/slack/placeholder.js +28 -0
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +9 -16
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.Drol6mi6.js → app.CAeK13eM.js} +4 -4
- package/dist/docs/assets/building-with-agents.md.BBCx0AUo.js +9 -0
- package/dist/docs/assets/building-with-agents.md.BBCx0AUo.lean.js +1 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.Ck9E52Ls.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.CdqoBZJX.js → VPLocalSearchBox.C9LbPHod.js} +1 -1
- package/dist/docs/assets/chunks/{arc.BVX3ycTn.js → arc.CmMq2zmS.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CcChnMxX.js → architectureDiagram-Q4EWVU46.CCXB8Uj5.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.xwtXO-yt.js → baseUniq.CyQo6eLe.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.CijZ_taK.js → blockDiagram-DXYQGD6D.JYq6w91N.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.0FBvwBvK.js → c4Diagram-AHTNJAMY.BRV8GPJJ.js} +1 -1
- package/dist/docs/assets/chunks/channel.BHiYmnZ4.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CELMmMDA.js → chunk-4BX2VUAB.Bv4ooYQR.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.C4bhFtSm.js → chunk-4TB4RGXK.t4JtKPcj.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.ZnQ9gRRQ.js → chunk-55IACEB6.34lCHj9Y.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.DPlmglG-.js → chunk-EDXVE4YY.BSwrPNrt.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.BrUk8pff.js → chunk-FMBD7UC4.Beeun-R-.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CcmWIncu.js → chunk-OYMX7WX6.BUUFUcJc.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.D65-cs8I.js → chunk-QZHKN3VN.B2XjHzN_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.qoXZpG9F.js → chunk-YZCP3GAM.CLYG8znk.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Degh8l90.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Degh8l90.js +1 -0
- package/dist/docs/assets/chunks/clone.BIywbczV.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.8rYtqudO.js → cose-bilkent-S5V4N54A.DVEa6fZp.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.DrRP1fOh.js → dagre-KV5264BT.C9PZQK-S.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DHj_xA2_.js → diagram-5BDNPKRD.DoN0uv3Y.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.Bz_6nAKj.js → diagram-G4DWMVQ6.Czv3duqx.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BWA0xSW9.js → diagram-MMDJMWI5.BinJ5kWb.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.CpTJLNJI.js → diagram-TYMM5635.DW326M4K.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.-7AWWSrP.js → erDiagram-SMLLAGMA.U2pR_OA7.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BTnQ742_.js → flowDiagram-DWJPFMVM.ByWJXeYK.js} +1 -1
- package/dist/docs/assets/chunks/framework.BNw1pucY.js +19 -0
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.B5_HiiQ5.js → ganttDiagram-T4ZO3ILL.OquF0Rtg.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CZcNTFZd.js → gitGraphDiagram-UUTBAWPF.Bpn01P7X.js} +1 -1
- package/dist/docs/assets/chunks/{graph.V2GLaab4.js → graph.CNRB6ETL.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.7pZOkCCU.js → infoDiagram-42DDH7IO.CqhknMWi.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DSMo3Qa3.js → ishikawaDiagram-UXIWVN3A.C6xpR2af.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BNEgWN1S.js → journeyDiagram-VCZTEJTY.Cg5f7oB3.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.B-4d4tC7.js → kanban-definition-6JOO6SKY.Cx9YTwlU.js} +1 -1
- package/dist/docs/assets/chunks/{layout.Dvbn9nSb.js → layout.ljS-wFtK.js} +1 -1
- package/dist/docs/assets/chunks/{linear.D2GM4p4b.js → linear.jSxNrsFC.js} +1 -1
- package/dist/docs/assets/chunks/{min.DVBtLK-B.js → min.Cum8AlQw.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CnJRI55x.js → mindmap-definition-QFDTVHPH.BLiysLpe.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.CtoaTFlA.js → pieDiagram-DEJITSTG.BoIDyuKF.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DtT24_vN.js → quadrantDiagram-34T5L4WZ.DLkpDytR.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CjSO4o8f.js → requirementDiagram-MS252O5E.DqTVqSu2.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.-wWiIVWa.js → sankeyDiagram-XADWPNL6.CG_6FF7j.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.DSk8s4gX.js → sequenceDiagram-FGHM5R23.BIp9602K.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.BFKAsdkN.js → stateDiagram-FHFEXIEX.COSXsD9I.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.qrxrbFsX.js +1 -0
- package/dist/docs/assets/chunks/{theme.C0MctGaz.js → theme.CXJ7PNwy.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.TUNJbAFe.js → timeline-definition-GMOUNBTQ.CXdVqkLq.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.C-RGNnk4.js → vennDiagram-DHZGUBPP.CZxGuc4r.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.g5efOWmT.js → wardley-RL74JXVD.3oVgfqQk.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.DH4zt73Y.js → wardleyDiagram-NUSXRM2D.6_irCgGJ.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.B-3k6bF6.js → xychartDiagram-5P7HB3ND.TRPe92m3.js} +1 -1
- package/dist/docs/assets/deployment.md.D2jQZuFx.js +32 -0
- package/dist/docs/assets/deployment.md.D2jQZuFx.lean.js +1 -0
- package/dist/docs/assets/evals.md.D3Y3Aixt.js +72 -0
- package/dist/docs/assets/evals.md.D3Y3Aixt.lean.js +1 -0
- package/dist/docs/assets/guides_agent-to-agent.md.CD4T5FIl.js +41 -0
- package/dist/docs/assets/guides_agent-to-agent.md.CD4T5FIl.lean.js +1 -0
- package/dist/docs/assets/guides_bitbucket.md.mpevW-VP.js +145 -0
- package/dist/docs/assets/guides_bitbucket.md.mpevW-VP.lean.js +1 -0
- package/dist/docs/assets/guides_cloud-agents.md.Cp1O3u-X.js +15 -0
- package/dist/docs/assets/guides_cloud-agents.md.Cp1O3u-X.lean.js +1 -0
- package/dist/docs/assets/guides_convert-automation.md.CqEyfP6Y.js +43 -0
- package/dist/docs/assets/guides_convert-automation.md.CqEyfP6Y.lean.js +1 -0
- package/dist/docs/assets/guides_github.md.BwpBp3ed.js +156 -0
- package/dist/docs/assets/guides_github.md.BwpBp3ed.lean.js +1 -0
- package/dist/docs/assets/guides_gitlab.md.DaEC3nMk.js +153 -0
- package/dist/docs/assets/guides_gitlab.md.DaEC3nMk.lean.js +1 -0
- package/dist/docs/assets/guides_grokbot-agents.md.CMhZNdEU.js +16 -0
- package/dist/docs/assets/guides_grokbot-agents.md.CMhZNdEU.lean.js +1 -0
- package/dist/docs/assets/guides_improve.md.Bnp4F99w.js +22 -0
- package/dist/docs/assets/guides_improve.md.Bnp4F99w.lean.js +1 -0
- package/dist/docs/assets/guides_jev.md.F5fAkkfN.js +189 -0
- package/dist/docs/assets/guides_jev.md.F5fAkkfN.lean.js +1 -0
- package/dist/docs/assets/guides_mcp-oauth.md.bSFakfCY.js +50 -0
- package/dist/docs/assets/guides_mcp-oauth.md.bSFakfCY.lean.js +1 -0
- package/dist/docs/assets/guides_opentelemetry.md.BKDxQmmd.js +35 -0
- package/dist/docs/assets/guides_opentelemetry.md.BKDxQmmd.lean.js +1 -0
- package/dist/docs/assets/guides_slack.md.Bo96y42E.js +70 -0
- package/dist/docs/assets/guides_slack.md.Bo96y42E.lean.js +1 -0
- package/dist/docs/assets/guides_webhooks.md.1A72_VEE.js +92 -0
- package/dist/docs/assets/guides_webhooks.md.1A72_VEE.lean.js +1 -0
- package/dist/docs/assets/hillclimbing.md.D4E1o5Sa.js +7 -0
- package/dist/docs/assets/hillclimbing.md.D4E1o5Sa.lean.js +1 -0
- package/dist/docs/assets/{index.md.BFVyY2KT.js → index.md.C-t81M5J.js} +2 -2
- package/dist/docs/assets/{index.md.BFVyY2KT.lean.js → index.md.C-t81M5J.lean.js} +1 -1
- package/dist/docs/assets/{quickstart.md.D3MjSZN-.js → quickstart.md.DAvVhuuU.js} +1 -1
- package/dist/docs/assets/{quickstart.md.D3MjSZN-.lean.js → quickstart.md.DAvVhuuU.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.CfVA-LZJ.js → reference_agent-config.md.DGPyw7ms.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.CfVA-LZJ.lean.js → reference_agent-config.md.DGPyw7ms.lean.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.Vf7qyIZ-.js → reference_artifacts.md.Bu_4HmsD.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.Vf7qyIZ-.lean.js → reference_artifacts.md.Bu_4HmsD.lean.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.icqLKcTc.js → reference_channels.md.nFWbzAic.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.icqLKcTc.lean.js → reference_channels.md.nFWbzAic.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.B2dBL6L8.js → reference_cli.md.DLWDz9ij.js} +3 -1
- package/dist/docs/assets/{reference_cli.md.B2dBL6L8.lean.js → reference_cli.md.DLWDz9ij.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.Cb3U_c8n.js → reference_connections.md.Je9dMsdd.js} +2 -2
- package/dist/docs/assets/{reference_connections.md.Cb3U_c8n.lean.js → reference_connections.md.Je9dMsdd.lean.js} +1 -1
- package/dist/docs/assets/reference_evals.md.DNJzM_yf.js +57 -0
- package/dist/docs/assets/reference_evals.md.DNJzM_yf.lean.js +1 -0
- package/dist/docs/assets/reference_extensions.md.Cv5aLCz_.js +58 -0
- package/dist/docs/assets/reference_extensions.md.Cv5aLCz_.lean.js +1 -0
- package/dist/docs/assets/{reference_hooks.md.CZuynAxj.js → reference_hooks.md.B7uzNENk.js} +2 -2
- package/dist/docs/assets/{reference_hooks.md.CZuynAxj.lean.js → reference_hooks.md.B7uzNENk.lean.js} +1 -1
- package/dist/docs/assets/{reference_http-api.md.DTKcYE6L.js → reference_http-api.md.CduHavZ2.js} +1 -1
- package/dist/docs/assets/{reference_http-api.md.DTKcYE6L.lean.js → reference_http-api.md.CduHavZ2.lean.js} +1 -1
- package/dist/docs/assets/{reference_instructions.md.D7gkckK-.js → reference_instructions.md.CU1My5My.js} +1 -1
- package/dist/docs/assets/{reference_instructions.md.D7gkckK-.lean.js → reference_instructions.md.CU1My5My.lean.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.D2YExv5K.js → reference_playground.md.Ch2d0Iqi.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.D2YExv5K.lean.js → reference_playground.md.Ch2d0Iqi.lean.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.DPxbUJyt.js → reference_project-layout.md.BGhgpy9V.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.DPxbUJyt.lean.js → reference_project-layout.md.BGhgpy9V.lean.js} +1 -1
- package/dist/docs/assets/{reference_prompt.md.BQ5uAv1F.js → reference_prompt.md.Ccp0R53H.js} +1 -1
- package/dist/docs/assets/{reference_prompt.md.BQ5uAv1F.lean.js → reference_prompt.md.Ccp0R53H.lean.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.BasfZWO-.js → reference_schedules.md.B2Nm6FaD.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.BasfZWO-.lean.js → reference_schedules.md.B2Nm6FaD.lean.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.YKvIsWAx.js → reference_sessions.md.1_6Vyv7x.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.YKvIsWAx.lean.js → reference_sessions.md.1_6Vyv7x.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.rNgpsGd0.js → reference_skills.md.DjQkRefx.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.rNgpsGd0.lean.js → reference_skills.md.DjQkRefx.lean.js} +1 -1
- package/dist/docs/assets/{reference_subagents.md.e5qitjJt.js → reference_subagents.md.Dl16gcBj.js} +2 -2
- package/dist/docs/assets/{reference_subagents.md.e5qitjJt.lean.js → reference_subagents.md.Dl16gcBj.lean.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.BdCO2aHZ.js → reference_tools.md.B1dH1lpa.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.BdCO2aHZ.lean.js → reference_tools.md.B1dH1lpa.lean.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.Da_AGDlH.js → templates_agentic-owners.md.9M575F5C.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.Da_AGDlH.lean.js → templates_agentic-owners.md.9M575F5C.lean.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.DqxocIGh.js → templates_pr-autofixer.md.ws0DDXDy.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.DqxocIGh.lean.js → templates_pr-autofixer.md.ws0DDXDy.lean.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.Bhnvd8VE.js → templates_security-reviewer.md.KEFYXzfK.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.Bhnvd8VE.lean.js → templates_security-reviewer.md.KEFYXzfK.lean.js} +1 -1
- package/dist/docs/assets/templates_thermo-quality-review.md.VNJ_mohX.js +3 -0
- package/dist/docs/assets/templates_thermo-quality-review.md.VNJ_mohX.lean.js +1 -0
- package/dist/docs/assets/templates_thermo-review.md.Hi3zWOkP.js +3 -0
- package/dist/docs/assets/templates_thermo-review.md.Hi3zWOkP.lean.js +1 -0
- package/dist/docs/assets/{templates_triage.md.BdBWO9Ic.js → templates_triage.md.CVGe_FG6.js} +1 -1
- package/dist/docs/assets/{templates_triage.md.BdBWO9Ic.lean.js → templates_triage.md.CVGe_FG6.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.mnfFG2Em.js +1 -0
- package/dist/docs/assets/troubleshooting.md.mnfFG2Em.lean.js +1 -0
- package/dist/docs/building-with-agents.html +44 -48
- package/dist/docs/building-with-agents.md +94 -82
- package/dist/docs/deployment.html +59 -78
- package/dist/docs/deployment.md +117 -363
- package/dist/docs/evals.html +85 -224
- package/dist/docs/evals.md +149 -673
- package/dist/docs/guides/agent-to-agent.html +74 -47
- package/dist/docs/guides/agent-to-agent.md +128 -46
- package/dist/docs/guides/bitbucket.html +179 -44
- package/dist/docs/guides/bitbucket.md +249 -48
- package/dist/docs/guides/cloud-agents.html +46 -40
- package/dist/docs/guides/cloud-agents.md +119 -66
- package/dist/docs/guides/convert-automation.html +80 -49
- package/dist/docs/guides/convert-automation.md +156 -147
- package/dist/docs/guides/github.html +184 -92
- package/dist/docs/guides/github.md +260 -245
- package/dist/docs/guides/gitlab.html +184 -45
- package/dist/docs/guides/gitlab.md +249 -50
- package/dist/docs/guides/grokbot-agents.html +48 -41
- package/dist/docs/guides/grokbot-agents.md +99 -53
- package/dist/docs/guides/improve.html +48 -40
- package/dist/docs/guides/improve.md +111 -58
- package/dist/docs/guides/jev.html +248 -0
- package/dist/docs/guides/jev.md +348 -0
- package/dist/docs/guides/mcp-oauth.html +74 -52
- package/dist/docs/guides/mcp-oauth.md +111 -121
- package/dist/docs/guides/opentelemetry.html +63 -54
- package/dist/docs/guides/opentelemetry.md +96 -165
- package/dist/docs/guides/slack.html +83 -59
- package/dist/docs/guides/slack.md +157 -227
- package/dist/docs/guides/webhooks.html +97 -230
- package/dist/docs/guides/webhooks.md +154 -385
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +44 -38
- package/dist/docs/hillclimbing.md +101 -55
- package/dist/docs/index.html +38 -38
- package/dist/docs/index.md +2 -0
- package/dist/docs/llms-full.txt +3490 -3146
- package/dist/docs/llms.txt +22 -18
- package/dist/docs/quickstart.html +37 -37
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/artifacts.html +38 -38
- package/dist/docs/reference/channels.html +37 -37
- package/dist/docs/reference/cli.html +39 -37
- package/dist/docs/reference/cli.md +2 -0
- package/dist/docs/reference/connections.html +38 -38
- package/dist/docs/reference/connections.md +1 -1
- package/dist/docs/reference/evals.html +116 -0
- package/dist/docs/reference/evals.md +293 -0
- package/dist/docs/reference/extensions.html +80 -84
- package/dist/docs/reference/extensions.md +131 -202
- package/dist/docs/reference/hooks.html +39 -39
- package/dist/docs/reference/hooks.md +34 -34
- package/dist/docs/reference/http-api.html +37 -37
- package/dist/docs/reference/instructions.html +37 -37
- package/dist/docs/reference/playground.html +37 -37
- package/dist/docs/reference/project-layout.html +37 -37
- package/dist/docs/reference/prompt.html +37 -37
- package/dist/docs/reference/schedules.html +37 -37
- package/dist/docs/reference/sessions.html +37 -37
- package/dist/docs/reference/skills.html +37 -37
- package/dist/docs/reference/subagents.html +38 -38
- package/dist/docs/reference/subagents.md +1 -1
- package/dist/docs/reference/tools.html +38 -38
- package/dist/docs/reference/tools.md +4 -0
- package/dist/docs/templates/agentic-owners.html +38 -38
- package/dist/docs/templates/pr-autofixer.html +37 -37
- package/dist/docs/templates/security-reviewer.html +38 -38
- package/dist/docs/templates/thermo-quality-review.html +62 -0
- package/dist/docs/templates/thermo-quality-review.md +75 -0
- package/dist/docs/templates/thermo-review.html +62 -0
- package/dist/docs/templates/thermo-review.md +74 -0
- package/dist/docs/templates/triage.html +37 -37
- package/dist/docs/troubleshooting.html +38 -38
- package/dist/docs/troubleshooting.md +97 -66
- package/dist/extensions/cursor-cloud-agents/skills/handoff.md +3 -7
- package/dist/extensions/improve/extension.d.ts +3 -1
- package/dist/extensions/improve/extension.d.ts.map +1 -1
- package/dist/extensions/improve/extension.js +4 -2
- package/dist/extensions/improve/skills/yourself.js +1 -1
- package/dist/extensions/jev/extension.d.ts +43 -0
- package/dist/extensions/jev/extension.d.ts.map +1 -0
- package/dist/extensions/jev/extension.js +47 -0
- package/dist/extensions/jev/lib/evaluate.d.ts +101 -0
- package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -0
- package/dist/extensions/jev/lib/evaluate.js +167 -0
- package/dist/extensions/jev/skills/gated-write.md +25 -0
- package/dist/extensions/jev/skills/questions.md +33 -0
- package/dist/extensions/jev/tools/evaluate.d.ts +4 -0
- package/dist/extensions/jev/tools/evaluate.d.ts.map +1 -0
- package/dist/extensions/jev/tools/evaluate.js +88 -0
- package/dist/extensions.d.ts +1 -1
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +2 -0
- package/dist/filesystem.d.ts +46 -2
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +149 -102
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +6 -0
- package/dist/internal/cli-ax.d.ts +6 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +72 -14
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +1 -0
- package/dist/internal/cursor-agent-template.d.ts +1 -1
- package/dist/internal/cursor-agent-template.d.ts.map +1 -1
- package/dist/internal/cursor-agent-template.js +2 -0
- package/dist/internal/discovery/connections.d.ts.map +1 -1
- package/dist/internal/discovery/connections.js +18 -0
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +8 -4
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +1 -0
- package/dist/internal/filesystem/tools.d.ts.map +1 -1
- package/dist/internal/filesystem/tools.js +2 -2
- package/dist/internal/filesystem/walk.d.ts +7 -4
- package/dist/internal/filesystem/walk.d.ts.map +1 -1
- package/dist/internal/filesystem/walk.js +34 -11
- package/dist/internal/hosted-admission-adapter.d.ts +3 -0
- package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.d.ts +20 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +51 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +23 -25
- package/dist/internal/hosted-execution-diag.d.ts +12 -4
- package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
- package/dist/internal/hosted-execution-diag.js +26 -4
- package/dist/internal/hosted-execution-flush.d.ts +1 -0
- package/dist/internal/hosted-execution-flush.d.ts.map +1 -1
- package/dist/internal/hosted-execution-flush.js +4 -2
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +4 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +111 -48
- package/dist/internal/session-engine.d.ts +4 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +39 -9
- package/dist/internal/skill-catalog.d.ts +28 -0
- package/dist/internal/skill-catalog.d.ts.map +1 -0
- package/dist/internal/skill-catalog.js +44 -0
- package/dist/playground/assets/index-DSMAewbx.css +1 -0
- package/dist/playground/assets/index-De_lpFxE.js +67 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +32 -3
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +2 -0
- package/docs/building-with-agents.md +96 -84
- package/docs/deployment.md +118 -364
- package/docs/evals.md +149 -673
- package/docs/guides/agent-to-agent.md +130 -48
- package/docs/guides/bitbucket.md +250 -49
- package/docs/guides/cloud-agents.md +119 -67
- package/docs/guides/convert-automation.md +157 -148
- package/docs/guides/github.md +261 -246
- package/docs/guides/gitlab.md +250 -51
- package/docs/guides/grokbot-agents.md +100 -55
- package/docs/guides/improve.md +112 -59
- package/docs/guides/jev.md +353 -0
- package/docs/guides/mcp-oauth.md +112 -122
- package/docs/guides/opentelemetry.md +97 -166
- package/docs/guides/slack.md +158 -228
- package/docs/guides/webhooks.md +155 -386
- package/docs/hillclimbing.md +102 -56
- package/docs/reference/cli.md +2 -0
- package/docs/reference/connections.md +1 -1
- package/docs/reference/evals.md +298 -0
- package/docs/reference/extensions.md +132 -203
- package/docs/reference/hooks.md +34 -34
- package/docs/reference/subagents.md +1 -1
- package/docs/reference/tools.md +4 -0
- package/docs/templates/thermo-quality-review.md +80 -0
- package/docs/templates/thermo-review.md +79 -0
- package/docs/troubleshooting.md +98 -67
- package/package.json +8 -1
- package/skills/github/SKILL.md +21 -13
- package/src/bin/agent-serve.ts +24 -3
- package/src/channels/checks.ts +8 -0
- package/src/channels/github/github-channel.ts +29 -19
- package/src/channels/origin/checks.ts +3 -1
- package/src/channels/slack/agentic-delivery.ts +2 -0
- package/src/channels/slack/dispatch.ts +131 -4
- package/src/channels/slack/placeholder.ts +51 -0
- package/src/channels/slack/slack-channel.ts +9 -2
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +3 -7
- package/src/extensions/improve/extension.ts +4 -2
- package/src/extensions/improve/skills/yourself.ts +1 -1
- package/src/extensions/jev/extension.ts +95 -0
- package/src/extensions/jev/lib/evaluate.ts +289 -0
- package/src/extensions/jev/skills/gated-write.md +25 -0
- package/src/extensions/jev/skills/questions.md +33 -0
- package/src/extensions/jev/tools/evaluate.ts +90 -0
- package/src/extensions.ts +2 -0
- package/src/filesystem.ts +168 -65
- package/src/index.ts +3 -0
- package/src/internal/advertise-tools.ts +6 -0
- package/src/internal/cli-ax.ts +88 -15
- package/src/internal/continuation-identity.ts +1 -0
- package/src/internal/cursor-agent-template.ts +2 -0
- package/src/internal/discovery/connections.ts +21 -0
- package/src/internal/discovery/extensions.ts +12 -4
- package/src/internal/discovery/info.ts +1 -0
- package/src/internal/filesystem/tools.ts +2 -0
- package/src/internal/filesystem/walk.ts +60 -15
- package/src/internal/hosted-admission-adapter.ts +3 -0
- package/src/internal/hosted-delivery-protocol.ts +82 -1
- package/src/internal/hosted-delivery.ts +23 -0
- package/src/internal/hosted-execution-diag.ts +33 -4
- package/src/internal/hosted-execution-flush.ts +4 -0
- package/src/internal/init-project.ts +4 -0
- package/src/internal/server.ts +130 -53
- package/src/internal/session-engine.ts +46 -8
- package/src/internal/skill-catalog.ts +69 -0
- package/src/types.ts +33 -3
- package/templates/thermo-quality-review/README.md +35 -0
- package/templates/thermo-quality-review/agent/agent.ts +8 -0
- package/templates/thermo-quality-review/agent/channels/github.ts +42 -0
- package/templates/thermo-quality-review/agent/instructions.md +43 -0
- package/templates/thermo-quality-review/agent/tools/post_findings.ts +70 -0
- package/templates/thermo-quality-review/evals/evals.config.ts +5 -0
- package/templates/thermo-quality-review/evals/review.eval.ts +62 -0
- package/templates/thermo-quality-review/package.json +18 -0
- package/templates/thermo-quality-review/tsconfig.json +12 -0
- package/templates/thermo-review/README.md +35 -0
- package/templates/thermo-review/agent/agent.ts +8 -0
- package/templates/thermo-review/agent/channels/github.ts +42 -0
- package/templates/thermo-review/agent/instructions.md +40 -0
- package/templates/thermo-review/agent/tools/post_findings.ts +70 -0
- package/templates/thermo-review/evals/evals.config.ts +5 -0
- package/templates/thermo-review/evals/review.eval.ts +53 -0
- package/templates/thermo-review/package.json +18 -0
- package/templates/thermo-review/tsconfig.json +12 -0
- package/dist/docs/assets/building-with-agents.md.CEGVXkmO.js +0 -13
- package/dist/docs/assets/building-with-agents.md.CEGVXkmO.lean.js +0 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DtXk1hy-.js +0 -1
- package/dist/docs/assets/chunks/channel.Bkv1N-gK.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CZDco1o8.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CZDco1o8.js +0 -1
- package/dist/docs/assets/chunks/clone.YSt_40_s.js +0 -1
- package/dist/docs/assets/chunks/framework.dypDpWZ3.js +0 -19
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C4CLm481.js +0 -1
- package/dist/docs/assets/deployment.md.Dm4Qo3hp.js +0 -51
- package/dist/docs/assets/deployment.md.Dm4Qo3hp.lean.js +0 -1
- package/dist/docs/assets/evals.md.BLDRt5LH.js +0 -211
- package/dist/docs/assets/evals.md.BLDRt5LH.lean.js +0 -1
- package/dist/docs/assets/guides_agent-to-agent.md.BI0xclmy.js +0 -14
- package/dist/docs/assets/guides_agent-to-agent.md.BI0xclmy.lean.js +0 -1
- package/dist/docs/assets/guides_bitbucket.md.CTpCl__f.js +0 -10
- package/dist/docs/assets/guides_bitbucket.md.CTpCl__f.lean.js +0 -1
- package/dist/docs/assets/guides_cloud-agents.md.lSE_l7lH.js +0 -9
- package/dist/docs/assets/guides_cloud-agents.md.lSE_l7lH.lean.js +0 -1
- package/dist/docs/assets/guides_convert-automation.md.Ck6Cr68A.js +0 -12
- package/dist/docs/assets/guides_convert-automation.md.Ck6Cr68A.lean.js +0 -1
- package/dist/docs/assets/guides_github.md.D6ER29dG.js +0 -64
- package/dist/docs/assets/guides_github.md.D6ER29dG.lean.js +0 -1
- package/dist/docs/assets/guides_gitlab.md.P-TjBnS5.js +0 -14
- package/dist/docs/assets/guides_gitlab.md.P-TjBnS5.lean.js +0 -1
- package/dist/docs/assets/guides_grokbot-agents.md.WBZIOvkz.js +0 -9
- package/dist/docs/assets/guides_grokbot-agents.md.WBZIOvkz.lean.js +0 -1
- package/dist/docs/assets/guides_improve.md.BKaDuKKK.js +0 -14
- package/dist/docs/assets/guides_improve.md.BKaDuKKK.lean.js +0 -1
- package/dist/docs/assets/guides_mcp-oauth.md.DMNMpXtO.js +0 -28
- package/dist/docs/assets/guides_mcp-oauth.md.DMNMpXtO.lean.js +0 -1
- package/dist/docs/assets/guides_opentelemetry.md._CRfDyzH.js +0 -26
- package/dist/docs/assets/guides_opentelemetry.md._CRfDyzH.lean.js +0 -1
- package/dist/docs/assets/guides_slack.md.DdT8rmsj.js +0 -46
- package/dist/docs/assets/guides_slack.md.DdT8rmsj.lean.js +0 -1
- package/dist/docs/assets/guides_webhooks.md.aQW10HRe.js +0 -225
- package/dist/docs/assets/guides_webhooks.md.aQW10HRe.lean.js +0 -1
- package/dist/docs/assets/hillclimbing.md.Dq4kkVIL.js +0 -1
- package/dist/docs/assets/hillclimbing.md.Dq4kkVIL.lean.js +0 -1
- package/dist/docs/assets/reference_extensions.md.wlFD3cUR.js +0 -62
- package/dist/docs/assets/reference_extensions.md.wlFD3cUR.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.BcgNoYtJ.js +0 -1
- package/dist/docs/assets/troubleshooting.md.BcgNoYtJ.lean.js +0 -1
- package/dist/playground/assets/index-BLlKgZtI.css +0 -1
- package/dist/playground/assets/index-CDS5p9sR.js +0 -67
package/docs/deployment.md
CHANGED
|
@@ -1,76 +1,31 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Deployment"
|
|
3
|
-
description: "Deploy
|
|
3
|
+
description: "Deploy an Agent SDK project from Git with Cursor-managed hosting, or run one secure process on your own infrastructure."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Deploy the Agent SDK
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
Deployment turns a pushed Agent SDK project into a stable service.
|
|
9
|
+
Cursor-managed hosting builds the selected Git ref and operates the
|
|
10
|
+
runtime; self-hosting gives you control of the network, process, and
|
|
11
|
+
filesystem.
|
|
12
|
+
|
|
13
|
+
## Choose managed hosting or self-hosting
|
|
10
14
|
|
|
11
15
|
| Option | Use it when | You manage |
|
|
12
16
|
| --- | --- | --- |
|
|
13
|
-
| Cursor-managed hosting
|
|
14
|
-
| Self-hosting | You need your own network, proxy,
|
|
15
|
-
|
|
16
|
-
## Cursor-managed hosting
|
|
17
|
-
|
|
18
|
-
Cursor builds the selected Git ref into a deployment. The deployment
|
|
19
|
-
exposes a stable URL while Cursor manages its runtime lifecycle.
|
|
20
|
-
|
|
21
|
-
### Before you deploy
|
|
22
|
-
|
|
23
|
-
- Confirm managed hosting is enabled for the account and team.
|
|
24
|
-
- Sign in as a team member, or use a team service-account API key with agent access.
|
|
25
|
-
- Add `@cursor/july` to the agent project.
|
|
26
|
-
|
|
27
|
-
For a GitHub source, install the Cursor GitHub App on the repository
|
|
28
|
-
owner and grant it access to the repository. Cursor builds through its
|
|
29
|
-
repository integration, not your local Git credentials. Commit and push
|
|
30
|
-
the Git ref before deploying it.
|
|
31
|
-
|
|
32
|
-
### Declare hosting needs
|
|
33
|
-
|
|
34
|
-
If the agent needs extra egress or deployment secrets, add a `hosting`
|
|
35
|
-
block to `agent/agent.ts`:
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
import { defineAgent } from "@cursor/july";
|
|
39
|
-
|
|
40
|
-
export default defineAgent({
|
|
41
|
-
hosting: {
|
|
42
|
-
egressDomains: ["api.weather.example.com"],
|
|
43
|
-
secretNames: ["WEATHER_API_KEY"],
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
`egressDomains` lists outbound hosts beyond the platform's base policy.
|
|
49
|
-
Enter hostnames without schemes, ports, or paths. One leading `*.`
|
|
50
|
-
wildcard is allowed. Declared domains allow HTTPS and TLS traffic, not
|
|
51
|
-
arbitrary TCP ports.
|
|
17
|
+
| Cursor-managed hosting | You want the shortest path from Git to a running agent | Source, declared egress, secrets, and agent behavior |
|
|
18
|
+
| Self-hosting | You need your own network, proxy, filesystem, or process controls | The Node process, TLS, auth, secrets, state, monitoring, and upgrades |
|
|
52
19
|
|
|
53
|
-
The
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
Declare a domain only for a host your own code reaches.
|
|
20
|
+
The rest of this guide starts with managed hosting. The
|
|
21
|
+
[self-host recipe](#self-host-securely) uses the same project and HTTP
|
|
22
|
+
API.
|
|
57
23
|
|
|
58
|
-
|
|
59
|
-
use `UPPER_SNAKE_CASE`. Commit names only; set their values after
|
|
60
|
-
creating the deployment. Names beginning with `CURSOR_` are reserved.
|
|
24
|
+
## Deploy from Git
|
|
61
25
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
redeploy so the next pod sees the secrets.
|
|
66
|
-
See [Host MCP OAuth](./guides/mcp-oauth.md).
|
|
67
|
-
|
|
68
|
-
Run `agent-sdk validate` before deploying. It reports invalid domains and
|
|
69
|
-
secret names as warnings, so fix them even when validation exits zero.
|
|
70
|
-
|
|
71
|
-
### Deploy from Git
|
|
72
|
-
|
|
73
|
-
Sign in, validate the project, and deploy it:
|
|
26
|
+
Commit and push the exact ref you want to run, then sign in, validate,
|
|
27
|
+
and deploy. The command waits until the engine is running and prints
|
|
28
|
+
the stable deployment URL.
|
|
74
29
|
|
|
75
30
|
```bash
|
|
76
31
|
cd my-agent
|
|
@@ -80,9 +35,9 @@ agent-sdk validate
|
|
|
80
35
|
agent-sdk deploy
|
|
81
36
|
```
|
|
82
37
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
38
|
+
`deploy` reads from Git; it does not upload your working tree. Inside a
|
|
39
|
+
checkout, it infers the HTTPS origin, current ref, agent path, and slug.
|
|
40
|
+
Pass them explicitly when the checkout is not the source you want:
|
|
86
41
|
|
|
87
42
|
```bash
|
|
88
43
|
agent-sdk deploy \
|
|
@@ -92,362 +47,161 @@ agent-sdk deploy \
|
|
|
92
47
|
--slug weather-agent
|
|
93
48
|
```
|
|
94
49
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
> `--path`, and any `--cursor-events-repo` flags again.
|
|
50
|
+
The source repository must be available through the team's repository
|
|
51
|
+
integration, and a nested `--path` must contain an installable Agent SDK
|
|
52
|
+
project.
|
|
99
53
|
|
|
100
|
-
|
|
101
|
-
local `hosting` block in sync with the selected ref. A nested `--path`
|
|
102
|
-
must contain `package.json` and be installable from its own directory.
|
|
54
|
+
## Add egress and secrets
|
|
103
55
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
want another team.
|
|
56
|
+
Declare the external hosts and secret names the agent needs. After the
|
|
57
|
+
deployment exists, set each value at the hidden prompt and follow the
|
|
58
|
+
CLI or dashboard instruction to redeploy.
|
|
108
59
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
[Agent-to-agent](./guides/agent-to-agent.md#how-do-i-wire-two-agents).
|
|
113
|
-
|
|
114
|
-
The command waits up to ten minutes for a running engine. Use
|
|
115
|
-
`--no-wait` to return after Cursor accepts the deployment, then inspect
|
|
116
|
-
it separately:
|
|
60
|
+
```ts
|
|
61
|
+
// agent/agent.ts
|
|
62
|
+
import { defineAgent } from "@cursor/july";
|
|
117
63
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
64
|
+
export default defineAgent({
|
|
65
|
+
hosting: {
|
|
66
|
+
egressDomains: ["api.weather.example.com"],
|
|
67
|
+
secretNames: ["WEATHER_API_KEY"],
|
|
68
|
+
},
|
|
69
|
+
});
|
|
122
70
|
```
|
|
123
71
|
|
|
124
|
-
### Set deployment secrets
|
|
125
|
-
|
|
126
|
-
A deployment must exist before you can set its secrets. Pass names only.
|
|
127
|
-
Enter values at the hidden prompt, or pipe one line per name:
|
|
128
|
-
|
|
129
72
|
```bash
|
|
130
73
|
agent-sdk secrets set weather-agent WEATHER_API_KEY
|
|
131
74
|
agent-sdk secrets list weather-agent
|
|
132
75
|
agent-sdk deploy --dir . --slug weather-agent
|
|
133
76
|
```
|
|
134
77
|
|
|
135
|
-
`secrets
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
history and in agent-captured terminals. The CLI refuses it unless you
|
|
140
|
-
add `--from-argv`. For non-interactive input without argv, redirect a
|
|
141
|
-
file or pipe stdin.
|
|
142
|
-
|
|
143
|
-
### Credential output in terminals
|
|
78
|
+
Commit secret names, never values. `secrets set` accepts names and reads
|
|
79
|
+
values without echoing them; `secrets list` returns names and creation
|
|
80
|
+
times only. Do not pass `NAME=VALUE`, print a secret to verify it, or
|
|
81
|
+
put names beginning with reserved `CURSOR_` in `secretNames`.
|
|
144
82
|
|
|
145
|
-
|
|
146
|
-
|
|
83
|
+
Enter egress hosts without schemes, ports, or paths. The
|
|
84
|
+
[Host MCP OAuth guide](./guides/mcp-oauth.md) owns the extra secret and
|
|
85
|
+
egress steps for OAuth-backed MCP servers.
|
|
147
86
|
|
|
148
|
-
|
|
149
|
-
| --- | --- |
|
|
150
|
-
| `secrets set` / `secrets list` | Names only. Values never print. |
|
|
151
|
-
| First `deploy` / `rotate-token` | Full alias token once. Save it outside the agent transcript; it cannot be retrieved later. |
|
|
152
|
-
| `deployment --json` | May include short-lived `engineAccess.headers`. Treat JSON as a credential. |
|
|
87
|
+
## Use the hosted agent
|
|
153
88
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
the
|
|
157
|
-
|
|
158
|
-
### Choose durable storage
|
|
159
|
-
|
|
160
|
-
Hosted filesystem state can reset during a deploy or runtime
|
|
161
|
-
replacement. Prefer
|
|
162
|
-
`cursorHostedStorage` so records survive replace.
|
|
163
|
-
Do not put platform storage or deployment-identity names in
|
|
164
|
-
`hosting.secretNames`. Self-host with your own `defineStorage` backend or
|
|
165
|
-
a persistent `--state-root` when the complete filesystem must survive.
|
|
166
|
-
|
|
167
|
-
### Use the hosted agent
|
|
168
|
-
|
|
169
|
-
The CLI handles authentication for `--prod` commands. External HTTP
|
|
170
|
-
clients that hit the stable alias URL must send `X-Agent-Alias-Token` on
|
|
171
|
-
every request. Authored channel auth still runs after that gate.
|
|
172
|
-
|
|
173
|
-
Use `publicEndpoint()` on a custom channel that verifies its own provider
|
|
174
|
-
signature. Cursor then serves that channel path without the alias token.
|
|
175
|
-
The built-in session API still requires the token.
|
|
176
|
-
|
|
177
|
-
Use a relay or self-host when the channel cannot authenticate requests
|
|
178
|
-
itself.
|
|
179
|
-
|
|
180
|
-
Use `--prod` with the normal client commands:
|
|
89
|
+
The `--prod` commands authenticate through your Cursor credential and
|
|
90
|
+
connect to the deployment directly. Open the playground, run a turn,
|
|
91
|
+
then inspect the same session in logs.
|
|
181
92
|
|
|
182
93
|
```bash
|
|
183
94
|
agent-sdk playground --prod --slug weather-agent
|
|
184
|
-
agent-sdk
|
|
185
|
-
|
|
186
|
-
agent-sdk sessions --prod --slug weather-agent
|
|
95
|
+
agent-sdk run --prod --slug weather-agent \
|
|
96
|
+
--message "Forecast for Paris"
|
|
187
97
|
agent-sdk logs --prod --slug weather-agent
|
|
98
|
+
agent-sdk deployment weather-agent
|
|
188
99
|
```
|
|
189
100
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
The first deployment prints a reusable alias token once. Store it
|
|
194
|
-
immediately. Run `agent-sdk deployment weather-agent` to retrieve the
|
|
195
|
-
stable alias URL later. The token remains valid until rotation and can't
|
|
196
|
-
be retrieved.
|
|
197
|
-
|
|
198
|
-
External HTTP clients send the alias token on every request:
|
|
101
|
+
External HTTP clients use the stable alias URL and send the alias token
|
|
102
|
+
on every request:
|
|
199
103
|
|
|
200
104
|
```bash
|
|
201
105
|
curl "$AGENT_ALIAS_URL/v1/health" \
|
|
202
106
|
-H "X-Agent-Alias-Token: $AGENT_ALIAS_TOKEN"
|
|
203
107
|
```
|
|
204
108
|
|
|
205
|
-
|
|
206
|
-
|
|
109
|
+
The first deploy prints this token once. Store it outside terminal
|
|
110
|
+
transcripts; it cannot be retrieved later. If it is lost or exposed,
|
|
111
|
+
`agent-sdk rotate-token weather-agent` replaces it and invalidates the
|
|
112
|
+
old value.
|
|
207
113
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
```
|
|
114
|
+
`deployment --json` can include short-lived access headers, so treat
|
|
115
|
+
that output as a credential too.
|
|
211
116
|
|
|
212
|
-
|
|
117
|
+
For a custom webhook whose provider cannot send the alias token, use
|
|
118
|
+
`publicEndpoint()` only when the channel verifies the provider
|
|
119
|
+
signature. That opens the custom channel path, not the built-in session
|
|
120
|
+
or tool APIs. See [Webhooks](./guides/webhooks.md).
|
|
213
121
|
|
|
214
|
-
|
|
215
|
-
`--cursor-events-repo` for each repository whose events should wake the
|
|
216
|
-
agent:
|
|
122
|
+
## Update the deployment
|
|
217
123
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
--slug pr-approver \
|
|
221
|
-
--cursor-events-repo acme/checkout \
|
|
222
|
-
--cursor-events-repo acme/payments
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
The agent still needs a `githubChannel()` declaration for the events it
|
|
226
|
-
handles. This delivery path needs no public GitHub webhook URL. The
|
|
227
|
-
flag requires Cursor SCM-event access for the deployment credential.
|
|
228
|
-
|
|
229
|
-
For outbound GitHub calls, use `githubChannel({ cursorAccount: true })`
|
|
230
|
-
and grant the team's Cursor GitHub App access to each repository.
|
|
231
|
-
Alternatively, add dedicated GitHub credentials as deployment secrets.
|
|
232
|
-
See the [GitHub guide](./guides/github.md).
|
|
233
|
-
|
|
234
|
-
### Connect Slack
|
|
235
|
-
|
|
236
|
-
Hosted Slack uses a dedicated Socket Mode app:
|
|
237
|
-
|
|
238
|
-
```ts
|
|
239
|
-
import { slackChannel } from "@cursor/july/channels/slack";
|
|
240
|
-
|
|
241
|
-
export default slackChannel({ envPrefix: "PR_APPROVER" });
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
Provision the dedicated app from the dashboard. Open the deployment
|
|
245
|
-
under **Deployed Agents** at
|
|
246
|
-
[cursor.com/dashboard](https://cursor.com/dashboard), switch to
|
|
247
|
-
**Details**, and expand **Slack** under **Integrations**. **Add to
|
|
248
|
-
Slack** connects the workspace with a one-time authorization, and
|
|
249
|
-
**Create Slack app** creates and installs the app, then stores its
|
|
250
|
-
tokens as deployment secrets automatically. Redeploy when prompted so
|
|
251
|
-
the running agent picks them up. See
|
|
252
|
-
[Provision from the dashboard](./guides/slack.md#provision-from-the-dashboard)
|
|
253
|
-
for the walkthrough, including workspace-admin approval.
|
|
254
|
-
|
|
255
|
-
If you created the Slack app by hand instead, set its tokens as
|
|
256
|
-
deployment secrets yourself. The prefix selects the secret names:
|
|
257
|
-
|
|
258
|
-
```bash
|
|
259
|
-
agent-sdk secrets set pr-approver \
|
|
260
|
-
PR_APPROVER_SLACK_BOT_TOKEN \
|
|
261
|
-
PR_APPROVER_SLACK_APP_TOKEN
|
|
262
|
-
agent-sdk deploy --dir . --slug pr-approver
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
Without `envPrefix`, a dedicated app reads `SLACK_BOT_TOKEN` and
|
|
266
|
-
`SLACK_APP_TOKEN`. Socket Mode needs no inbound URL. See the
|
|
267
|
-
[Slack guide](./guides/slack.md).
|
|
268
|
-
|
|
269
|
-
### Update, stop, or delete a deployment
|
|
270
|
-
|
|
271
|
-
Redeploy the same slug after pushing a new Git ref. The stable alias
|
|
272
|
-
continues to point at the latest deploy. Follow the same source rules
|
|
273
|
-
from [Deploy from Git](#deploy-from-git).
|
|
124
|
+
Push the new ref and deploy the same slug. The stable URL remains while
|
|
125
|
+
the new generation replaces the previous one.
|
|
274
126
|
|
|
275
127
|
```bash
|
|
276
|
-
agent-sdk deploy --dir
|
|
277
|
-
agent-sdk stop weather-agent
|
|
278
|
-
agent-sdk delete weather-agent
|
|
128
|
+
agent-sdk deploy --dir . --slug weather-agent
|
|
279
129
|
```
|
|
280
130
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
## Self-host the Agent SDK
|
|
287
|
-
|
|
288
|
-
The Agent SDK runs as a Node HTTP server on Node 22.13 or newer. You can host
|
|
289
|
-
it on a VM or container platform.
|
|
131
|
+
A redeploy replaces its source, Cursor-event repository list, and any
|
|
132
|
+
egress domains supplied through CLI flags. Repass
|
|
133
|
+
`--cursor-events-repo` and other CLI-only settings each time. Keep
|
|
134
|
+
source-controlled egress in the `hosting` block when possible.
|
|
290
135
|
|
|
291
|
-
|
|
136
|
+
Use `agent-sdk deployment weather-agent` and
|
|
137
|
+
`agent-sdk logs --prod --slug weather-agent` to inspect a rollout.
|
|
138
|
+
The [CLI reference](./reference/cli.md#deploy) owns `--no-wait`,
|
|
139
|
+
multi-agent deployment, stop, and delete behavior.
|
|
292
140
|
|
|
293
|
-
|
|
294
|
-
Choose one of these options before exposing it:
|
|
295
|
-
|
|
296
|
-
1. Pass `--bearer-token <secret>` for a shared host.
|
|
297
|
-
2. Define channel-specific auth for routes with their own credentials or
|
|
298
|
-
signatures.
|
|
299
|
-
3. Use `--allow-anonymous` only behind an authenticating proxy.
|
|
300
|
-
|
|
301
|
-
A static bearer token maps every holder to one principal. Use authored
|
|
302
|
-
auth when callers need separate identities. See
|
|
303
|
-
[Channels](./reference/channels.md#auth-policies) for policy details.
|
|
304
|
-
|
|
305
|
-
### Credentials
|
|
306
|
-
|
|
307
|
-
A self-hosted server can read these credentials.
|
|
308
|
-
|
|
309
|
-
| Credential | Used for | Provide it as |
|
|
310
|
-
| --- | --- | --- |
|
|
311
|
-
| Cursor API key | model turns, cloud runtime, Cursor account MCP connections | `agent-sdk login` (stores a revocable key), `CURSOR_API_KEY`, `CURSOR_SERVICE_ACCOUNT_KEY`, or `--api-key` / `serve({ apiKey })` |
|
|
312
|
-
| Slack tokens | Slack channels | `<PREFIX>_SLACK_BOT_TOKEN` + `<PREFIX>_SLACK_APP_TOKEN` per agent |
|
|
313
|
-
| GitHub webhook secret | delivery signature verification | `GITHUB_WEBHOOK_SECRET`, same value on server and signer |
|
|
314
|
-
| GitHub API | outbound API calls | a GitHub App (`GITHUB_APP_ID` + `GITHUB_APP_PRIVATE_KEY` + installation id) or `GITHUB_TOKEN` / `gh auth login` |
|
|
315
|
-
| MCP connection tokens | authored MCP connections | env vars your `mcp-connections/*.ts` read, or host OAuth secrets from hosted Connect / `agent-sdk mcp oauth <name> --store` (`MCP_OAUTH_*`; see [Host MCP OAuth](./guides/mcp-oauth.md)) |
|
|
141
|
+
## Keep state across replacements
|
|
316
142
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
credential resolution.
|
|
143
|
+
Managed hosting persists framework-owned session, KV, and file state
|
|
144
|
+
across normal runtime replacements. Files written elsewhere on the
|
|
145
|
+
engine's local filesystem are disposable; use `ctx.host.kv` or
|
|
146
|
+
`ctx.host.files` for durable application state.
|
|
322
147
|
|
|
323
|
-
|
|
148
|
+
Parked approvals and in-memory reminder handlers do not survive a
|
|
149
|
+
restart. Run the turn again or recreate the reminder after a
|
|
150
|
+
replacement.
|
|
324
151
|
|
|
325
|
-
|
|
326
|
-
repository, and back it up. Sessions survive restarts only when their
|
|
327
|
-
state does. See [Sessions](./reference/sessions.md) for persistence
|
|
328
|
-
and layout details.
|
|
152
|
+
## Self-host securely
|
|
329
153
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
private network. Export the Cursor key and a generated bearer token in
|
|
334
|
-
the supervisor environment:
|
|
154
|
+
Run Agent SDK under Node 22.13 or newer, never Bun. One supervised
|
|
155
|
+
process can serve every agent under a directory while a persistent
|
|
156
|
+
state root keeps sessions across restarts.
|
|
335
157
|
|
|
336
158
|
```bash
|
|
337
159
|
export CURSOR_API_KEY="<cursor-api-key>"
|
|
338
160
|
export AGENT_SDK_BEARER_TOKEN="$(openssl rand -hex 32)"
|
|
339
161
|
|
|
340
|
-
|
|
341
|
-
|
|
162
|
+
agent-sdk serve \
|
|
163
|
+
--dir /srv/agents \
|
|
164
|
+
--host 127.0.0.1 \
|
|
165
|
+
--port 3000 \
|
|
342
166
|
--state-root /var/lib/agent-sdk \
|
|
343
167
|
--bearer-token "$AGENT_SDK_BEARER_TOKEN"
|
|
344
168
|
```
|
|
345
169
|
|
|
346
|
-
|
|
347
|
-
`--cursor-events --repo owner/repo` on `serve` so the host pulls events
|
|
348
|
-
through Cursor without a public webhook URL.
|
|
170
|
+
Before exposing the host:
|
|
349
171
|
|
|
350
|
-
|
|
351
|
-
Before starting or restarting `serve`, export the same strong
|
|
352
|
-
`GITHUB_WEBHOOK_SECRET` in both supervisor environments. Then install
|
|
353
|
-
the extension, authenticate `gh`, and start the forwarder. Repository
|
|
354
|
-
forwarding requires repo-admin access; organization forwarding with
|
|
355
|
-
`--org` requires org-owner access.
|
|
172
|
+
- Put TLS or an authenticating proxy in front of the loopback server.
|
|
356
173
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
agent-sdk github doctor --install
|
|
360
|
-
gh auth login
|
|
174
|
+
- Keep `--bearer-token` on shared hosts. Use `--allow-anonymous` only
|
|
175
|
+
behind a proxy that authenticates every caller.
|
|
361
176
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
agent-sdk github forward --dir /srv/agents --repo owner/repo
|
|
365
|
-
```
|
|
177
|
+
- Mount `--state-root` on a persistent volume outside the agent
|
|
178
|
+
repository and back it up.
|
|
366
179
|
|
|
367
|
-
|
|
368
|
-
tmux survives only SSH disconnects. On a TTY, press Enter to reload
|
|
369
|
-
agent code. Humans reach the playground through a private network or
|
|
370
|
-
tunnel. Keep `--bearer-token` on because tunneled requests arrive from
|
|
371
|
-
loopback and IP-based policies can't tell them apart.
|
|
180
|
+
- Inject credentials at startup instead of baking them into an image.
|
|
372
181
|
|
|
373
|
-
|
|
374
|
-
|
|
182
|
+
- Run the process under a supervisor and enable schedules on exactly
|
|
183
|
+
one serving process per project.
|
|
375
184
|
|
|
376
|
-
|
|
185
|
+
Containers use the same command with `--host 0.0.0.0`, a mounted state
|
|
186
|
+
volume, and an authenticating network boundary. The
|
|
187
|
+
[Channels reference](./reference/channels.md#auth-policies) covers
|
|
188
|
+
per-caller and channel-specific auth.
|
|
377
189
|
|
|
378
|
-
|
|
379
|
-
package dependencies. Run `agent-sdk serve` as a non-root user:
|
|
190
|
+
## Observability
|
|
380
191
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
--host 0.0.0.0 --port 3000 \
|
|
384
|
-
--state-root /var/lib/agent-sdk \
|
|
385
|
-
--bearer-token "$AGENT_SDK_BEARER_TOKEN"
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
Mount the state root as a persistent volume and inject secrets at
|
|
389
|
-
startup. Install `git` and `gh` when channels need host-side GitHub work.
|
|
390
|
-
Don't put secrets in the image.
|
|
391
|
-
|
|
392
|
-
### Serve many agents from one process
|
|
393
|
-
|
|
394
|
-
Point `serve` at a folder of agent projects and every child mounts under
|
|
395
|
-
its directory name on one port. One process, one state root, one
|
|
396
|
-
credential:
|
|
397
|
-
|
|
398
|
-
```bash
|
|
399
|
-
agent-sdk serve --dir /srv/agents
|
|
400
|
-
# index at /, each agent at /<slug>/v1/*, /<slug>/playground
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
Only mount what you mean to run. Every mounted agent's channels are live,
|
|
404
|
-
and webhook-driven agents spend model budget on every wake. `--mode
|
|
405
|
-
single` serves exactly one agent at the unslugged `/v1/*` when the agent
|
|
406
|
-
is the whole host. See the [HTTP API](./reference/http-api.md) for route
|
|
407
|
-
layout and the [Slack guide](./guides/slack.md) for multi-agent token
|
|
408
|
-
setup.
|
|
409
|
-
|
|
410
|
-
### The production flags
|
|
411
|
-
|
|
412
|
-
Use these settings in production:
|
|
413
|
-
|
|
414
|
-
| Flag | In production |
|
|
415
|
-
| --- | --- |
|
|
416
|
-
| `--dev` | Leave off. Dev mode admits unsigned loopback GitHub deliveries, widens playground session listing on loopback, and never auto-fires schedules. |
|
|
417
|
-
| `--bearer-token` | Set on shared hosts unless an authenticating proxy is the trust boundary and you use `--allow-anonymous` instead. |
|
|
418
|
-
| `--allow-anonymous` | Use only behind an authenticating network boundary. It also widens playground session access so Slack and webhook sessions appear. |
|
|
419
|
-
| `--state-root` | Place on a persistent volume outside any repo. |
|
|
420
|
-
| `--public-url` | Set when cloud-runtime turns must call back into peers on this host. |
|
|
421
|
-
| `--no-playground` | Set when no human needs the UI. |
|
|
422
|
-
| `--no-docs` | Set to remove the documentation site at `/docs`. |
|
|
423
|
-
| `--no-schedules` | Set on secondary hosts so schedules run exactly once. |
|
|
424
|
-
|
|
425
|
-
Schedules fire on their cron cadence (UTC) in production mode. They have
|
|
426
|
-
no cross-host coordination, so enable them on exactly one serving process
|
|
427
|
-
per project.
|
|
428
|
-
|
|
429
|
-
### Restarts and upgrades
|
|
430
|
-
|
|
431
|
-
Restarts preserve sessions, event streams, and SDK conversation state
|
|
432
|
-
under the state root. Parked approvals and in-memory reminders don't
|
|
433
|
-
survive a restart; re-run or recreate them afterward.
|
|
434
|
-
|
|
435
|
-
### Observability
|
|
436
|
-
|
|
437
|
-
Use [`agent-sdk logs`](./reference/cli.md#logs) for runtime output,
|
|
438
|
-
[OpenTelemetry](./guides/opentelemetry.md) for OTLP traces and metrics,
|
|
439
|
-
[hooks](./reference/hooks.md) for in-process subscribers, and
|
|
192
|
+
Use `agent-sdk logs --prod` for runtime output,
|
|
193
|
+
[OpenTelemetry](./guides/opentelemetry.md) for traces and metrics, and
|
|
440
194
|
[session traces](./reference/sessions.md#how-do-i-inspect-a-saved-event-stream)
|
|
441
|
-
for
|
|
442
|
-
|
|
443
|
-
##
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
- [
|
|
448
|
-
|
|
449
|
-
- [
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
- [Troubleshooting](./troubleshooting.md):
|
|
453
|
-
|
|
195
|
+
for one conversation.
|
|
196
|
+
|
|
197
|
+
## Related
|
|
198
|
+
|
|
199
|
+
- [CLI reference](./reference/cli.md#deploy): inspect, update, stop,
|
|
200
|
+
delete, and rotate deployments
|
|
201
|
+
- [GitHub](./guides/github.md): Cursor-event repositories and direct
|
|
202
|
+
webhook delivery
|
|
203
|
+
- [Slack](./guides/slack.md): provision a dedicated hosted Slack app
|
|
204
|
+
- [Host MCP OAuth](./guides/mcp-oauth.md): persist OAuth credentials
|
|
205
|
+
across hosted replacements
|
|
206
|
+
- [Troubleshooting](./troubleshooting.md): diagnose failed or stale
|
|
207
|
+
deployments
|