@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.
Files changed (441) hide show
  1. package/README.md +4 -0
  2. package/dist/bin/agent-serve.js +20 -4
  3. package/dist/channels/checks.d.ts +10 -0
  4. package/dist/channels/checks.d.ts.map +1 -1
  5. package/dist/channels/github/github-channel.d.ts +29 -19
  6. package/dist/channels/github/github-channel.d.ts.map +1 -1
  7. package/dist/channels/github/github-channel.js +29 -19
  8. package/dist/channels/origin/checks.d.ts +1 -1
  9. package/dist/channels/origin/checks.d.ts.map +1 -1
  10. package/dist/channels/slack/agentic-delivery.d.ts.map +1 -1
  11. package/dist/channels/slack/agentic-delivery.js +2 -0
  12. package/dist/channels/slack/dispatch.d.ts +11 -1
  13. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  14. package/dist/channels/slack/dispatch.js +146 -39
  15. package/dist/channels/slack/placeholder.d.ts +26 -0
  16. package/dist/channels/slack/placeholder.d.ts.map +1 -1
  17. package/dist/channels/slack/placeholder.js +28 -0
  18. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  19. package/dist/channels/slack/slack-channel.js +9 -16
  20. package/dist/docs/404.html +2 -2
  21. package/dist/docs/assets/{app.Drol6mi6.js → app.CAeK13eM.js} +4 -4
  22. package/dist/docs/assets/building-with-agents.md.BBCx0AUo.js +9 -0
  23. package/dist/docs/assets/building-with-agents.md.BBCx0AUo.lean.js +1 -0
  24. package/dist/docs/assets/chunks/@localSearchIndexroot.Ck9E52Ls.js +1 -0
  25. package/dist/docs/assets/chunks/{VPLocalSearchBox.CdqoBZJX.js → VPLocalSearchBox.C9LbPHod.js} +1 -1
  26. package/dist/docs/assets/chunks/{arc.BVX3ycTn.js → arc.CmMq2zmS.js} +1 -1
  27. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CcChnMxX.js → architectureDiagram-Q4EWVU46.CCXB8Uj5.js} +1 -1
  28. package/dist/docs/assets/chunks/{baseUniq.xwtXO-yt.js → baseUniq.CyQo6eLe.js} +1 -1
  29. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.CijZ_taK.js → blockDiagram-DXYQGD6D.JYq6w91N.js} +1 -1
  30. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.0FBvwBvK.js → c4Diagram-AHTNJAMY.BRV8GPJJ.js} +1 -1
  31. package/dist/docs/assets/chunks/channel.BHiYmnZ4.js +1 -0
  32. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CELMmMDA.js → chunk-4BX2VUAB.Bv4ooYQR.js} +1 -1
  33. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.C4bhFtSm.js → chunk-4TB4RGXK.t4JtKPcj.js} +1 -1
  34. package/dist/docs/assets/chunks/{chunk-55IACEB6.ZnQ9gRRQ.js → chunk-55IACEB6.34lCHj9Y.js} +1 -1
  35. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.DPlmglG-.js → chunk-EDXVE4YY.BSwrPNrt.js} +1 -1
  36. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.BrUk8pff.js → chunk-FMBD7UC4.Beeun-R-.js} +1 -1
  37. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CcmWIncu.js → chunk-OYMX7WX6.BUUFUcJc.js} +1 -1
  38. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.D65-cs8I.js → chunk-QZHKN3VN.B2XjHzN_.js} +1 -1
  39. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.qoXZpG9F.js → chunk-YZCP3GAM.CLYG8znk.js} +1 -1
  40. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Degh8l90.js +1 -0
  41. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Degh8l90.js +1 -0
  42. package/dist/docs/assets/chunks/clone.BIywbczV.js +1 -0
  43. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.8rYtqudO.js → cose-bilkent-S5V4N54A.DVEa6fZp.js} +1 -1
  44. package/dist/docs/assets/chunks/{dagre-KV5264BT.DrRP1fOh.js → dagre-KV5264BT.C9PZQK-S.js} +1 -1
  45. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DHj_xA2_.js → diagram-5BDNPKRD.DoN0uv3Y.js} +1 -1
  46. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.Bz_6nAKj.js → diagram-G4DWMVQ6.Czv3duqx.js} +1 -1
  47. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BWA0xSW9.js → diagram-MMDJMWI5.BinJ5kWb.js} +1 -1
  48. package/dist/docs/assets/chunks/{diagram-TYMM5635.CpTJLNJI.js → diagram-TYMM5635.DW326M4K.js} +1 -1
  49. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.-7AWWSrP.js → erDiagram-SMLLAGMA.U2pR_OA7.js} +1 -1
  50. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BTnQ742_.js → flowDiagram-DWJPFMVM.ByWJXeYK.js} +1 -1
  51. package/dist/docs/assets/chunks/framework.BNw1pucY.js +19 -0
  52. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.B5_HiiQ5.js → ganttDiagram-T4ZO3ILL.OquF0Rtg.js} +1 -1
  53. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CZcNTFZd.js → gitGraphDiagram-UUTBAWPF.Bpn01P7X.js} +1 -1
  54. package/dist/docs/assets/chunks/{graph.V2GLaab4.js → graph.CNRB6ETL.js} +1 -1
  55. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.7pZOkCCU.js → infoDiagram-42DDH7IO.CqhknMWi.js} +1 -1
  56. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DSMo3Qa3.js → ishikawaDiagram-UXIWVN3A.C6xpR2af.js} +1 -1
  57. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BNEgWN1S.js → journeyDiagram-VCZTEJTY.Cg5f7oB3.js} +1 -1
  58. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.B-4d4tC7.js → kanban-definition-6JOO6SKY.Cx9YTwlU.js} +1 -1
  59. package/dist/docs/assets/chunks/{layout.Dvbn9nSb.js → layout.ljS-wFtK.js} +1 -1
  60. package/dist/docs/assets/chunks/{linear.D2GM4p4b.js → linear.jSxNrsFC.js} +1 -1
  61. package/dist/docs/assets/chunks/{min.DVBtLK-B.js → min.Cum8AlQw.js} +1 -1
  62. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CnJRI55x.js → mindmap-definition-QFDTVHPH.BLiysLpe.js} +1 -1
  63. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.CtoaTFlA.js → pieDiagram-DEJITSTG.BoIDyuKF.js} +1 -1
  64. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DtT24_vN.js → quadrantDiagram-34T5L4WZ.DLkpDytR.js} +1 -1
  65. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CjSO4o8f.js → requirementDiagram-MS252O5E.DqTVqSu2.js} +1 -1
  66. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.-wWiIVWa.js → sankeyDiagram-XADWPNL6.CG_6FF7j.js} +1 -1
  67. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.DSk8s4gX.js → sequenceDiagram-FGHM5R23.BIp9602K.js} +1 -1
  68. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.BFKAsdkN.js → stateDiagram-FHFEXIEX.COSXsD9I.js} +1 -1
  69. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.qrxrbFsX.js +1 -0
  70. package/dist/docs/assets/chunks/{theme.C0MctGaz.js → theme.CXJ7PNwy.js} +2 -2
  71. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.TUNJbAFe.js → timeline-definition-GMOUNBTQ.CXdVqkLq.js} +1 -1
  72. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.C-RGNnk4.js → vennDiagram-DHZGUBPP.CZxGuc4r.js} +1 -1
  73. package/dist/docs/assets/chunks/{wardley-RL74JXVD.g5efOWmT.js → wardley-RL74JXVD.3oVgfqQk.js} +1 -1
  74. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.DH4zt73Y.js → wardleyDiagram-NUSXRM2D.6_irCgGJ.js} +1 -1
  75. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.B-3k6bF6.js → xychartDiagram-5P7HB3ND.TRPe92m3.js} +1 -1
  76. package/dist/docs/assets/deployment.md.D2jQZuFx.js +32 -0
  77. package/dist/docs/assets/deployment.md.D2jQZuFx.lean.js +1 -0
  78. package/dist/docs/assets/evals.md.D3Y3Aixt.js +72 -0
  79. package/dist/docs/assets/evals.md.D3Y3Aixt.lean.js +1 -0
  80. package/dist/docs/assets/guides_agent-to-agent.md.CD4T5FIl.js +41 -0
  81. package/dist/docs/assets/guides_agent-to-agent.md.CD4T5FIl.lean.js +1 -0
  82. package/dist/docs/assets/guides_bitbucket.md.mpevW-VP.js +145 -0
  83. package/dist/docs/assets/guides_bitbucket.md.mpevW-VP.lean.js +1 -0
  84. package/dist/docs/assets/guides_cloud-agents.md.Cp1O3u-X.js +15 -0
  85. package/dist/docs/assets/guides_cloud-agents.md.Cp1O3u-X.lean.js +1 -0
  86. package/dist/docs/assets/guides_convert-automation.md.CqEyfP6Y.js +43 -0
  87. package/dist/docs/assets/guides_convert-automation.md.CqEyfP6Y.lean.js +1 -0
  88. package/dist/docs/assets/guides_github.md.BwpBp3ed.js +156 -0
  89. package/dist/docs/assets/guides_github.md.BwpBp3ed.lean.js +1 -0
  90. package/dist/docs/assets/guides_gitlab.md.DaEC3nMk.js +153 -0
  91. package/dist/docs/assets/guides_gitlab.md.DaEC3nMk.lean.js +1 -0
  92. package/dist/docs/assets/guides_grokbot-agents.md.CMhZNdEU.js +16 -0
  93. package/dist/docs/assets/guides_grokbot-agents.md.CMhZNdEU.lean.js +1 -0
  94. package/dist/docs/assets/guides_improve.md.Bnp4F99w.js +22 -0
  95. package/dist/docs/assets/guides_improve.md.Bnp4F99w.lean.js +1 -0
  96. package/dist/docs/assets/guides_jev.md.F5fAkkfN.js +189 -0
  97. package/dist/docs/assets/guides_jev.md.F5fAkkfN.lean.js +1 -0
  98. package/dist/docs/assets/guides_mcp-oauth.md.bSFakfCY.js +50 -0
  99. package/dist/docs/assets/guides_mcp-oauth.md.bSFakfCY.lean.js +1 -0
  100. package/dist/docs/assets/guides_opentelemetry.md.BKDxQmmd.js +35 -0
  101. package/dist/docs/assets/guides_opentelemetry.md.BKDxQmmd.lean.js +1 -0
  102. package/dist/docs/assets/guides_slack.md.Bo96y42E.js +70 -0
  103. package/dist/docs/assets/guides_slack.md.Bo96y42E.lean.js +1 -0
  104. package/dist/docs/assets/guides_webhooks.md.1A72_VEE.js +92 -0
  105. package/dist/docs/assets/guides_webhooks.md.1A72_VEE.lean.js +1 -0
  106. package/dist/docs/assets/hillclimbing.md.D4E1o5Sa.js +7 -0
  107. package/dist/docs/assets/hillclimbing.md.D4E1o5Sa.lean.js +1 -0
  108. package/dist/docs/assets/{index.md.BFVyY2KT.js → index.md.C-t81M5J.js} +2 -2
  109. package/dist/docs/assets/{index.md.BFVyY2KT.lean.js → index.md.C-t81M5J.lean.js} +1 -1
  110. package/dist/docs/assets/{quickstart.md.D3MjSZN-.js → quickstart.md.DAvVhuuU.js} +1 -1
  111. package/dist/docs/assets/{quickstart.md.D3MjSZN-.lean.js → quickstart.md.DAvVhuuU.lean.js} +1 -1
  112. package/dist/docs/assets/{reference_agent-config.md.CfVA-LZJ.js → reference_agent-config.md.DGPyw7ms.js} +1 -1
  113. package/dist/docs/assets/{reference_agent-config.md.CfVA-LZJ.lean.js → reference_agent-config.md.DGPyw7ms.lean.js} +1 -1
  114. package/dist/docs/assets/{reference_artifacts.md.Vf7qyIZ-.js → reference_artifacts.md.Bu_4HmsD.js} +1 -1
  115. package/dist/docs/assets/{reference_artifacts.md.Vf7qyIZ-.lean.js → reference_artifacts.md.Bu_4HmsD.lean.js} +1 -1
  116. package/dist/docs/assets/{reference_channels.md.icqLKcTc.js → reference_channels.md.nFWbzAic.js} +1 -1
  117. package/dist/docs/assets/{reference_channels.md.icqLKcTc.lean.js → reference_channels.md.nFWbzAic.lean.js} +1 -1
  118. package/dist/docs/assets/{reference_cli.md.B2dBL6L8.js → reference_cli.md.DLWDz9ij.js} +3 -1
  119. package/dist/docs/assets/{reference_cli.md.B2dBL6L8.lean.js → reference_cli.md.DLWDz9ij.lean.js} +1 -1
  120. package/dist/docs/assets/{reference_connections.md.Cb3U_c8n.js → reference_connections.md.Je9dMsdd.js} +2 -2
  121. package/dist/docs/assets/{reference_connections.md.Cb3U_c8n.lean.js → reference_connections.md.Je9dMsdd.lean.js} +1 -1
  122. package/dist/docs/assets/reference_evals.md.DNJzM_yf.js +57 -0
  123. package/dist/docs/assets/reference_evals.md.DNJzM_yf.lean.js +1 -0
  124. package/dist/docs/assets/reference_extensions.md.Cv5aLCz_.js +58 -0
  125. package/dist/docs/assets/reference_extensions.md.Cv5aLCz_.lean.js +1 -0
  126. package/dist/docs/assets/{reference_hooks.md.CZuynAxj.js → reference_hooks.md.B7uzNENk.js} +2 -2
  127. package/dist/docs/assets/{reference_hooks.md.CZuynAxj.lean.js → reference_hooks.md.B7uzNENk.lean.js} +1 -1
  128. package/dist/docs/assets/{reference_http-api.md.DTKcYE6L.js → reference_http-api.md.CduHavZ2.js} +1 -1
  129. package/dist/docs/assets/{reference_http-api.md.DTKcYE6L.lean.js → reference_http-api.md.CduHavZ2.lean.js} +1 -1
  130. package/dist/docs/assets/{reference_instructions.md.D7gkckK-.js → reference_instructions.md.CU1My5My.js} +1 -1
  131. package/dist/docs/assets/{reference_instructions.md.D7gkckK-.lean.js → reference_instructions.md.CU1My5My.lean.js} +1 -1
  132. package/dist/docs/assets/{reference_playground.md.D2YExv5K.js → reference_playground.md.Ch2d0Iqi.js} +1 -1
  133. package/dist/docs/assets/{reference_playground.md.D2YExv5K.lean.js → reference_playground.md.Ch2d0Iqi.lean.js} +1 -1
  134. package/dist/docs/assets/{reference_project-layout.md.DPxbUJyt.js → reference_project-layout.md.BGhgpy9V.js} +1 -1
  135. package/dist/docs/assets/{reference_project-layout.md.DPxbUJyt.lean.js → reference_project-layout.md.BGhgpy9V.lean.js} +1 -1
  136. package/dist/docs/assets/{reference_prompt.md.BQ5uAv1F.js → reference_prompt.md.Ccp0R53H.js} +1 -1
  137. package/dist/docs/assets/{reference_prompt.md.BQ5uAv1F.lean.js → reference_prompt.md.Ccp0R53H.lean.js} +1 -1
  138. package/dist/docs/assets/{reference_schedules.md.BasfZWO-.js → reference_schedules.md.B2Nm6FaD.js} +1 -1
  139. package/dist/docs/assets/{reference_schedules.md.BasfZWO-.lean.js → reference_schedules.md.B2Nm6FaD.lean.js} +1 -1
  140. package/dist/docs/assets/{reference_sessions.md.YKvIsWAx.js → reference_sessions.md.1_6Vyv7x.js} +1 -1
  141. package/dist/docs/assets/{reference_sessions.md.YKvIsWAx.lean.js → reference_sessions.md.1_6Vyv7x.lean.js} +1 -1
  142. package/dist/docs/assets/{reference_skills.md.rNgpsGd0.js → reference_skills.md.DjQkRefx.js} +1 -1
  143. package/dist/docs/assets/{reference_skills.md.rNgpsGd0.lean.js → reference_skills.md.DjQkRefx.lean.js} +1 -1
  144. package/dist/docs/assets/{reference_subagents.md.e5qitjJt.js → reference_subagents.md.Dl16gcBj.js} +2 -2
  145. package/dist/docs/assets/{reference_subagents.md.e5qitjJt.lean.js → reference_subagents.md.Dl16gcBj.lean.js} +1 -1
  146. package/dist/docs/assets/{reference_tools.md.BdCO2aHZ.js → reference_tools.md.B1dH1lpa.js} +3 -3
  147. package/dist/docs/assets/{reference_tools.md.BdCO2aHZ.lean.js → reference_tools.md.B1dH1lpa.lean.js} +1 -1
  148. package/dist/docs/assets/{templates_agentic-owners.md.Da_AGDlH.js → templates_agentic-owners.md.9M575F5C.js} +1 -1
  149. package/dist/docs/assets/{templates_agentic-owners.md.Da_AGDlH.lean.js → templates_agentic-owners.md.9M575F5C.lean.js} +1 -1
  150. package/dist/docs/assets/{templates_pr-autofixer.md.DqxocIGh.js → templates_pr-autofixer.md.ws0DDXDy.js} +1 -1
  151. package/dist/docs/assets/{templates_pr-autofixer.md.DqxocIGh.lean.js → templates_pr-autofixer.md.ws0DDXDy.lean.js} +1 -1
  152. package/dist/docs/assets/{templates_security-reviewer.md.Bhnvd8VE.js → templates_security-reviewer.md.KEFYXzfK.js} +1 -1
  153. package/dist/docs/assets/{templates_security-reviewer.md.Bhnvd8VE.lean.js → templates_security-reviewer.md.KEFYXzfK.lean.js} +1 -1
  154. package/dist/docs/assets/templates_thermo-quality-review.md.VNJ_mohX.js +3 -0
  155. package/dist/docs/assets/templates_thermo-quality-review.md.VNJ_mohX.lean.js +1 -0
  156. package/dist/docs/assets/templates_thermo-review.md.Hi3zWOkP.js +3 -0
  157. package/dist/docs/assets/templates_thermo-review.md.Hi3zWOkP.lean.js +1 -0
  158. package/dist/docs/assets/{templates_triage.md.BdBWO9Ic.js → templates_triage.md.CVGe_FG6.js} +1 -1
  159. package/dist/docs/assets/{templates_triage.md.BdBWO9Ic.lean.js → templates_triage.md.CVGe_FG6.lean.js} +1 -1
  160. package/dist/docs/assets/troubleshooting.md.mnfFG2Em.js +1 -0
  161. package/dist/docs/assets/troubleshooting.md.mnfFG2Em.lean.js +1 -0
  162. package/dist/docs/building-with-agents.html +44 -48
  163. package/dist/docs/building-with-agents.md +94 -82
  164. package/dist/docs/deployment.html +59 -78
  165. package/dist/docs/deployment.md +117 -363
  166. package/dist/docs/evals.html +85 -224
  167. package/dist/docs/evals.md +149 -673
  168. package/dist/docs/guides/agent-to-agent.html +74 -47
  169. package/dist/docs/guides/agent-to-agent.md +128 -46
  170. package/dist/docs/guides/bitbucket.html +179 -44
  171. package/dist/docs/guides/bitbucket.md +249 -48
  172. package/dist/docs/guides/cloud-agents.html +46 -40
  173. package/dist/docs/guides/cloud-agents.md +119 -66
  174. package/dist/docs/guides/convert-automation.html +80 -49
  175. package/dist/docs/guides/convert-automation.md +156 -147
  176. package/dist/docs/guides/github.html +184 -92
  177. package/dist/docs/guides/github.md +260 -245
  178. package/dist/docs/guides/gitlab.html +184 -45
  179. package/dist/docs/guides/gitlab.md +249 -50
  180. package/dist/docs/guides/grokbot-agents.html +48 -41
  181. package/dist/docs/guides/grokbot-agents.md +99 -53
  182. package/dist/docs/guides/improve.html +48 -40
  183. package/dist/docs/guides/improve.md +111 -58
  184. package/dist/docs/guides/jev.html +248 -0
  185. package/dist/docs/guides/jev.md +348 -0
  186. package/dist/docs/guides/mcp-oauth.html +74 -52
  187. package/dist/docs/guides/mcp-oauth.md +111 -121
  188. package/dist/docs/guides/opentelemetry.html +63 -54
  189. package/dist/docs/guides/opentelemetry.md +96 -165
  190. package/dist/docs/guides/slack.html +83 -59
  191. package/dist/docs/guides/slack.md +157 -227
  192. package/dist/docs/guides/webhooks.html +97 -230
  193. package/dist/docs/guides/webhooks.md +154 -385
  194. package/dist/docs/hashmap.json +1 -1
  195. package/dist/docs/hillclimbing.html +44 -38
  196. package/dist/docs/hillclimbing.md +101 -55
  197. package/dist/docs/index.html +38 -38
  198. package/dist/docs/index.md +2 -0
  199. package/dist/docs/llms-full.txt +3490 -3146
  200. package/dist/docs/llms.txt +22 -18
  201. package/dist/docs/quickstart.html +37 -37
  202. package/dist/docs/reference/agent-config.html +37 -37
  203. package/dist/docs/reference/artifacts.html +38 -38
  204. package/dist/docs/reference/channels.html +37 -37
  205. package/dist/docs/reference/cli.html +39 -37
  206. package/dist/docs/reference/cli.md +2 -0
  207. package/dist/docs/reference/connections.html +38 -38
  208. package/dist/docs/reference/connections.md +1 -1
  209. package/dist/docs/reference/evals.html +116 -0
  210. package/dist/docs/reference/evals.md +293 -0
  211. package/dist/docs/reference/extensions.html +80 -84
  212. package/dist/docs/reference/extensions.md +131 -202
  213. package/dist/docs/reference/hooks.html +39 -39
  214. package/dist/docs/reference/hooks.md +34 -34
  215. package/dist/docs/reference/http-api.html +37 -37
  216. package/dist/docs/reference/instructions.html +37 -37
  217. package/dist/docs/reference/playground.html +37 -37
  218. package/dist/docs/reference/project-layout.html +37 -37
  219. package/dist/docs/reference/prompt.html +37 -37
  220. package/dist/docs/reference/schedules.html +37 -37
  221. package/dist/docs/reference/sessions.html +37 -37
  222. package/dist/docs/reference/skills.html +37 -37
  223. package/dist/docs/reference/subagents.html +38 -38
  224. package/dist/docs/reference/subagents.md +1 -1
  225. package/dist/docs/reference/tools.html +38 -38
  226. package/dist/docs/reference/tools.md +4 -0
  227. package/dist/docs/templates/agentic-owners.html +38 -38
  228. package/dist/docs/templates/pr-autofixer.html +37 -37
  229. package/dist/docs/templates/security-reviewer.html +38 -38
  230. package/dist/docs/templates/thermo-quality-review.html +62 -0
  231. package/dist/docs/templates/thermo-quality-review.md +75 -0
  232. package/dist/docs/templates/thermo-review.html +62 -0
  233. package/dist/docs/templates/thermo-review.md +74 -0
  234. package/dist/docs/templates/triage.html +37 -37
  235. package/dist/docs/troubleshooting.html +38 -38
  236. package/dist/docs/troubleshooting.md +97 -66
  237. package/dist/extensions/cursor-cloud-agents/skills/handoff.md +3 -7
  238. package/dist/extensions/improve/extension.d.ts +3 -1
  239. package/dist/extensions/improve/extension.d.ts.map +1 -1
  240. package/dist/extensions/improve/extension.js +4 -2
  241. package/dist/extensions/improve/skills/yourself.js +1 -1
  242. package/dist/extensions/jev/extension.d.ts +43 -0
  243. package/dist/extensions/jev/extension.d.ts.map +1 -0
  244. package/dist/extensions/jev/extension.js +47 -0
  245. package/dist/extensions/jev/lib/evaluate.d.ts +101 -0
  246. package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -0
  247. package/dist/extensions/jev/lib/evaluate.js +167 -0
  248. package/dist/extensions/jev/skills/gated-write.md +25 -0
  249. package/dist/extensions/jev/skills/questions.md +33 -0
  250. package/dist/extensions/jev/tools/evaluate.d.ts +4 -0
  251. package/dist/extensions/jev/tools/evaluate.d.ts.map +1 -0
  252. package/dist/extensions/jev/tools/evaluate.js +88 -0
  253. package/dist/extensions.d.ts +1 -1
  254. package/dist/extensions.d.ts.map +1 -1
  255. package/dist/extensions.js +2 -0
  256. package/dist/filesystem.d.ts +46 -2
  257. package/dist/filesystem.d.ts.map +1 -1
  258. package/dist/filesystem.js +149 -102
  259. package/dist/index.d.ts +2 -2
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.js +1 -1
  262. package/dist/internal/advertise-tools.d.ts.map +1 -1
  263. package/dist/internal/advertise-tools.js +6 -0
  264. package/dist/internal/cli-ax.d.ts +6 -0
  265. package/dist/internal/cli-ax.d.ts.map +1 -1
  266. package/dist/internal/cli-ax.js +72 -14
  267. package/dist/internal/continuation-identity.d.ts.map +1 -1
  268. package/dist/internal/continuation-identity.js +1 -0
  269. package/dist/internal/cursor-agent-template.d.ts +1 -1
  270. package/dist/internal/cursor-agent-template.d.ts.map +1 -1
  271. package/dist/internal/cursor-agent-template.js +2 -0
  272. package/dist/internal/discovery/connections.d.ts.map +1 -1
  273. package/dist/internal/discovery/connections.js +18 -0
  274. package/dist/internal/discovery/extensions.d.ts.map +1 -1
  275. package/dist/internal/discovery/extensions.js +8 -4
  276. package/dist/internal/discovery/info.d.ts.map +1 -1
  277. package/dist/internal/discovery/info.js +1 -0
  278. package/dist/internal/filesystem/tools.d.ts.map +1 -1
  279. package/dist/internal/filesystem/tools.js +2 -2
  280. package/dist/internal/filesystem/walk.d.ts +7 -4
  281. package/dist/internal/filesystem/walk.d.ts.map +1 -1
  282. package/dist/internal/filesystem/walk.js +34 -11
  283. package/dist/internal/hosted-admission-adapter.d.ts +3 -0
  284. package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
  285. package/dist/internal/hosted-delivery-protocol.d.ts +20 -0
  286. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  287. package/dist/internal/hosted-delivery-protocol.js +51 -1
  288. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  289. package/dist/internal/hosted-delivery.js +23 -25
  290. package/dist/internal/hosted-execution-diag.d.ts +12 -4
  291. package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
  292. package/dist/internal/hosted-execution-diag.js +26 -4
  293. package/dist/internal/hosted-execution-flush.d.ts +1 -0
  294. package/dist/internal/hosted-execution-flush.d.ts.map +1 -1
  295. package/dist/internal/hosted-execution-flush.js +4 -2
  296. package/dist/internal/init-project.d.ts.map +1 -1
  297. package/dist/internal/init-project.js +4 -0
  298. package/dist/internal/server.d.ts.map +1 -1
  299. package/dist/internal/server.js +111 -48
  300. package/dist/internal/session-engine.d.ts +4 -1
  301. package/dist/internal/session-engine.d.ts.map +1 -1
  302. package/dist/internal/session-engine.js +39 -9
  303. package/dist/internal/skill-catalog.d.ts +28 -0
  304. package/dist/internal/skill-catalog.d.ts.map +1 -0
  305. package/dist/internal/skill-catalog.js +44 -0
  306. package/dist/playground/assets/index-DSMAewbx.css +1 -0
  307. package/dist/playground/assets/index-De_lpFxE.js +67 -0
  308. package/dist/playground/index.html +2 -2
  309. package/dist/types.d.ts +32 -3
  310. package/dist/types.d.ts.map +1 -1
  311. package/docs/README.md +2 -0
  312. package/docs/building-with-agents.md +96 -84
  313. package/docs/deployment.md +118 -364
  314. package/docs/evals.md +149 -673
  315. package/docs/guides/agent-to-agent.md +130 -48
  316. package/docs/guides/bitbucket.md +250 -49
  317. package/docs/guides/cloud-agents.md +119 -67
  318. package/docs/guides/convert-automation.md +157 -148
  319. package/docs/guides/github.md +261 -246
  320. package/docs/guides/gitlab.md +250 -51
  321. package/docs/guides/grokbot-agents.md +100 -55
  322. package/docs/guides/improve.md +112 -59
  323. package/docs/guides/jev.md +353 -0
  324. package/docs/guides/mcp-oauth.md +112 -122
  325. package/docs/guides/opentelemetry.md +97 -166
  326. package/docs/guides/slack.md +158 -228
  327. package/docs/guides/webhooks.md +155 -386
  328. package/docs/hillclimbing.md +102 -56
  329. package/docs/reference/cli.md +2 -0
  330. package/docs/reference/connections.md +1 -1
  331. package/docs/reference/evals.md +298 -0
  332. package/docs/reference/extensions.md +132 -203
  333. package/docs/reference/hooks.md +34 -34
  334. package/docs/reference/subagents.md +1 -1
  335. package/docs/reference/tools.md +4 -0
  336. package/docs/templates/thermo-quality-review.md +80 -0
  337. package/docs/templates/thermo-review.md +79 -0
  338. package/docs/troubleshooting.md +98 -67
  339. package/package.json +8 -1
  340. package/skills/github/SKILL.md +21 -13
  341. package/src/bin/agent-serve.ts +24 -3
  342. package/src/channels/checks.ts +8 -0
  343. package/src/channels/github/github-channel.ts +29 -19
  344. package/src/channels/origin/checks.ts +3 -1
  345. package/src/channels/slack/agentic-delivery.ts +2 -0
  346. package/src/channels/slack/dispatch.ts +131 -4
  347. package/src/channels/slack/placeholder.ts +51 -0
  348. package/src/channels/slack/slack-channel.ts +9 -2
  349. package/src/extensions/cursor-cloud-agents/skills/handoff.md +3 -7
  350. package/src/extensions/improve/extension.ts +4 -2
  351. package/src/extensions/improve/skills/yourself.ts +1 -1
  352. package/src/extensions/jev/extension.ts +95 -0
  353. package/src/extensions/jev/lib/evaluate.ts +289 -0
  354. package/src/extensions/jev/skills/gated-write.md +25 -0
  355. package/src/extensions/jev/skills/questions.md +33 -0
  356. package/src/extensions/jev/tools/evaluate.ts +90 -0
  357. package/src/extensions.ts +2 -0
  358. package/src/filesystem.ts +168 -65
  359. package/src/index.ts +3 -0
  360. package/src/internal/advertise-tools.ts +6 -0
  361. package/src/internal/cli-ax.ts +88 -15
  362. package/src/internal/continuation-identity.ts +1 -0
  363. package/src/internal/cursor-agent-template.ts +2 -0
  364. package/src/internal/discovery/connections.ts +21 -0
  365. package/src/internal/discovery/extensions.ts +12 -4
  366. package/src/internal/discovery/info.ts +1 -0
  367. package/src/internal/filesystem/tools.ts +2 -0
  368. package/src/internal/filesystem/walk.ts +60 -15
  369. package/src/internal/hosted-admission-adapter.ts +3 -0
  370. package/src/internal/hosted-delivery-protocol.ts +82 -1
  371. package/src/internal/hosted-delivery.ts +23 -0
  372. package/src/internal/hosted-execution-diag.ts +33 -4
  373. package/src/internal/hosted-execution-flush.ts +4 -0
  374. package/src/internal/init-project.ts +4 -0
  375. package/src/internal/server.ts +130 -53
  376. package/src/internal/session-engine.ts +46 -8
  377. package/src/internal/skill-catalog.ts +69 -0
  378. package/src/types.ts +33 -3
  379. package/templates/thermo-quality-review/README.md +35 -0
  380. package/templates/thermo-quality-review/agent/agent.ts +8 -0
  381. package/templates/thermo-quality-review/agent/channels/github.ts +42 -0
  382. package/templates/thermo-quality-review/agent/instructions.md +43 -0
  383. package/templates/thermo-quality-review/agent/tools/post_findings.ts +70 -0
  384. package/templates/thermo-quality-review/evals/evals.config.ts +5 -0
  385. package/templates/thermo-quality-review/evals/review.eval.ts +62 -0
  386. package/templates/thermo-quality-review/package.json +18 -0
  387. package/templates/thermo-quality-review/tsconfig.json +12 -0
  388. package/templates/thermo-review/README.md +35 -0
  389. package/templates/thermo-review/agent/agent.ts +8 -0
  390. package/templates/thermo-review/agent/channels/github.ts +42 -0
  391. package/templates/thermo-review/agent/instructions.md +40 -0
  392. package/templates/thermo-review/agent/tools/post_findings.ts +70 -0
  393. package/templates/thermo-review/evals/evals.config.ts +5 -0
  394. package/templates/thermo-review/evals/review.eval.ts +53 -0
  395. package/templates/thermo-review/package.json +18 -0
  396. package/templates/thermo-review/tsconfig.json +12 -0
  397. package/dist/docs/assets/building-with-agents.md.CEGVXkmO.js +0 -13
  398. package/dist/docs/assets/building-with-agents.md.CEGVXkmO.lean.js +0 -1
  399. package/dist/docs/assets/chunks/@localSearchIndexroot.DtXk1hy-.js +0 -1
  400. package/dist/docs/assets/chunks/channel.Bkv1N-gK.js +0 -1
  401. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CZDco1o8.js +0 -1
  402. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CZDco1o8.js +0 -1
  403. package/dist/docs/assets/chunks/clone.YSt_40_s.js +0 -1
  404. package/dist/docs/assets/chunks/framework.dypDpWZ3.js +0 -19
  405. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C4CLm481.js +0 -1
  406. package/dist/docs/assets/deployment.md.Dm4Qo3hp.js +0 -51
  407. package/dist/docs/assets/deployment.md.Dm4Qo3hp.lean.js +0 -1
  408. package/dist/docs/assets/evals.md.BLDRt5LH.js +0 -211
  409. package/dist/docs/assets/evals.md.BLDRt5LH.lean.js +0 -1
  410. package/dist/docs/assets/guides_agent-to-agent.md.BI0xclmy.js +0 -14
  411. package/dist/docs/assets/guides_agent-to-agent.md.BI0xclmy.lean.js +0 -1
  412. package/dist/docs/assets/guides_bitbucket.md.CTpCl__f.js +0 -10
  413. package/dist/docs/assets/guides_bitbucket.md.CTpCl__f.lean.js +0 -1
  414. package/dist/docs/assets/guides_cloud-agents.md.lSE_l7lH.js +0 -9
  415. package/dist/docs/assets/guides_cloud-agents.md.lSE_l7lH.lean.js +0 -1
  416. package/dist/docs/assets/guides_convert-automation.md.Ck6Cr68A.js +0 -12
  417. package/dist/docs/assets/guides_convert-automation.md.Ck6Cr68A.lean.js +0 -1
  418. package/dist/docs/assets/guides_github.md.D6ER29dG.js +0 -64
  419. package/dist/docs/assets/guides_github.md.D6ER29dG.lean.js +0 -1
  420. package/dist/docs/assets/guides_gitlab.md.P-TjBnS5.js +0 -14
  421. package/dist/docs/assets/guides_gitlab.md.P-TjBnS5.lean.js +0 -1
  422. package/dist/docs/assets/guides_grokbot-agents.md.WBZIOvkz.js +0 -9
  423. package/dist/docs/assets/guides_grokbot-agents.md.WBZIOvkz.lean.js +0 -1
  424. package/dist/docs/assets/guides_improve.md.BKaDuKKK.js +0 -14
  425. package/dist/docs/assets/guides_improve.md.BKaDuKKK.lean.js +0 -1
  426. package/dist/docs/assets/guides_mcp-oauth.md.DMNMpXtO.js +0 -28
  427. package/dist/docs/assets/guides_mcp-oauth.md.DMNMpXtO.lean.js +0 -1
  428. package/dist/docs/assets/guides_opentelemetry.md._CRfDyzH.js +0 -26
  429. package/dist/docs/assets/guides_opentelemetry.md._CRfDyzH.lean.js +0 -1
  430. package/dist/docs/assets/guides_slack.md.DdT8rmsj.js +0 -46
  431. package/dist/docs/assets/guides_slack.md.DdT8rmsj.lean.js +0 -1
  432. package/dist/docs/assets/guides_webhooks.md.aQW10HRe.js +0 -225
  433. package/dist/docs/assets/guides_webhooks.md.aQW10HRe.lean.js +0 -1
  434. package/dist/docs/assets/hillclimbing.md.Dq4kkVIL.js +0 -1
  435. package/dist/docs/assets/hillclimbing.md.Dq4kkVIL.lean.js +0 -1
  436. package/dist/docs/assets/reference_extensions.md.wlFD3cUR.js +0 -62
  437. package/dist/docs/assets/reference_extensions.md.wlFD3cUR.lean.js +0 -1
  438. package/dist/docs/assets/troubleshooting.md.BcgNoYtJ.js +0 -1
  439. package/dist/docs/assets/troubleshooting.md.BcgNoYtJ.lean.js +0 -1
  440. package/dist/playground/assets/index-BLlKgZtI.css +0 -1
  441. package/dist/playground/assets/index-CDS5p9sR.js +0 -67
@@ -1,26 +1,26 @@
1
1
  ---
2
2
  title: "Cursor cloud agents"
3
- description: "Let an agent-sdk agent hand coding work to Cursor cloud agents and steer them: mount the extension, pick the repositories it may touch, and decide what needs approval."
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 lets an agent delegate coding work
9
- to Cursor cloud agents and stay in the conversation while they do it.
10
- The cloud agents work on real repository checkouts and push branches and
11
- pull requests; your agent hands off the task, reports back, and answers
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
- `[runtime: "cloud"](../reference/agent-config.md#choose-a-runtime)`. The
18
- runtime moves *this* agent's turns onto a cloud VM. The extension keeps
19
- the agent where it is and lets it start *other* cloud agents.
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
- The extension ships with `@cursor/july`. Mount it with one file.
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: [{ url: "https://github.com/acme/api", startingRef: "main" }],
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
- Launches run under the host's signed-in account (`agent-sdk login`,
38
- `CURSOR_API_KEY`, or `CURSOR_SERVICE_ACCOUNT_KEY`) and spend its
39
- cloud-agent budget. Name the repositories the agent may target, and
40
- keep approval on when you can't.
41
-
42
- Mount it on an agent that runs on the local runtime; that is where
43
- launches park for approval. On the cloud runtime approvals don't
44
- resolve.
45
-
46
- ## What the agent can do
47
-
48
- With the extension mounted, the agent can hand off coding work and stay
49
- in the conversation while it happens:
50
-
51
- - **Hand off a task.** Launch a cloud agent on one of your repositories,
52
- or on a pull request, with a self-contained brief. It gets back an
53
- agent id and a URL to share.
54
- - **Check on it.** See whether the agent is still running, what it
55
- produced, and which branches or pull requests it pushed.
56
- - **Read what was done.** Pull the agent's full conversation into the
57
- workspace, quote its final report, or trace the exact edits before
58
- summarizing for a person.
59
- - **Steer or stop.** Send a follow-up to an agent it launched; it queues
60
- behind the current run, or interrupts it on request. Cancel a run that
61
- went sideways.
62
- - **Keep track.** List the agents launched in this conversation, or
63
- everything it has launched before.
64
-
65
- A skill teaches the model when to delegate, how to write a brief a cloud
66
- agent can act on alone, and how to follow up. Everything the extension
67
- launches stays bound to whoever launched it: an agent started by another
68
- user, or outside the extension, is out of reach. That separation is only
69
- as fine as your host's auth; a shared bearer token or `--allow-anonymous`
70
- makes every caller one principal, so use
71
- [authored auth](../reference/channels.md#auth-policies) when callers need
72
- their own.
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
- | Option | What it controls |
78
- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
79
- | `cloud` | Launch defaults, in the same shape as the agent's own [cloud options](../reference/agent-config.md#cloud-options). |
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
- ## Adjust it
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
- To take a capability away, such as sending follow-ups, mount as a
91
- directory and disable that tool; see
92
- [overlays](../reference/extensions.md#adjust-a-mounted-extension).
116
+ ## Caller ownership
93
117
 
94
- ## What's next
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
- Continue with these pages:
134
+ - Report the complete agent ID and URL. Do not abbreviate the ID.
97
135
 
98
- - [Extensions](../reference/extensions.md): how mounts, namespaces, and
99
- overrides work
100
- - [Gate a tool on human approval](../reference/tools.md#gate-a-tool-on-human-approval):
101
- where parked launches get approved
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: "Export a dashboard Automation into a local Agent SDK project, then review, validate, and run it."
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
- `convert-automation` exports a dashboard Automation into a local Agent
9
- SDK project. Use it when you need to edit, test, or deploy the
10
- Automation as code. Keep using the dashboard if you only need to change
11
- its prompt or trigger.
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
- The converter refuses Cursor-managed Automations because their behavior
14
- lives in managed configuration. The
15
- [CLI reference](../reference/cli.md#convert-automation) lists flags and
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
- ## Run the conversion
17
+ ## Convert and run locally
19
18
 
20
- Sign in before converting. Unlike `init`, this command does not start a
21
- login flow.
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
- # or: export CURSOR_API_KEY=key_...
26
- agent-sdk whoami
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
- Pass the Automation's dashboard URL or UUID. The URL must end with
30
- `/automations/<uuid>` or `/custom-agents/<uuid>`. Do not add path
31
- segments after the UUID.
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 convert-automation https://cursor.com/automations/0a1b2c3d-0000-1111-2222-333344445555
70
+ agent-sdk slack create --dir . --channel-posts
35
71
  ```
36
72
 
37
- The summary prints the output directory. Change into it before running
38
- any setup command. For an Automation named "Nightly triage":
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
- cd nightly-triage
129
+ agent-sdk github replay acme/api#42 \
130
+ --dir . \
131
+ --events '*' \
132
+ --conclusion failure
42
133
  ```
43
134
 
44
- The command fetches the Automation before writing files. A 404 means it
45
- was not found, you do not have access, or convert is not enabled for
46
- your team. A 422 means it is Cursor-managed. The command writes nothing
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
- The command runs `npm install` after writing the project. If the install
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
- ## What the project contains
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 cron Automation with a Linear MCP server might produce:
145
+ - A setup step names something you must connect or configure.
56
146
 
57
- ```
58
- nightly-triage/
59
- package.json
60
- tsconfig.json
61
- agent/
62
- agent.ts
63
- instructions.md
64
- schedules/nightly-triage.ts
65
- mcp-connections/linear.ts
66
- evals/
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
- The command adds missing `init` scaffold files but omits the demo
70
- `echo` tool. It writes the memory hook only when memory was enabled.
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; use
172
- [`github forward`](../reference/cli.md#github) for live delivery
173
- - [Slack](./slack.md): Cursor connection vs Socket Mode
174
- - [Webhooks](./webhooks.md): auth on a custom channel route
175
- - [Deployment](../deployment.md): hosted engines after you have reviewed
176
- the project
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