@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
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Cursor cloud agents"
|
|
3
|
-
description: "
|
|
3
|
+
description: "Mount an extension that lets your agent delegate repository work, inspect the result, and steer or stop the cloud agent."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Cloud agents
|
|
7
7
|
|
|
8
|
-
The `cursor-cloud-agents` extension
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
questions in the meantime. A Slack triage agent turns a bug report into
|
|
13
|
-
a PR, a planner fans a refactor out across repositories, a reviewer asks
|
|
14
|
-
a cloud agent to address its own comments.
|
|
8
|
+
The `cursor-cloud-agents` extension adds repository delegation to an
|
|
9
|
+
existing Agent SDK conversation. Your agent can launch a Cursor cloud
|
|
10
|
+
agent, keep talking while it works, inspect the result, and steer or
|
|
11
|
+
stop the same branch.
|
|
15
12
|
|
|
16
|
-
This is different from
|
|
17
|
-
`
|
|
18
|
-
|
|
19
|
-
the agent
|
|
13
|
+
This is different from choosing
|
|
14
|
+
[`runtime: "cloud"`](../reference/agent-config.md#choose-a-runtime).
|
|
15
|
+
That setting moves this agent's turns to a cloud VM; this extension lets
|
|
16
|
+
the agent delegate separate coding tasks.
|
|
20
17
|
|
|
21
18
|
## Mount it
|
|
22
19
|
|
|
23
|
-
|
|
20
|
+
Mount the extension under a namespace, list every repository it may
|
|
21
|
+
touch, and choose whether launches need approval. This example makes the
|
|
22
|
+
boundary explicit even though a configured repository list would
|
|
23
|
+
otherwise turn approval off by default.
|
|
24
24
|
|
|
25
25
|
```ts
|
|
26
26
|
// agent/extensions/cloud.ts
|
|
@@ -28,75 +28,127 @@ import cursorCloudAgents from "@cursor/july/extensions/cursor-cloud-agents";
|
|
|
28
28
|
|
|
29
29
|
export default cursorCloudAgents({
|
|
30
30
|
cloud: {
|
|
31
|
-
repos: [
|
|
31
|
+
repos: [
|
|
32
|
+
{
|
|
33
|
+
url: "https://github.com/acme/api",
|
|
34
|
+
startingRef: "main",
|
|
35
|
+
},
|
|
36
|
+
],
|
|
32
37
|
autoCreatePR: true,
|
|
33
38
|
},
|
|
39
|
+
needsApproval: true,
|
|
34
40
|
});
|
|
35
41
|
```
|
|
36
42
|
|
|
37
|
-
|
|
38
|
-
`
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
agent
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
43
|
+
Mounted as `cloud`, the extension contributes tools such as
|
|
44
|
+
`cloud__launch`, `cloud__get`, `cloud__dump`, `cloud__reply`, and
|
|
45
|
+
`cloud__cancel`, plus guidance for using them.
|
|
46
|
+
|
|
47
|
+
## Hand off repository work
|
|
48
|
+
|
|
49
|
+
Ask for an outcome that needs a checkout or a long isolated run. The
|
|
50
|
+
agent writes a self-contained brief, requests approval when configured,
|
|
51
|
+
then immediately reports the complete cloud-agent ID and URL. A branch
|
|
52
|
+
or pull request appears later as the cloud agent works.
|
|
53
|
+
|
|
54
|
+
> Hand this bug to a cloud agent in `acme/api`. Preserve the public API,
|
|
55
|
+
> run the package tests, and open a pull request with the fix.
|
|
56
|
+
|
|
57
|
+
The brief should include the goal, repository or PR, starting ref,
|
|
58
|
+
constraints, files to leave alone, and what completion means. The cloud
|
|
59
|
+
agent cannot see the surrounding conversation, so references such as
|
|
60
|
+
"fix the issue above" are not enough.
|
|
61
|
+
|
|
62
|
+
## Check and report the result
|
|
63
|
+
|
|
64
|
+
Use `get` when you need current status, branch or PR links, and change
|
|
65
|
+
counts. Status can be `creating`, `running`, `finished`, `error`,
|
|
66
|
+
`expired`, or `unknown`.
|
|
67
|
+
|
|
68
|
+
After work finishes, `dump` writes the conversation and tool transcript
|
|
69
|
+
into the session workspace and returns its path plus `finalMessage`.
|
|
70
|
+
If neither is available yet, wait for more output instead of inventing
|
|
71
|
+
a report.
|
|
72
|
+
|
|
73
|
+
Read `finalMessage`, then inspect the resulting branch or pull request
|
|
74
|
+
before telling a person exactly what changed. The transcript records
|
|
75
|
+
commands and tool activity, but it is not a canonical code diff.
|
|
76
|
+
|
|
77
|
+
## Steer or stop the same agent
|
|
78
|
+
|
|
79
|
+
Use `reply` to add constraints, ask for a correction, or continue work
|
|
80
|
+
on the existing branch. A follow-up queues behind the current run by
|
|
81
|
+
default; choose interruption only when the active step should stop
|
|
82
|
+
immediately.
|
|
83
|
+
|
|
84
|
+
> Keep the current branch, but replace the new dependency with the
|
|
85
|
+
> standard library and rerun the same tests.
|
|
86
|
+
|
|
87
|
+
`cancel` stops active work immediately while preserving the branch and
|
|
88
|
+
conversation, so a later `reply` can continue from that state. Approval
|
|
89
|
+
applies to `launch` and `reply`; `get`, `dump`, `list`, and `cancel` do
|
|
90
|
+
not park.
|
|
73
91
|
|
|
74
92
|
## Configure it
|
|
75
93
|
|
|
94
|
+
Two settings define the important boundary:
|
|
76
95
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
| `cloud.repos` | The repositories the agent may hand work to, with a default branch or pull request for each. Without it, launches run with no repository and the model can't name one, so secrets in `cloud.envVars` never reach a repository you didn't list. |
|
|
81
|
-
| `model` | The model launched agents run. Omit it to use the account default. |
|
|
82
|
-
| `needsApproval` | Park launches and follow-ups for a [human decision](../reference/tools.md#gate-a-tool-on-human-approval). Defaults to `true` when no `cloud.repos` are configured, `false` otherwise. |
|
|
83
|
-
| `apiKey` | A Cursor API key to launch with instead of the host's own. |
|
|
96
|
+
- `cloud.repos` is both the launch default and the repository allowlist.
|
|
97
|
+
A model-selected repository or PR outside it is refused, including
|
|
98
|
+
when cloud environment variables carry secrets.
|
|
84
99
|
|
|
100
|
+
- `needsApproval` controls launches and follow-ups. Approval cards
|
|
101
|
+
require the local runtime; parked approvals do not survive a host
|
|
102
|
+
restart.
|
|
85
103
|
|
|
104
|
+
The extension spends cloud-agent budget and uses the serve host's
|
|
105
|
+
Cursor credential: `CURSOR_API_KEY`, `CURSOR_API_KEY_FILE`,
|
|
106
|
+
`CURSOR_SERVICE_ACCOUNT_KEY`, or `agent-sdk login`. Pass `apiKey` only
|
|
107
|
+
when this extension should use a different account.
|
|
86
108
|
|
|
109
|
+
Local runtime is the simplest setup and supports approvals. A
|
|
110
|
+
cloud-runtime agent can reach these server tools through managed hosting
|
|
111
|
+
or a protected `--public-url`, but it cannot resolve tool approvals.
|
|
87
112
|
|
|
88
|
-
|
|
113
|
+
Model choice, environment, PR behavior, and other launch defaults use
|
|
114
|
+
the standard [cloud options](../reference/agent-config.md#cloud-options).
|
|
89
115
|
|
|
90
|
-
|
|
91
|
-
directory and disable that tool; see
|
|
92
|
-
[overlays](../reference/extensions.md#adjust-a-mounted-extension).
|
|
116
|
+
## Caller ownership
|
|
93
117
|
|
|
94
|
-
|
|
118
|
+
Every launched agent belongs to the authenticated principal that
|
|
119
|
+
started it. Other principals cannot inspect, steer, or cancel that run.
|
|
120
|
+
A shared bearer token or anonymous host collapses callers into one
|
|
121
|
+
principal, so use per-caller auth when this separation matters.
|
|
122
|
+
|
|
123
|
+
`dump` materializes reasoning and tool-call content into the session
|
|
124
|
+
workspace. Treat that file like any other detailed agent transcript.
|
|
125
|
+
|
|
126
|
+
## Practices
|
|
127
|
+
|
|
128
|
+
- Launch one cloud agent per independent task; steer the same agent for
|
|
129
|
+
follow-up work on its branch.
|
|
130
|
+
|
|
131
|
+
- Use `list` for launches from the current session. Request caller-wide
|
|
132
|
+
history only when the user asks for earlier work.
|
|
95
133
|
|
|
96
|
-
|
|
134
|
+
- Report the complete agent ID and URL. Do not abbreviate the ID.
|
|
97
135
|
|
|
98
|
-
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
136
|
+
- Check status when someone needs progress or when the result should be
|
|
137
|
+
ready, not in a tight polling loop.
|
|
138
|
+
|
|
139
|
+
## Adjust it
|
|
140
|
+
|
|
141
|
+
To remove a capability such as `reply`, mount the extension as a
|
|
142
|
+
directory and disable that tool. See
|
|
143
|
+
[Adjust a mounted extension](../reference/extensions.md#adjust-a-mounted-extension).
|
|
144
|
+
|
|
145
|
+
## What's next
|
|
102
146
|
|
|
147
|
+
- [Extensions](../reference/extensions.md): namespaces, trust, and
|
|
148
|
+
overlays
|
|
149
|
+
- [Self-improvement](./improve.md): use this extension to propose
|
|
150
|
+
changes to the agent's own source
|
|
151
|
+
- [Tool approvals](../reference/tools.md#gate-a-tool-on-human-approval):
|
|
152
|
+
review launches and follow-ups
|
|
153
|
+
- [Deployment](../deployment.md): expose server tools to cloud-runtime
|
|
154
|
+
turns
|
|
@@ -1,176 +1,185 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Convert a Cursor Automation"
|
|
3
|
-
description: "
|
|
3
|
+
description: "Turn a dashboard Automation into an Agent SDK project, then reconnect its actions and triggers."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Convert a Cursor Automation
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
Convert a dashboard Automation when you want to edit its behavior as
|
|
9
|
+
code, test it locally, or deploy it as an Agent SDK project. If you only
|
|
10
|
+
need to change the prompt or trigger, the dashboard remains the shorter
|
|
11
|
+
path.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
exit codes.
|
|
13
|
+
`convert-automation` carries over what it can prove from the exported
|
|
14
|
+
configuration and prints a checklist for everything that still needs
|
|
15
|
+
your judgment.
|
|
17
16
|
|
|
18
|
-
##
|
|
17
|
+
## Convert and run locally
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
The command creates a project named after the Automation, installs its
|
|
20
|
+
dependencies, and prints the generated files along with warnings and
|
|
21
|
+
setup steps. Once `dev` starts, you can exercise the converted agent in
|
|
22
|
+
the playground before reconnecting any live trigger.
|
|
22
23
|
|
|
23
24
|
```bash
|
|
24
25
|
agent-sdk login
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
agent-sdk convert-automation \
|
|
27
|
+
https://cursor.com/automations/0a1b2c3d-0000-1111-2222-333344445555
|
|
28
|
+
|
|
29
|
+
cd nightly-triage
|
|
30
|
+
agent-sdk validate
|
|
31
|
+
agent-sdk dev
|
|
27
32
|
```
|
|
28
33
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
The project includes the Automation's prompt and model plus any
|
|
35
|
+
schedules, channels, and account connections the converter could
|
|
36
|
+
represent directly. The
|
|
37
|
+
[CLI reference](../reference/cli.md#convert-automation) covers custom
|
|
38
|
+
output directories, JSON output, and command failures.
|
|
39
|
+
|
|
40
|
+
## Reconnect account-backed actions
|
|
41
|
+
|
|
42
|
+
For an HTTP or SSE MCP server, the converter writes a name-based
|
|
43
|
+
connection instead of copying its URL or credentials. After you connect
|
|
44
|
+
the same server under MCP in Cursor and sign in the local host, the
|
|
45
|
+
converted agent can use that server's tools through your account.
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
// agent/mcp-connections/linear.ts
|
|
49
|
+
import { defineConnection } from "@cursor/july/connections";
|
|
50
|
+
|
|
51
|
+
export default defineConnection({
|
|
52
|
+
cursorAccount: true,
|
|
53
|
+
servers: ["Linear"],
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The summary adds a `Verify:` step when an original dashboard action
|
|
58
|
+
does not map to one generated tool. Treat that step as a behavior test:
|
|
59
|
+
run the converted agent with a representative input and confirm the
|
|
60
|
+
same external write happens before you consider the action restored.
|
|
61
|
+
|
|
62
|
+
## Bring a Slack trigger online
|
|
63
|
+
|
|
64
|
+
After you create the dedicated Slack app, mentions wake the converted
|
|
65
|
+
agent and its answers land in the same thread. A channel watch also
|
|
66
|
+
wakes on allowed posts, but only after you subscribe the app with
|
|
67
|
+
`--channel-posts`.
|
|
32
68
|
|
|
33
69
|
```bash
|
|
34
|
-
agent-sdk
|
|
70
|
+
agent-sdk slack create --dir . --channel-posts
|
|
35
71
|
```
|
|
36
72
|
|
|
37
|
-
The
|
|
38
|
-
|
|
73
|
+
The converter preserves the watch allowlist. If a warning says Cursor
|
|
74
|
+
previously filtered messages by text, add that decision to the
|
|
75
|
+
generated channel before inviting the bot:
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
export default slackChannel({
|
|
79
|
+
envPrefix: "NIGHTLY_TRIAGE",
|
|
80
|
+
engagement: {
|
|
81
|
+
channelPosts: { allow: ["C123"] },
|
|
82
|
+
},
|
|
83
|
+
onChannelPost: async (_ctx, message) => {
|
|
84
|
+
if (!message.markdown.includes("deploy")) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
// `{}` starts a model turn as the sender.
|
|
88
|
+
return {};
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
For mention-only Automations, run `agent-sdk slack create --dir .`
|
|
94
|
+
without `--channel-posts`. The [Slack guide](./slack.md) covers the
|
|
95
|
+
reply experience and app setup.
|
|
96
|
+
|
|
97
|
+
## Bring a GitHub trigger online
|
|
98
|
+
|
|
99
|
+
The generated GitHub channel keeps mechanical filters such as PR
|
|
100
|
+
actions, branches, issue actions, repositories, and simple user
|
|
101
|
+
allowlists. Conditions that depended on backend-only context stay
|
|
102
|
+
fail-closed, so the corresponding hook returns `null` until you replace
|
|
103
|
+
it.
|
|
104
|
+
|
|
105
|
+
For example, a converted CI trigger can wake only when the suite fails:
|
|
106
|
+
|
|
107
|
+
```ts
|
|
108
|
+
import {
|
|
109
|
+
defaultGitHubAuth,
|
|
110
|
+
githubChannel,
|
|
111
|
+
} from "@cursor/july/channels/github";
|
|
112
|
+
|
|
113
|
+
export default githubChannel({
|
|
114
|
+
cursorAccount: { repos: ["acme/api"] },
|
|
115
|
+
webhookEvents: ["check_suite"],
|
|
116
|
+
onCheckSuite: (ctx, suite) => {
|
|
117
|
+
if (suite.conclusion !== "failure") {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
// `auth` starts a model turn running as the sender.
|
|
121
|
+
return { auth: defaultGitHubAuth(ctx) };
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Replay a PR with a failing check before connecting live delivery:
|
|
39
127
|
|
|
40
128
|
```bash
|
|
41
|
-
|
|
129
|
+
agent-sdk github replay acme/api#42 \
|
|
130
|
+
--dir . \
|
|
131
|
+
--events '*' \
|
|
132
|
+
--conclusion failure
|
|
42
133
|
```
|
|
43
134
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
after either error.
|
|
135
|
+
Cursor-account delivery carries PR and comment events. Push, issue, and
|
|
136
|
+
CI triggers need real GitHub webhook delivery through a GitHub App or
|
|
137
|
+
`github forward`. The [GitHub guide](./github.md) covers both paths.
|
|
48
138
|
|
|
49
|
-
|
|
50
|
-
fails, the files remain. Run `npm install` in the output directory
|
|
51
|
-
before `dev`.
|
|
139
|
+
## Treat warnings as the migration checklist
|
|
52
140
|
|
|
53
|
-
|
|
141
|
+
A successful conversion means the project was generated, not that
|
|
142
|
+
every source behavior survived. Read the warnings and setup steps before
|
|
143
|
+
turning on a live trigger:
|
|
54
144
|
|
|
55
|
-
A
|
|
145
|
+
- A setup step names something you must connect or configure.
|
|
56
146
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
147
|
+
- A `Verify:` step names an external action whose behavior needs a test.
|
|
148
|
+
|
|
149
|
+
- A fail-closed hook intentionally starts no turns until you restore its
|
|
150
|
+
filter.
|
|
151
|
+
|
|
152
|
+
- A `.todo.md` file is ignored by the framework and marks a connection
|
|
153
|
+
you must replace.
|
|
154
|
+
|
|
155
|
+
Keep the source Automation enabled while you work through this list, so
|
|
156
|
+
you still have its behavior as a reference.
|
|
157
|
+
|
|
158
|
+
## Know the conversion boundary
|
|
159
|
+
|
|
160
|
+
The converter can reproduce configuration that has a direct home in an
|
|
161
|
+
Agent SDK project: instructions, the selected model, cron schedules,
|
|
162
|
+
mechanical GitHub filters, Slack mentions and watch allowlists, and
|
|
163
|
+
named Cursor-account MCP connections.
|
|
164
|
+
|
|
165
|
+
It cannot infer policy that lived behind the dashboard. Bespoke trigger
|
|
166
|
+
conditions, provider webhook registration and auth, credentials,
|
|
167
|
+
unsupported trigger semantics, and built-in action behavior remain
|
|
168
|
+
warnings, comments, or TODO files for you to resolve. Credentials are
|
|
169
|
+
never exported.
|
|
170
|
+
|
|
171
|
+
Cursor-managed Automations do not convert because their behavior lives
|
|
172
|
+
entirely in managed configuration.
|
|
173
|
+
|
|
174
|
+
## Related
|
|
68
175
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
File generation leaves existing paths unchanged and marks them as
|
|
72
|
-
`exist`. This does not cover `npm install`, which may update lockfiles
|
|
73
|
-
or run lifecycle scripts from an existing `package.json`.
|
|
74
|
-
|
|
75
|
-
| Automation input | Project output |
|
|
76
|
-
| --- | --- |
|
|
77
|
-
| First prompt | Copies text to `agent/instructions.md`. Action markup such as `@[label](action:...)` becomes the label text. |
|
|
78
|
-
| Prompt model | Pins the model on `defineAgent` in `agent/agent.ts`. `git_config` and `agent_options` remain comments. |
|
|
79
|
-
| Cron trigger | Creates `agent/schedules/<slug>.ts` with `defineSchedule` in UTC. |
|
|
80
|
-
| GitHub trigger | Creates `agent/channels/github.ts`. It converts pull-request action, push branch, issue action, and user allowlist filters. |
|
|
81
|
-
| Slack trigger | Creates `agent/channels/slack.ts` as Socket Mode with `envPrefix` from the automation name (same names `slack create` writes). Watches add `engagement.channelPosts`. Run `agent-sdk slack create` for the bot. |
|
|
82
|
-
| Linear, PagerDuty, Sentry, Teams, or generic webhook | Creates a boilerplate `agent/channels/<slug>.ts`. |
|
|
83
|
-
| HTTP or SSE MCP server | Creates a name-based Cursor-account connection under `agent/mcp-connections/`. The project contains no server URL or credentials. |
|
|
84
|
-
| Stdio MCP server | Writes `agent/mcp-connections/<slug>.todo.md`. |
|
|
85
|
-
| Slack post or read action | Adds `agent/mcp-connections/slack.ts`. The summary includes a `Verify:` step for the original action. |
|
|
86
|
-
| Other built-in dashboard action | Adds a `Verify:` setup step instead of an Agent SDK tool. |
|
|
87
|
-
|
|
88
|
-
## Finish unsupported behavior
|
|
89
|
-
|
|
90
|
-
Warnings and setup steps identify behavior the converter could not
|
|
91
|
-
reproduce.
|
|
92
|
-
|
|
93
|
-
### Prompt snippets
|
|
94
|
-
|
|
95
|
-
The export omits the source text for unresolved `%%INLINECODE<n>%%`
|
|
96
|
-
placeholders. Restore those snippets in `instructions.md`.
|
|
97
|
-
|
|
98
|
-
### GitHub filters
|
|
99
|
-
|
|
100
|
-
Comment text, CI conclusion, label name, and review-state filters stay
|
|
101
|
-
fail-closed. The generated hooks return `null` until you add them.
|
|
102
|
-
The generated Cursor-account event relay includes only pull-request and
|
|
103
|
-
comment data. Push, issue, and CI triggers need a GitHub App webhook or
|
|
104
|
-
`github forward`. Add repositories for org-wide watches. The converter
|
|
105
|
-
drops non-GitHub remotes.
|
|
106
|
-
|
|
107
|
-
### Slack triggers
|
|
108
|
-
|
|
109
|
-
Reaction and channel-created triggers have no Agent SDK equivalent. The
|
|
110
|
-
converter keeps their configuration in comments but adds no handler.
|
|
111
|
-
Re-add any `messageContains` filter or completion reaction you need.
|
|
112
|
-
These triggers and channel watches require a dedicated Socket Mode app.
|
|
113
|
-
Run `agent-sdk slack create --channel-posts`, then finish the dashboard
|
|
114
|
-
wizard.
|
|
115
|
-
|
|
116
|
-
### Provider webhooks
|
|
117
|
-
|
|
118
|
-
Linear, PagerDuty, Sentry, Teams, and generic webhook channels mount
|
|
119
|
-
`POST /` under their channel route. Every accepted body starts a run.
|
|
120
|
-
In default multi-agent mode, the route is
|
|
121
|
-
`/<agent-slug>/v1/channels/<channel-id>`. Single mode uses
|
|
122
|
-
`/v1/channels/<channel-id>`.
|
|
123
|
-
|
|
124
|
-
Restore the filters and auth before registering the provider. A hosted
|
|
125
|
-
alias requires `X-Agent-Alias-Token`. If the provider cannot send that
|
|
126
|
-
header, use `publicEndpoint()` with signature verification in the
|
|
127
|
-
handler, put an alias-token relay in front, or self-host.
|
|
128
|
-
|
|
129
|
-
### Stdio MCP servers
|
|
130
|
-
|
|
131
|
-
The converter does not export the command, arguments, or environment.
|
|
132
|
-
Run the server, then replace the `.todo.md` stub with a reachable
|
|
133
|
-
connection.
|
|
134
|
-
|
|
135
|
-
### Disabled default tools
|
|
136
|
-
|
|
137
|
-
The converter cannot preserve this restriction. Do not rely on
|
|
138
|
-
`instructions.md` as enforcement. Use the
|
|
139
|
-
[`tools` allowlist](../reference/agent-config.md#allowlist-built-in-harness-tools),
|
|
140
|
-
remove unwanted authored or MCP tools, and limit channel permissions.
|
|
141
|
-
|
|
142
|
-
## Review and run the project
|
|
143
|
-
|
|
144
|
-
1. Read every warning and setup step.
|
|
145
|
-
2. Open the generated channel files. Fail-closed GitHub hooks dispatch
|
|
146
|
-
nothing until you add their filters. Add auth to boilerplate webhook
|
|
147
|
-
routes.
|
|
148
|
-
3. Confirm the account MCP servers are connected under MCP in the Cursor
|
|
149
|
-
dashboard. The serving host must be signed in with `agent-sdk login`
|
|
150
|
-
or `CURSOR_API_KEY`.
|
|
151
|
-
4. Run the printed next steps:
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
agent-sdk validate
|
|
155
|
-
agent-sdk dev
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
5. Before you [deploy](../deployment.md), disable the source Automation
|
|
159
|
-
so both versions do not respond to the same events. The final setup
|
|
160
|
-
step includes its dashboard URL.
|
|
161
|
-
6. A hosted deployment uses a separate service account. After the first
|
|
162
|
-
deploy, run `agent-sdk mcp oauth <connection>` for each generated
|
|
163
|
-
Cursor-account connection.
|
|
164
|
-
|
|
165
|
-
## What's next
|
|
166
|
-
|
|
167
|
-
- [CLI](../reference/cli.md#convert-automation): flags, `--json`, exit
|
|
168
|
-
codes
|
|
176
|
+
- [CLI reference](../reference/cli.md#convert-automation): arguments,
|
|
177
|
+
JSON output, and failures
|
|
169
178
|
- [MCP connections](../reference/connections.md): Cursor-account
|
|
170
|
-
connectors
|
|
171
|
-
- [GitHub](./github.md): hook filters and replay
|
|
172
|
-
|
|
173
|
-
- [
|
|
174
|
-
|
|
175
|
-
- [Deployment](../deployment.md):
|
|
176
|
-
the
|
|
179
|
+
connectors and hosted authorization
|
|
180
|
+
- [GitHub](./github.md): event delivery, hook filters, and replay
|
|
181
|
+
- [Slack](./slack.md): mentions, channel watches, and reply modes
|
|
182
|
+
- [Webhooks](./webhooks.md): auth and filtering for generated provider
|
|
183
|
+
routes
|
|
184
|
+
- [Deployment](../deployment.md): deploy the reviewed project, then
|
|
185
|
+
disable the source Automation before enabling the same live triggers
|