@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
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Review pull requests for bugs and breakage"
|
|
3
|
+
description: "Scaffold the agent, deploy it, and open a PR."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Review pull requests for bugs and breakage
|
|
7
|
+
|
|
8
|
+
This agent reads a pull request diff and posts one review comment. It
|
|
9
|
+
reports bugs, breaking side effects, devex breaks, and feature-gate
|
|
10
|
+
leaks in added or modified code. Style nits stay out.
|
|
11
|
+
|
|
12
|
+
This template is one model turn: read the diff, then post one comment.
|
|
13
|
+
|
|
14
|
+
## Scaffold
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npx @cursor/july init ./thermo-review --template thermo-review
|
|
18
|
+
cd thermo-review
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Deploy
|
|
22
|
+
|
|
23
|
+
Sign in once, then deploy from a pushed checkout:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
agent-sdk login
|
|
27
|
+
agent-sdk deploy --cursor-events-repo acme/api
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Repeat `--cursor-events-repo` for each repo. Every repo must share one
|
|
31
|
+
owner. The deployment watches those repos through your team's Cursor
|
|
32
|
+
GitHub connection and reviews each opened PR. No webhook or local
|
|
33
|
+
server.
|
|
34
|
+
|
|
35
|
+
Change repos later without redeploying:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
agent-sdk event-repos thermo-review --repo acme/api --repo acme/web
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Try it locally
|
|
42
|
+
|
|
43
|
+
Skip the deploy while you iterate. Start the relay for one repo:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
agent-sdk dev --cursor-events --repo acme/api
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Open a PR, or replay a known one without pushing:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
agent-sdk github replay https://github.com/acme/api/pull/12 --dir .
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`replay` needs pull access. Draft PRs are ignored. The channel writes
|
|
56
|
+
`pr/diff.patch`, then starts a model turn. The model calls
|
|
57
|
+
`post_findings` once. Chat replies stay in the playground.
|
|
58
|
+
`post_findings` writes the GitHub comment.
|
|
59
|
+
|
|
60
|
+
Connect GitHub in Cursor first (Settings or
|
|
61
|
+
[cursor.com/dashboard](https://cursor.com/dashboard)) so the relay and
|
|
62
|
+
API calls use your account. See the [GitHub guide](../guides/github.md).
|
|
63
|
+
|
|
64
|
+
## Evals
|
|
65
|
+
|
|
66
|
+
Two smoke cases: one auth-bypass fixture and one docs-only change. They
|
|
67
|
+
need no GitHub access.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
agent-sdk eval
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Eval sessions skip the GitHub write.
|
|
74
|
+
|
|
75
|
+
## What to edit
|
|
76
|
+
|
|
77
|
+
- `agent/instructions.md`: what counts as a finding and the comment
|
|
78
|
+
shape
|
|
79
|
+
- `evals/review.eval.ts`: smoke cases
|
package/docs/troubleshooting.md
CHANGED
|
@@ -1,115 +1,146 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Fix common agent problems"
|
|
3
|
-
description: "Match
|
|
3
|
+
description: "Match the symptom to one corrective action, then inspect the session trace when the first fix is not enough."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Fix common agent problems
|
|
7
7
|
|
|
8
|
-
Start with
|
|
8
|
+
Start with three checks:
|
|
9
9
|
|
|
10
|
-
1.
|
|
11
|
-
2.
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
1. Run `agent-sdk validate --dir .`.
|
|
11
|
+
2. Confirm the expected agent and connections in
|
|
12
|
+
`agent-sdk info --dir . --json`.
|
|
13
|
+
3. Reproduce once, then inspect the serve log or session trace.
|
|
14
14
|
|
|
15
|
-
Match
|
|
16
|
-
|
|
15
|
+
Match the visible symptom below. If `agent-sdk` is not on `PATH`, use
|
|
16
|
+
`npx @cursor/july`.
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## Serve or the playground will not work
|
|
19
19
|
|
|
20
20
|
| What you see | What to do |
|
|
21
21
|
| --- | --- |
|
|
22
|
-
| `serve`
|
|
23
|
-
| Playground is blank or says there are no agents |
|
|
24
|
-
|
|
|
25
|
-
| Sessions exist but the
|
|
26
|
-
|
|
|
22
|
+
| `serve` exits before listening | Fix the errors from `agent-sdk validate --dir .`, then start it again. |
|
|
23
|
+
| Playground is blank or says there are no agents | Start `agent-sdk serve`; built playground assets have no agent data without the server. |
|
|
24
|
+
| Agent-file edits do not appear | Open the URL printed by `serve --dev`, then press Enter in its TTY to reload after file changes. |
|
|
25
|
+
| Sessions exist but the list is empty | The list is scoped to the authenticated principal. Use the same identity that created the session; a `?sessionId=` deep link does not bypass authorization. |
|
|
26
|
+
| The preferred port is busy | Use the next port printed by the CLI, pass `--port <number>`, or pass `--port 0` for any free port. |
|
|
27
27
|
|
|
28
|
-
##
|
|
28
|
+
## A model turn fails
|
|
29
29
|
|
|
30
30
|
| What you see | What to do |
|
|
31
31
|
| --- | --- |
|
|
32
|
-
|
|
|
33
|
-
| The turn
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
| Server tools, skills, or workspace seed files never appear | Server tools and sandbox seeds apply on the local runtime (cloud server tools need `--public-url` / `--cloud-tools-url`). Skills reach cloud through the Agent Store when hosting or a personal `CURSOR_API_KEY` is available; otherwise only skills already in the cloud repo. `validate` warns when this combination is present. |
|
|
37
|
-
| `validate` and `run` succeed, but typecheck fails in CI | The CLI runs TypeScript with type-stripping only. Keep tool `execute` return types as object literals or `type` aliases, not `interface` types. |
|
|
38
|
-
| Login works, but turns are rejected when using custom API hosts | Point login and model traffic at the same host (`CURSOR_API_BASE_URL` and `CURSOR_BACKEND_URL`). A key from one host is rejected by the other. |
|
|
32
|
+
| File reads and greps fail repeatedly with `NGHTTP2_FRAME_SIZE_ERROR` | Run the agent under Node 22.13 or newer, never Bun. |
|
|
33
|
+
| The turn immediately reports a missing API key | Set `CURSOR_API_KEY`, `CURSOR_API_KEY_FILE`, or `CURSOR_SERVICE_ACCOUNT_KEY`, or run `agent-sdk login`. |
|
|
34
|
+
| Login succeeds but the model host rejects the key | Point login and model traffic at the same API host; check `CURSOR_API_BASE_URL` and `CURSOR_BACKEND_URL`. |
|
|
35
|
+
| Cloud turns cannot reach local tools or skills | Give the cloud runtime a reachable `--public-url` and protected tool bridge, or move the required capability into the cloud checkout. See [agent runtime](./reference/agent-config.md#choose-a-runtime). |
|
|
39
36
|
|
|
40
|
-
##
|
|
37
|
+
## A turn behaves unexpectedly
|
|
41
38
|
|
|
42
39
|
| What you see | What to do |
|
|
43
40
|
| --- | --- |
|
|
44
|
-
| `
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
| A channel route fails to compile with a schema type error | `GET` routes need a Zod `querySchema`. `POST` / `PUT` / `PATCH` need a Zod `bodySchema`. Use `z.object({})` or `z.unknown()` for open shapes. |
|
|
41
|
+
| Replies quote an ancestor `AGENTS.md` or unrelated repository rules | Inspect `local.cwd` in `/v1/info`. Set `defineAgent({ local: { cwd } })` or the session workspace explicitly instead of inheriting the parent checkout. |
|
|
42
|
+
| The model lists IDE meta-tools but never calls named MCP tools | Set `advertiseTools: true` on the local model-visible connection and confirm it under `connections` in `/v1/info`. |
|
|
43
|
+
| Server tools, skills, or seed files are absent | Check the selected local/cloud runtime and discovered project in `/v1/info`; follow the capability warning from `validate`. |
|
|
44
|
+
| `validate` and `run` pass but CI type-checking fails | Run the project type check. Tool results must be JSON-shaped; prefer object literals or `type` aliases over `interface` return types. |
|
|
49
45
|
|
|
50
|
-
##
|
|
46
|
+
## HTTP returns 401, 403, or 409
|
|
51
47
|
|
|
52
48
|
| What you see | What to do |
|
|
53
49
|
| --- | --- |
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
56
|
-
|
|
|
57
|
-
|
|
|
50
|
+
| `401` outside localhost | Send the configured bearer token, alias token, or channel credential. Default custom routes admit direct loopback only. |
|
|
51
|
+
| `403` on a stream or follow-up | Use the same authenticated principal that created the session. |
|
|
52
|
+
| A localhost route fails through a tunnel or LAN | Protect the shared host with `--bearer-token` or authored channel auth. Use `--allow-anonymous` only behind a proxy that authenticates every caller. |
|
|
53
|
+
| `409` on a follow-up | Refresh the rotating `continuationToken` and confirm the target is a chat session; task sessions do not accept follow-ups. |
|
|
54
|
+
| `409 session_busy` from `call --session` | Wait for the turn, omit `--session`, or mark a read-only tool with `effect: "read"` so it can run concurrently. |
|
|
55
|
+
| A custom route fails schema type-checking | Add the required Zod `querySchema` for `GET`, or `bodySchema` for `POST`, `PUT`, and `PATCH`. See [Channels](./reference/channels.md). |
|
|
58
56
|
|
|
59
|
-
##
|
|
57
|
+
## A hosted deployment fails or looks stale
|
|
60
58
|
|
|
61
59
|
| What you see | What to do |
|
|
62
60
|
| --- | --- |
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
|
|
|
61
|
+
| Local changes do not appear after deploy | `deploy` reads a pushed Git ref, not the working tree. Commit and push the intended ref, then deploy it again. |
|
|
62
|
+
| The deployment never becomes running | Run `agent-sdk deployment <slug>` and `agent-sdk logs --prod --slug <slug>`, then act on the reported build or startup error. |
|
|
63
|
+
| A secret or egress change has no effect | Confirm the name with `secrets list`, verify the `hosting` block exists on the pushed ref, and follow the CLI or dashboard prompt to redeploy. |
|
|
64
|
+
| Cursor events stopped after redeploy | Redeploy replaces CLI-supplied event repositories. Pass every `--cursor-events-repo` value again. |
|
|
65
|
+
| External HTTP rejects the alias token | Update the caller with the current token. If the token is lost or exposed, run `agent-sdk rotate-token <slug>` and replace it everywhere. |
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
See [Deployment](./deployment.md) for source, credential, and
|
|
68
|
+
redeployment boundaries.
|
|
69
|
+
|
|
70
|
+
## GitHub deliveries fail
|
|
71
|
+
|
|
72
|
+
| What you see | What to do |
|
|
73
|
+
| --- | --- |
|
|
74
|
+
| `github forward` returns 401 on every delivery after creating the hook | Clear `GITHUB_TOKEN` and `GH_TOKEN` for that command so the forwarder uses the `gh` CLI login: `GITHUB_TOKEN= GH_TOKEN= agent-sdk github forward ...`. |
|
|
75
|
+
| `Hook already exists` | Run one forwarder for the repository and stop the stale process. |
|
|
76
|
+
| Direct webhook deliveries are rejected outside `--dev` | Configure the same `GITHUB_WEBHOOK_SECRET` on the signer and server. Cursor event pull needs no public webhook or webhook secret. |
|
|
77
|
+
| You cannot create a forwarder | Use `agent-sdk github replay <pr-url>`; it needs pull access instead of repository administration. |
|
|
78
|
+
|
|
79
|
+
The [GitHub guide](./guides/github.md) covers event pull, replay, and
|
|
80
|
+
direct webhooks.
|
|
81
|
+
|
|
82
|
+
## Slack does not respond
|
|
69
83
|
|
|
70
84
|
| What you see | What to do |
|
|
71
85
|
| --- | --- |
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
86
|
+
| Logs say `channel idle ... missing credentials` | Run `agent-sdk slack create --dir <agent>`, then check the generated prefix with `agent-sdk slack doctor`. Use `slack init --manual` only for an app you own. |
|
|
87
|
+
| `slack create` is waiting for workspace approval | Open the approval link printed by the CLI, keep the command running, and retry after an admin approves. |
|
|
88
|
+
| The bot ignores ordinary channel posts | Configure `engagement.channelPosts`, create the app with `--channel-posts`, and invite it to every allowed channel. |
|
|
89
|
+
| Approval buttons do nothing | Set `toolApprovals: true`, then recreate the app if its interactivity is not enabled. |
|
|
75
90
|
|
|
76
|
-
See [
|
|
77
|
-
|
|
91
|
+
See the [Slack guide](./guides/slack.md) for app setup and engagement
|
|
92
|
+
choices.
|
|
78
93
|
|
|
79
|
-
##
|
|
94
|
+
## MCP authorization fails
|
|
80
95
|
|
|
81
96
|
| What you see | What to do |
|
|
82
97
|
| --- | --- |
|
|
83
|
-
| `
|
|
84
|
-
|
|
|
85
|
-
|
|
|
98
|
+
| `must be defineConnection({ url, oauth: true })` | Add `oauth: true` to the named URL connection or correct the connection filename passed to `mcp oauth`. |
|
|
99
|
+
| Local auth works but hosted calls return unauthorized | Complete Connect for the running process, or run `mcp oauth <name> --store` and redeploy for future replacements. |
|
|
100
|
+
| The model invents `mcp_auth` instead of calling the server | Set `advertiseTools: true` for named local tools, or expose a host-side wrapper through `ctx.host.mcp`. |
|
|
86
101
|
|
|
87
|
-
|
|
102
|
+
See [Host MCP OAuth](./guides/mcp-oauth.md) for the credential lifecycle.
|
|
103
|
+
|
|
104
|
+
## Schedules, reminders, or approvals stall
|
|
105
|
+
|
|
106
|
+
| What you see | What to do |
|
|
107
|
+
| --- | --- |
|
|
108
|
+
| A schedule or reminder never fires under `--dev` | Trigger it through the matching `/v1/dev/schedules/<id>` or `/v1/dev/reminders/<id>` route; development mode does not auto-fire. |
|
|
109
|
+
| A pending approval disappears after restart | Parked approvals do not survive restart. Run the turn again. |
|
|
110
|
+
| A reminder is disarmed with `handler_lost_on_restart` | Recreate handler-form reminders after restart, or use a prompt-form reminder. |
|
|
111
|
+
| The same schedule fires on several self-hosted processes | Enable schedules on one serving process per project and pass `--no-schedules` to the others. |
|
|
112
|
+
|
|
113
|
+
## A credential was exposed
|
|
88
114
|
|
|
89
115
|
| What you see | What to do |
|
|
90
116
|
| --- | --- |
|
|
91
|
-
| A
|
|
92
|
-
|
|
|
93
|
-
|
|
|
117
|
+
| A secret value appears in a command, transcript, or shell history | Rotate it at the provider, set it again through hidden input or stdin, and test the feature. |
|
|
118
|
+
| An alias token appears outside its secure destination | Run `agent-sdk rotate-token <slug>`, store the new value outside transcripts, and update every caller. |
|
|
119
|
+
| Someone printed a secret to verify it | Rotate it. Confirm only the name with `agent-sdk secrets list <slug>`, then redeploy and exercise the feature. |
|
|
120
|
+
|
|
121
|
+
## Read the session trace
|
|
94
122
|
|
|
95
|
-
|
|
123
|
+
Start with `actions.requested` and `action.result`. Count calls by tool
|
|
124
|
+
name, pair every request with its result, and separate host preparation
|
|
125
|
+
from tools chosen by the model.
|
|
96
126
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
chose.
|
|
127
|
+
`turn.failed` with `turn interrupted` usually means a follow-up or stop
|
|
128
|
+
ended the turn deliberately. Other failures should have an error event
|
|
129
|
+
near the tool or model boundary that produced them.
|
|
101
130
|
|
|
102
|
-
|
|
103
|
-
the turn on purpose.
|
|
131
|
+
Use the trace path printed by `agent-sdk run`:
|
|
104
132
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
133
|
+
```bash
|
|
134
|
+
agent-sdk trajectory --events <trace-path>
|
|
135
|
+
```
|
|
108
136
|
|
|
109
|
-
|
|
110
|
-
|
|
137
|
+
The playground's **Open trace** control renders the same trajectory.
|
|
138
|
+
When the agent runs but makes poor decisions, move from diagnosis to a
|
|
139
|
+
measured [hillclimb](./hillclimbing.md).
|
|
111
140
|
|
|
112
|
-
##
|
|
141
|
+
## Related
|
|
113
142
|
|
|
114
|
-
- [
|
|
115
|
-
- [
|
|
143
|
+
- [Deployment](./deployment.md): hosted and self-hosted boundaries
|
|
144
|
+
- [Sessions](./reference/sessions.md): session ownership and event
|
|
145
|
+
vocabulary
|
|
146
|
+
- [CLI reference](./reference/cli.md): command flags and exit behavior
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cursor/july",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.113",
|
|
4
4
|
"description": "(early alpha) Filesystem-first framework for defining Cursor agents as markdown and TypeScript and serving them over channels with the Cursor SDK.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"repository": {
|
|
@@ -190,6 +190,13 @@
|
|
|
190
190
|
"import": "./dist/extensions/improve/extension.js",
|
|
191
191
|
"default": "./dist/extensions/improve/extension.js"
|
|
192
192
|
},
|
|
193
|
+
"./extensions/jev": {
|
|
194
|
+
"anysphere-source": "./src/extensions/jev/extension.ts",
|
|
195
|
+
"bun": "./dist/extensions/jev/extension.js",
|
|
196
|
+
"types": "./dist/extensions/jev/extension.d.ts",
|
|
197
|
+
"import": "./dist/extensions/jev/extension.js",
|
|
198
|
+
"default": "./dist/extensions/jev/extension.js"
|
|
199
|
+
},
|
|
193
200
|
"./extensions/slack-communication": {
|
|
194
201
|
"anysphere-source": "./src/extensions/slack-communication/extension.ts",
|
|
195
202
|
"bun": "./dist/extensions/slack-communication/extension.js",
|
package/skills/github/SKILL.md
CHANGED
|
@@ -23,10 +23,18 @@ export default githubChannel({
|
|
|
23
23
|
botName: "my-agent",
|
|
24
24
|
cursorAccount: { repos: ["owner/repo"] }, // permissions?: "read" | "pr-write" | "contents-write"
|
|
25
25
|
|
|
26
|
-
onPullRequest: (ctx, pr) =>
|
|
27
|
-
pr.action
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
onPullRequest: (ctx, pr) => {
|
|
27
|
+
if (pr.action !== "opened") {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return { auth: defaultGitHubAuth(ctx) };
|
|
31
|
+
},
|
|
32
|
+
onCheckSuite: (ctx, suite) => {
|
|
33
|
+
if (suite.conclusion !== "failure") {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return { task: () => triage(ctx) };
|
|
37
|
+
},
|
|
30
38
|
});
|
|
31
39
|
```
|
|
32
40
|
|
|
@@ -34,11 +42,11 @@ Hooks: `onPullRequest`, `onComment`, `onIssue`, `onCheckSuite`,
|
|
|
34
42
|
`onCheckRun`, `onWorkflowRun`, `onStatus`, plus `onEvent` and
|
|
35
43
|
`onStart`/`onStop`.
|
|
36
44
|
|
|
37
|
-
| Return
|
|
38
|
-
|
|
|
45
|
+
| Return | Meaning |
|
|
46
|
+
| ---------- | -------------------------------------------------------------------------------- |
|
|
39
47
|
| `{ auth }` | Model turn. Session shows in the playground. `workspaceFiles` can be a function. |
|
|
40
|
-
| `{ task }` | Host work. No chat session. Use when the work can outlive a webhook timeout.
|
|
41
|
-
| `null`
|
|
48
|
+
| `{ task }` | Host work. No chat session. Use when the work can outlive a webhook timeout. |
|
|
49
|
+
| `null` | Skip |
|
|
42
50
|
|
|
43
51
|
To keep repo scope in deploy config, use `cursorAccount: true`
|
|
44
52
|
and pass `--repo owner/name` at serve / `--cursor-events-repo`
|
|
@@ -46,11 +54,11 @@ at deploy. Repos must share one GitHub owner.
|
|
|
46
54
|
|
|
47
55
|
## Event sources
|
|
48
56
|
|
|
49
|
-
| Source
|
|
50
|
-
|
|
|
51
|
-
| `cursorAccount` + `serve --cursor-events`
|
|
52
|
-
| HTTP `POST /<slug>/v1/channels/github` with a webhook secret | `allowAll()` + `X-Hub-Signature-256`
|
|
53
|
-
| HTTP, no secret
|
|
57
|
+
| Source | When |
|
|
58
|
+
| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
59
|
+
| `cursorAccount` + `serve --cursor-events` | Preferred. Signed-in host (`agent-sdk login`, `CURSOR_API_KEY`, or `CURSOR_SERVICE_ACCOUNT_KEY`). Repos from the channel and from repeatable `--repo owner/name`. Cap 20, one GitHub owner |
|
|
60
|
+
| HTTP `POST /<slug>/v1/channels/github` with a webhook secret | `allowAll()` + `X-Hub-Signature-256` |
|
|
61
|
+
| HTTP, no secret | Loopback only. `serve --dev` also admits unsigned loopback (fixtures / forward) |
|
|
54
62
|
|
|
55
63
|
`permissions`: `"read"` inspect; `"pr-write"` (default) comments /
|
|
56
64
|
PR writes; `"contents-write"` push or merge-box checks.
|
package/src/bin/agent-serve.ts
CHANGED
|
@@ -42,6 +42,7 @@ import {
|
|
|
42
42
|
cmdRun,
|
|
43
43
|
cmdSession,
|
|
44
44
|
cmdSessions,
|
|
45
|
+
cmdSkill,
|
|
45
46
|
cmdTrajectory,
|
|
46
47
|
} from "../internal/cli-ax.js";
|
|
47
48
|
import {
|
|
@@ -115,6 +116,8 @@ Usage:
|
|
|
115
116
|
${CLI} trajectory --events <file.ndjson> [--text]
|
|
116
117
|
${CLI} call <tool> [--input <json>] [--dir <path> | --url <baseUrl> | --prod]
|
|
117
118
|
[--session <id>] [--slug <slug>] [--team <id>]
|
|
119
|
+
${CLI} skill <name> [--dir <path> | --url <baseUrl> | --prod]
|
|
120
|
+
[--slug <slug>] [--team <id>] [--text]
|
|
118
121
|
${CLI} init [dir] [--template <name>] [--var id=value]... [--json]
|
|
119
122
|
${CLI} convert-automation <url> [--dir <path>] [--json]
|
|
120
123
|
${CLI} install-skills [--print] [--json]
|
|
@@ -211,6 +214,8 @@ Commands:
|
|
|
211
214
|
call Call an authored server tool deterministically (no model turn)
|
|
212
215
|
via POST /v1/tools/:toolName. --session runs it inside an
|
|
213
216
|
existing session and records it on that session's event stream.
|
|
217
|
+
skill Read an authored skill deterministically (no model turn)
|
|
218
|
+
via GET /v1/skills/:skillName. --text prints SKILL.md.
|
|
214
219
|
init Scaffold a project (skipping existing files), npm install,
|
|
215
220
|
run login when unsigned, then print next steps. Templates
|
|
216
221
|
with init.json interview on a TTY; --var answers without a
|
|
@@ -285,9 +290,8 @@ Commands:
|
|
|
285
290
|
cancel-runs Request cancellation for active Agent SDK v2 session runs
|
|
286
291
|
and reminder clocks, and mark factory creating/active
|
|
287
292
|
sessions failed. For a multi-tenant application this
|
|
288
|
-
cancels every install, not just the caller's
|
|
289
|
-
|
|
290
|
-
cancel is stop --cancel-runs.
|
|
293
|
+
cancels every install, not just the caller's.
|
|
294
|
+
Install-local cancel is stop --cancel-runs.
|
|
291
295
|
event-repos Set the repositories a multi-tenant install receives events
|
|
292
296
|
for. A deploy cannot carry these; pass every repository you
|
|
293
297
|
want, since the list is replaced rather than merged.
|
|
@@ -989,6 +993,23 @@ async function main(argv: string[]): Promise<number> {
|
|
|
989
993
|
);
|
|
990
994
|
}
|
|
991
995
|
|
|
996
|
+
case "skill": {
|
|
997
|
+
return cmdSkill(
|
|
998
|
+
positionals[0],
|
|
999
|
+
axFromOptions({
|
|
1000
|
+
dir,
|
|
1001
|
+
text: values.text,
|
|
1002
|
+
url: values.url,
|
|
1003
|
+
prod: values.prod,
|
|
1004
|
+
team: values.team,
|
|
1005
|
+
apiKey: values["api-key"],
|
|
1006
|
+
slug: values.slug,
|
|
1007
|
+
bearerToken: values["bearer-token"],
|
|
1008
|
+
stateRoot: values["state-root"],
|
|
1009
|
+
})
|
|
1010
|
+
);
|
|
1011
|
+
}
|
|
1012
|
+
|
|
992
1013
|
case "trajectory": {
|
|
993
1014
|
if (values.events === undefined) {
|
|
994
1015
|
process.stderr.write("trajectory requires --events <file.ndjson>\n");
|
package/src/channels/checks.ts
CHANGED
|
@@ -90,6 +90,14 @@ export interface CiCheckCreateInput {
|
|
|
90
90
|
name: string;
|
|
91
91
|
/** Commit the check attaches to (usually the PR head SHA). */
|
|
92
92
|
sha: string;
|
|
93
|
+
/**
|
|
94
|
+
* Check suite the check files under, on forges that have one. Origin
|
|
95
|
+
* renders every check as `suite / check` and groups the checks tab by
|
|
96
|
+
* suite, so name it after the posting app (GitHub groups an app's checks
|
|
97
|
+
* under the app); without it the suite mirrors the check name. GitHub,
|
|
98
|
+
* GitLab and Bitbucket have no app-named suite and ignore it.
|
|
99
|
+
*/
|
|
100
|
+
suite?: { name?: string };
|
|
93
101
|
/** Initial status. Defaults to `"in_progress"`. */
|
|
94
102
|
status?: "queued" | "in_progress";
|
|
95
103
|
/** "Details" link on the check, e.g. the agent session run URL. */
|
|
@@ -615,25 +615,35 @@ export function getGitHubChannelOptions(
|
|
|
615
615
|
* credentials: { webhookSecret: () => process.env.GITHUB_WEBHOOK_SECRET },
|
|
616
616
|
* // Replaces the @mention gate. Prefer typed Octokit via getOctokit().
|
|
617
617
|
* onComment: (ctx, comment) => ({ auth: defaultGitHubAuth(ctx) }),
|
|
618
|
-
* onPullRequest: (ctx, pr) =>
|
|
619
|
-
* pr.action
|
|
620
|
-
*
|
|
621
|
-
*
|
|
622
|
-
*
|
|
623
|
-
*
|
|
624
|
-
*
|
|
625
|
-
*
|
|
626
|
-
*
|
|
627
|
-
*
|
|
628
|
-
*
|
|
629
|
-
*
|
|
630
|
-
*
|
|
631
|
-
*
|
|
632
|
-
*
|
|
633
|
-
*
|
|
634
|
-
*
|
|
635
|
-
*
|
|
636
|
-
*
|
|
618
|
+
* onPullRequest: (ctx, pr) => {
|
|
619
|
+
* if (pr.action !== "opened") {
|
|
620
|
+
* return null;
|
|
621
|
+
* }
|
|
622
|
+
* return { auth: defaultGitHubAuth(ctx) };
|
|
623
|
+
* },
|
|
624
|
+
* onStatus: (ctx, status) => {
|
|
625
|
+
* if (status.state !== "failure") {
|
|
626
|
+
* return null;
|
|
627
|
+
* }
|
|
628
|
+
* return {
|
|
629
|
+
* task: async () => {
|
|
630
|
+
* const octokit = await ctx.github.getOctokit();
|
|
631
|
+
* await octokit.rest.repos.createCommitStatus({
|
|
632
|
+
* owner: ctx.repository.owner,
|
|
633
|
+
* repo: ctx.repository.name,
|
|
634
|
+
* sha: status.sha,
|
|
635
|
+
* state: "pending",
|
|
636
|
+
* context: "agent/triage",
|
|
637
|
+
* });
|
|
638
|
+
* },
|
|
639
|
+
* };
|
|
640
|
+
* },
|
|
641
|
+
* onEvent: (ctx, event) => {
|
|
642
|
+
* if (event.eventName !== "label") {
|
|
643
|
+
* return null;
|
|
644
|
+
* }
|
|
645
|
+
* return { auth: defaultGitHubAuth(ctx) };
|
|
646
|
+
* },
|
|
637
647
|
* });
|
|
638
648
|
* ```
|
|
639
649
|
*/
|
|
@@ -88,8 +88,10 @@ export interface OriginCheckIdentityInput {
|
|
|
88
88
|
externalId?: string;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
// The identity input's `suite` also carries Origin's key and details URL, so
|
|
92
|
+
// the forge-agnostic `suite` label is replaced rather than merged.
|
|
91
93
|
export interface OriginCheckCreateInput
|
|
92
|
-
extends OriginCheckIdentityInput, CiCheckCreateInput {}
|
|
94
|
+
extends OriginCheckIdentityInput, Omit<CiCheckCreateInput, "suite"> {}
|
|
93
95
|
|
|
94
96
|
/**
|
|
95
97
|
* Origin rejects the whole upsert when `output.title` exceeds 255 characters
|
|
@@ -196,6 +196,7 @@ async function postNew(args: {
|
|
|
196
196
|
outcome: "progress_update",
|
|
197
197
|
deliverySurface: "slack",
|
|
198
198
|
});
|
|
199
|
+
await setChip(args.channel, "", args.botToken, args.getLog);
|
|
199
200
|
return;
|
|
200
201
|
}
|
|
201
202
|
try {
|
|
@@ -219,6 +220,7 @@ async function postNew(args: {
|
|
|
219
220
|
outcome: "final_post",
|
|
220
221
|
deliverySurface: "slack",
|
|
221
222
|
});
|
|
223
|
+
await setChip(args.channel, "", args.botToken, args.getLog);
|
|
222
224
|
} catch (error) {
|
|
223
225
|
log.warn(
|
|
224
226
|
`agentic reply failed: ${
|