@cursor/july 0.1.91 → 0.1.93

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 (351) hide show
  1. package/AGENTS.md +4 -0
  2. package/README.md +117 -162
  3. package/dist/channels/deployments/deployments-channel.d.ts +7 -0
  4. package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
  5. package/dist/channels/deployments/deployments-channel.js +26 -2
  6. package/dist/channels/deployments/types.d.ts +8 -0
  7. package/dist/channels/deployments/types.d.ts.map +1 -1
  8. package/dist/channels/github/github-channel.d.ts +3 -0
  9. package/dist/channels/github/github-channel.d.ts.map +1 -1
  10. package/dist/channels/github/github-channel.js +28 -56
  11. package/dist/continuation.d.ts +1 -1
  12. package/dist/continuation.js +1 -1
  13. package/dist/docs/404.html +4 -2
  14. package/dist/docs/ab.html +10 -8
  15. package/dist/docs/ab.md +332 -0
  16. package/dist/docs/assets/{ab.md.CVzWxLoB.js → ab.md.DJo5r4R-.js} +4 -4
  17. package/dist/docs/assets/{ab.md.CVzWxLoB.lean.js → ab.md.DJo5r4R-.lean.js} +1 -1
  18. package/dist/docs/assets/{app.Bci6CM9E.js → app.CjWU-x0z.js} +1 -1
  19. package/dist/docs/assets/building-with-agents.md.DI4mEzlt.js +13 -0
  20. package/dist/docs/assets/{building-with-agents.md.DH8A_cHA.lean.js → building-with-agents.md.DI4mEzlt.lean.js} +1 -1
  21. package/dist/docs/assets/chunks/@localSearchIndexroot.ChpIC3Zy.js +1 -0
  22. package/dist/docs/assets/chunks/{VPLocalSearchBox.BCPT6xA-.js → VPLocalSearchBox.Cxy8ySFQ.js} +1 -1
  23. package/dist/docs/assets/chunks/{theme.BEA8BF3c.js → theme.Dvq1Bktu.js} +2 -2
  24. package/dist/docs/assets/concepts.md.F6AiPorA.js +1 -0
  25. package/dist/docs/assets/{concepts.md.CRfU3bVg.lean.js → concepts.md.F6AiPorA.lean.js} +1 -1
  26. package/dist/docs/assets/{deployment.md.DX_hc3ze.js → deployment.md.DoLFAzfm.js} +6 -6
  27. package/dist/docs/assets/{evals.md.a0SMN6r9.js → evals.md.lfJoEVc8.js} +6 -6
  28. package/dist/docs/assets/{evals.md.a0SMN6r9.lean.js → evals.md.lfJoEVc8.lean.js} +1 -1
  29. package/dist/docs/assets/{example-agents_approval-buddy.md.DNL83puR.js → example-agents_approval-buddy.md.DmezILPg.js} +1 -1
  30. package/dist/docs/assets/{example-agents_benny.md.C40vHRLc.js → example-agents_benny.md.B0kwY7D_.js} +2 -4
  31. package/dist/docs/assets/{example-agents_benny.md.C40vHRLc.lean.js → example-agents_benny.md.B0kwY7D_.lean.js} +1 -1
  32. package/dist/docs/assets/{example-agents_codebase-wiki.md.Dftj_tPp.js → example-agents_codebase-wiki.md.BBNw9Ekr.js} +3 -3
  33. package/dist/docs/assets/{example-agents_codebase-wiki.md.Dftj_tPp.lean.js → example-agents_codebase-wiki.md.BBNw9Ekr.lean.js} +1 -1
  34. package/dist/docs/assets/{example-agents_concierge.md.MrKpQndp.js → example-agents_concierge.md.BzB2b20R.js} +2 -3
  35. package/dist/docs/assets/example-agents_index.md.ChBp0AX6.js +2 -0
  36. package/dist/docs/assets/example-agents_index.md.ChBp0AX6.lean.js +1 -0
  37. package/dist/docs/assets/{example-agents_knowledge-base.md.DqKqHQ9u.js → example-agents_knowledge-base.md.CrA85ig-.js} +1 -1
  38. package/dist/docs/assets/{example-agents_security-reviewer.md.Bai6D0Ee.js → example-agents_security-reviewer.md.74pPpWYj.js} +1 -1
  39. package/dist/docs/assets/{example-agents_weather-agent.md.lVEAbWFf.js → example-agents_weather-agent.md.CaGpmw3Y.js} +2 -2
  40. package/dist/docs/assets/{guides_agent-to-agent.md.BCeVdJRJ.js → guides_agent-to-agent.md.B3JIaAqz.js} +1 -1
  41. package/dist/docs/assets/{guides_cloud-runtime.md.BSMLIBHr.js → guides_cloud-runtime.md.BnvjPiia.js} +2 -2
  42. package/dist/docs/assets/{guides_cloud-runtime.md.BSMLIBHr.lean.js → guides_cloud-runtime.md.BnvjPiia.lean.js} +1 -1
  43. package/dist/docs/assets/{guides_convert-automation.md.D06eIzea.js → guides_convert-automation.md.Bboisykk.js} +1 -1
  44. package/dist/docs/assets/{guides_github.md.Cdt1s2QC.js → guides_github.md.DqJhuaN1.js} +5 -5
  45. package/dist/docs/assets/{guides_github.md.Cdt1s2QC.lean.js → guides_github.md.DqJhuaN1.lean.js} +1 -1
  46. package/dist/docs/assets/{guides_mcp-oauth.md.Du0f7pGU.js → guides_mcp-oauth.md.CJvrXtkN.js} +2 -2
  47. package/dist/docs/assets/{guides_slack.md.DiUmk_Oi.js → guides_slack.md.mqeNKs84.js} +2 -2
  48. package/dist/docs/assets/{guides_webhooks.md.BpnIdO0i.js → guides_webhooks.md.DKdA43Qm.js} +2 -2
  49. package/dist/docs/assets/{hillclimbing.md.ywF3yDAd.js → hillclimbing.md.DhESf3OO.js} +1 -1
  50. package/dist/docs/assets/{index.md.BAaMXLFd.js → index.md.B-lVR4wT.js} +3 -3
  51. package/dist/docs/assets/{index.md.BAaMXLFd.lean.js → index.md.B-lVR4wT.lean.js} +1 -1
  52. package/dist/docs/assets/{quickstart.md.DsrarzEg.js → quickstart.md.BrmfrrIr.js} +1 -1
  53. package/dist/docs/assets/{reference_agent-config.md.Bqylgw50.js → reference_agent-config.md.Cp_x38Nl.js} +3 -3
  54. package/dist/docs/assets/{reference_channels.md.DQZjCnyh.js → reference_channels.md.Cd2f2iyV.js} +2 -2
  55. package/dist/docs/assets/{reference_channels.md.DQZjCnyh.lean.js → reference_channels.md.Cd2f2iyV.lean.js} +1 -1
  56. package/dist/docs/assets/{reference_cli.md.B7GkAJRC.js → reference_cli.md.D9KESDsD.js} +10 -11
  57. package/dist/docs/assets/{reference_cli.md.B7GkAJRC.lean.js → reference_cli.md.D9KESDsD.lean.js} +1 -1
  58. package/dist/docs/assets/{reference_connections.md.DYidrb-j.js → reference_connections.md.DB6SsN6U.js} +3 -3
  59. package/dist/docs/assets/reference_hooks.md.BxN87gCw.js +14 -0
  60. package/dist/docs/assets/{reference_hooks.md.B9FSgdDe.lean.js → reference_hooks.md.BxN87gCw.lean.js} +1 -1
  61. package/dist/docs/assets/reference_http-api.md.C68BERYr.js +11 -0
  62. package/dist/docs/assets/reference_http-api.md.C68BERYr.lean.js +1 -0
  63. package/dist/docs/assets/{reference_instructions.md.DhNCOl7r.js → reference_instructions.md.CR7XSsGk.js} +3 -3
  64. package/dist/docs/assets/{reference_instructions.md.DhNCOl7r.lean.js → reference_instructions.md.CR7XSsGk.lean.js} +1 -1
  65. package/dist/docs/assets/reference_playground.md.DnX5nL-B.js +1 -0
  66. package/dist/docs/assets/reference_playground.md.DnX5nL-B.lean.js +1 -0
  67. package/dist/docs/assets/{reference_project-layout.md.CwkSbEWT.js → reference_project-layout.md.WN9nwJht.js} +2 -2
  68. package/dist/docs/assets/{reference_prompt.md.DZUMtLPD.js → reference_prompt.md.DnaD5dNK.js} +1 -1
  69. package/dist/docs/assets/{reference_schedules.md.DNipebiG.js → reference_schedules.md.DI_JrHgq.js} +1 -1
  70. package/dist/docs/assets/reference_sessions.md.D0mIh4KK.js +1 -0
  71. package/dist/docs/assets/{reference_sessions.md.tUFzz98S.lean.js → reference_sessions.md.D0mIh4KK.lean.js} +1 -1
  72. package/dist/docs/assets/{reference_skills.md.B5ZEuHfG.js → reference_skills.md.BFW9retM.js} +1 -1
  73. package/dist/docs/assets/{reference_tools.md.wpaJtHn6.js → reference_tools.md.DuKvkYWG.js} +4 -4
  74. package/dist/docs/assets/{reference_tools.md.wpaJtHn6.lean.js → reference_tools.md.DuKvkYWG.lean.js} +1 -1
  75. package/dist/docs/assets/scaffolding-agents.md.D7UUkWw0.js +1 -0
  76. package/dist/docs/assets/{scaffolding-agents.md.CRDDUtYJ.lean.js → scaffolding-agents.md.D7UUkWw0.lean.js} +1 -1
  77. package/dist/docs/assets/{storage.md.JbjlHWZ6.js → storage.md.BOHeqk2M.js} +5 -5
  78. package/dist/docs/assets/{storage.md.JbjlHWZ6.lean.js → storage.md.BOHeqk2M.lean.js} +1 -1
  79. package/dist/docs/assets/{templates_agentic-owners.md.DSJSIpWU.js → templates_agentic-owners.md.DqtPdm6f.js} +2 -2
  80. package/dist/docs/assets/{templates_pr-autofixer.md.1HAR3RXE.js → templates_pr-autofixer.md.R4K_qytS.js} +2 -2
  81. package/dist/docs/assets/{templates_pr-autofixer.md.1HAR3RXE.lean.js → templates_pr-autofixer.md.R4K_qytS.lean.js} +1 -1
  82. package/dist/docs/assets/troubleshooting.md.vCWwvqcJ.js +1 -0
  83. package/dist/docs/assets/{troubleshooting.md.DYECCZiJ.lean.js → troubleshooting.md.vCWwvqcJ.lean.js} +1 -1
  84. package/dist/docs/building-with-agents.html +9 -7
  85. package/dist/docs/building-with-agents.md +118 -0
  86. package/dist/docs/concepts.html +7 -8
  87. package/dist/docs/concepts.md +169 -0
  88. package/dist/docs/deployment.html +13 -11
  89. package/dist/docs/deployment.md +462 -0
  90. package/dist/docs/evals.html +12 -10
  91. package/dist/docs/evals.md +460 -0
  92. package/dist/docs/example-agents/approval-buddy.html +7 -5
  93. package/dist/docs/example-agents/approval-buddy.md +266 -0
  94. package/dist/docs/example-agents/benny.html +7 -7
  95. package/dist/docs/example-agents/benny.md +173 -0
  96. package/dist/docs/example-agents/bugbot.html +6 -4
  97. package/dist/docs/example-agents/bugbot.md +229 -0
  98. package/dist/docs/example-agents/codebase-wiki.html +8 -6
  99. package/dist/docs/example-agents/codebase-wiki.md +167 -0
  100. package/dist/docs/example-agents/codeowners-review.html +6 -4
  101. package/dist/docs/example-agents/codeowners-review.md +192 -0
  102. package/dist/docs/example-agents/concierge.html +9 -8
  103. package/dist/docs/example-agents/concierge.md +200 -0
  104. package/dist/docs/example-agents/index.html +8 -6
  105. package/dist/docs/example-agents/index.md +99 -0
  106. package/dist/docs/example-agents/knowledge-base.html +8 -6
  107. package/dist/docs/example-agents/knowledge-base.md +168 -0
  108. package/dist/docs/example-agents/oncall.html +6 -4
  109. package/dist/docs/example-agents/oncall.md +212 -0
  110. package/dist/docs/example-agents/security-reviewer.html +9 -7
  111. package/dist/docs/example-agents/security-reviewer.md +265 -0
  112. package/dist/docs/example-agents/slack-agent.html +6 -4
  113. package/dist/docs/example-agents/slack-agent.md +142 -0
  114. package/dist/docs/example-agents/weather-agent.html +9 -7
  115. package/dist/docs/example-agents/weather-agent.md +297 -0
  116. package/dist/docs/guides/agent-to-agent.html +7 -5
  117. package/dist/docs/guides/agent-to-agent.md +113 -0
  118. package/dist/docs/guides/cloud-runtime.html +8 -6
  119. package/dist/docs/guides/cloud-runtime.md +114 -0
  120. package/dist/docs/guides/convert-automation.html +8 -6
  121. package/dist/docs/guides/convert-automation.md +171 -0
  122. package/dist/docs/guides/github.html +11 -9
  123. package/dist/docs/guides/github.md +275 -0
  124. package/dist/docs/guides/human-in-the-loop.html +6 -4
  125. package/dist/docs/guides/human-in-the-loop.md +126 -0
  126. package/dist/docs/guides/mcp-oauth.html +8 -6
  127. package/dist/docs/guides/mcp-oauth.md +159 -0
  128. package/dist/docs/guides/opentelemetry.html +6 -4
  129. package/dist/docs/guides/opentelemetry.md +209 -0
  130. package/dist/docs/guides/slack.html +9 -7
  131. package/dist/docs/guides/slack.md +337 -0
  132. package/dist/docs/guides/webhooks.html +8 -6
  133. package/dist/docs/guides/webhooks.md +463 -0
  134. package/dist/docs/hashmap.json +1 -1
  135. package/dist/docs/hillclimbing.html +8 -6
  136. package/dist/docs/hillclimbing.md +88 -0
  137. package/dist/docs/index.html +8 -6
  138. package/dist/docs/index.md +171 -0
  139. package/dist/docs/llms-full.txt +10968 -0
  140. package/dist/docs/llms.txt +74 -0
  141. package/dist/docs/quickstart.html +7 -5
  142. package/dist/docs/quickstart.md +364 -0
  143. package/dist/docs/reference/agent-config.html +10 -8
  144. package/dist/docs/reference/agent-config.md +251 -0
  145. package/dist/docs/reference/artifacts.html +6 -4
  146. package/dist/docs/reference/artifacts.md +112 -0
  147. package/dist/docs/reference/channels.html +8 -6
  148. package/dist/docs/reference/channels.md +244 -0
  149. package/dist/docs/reference/cli.html +16 -15
  150. package/dist/docs/reference/cli.md +947 -0
  151. package/dist/docs/reference/connections.html +10 -8
  152. package/dist/docs/reference/connections.md +263 -0
  153. package/dist/docs/reference/hooks.html +8 -6
  154. package/dist/docs/reference/hooks.md +98 -0
  155. package/dist/docs/reference/http-api.html +9 -7
  156. package/dist/docs/reference/http-api.md +247 -0
  157. package/dist/docs/reference/instructions.html +8 -6
  158. package/dist/docs/reference/instructions.md +74 -0
  159. package/dist/docs/reference/playground.html +7 -5
  160. package/dist/docs/reference/playground.md +57 -0
  161. package/dist/docs/reference/project-layout.html +9 -7
  162. package/dist/docs/reference/project-layout.md +107 -0
  163. package/dist/docs/reference/prompt.html +8 -6
  164. package/dist/docs/reference/prompt.md +42 -0
  165. package/dist/docs/reference/schedules.html +8 -6
  166. package/dist/docs/reference/schedules.md +214 -0
  167. package/dist/docs/reference/sessions.html +7 -12
  168. package/dist/docs/reference/sessions.md +159 -0
  169. package/dist/docs/reference/skills.html +8 -6
  170. package/dist/docs/reference/skills.md +83 -0
  171. package/dist/docs/reference/subagents.html +6 -4
  172. package/dist/docs/reference/subagents.md +71 -0
  173. package/dist/docs/reference/tools.html +10 -8
  174. package/dist/docs/reference/tools.md +293 -0
  175. package/dist/docs/scaffolding-agents.html +7 -5
  176. package/dist/docs/scaffolding-agents.md +129 -0
  177. package/dist/docs/storage.html +11 -9
  178. package/dist/docs/storage.md +176 -0
  179. package/dist/docs/templates/agentic-owners.html +9 -7
  180. package/dist/docs/templates/agentic-owners.md +92 -0
  181. package/dist/docs/templates/demo.html +6 -4
  182. package/dist/docs/templates/demo.md +79 -0
  183. package/dist/docs/templates/pr-autofixer.html +8 -6
  184. package/dist/docs/templates/pr-autofixer.md +128 -0
  185. package/dist/docs/templates/security-reviewer.html +6 -4
  186. package/dist/docs/templates/security-reviewer.md +84 -0
  187. package/dist/docs/templates/triage.html +6 -4
  188. package/dist/docs/templates/triage.md +98 -0
  189. package/dist/docs/troubleshooting.html +7 -5
  190. package/dist/docs/troubleshooting.md +111 -0
  191. package/dist/internal/authored-alias-hooks.d.ts +14 -11
  192. package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
  193. package/dist/internal/authored-alias-hooks.js +14 -11
  194. package/dist/internal/authored-loaders.d.ts +7 -6
  195. package/dist/internal/authored-loaders.d.ts.map +1 -1
  196. package/dist/internal/authored-loaders.js +14 -10
  197. package/dist/internal/cli-deploy.d.ts +1 -1
  198. package/dist/internal/cli-deploy.js +5 -5
  199. package/dist/internal/continuation-channel.d.ts +6 -3
  200. package/dist/internal/continuation-channel.d.ts.map +1 -1
  201. package/dist/internal/continuation-channel.js +44 -40
  202. package/dist/internal/continuation-identity.d.ts +17 -16
  203. package/dist/internal/continuation-identity.d.ts.map +1 -1
  204. package/dist/internal/continuation-identity.js +109 -36
  205. package/dist/internal/deploy-manifest.d.ts +2 -2
  206. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  207. package/dist/internal/deploy-manifest.js +4 -9
  208. package/dist/internal/discovery.d.ts.map +1 -1
  209. package/dist/internal/discovery.js +3 -0
  210. package/dist/internal/distribution.d.ts +4 -3
  211. package/dist/internal/distribution.d.ts.map +1 -1
  212. package/dist/internal/distribution.js +4 -3
  213. package/dist/internal/hosted-delivery-protocol.d.ts +38 -0
  214. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -0
  215. package/dist/internal/hosted-delivery-protocol.js +70 -0
  216. package/dist/internal/hosted-delivery.d.ts +35 -0
  217. package/dist/internal/hosted-delivery.d.ts.map +1 -0
  218. package/dist/internal/hosted-delivery.js +226 -0
  219. package/dist/internal/http-channel.d.ts.map +1 -1
  220. package/dist/internal/http-channel.js +1 -1
  221. package/dist/internal/init-scaffold.d.ts.map +1 -1
  222. package/dist/internal/init-scaffold.js +1 -0
  223. package/dist/internal/playground/static.d.ts.map +1 -1
  224. package/dist/internal/playground/static.js +2 -0
  225. package/dist/internal/review-comments.d.ts +186 -63
  226. package/dist/internal/review-comments.d.ts.map +1 -1
  227. package/dist/internal/review-comments.js +350 -168
  228. package/dist/internal/server.d.ts.map +1 -1
  229. package/dist/internal/server.js +21 -3
  230. package/dist/internal/session-engine.d.ts +5 -0
  231. package/dist/internal/session-engine.d.ts.map +1 -1
  232. package/dist/internal/session-engine.js +16 -4
  233. package/dist/internal/shallow-clone.d.ts +8 -2
  234. package/dist/internal/shallow-clone.d.ts.map +1 -1
  235. package/dist/internal/shallow-clone.js +17 -10
  236. package/dist/playground/assets/{index-DDvyC2z6.js → index-D9MFzhNE.js} +1 -1
  237. package/dist/playground/index.html +1 -1
  238. package/dist/types.d.ts +9 -17
  239. package/dist/types.d.ts.map +1 -1
  240. package/docs/README.md +2 -10
  241. package/docs/ab.md +7 -13
  242. package/docs/building-with-agents.md +5 -11
  243. package/docs/concepts.md +12 -17
  244. package/docs/deployment.md +8 -10
  245. package/docs/evals.md +16 -37
  246. package/docs/example-agents/approval-buddy.md +1 -1
  247. package/docs/example-agents/benny.md +4 -13
  248. package/docs/example-agents/codebase-wiki.md +5 -8
  249. package/docs/example-agents/concierge.md +2 -3
  250. package/docs/example-agents/index.md +6 -9
  251. package/docs/example-agents/knowledge-base.md +2 -2
  252. package/docs/example-agents/security-reviewer.md +5 -5
  253. package/docs/example-agents/weather-agent.md +4 -3
  254. package/docs/guides/agent-to-agent.md +1 -1
  255. package/docs/guides/cloud-runtime.md +8 -25
  256. package/docs/guides/convert-automation.md +3 -3
  257. package/docs/guides/github.md +11 -23
  258. package/docs/guides/mcp-oauth.md +4 -4
  259. package/docs/guides/slack.md +4 -4
  260. package/docs/guides/webhooks.md +3 -3
  261. package/docs/hillclimbing.md +1 -1
  262. package/docs/quickstart.md +1 -1
  263. package/docs/reference/agent-config.md +10 -15
  264. package/docs/reference/channels.md +20 -31
  265. package/docs/reference/cli.md +27 -37
  266. package/docs/reference/connections.md +9 -14
  267. package/docs/reference/hooks.md +10 -14
  268. package/docs/reference/http-api.md +18 -38
  269. package/docs/reference/instructions.md +1 -1
  270. package/docs/reference/playground.md +14 -19
  271. package/docs/reference/project-layout.md +2 -2
  272. package/docs/reference/prompt.md +1 -1
  273. package/docs/reference/schedules.md +1 -2
  274. package/docs/reference/sessions.md +8 -19
  275. package/docs/reference/skills.md +3 -3
  276. package/docs/reference/tools.md +12 -17
  277. package/docs/scaffolding-agents.md +4 -5
  278. package/docs/storage.md +37 -80
  279. package/docs/templates/agentic-owners.md +2 -2
  280. package/docs/templates/pr-autofixer.md +3 -6
  281. package/docs/troubleshooting.md +6 -6
  282. package/package.json +9 -2
  283. package/skills/ab/SKILL.md +3 -0
  284. package/skills/create-agent/SKILL.md +3 -0
  285. package/skills/debug/SKILL.md +3 -0
  286. package/skills/evals/SKILL.md +3 -0
  287. package/skills/framework-map/SKILL.md +3 -0
  288. package/skills/github/SKILL.md +3 -0
  289. package/skills/hillclimb/SKILL.md +3 -0
  290. package/skills/mcp-auth/SKILL.md +3 -0
  291. package/skills/otel/SKILL.md +3 -0
  292. package/skills/setup-slack/SKILL.md +3 -0
  293. package/src/channels/deployments/deployments-channel.ts +32 -2
  294. package/src/channels/deployments/types.ts +8 -0
  295. package/src/channels/github/github-channel.ts +71 -21
  296. package/src/continuation.ts +1 -1
  297. package/src/internal/authored-alias-hooks.ts +14 -11
  298. package/src/internal/authored-loaders.ts +14 -10
  299. package/src/internal/cli-deploy.ts +5 -5
  300. package/src/internal/continuation-channel.ts +62 -45
  301. package/src/internal/continuation-identity.ts +123 -38
  302. package/src/internal/deploy-manifest.ts +5 -9
  303. package/src/internal/discovery.ts +3 -0
  304. package/src/internal/distribution.ts +4 -3
  305. package/src/internal/hosted-delivery-protocol.ts +114 -0
  306. package/src/internal/hosted-delivery.ts +327 -0
  307. package/src/internal/http-channel.ts +0 -2
  308. package/src/internal/init-scaffold.ts +1 -0
  309. package/src/internal/playground/static.ts +2 -0
  310. package/src/internal/review-comments.ts +542 -229
  311. package/src/internal/server.ts +29 -2
  312. package/src/internal/session-engine.ts +29 -7
  313. package/src/internal/shallow-clone.ts +30 -16
  314. package/src/types.ts +9 -17
  315. package/dist/docs/assets/building-with-agents.md.DH8A_cHA.js +0 -13
  316. package/dist/docs/assets/chunks/@localSearchIndexroot.Dv-Q0XtU.js +0 -1
  317. package/dist/docs/assets/concepts.md.CRfU3bVg.js +0 -4
  318. package/dist/docs/assets/example-agents_fsd.md.ZWHWWZPE.js +0 -15
  319. package/dist/docs/assets/example-agents_fsd.md.ZWHWWZPE.lean.js +0 -1
  320. package/dist/docs/assets/example-agents_index.md.QZ8mhr6n.js +0 -2
  321. package/dist/docs/assets/example-agents_index.md.QZ8mhr6n.lean.js +0 -1
  322. package/dist/docs/assets/reference_hooks.md.B9FSgdDe.js +0 -14
  323. package/dist/docs/assets/reference_http-api.md.CSHVobzG.js +0 -11
  324. package/dist/docs/assets/reference_http-api.md.CSHVobzG.lean.js +0 -1
  325. package/dist/docs/assets/reference_playground.md.Dfb92yQf.js +0 -1
  326. package/dist/docs/assets/reference_playground.md.Dfb92yQf.lean.js +0 -1
  327. package/dist/docs/assets/reference_sessions.md.tUFzz98S.js +0 -8
  328. package/dist/docs/assets/scaffolding-agents.md.CRDDUtYJ.js +0 -1
  329. package/dist/docs/assets/troubleshooting.md.DYECCZiJ.js +0 -1
  330. package/dist/docs/example-agents/fsd.html +0 -39
  331. package/docs/example-agents/fsd.md +0 -334
  332. /package/dist/docs/assets/{deployment.md.DX_hc3ze.lean.js → deployment.md.DoLFAzfm.lean.js} +0 -0
  333. /package/dist/docs/assets/{example-agents_approval-buddy.md.DNL83puR.lean.js → example-agents_approval-buddy.md.DmezILPg.lean.js} +0 -0
  334. /package/dist/docs/assets/{example-agents_concierge.md.MrKpQndp.lean.js → example-agents_concierge.md.BzB2b20R.lean.js} +0 -0
  335. /package/dist/docs/assets/{example-agents_knowledge-base.md.DqKqHQ9u.lean.js → example-agents_knowledge-base.md.CrA85ig-.lean.js} +0 -0
  336. /package/dist/docs/assets/{example-agents_security-reviewer.md.Bai6D0Ee.lean.js → example-agents_security-reviewer.md.74pPpWYj.lean.js} +0 -0
  337. /package/dist/docs/assets/{example-agents_weather-agent.md.lVEAbWFf.lean.js → example-agents_weather-agent.md.CaGpmw3Y.lean.js} +0 -0
  338. /package/dist/docs/assets/{guides_agent-to-agent.md.BCeVdJRJ.lean.js → guides_agent-to-agent.md.B3JIaAqz.lean.js} +0 -0
  339. /package/dist/docs/assets/{guides_convert-automation.md.D06eIzea.lean.js → guides_convert-automation.md.Bboisykk.lean.js} +0 -0
  340. /package/dist/docs/assets/{guides_mcp-oauth.md.Du0f7pGU.lean.js → guides_mcp-oauth.md.CJvrXtkN.lean.js} +0 -0
  341. /package/dist/docs/assets/{guides_slack.md.DiUmk_Oi.lean.js → guides_slack.md.mqeNKs84.lean.js} +0 -0
  342. /package/dist/docs/assets/{guides_webhooks.md.BpnIdO0i.lean.js → guides_webhooks.md.DKdA43Qm.lean.js} +0 -0
  343. /package/dist/docs/assets/{hillclimbing.md.ywF3yDAd.lean.js → hillclimbing.md.DhESf3OO.lean.js} +0 -0
  344. /package/dist/docs/assets/{quickstart.md.DsrarzEg.lean.js → quickstart.md.BrmfrrIr.lean.js} +0 -0
  345. /package/dist/docs/assets/{reference_agent-config.md.Bqylgw50.lean.js → reference_agent-config.md.Cp_x38Nl.lean.js} +0 -0
  346. /package/dist/docs/assets/{reference_connections.md.DYidrb-j.lean.js → reference_connections.md.DB6SsN6U.lean.js} +0 -0
  347. /package/dist/docs/assets/{reference_project-layout.md.CwkSbEWT.lean.js → reference_project-layout.md.WN9nwJht.lean.js} +0 -0
  348. /package/dist/docs/assets/{reference_prompt.md.DZUMtLPD.lean.js → reference_prompt.md.DnaD5dNK.lean.js} +0 -0
  349. /package/dist/docs/assets/{reference_schedules.md.DNipebiG.lean.js → reference_schedules.md.DI_JrHgq.lean.js} +0 -0
  350. /package/dist/docs/assets/{reference_skills.md.B5ZEuHfG.lean.js → reference_skills.md.BFW9retM.lean.js} +0 -0
  351. /package/dist/docs/assets/{templates_agentic-owners.md.DSJSIpWU.lean.js → templates_agentic-owners.md.DqtPdm6f.lean.js} +0 -0
package/docs/evals.md CHANGED
@@ -16,12 +16,6 @@ targets) a real agent server, drives sessions over the public API, and
16
16
  grades what comes back. A passing eval means the agent started,
17
17
  accepted a message, and did what you asserted.
18
18
 
19
- > [!NOTE]
20
- > Import paths here use `@cursor/july/evals`. On projects still
21
- > using `@anysphere/agent-serve`, swap the import and run
22
- > `agent-serve eval`. See
23
- > [Run the CLI](/#run-the-cli) for the full rename table.
24
-
25
19
  ## Define evals with `defineEval`
26
20
 
27
21
  The Agent SDK discovers evals under the project-root `evals/` directory,
@@ -125,7 +119,7 @@ export default defineEvalConfig({
125
119
  // timeoutMs: 180_000, // optional project-wide default
126
120
  // judge: { model: "..." }, // default judge model for t.judge.*
127
121
  // reporters: [], // destinations that observe every case
128
- // maxPlaygroundRuns: 50, // playground /v1/dev/evals history only (default 20)
122
+ // maxPlaygroundRuns: 50, // playground history only (default 20)
129
123
  });
130
124
  ```
131
125
 
@@ -139,7 +133,7 @@ The optional fields:
139
133
  | `timeoutMs` | `180_000` | Project-wide per-case timeout |
140
134
  | `judge` | unset | Default judge model for `t.judge.*`; see [Judge free-form output](#judge-free-form-output) |
141
135
  | `reporters` | unset | Destinations that observe every case; `--skip-report` suppresses them |
142
- | `maxPlaygroundRuns` | `20` | Max batches in the playground / `/v1/dev/evals*` history (not CLI `eval`) |
136
+ | `maxPlaygroundRuns` | `20` | Max batches in the playground / `/v1/dev/evals*` history (not CLI `eval`). Hard-capped at 500. |
143
137
 
144
138
  Reporters come from `@cursor/july/evals/reporters`: `JUnit` writes a
145
139
  JUnit XML file for CI, `Artifacts` writes per-case files, and
@@ -151,7 +145,7 @@ Playground batches survive restarts whenever `agent/storage.ts` exists
151
145
  with an `evals` table or a KV core providing `delete` and `list` (the
152
146
  table is derived over the core); see
153
147
  [Storage](./storage.md#eval-and-a-b-tables). Without storage they live
154
- in process memory and disappear when `serve` exits navigating away
148
+ in process memory and disappear when `serve` exits. Navigating away
155
149
  and back still works while the process is up.
156
150
 
157
151
  ## Drive and assert with `t`
@@ -171,9 +165,9 @@ intermediate turn before the next send overwrites `t.reply`.
171
165
  depend on it.
172
166
 
173
167
  Read the full case state with `t.reply` (the last assistant text),
174
- `t.events` (every captured session event across turns), `t.turns`
175
- (settled turns, oldest first), and `t.sessionId`. `t.signal` aborts
176
- when the case hits its timeout; pass it to your own async work.
168
+ `t.events` (session events captured so far), `t.turns` (settled
169
+ turns, oldest first), and `t.sessionId`. `t.signal` aborts when the
170
+ case hits its timeout; pass it to your own async work.
177
171
 
178
172
  Assert with the gates:
179
173
 
@@ -229,10 +223,10 @@ the CLI and playground result.
229
223
 
230
224
  Three `t.send` options apply on session create (first `t.send` only):
231
225
 
232
- - `workspaceFiles` `{ path: contents }`, seeded into the local session
226
+ - `workspaceFiles`: `{ path: contents }`, seeded into the local session
233
227
  workspace. Prefer this over machine-local paths.
234
- - `workspaceDir` absolute harness cwd (local runtime).
235
- - `cloud` per-session cloud options merged over the agent's static
228
+ - `workspaceDir`: absolute harness cwd (local runtime).
229
+ - `cloud`: per-session cloud options merged over the agent's static
236
230
  `cloud` config (repos / env / …). Use a pinned `repos` override to
237
231
  attach a fixture repo for cloud evals without putting it on the
238
232
  agent's default `cloud.repos`. Cloud ignores `workspaceFiles` seeds.
@@ -294,7 +288,7 @@ match both groups.
294
288
 
295
289
  `eval` boots an ephemeral server on port 0 with a temp state root
296
290
  outside the project, so cases don't inherit ambient monorepo rules and
297
- don't pollute `.agent-serve/`. Point `--url` at a running server to eval
291
+ don't write into the project state directory. Point `--url` at a running server to eval
298
292
  a live agent instead:
299
293
 
300
294
  ```bash
@@ -348,29 +342,18 @@ failed assertion without parsing terminal text.
348
342
 
349
343
  ## Run evals in the playground
350
344
 
351
- Start the server with `--dev`, open the playground, and choose
352
- **Evals**. You can run every case or one case, watch progress, and open
353
- the resulting session trace.
345
+ Start the server, open the playground, and choose **Evals**. You can run
346
+ every case or one case, watch progress, and open the resulting session
347
+ trace. The Evals tab works on a normal `serve`.
354
348
 
355
349
  ```bash
356
- agent-sdk serve --dir . --dev
350
+ agent-sdk serve --dir .
357
351
  ```
358
352
 
359
353
  Playground runs target the live server instead of an ephemeral one.
360
354
  Their sessions appear in the session list. One eval batch can run at a
361
- time. Batches persist across restarts whenever `agent/storage.ts`
362
- provides an `evals` table or a KV core with `delete` and `list` (the
363
- table is derived over the core); without storage they are **in-memory
364
- only** (capped by `maxPlaygroundRuns`) — see
365
- [Storage](./storage.md#eval-and-a-b-tables).
366
-
367
- The UI uses the playground eval routes (available without `--dev`):
368
- `GET /v1/dev/evals` lists datapoints and config (includes `maxPlaygroundRuns` /
369
- `durableRuns`),
370
- `GET /v1/dev/evals/runs` rehydrates recent batches after navigation,
371
- `POST /v1/dev/evals/runs` starts a batch (returns an **Eval ID** / `runId`),
372
- `GET /v1/dev/evals/runs/:runId` polls it, and
373
- `POST /v1/dev/evals/runs/:runId/cancel` cancels a running batch. See
355
+ time. Persistence follows the rule under
356
+ [Configure eval runs](#configure-eval-runs). See
374
357
  [Playground eval routes](./reference/http-api.md#playground-eval-routes).
375
358
  The start request returns `202` while cases run in the background.
376
359
  Poll until the snapshot status becomes `completed`, `failed`, or `cancelled`.
@@ -389,10 +372,6 @@ agent-sdk eval cancel evalrun_… --prod --slug vulnerability-scanner
389
372
  agent-sdk eval status evalrun_… --prod --slug vulnerability-scanner
390
373
  ```
391
374
 
392
- The Evals tab prefers the server’s in-flight batch (`activeRunId`) over a
393
- stale tab-local remembered id, so CLI / Slack kicks show up without an
394
- incognito window.
395
-
396
375
  ## What good cases assert
397
376
 
398
377
  Gate decisions and shape, not prose. Model wording varies run to run.
@@ -69,7 +69,7 @@ approving the PR.
69
69
  | Server tools | [`agent/tools/`](../../examples/approval-buddy/agent/tools/) | Prepare evidence, approve, list buddies, and search GIFs. |
70
70
  | Deterministic policy | [`agent/lib/approve.ts`](../../examples/approval-buddy/agent/lib/approve.ts), [`agent/lib/buddies.ts`](../../examples/approval-buddy/agent/lib/buddies.ts) | Own the roster and live eligibility checks. |
71
71
  | Review subagents | [`agent/subagents/`](../../examples/approval-buddy/agent/subagents/) | Run deep audit and code-quality passes over the same evidence. |
72
- | Storage | [`agent/storage.ts`](../../examples/approval-buddy/agent/storage.ts) | Persist sessions and events with `cursorHostedStorage` (Bugbot `agent_serve_*`). |
72
+ | Storage | [`agent/storage.ts`](../../examples/approval-buddy/agent/storage.ts) | Persist sessions and events with `cursorHostedStorage`. See [Storage](../storage.md). |
73
73
  | Live A/B experiment | [`agent/ab.ts`](../../examples/approval-buddy/agent/ab.ts) | Compare baseline responses with a concise, presentation-only treatment (`concise-results`). |
74
74
  | Evals and unit tests | [`evals/`](../../examples/approval-buddy/evals/), [`agent/lib/`](../../examples/approval-buddy/agent/lib/) | Protect routing, output contracts, policy, and GitHub behavior. |
75
75
 
@@ -48,7 +48,7 @@ need the watched-channel path.
48
48
 
49
49
  | File | Purpose |
50
50
  | --- | --- |
51
- | [`agent/agent.ts`](../../examples/benny/agent/agent.ts) | Names the agent, selects its model, and keeps the harness under `.agent-serve/harness`. |
51
+ | [`agent/agent.ts`](../../examples/benny/agent/agent.ts) | Names the agent, selects its model, and points the harness at a project-local cwd so inherited playbooks load. |
52
52
  | [`agent/instructions.md`](../../examples/benny/agent/instructions.md) | Defines engagement rules, evidence policy, and the playbook routing map. |
53
53
  | [`agent/channels/slack.ts`](../../examples/benny/agent/channels/slack.ts) | Handles account-linked mentions and direct messages. |
54
54
  | [`agent/channels/slack-app.ts`](../../examples/benny/agent/channels/slack-app.ts) | Runs the dedicated app and watches one allowlisted channel. |
@@ -66,18 +66,9 @@ large monorepo. This prevents ancestor instruction and repository-rule files
66
66
  from leaking into an unrelated agent.
67
67
 
68
68
  The playbook router needs the opposite. Its procedures live at the repository
69
- root, so
70
- `agent.ts` sets:
71
-
72
- ```ts
73
- local: {
74
- cwd: ".agent-serve/harness",
75
- }
76
- ```
77
-
78
- Each harness workspace lands under
79
- `examples/benny/.agent-serve/harness/<sessionId>`. Walking up the directory
80
- tree reaches the host repository and its inherited playbook directory.
69
+ root, so `agent.ts` points `local.cwd` at a harness directory under the
70
+ project. Each harness workspace is a child of that directory. Walking up
71
+ reaches the host repository and its inherited playbook directory.
81
72
 
82
73
  Those playbooks are inherited context. `agent-sdk info` reports zero authored
83
74
  skills for the agent. Copying this project into another repository removes
@@ -32,9 +32,9 @@ The wiki refuses to become a merge log:
32
32
  - Every touched page gets a dated changelog entry citing the PR
33
33
  number, so each fact traces back to a merge.
34
34
 
35
- The wiki itself is markdown on the serve host, in `.agent-serve/wiki/`
36
- by default with a `CODEBASE_WIKI_DIR` override. Sessions are
37
- disposable; the wiki is the durable state.
35
+ The wiki itself is markdown on the serve host, in a wiki directory by
36
+ default with a `CODEBASE_WIKI_DIR` override. Sessions are disposable;
37
+ the wiki is the durable state.
38
38
 
39
39
  ## Follow a merged PR
40
40
 
@@ -108,11 +108,8 @@ agent-sdk github replay https://github.com/owner/repo/pull/123 \
108
108
  ```
109
109
 
110
110
  The reply is a 202 acknowledgement; the ingest continues in the task.
111
- Watch the session in the playground, then read the result on disk:
112
-
113
- ```bash
114
- ls examples/codebase-wiki/.agent-serve/wiki/features/
115
- ```
111
+ Watch the session in the playground, then open the wiki directory on
112
+ the serve host. Feature pages land under `features/`.
116
113
 
117
114
  Each ingested feature page carries an overview, a "How it works"
118
115
  section, and a changelog line citing the PR. Deterministic digest
@@ -85,7 +85,7 @@ A peer can only resolve within a multi-agent serve host. Validating Concierge
85
85
  alone checks its files, but serving it alone fails because `weather-agent`
86
86
  isn't mounted.
87
87
 
88
- From `packages/agent-serve`, validate both projects:
88
+ From this package, validate both projects:
89
89
 
90
90
  ```bash
91
91
  agent-sdk validate --dir examples/concierge
@@ -98,8 +98,7 @@ two-project mount instead. Copy only the authored files needed for this proof,
98
98
  leaving Weather's Slack channels out:
99
99
 
100
100
  ```bash
101
- mkdir -p "$PWD/.agent-serve"
102
- PAIR_DIR=$(mktemp -d "$PWD/.agent-serve/concierge-weather.XXXXXX")
101
+ PAIR_DIR=$(mktemp -d "${TMPDIR:-/tmp}/concierge-weather.XXXXXX")
103
102
  mkdir -p "$PAIR_DIR/concierge" "$PAIR_DIR/weather-agent/agent"
104
103
  cp -R examples/concierge/agent "$PAIR_DIR/concierge/"
105
104
  cp examples/concierge/package.json "$PAIR_DIR/concierge/"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: "Choose the right Agent SDK example"
3
- description: "Compare all twelve example agents by runtime, channels, tools, state, and the framework pattern each one teaches."
3
+ description: "Compare the example agents by runtime, channels, tools, state, and the framework pattern each one teaches."
4
4
  ---
5
5
 
6
6
  # Choose the right Agent SDK example
@@ -12,7 +12,7 @@ design.
12
12
 
13
13
  The source projects live under
14
14
  [`examples/`](../../examples/). Run the commands below from
15
- `packages/agent-serve`. See [Run the CLI](/#run-the-cli) if the
15
+ this package. See [Run the CLI](/#run-the-cli) if the
16
16
  `agent-sdk` command isn't installed.
17
17
 
18
18
  ## Compare the examples
@@ -26,8 +26,7 @@ The source projects live under
26
26
  | [Alert investigator](./oncall.md) | Local | Watched Slack alerts channel | Bot-post channel watching, per-thread debounce, reminder tools, and host Slack calls | Every alert gets a thread-pinned investigation that schedules its own re-checks. |
27
27
  | [PR evidence reviewer](./bugbot.md) | Local | Custom HTTP and Slack | Host tool, skill, seeded workspaces, and an eval | The model receives a prepared diff-first evidence tree instead of a checkout. |
28
28
  | [Approval Buddy](./approval-buddy.md) | Local | GitHub and Slack | Policy tools, two subagents, durable storage, and evals | Code decides whether a PR may be approved. Reviews stay informational. |
29
- | [Security Reviewer](./security-reviewer.md) | Local host pipeline | GitHub and chat | Staged tools, parallel SDK agents, progress UI, durable storage, A/B, and evals | Lives in `factory/security-reviewer/`. Reviewers and triage overlap while the playground shows every stage. |
30
- | [Remote PR coordinator](./fsd.md) | Local coordinator and remote PR sessions | HTTP, GitHub, and Slack | Remote handoff, hooks, affinity, buffering, reminders, and workflow MCP | One remote conversation follows a PR across chat, webhooks, and timed wakes. |
29
+ | [Security Reviewer](./security-reviewer.md) | Local host pipeline | GitHub and chat | Staged tools, parallel SDK agents, progress UI, durable storage, A/B, and evals | Reviewers and triage overlap while the playground shows every stage. |
31
30
  | [Knowledge base](./knowledge-base.md) | Local | Built-in HTTP chat | Durable host-side state, a conventions skill, a schedule, unit tests, and evals | People curate shared facts in chat, and fresh sessions retrieve them from markdown. |
32
31
  | [Codebase wiki](./codebase-wiki.md) | Local | GitHub and chat | Task-dispatch webhooks, seeded digests, a mapping skill, a schedule, and evals | Merged PRs accumulate into per-feature wiki pages with a daily digest. |
33
32
  | [Codeowners review](./codeowners-review.md) | Local | GitHub, chat, and fixtures | Ownership routing in code, playbook data files, parallel subagents, and evals | Each product area reviews with its own playbook, and verdicts aggregate mechanically. |
@@ -48,8 +47,8 @@ Use this order when you want to learn the Agent SDK one capability at a time:
48
47
  6. Study [PR evidence reviewer](./bugbot.md) before giving a model repository
49
48
  evidence.
50
49
  7. Move policy into code with [Approval Buddy](./approval-buddy.md).
51
- 8. Compare [Security Reviewer](./security-reviewer.md) and
52
- [Remote PR coordinator](./fsd.md) for host-side versus remote PR work.
50
+ 8. Study [Security Reviewer](./security-reviewer.md) for host-side PR
51
+ work.
53
52
  9. See parallel subagent delegation carry team judgment in
54
53
  [Codeowners review](./codeowners-review.md).
55
54
  10. Curate team context through conversation with
@@ -72,9 +71,7 @@ Several examples need more:
72
71
  - GitHub examples require access to the target repository. Codebase wiki and
73
72
  Codeowners review call the host `gh` CLI for PR data; the codeowners
74
73
  fixtures run without network.
75
- - Example agents use `cursorHostedStorage` (`agent/storage.ts`) for Cursor-hosted session storage (control-plane proxy).
76
- - Remote PR coordinator starts remote agent sessions and needs access to its
77
- workflow backend.
74
+ - Example agents use `cursorHostedStorage` in `agent/storage.ts` for hosted session storage. See [Storage](../storage.md).
78
75
 
79
76
  Each guide lists its own credentials, services, and side effects.
80
77
 
@@ -19,8 +19,8 @@ feature documentation instead.
19
19
 
20
20
  ## Keep shared knowledge on the filesystem
21
21
 
22
- The knowledge base lives outside any session workspace, in
23
- `.agent-serve/wiki/` by default. `KNOWLEDGE_BASE_DIR` overrides the location,
22
+ The knowledge base lives outside any session workspace, in a wiki
23
+ directory on the serve host by default. `KNOWLEDGE_BASE_DIR` overrides the location,
24
24
  and the tools resolve it on every call, so tests and evals can point the same
25
25
  code at a temp directory.
26
26
 
@@ -175,10 +175,10 @@ findings, accounting, and audit events.
175
175
 
176
176
  ## Separate session storage from review artifacts
177
177
 
178
- `defineStorage` + `cursorHostedStorage` sends Agent SDK session and event records
179
- to Cursor-hosted Bugbot storage through the control-plane proxy. Security
180
- Reviewer sets `restore: "off"` so startup doesn't load old review sessions in
181
- bulk. A continuation lookup can still fetch a needed session.
178
+ `cursorHostedStorage` keeps Agent SDK session and event records on
179
+ Cursor-managed hosting. Security Reviewer sets `restore: "off"` so startup
180
+ doesn't load old review sessions in bulk. A continuation lookup can still
181
+ fetch a needed session. See [Storage](../storage.md).
182
182
 
183
183
  The staged review files are separate from session storage. Session-store
184
184
  durability doesn't preserve those files. All stages for one `runId` must see
@@ -200,7 +200,7 @@ instruction overlay asking chat and playground summaries to lead with high
200
200
  and critical findings. Full artifacts, `finalResponse`, and finding counts
201
201
  still include every finding. Stage-tool counters appear in the
202
202
  playground A/B view. Local sample and snapshot files persist under
203
- `.agent-serve/`.
203
+ the project state directory.
204
204
 
205
205
  When a treatment session has only low or medium findings, the filtered review
206
206
  body currently says no vulnerabilities were found even though artifacts and
@@ -147,8 +147,8 @@ A real call writes `vm-tool-observations/<id>.json` in the agent cwd and
147
147
  returns hostname, cwd, and pid. Stream events show `probe:probe_cloud_tool`,
148
148
  not `shell`.
149
149
 
150
- A local `.agent-serve/tools/probe_cloud_tool.sh` or a marker under `probes/`
151
- means the model invented a substitute.
150
+ A local tool script or a marker under `probes/` means the model
151
+ invented a substitute.
152
152
 
153
153
  ```bash
154
154
  agent-sdk run --dir examples/weather-agent \
@@ -263,7 +263,8 @@ hash:
263
263
  - `treatment` adds a brief Celsius instruction and changes `get_weather` to
264
264
  return Celsius fields.
265
265
 
266
- Samples and aggregate snapshots persist under `.agent-serve/`. The treatment
266
+ Samples and aggregate snapshots persist under the project state
267
+ directory. The treatment
267
268
  only changes current conditions; `get_forecast` still returns Fahrenheit.
268
269
  Treat the branch as an example of `ctx.session.abs`, not a complete unit
269
270
  policy.
@@ -14,7 +14,7 @@ same. A peer MCP connection makes the wiring one line.
14
14
  This guide wires a `concierge` agent that delegates weather questions
15
15
  to a `weather-agent` peer mounted on the same host.
16
16
 
17
- ## The MCP endpoint
17
+ ## MCP endpoint
18
18
 
19
19
  Each agent serves the Model Context Protocol over streamable HTTP at
20
20
  `/<slug>/v1/mcp` (or `/v1/mcp` in single mode). The surface is stateless
@@ -64,34 +64,21 @@ mapping shifts:
64
64
  | `instructions.*` | `AGENTS.md` in the session workspace | prepended to the first prompt |
65
65
  | Server tools (`execution: "server"`) | in-process SDK custom tools | authenticated HTTP MCP back to the AgentSDK host, when `--public-url` or `--cloud-tools-url` is set |
66
66
  | Agent tools (`execution: "agent"`) | scripts in the session workspace | catalog + script bodies on the first prompt |
67
- | `skills/*` | `.cursor/skills/` in the workspace | native discovery from the Agent Store (`skills/` on hosted deployments; `agent-serve/<agent>/skills/` on the USER store for local serve/run) |
67
+ | `skills/*` | `.cursor/skills/` in the workspace | native discovery after the first turn, from the hosted store or the signed-in account |
68
68
  | `mcp-connections/*.ts` | SDK `mcpServers` | SDK `mcpServers` (peers need `--public-url`) |
69
69
  | `sandbox/workspace/**` | seeded into the session workspace | ignored |
70
70
  | Tool approvals (`needsApproval`) | supported | not supported; keep approval-gated tools on local turns |
71
71
 
72
- Authored skills copy onto an Agent Store on the first cloud turn so the
73
- VM discovers them natively. Hosted deployments write the deployment
74
- store's `skills/` directory; local `serve`/`run` with a personal API
75
- key writes `agent-serve/<agent>/skills/` on the USER store.
76
-
77
- Hosted deployments configure the server-tool MCP URL automatically
78
- (`cloudToolsUrl`, authenticated with the resolved Cursor API key). A
79
- self-hosted public server needs `--public-url` (and `--bearer-token` when the
80
- host is not behind another trusted authentication boundary) so cloud turns
81
- can reach those tools. Without either, the server warns at startup and
82
- cloud turns omit the server tools.
72
+ Authored skills are discovered natively after the first cloud turn,
73
+ using the hosted store or the signed-in account.
83
74
 
84
75
  Approvals are a local-runtime contract. On cloud, a `needsApproval` tool
85
76
  call rides one HTTP MCP request from the VM, and a parked call would
86
77
  hold that request open until it times out; there is no durable approval
87
78
  flow for cloud turns.
88
79
 
89
- Two more behaviors are cloud-specific. Sessions persist a separate SDK
90
- agent id (`bc-…`), emitted on the stream as `agent.bound` with a URL to
91
- the cloud conversation. Cloud ids are minted during the first send. And
92
- peer MCP connections resolve to `--public-url` for cloud turns, because a VM
93
- cannot reach the host's loopback; without one, peers are omitted from
94
- cloud turns and the server warns at startup.
80
+ Peer MCP connections need `--public-url` for cloud turns. Without one,
81
+ peers are omitted and the server warns at startup.
95
82
 
96
83
  ## Hybrid: local agent, cloud sessions
97
84
 
@@ -106,12 +93,8 @@ base that per-session options merge over.
106
93
 
107
94
  These come from running a PR driver against real PR traffic:
108
95
 
109
- - One cloud agent per unit of work (per PR, say). Store the `bc-…` id
110
- keyed by the work unit (an affinity store written from an
111
- `agent.bound` hook) so webhook wakes resume the same conversation
112
- instead of booting a fresh VM per event.
113
- - Stable continuation keys (`pr:owner/repo#N`) so every wake lands on
114
- the same session within a channel.
96
+ - One cloud session per unit of work, keyed with a stable continuation
97
+ token (`pr:owner/repo#N`) so every wake lands on the same conversation.
115
98
  - Keep the host deterministic: fetch briefs and metadata on the host,
116
99
  send the VM a compact prompt, and let the VM re-read source of truth
117
100
  with its own `gh` and `git` instead of trusting payload snapshots.
@@ -131,6 +114,6 @@ driving channels directly.
131
114
  Continue with these pages:
132
115
 
133
116
  - [Agent config](../reference/agent-config.md): the `runtime` and
134
- `cloud` fields precisely
117
+ `cloud` fields
135
118
  - [GitHub guide](./github.md): the webhook patterns that pair with
136
119
  cloud triage
@@ -42,9 +42,9 @@ cd nightly-triage
42
42
  ```
43
43
 
44
44
  The command fetches the Automation before writing files. A 404 means it
45
- was not found, you do not have access, or the `agent_serve_mvp` feature
46
- gate is off for your team. A 422 means it is Cursor-managed. The command
47
- writes nothing after either error.
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.
48
48
 
49
49
  The command runs `npm install` after writing the project. If the install
50
50
  fails, the files remain. Run `npm install` in the output directory
@@ -49,8 +49,9 @@ Choose `permissions` by what the agent needs:
49
49
  `contents-write` is an explicit opt-up. `progress.commitStatus` posts a
50
50
  GitHub check run (`checks:write`). Hosted `cursorAccount` mints that
51
51
  permission on `"contents-write"` tokens. Enabling `commitStatus` opts a
52
- `"pr-write"` channel up to that tier so github-proxy can post the check.
53
- `"pr-write"` without `commitStatus` is enough for comments and banners.
52
+ `"pr-write"` channel up to that tier because it needs check-write
53
+ permission. `"pr-write"` without `commitStatus` is enough for comments
54
+ and banners.
54
55
  Prefer `"pr-write"` unless the agent must push or post a merge-box check.
55
56
 
56
57
  Set `checks: true` when channel code posts its own Checks API runs through
@@ -70,10 +71,9 @@ Repeat `--repo` for each repository. The stream and credential are
70
71
  resolved as the signed-in Cursor principal. `serve` refuses to start
71
72
  signed out.
72
73
 
73
- Offset and consumer id live under `<state-root>/cursor-events/`.
74
- `CURSOR_API_BASE_URL` overrides the backend. The stream carries event
75
- metadata, not full webhook bodies, so your agent should re-read the PR
76
- or checks from GitHub instead of trusting a snapshot in the wake.
74
+ The stream carries event metadata, not full webhook bodies, so your
75
+ agent should re-read the PR or checks from GitHub instead of trusting a
76
+ snapshot in the wake.
77
77
 
78
78
  This is the preferred production path: no public URL, no repo admin
79
79
  webhook, and no inbound network for GitHub deliveries.
@@ -111,7 +111,7 @@ things:
111
111
  | `{ task }` | Host-side work. The delivery is 202-ACKed immediately and the task runs past GitHub's ~10-second timeout. No chat session. |
112
112
  | `null` | Skip this delivery. |
113
113
 
114
- `{ auth }` may also carry `workspaceFiles` the same session seed Slack
114
+ `{ auth }` may also carry `workspaceFiles`, the same session seed Slack
115
115
  and `send()` use. Pass a function to fetch after a 202 so I/O can miss
116
116
  GitHub's ~10s window.
117
117
 
@@ -198,9 +198,7 @@ These patterns come from running a PR agent against real traffic:
198
198
  - Persist the buffer in `host.kv` before you acknowledge a wake, and
199
199
  restore it on channel start. A restart must not drop buffered wakes.
200
200
  - Key sessions with a stable continuation token (`pr:owner/repo#N`) so
201
- every wake resumes the PR's conversation. Cross-channel resume needs
202
- an affinity store mapping PR → SDK agent id; write it from an
203
- `agent.bound` hook with `ctx.host.kv`.
201
+ every wake resumes the PR's conversation.
204
202
  - Keep payload details out of wake prompts. Send a generic "re-check
205
203
  the PR" and let the agent re-read source of truth instead of trusting a
206
204
  stale snapshot.
@@ -262,19 +260,9 @@ behavior. Reactions still default on; set `reactions: false` when the
262
260
  eyes emoji is noise. Descriptions are optional; defaults derive from
263
261
  `botName` or the check `context`.
264
262
 
265
- The check run posts to `channel.state.headSha`. PR and CI wakes seed and
266
- refresh it (`refreshState` on continuation). A first wake that is only an
267
- `issue_comment` has no head SHA in the payload, so the check is skipped until
268
- a PR/CI wake stores one; the banner still posts. Review-comment wakes
269
- carry `pull_request.head.sha` when GitHub includes it.
270
-
271
- The sticky comment id and latest check-run id live on durable
272
- `GitHubChannelState` (session record). Each wake also passes `refreshState`
273
- so `headSha` / refs update on continuation without wiping those ids. A later
274
- turn on the same SHA creates a new check run — GitHub cannot reopen a
275
- completed run. Persist other derived state
276
- with `ctx.host.kv` or `ctx.host.files`. `stateRoot` resets on hosted
277
- replace.
263
+ A comment-only first wake has no head SHA, so the check waits for a
264
+ PR or CI event. The banner still posts. A later turn on the same SHA
265
+ creates a new check run; GitHub cannot reopen a completed run.
278
266
 
279
267
  Override `events` when the mapping is custom. [Approval Buddy](../example-agents/approval-buddy.md)
280
268
  posts commit status from `turn.started` / `action.result` / `turn.failed`
@@ -18,8 +18,8 @@ The companion skill is
18
18
 
19
19
  - Authorize `defineConnection({ url, oauth: true })` with a browser PKCE
20
20
  flow (`agent-sdk mcp oauth <connection>`)
21
- - Keep tokens in `~/.config/agent-serve/mcp-auth.json`, bound to that
22
- connection's resource URL
21
+ - Keep tokens in `mcp-auth.json` under the CLI config directory, bound
22
+ to that connection's resource URL
23
23
  - Upsert deployment secrets with `--store` so hosted engines seed the
24
24
  same tokens from env
25
25
  - Keep privileged servers off the model with `hostOnly: true` while
@@ -97,8 +97,8 @@ What happens:
97
97
  `oauth: true`
98
98
  2. It opens the authorization URL in your browser
99
99
  3. The callback lands on `http://localhost:8787/callback`
100
- 4. Tokens land in `~/.config/agent-serve/mcp-auth.json` (override the
101
- config dir with `AGENT_SERVE_CONFIG_DIR`)
100
+ 4. Tokens land in `mcp-auth.json` under the CLI config directory
101
+ (override with `AGENT_SERVE_CONFIG_DIR`)
102
102
 
103
103
  If you're already authorized, the command prints that and exits. Re-run
104
104
  it after rotating tokens on the MCP server, or after you change the
@@ -127,7 +127,7 @@ writes `<PREFIX>_SLACK_BOT_TOKEN` and `<PREFIX>_SLACK_APP_TOKEN` into
127
127
  [below](#wire-the-env-and-verify).
128
128
 
129
129
  If Slack needs a workspace admin to approve the app, keep the CLI
130
- running. Managed install does not file the request open Slack's
130
+ running. Managed install does not file the request. Open Slack's
131
131
  **Request approval** page (the CLI prints the link; the same URL is
132
132
  **Send a reminder** after you submit). After an admin approves, click
133
133
  **Retry** in the wizard.
@@ -190,9 +190,9 @@ option.
190
190
  agent-sdk slack init --manual --dir . --name "My Agent"
191
191
  ```
192
192
 
193
- That writes `agent/channels/slack.ts`, importable manifests at
194
- `.agent-serve/slack/manifest.{dev,prod}.json`, `env.example`, and
195
- `setup-status.json`. `--no-prefix` uses shared `SLACK_*` variables on
193
+ That writes `agent/channels/slack.ts`, Slack manifests under the
194
+ project state directory, `env.example`, and `setup-status.json`.
195
+ `--no-prefix` uses shared `SLACK_*` variables on
196
196
  a single-agent host. `--prefix CUSTOM` overrides the directory-derived
197
197
  prefix. `--channel-posts` subscribes the manifests to channel-post
198
198
  events.
@@ -16,8 +16,8 @@ mechanism. This page is the mechanism itself.
16
16
  The built-in HTTP channel is always mounted (under `/<slug>` in the
17
17
  default multi-agent layout). `POST /v1/session` starts a conversation,
18
18
  `POST /v1/session/:id` follows up, and `GET /v1/session/:id/stream`
19
- streams NDJSON events, plus sessions, approvals, and tool routes. The
20
- full list is in the [HTTP API reference](../reference/http-api.md).
19
+ streams NDJSON events, plus sessions, approvals, and tool routes. See
20
+ the [HTTP API reference](../reference/http-api.md).
21
21
 
22
22
  Write a custom channel when that shape doesn't fit: a webhook with its
23
23
  own payload contract, a surface that keys sessions by a domain id, or a
@@ -451,7 +451,7 @@ Start with curl and saved payloads under `fixtures/`. The playground's
451
451
  endpoint, has Copy curl, and opens the created session on a successful
452
452
  Try. For regression coverage, drive the same behavior through an eval,
453
453
  or keep channel logic deterministic in `agent/lib/` and unit-test it
454
- there. When something looks wrong, read the session's `events.ndjson`.
454
+ there. When something looks wrong, inspect the session event stream.
455
455
  The stream is the record of what happened.
456
456
 
457
457
  For GitHub specifically, don't hand-roll fixtures.
@@ -56,7 +56,7 @@ Pin the input first. A moving fixture is noise. For GitHub agents, use `agent-sd
56
56
 
57
57
  ## How do I run one hillclimb round?
58
58
 
59
- **Measure.** Hit the agent the way a user would: playground, channel HTTP, or Slack in `--dev`. Or ask the hillclimb skill to do it. `agent-sdk run` returns a JSON trajectory and writes a trace under `.agent-serve/traces/`.
59
+ **Measure.** Hit the agent the way a user would: playground, channel HTTP, or Slack in `--dev`. Or ask the hillclimb skill to do it. `agent-sdk run` returns a JSON trajectory and writes a trace under the project state directory.
60
60
 
61
61
  **Reflect.** Score the trajectory, not impressions. Was the answer right? Did the model thrash (too many tools, fat evidence, grep loops)? Did it invent work the host should have prepared? Name the single dominant problem for this round in one sentence. Example: "Full-file dumps trigger grep loops."
62
62
 
@@ -21,7 +21,7 @@ review. Add GitHub event handling so pull requests can trigger reviews.
21
21
  - Node 22.13 or newer. Bun isn't supported.
22
22
  - Run commands as `agent-sdk <command>`, or use
23
23
  `npx @cursor/july <command>` when the CLI isn't on `PATH`. See
24
- [Run the CLI](/#run-the-cli) for monorepo checkouts and other setups.
24
+ [Run the CLI](/#run-the-cli) if `agent-sdk` is not on `PATH`.
25
25
  - A Cursor credential for model turns. Sign in once:
26
26
 
27
27
  ```bash
@@ -70,8 +70,8 @@ model: "composer-2.5",
70
70
  ## Choose a runtime
71
71
 
72
72
  `runtime: "local"` (the default) runs turns on the Cursor SDK harness on
73
- this machine. The session id doubles as the SDK agent id, and server
74
- tools, skills, sandbox seeds, and tool approvals all apply.
73
+ this machine. Server tools, skills, sandbox seeds, and tool approvals
74
+ all apply.
75
75
 
76
76
  `runtime: "cloud"` runs turns on Cursor cloud agents (`bc-…` ids). Pass
77
77
  a `cloud` block with the repos the VM carries. Server tools stay
@@ -115,8 +115,8 @@ it.
115
115
 
116
116
  Session workspaces are real Cursor project directories. The harness loads
117
117
  `AGENTS.md` and `.cursor` config from ancestor directories. An agent nested
118
- in another git repo (a monorepo package) defaults to
119
- `~/.cache/agent-serve/<dir>` when you omit `cwd`, so the enclosing checkout
118
+ in another git repo (a monorepo package) defaults to a per-project
119
+ cache directory under `~/.cache` when you omit `cwd`, so the enclosing checkout
120
120
  does not leak rules, skills, or MCP servers into the turn. A standalone git
121
121
  root keeps the in-project session workspace. Point `cwd` at a checkout only
122
122
  when the agent should inherit that tree.
@@ -138,7 +138,7 @@ export default defineAgent({
138
138
  });
139
139
  ```
140
140
 
141
- Agent Serve always adds `"mcp"` to a configured allowlist. Authored
141
+ The Agent SDK always adds `"mcp"` to a configured allowlist. Authored
142
142
  server tools in `agent/tools/` use MCP to reach the model. MCP can also
143
143
  expose declared connections and servers from the harness directory's
144
144
  ambient `.cursor` config. To exclude a checkout's MCP servers, point
@@ -159,7 +159,7 @@ Two names have broader effects:
159
159
 
160
160
  Tool allowlists work only with the local runtime. A
161
161
  `runtime: "cloud"` agent that sets `tools` fails at serve startup.
162
- Agent Serve also refuses per-send cloud sessions from a hybrid agent
162
+ The Agent SDK also refuses per-send cloud sessions from a hybrid agent
163
163
  with an allowlist. It won't run those sessions with unrestricted tool
164
164
  access.
165
165
 
@@ -167,7 +167,7 @@ The allowlist controls which tools the model can call. It does not
167
167
  isolate the serve host. For agents that process untrusted input, also
168
168
  set `local: { sandbox: true }`.
169
169
 
170
- ## The `cloud` block
170
+ ## Cloud options
171
171
 
172
172
  Cloud agent defaults forwarded to the Cursor SDK: `repos` (each
173
173
  `{ url, startingRef? }`), environment selection, `envVars`, and the
@@ -239,13 +239,8 @@ console.log(`listening on ${handle.url}`);
239
239
  // handle.createReminder(...), handle.project, await handle.close()
240
240
  ```
241
241
 
242
- `ServeOptions` mirrors the CLI flags: `port`, `host`, `dev`,
243
- `stateRoot`, `apiKey`, `schedules`, `reminders`, `noControlPlane`,
244
- `playground`, `docs`, `authToken` (the `--bearer-token` equivalent),
245
- `allowAnonymous`, `allowAnonymousCursorGithub`,
246
- `allowAnonymousCursorAccountMcp`, `cursorGithubProxy`, `publicUrl`,
247
- `cloudToolsUrl`, `cursorEvents`, and `logger`. `serve()` additionally
248
- accepts `discovery` (project-loading options) and
242
+ Host settings match the documented [CLI](./cli.md) `serve` flags.
243
+ `serve()` also accepts `discovery` (project-loading options) and
249
244
  `mode: "single" | "multi"`. The Cursor credential resolves in one order
250
245
  everywhere: explicit `apiKey`, then `CURSOR_API_KEY`, then the key
251
246
  stored by `agent-sdk login`.
@@ -258,4 +253,4 @@ Continue with these pages:
258
253
  agent
259
254
  - [Cloud runtime](../guides/cloud-runtime.md): when and how to leave
260
255
  the host
261
- - [CLI](./cli.md): the flags `ServeOptions` mirrors
256
+ - [CLI](./cli.md): the `serve` flags `serve()` accepts