@cursor/july 0.1.105 → 0.1.108

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 (395) hide show
  1. package/README.md +10 -5
  2. package/dist/bin/agent-serve.js +31 -16
  3. package/dist/channels/bitbucket/types.d.ts +2 -4
  4. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  5. package/dist/channels/deployments/types.d.ts +5 -8
  6. package/dist/channels/deployments/types.d.ts.map +1 -1
  7. package/dist/channels/github/github-channel.js +8 -5
  8. package/dist/channels/github/types.d.ts +7 -5
  9. package/dist/channels/github/types.d.ts.map +1 -1
  10. package/dist/channels/gitlab/types.d.ts +2 -5
  11. package/dist/channels/gitlab/types.d.ts.map +1 -1
  12. package/dist/channels/origin/origin-channel.d.ts.map +1 -1
  13. package/dist/channels/origin/origin-channel.js +27 -13
  14. package/dist/channels/origin/types.d.ts +7 -4
  15. package/dist/channels/origin/types.d.ts.map +1 -1
  16. package/dist/channels/slack/defaults.d.ts.map +1 -1
  17. package/dist/channels/slack/defaults.js +3 -0
  18. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  19. package/dist/channels/slack/dispatch.js +1 -1
  20. package/dist/channels/slack/live-delivery.d.ts.map +1 -1
  21. package/dist/channels/slack/live-delivery.js +48 -11
  22. package/dist/channels/slack/types.d.ts +4 -3
  23. package/dist/channels/slack/types.d.ts.map +1 -1
  24. package/dist/channels.d.ts +45 -0
  25. package/dist/channels.d.ts.map +1 -1
  26. package/dist/channels.js +106 -7
  27. package/dist/connections.d.ts +2 -1
  28. package/dist/connections.d.ts.map +1 -1
  29. package/dist/connections.js +2 -1
  30. package/dist/docs/404.html +3 -3
  31. package/dist/docs/ab.html +6 -6
  32. package/dist/docs/assets/{app.BVwaffdK.js → app.BASKM3M4.js} +1 -1
  33. package/dist/docs/assets/chunks/@localSearchIndexroot.BHZYsNVi.js +1 -0
  34. package/dist/docs/assets/chunks/{VPLocalSearchBox.WuWTZ1x8.js → VPLocalSearchBox.BOKxlYGP.js} +2 -2
  35. package/dist/docs/assets/chunks/{theme.BYdI_6sF.js → theme.DbDZW-zb.js} +2 -2
  36. package/dist/docs/assets/{deployment.md.MFPKqsqI.js → deployment.md.JenwuCCB.js} +4 -4
  37. package/dist/docs/assets/{deployment.md.MFPKqsqI.lean.js → deployment.md.JenwuCCB.lean.js} +1 -1
  38. package/dist/docs/assets/{evals.md.CbMoebP1.js → evals.md.C1ekS3k2.js} +1 -1
  39. package/dist/docs/assets/guides_cloud-agents.md.BsloyHdY.js +9 -0
  40. package/dist/docs/assets/{guides_cloud-agents.md.DS8RIjwx.lean.js → guides_cloud-agents.md.BsloyHdY.lean.js} +1 -1
  41. package/dist/docs/assets/{guides_github.md.c0gdGJ-D.js → guides_github.md.BH33UEBJ.js} +1 -1
  42. package/dist/docs/assets/{guides_grokbot-agents.md.DVqdhBKb.js → guides_grokbot-agents.md.DyV-WArv.js} +1 -1
  43. package/dist/docs/assets/guides_improve.md.BGVk32bK.js +14 -0
  44. package/dist/docs/assets/guides_improve.md.BGVk32bK.lean.js +1 -0
  45. package/dist/docs/assets/{guides_opentelemetry.md.COh9jFVg.js → guides_opentelemetry.md.SCRMskno.js} +3 -3
  46. package/dist/docs/assets/{guides_opentelemetry.md.COh9jFVg.lean.js → guides_opentelemetry.md.SCRMskno.lean.js} +1 -1
  47. package/dist/docs/assets/{guides_slack.md.9oHPye9o.js → guides_slack.md.D4RVMM4G.js} +3 -3
  48. package/dist/docs/assets/{guides_slack.md.9oHPye9o.lean.js → guides_slack.md.D4RVMM4G.lean.js} +1 -1
  49. package/dist/docs/assets/index.md.BjH1w2ZW.js +5 -0
  50. package/dist/docs/assets/{reference_agent-config.md.CHNpiyp4.js → reference_agent-config.md.CvoL6pof.js} +1 -1
  51. package/dist/docs/assets/{reference_channels.md.DBGcaB7m.js → reference_channels.md.D-qTqwcq.js} +2 -2
  52. package/dist/docs/assets/{reference_channels.md.DBGcaB7m.lean.js → reference_channels.md.D-qTqwcq.lean.js} +1 -1
  53. package/dist/docs/assets/{reference_cli.md.C6Lo8SEd.js → reference_cli.md.Ca26u0Es.js} +6 -6
  54. package/dist/docs/assets/{reference_cli.md.C6Lo8SEd.lean.js → reference_cli.md.Ca26u0Es.lean.js} +1 -1
  55. package/dist/docs/assets/{reference_connections.md.Di6jJAXF.js → reference_connections.md.BojkC6c5.js} +1 -1
  56. package/dist/docs/assets/{reference_extensions.md.CGmMLblt.js → reference_extensions.md.CPWt00ds.js} +1 -1
  57. package/dist/docs/assets/{scaffolding-agents.md.em43xlY1.js → scaffolding-agents.md.Kctn3OVb.js} +1 -1
  58. package/dist/docs/assets/{skills_create-agent.md.BVoWPcan.js → skills_create-agent.md.Q3h6Je-e.js} +1 -1
  59. package/dist/docs/assets/{skills_debug.md.CDbPhHfg.js → skills_debug.md.CVjCXMFF.js} +1 -1
  60. package/dist/docs/assets/{skills_debug.md.CDbPhHfg.lean.js → skills_debug.md.CVjCXMFF.lean.js} +1 -1
  61. package/dist/docs/assets/{skills_evals.md.723kpUmA.js → skills_evals.md.BhovOvrl.js} +1 -1
  62. package/dist/docs/assets/skills_framework-map.md.D-tFZhFS.js +1 -0
  63. package/dist/docs/assets/{skills_framework-map.md.haibFyoB.lean.js → skills_framework-map.md.D-tFZhFS.lean.js} +1 -1
  64. package/dist/docs/assets/{skills_github.md.D0JahM8c.js → skills_github.md.hgFX_oKY.js} +1 -1
  65. package/dist/docs/assets/{skills_otel.md.CqhobH3B.js → skills_otel.md.B5Ddv1xH.js} +1 -1
  66. package/dist/docs/assets/{style.BRuM8477.css → style.DCD_zyg3.css} +1 -1
  67. package/dist/docs/assets/troubleshooting.md.CYEAO9bM.js +1 -0
  68. package/dist/docs/building-with-agents.html +6 -6
  69. package/dist/docs/concepts.html +5 -5
  70. package/dist/docs/deployment.html +9 -9
  71. package/dist/docs/deployment.md +7 -2
  72. package/dist/docs/evals.html +8 -8
  73. package/dist/docs/evals.md +3 -2
  74. package/dist/docs/guides/agent-to-agent.html +6 -6
  75. package/dist/docs/guides/cloud-agents.html +7 -7
  76. package/dist/docs/guides/cloud-agents.md +4 -3
  77. package/dist/docs/guides/convert-automation.html +6 -6
  78. package/dist/docs/guides/github.html +7 -7
  79. package/dist/docs/guides/github.md +2 -1
  80. package/dist/docs/guides/grokbot-agents.html +7 -7
  81. package/dist/docs/guides/grokbot-agents.md +2 -2
  82. package/dist/docs/guides/human-in-the-loop.html +6 -6
  83. package/dist/docs/guides/improve.html +40 -0
  84. package/dist/docs/guides/improve.md +91 -0
  85. package/dist/docs/guides/mcp-oauth.html +6 -6
  86. package/dist/docs/guides/opentelemetry.html +8 -8
  87. package/dist/docs/guides/opentelemetry.md +3 -4
  88. package/dist/docs/guides/slack.html +8 -8
  89. package/dist/docs/guides/slack.md +2 -1
  90. package/dist/docs/guides/webhooks.html +6 -6
  91. package/dist/docs/hashmap.json +1 -1
  92. package/dist/docs/hillclimbing.html +6 -6
  93. package/dist/docs/index.html +8 -8
  94. package/dist/docs/index.md +4 -0
  95. package/dist/docs/llms-full.txt +180 -61
  96. package/dist/docs/llms.txt +1 -0
  97. package/dist/docs/quickstart.html +6 -6
  98. package/dist/docs/reference/agent-config.html +7 -7
  99. package/dist/docs/reference/agent-config.md +5 -2
  100. package/dist/docs/reference/artifacts.html +6 -6
  101. package/dist/docs/reference/channels.html +7 -7
  102. package/dist/docs/reference/channels.md +11 -19
  103. package/dist/docs/reference/cli.html +11 -11
  104. package/dist/docs/reference/cli.md +23 -13
  105. package/dist/docs/reference/connections.html +8 -8
  106. package/dist/docs/reference/connections.md +2 -1
  107. package/dist/docs/reference/extensions.html +7 -7
  108. package/dist/docs/reference/extensions.md +2 -0
  109. package/dist/docs/reference/hooks.html +6 -6
  110. package/dist/docs/reference/http-api.html +6 -6
  111. package/dist/docs/reference/instructions.html +6 -6
  112. package/dist/docs/reference/playground.html +5 -5
  113. package/dist/docs/reference/project-layout.html +6 -6
  114. package/dist/docs/reference/prompt.html +6 -6
  115. package/dist/docs/reference/result.html +6 -6
  116. package/dist/docs/reference/schedules.html +6 -6
  117. package/dist/docs/reference/sessions.html +5 -5
  118. package/dist/docs/reference/skills.html +6 -6
  119. package/dist/docs/reference/subagents.html +6 -6
  120. package/dist/docs/reference/tools.html +6 -6
  121. package/dist/docs/scaffolding-agents.html +6 -6
  122. package/dist/docs/scaffolding-agents.md +2 -1
  123. package/dist/docs/skills/ab.html +6 -6
  124. package/dist/docs/skills/create-agent.html +8 -8
  125. package/dist/docs/skills/create-agent.md +1 -1
  126. package/dist/docs/skills/debug.html +6 -6
  127. package/dist/docs/skills/debug.md +1 -1
  128. package/dist/docs/skills/evals.html +8 -8
  129. package/dist/docs/skills/evals.md +1 -1
  130. package/dist/docs/skills/framework-map.html +6 -6
  131. package/dist/docs/skills/framework-map.md +4 -2
  132. package/dist/docs/skills/github.html +8 -8
  133. package/dist/docs/skills/github.md +1 -1
  134. package/dist/docs/skills/hillclimb.html +6 -6
  135. package/dist/docs/skills/index.html +5 -5
  136. package/dist/docs/skills/mcp-auth.html +6 -6
  137. package/dist/docs/skills/otel.html +8 -8
  138. package/dist/docs/skills/otel.md +3 -3
  139. package/dist/docs/skills/setup-slack.html +6 -6
  140. package/dist/docs/storage.html +6 -6
  141. package/dist/docs/templates/agentic-owners.html +6 -6
  142. package/dist/docs/templates/agents-md.html +6 -6
  143. package/dist/docs/templates/code-wiki.html +6 -6
  144. package/dist/docs/templates/demo.html +6 -6
  145. package/dist/docs/templates/grokbot-agents.html +6 -6
  146. package/dist/docs/templates/pr-autofixer.html +6 -6
  147. package/dist/docs/templates/security-help.html +6 -6
  148. package/dist/docs/templates/security-reviewer.html +6 -6
  149. package/dist/docs/templates/triage.html +6 -6
  150. package/dist/docs/troubleshooting.html +6 -6
  151. package/dist/docs/troubleshooting.md +1 -1
  152. package/dist/extensions/improve/extension.d.ts +46 -0
  153. package/dist/extensions/improve/extension.d.ts.map +1 -0
  154. package/dist/extensions/improve/extension.js +41 -0
  155. package/dist/extensions/improve/skills/yourself.d.ts +4 -0
  156. package/dist/extensions/improve/skills/yourself.d.ts.map +1 -0
  157. package/dist/extensions/improve/skills/yourself.js +43 -0
  158. package/dist/index.d.ts +4 -5
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +3 -4
  161. package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -1
  162. package/dist/internal/builtin-tools/artifacts.js +2 -3
  163. package/dist/internal/channel-route-dispatch.d.ts +13 -0
  164. package/dist/internal/channel-route-dispatch.d.ts.map +1 -0
  165. package/dist/internal/channel-route-dispatch.js +62 -0
  166. package/dist/internal/channel-state.d.ts +17 -0
  167. package/dist/internal/channel-state.d.ts.map +1 -0
  168. package/dist/internal/channel-state.js +78 -0
  169. package/dist/internal/cli-ax.d.ts +7 -0
  170. package/dist/internal/cli-ax.d.ts.map +1 -1
  171. package/dist/internal/cli-ax.js +99 -1
  172. package/dist/internal/cli-cursor.d.ts.map +1 -1
  173. package/dist/internal/cli-cursor.js +2 -0
  174. package/dist/internal/cli-deploy.d.ts.map +1 -1
  175. package/dist/internal/cli-deploy.js +61 -25
  176. package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
  177. package/dist/internal/cli-mcp-oauth.js +15 -0
  178. package/dist/internal/cli-mcp.d.ts.map +1 -1
  179. package/dist/internal/cli-mcp.js +12 -0
  180. package/dist/internal/cli-slack.d.ts.map +1 -1
  181. package/dist/internal/cli-slack.js +8 -2
  182. package/dist/internal/cursor/backend-client.d.ts +25 -0
  183. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  184. package/dist/internal/cursor/backend-client.js +57 -2
  185. package/dist/internal/cursor/credentials.d.ts +8 -2
  186. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  187. package/dist/internal/cursor/credentials.js +27 -5
  188. package/dist/internal/deploy-client.d.ts +35 -0
  189. package/dist/internal/deploy-client.d.ts.map +1 -1
  190. package/dist/internal/deploy-client.js +46 -0
  191. package/dist/internal/deploy-manifest.d.ts +26 -0
  192. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  193. package/dist/internal/deploy-manifest.js +99 -13
  194. package/dist/internal/describe-error.d.ts +1 -0
  195. package/dist/internal/describe-error.d.ts.map +1 -1
  196. package/dist/internal/describe-error.js +25 -0
  197. package/dist/internal/discovery/agent.d.ts.map +1 -1
  198. package/dist/internal/discovery/agent.js +1 -0
  199. package/dist/internal/discovery/info.d.ts.map +1 -1
  200. package/dist/internal/discovery/info.js +7 -3
  201. package/dist/internal/discovery/modules.d.ts +1 -1
  202. package/dist/internal/discovery/modules.d.ts.map +1 -1
  203. package/dist/internal/discovery/modules.js +1 -0
  204. package/dist/internal/discovery/project.d.ts.map +1 -1
  205. package/dist/internal/discovery/project.js +3 -0
  206. package/dist/internal/discovery/reminders.d.ts +7 -0
  207. package/dist/internal/discovery/reminders.d.ts.map +1 -0
  208. package/dist/internal/discovery/reminders.js +65 -0
  209. package/dist/internal/discovery/subagent.js +1 -0
  210. package/dist/internal/distribution.d.ts +5 -0
  211. package/dist/internal/distribution.d.ts.map +1 -1
  212. package/dist/internal/distribution.js +17 -0
  213. package/dist/internal/framework-storage-selection.d.ts +14 -3
  214. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  215. package/dist/internal/framework-storage-selection.js +36 -6
  216. package/dist/internal/guest-network.d.ts +4 -10
  217. package/dist/internal/guest-network.d.ts.map +1 -1
  218. package/dist/internal/guest-network.js +44 -26
  219. package/dist/internal/hosted-admission-adapter.d.ts +2 -0
  220. package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
  221. package/dist/internal/hosted-catch-protocol.d.ts +51 -0
  222. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -0
  223. package/dist/internal/hosted-catch-protocol.js +103 -0
  224. package/dist/internal/hosted-catch.d.ts +40 -0
  225. package/dist/internal/hosted-catch.d.ts.map +1 -0
  226. package/dist/internal/hosted-catch.js +149 -0
  227. package/dist/internal/hosted-delivery-protocol.d.ts +89 -0
  228. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  229. package/dist/internal/hosted-delivery-protocol.js +309 -0
  230. package/dist/internal/hosted-delivery.d.ts +20 -1
  231. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  232. package/dist/internal/hosted-delivery.js +179 -36
  233. package/dist/internal/hosted-execution-diag.d.ts +4 -1
  234. package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
  235. package/dist/internal/hosted-execution-diag.js +13 -4
  236. package/dist/internal/hosted-execution-flush.d.ts +3 -0
  237. package/dist/internal/hosted-execution-flush.d.ts.map +1 -1
  238. package/dist/internal/hosted-execution-flush.js +2 -4
  239. package/dist/internal/http-control-plane-session.d.ts +30 -0
  240. package/dist/internal/http-control-plane-session.d.ts.map +1 -0
  241. package/dist/internal/http-control-plane-session.js +83 -0
  242. package/dist/internal/legacy-command-guard.d.ts +22 -0
  243. package/dist/internal/legacy-command-guard.d.ts.map +1 -0
  244. package/dist/internal/legacy-command-guard.js +51 -0
  245. package/dist/internal/local-control-plane.d.ts +18 -2
  246. package/dist/internal/local-control-plane.d.ts.map +1 -1
  247. package/dist/internal/local-control-plane.js +199 -17
  248. package/dist/internal/platform-timers.d.ts +7 -0
  249. package/dist/internal/platform-timers.d.ts.map +1 -1
  250. package/dist/internal/platform-timers.js +139 -0
  251. package/dist/internal/reminder-control-plane-protocol.d.ts +189 -0
  252. package/dist/internal/reminder-control-plane-protocol.d.ts.map +1 -0
  253. package/dist/internal/reminder-control-plane-protocol.js +251 -0
  254. package/dist/internal/reminder-runner.d.ts +56 -6
  255. package/dist/internal/reminder-runner.d.ts.map +1 -1
  256. package/dist/internal/reminder-runner.js +372 -57
  257. package/dist/internal/reminder-schedule.d.ts +5 -2
  258. package/dist/internal/reminder-schedule.d.ts.map +1 -1
  259. package/dist/internal/reminder-schedule.js +8 -6
  260. package/dist/internal/reminder-store.d.ts +24 -7
  261. package/dist/internal/reminder-store.d.ts.map +1 -1
  262. package/dist/internal/reminder-store.js +6 -5
  263. package/dist/internal/request-error-status.d.ts +2 -0
  264. package/dist/internal/request-error-status.d.ts.map +1 -1
  265. package/dist/internal/request-error-status.js +22 -3
  266. package/dist/internal/resolve-prod-target.d.ts +2 -0
  267. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  268. package/dist/internal/resolve-prod-target.js +13 -0
  269. package/dist/internal/scm/pr-url.d.ts +40 -0
  270. package/dist/internal/scm/pr-url.d.ts.map +1 -1
  271. package/dist/internal/scm/pr-url.js +93 -14
  272. package/dist/internal/sdk-runner.d.ts.map +1 -1
  273. package/dist/internal/sdk-runner.js +4 -3
  274. package/dist/internal/server.d.ts.map +1 -1
  275. package/dist/internal/server.js +118 -77
  276. package/dist/internal/session-engine.d.ts +6 -6
  277. package/dist/internal/session-engine.d.ts.map +1 -1
  278. package/dist/internal/session-engine.js +100 -67
  279. package/dist/playground/assets/{index-BaQzjaNK.js → index-BMDqAeXu.js} +34 -34
  280. package/dist/playground/assets/index-LUgJoWdL.css +1 -0
  281. package/dist/playground/index.html +2 -2
  282. package/dist/reminders.d.ts +24 -5
  283. package/dist/reminders.d.ts.map +1 -1
  284. package/dist/reminders.js +28 -5
  285. package/dist/storage-backends/cursor-hosted.d.ts +6 -0
  286. package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
  287. package/dist/storage-backends/cursor-hosted.js +29 -1
  288. package/dist/types.d.ts +122 -25
  289. package/dist/types.d.ts.map +1 -1
  290. package/docs/README.md +4 -0
  291. package/docs/deployment.md +7 -2
  292. package/docs/evals.md +3 -2
  293. package/docs/guides/cloud-agents.md +4 -3
  294. package/docs/guides/github.md +2 -1
  295. package/docs/guides/grokbot-agents.md +2 -2
  296. package/docs/guides/improve.md +96 -0
  297. package/docs/guides/opentelemetry.md +3 -4
  298. package/docs/guides/slack.md +2 -1
  299. package/docs/reference/agent-config.md +5 -2
  300. package/docs/reference/channels.md +11 -19
  301. package/docs/reference/cli.md +23 -13
  302. package/docs/reference/connections.md +2 -1
  303. package/docs/reference/extensions.md +2 -0
  304. package/docs/scaffolding-agents.md +2 -1
  305. package/docs/troubleshooting.md +1 -1
  306. package/package.json +10 -3
  307. package/skills/create-agent/SKILL.md +1 -1
  308. package/skills/debug/SKILL.md +1 -1
  309. package/skills/evals/SKILL.md +1 -1
  310. package/skills/framework-map/SKILL.md +4 -2
  311. package/skills/github/SKILL.md +1 -1
  312. package/skills/otel/SKILL.md +3 -3
  313. package/src/bin/agent-serve.ts +28 -11
  314. package/src/channels/bitbucket/types.ts +2 -4
  315. package/src/channels/deployments/types.ts +5 -8
  316. package/src/channels/github/github-channel.ts +8 -8
  317. package/src/channels/github/types.ts +7 -4
  318. package/src/channels/gitlab/types.ts +2 -5
  319. package/src/channels/origin/origin-channel.ts +29 -13
  320. package/src/channels/origin/types.ts +7 -3
  321. package/src/channels/slack/defaults.ts +3 -0
  322. package/src/channels/slack/dispatch.ts +1 -0
  323. package/src/channels/slack/live-delivery.ts +53 -12
  324. package/src/channels/slack/types.ts +4 -3
  325. package/src/channels.ts +157 -10
  326. package/src/connections.ts +2 -1
  327. package/src/extensions/improve/extension.ts +70 -0
  328. package/src/extensions/improve/skills/yourself.ts +50 -0
  329. package/src/index.ts +6 -3
  330. package/src/internal/builtin-tools/artifacts.ts +2 -3
  331. package/src/internal/channel-route-dispatch.ts +66 -0
  332. package/src/internal/channel-state.ts +96 -0
  333. package/src/internal/cli-ax.ts +110 -1
  334. package/src/internal/cli-cursor.ts +4 -1
  335. package/src/internal/cli-deploy.ts +80 -22
  336. package/src/internal/cli-mcp-oauth.ts +18 -0
  337. package/src/internal/cli-mcp.ts +11 -0
  338. package/src/internal/cli-slack.ts +15 -2
  339. package/src/internal/cursor/backend-client.ts +90 -2
  340. package/src/internal/cursor/credentials.ts +35 -7
  341. package/src/internal/deploy-client.ts +70 -0
  342. package/src/internal/deploy-manifest.ts +131 -12
  343. package/src/internal/describe-error.ts +28 -0
  344. package/src/internal/discovery/agent.ts +1 -0
  345. package/src/internal/discovery/info.ts +6 -0
  346. package/src/internal/discovery/modules.ts +2 -4
  347. package/src/internal/discovery/project.ts +3 -0
  348. package/src/internal/discovery/reminders.ts +65 -0
  349. package/src/internal/discovery/subagent.ts +1 -0
  350. package/src/internal/distribution.ts +20 -0
  351. package/src/internal/framework-storage-selection.ts +43 -6
  352. package/src/internal/guest-network.ts +46 -29
  353. package/src/internal/hosted-admission-adapter.ts +2 -0
  354. package/src/internal/hosted-catch-protocol.ts +130 -0
  355. package/src/internal/hosted-catch.ts +192 -0
  356. package/src/internal/hosted-delivery-protocol.ts +483 -0
  357. package/src/internal/hosted-delivery.ts +303 -43
  358. package/src/internal/hosted-execution-diag.ts +21 -3
  359. package/src/internal/hosted-execution-flush.ts +6 -3
  360. package/src/internal/http-control-plane-session.ts +104 -0
  361. package/src/internal/legacy-command-guard.ts +59 -0
  362. package/src/internal/local-control-plane.ts +281 -22
  363. package/src/internal/platform-timers.ts +191 -0
  364. package/src/internal/reminder-control-plane-protocol.ts +512 -0
  365. package/src/internal/reminder-runner.ts +481 -57
  366. package/src/internal/reminder-schedule.ts +11 -6
  367. package/src/internal/reminder-store.ts +27 -7
  368. package/src/internal/request-error-status.ts +27 -3
  369. package/src/internal/resolve-prod-target.ts +15 -0
  370. package/src/internal/scm/pr-url.ts +167 -20
  371. package/src/internal/sdk-runner.ts +2 -1
  372. package/src/internal/server.ts +151 -88
  373. package/src/internal/session-engine.ts +146 -83
  374. package/src/reminders.ts +35 -4
  375. package/src/storage-backends/cursor-hosted.ts +40 -1
  376. package/src/types.ts +134 -26
  377. package/dist/docs/assets/chunks/@localSearchIndexroot.CJxMklAy.js +0 -1
  378. package/dist/docs/assets/guides_cloud-agents.md.DS8RIjwx.js +0 -9
  379. package/dist/docs/assets/index.md.BW_6tOgR.js +0 -5
  380. package/dist/docs/assets/skills_framework-map.md.haibFyoB.js +0 -1
  381. package/dist/docs/assets/troubleshooting.md.Cus_YZga.js +0 -1
  382. package/dist/playground/assets/index-CceqnLTX.css +0 -1
  383. /package/dist/docs/assets/{evals.md.CbMoebP1.lean.js → evals.md.C1ekS3k2.lean.js} +0 -0
  384. /package/dist/docs/assets/{guides_github.md.c0gdGJ-D.lean.js → guides_github.md.BH33UEBJ.lean.js} +0 -0
  385. /package/dist/docs/assets/{guides_grokbot-agents.md.DVqdhBKb.lean.js → guides_grokbot-agents.md.DyV-WArv.lean.js} +0 -0
  386. /package/dist/docs/assets/{index.md.BW_6tOgR.lean.js → index.md.BjH1w2ZW.lean.js} +0 -0
  387. /package/dist/docs/assets/{reference_agent-config.md.CHNpiyp4.lean.js → reference_agent-config.md.CvoL6pof.lean.js} +0 -0
  388. /package/dist/docs/assets/{reference_connections.md.Di6jJAXF.lean.js → reference_connections.md.BojkC6c5.lean.js} +0 -0
  389. /package/dist/docs/assets/{reference_extensions.md.CGmMLblt.lean.js → reference_extensions.md.CPWt00ds.lean.js} +0 -0
  390. /package/dist/docs/assets/{scaffolding-agents.md.em43xlY1.lean.js → scaffolding-agents.md.Kctn3OVb.lean.js} +0 -0
  391. /package/dist/docs/assets/{skills_create-agent.md.BVoWPcan.lean.js → skills_create-agent.md.Q3h6Je-e.lean.js} +0 -0
  392. /package/dist/docs/assets/{skills_evals.md.723kpUmA.lean.js → skills_evals.md.BhovOvrl.lean.js} +0 -0
  393. /package/dist/docs/assets/{skills_github.md.D0JahM8c.lean.js → skills_github.md.hgFX_oKY.lean.js} +0 -0
  394. /package/dist/docs/assets/{skills_otel.md.CqhobH3B.lean.js → skills_otel.md.B5Ddv1xH.lean.js} +0 -0
  395. /package/dist/docs/assets/{troubleshooting.md.Cus_YZga.lean.js → troubleshooting.md.CYEAO9bM.lean.js} +0 -0
package/src/types.ts CHANGED
@@ -281,20 +281,8 @@ export interface AgentConfig {
281
281
  */
282
282
  tools?: ToolName[];
283
283
  /**
284
- * Hosted architecture this agent deploys onto. Omit or `"v1"` keeps the
285
- * current control plane and engine-minted conversation keys. `"v2"`
286
- * deploys onto the v2 control plane (v2 APIs and schemas). Omitted
287
- * channel `continuation` then inherits from declared events (`github.pr/v2`,
288
- * `github.issue/v2`, `github.none/v2`, `slack.thread/v2`, `origin.pr/v2`,
289
- * `deployments.deployment/v2`, `change_monitors.checkpoint/v2`,
290
- * `issues.issue/v2`, `none/v2`). An explicit per-channel selector
291
- * still overrides.
292
- *
293
- * ```ts
294
- * export default defineAgent({
295
- * architecture: "v2",
296
- * });
297
- * ```
284
+ * Hosted architecture override. Leave this unset unless Cursor instructs
285
+ * you to select a specific architecture.
298
286
  */
299
287
  architecture?: AgentArchitecture;
300
288
  }
@@ -1790,7 +1778,14 @@ export type SessionEventPayload =
1790
1778
  type: "turn.bound";
1791
1779
  data: { requestId: string };
1792
1780
  }
1793
- | { type: "turn.failed"; data: { message: string } }
1781
+ | {
1782
+ type: "turn.failed";
1783
+ data: {
1784
+ message: string;
1785
+ /** Machine-readable terminal status. Omitted on legacy stored events. */
1786
+ status?: "error" | "cancelled";
1787
+ };
1788
+ }
1794
1789
  | {
1795
1790
  /**
1796
1791
  * A Slack follow-up queued mid-turn reached the running agent: the
@@ -1965,6 +1960,10 @@ export interface TurnOutcome {
1965
1960
  status: "finished" | "error" | "cancelled";
1966
1961
  result?: string;
1967
1962
  errorMessage?: string;
1963
+ /** Stable machine-readable runner code when the failure supplied one. */
1964
+ errorCode?: string;
1965
+ /** Why a cancelled turn stopped, when the engine observed the boundary. */
1966
+ cancellationReason?: "signal" | "runner";
1968
1967
  usage?: TurnUsage;
1969
1968
  /** Cost of {@link usage} from the Cloud Agents cost endpoint. */
1970
1969
  cost?: TurnCost;
@@ -2035,7 +2034,10 @@ export interface ChannelSession {
2035
2034
  getEventStream(options?: {
2036
2035
  startIndex?: number;
2037
2036
  }): Promise<ReadableStream<Uint8Array>>;
2038
- /** Resolves when the currently running turn reaches a terminal event. */
2037
+ /**
2038
+ * Resolves after the currently running turn reaches a terminal event and
2039
+ * handlers already queued for that session have settled.
2040
+ */
2039
2041
  waitForCompletion(): Promise<TurnOutcome>;
2040
2042
  /** Re-key the session's channel-local continuation token. */
2041
2043
  setContinuationToken(token: string | null): Promise<void>;
@@ -2396,7 +2398,14 @@ export interface ReceiveInput {
2396
2398
  target?: JsonObject;
2397
2399
  }
2398
2400
 
2399
- /** Per-event channel context: live (persisted) state plus session ops. */
2401
+ /**
2402
+ * Per-event channel context. `state` is mutable. Turn events receive the
2403
+ * state snapshot captured for that turn; handler mutations are recursively
2404
+ * merged into the latest persisted state so fields refreshed by overlapping
2405
+ * deliveries survive. At paths changed by the handler, objects merge
2406
+ * recursively, arrays and scalars replace the latest value, and deletion
2407
+ * removes the latest value. Events outside a turn receive current live state.
2408
+ */
2400
2409
  export interface ChannelEventContext<TState = JsonValue> {
2401
2410
  channelId: string;
2402
2411
  state: TState;
@@ -2413,6 +2422,11 @@ export interface SessionContext {
2413
2422
  * relative path cannot read another session's files.
2414
2423
  */
2415
2424
  host: HostContext;
2425
+ /**
2426
+ * Durable artifacts bound to this event's session and turn. `tag`
2427
+ * auto-fills both ids and rejects a conflicting explicit `sessionId`.
2428
+ */
2429
+ artifacts: ArtifactsApi;
2416
2430
  }
2417
2431
 
2418
2432
  export type ChannelEventHandler<
@@ -2437,6 +2451,13 @@ export type ChannelEventHandlers<TState = JsonValue> = {
2437
2451
  /** Bound helpers passed to {@link ChannelConfig.onStart}. */
2438
2452
  export interface ChannelStartArgs {
2439
2453
  send: SendMessageFn;
2454
+ /**
2455
+ * Hosted architecture from {@link AgentConfig.architecture}. Omitted
2456
+ * means v1. Host pipelines that call `send()` themselves (instead of
2457
+ * letting the channel adapter stamp continuation) branch on this so
2458
+ * v1 `continuationToken` and v2 `claim` stay mutually exclusive.
2459
+ */
2460
+ architecture?: AgentArchitecture;
2440
2461
  getSession(sessionId: string): Promise<ChannelSession | null>;
2441
2462
  receive(
2442
2463
  channel: ChannelDefinition | HttpChannelDefinition | string,
@@ -2607,9 +2628,8 @@ export interface HttpChannelConfig {
2607
2628
  /** Route auth chain. Defaults to `[localDevStrict()]`. */
2608
2629
  auth?: AuthPolicy[];
2609
2630
  /**
2610
- * Continuation selector. Omitted inherits {@link AgentConfig.architecture}:
2611
- * `"none/v1"` unless the agent set `architecture: "v2"` (then `"none/v2"`
2612
- * → `evt:`). Override with an explicit `"none/v1"` or `"none/v2"`.
2631
+ * Continuation selector. Omit this to inherit the agent architecture's
2632
+ * default. Set it explicitly only when migrating persisted identities.
2613
2633
  */
2614
2634
  continuation?: ContinuationIdentity;
2615
2635
  /**
@@ -2717,6 +2737,8 @@ export type ArtifactsDefinition = ArtifactsConfig &
2717
2737
  */
2718
2738
  export interface ResultContext {
2719
2739
  session: SessionInfo;
2740
+ /** Durable channel state captured for this turn. */
2741
+ channelState: JsonValue;
2720
2742
  host: HostContext;
2721
2743
  artifacts: ArtifactsApi;
2722
2744
  stateRoot: string;
@@ -2843,12 +2865,39 @@ export interface ScheduleConfig {
2843
2865
 
2844
2866
  export type ScheduleDefinition = ScheduleConfig & BrandedDefinition<"schedule">;
2845
2867
 
2868
+ // ============================================================================
2869
+ // Reminder handlers (agent/reminders/*) — named durable fire policies
2870
+ // ============================================================================
2871
+
2872
+ /**
2873
+ * Authored at `agent/reminders/<name>.ts`. The registry name is the module
2874
+ * stem. Pass the discovered definition to {@link ReminderCreateInput.handler}
2875
+ * with serializable {@link ReminderCreateInput.args}; the engine persists the
2876
+ * stem, not the function.
2877
+ */
2878
+ export interface ReminderHandlerConfig {
2879
+ /**
2880
+ * Invoked on every fire with {@link ReminderFireContext} (including the
2881
+ * create-time {@link ReminderFireContext.args} blob).
2882
+ */
2883
+ run: (ctx: ReminderFireContext) => Promise<ReminderFireResult>;
2884
+ }
2885
+
2886
+ export type ReminderDefinition = ReminderHandlerConfig &
2887
+ BrandedDefinition<"reminder">;
2888
+
2889
+ export interface DiscoveredReminder {
2890
+ name: string;
2891
+ definition: ReminderDefinition;
2892
+ }
2893
+
2846
2894
  // ============================================================================
2847
2895
  // Reminders (runtime per-session wakes)
2848
2896
  // ============================================================================
2849
2897
 
2850
2898
  export type ReminderBusyPolicy = "skipIfBusy" | "queueBehindTurn";
2851
2899
 
2900
+ /** Public reminder status. Internal claim state (`firing`) is not exposed. */
2852
2901
  export type ReminderStatus = "armed" | "completed" | "cancelled" | "disarmed";
2853
2902
 
2854
2903
  export type ReminderScheduleKind = "every" | "cron" | "delay" | "at";
@@ -2880,6 +2929,11 @@ export interface ReminderUntilContext {
2880
2929
 
2881
2930
  export interface ReminderFireContext extends ReminderUntilContext {
2882
2931
  appAuth: AuthContext;
2932
+ /**
2933
+ * Serializable args from {@link ReminderCreateInput.args} when the fire
2934
+ * uses a named {@link ReminderCreateInput.handler}. Empty object otherwise.
2935
+ */
2936
+ args: JsonObject;
2883
2937
  /** Wake the reminder's already-bound session (target is implicit). */
2884
2938
  followup(args: { message: string }): Promise<ChannelSession>;
2885
2939
  cancel(reason?: string): Promise<void>;
@@ -2894,9 +2948,11 @@ export interface ReminderFireContext extends ReminderUntilContext {
2894
2948
  /**
2895
2949
  * Create a durable wake bound to a channel continuation.
2896
2950
  *
2897
- * Exactly one of `prompt` | `run`, and exactly one of
2951
+ * Exactly one of `prompt` | `handler` | `run`, and exactly one of
2898
2952
  * `every` | `cron` | `delay` | `at`. Prompt fires always follow up into the
2899
- * bound session.
2953
+ * bound session. Named `handler` resolves `agent/reminders/<name>.ts` on
2954
+ * every fire (survives restart). Anonymous `run` stays supported on local
2955
+ * and hosted v1; hosted architecture v2 rejects it at create.
2900
2956
  *
2901
2957
  * @example Recurring (host policy)
2902
2958
  * ```ts
@@ -2914,6 +2970,28 @@ export interface ReminderFireContext extends ReminderUntilContext {
2914
2970
  * });
2915
2971
  * ```
2916
2972
  *
2973
+ * @example Named handler (durable across restart / hosted v2)
2974
+ * ```ts
2975
+ * // agent/reminders/verdict_recheck.ts
2976
+ * export default defineReminder({
2977
+ * async run({ args, followup }) {
2978
+ * // ...
2979
+ * return { action: "delivered" };
2980
+ * },
2981
+ * });
2982
+ *
2983
+ * import verdictRecheck from "./reminders/verdict_recheck.js";
2984
+ *
2985
+ * await host.reminders.create({
2986
+ * purpose: "verdict_recheck",
2987
+ * channelId: "origin",
2988
+ * continuationToken,
2989
+ * delay: "15m",
2990
+ * handler: verdictRecheck,
2991
+ * args: { headSha: "abc" },
2992
+ * });
2993
+ * ```
2994
+ *
2917
2995
  * @example One-shot (agent tool / prompt form)
2918
2996
  * ```ts
2919
2997
  * await host.reminders.create({
@@ -2934,8 +3012,22 @@ export interface ReminderCreateInput {
2934
3012
  continuationToken: string;
2935
3013
  /** Optional opaque metadata (e.g. `{ prUrl }`). */
2936
3014
  target?: Record<string, unknown>;
2937
- /** Exactly one of prompt or run. */
3015
+ /** Exactly one of prompt, handler, or run. */
2938
3016
  prompt?: string;
3017
+ /**
3018
+ * A definition discovered from `agent/reminders/<name>.ts`, or its stem
3019
+ * for compatibility. Mutually exclusive with `prompt` and `run`. The
3020
+ * definition form avoids coupling callers to a filename string; discovery
3021
+ * resolves it to the stable stem persisted by the control plane. Do not
3022
+ * combine with {@link until}; encode stop conditions in {@link args} and
3023
+ * the handler body.
3024
+ */
3025
+ handler?: ReminderDefinition | string;
3026
+ /**
3027
+ * Serializable args for {@link handler} (UTF-8 JSON capped at 32 KiB).
3028
+ * Only valid with `handler`.
3029
+ */
3030
+ args?: JsonObject;
2939
3031
  run?: (ctx: ReminderFireContext) => Promise<ReminderFireResult>;
2940
3032
  /** Exactly one schedule shape. */
2941
3033
  every?: string;
@@ -2945,6 +3037,9 @@ export interface ReminderCreateInput {
2945
3037
  /**
2946
3038
  * Auto-cancel: function (host evaluates, true → cancel) XOR prompt string
2947
3039
  * (agent-facing stop condition; platform does not interpret it).
3040
+ * Valid with `prompt` (string until) and legacy `run` (function until on
3041
+ * local / hosted v1). Not valid with named `handler`. Function until is
3042
+ * rejected on hosted architecture v2.
2948
3043
  */
2949
3044
  until?: string | ((ctx: ReminderUntilContext) => Promise<boolean>);
2950
3045
  /**
@@ -2962,6 +3057,10 @@ export interface ReminderInfo {
2962
3057
  scheduleKind: ReminderScheduleKind;
2963
3058
  scheduleValue: string;
2964
3059
  prompt?: string;
3060
+ /** Named handler stem when create used `handler`. */
3061
+ handler?: string;
3062
+ /** Serializable args when create used `handler`. */
3063
+ args?: JsonObject;
2965
3064
  untilPrompt?: string;
2966
3065
  busyPolicy: ReminderBusyPolicy;
2967
3066
  status: ReminderStatus;
@@ -3213,6 +3312,8 @@ export interface AgentProject {
3213
3312
  httpChannel: HttpChannelDefinition;
3214
3313
  channels: DiscoveredChannel[];
3215
3314
  schedules: DiscoveredSchedule[];
3315
+ /** Named reminder handlers from `agent/reminders/*` (optional / additive). */
3316
+ reminders?: DiscoveredReminder[];
3216
3317
  hooks: DiscoveredHook[];
3217
3318
  /** Live A/B metric experiments (`defineAB`). */
3218
3319
  abs: DiscoveredAB[];
@@ -3318,6 +3419,8 @@ export interface AgentProjectInfo {
3318
3419
  slackChannelPosts?: readonly string[];
3319
3420
  }>;
3320
3421
  schedules: Array<{ name: string; cron: string; kind: "markdown" | "run" }>;
3422
+ /** Named reminder handlers (`agent/reminders/<name>.ts`) when present. */
3423
+ reminders?: Array<{ name: string }>;
3321
3424
  hooks: string[];
3322
3425
  /** Live A/B experiment names (`defineAB` under `agent/ab`). */
3323
3426
  abs: string[];
@@ -3467,8 +3570,11 @@ export interface ServeOptions {
3467
3570
  stateRoot?: string;
3468
3571
  /**
3469
3572
  * Cursor API key for the SDK runner and Cursor account MCP connections.
3470
- * When omitted, falls back to `CURSOR_API_KEY`, then to the credential
3471
- * stored by `agent-sdk login`.
3573
+ * When omitted, falls back to `CURSOR_API_KEY`, then
3574
+ * `CURSOR_API_KEY_FILE` (hosted default `/run/cursor/secrets/CURSOR_API_KEY`
3575
+ * when unset), then `CURSOR_SERVICE_ACCOUNT_KEY`, then the credential
3576
+ * stored by `agent-sdk login`. A bind file wins over
3577
+ * `CURSOR_SERVICE_ACCOUNT_KEY`.
3472
3578
  */
3473
3579
  apiKey?: string;
3474
3580
  /** Run schedules on their cron cadence. Defaults to `!dev`. */
@@ -3553,7 +3659,9 @@ export interface ServeOptions {
3553
3659
  * GitHub and Origin subscriptions are registered independently.
3554
3660
  * The stream is read as the host's Cursor user, so this requires a signed-in
3555
3661
  * host: `serve` throws when no key resolves from `apiKey` here,
3556
- * {@link ServeOptions.apiKey}, `CURSOR_API_KEY`, or `agent-sdk login`.
3662
+ * {@link ServeOptions.apiKey}, `CURSOR_API_KEY`, `CURSOR_API_KEY_FILE`
3663
+ * (hosted default `/run/cursor/secrets/CURSOR_API_KEY` when unset),
3664
+ * `CURSOR_SERVICE_ACCOUNT_KEY`, or `agent-sdk login`.
3557
3665
  */
3558
3666
  cursorEvents?: {
3559
3667
  repos: string[];