@cursor/july 0.1.111 → 0.1.112

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