@cursor/july 0.1.30 → 0.1.32

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 (403) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +10 -5
  3. package/dist/bin/agent-serve.js +4 -4
  4. package/dist/channels/github/index.d.ts +1 -1
  5. package/dist/channels/github/index.js +1 -1
  6. package/dist/channels/slack/bot-mentions.d.ts +1 -1
  7. package/dist/channels/slack/bot-mentions.d.ts.map +1 -1
  8. package/dist/channels/slack/bot-mentions.js +1 -1
  9. package/dist/channels/slack/eval-directive.js +1 -1
  10. package/dist/channels/slack/external-policy.d.ts +1 -1
  11. package/dist/channels/slack/external-policy.js +1 -1
  12. package/dist/channels/slack/log.d.ts +1 -1
  13. package/dist/channels/slack/log.js +1 -1
  14. package/dist/channels/slack/post-update-delivery.d.ts +85 -0
  15. package/dist/channels/slack/post-update-delivery.d.ts.map +1 -0
  16. package/dist/channels/slack/setup.js +1 -1
  17. package/dist/channels/slack/socket-mode.js +1 -1
  18. package/dist/docs/404.html +3 -3
  19. package/dist/docs/ab.html +11 -11
  20. package/dist/docs/assets/{ab.md.BMCZ6Hd7.js → ab.md.DAQoJ-up.js} +6 -6
  21. package/dist/docs/assets/{ab.md.BMCZ6Hd7.lean.js → ab.md.DAQoJ-up.lean.js} +1 -1
  22. package/dist/docs/assets/{app.Cm4lsMc4.js → app.C2aVczmo.js} +1 -1
  23. package/dist/docs/assets/building-with-agents.md.CnHqvYDd.js +13 -0
  24. package/dist/docs/assets/{building-with-agents.md.CJCtZCyi.lean.js → building-with-agents.md.CnHqvYDd.lean.js} +1 -1
  25. package/dist/docs/assets/chunks/@localSearchIndexroot.xgMnlUSO.js +1 -0
  26. package/dist/docs/assets/chunks/{VPLocalSearchBox.CYUFXspH.js → VPLocalSearchBox.DLEzetbD.js} +1 -1
  27. package/dist/docs/assets/chunks/{theme.CTjkX9vc.js → theme.BkOH1oMp.js} +2 -2
  28. package/dist/docs/assets/concepts.md.DFaQEFkA.js +4 -0
  29. package/dist/docs/assets/concepts.md.DFaQEFkA.lean.js +1 -0
  30. package/dist/docs/assets/deployment.md.9MYBuKM1.js +55 -0
  31. package/dist/docs/assets/deployment.md.9MYBuKM1.lean.js +1 -0
  32. package/dist/docs/assets/{evals.md.DYOjkRCX.js → evals.md.BIUoVZ6X.js} +13 -13
  33. package/dist/docs/assets/evals.md.BIUoVZ6X.lean.js +1 -0
  34. package/dist/docs/assets/{example-agents_approval-buddy.md.DFGBYLcc.js → example-agents_approval-buddy.md.BhEfleVx.js} +4 -4
  35. package/dist/docs/assets/{example-agents_approval-buddy.md.DFGBYLcc.lean.js → example-agents_approval-buddy.md.BhEfleVx.lean.js} +1 -1
  36. package/dist/docs/assets/example-agents_benny.md.2Et1qa8f.js +7 -0
  37. package/dist/docs/assets/{example-agents_bugbot.md.DelIdhxB.js → example-agents_bugbot.md.ByUexi5i.js} +5 -5
  38. package/dist/docs/assets/{example-agents_codebase-wiki.md.DC6sgwn0.js → example-agents_codebase-wiki.md.B4y-7ZVW.js} +6 -6
  39. package/dist/docs/assets/{example-agents_codebase-wiki.md.DC6sgwn0.lean.js → example-agents_codebase-wiki.md.B4y-7ZVW.lean.js} +1 -1
  40. package/dist/docs/assets/{example-agents_codeowners-review.md.Ku_tG2RY.js → example-agents_codeowners-review.md.D6ay4nvf.js} +6 -6
  41. package/dist/docs/assets/{example-agents_codeowners-review.md.Ku_tG2RY.lean.js → example-agents_codeowners-review.md.D6ay4nvf.lean.js} +1 -1
  42. package/dist/docs/assets/{example-agents_concierge.md.4rQTSMXt.js → example-agents_concierge.md.lL8rhYlj.js} +7 -7
  43. package/dist/docs/assets/{example-agents_fsd.md.CzgUrDfi.js → example-agents_fsd.md.DfNKQTHz.js} +5 -5
  44. package/dist/docs/assets/example-agents_index.md.DgGBwckv.js +2 -0
  45. package/dist/docs/assets/example-agents_index.md.DgGBwckv.lean.js +1 -0
  46. package/dist/docs/assets/{example-agents_knowledge-base.md.BPJiVueF.js → example-agents_knowledge-base.md.CzyZ2DCr.js} +5 -5
  47. package/dist/docs/assets/{example-agents_knowledge-base.md.BPJiVueF.lean.js → example-agents_knowledge-base.md.CzyZ2DCr.lean.js} +1 -1
  48. package/dist/docs/assets/example-agents_oncall.md.wFFXXEyW.js +10 -0
  49. package/dist/docs/assets/{example-agents_security-reviewer.md.Dhj_m7_B.js → example-agents_security-reviewer.md.Dkf1gyo6.js} +8 -8
  50. package/dist/docs/assets/example-agents_slack-agent.md.DvgvT4nn.js +5 -0
  51. package/dist/docs/assets/example-agents_weather-agent.md.Dmrcphhl.js +24 -0
  52. package/dist/docs/assets/example-agents_weather-agent.md.Dmrcphhl.lean.js +1 -0
  53. package/dist/docs/assets/{guides_agent-to-agent.md.Bpzgq2Pq.js → guides_agent-to-agent.md.Bmbxy-FA.js} +4 -4
  54. package/dist/docs/assets/guides_cloud-runtime.md.BZ2GA7Es.js +9 -0
  55. package/dist/docs/assets/{guides_github.md.DOOCpqsW.js → guides_github.md.R2QlpR75.js} +5 -5
  56. package/dist/docs/assets/{guides_human-in-the-loop.md.DlUqsp1S.js → guides_human-in-the-loop.md.BWvT7UqY.js} +1 -1
  57. package/dist/docs/assets/{guides_mcp-oauth.md.Dd8EgSem.js → guides_mcp-oauth.md.C7G7IykG.js} +5 -5
  58. package/dist/docs/assets/guides_mcp-oauth.md.C7G7IykG.lean.js +1 -0
  59. package/dist/docs/assets/guides_slack.md.zriQpU_9.js +47 -0
  60. package/dist/docs/assets/guides_slack.md.zriQpU_9.lean.js +1 -0
  61. package/dist/docs/assets/{guides_webhooks.md.wSOYas3X.js → guides_webhooks.md.DiAwSR42.js} +1 -1
  62. package/dist/docs/assets/{hillclimbing.md.DHNast08.js → hillclimbing.md.D9Y1_bYh.js} +1 -1
  63. package/dist/docs/assets/index.md.CZqbBJPB.js +20 -0
  64. package/dist/docs/assets/index.md.CZqbBJPB.lean.js +1 -0
  65. package/dist/docs/assets/{quickstart.md.BU6Iwi_9.js → quickstart.md.TnEXYgYW.js} +12 -12
  66. package/dist/docs/assets/{reference_agent-config.md.DrW2JUM8.js → reference_agent-config.md.kuN6-OxK.js} +1 -1
  67. package/dist/docs/assets/reference_cli.md.sD-IUWjg.js +73 -0
  68. package/dist/docs/assets/{reference_cli.md.ccoKOoXt.lean.js → reference_cli.md.sD-IUWjg.lean.js} +1 -1
  69. package/dist/docs/assets/{reference_connections.md.B9Q3TOve.js → reference_connections.md.DGqAsFXb.js} +3 -3
  70. package/dist/docs/assets/reference_http-api.md.CfVM_ICa.js +11 -0
  71. package/dist/docs/assets/{reference_project-layout.md.Bd_CKtNS.js → reference_project-layout.md.D8E6ZmHJ.js} +4 -4
  72. package/dist/docs/assets/{reference_project-layout.md.Bd_CKtNS.lean.js → reference_project-layout.md.D8E6ZmHJ.lean.js} +1 -1
  73. package/dist/docs/assets/{reference_schedules.md.w_F2mXB6.js → reference_schedules.md.gmfYzf_I.js} +1 -1
  74. package/dist/docs/assets/{reference_sessions.md.DLd6mvbv.js → reference_sessions.md.C_ouF_uf.js} +3 -3
  75. package/dist/docs/assets/{reference_tools.md.BRSDnTbN.js → reference_tools.md.BswAQM41.js} +3 -3
  76. package/dist/docs/assets/{scaffolding-agents.md.C3pTrmoE.js → scaffolding-agents.md.Bsr9Pwzu.js} +1 -1
  77. package/dist/docs/assets/{scaffolding-agents.md.C3pTrmoE.lean.js → scaffolding-agents.md.Bsr9Pwzu.lean.js} +1 -1
  78. package/dist/docs/assets/{storage.md.DRTdnFvd.js → storage.md.xZoiGM58.js} +3 -3
  79. package/dist/docs/assets/storage.md.xZoiGM58.lean.js +1 -0
  80. package/dist/docs/assets/troubleshooting.md.B5RVX_tL.js +1 -0
  81. package/dist/docs/assets/{troubleshooting.md.CmQkmnzC.lean.js → troubleshooting.md.B5RVX_tL.lean.js} +1 -1
  82. package/dist/docs/building-with-agents.html +12 -12
  83. package/dist/docs/concepts.html +6 -6
  84. package/dist/docs/deployment.html +32 -32
  85. package/dist/docs/evals.html +19 -19
  86. package/dist/docs/example-agents/approval-buddy.html +9 -9
  87. package/dist/docs/example-agents/benny.html +11 -11
  88. package/dist/docs/example-agents/bugbot.html +10 -10
  89. package/dist/docs/example-agents/codebase-wiki.html +11 -11
  90. package/dist/docs/example-agents/codeowners-review.html +11 -11
  91. package/dist/docs/example-agents/concierge.html +12 -12
  92. package/dist/docs/example-agents/fsd.html +10 -10
  93. package/dist/docs/example-agents/index.html +7 -7
  94. package/dist/docs/example-agents/knowledge-base.html +10 -10
  95. package/dist/docs/example-agents/oncall.html +10 -10
  96. package/dist/docs/example-agents/security-reviewer.html +13 -13
  97. package/dist/docs/example-agents/slack-agent.html +10 -10
  98. package/dist/docs/example-agents/weather-agent.html +16 -16
  99. package/dist/docs/guides/agent-to-agent.html +9 -9
  100. package/dist/docs/guides/cloud-runtime.html +7 -7
  101. package/dist/docs/guides/github.html +10 -10
  102. package/dist/docs/guides/human-in-the-loop.html +7 -7
  103. package/dist/docs/guides/mcp-oauth.html +11 -11
  104. package/dist/docs/guides/slack.html +22 -17
  105. package/dist/docs/guides/webhooks.html +7 -7
  106. package/dist/docs/hashmap.json +1 -1
  107. package/dist/docs/hillclimbing.html +7 -7
  108. package/dist/docs/index.html +9 -9
  109. package/dist/docs/quickstart.html +17 -17
  110. package/dist/docs/reference/agent-config.html +7 -7
  111. package/dist/docs/reference/channels.html +5 -5
  112. package/dist/docs/reference/cli.html +56 -48
  113. package/dist/docs/reference/connections.html +9 -9
  114. package/dist/docs/reference/hooks.html +5 -5
  115. package/dist/docs/reference/http-api.html +7 -7
  116. package/dist/docs/reference/instructions.html +5 -5
  117. package/dist/docs/reference/playground.html +5 -5
  118. package/dist/docs/reference/project-layout.html +9 -9
  119. package/dist/docs/reference/prompt.html +5 -5
  120. package/dist/docs/reference/schedules.html +7 -7
  121. package/dist/docs/reference/sessions.html +8 -8
  122. package/dist/docs/reference/skills.html +5 -5
  123. package/dist/docs/reference/subagents.html +5 -5
  124. package/dist/docs/reference/tools.html +9 -9
  125. package/dist/docs/scaffolding-agents.html +6 -6
  126. package/dist/docs/storage.html +9 -9
  127. package/dist/docs/troubleshooting.html +6 -6
  128. package/dist/evals/reporters.d.ts +1 -1
  129. package/dist/evals/reporters.js +1 -1
  130. package/dist/evals.d.ts +2 -2
  131. package/dist/files-backends/agent-store-presigned-url.d.ts +3 -0
  132. package/dist/files-backends/agent-store-presigned-url.d.ts.map +1 -0
  133. package/dist/files-backends/agent-store-presigned-url.js +1023 -0
  134. package/dist/files-backends/cursor-hosted.d.ts +87 -0
  135. package/dist/files-backends/cursor-hosted.d.ts.map +1 -0
  136. package/dist/files-backends/cursor-hosted.js +563 -0
  137. package/dist/files-backends/local-fs.d.ts +33 -0
  138. package/dist/files-backends/local-fs.d.ts.map +1 -0
  139. package/dist/files-backends/local-fs.js +199 -0
  140. package/dist/files.d.ts +139 -0
  141. package/dist/files.d.ts.map +1 -0
  142. package/dist/files.js +89 -0
  143. package/dist/internal/ab-collector.js +2 -2
  144. package/dist/internal/ab-fold.js +1 -1
  145. package/dist/internal/cli-ax.d.ts +2 -2
  146. package/dist/internal/cli-ax.js +2 -2
  147. package/dist/internal/cli-deploy.d.ts +1 -1
  148. package/dist/internal/cli-deploy.d.ts.map +1 -1
  149. package/dist/internal/cli-deploy.js +7 -2
  150. package/dist/internal/cli-docs.d.ts +1 -1
  151. package/dist/internal/cli-docs.js +1 -1
  152. package/dist/internal/cli-github.js +13 -13
  153. package/dist/internal/cli-mcp-oauth.d.ts +1 -1
  154. package/dist/internal/cli-mcp-oauth.js +2 -2
  155. package/dist/internal/cli-mcp.d.ts +3 -3
  156. package/dist/internal/cli-mcp.js +4 -4
  157. package/dist/internal/cli-skills.js +1 -1
  158. package/dist/internal/cloud-turn-cost.d.ts +9 -1
  159. package/dist/internal/cloud-turn-cost.d.ts.map +1 -1
  160. package/dist/internal/cloud-turn-cost.js +14 -4
  161. package/dist/internal/cursor/account-mcp.js +5 -5
  162. package/dist/internal/cursor/backend-client.js +1 -1
  163. package/dist/internal/cursor/github-credentials.js +3 -3
  164. package/dist/internal/cursor-account-mcp-auth.d.ts +1 -1
  165. package/dist/internal/cursor-account-mcp-auth.js +1 -1
  166. package/dist/internal/cursor-event-relay.js +1 -1
  167. package/dist/internal/cursor-relay-core.d.ts +1 -1
  168. package/dist/internal/cursor-relay-core.d.ts.map +1 -1
  169. package/dist/internal/cursor-slack-relay.js +1 -1
  170. package/dist/internal/deploy-client.d.ts +6 -1
  171. package/dist/internal/deploy-client.d.ts.map +1 -1
  172. package/dist/internal/deploy-client.js +3 -2
  173. package/dist/internal/deploy-source.d.ts +2 -2
  174. package/dist/internal/deploy-source.js +2 -2
  175. package/dist/internal/discovery.js +2 -2
  176. package/dist/internal/distribution.d.ts +5 -5
  177. package/dist/internal/distribution.d.ts.map +1 -1
  178. package/dist/internal/distribution.js +6 -6
  179. package/dist/internal/docs-site.js +5 -5
  180. package/dist/internal/eval-run-store.js +8 -8
  181. package/dist/internal/evals-client.d.ts +1 -1
  182. package/dist/internal/evals-client.js +1 -1
  183. package/dist/internal/github-fanout.js +2 -2
  184. package/dist/internal/host-files.d.ts +29 -0
  185. package/dist/internal/host-files.d.ts.map +1 -0
  186. package/dist/internal/host-files.js +283 -0
  187. package/dist/internal/host-platforms.js +5 -5
  188. package/dist/internal/hosting.d.ts +1 -1
  189. package/dist/internal/hosting.js +1 -1
  190. package/dist/internal/http-channel.d.ts.map +1 -1
  191. package/dist/internal/http-channel.js +26 -0
  192. package/dist/internal/install-cursor-skills.d.ts +1 -1
  193. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  194. package/dist/internal/install-cursor-skills.js +33 -4
  195. package/dist/internal/json-dir-store.d.ts +32 -0
  196. package/dist/internal/json-dir-store.d.ts.map +1 -0
  197. package/dist/internal/local-control-plane.js +2 -2
  198. package/dist/internal/logs-client.d.ts +2 -2
  199. package/dist/internal/logs-client.js +2 -2
  200. package/dist/internal/mcp-endpoint.js +1 -1
  201. package/dist/internal/mcp-oauth.js +2 -2
  202. package/dist/internal/persistence-coordinator.d.ts +127 -0
  203. package/dist/internal/persistence-coordinator.d.ts.map +1 -0
  204. package/dist/internal/platform-schedule-sync.js +2 -2
  205. package/dist/internal/playground/toolchain.js +6 -6
  206. package/dist/internal/reminder-runner.js +13 -13
  207. package/dist/internal/resolved-connections.js +6 -6
  208. package/dist/internal/schedule-runner.js +1 -1
  209. package/dist/internal/sdk-runner.js +5 -5
  210. package/dist/internal/server.js +16 -16
  211. package/dist/internal/session-cost.d.ts +3 -2
  212. package/dist/internal/session-cost.d.ts.map +1 -1
  213. package/dist/internal/session-cost.js +7 -6
  214. package/dist/internal/session-engine.d.ts +31 -1
  215. package/dist/internal/session-engine.d.ts.map +1 -1
  216. package/dist/internal/session-engine.js +119 -31
  217. package/dist/internal/slack-provision-client.js +1 -1
  218. package/dist/internal/storage-coordinator.js +7 -7
  219. package/dist/internal/trajectory.js +2 -2
  220. package/dist/internal/turn-cost.d.ts +27 -0
  221. package/dist/internal/turn-cost.d.ts.map +1 -0
  222. package/dist/internal/turn-cost.js +83 -0
  223. package/dist/internal/update-check.d.ts +3 -3
  224. package/dist/internal/update-check.d.ts.map +1 -1
  225. package/dist/internal/update-check.js +5 -5
  226. package/dist/memory.d.ts +1 -1
  227. package/dist/memory.js +1 -1
  228. package/dist/multi-tenant.d.ts +80 -0
  229. package/dist/multi-tenant.d.ts.map +1 -0
  230. package/dist/multi-tenant.js +69 -0
  231. package/dist/persistence.d.ts +184 -0
  232. package/dist/persistence.d.ts.map +1 -0
  233. package/dist/playground/assets/index-50PKeJlG.css +1 -0
  234. package/dist/playground/assets/index-C0f2Wl1q.js +85 -0
  235. package/dist/playground/index.html +2 -2
  236. package/dist/storage.d.ts +1 -1
  237. package/dist/storage.js +1 -1
  238. package/dist/types.d.ts +120 -16
  239. package/dist/types.d.ts.map +1 -1
  240. package/docs/README.md +23 -23
  241. package/docs/ab.md +12 -12
  242. package/docs/building-with-agents.md +9 -9
  243. package/docs/concepts.md +11 -11
  244. package/docs/deployment.md +55 -43
  245. package/docs/evals.md +20 -20
  246. package/docs/example-agents/approval-buddy.md +9 -9
  247. package/docs/example-agents/benny.md +13 -13
  248. package/docs/example-agents/bugbot.md +6 -6
  249. package/docs/example-agents/codebase-wiki.md +8 -8
  250. package/docs/example-agents/codeowners-review.md +8 -8
  251. package/docs/example-agents/concierge.md +10 -10
  252. package/docs/example-agents/fsd.md +7 -7
  253. package/docs/example-agents/index.md +8 -8
  254. package/docs/example-agents/knowledge-base.md +9 -9
  255. package/docs/example-agents/oncall.md +7 -7
  256. package/docs/example-agents/security-reviewer.md +12 -12
  257. package/docs/example-agents/slack-agent.md +10 -10
  258. package/docs/example-agents/weather-agent.md +30 -26
  259. package/docs/guides/agent-to-agent.md +4 -4
  260. package/docs/guides/cloud-runtime.md +3 -3
  261. package/docs/guides/github.md +6 -6
  262. package/docs/guides/human-in-the-loop.md +1 -1
  263. package/docs/guides/mcp-oauth.md +9 -9
  264. package/docs/guides/slack.md +94 -21
  265. package/docs/guides/webhooks.md +1 -1
  266. package/docs/hillclimbing.md +3 -3
  267. package/docs/quickstart.md +18 -18
  268. package/docs/reference/agent-config.md +1 -1
  269. package/docs/reference/cli.md +110 -79
  270. package/docs/reference/connections.md +3 -3
  271. package/docs/reference/http-api.md +2 -2
  272. package/docs/reference/project-layout.md +7 -7
  273. package/docs/reference/schedules.md +1 -1
  274. package/docs/reference/sessions.md +7 -7
  275. package/docs/reference/tools.md +3 -3
  276. package/docs/scaffolding-agents.md +2 -2
  277. package/docs/storage.md +5 -5
  278. package/docs/troubleshooting.md +11 -10
  279. package/package.json +5 -2
  280. package/skills/ab/SKILL.md +5 -5
  281. package/skills/create-agent/SKILL.md +17 -17
  282. package/skills/debug/SKILL.md +10 -10
  283. package/skills/evals/SKILL.md +13 -13
  284. package/skills/framework-map/SKILL.md +3 -3
  285. package/skills/github/SKILL.md +11 -11
  286. package/skills/hillclimb/SKILL.md +9 -9
  287. package/skills/mcp-auth/SKILL.md +11 -11
  288. package/skills/setup-slack/SKILL.md +28 -28
  289. package/src/bin/agent-serve.ts +4 -4
  290. package/src/channels/github/index.ts +1 -1
  291. package/src/channels/slack/bot-mentions.ts +1 -1
  292. package/src/channels/slack/eval-directive.ts +1 -1
  293. package/src/channels/slack/external-policy.ts +1 -1
  294. package/src/channels/slack/log.ts +1 -1
  295. package/src/channels/slack/setup.ts +1 -1
  296. package/src/channels/slack/socket-mode.ts +1 -1
  297. package/src/evals/reporters.ts +1 -1
  298. package/src/evals.ts +2 -2
  299. package/src/files-backends/agent-store-presigned-url.ts +8 -0
  300. package/src/files-backends/cursor-hosted.ts +724 -0
  301. package/src/files-backends/local-fs.ts +178 -0
  302. package/src/files.ts +195 -0
  303. package/src/internal/ab-collector.ts +2 -2
  304. package/src/internal/ab-fold.ts +1 -1
  305. package/src/internal/cli-ax.ts +2 -2
  306. package/src/internal/cli-deploy.ts +7 -2
  307. package/src/internal/cli-docs.ts +1 -1
  308. package/src/internal/cli-github.ts +13 -13
  309. package/src/internal/cli-mcp-oauth.ts +2 -2
  310. package/src/internal/cli-mcp.ts +4 -4
  311. package/src/internal/cli-skills.ts +1 -1
  312. package/src/internal/cloud-turn-cost.ts +20 -4
  313. package/src/internal/cursor/account-mcp.ts +5 -5
  314. package/src/internal/cursor/backend-client.ts +1 -1
  315. package/src/internal/cursor/github-credentials.ts +3 -3
  316. package/src/internal/cursor-account-mcp-auth.ts +1 -1
  317. package/src/internal/cursor-event-relay.ts +1 -1
  318. package/src/internal/cursor-relay-core.ts +1 -1
  319. package/src/internal/cursor-slack-relay.ts +1 -1
  320. package/src/internal/deploy-client.ts +8 -2
  321. package/src/internal/deploy-source.ts +2 -2
  322. package/src/internal/discovery.ts +2 -2
  323. package/src/internal/distribution.ts +6 -6
  324. package/src/internal/docs-site.ts +5 -5
  325. package/src/internal/eval-run-store.ts +8 -8
  326. package/src/internal/evals-client.ts +1 -1
  327. package/src/internal/github-fanout.ts +2 -2
  328. package/src/internal/host-files.ts +372 -0
  329. package/src/internal/host-platforms.ts +5 -5
  330. package/src/internal/hosting.ts +1 -1
  331. package/src/internal/http-channel.ts +30 -0
  332. package/src/internal/install-cursor-skills.ts +31 -3
  333. package/src/internal/local-control-plane.ts +2 -2
  334. package/src/internal/logs-client.ts +2 -2
  335. package/src/internal/mcp-endpoint.ts +1 -1
  336. package/src/internal/mcp-oauth.ts +2 -2
  337. package/src/internal/platform-schedule-sync.ts +2 -2
  338. package/src/internal/playground/toolchain.ts +6 -6
  339. package/src/internal/reminder-runner.ts +13 -13
  340. package/src/internal/resolved-connections.ts +6 -6
  341. package/src/internal/schedule-runner.ts +1 -1
  342. package/src/internal/sdk-runner.ts +5 -5
  343. package/src/internal/server.ts +16 -16
  344. package/src/internal/session-cost.ts +7 -6
  345. package/src/internal/session-engine.ts +141 -28
  346. package/src/internal/slack-provision-client.ts +1 -1
  347. package/src/internal/storage-coordinator.ts +7 -7
  348. package/src/internal/trajectory.ts +2 -2
  349. package/src/internal/turn-cost.ts +110 -0
  350. package/src/internal/update-check.ts +6 -6
  351. package/src/memory.ts +1 -1
  352. package/src/storage.ts +1 -1
  353. package/src/types.ts +148 -16
  354. package/dist/docs/assets/building-with-agents.md.CJCtZCyi.js +0 -13
  355. package/dist/docs/assets/chunks/@localSearchIndexroot.CbQshWFK.js +0 -1
  356. package/dist/docs/assets/concepts.md.Cfb9b-k1.js +0 -4
  357. package/dist/docs/assets/concepts.md.Cfb9b-k1.lean.js +0 -1
  358. package/dist/docs/assets/deployment.md.TecHo0_2.js +0 -55
  359. package/dist/docs/assets/deployment.md.TecHo0_2.lean.js +0 -1
  360. package/dist/docs/assets/evals.md.DYOjkRCX.lean.js +0 -1
  361. package/dist/docs/assets/example-agents_benny.md.B0gjhI-p.js +0 -7
  362. package/dist/docs/assets/example-agents_index.md.D2PEVSXl.js +0 -2
  363. package/dist/docs/assets/example-agents_index.md.D2PEVSXl.lean.js +0 -1
  364. package/dist/docs/assets/example-agents_oncall.md.BG_sUMly.js +0 -10
  365. package/dist/docs/assets/example-agents_slack-agent.md.buLbgvBf.js +0 -5
  366. package/dist/docs/assets/example-agents_weather-agent.md.C9Qv-W0o.js +0 -24
  367. package/dist/docs/assets/example-agents_weather-agent.md.C9Qv-W0o.lean.js +0 -1
  368. package/dist/docs/assets/guides_cloud-runtime.md.gVzabdQL.js +0 -9
  369. package/dist/docs/assets/guides_mcp-oauth.md.Dd8EgSem.lean.js +0 -1
  370. package/dist/docs/assets/guides_slack.md.CjmJSvZS.js +0 -42
  371. package/dist/docs/assets/guides_slack.md.CjmJSvZS.lean.js +0 -1
  372. package/dist/docs/assets/index.md.CH_s5uZe.js +0 -20
  373. package/dist/docs/assets/index.md.CH_s5uZe.lean.js +0 -1
  374. package/dist/docs/assets/reference_cli.md.ccoKOoXt.js +0 -65
  375. package/dist/docs/assets/reference_http-api.md.BncLd3PZ.js +0 -11
  376. package/dist/docs/assets/storage.md.DRTdnFvd.lean.js +0 -1
  377. package/dist/docs/assets/troubleshooting.md.CmQkmnzC.js +0 -1
  378. package/dist/internal/model-pricing.d.ts +0 -49
  379. package/dist/internal/model-pricing.d.ts.map +0 -1
  380. package/dist/internal/model-pricing.js +0 -377
  381. package/dist/playground/assets/index-CquRB-l0.js +0 -85
  382. package/dist/playground/assets/index-Dj0bWpkn.css +0 -1
  383. package/src/internal/model-pricing.ts +0 -426
  384. /package/dist/docs/assets/{example-agents_benny.md.B0gjhI-p.lean.js → example-agents_benny.md.2Et1qa8f.lean.js} +0 -0
  385. /package/dist/docs/assets/{example-agents_bugbot.md.DelIdhxB.lean.js → example-agents_bugbot.md.ByUexi5i.lean.js} +0 -0
  386. /package/dist/docs/assets/{example-agents_concierge.md.4rQTSMXt.lean.js → example-agents_concierge.md.lL8rhYlj.lean.js} +0 -0
  387. /package/dist/docs/assets/{example-agents_fsd.md.CzgUrDfi.lean.js → example-agents_fsd.md.DfNKQTHz.lean.js} +0 -0
  388. /package/dist/docs/assets/{example-agents_oncall.md.BG_sUMly.lean.js → example-agents_oncall.md.wFFXXEyW.lean.js} +0 -0
  389. /package/dist/docs/assets/{example-agents_security-reviewer.md.Dhj_m7_B.lean.js → example-agents_security-reviewer.md.Dkf1gyo6.lean.js} +0 -0
  390. /package/dist/docs/assets/{example-agents_slack-agent.md.buLbgvBf.lean.js → example-agents_slack-agent.md.DvgvT4nn.lean.js} +0 -0
  391. /package/dist/docs/assets/{guides_agent-to-agent.md.Bpzgq2Pq.lean.js → guides_agent-to-agent.md.Bmbxy-FA.lean.js} +0 -0
  392. /package/dist/docs/assets/{guides_cloud-runtime.md.gVzabdQL.lean.js → guides_cloud-runtime.md.BZ2GA7Es.lean.js} +0 -0
  393. /package/dist/docs/assets/{guides_github.md.DOOCpqsW.lean.js → guides_github.md.R2QlpR75.lean.js} +0 -0
  394. /package/dist/docs/assets/{guides_human-in-the-loop.md.DlUqsp1S.lean.js → guides_human-in-the-loop.md.BWvT7UqY.lean.js} +0 -0
  395. /package/dist/docs/assets/{guides_webhooks.md.wSOYas3X.lean.js → guides_webhooks.md.DiAwSR42.lean.js} +0 -0
  396. /package/dist/docs/assets/{hillclimbing.md.DHNast08.lean.js → hillclimbing.md.D9Y1_bYh.lean.js} +0 -0
  397. /package/dist/docs/assets/{quickstart.md.BU6Iwi_9.lean.js → quickstart.md.TnEXYgYW.lean.js} +0 -0
  398. /package/dist/docs/assets/{reference_agent-config.md.DrW2JUM8.lean.js → reference_agent-config.md.kuN6-OxK.lean.js} +0 -0
  399. /package/dist/docs/assets/{reference_connections.md.B9Q3TOve.lean.js → reference_connections.md.DGqAsFXb.lean.js} +0 -0
  400. /package/dist/docs/assets/{reference_http-api.md.BncLd3PZ.lean.js → reference_http-api.md.CfVM_ICa.lean.js} +0 -0
  401. /package/dist/docs/assets/{reference_schedules.md.w_F2mXB6.lean.js → reference_schedules.md.gmfYzf_I.lean.js} +0 -0
  402. /package/dist/docs/assets/{reference_sessions.md.DLd6mvbv.lean.js → reference_sessions.md.C_ouF_uf.lean.js} +0 -0
  403. /package/dist/docs/assets/{reference_tools.md.BRSDnTbN.lean.js → reference_tools.md.BswAQM41.lean.js} +0 -0
@@ -111,13 +111,13 @@ state resumes from the Cursor SDK store.
111
111
 
112
112
  ## What goes into a local session workspace?
113
113
 
114
- agentkit creates a workspace before the first local turn:
114
+ The Agent SDK creates a workspace before the first local turn:
115
115
 
116
116
  | Source path | Lands as |
117
117
  | ---------------------------------- | ----------------------------------------------------------------------- |
118
118
  | `instructions.*` | `AGENTS.md` |
119
119
  | `skills/*` | `.cursor/skills/<name>/SKILL.md` |
120
- | agent tools (`execution: "agent"`) | scripts under `.agentkit/tools/`, with a catalog in `AGENTS.md` |
120
+ | agent tools (`execution: "agent"`) | scripts under `.agent-sdk/tools/`, with a catalog in `AGENTS.md` |
121
121
  | `sandbox/workspace/**` | copied in as seed files |
122
122
  | per-send `workspaceFiles` | written before the turn |
123
123
 
@@ -130,12 +130,12 @@ worktree.
130
130
  See [Agent config: local cwd](./agent-config.md#local-cwd) for the
131
131
  inheritance rules.
132
132
 
133
- ## Where does agentkit store session data?
133
+ ## Where does the Agent SDK store session data?
134
134
 
135
135
  Local state uses one directory tree:
136
136
 
137
137
  ```text
138
- <project>/.agentkit/ # or <stateRoot>/<slug>/ under serve
138
+ <project>/.agent-sdk/ # or <stateRoot>/<slug>/ under serve
139
139
  sessions/<id>/session.json # metadata: channel, mode, principal, tokens
140
140
  sessions/<id>/events.ndjson # the durable stream
141
141
  sessions/<id>/workspace/ # the harness cwd
@@ -158,8 +158,8 @@ repositories whose parent rules shouldn't reach the agent. See
158
158
  Use `trajectory` with a trace or session event file:
159
159
 
160
160
  ```bash
161
- agentkit trajectory --events .agentkit/traces/<sessionId>.ndjson
162
- agentkit trajectory --events <stateRoot>/<slug>/sessions/<id>/events.ndjson
161
+ agent-sdk trajectory --events .agent-sdk/traces/<sessionId>.ndjson
162
+ agent-sdk trajectory --events <stateRoot>/<slug>/sessions/<id>/events.ndjson
163
163
  ```
164
164
 
165
165
  The command prints tool calls, the reply, and token usage in the same
@@ -171,4 +171,4 @@ view.
171
171
  - [HTTP API](./http-api.md)
172
172
  - [Hooks](./hooks.md)
173
173
  - [Live A/B metrics](../ab.md)
174
- - [How agentkit works](../concepts.md)
174
+ - [How the Agent SDK works](../concepts.md)
@@ -108,7 +108,7 @@ printf '%s\\n' "$message"
108
108
  });
109
109
  ```
110
110
 
111
- On the local runtime, scripts land under `.agentkit/tools/` in the
111
+ On the local runtime, scripts land under `.agent-sdk/tools/` in the
112
112
  session workspace with a catalog in `AGENTS.md`. On cloud, the catalog
113
113
  and script bodies travel on the first prompt.
114
114
 
@@ -159,9 +159,9 @@ From the CLI, which starts an ephemeral server unless `--url` targets
159
159
  a running one:
160
160
 
161
161
  ```bash
162
- agentkit call inspect_pr --dir . \
162
+ agent-sdk call inspect_pr --dir . \
163
163
  --input '{"prUrl":"https://github.com/acme/checkout/pull/42"}'
164
- agentkit call inspect_pr \
164
+ agent-sdk call inspect_pr \
165
165
  --url http://127.0.0.1:3000/<slug> \
166
166
  --input '{"prUrl":"https://github.com/acme/checkout/pull/42"}'
167
167
  ```
@@ -84,7 +84,7 @@ folder.
84
84
 
85
85
  Cursor checks the project in this order:
86
86
 
87
- 1. Run `agentkit validate` and fix every error
87
+ 1. Run `agent-sdk validate` and fix every error
88
88
  2. Inspect the discovered surface with `info --json`
89
89
  3. Call each server tool directly with validated sample input
90
90
  4. Run one end-to-end model turn
@@ -93,7 +93,7 @@ Cursor checks the project in this order:
93
93
 
94
94
  Validation, discovery, direct server-tool calls, and server startup work
95
95
  without a Cursor credential. Model turns and evals need
96
- `CURSOR_API_KEY` or a saved `agentkit login`.
96
+ `CURSOR_API_KEY` or a saved `agent-sdk login`.
97
97
 
98
98
  ## What happens after the first agent works?
99
99
 
package/docs/storage.md CHANGED
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  title: "Storage"
3
- description: "Point agentkit's durable storage at a backend you own with defineStorage."
3
+ description: "Point the Agent SDK's durable storage at a backend you own with defineStorage."
4
4
  ---
5
5
 
6
6
  # Storage
7
7
 
8
- agentkit owns durable storage for sessions, continuation tokens,
8
+ The Agent SDK owns durable storage for sessions, continuation tokens,
9
9
  reminders, playground eval history, and live A/B samples. It chooses the
10
10
  keys (under `agentkit/v1/`), when to read and write, and how to restore
11
11
  after restart.
@@ -22,7 +22,7 @@ for one machine; it does not survive replacing the host.
22
22
 
23
23
  To keep the same framework storage across hosts, plug in a key-value
24
24
  backend with `agent/storage.ts`. You provide `put` / `get` / `delete` /
25
- `list`. agentkit does the rest.
25
+ `list`. The Agent SDK does the rest.
26
26
 
27
27
  ```ts
28
28
  // agent/storage.ts
@@ -86,7 +86,7 @@ follow-up arrives instead of at startup.
86
86
 
87
87
  With `get` and `list`, serve can rebuild local state from your store:
88
88
 
89
- - At startup, agentkit loads recent sessions up to the restore caps.
89
+ - At startup, the Agent SDK loads recent sessions up to the restore caps.
90
90
  Local disk wins when both sides have the same session. Reminders
91
91
  hydrate the same way into `--state-root/reminders`.
92
92
  - On demand, a missing continuation token resolves through the store
@@ -107,7 +107,7 @@ await ctx.host.kv.put("alert-memory/abc", { updated: "…" });
107
107
  const prior = await ctx.host.kv.get("alert-memory/abc");
108
108
  ```
109
109
 
110
- agentkit prefixes author keys as `agentkit/v1/{agent}/kv/{key}` (same
110
+ The Agent SDK prefixes author keys as `agentkit/v1/{agent}/kv/{key}` (same
111
111
  bounded encoding as continuation tokens). Writes **await** the sink and
112
112
  propagate errors — unlike session mirrors, which are at-most-once.
113
113
 
@@ -7,19 +7,19 @@ description: "Match what you see to a cause, then read a session trace when you
7
7
 
8
8
  Start with four checks, in order:
9
9
 
10
- 1. Project discovery: `agentkit validate --dir .`
10
+ 1. Project discovery: `agent-sdk validate --dir .`
11
11
  2. Whether the serve process is running
12
12
  3. What the playground or HTTP API shows
13
13
  4. The session event stream (trace)
14
14
 
15
- Match your symptom below. Keep the commands as `agentkit`; see
15
+ Match your symptom below. Keep the commands as `agent-sdk`; see
16
16
  [Run the CLI](./README.md#run-the-cli) if you still need an alias.
17
17
 
18
18
  ## What if serve or the playground looks wrong?
19
19
 
20
20
  | What you see | What to do |
21
21
  | --- | --- |
22
- | `serve` won't start | Run `agentkit validate --dir .` and fix the reported errors. |
22
+ | `serve` won't start | Run `agent-sdk validate --dir .` and fix the reported errors. |
23
23
  | Playground is blank or says there are no agents | The UI needs a running `serve` process. Building the playground assets alone is not enough. |
24
24
  | Edits to the playground don't show up | Use `serve --dev` and open the printed playground HMR URL (often port `5273`), not only the static `:3000` URL. |
25
25
  | Sessions exist on disk but the playground list is empty | The list shows sessions for the authenticated caller. In `--dev` on loopback the list is wider. Otherwise open `/<slug>/playground?sessionId=ses_…` or inspect `sessions/` under your state root. |
@@ -30,7 +30,7 @@ Match your symptom below. Keep the commands as `agentkit`; see
30
30
  | What you see | What to do |
31
31
  | --- | --- |
32
32
  | Built-in file reads and greps fail; the turn retries for a long time | Run under Node 22.13+ (or `tsx`), never Bun. Look for `NGHTTP2_FRAME_SIZE_ERROR` in logs. |
33
- | The turn fails immediately with an API-key error | Sign in with `agentkit login`, or set `CURSOR_API_KEY`. Discovery, `info`, `call`, and serve bring-up work without a key; model turns need one. |
33
+ | The turn fails immediately with an API-key error | Sign in with `agent-sdk login`, or set `CURSOR_API_KEY`. Discovery, `info`, `call`, and serve bring-up work without a key; model turns need one. |
34
34
  | Replies quote rules or `AGENTS.md` from outside your agent project | The session workspace inherited parent-folder config. Point `defineAgent({ local: { cwd } })` outside that tree, or set `--state-root` to a clean directory (for example under `/tmp`). |
35
35
  | Server tools, skills, or workspace seed files never appear | The agent runtime is `cloud`. Those features apply on the local runtime. `validate` warns when this combination is present. |
36
36
  | `validate` and `run` succeed, but typecheck fails in CI | The CLI runs TypeScript with type-stripping only. Keep tool `execute` return types as object literals or `type` aliases, not `interface` types. |
@@ -50,16 +50,17 @@ Match your symptom below. Keep the commands as `agentkit`; see
50
50
 
51
51
  | What you see | What to do |
52
52
  | --- | --- |
53
- | `github forward` returns 401 on every delivery, but the hook was created | Clear `GITHUB_TOKEN` and `GH_TOKEN` for that command. The forwarder uses your `gh` CLI login: `GITHUB_TOKEN= GH_TOKEN= agentkit github forward …` |
53
+ | `github forward` returns 401 on every delivery, but the hook was created | Clear `GITHUB_TOKEN` and `GH_TOKEN` for that command. The forwarder uses your `gh` CLI login: `GITHUB_TOKEN= GH_TOKEN= agent-sdk github forward …` |
54
54
  | `Hook already exists` when starting a forwarder | GitHub allows one forwarder per repo. Run a single `github forward --dir <parent>` and stop stale forwarders. |
55
55
  | Deliveries rejected outside `--dev` | Set `GITHUB_WEBHOOK_SECRET` on the server and on the signer. Without a secret, the channel stays loopback-only. |
56
- | You lack repo admin and can't forward | Use `agentkit github replay <pr-url>`. It needs pull access only and posts signed test payloads. |
56
+ | You lack repo admin and can't forward | Use `agent-sdk github replay <pr-url>`. It needs pull access only and posts signed test payloads. |
57
57
 
58
58
  ## What if Slack stays quiet?
59
59
 
60
60
  | What you see | What to do |
61
61
  | --- | --- |
62
- | Logs show `channel idle … missing credentials` | Expected when tokens are missing. Set `<PREFIX>_SLACK_BOT_TOKEN` and `<PREFIX>_SLACK_APP_TOKEN` per agent, then run `agentkit slack doctor --prefix <PREFIX>`. |
62
+ | Logs show `channel idle … missing credentials` | Expected when tokens are missing. Run `agent-sdk slack create --dir <agent>` to provision the app and write the tokens, or set `<PREFIX>_SLACK_BOT_TOKEN` and `<PREFIX>_SLACK_APP_TOKEN` per agent yourself, then run `agent-sdk slack doctor --prefix <PREFIX>`. |
63
+ | `slack create` reports the app needs admin approval | The workspace requires admin approval for new apps. A Slack workspace admin approves it at the printed link (in the dashboard: **Approve in Slack**), then re-run `agent-sdk slack create` (or **Retry** in the dashboard). |
63
64
  | The bot ignores ordinary channel posts | Default engagement is mentions and DMs only. Enable `engagement.channelPosts` with an allowlist, and subscribe the app to `message.channels` / `message.groups`. |
64
65
  | Approve / Deny buttons do nothing | Re-import a Slack app manifest with interactivity enabled. Channels that post approval cards need `toolApprovals: true` (and `interactivity: true` when you compose events by hand). |
65
66
 
@@ -67,8 +68,8 @@ Match your symptom below. Keep the commands as `agentkit`; see
67
68
 
68
69
  | What you see | What to do |
69
70
  | --- | --- |
70
- | `must be defineConnection({ url, oauth: true })` | The connection file needs `oauth: true`, or you passed the wrong connection name to `agentkit mcp oauth`. |
71
- | Local auth works; hosted calls unauthorized | Run `agentkit mcp oauth <name> --store`, confirm names with `agentkit secrets list <slug>`, then redeploy. |
71
+ | `must be defineConnection({ url, oauth: true })` | The connection file needs `oauth: true`, or you passed the wrong connection name to `agent-sdk mcp oauth`. |
72
+ | Local auth works; hosted calls unauthorized | Run `agent-sdk mcp oauth <name> --store`, confirm names with `agent-sdk secrets list <slug>`, then redeploy. |
72
73
  | Model asks for `mcp_auth` or IDE MCP for a privileged server | That connection is likely `hostOnly`. Call it from a host tool via `ctx.host.mcp`, and update instructions. |
73
74
 
74
75
  See [Host MCP OAuth](./guides/mcp-oauth.md) and
@@ -96,7 +97,7 @@ If the model reads outside the session workspace, the prepared files
96
97
  don't match what the instructions expect. Fix the layout. See
97
98
  [Hillclimbing](./hillclimbing.md).
98
99
 
99
- `agentkit trajectory --events <file>` summarizes any saved NDJSON
100
+ `agent-sdk trajectory --events <file>` summarizes any saved NDJSON
100
101
  stream. The playground **Open trace** control does the same visually.
101
102
 
102
103
  ## What's next
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cursor/july",
3
- "version": "0.1.30",
3
+ "version": "0.1.32",
4
4
  "description": "(early alpha) Filesystem-first framework for defining Cursor agents as markdown and TypeScript and serving them over channels with the Cursor SDK.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "repository": {
@@ -14,6 +14,8 @@
14
14
  "types": "./dist/index.d.ts",
15
15
  "bin": {
16
16
  "july": "./dist/bin/agent-serve.js",
17
+ "agent-sdk": "./dist/bin/agent-serve.js",
18
+ "agentsdk": "./dist/bin/agent-serve.js",
17
19
  "agentkit": "./dist/bin/agent-serve.js",
18
20
  "agent-serve": "./dist/bin/agent-serve.js"
19
21
  },
@@ -191,7 +193,7 @@
191
193
  }
192
194
  },
193
195
  "scripts": {
194
- "build": "tsgo -p tsconfig.build.json && pnpm run build:playground && pnpm run docs:build",
196
+ "build": "tsgo -p tsconfig.build.json && node scripts/bundle-publish-shims.mjs && pnpm run build:playground && pnpm run docs:build",
195
197
  "build:playground": "vite build --config playground/vite.config.ts",
196
198
  "build:playground:central": "vite build --mode central --config playground/vite.config.ts",
197
199
  "dev:playground": "vite --config playground/vite.config.ts",
@@ -227,6 +229,7 @@
227
229
  "zod-to-json-schema": "^3.24.5"
228
230
  },
229
231
  "devDependencies": {
232
+ "@anysphere/agent-store-sync": "workspace:*",
230
233
  "@anysphere/ui": "workspace:*",
231
234
  "@base-ui/react": "1.6.0",
232
235
  "@stylexjs/stylex": "0.18.3",
@@ -7,11 +7,11 @@ description: >-
7
7
  comparison; use defineEval for regression gates.
8
8
  ---
9
9
 
10
- # agentkit A/B metrics (`defineAB`)
10
+ # Agent SDK A/B metrics (`defineAB`)
11
11
 
12
12
  `defineAB` is a **live metrics plug-in**. At session creation the engine runs
13
13
  `split` and appends durable `ab.assigned` events; the collector folds the
14
- session event stream and calls `onSample`. There is **no** `agentkit ab`
14
+ session event stream and calls `onSample`. There is **no** `agent-sdk ab`
15
15
  CLI and **no** assertion API.
16
16
 
17
17
  Human-facing reference: [`docs/ab.md`](../../docs/ab.md).
@@ -20,7 +20,7 @@ Human-facing reference: [`docs/ab.md`](../../docs/ab.md).
20
20
  | --- | --- | --- |
21
21
  | Job | Regression gates on frozen fixtures | Collect metrics on live runs |
22
22
  | Location | `evals/**/*.eval.ts` | `agent/ab.ts` or `agent/ab/<name>.ts` |
23
- | How it runs | `agentkit eval` | Automatically under `serve` / `run` |
23
+ | How it runs | `agent-sdk eval` | Automatically under `serve` / `run` |
24
24
  | Driver | `t.send` + gates | `split` → `ab.assigned` + `onSample` |
25
25
 
26
26
  ## Authoring
@@ -101,9 +101,9 @@ mirror, not a metrics store. After park/restart it replays `events.ndjson` to
101
101
  rebuild counters without re-firing `onSample`.
102
102
 
103
103
  **Evals are separate:** the eval harness creates sessions with
104
- `purpose: "eval"` (playground Evals / `agentkit eval`). Those skip
104
+ `purpose: "eval"` (playground Evals / `agent-sdk eval`). Those skip
105
105
  enrollment entirely — no `ab.assigned`, no `onSample`, omitted from
106
- `GET /v1/abs`. Ordinary chat / `agentkit run` / Slack stay `"live"`.
106
+ `GET /v1/abs`. Ordinary chat / `agent-sdk run` / Slack stay `"live"`.
107
107
  Do not use `splitIf` to filter evals; the framework already does.
108
108
 
109
109
  After enrollment, arms are on `session.abs` (experiment → variant | `null`)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agentkit-create-agent
3
3
  description: >-
4
- Scaffold a new agentkit agent through a guided AskQuestion interview —
4
+ Scaffold a new Agent SDK agent through a guided AskQuestion interview —
5
5
  purpose, name, runtime, model, channels, MCP connections, capabilities —
6
6
  then verify it serves and hand off to hillclimbing. Read this skill when
7
7
  creating a new agent.
@@ -9,7 +9,7 @@ paths:
9
9
  - packages/agent-serve/**/*
10
10
  ---
11
11
 
12
- # Create an agentkit agent
12
+ # Create an Agent SDK agent
13
13
 
14
14
  Stand up one new agent project via a short interview, scaffold it, get
15
15
  channels working
@@ -22,9 +22,9 @@ for iteration once the agent runs.
22
22
  Read `framework-map/SKILL.md` first if you haven't; treat the package
23
23
  `AGENTS.md` and `README.md` as ground truth for
24
24
  framework behavior. Run the CLI with Node, never Bun (Bun corrupts harness
25
- tool-result streams): use the installed `agentkit` bin, or from a source
25
+ tool-result streams): use the installed `agent-sdk` bin, or from a source
26
26
  checkout `pnpm exec tsx src/bin/agent-serve.ts <command> …` — written as
27
- `agentkit …` below.
27
+ `agent-sdk …` below.
28
28
 
29
29
  ## Interview
30
30
 
@@ -97,7 +97,7 @@ Defaults that make first cuts good:
97
97
  `prompt\`…\`` / `prompt.lines\`…\`` from `@cursor/july` (dedents indented
98
98
  multi-line strings).
99
99
  - **Env prefix** for Slack tokens = upper-snake slug (`my-agent` →
100
- `MY_AGENT_SLACK_*`); `agentkit slack init` derives it for you.
100
+ `MY_AGENT_SLACK_*`); `agent-sdk slack init` derives it for you.
101
101
  Dedicated-app path only — the Cursor-hosted connection has no tokens.
102
102
  - **Host prep beats model wandering — for evidence, not judgment.** When the
103
103
  purpose has a deterministic setup step (fetch a PR, seed files), do it in
@@ -135,7 +135,7 @@ Two smells to check before scaffolding and again before hand-off:
135
135
  ## Scaffold
136
136
 
137
137
  ```bash
138
- agentkit init ./<slug>
138
+ agent-sdk init ./<slug>
139
139
  ```
140
140
 
141
141
  `init` writes `package.json` (with `typescript` dev deps and a
@@ -159,7 +159,7 @@ plan:
159
159
  short hand-written `agent/channels/slack.ts`
160
160
  (`slackChannel({ cursorAccount: true, agentName: "<Name>" })` — no
161
161
  tokens, no manifests); for a dedicated Socket Mode app do not hand-write
162
- the channel — `agentkit slack init --dir ./<slug> --name "<Name>"`
162
+ the channel — `agent-sdk slack init --dir ./<slug> --name "<Name>"`
163
163
  generates `agent/channels/slack.ts` (with the env prefix) plus manifests
164
164
  and `env.example`; customize the generated file (e.g. `suggestedPrompts`)
165
165
  afterwards.
@@ -172,7 +172,7 @@ plan:
172
172
  (case id = file path, or `<fileId>/<case.id>`). Full assertion API and
173
173
  fixture strategy: `evals/SKILL.md` (sibling skill).
174
174
 
175
- Stick to deps agentkit already
175
+ Stick to deps the Agent SDK already
176
176
  ships (`zod`, `@modelcontextprotocol/sdk`, `tsx`); a new npm dep needs its own
177
177
  install story and is a smell for a first cut.
178
178
 
@@ -182,10 +182,10 @@ No API key needed for the structural half — run these first and fix every
182
182
  error diagnostic:
183
183
 
184
184
  ```bash
185
- agentkit validate --dir ./<slug> # zero errors (warnings explain runtime mismatches)
186
- agentkit info --dir ./<slug> --json # surface matches the plan
187
- agentkit call <tool> --dir ./<slug> --input '{…}' # server tools, deterministic, no model
188
- agentkit eval --dir ./<slug> --list
185
+ agent-sdk validate --dir ./<slug> # zero errors (warnings explain runtime mismatches)
186
+ agent-sdk info --dir ./<slug> --json # surface matches the plan
187
+ agent-sdk call <tool> --dir ./<slug> --input '{…}' # server tools, deterministic, no model
188
+ agent-sdk eval --dir ./<slug> --list
189
189
  npx tsc --noEmit -p ./<slug> # or the project's own type-check task
190
190
  ```
191
191
 
@@ -202,10 +202,10 @@ is forthcoming, finish every key-free check, confirm `run` fails with only
202
202
  the clean API-key error, and hand these to the user as their next steps:
203
203
 
204
204
  ```bash
205
- agentkit run --dir ./<slug> --message "<fixture prompt>" # JSON trajectory
206
- agentkit serve --dir ./<slug> --dev
205
+ agent-sdk run --dir ./<slug> --message "<fixture prompt>" # JSON trajectory
206
+ agent-sdk serve --dir ./<slug> --dev
207
207
  # playground: http://127.0.0.1:3000/<slug>/playground
208
- agentkit eval --dir ./<slug>
208
+ agent-sdk eval --dir ./<slug>
209
209
  ```
210
210
 
211
211
  Serve only the new agent's directory during bring-up — pointing `serve` at a
@@ -221,7 +221,7 @@ it, verify with doctor commands, and smoke-test before declaring victory.
221
221
 
222
222
  - **Slack** — follow `packages/agent-serve/skills/setup-slack/SKILL.md` end
223
223
  to end, starting from its Step 0 connection gate. Cursor-hosted: sign in
224
- (`agentkit login` / `CURSOR_API_KEY`) → serve → `@Cursor <AgentName>`
224
+ (`agent-sdk login` / `CURSOR_API_KEY`) → serve → `@Cursor <AgentName>`
225
225
  smoke. Dedicated app: init → human creates apps → doctor → `@mention`
226
226
  smoke.
227
227
  - **GitHub** — follow `packages/agent-serve/skills/github/SKILL.md`
@@ -251,7 +251,7 @@ at the smoke run's session (`.agent-serve/<slug>/sessions/<id>/events.ndjson`
251
251
  or the trace under `.agent-serve/traces/`) as the baseline measurement — or,
252
252
  when no API key was available, name the user's first real turn as the
253
253
  baseline instead. For GitHub agents, snapshot replay fixtures now
254
- (`agentkit github replay ... --dry-run --out fixtures/github`) so the
254
+ (`agent-sdk github replay ... --dry-run --out fixtures/github`) so the
255
255
  loop starts deterministic.
256
256
 
257
257
  ## Working agreements
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: agentkit-debug
3
3
  description: >-
4
- Diagnose a misbehaving agentkit agent, server, or playground — blank
4
+ Diagnose a misbehaving Agent SDK agent, server, or playground — blank
5
5
  playground, sessions missing, HMR not reloading, failing reads/retry
6
6
  loops, webhook 401s, 403/409 responses, approvals or reminders lost,
7
- orphaned processes. Use when an agentkit project runs but behaves
7
+ orphaned processes. Use when an Agent SDK project runs but behaves
8
8
  wrong locally.
9
9
  ---
10
10
 
11
- # Debugging agentkit locally
11
+ # Debugging the Agent SDK locally
12
12
 
13
13
  Read `framework-map/SKILL.md` (sibling skill) first if you don't know the
14
14
  project structure or session model. Everything below assumes Node/tsx (`pnpm exec tsx
@@ -18,7 +18,7 @@ src/bin/agent-serve.ts ...` in the everysphere monorepo).
18
18
 
19
19
  ```bash
20
20
  # 1. Is discovery clean? serve refuses to start on error diagnostics.
21
- agentkit validate --dir <project>
21
+ agent-sdk validate --dir <project>
22
22
 
23
23
  # 2. What is actually running, and where?
24
24
  lsof -iTCP:3000 -sTCP:LISTEN; lsof -iTCP:5273 -sTCP:LISTEN
@@ -37,11 +37,11 @@ curl -sN 'localhost:3000/<slug>/v1/session/<id>/stream?startIndex=0' | head -50
37
37
 
38
38
  | Symptom | Cause / fix |
39
39
  | --- | --- |
40
- | Playground blank or "no agents" even though Vite assets are built | The SPA is static; it needs the agentkit backend on `:3000`. Start `serve` — building `dist/playground/` alone serves nothing. |
40
+ | Playground blank or "no agents" even though Vite assets are built | The SPA is static; it needs the Agent SDK backend on `:3000`. Start `serve` — building `dist/playground/` alone serves nothing. |
41
41
  | Edits under `playground/src` don't show up in the browser | You're on the **static** `dist/playground` bundle, not HMR. Only `serve --dev` / `dev` starts Vite HMR (`:5273`) and prints that as `playground` — open that URL, not `:3000`. In the monorepo, `mise //packages/agent-serve:start` = all examples + multi-agent HMR; pin one slug with `AGENT_SERVE_BASE=/<slug>`. |
42
42
  | Webhook / schedule sessions exist on disk but the playground session list is empty | The list shows the calling principal's sessions. `--dev` (loopback) or `--allow-anonymous` (trusted shared host) switches it to `includeAll`. Otherwise deep-link `/<slug>/playground?sessionId=ses_...` or read `sessions/` on disk. |
43
43
  | Every built-in read/grep the model makes fails; turns crawl through retry loops | You ran the CLI under **Bun**. Kill it, rerun under Node/tsx. (`NGHTTP2_FRAME_SIZE_ERROR` in SDK logs is the tell.) |
44
- | `gh webhook forward` / `agentkit github forward` deliveries all 401 — but hook creation succeeded | `GITHUB_TOKEN`/`GH_TOKEN` in the env. The relay authenticates with the gh CLI login and rejects env tokens. `GITHUB_TOKEN= GH_TOKEN= agentkit github forward ...` |
44
+ | `gh webhook forward` / `agent-sdk github forward` deliveries all 401 — but hook creation succeeded | `GITHUB_TOKEN`/`GH_TOKEN` in the env. The relay authenticates with the gh CLI login and rejects env tokens. `GITHUB_TOKEN= GH_TOKEN= agent-sdk github forward ...` |
45
45
  | `Hook already exists` starting a forwarder | GitHub allows one forwarder per repo. Use one `github forward --dir <parent>` (it fans out to every matching channel) instead of N processes; kill stale forwarders. |
46
46
  | Agent's answers reference monorepo rules / AGENTS.md it shouldn't know | Session workspace sits inside the monorepo, so the harness loaded ancestor config. `defineAgent({ local: { cwd } })` outside the repo, or `--state-root` under `/tmp`. |
47
47
  | Port 3000/5273 in use; stray processes after crashes | `lsof -iTCP:3000 -sTCP:LISTEN`, kill the pids; also check companion processes (e.g. vite). |
@@ -49,12 +49,12 @@ curl -sN 'localhost:3000/<slug>/v1/session/<id>/stream?startIndex=0' | head -50
49
49
  | Schedule / reminder never fires under `--dev` | Dev never auto-fires. `POST /<slug>/v1/dev/schedules/<id>` or `POST /<slug>/v1/dev/reminders/<id>` (list at `GET /v1/dev/reminders`). |
50
50
  | Reminder disarmed after restart with `handler_lost_on_restart` | `run`-handler reminders are in-memory; re-arm them from the code path that created them (enroll hook / policy), or use prompt-based reminders. |
51
51
  | `409` on a follow-up | Stale `continuationToken` (each accepted follow-up rotates it), busy session, or a task/schedule session (not followable). |
52
- | `409 session_busy` on `agentkit call --session` | Session-bound deterministic calls serialize with model turns; wait or use an ephemeral call (drop `--session`). |
52
+ | `409 session_busy` on `agent-sdk call --session` | Session-bound deterministic calls serialize with model turns; wait or use an ephemeral call (drop `--session`). |
53
53
  | `403` on stream/follow-up | Caller principal ≠ session owner. In dev, create and inspect with the same auth; beyond loopback pass `--bearer-token` and send it. |
54
54
  | Works on localhost, 401/blocked through a tunnel or LAN | Default `localDevStrict()` auth only admits direct loopback, **rejects proxy-forwarding headers** (`X-Forwarded-For`, ...), and requires a loopback `Host`. Use `--bearer-token <secret>` (or authored `bearerAuth`) — `--allow-anonymous` only for trusted-network demos (and never with Cursor account MCP connections). |
55
55
  | Channel route won't compile: body/query schema type error | `GET` requires a Zod `querySchema`, `POST`/`PUT`/`PATCH` a Zod `bodySchema` — plain JSON Schema objects don't type-check. Use `z.object({})` / `z.unknown()` for open surfaces. Empty POST bodies are coerced to `{}` before validation. |
56
- | Slack channel prints `channel idle ... missing credentials` | Expected: tokens absent (dedicated-app path). Multi-agent needs `<PREFIX>_SLACK_BOT_TOKEN` + `<PREFIX>_SLACK_APP_TOKEN` per agent. `agentkit slack doctor --prefix <PREFIX>`. |
57
- | `serve` fails: `Slack channels using the Cursor account connection ... not signed in to Cursor` | Cursor-hosted Slack (`cursorAccount: true`) needs a signed-in host: `agentkit login` or `CURSOR_API_KEY`. No Slack tokens exist on this path — `slack doctor` doesn't apply. |
56
+ | Slack channel prints `channel idle ... missing credentials` | Expected: tokens absent (dedicated-app path). Multi-agent needs `<PREFIX>_SLACK_BOT_TOKEN` + `<PREFIX>_SLACK_APP_TOKEN` per agent. `agent-sdk slack doctor --prefix <PREFIX>`. |
57
+ | `serve` fails: `Slack channels using the Cursor account connection ... not signed in to Cursor` | Cursor-hosted Slack (`cursorAccount: true`) needs a signed-in host: `agent-sdk login` or `CURSOR_API_KEY`. No Slack tokens exist on this path — `slack doctor` doesn't apply. |
58
58
  | `@Cursor <name>` in Slack gets Cursor's normal agent, not yours | Agent name mismatch or host not relaying. Names are single-token and matched case-insensitively; confirm the serve log `cursor-slack: relaying Slack for <AgentName>` and that the workspace's Cursor Slack integration is linked to the signed-in account. |
59
59
  | Turn fails immediately with an API-key error | Model turns need `CURSOR_API_KEY`; everything structural (validate/info/call/serve bring-up) doesn't. |
60
60
  | Server tools / skills / sandbox silently absent | Runtime is `cloud` — those are local-only. `validate` prints exactly this warning; read it. |
@@ -69,5 +69,5 @@ curl -sN 'localhost:3000/<slug>/v1/session/<id>/stream?startIndex=0' | head -50
69
69
  preempted it — that's the designed behavior, not a crash.
70
70
  - Escapes outside the session workspace in read/grep paths mean the
71
71
  harness is fighting your evidence layout, not that the model is broken.
72
- - `agentkit trajectory --events <file>` renders any saved NDJSON; the
72
+ - `agent-sdk trajectory --events <file>` renders any saved NDJSON; the
73
73
  playground "Open trace" does the same visually.
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: agentkit-evals
3
3
  description: >-
4
- Author and run agentkit defineEval cases (single- or multi-datapoint).
4
+ Author and run Agent SDK defineEval cases (single- or multi-datapoint).
5
5
  Use when writing, fixing, seeding, or hillclimbing evals; AskQuestion
6
6
  whether to generate samples or upload data. Materialize API-backed
7
7
  fixtures first. Live A/B metrics: defineAB (skills/ab), not defineEval.
8
8
  ---
9
9
 
10
- # agentkit evals
10
+ # Agent SDK evals
11
11
 
12
12
  Evals are the ratchet that makes iteration trustworthy: a fixed input, a
13
13
  model turn, and gates over the recorded trajectory. They live at the
@@ -29,13 +29,13 @@ and does not replace `defineEval` gates.
29
29
  (`evals/weather.eval.ts` + `{ id: "nyc" }` → `weather/nyc`).
30
30
 
31
31
  ```bash
32
- agentkit eval --dir . --list # all datapoints
33
- agentkit eval --dir . --json # run all
34
- agentkit eval --dir . weather/nyc # one datapoint
35
- agentkit eval --dir . weather # every datapoint in that file
36
- agentkit eval --dir . weather forecast # several files
37
- agentkit eval --dir . --tag smoke
38
- agentkit eval --dir . --verbose
32
+ agent-sdk eval --dir . --list # all datapoints
33
+ agent-sdk eval --dir . --json # run all
34
+ agent-sdk eval --dir . weather/nyc # one datapoint
35
+ agent-sdk eval --dir . weather # every datapoint in that file
36
+ agent-sdk eval --dir . weather forecast # several files
37
+ agent-sdk eval --dir . --tag smoke
38
+ agent-sdk eval --dir . --verbose
39
39
  ```
40
40
 
41
41
  `eval` (like `run`) boots an ephemeral server on port 0 with a temp state
@@ -65,7 +65,7 @@ If `AskQuestion` is unavailable, ask the same fork in plain chat and wait.
65
65
 
66
66
  Tell the user the **shape** of the data (see “The API” below) and **how to
67
67
  upload it**. Do not invent cases until they provide files (or paste content
68
- to write). After they add data, run `agentkit eval --dir <project>
68
+ to write). After they add data, run `agent-sdk eval --dir <project>
69
69
  --list` to confirm discovery, then wire any missing gates.
70
70
 
71
71
  If the uploaded data is **API-backed** (PR URLs, pinned SHAs, gold labels,
@@ -79,7 +79,7 @@ fixtures first** — see “When eval data needs API calls to render” below.
79
79
  3. Optional fixtures beside the case or under `fixtures/`.
80
80
  4. Tell the agent once the files are in place — or paste case bodies in chat
81
81
  and ask the agent to write the file.
82
- 5. Verify: `agentkit eval --dir <project> --list` shows the new ids.
82
+ 5. Verify: `agent-sdk eval --dir <project> --list` shows the new ids.
83
83
 
84
84
  ### Step 2b — user chose agent-generated samples
85
85
 
@@ -95,7 +95,7 @@ fixtures first** — see “When eval data needs API calls to render” below.
95
95
  3. **Append** — prefer adding entries to an existing file’s `cases` array
96
96
  when the suite fits; otherwise create a new `evals/<suite>.eval.ts` with
97
97
  `cases`. Never overwrite or weaken an existing datapoint. Case ids must
98
- not collide with `agentkit eval --dir <project> --list`.
98
+ not collide with `agent-sdk eval --dir <project> --list`.
99
99
  4. Create `evals/evals.config.ts` if missing (`maxConcurrency: 20` is fine
100
100
  for now; hard limit 200 for model provider request limits).
101
101
  5. Re-list to confirm, then optionally run `--tag smoke` if you tagged any.
@@ -206,7 +206,7 @@ input instead — see fixtures).
206
206
  | Agent surface | Fixture source |
207
207
  | --- | --- |
208
208
  | Chat / domain assistant | A canonical prompt string, chosen once and frozen |
209
- | Tool-heavy | `agentkit call <tool> --dir . --input '{...}'` first, then the prompt that should trigger it |
209
+ | Tool-heavy | `agent-sdk call <tool> --dir . --input '{...}'` first, then the prompt that should trigger it |
210
210
  | GitHub webhook | `github replay … --dry-run --out fixtures/github` (see `packages/agent-serve/skills/github/SKILL.md`) |
211
211
  | PR reviewer with host prep | A small fixed PR the team controls; assert on findings shape, not counts |
212
212
  | Workspace-dependent | `workspaceFiles` in `t.send` — never machine-local paths |
@@ -4,10 +4,10 @@ description: >-
4
4
  Orientation for @cursor/july — folder structure, local vs cloud
5
5
  runtimes, sessions, state layout, and invariants (Node not Bun, root
6
6
  evals/, typecheck after tsx). Use when creating, editing, or running
7
- agentkit projects with agent/agent.ts and agent/instructions.md.
7
+ Agent SDK projects with agent/agent.ts and agent/instructions.md.
8
8
  ---
9
9
 
10
- # agentkit framework map
10
+ # Agent SDK framework map
11
11
 
12
12
  `@cursor/july` serves agents defined as ordinary files: markdown
13
13
  for prose, TypeScript for typed behavior, under an `agent/` directory. The
@@ -16,7 +16,7 @@ over HTTP/Slack/GitHub channels, with the Cursor SDK + harness as the
16
16
  execution engine. Ground truth is the package `README.md` (full reference)
17
17
  and `AGENTS.md` (coding-agent loop) — this skill is the map, not the spec.
18
18
 
19
- Run the CLI as `agentkit <cmd>`. In the everysphere monorepo there is no
19
+ Run the CLI as `agent-sdk <cmd>`. In the everysphere monorepo there is no
20
20
  installed bin — use:
21
21
 
22
22
  ```bash
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: agentkit-github
3
3
  description: >-
4
- Build and test GitHub-webhook-driven agentkit agents: githubChannel
4
+ Build and test GitHub-webhook-driven Agent SDK agents: githubChannel
5
5
  hooks (auth turn vs host task), signature modes, and testing tiers
6
6
  (fixtures, github replay, github forward, serve --cursor-events). Use
7
7
  when wiring GitHub events, replaying PR webhooks, or debugging delivery.
8
8
  ---
9
9
 
10
- # GitHub channels in agentkit
10
+ # GitHub channels in the Agent SDK
11
11
 
12
12
  Author `agent/channels/github.ts` with `githubChannel()` from
13
13
  `@cursor/july/channels/github`. It mounts
@@ -47,7 +47,7 @@ the model should reason about the event.
47
47
 
48
48
  - **`cursorAccount`** → the signed-in Cursor principal supplies both the SCM
49
49
  event stream and a short-lived, repo-scoped GitHub credential. It works in
50
- local dev (`agentkit login`) and hosted deployments (`CURSOR_API_KEY`).
50
+ local dev (`agent-sdk login`) and hosted deployments (`CURSOR_API_KEY`).
51
51
  `ctx.github`, `ctx.host.github`, and child `gh` commands share the lease.
52
52
  Use `{ repos: ["owner/repo"] }`, or `true` with `serve --cursor-events
53
53
  --repo owner/repo`. One host credential covers up to 20 repositories under
@@ -81,9 +81,9 @@ is fine here), synthesizes GitHub-shaped payloads, signs them when a secret
81
81
  is configured, and POSTs them at the channel. Fully deterministic.
82
82
 
83
83
  ```bash
84
- agentkit github replay https://github.com/owner/repo/pull/123 --dir <project>
85
- agentkit github replay owner/repo#123 --dir <project> --events '*' --conclusion failure
86
- agentkit github replay owner/repo#123 --dir <project> --events '*' --dry-run --out fixtures/github
84
+ agent-sdk github replay https://github.com/owner/repo/pull/123 --dir <project>
85
+ agent-sdk github replay owner/repo#123 --dir <project> --events '*' --conclusion failure
86
+ agent-sdk github replay owner/repo#123 --dir <project> --events '*' --dry-run --out fixtures/github
87
87
  ```
88
88
 
89
89
  `--events` defaults to `pull_request` (`'*'` = the channel's declared
@@ -96,9 +96,9 @@ Wraps `gh webhook forward`: registers a real webhook and relays deliveries
96
96
  to loopback. URL + events auto-derived; repo inferred from the git remote.
97
97
 
98
98
  ```bash
99
- agentkit github doctor --install # one-time: gh + cli/gh-webhook
100
- agentkit github events --dir <parent> --json # what would be forwarded
101
- GITHUB_TOKEN= GH_TOKEN= agentkit github forward --dir <project>
99
+ agent-sdk github doctor --install # one-time: gh + cli/gh-webhook
100
+ agent-sdk github events --dir <parent> --json # what would be forwarded
101
+ GITHUB_TOKEN= GH_TOKEN= agent-sdk github forward --dir <project>
102
102
  ```
103
103
 
104
104
  Traps, in order of hours lost:
@@ -121,11 +121,11 @@ Traps, in order of hours lost:
121
121
  ### 4. `serve --cursor-events` — pull from Cursor (`/v0/scm-events`)
122
122
 
123
123
  ```bash
124
- agentkit serve --dir <project> --cursor-events --repo owner/repo
124
+ agent-sdk serve --dir <project> --cursor-events --repo owner/repo
125
125
  ```
126
126
 
127
127
  Reads the stream as the host's Cursor user, so it **requires sign-in**
128
- (`agentkit login` / `CURSOR_API_KEY`) — `serve` refuses to start signed
128
+ (`agent-sdk login` / `CURSOR_API_KEY`) — `serve` refuses to start signed
129
129
  out instead of running a relay that can never receive events. No public URL
130
130
  or repo admin. Registers before consuming; offset + consumer id under
131
131
  `<state-root>/cursor-events/`. `CURSOR_API_BASE_URL` for a non-default