@cursor/july 0.1.101 → 0.1.103

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 (862) hide show
  1. package/AGENTS.md +34 -32
  2. package/README.md +28 -3
  3. package/dist/ab.d.ts +1 -1
  4. package/dist/ab.js +1 -1
  5. package/dist/bin/agent-serve.d.ts +12 -12
  6. package/dist/bin/agent-serve.js +114 -36
  7. package/dist/channels/bitbucket/api.d.ts +176 -0
  8. package/dist/channels/bitbucket/api.d.ts.map +1 -0
  9. package/dist/channels/bitbucket/api.js +419 -0
  10. package/dist/channels/bitbucket/binding.d.ts +71 -0
  11. package/dist/channels/bitbucket/binding.d.ts.map +1 -0
  12. package/dist/channels/bitbucket/binding.js +269 -0
  13. package/dist/channels/bitbucket/bitbucket-channel.d.ts +33 -0
  14. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -0
  15. package/dist/channels/bitbucket/bitbucket-channel.js +120 -0
  16. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +61 -0
  17. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -0
  18. package/dist/channels/bitbucket/bitbucket-webhook.js +394 -0
  19. package/dist/channels/bitbucket/checks.d.ts +67 -0
  20. package/dist/channels/bitbucket/checks.d.ts.map +1 -0
  21. package/dist/channels/bitbucket/checks.js +102 -0
  22. package/dist/channels/bitbucket/cursor-account.d.ts +37 -0
  23. package/dist/channels/bitbucket/cursor-account.d.ts.map +1 -0
  24. package/dist/channels/bitbucket/cursor-account.js +65 -0
  25. package/dist/channels/bitbucket/defaults.d.ts +26 -0
  26. package/dist/channels/bitbucket/defaults.d.ts.map +1 -0
  27. package/dist/channels/bitbucket/defaults.js +73 -0
  28. package/dist/channels/bitbucket/events.d.ts +22 -0
  29. package/dist/channels/bitbucket/events.d.ts.map +1 -0
  30. package/dist/channels/bitbucket/events.js +64 -0
  31. package/dist/channels/bitbucket/index.d.ts +34 -0
  32. package/dist/channels/bitbucket/index.d.ts.map +1 -0
  33. package/dist/channels/bitbucket/index.js +33 -0
  34. package/dist/channels/bitbucket/replay.d.ts +63 -0
  35. package/dist/channels/bitbucket/replay.d.ts.map +1 -0
  36. package/dist/channels/bitbucket/replay.js +304 -0
  37. package/dist/channels/bitbucket/state.d.ts +35 -0
  38. package/dist/channels/bitbucket/state.d.ts.map +1 -0
  39. package/dist/channels/bitbucket/state.js +21 -0
  40. package/dist/channels/bitbucket/types.d.ts +229 -0
  41. package/dist/channels/bitbucket/types.d.ts.map +1 -0
  42. package/dist/channels/bitbucket/types.js +1 -0
  43. package/dist/channels/deployments/deployments-channel.d.ts +22 -14
  44. package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
  45. package/dist/channels/deployments/deployments-channel.js +25 -27
  46. package/dist/channels/deployments/types.d.ts +12 -6
  47. package/dist/channels/deployments/types.d.ts.map +1 -1
  48. package/dist/channels/github/binding.d.ts +6 -0
  49. package/dist/channels/github/binding.d.ts.map +1 -1
  50. package/dist/channels/github/binding.js +3 -3
  51. package/dist/channels/github/cursor-account.d.ts +7 -3
  52. package/dist/channels/github/cursor-account.d.ts.map +1 -1
  53. package/dist/channels/github/cursor-account.js +10 -6
  54. package/dist/channels/github/events.d.ts +1 -1
  55. package/dist/channels/github/events.js +1 -1
  56. package/dist/channels/github/forward.d.ts +1 -1
  57. package/dist/channels/github/forward.d.ts.map +1 -1
  58. package/dist/channels/github/forward.js +3 -2
  59. package/dist/channels/github/github-channel.d.ts +29 -39
  60. package/dist/channels/github/github-channel.d.ts.map +1 -1
  61. package/dist/channels/github/github-channel.js +68 -101
  62. package/dist/channels/github/replay.d.ts +1 -1
  63. package/dist/channels/github/replay.js +1 -1
  64. package/dist/channels/github/state.d.ts +2 -0
  65. package/dist/channels/github/state.d.ts.map +1 -1
  66. package/dist/channels/github/state.js +14 -11
  67. package/dist/channels/github/types.d.ts +2 -4
  68. package/dist/channels/github/types.d.ts.map +1 -1
  69. package/dist/channels/gitlab/api.d.ts +91 -0
  70. package/dist/channels/gitlab/api.d.ts.map +1 -0
  71. package/dist/channels/gitlab/api.js +150 -0
  72. package/dist/channels/gitlab/binding.d.ts +58 -0
  73. package/dist/channels/gitlab/binding.d.ts.map +1 -0
  74. package/dist/channels/gitlab/binding.js +139 -0
  75. package/dist/channels/gitlab/checks.d.ts +110 -0
  76. package/dist/channels/gitlab/checks.d.ts.map +1 -0
  77. package/dist/channels/gitlab/checks.js +126 -0
  78. package/dist/channels/gitlab/cursor-account.d.ts +36 -0
  79. package/dist/channels/gitlab/cursor-account.d.ts.map +1 -0
  80. package/dist/channels/gitlab/cursor-account.js +65 -0
  81. package/dist/channels/gitlab/defaults.d.ts +25 -0
  82. package/dist/channels/gitlab/defaults.d.ts.map +1 -0
  83. package/dist/channels/gitlab/defaults.js +60 -0
  84. package/dist/channels/gitlab/events.d.ts +12 -0
  85. package/dist/channels/gitlab/events.d.ts.map +1 -0
  86. package/dist/channels/gitlab/events.js +28 -0
  87. package/dist/channels/gitlab/gitlab-channel.d.ts +33 -0
  88. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -0
  89. package/dist/channels/gitlab/gitlab-channel.js +120 -0
  90. package/dist/channels/gitlab/gitlab-webhook.d.ts +45 -0
  91. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -0
  92. package/dist/channels/gitlab/gitlab-webhook.js +397 -0
  93. package/dist/channels/gitlab/index.d.ts +31 -0
  94. package/dist/channels/gitlab/index.d.ts.map +1 -0
  95. package/dist/channels/gitlab/index.js +30 -0
  96. package/dist/channels/gitlab/replay.d.ts +105 -0
  97. package/dist/channels/gitlab/replay.d.ts.map +1 -0
  98. package/dist/channels/gitlab/replay.js +206 -0
  99. package/dist/channels/gitlab/state.d.ts +33 -0
  100. package/dist/channels/gitlab/state.d.ts.map +1 -0
  101. package/dist/channels/gitlab/state.js +23 -0
  102. package/dist/channels/gitlab/types.d.ts +214 -0
  103. package/dist/channels/gitlab/types.d.ts.map +1 -0
  104. package/dist/channels/gitlab/types.js +1 -0
  105. package/dist/channels/origin/api.d.ts.map +1 -1
  106. package/dist/channels/origin/api.js +4 -2
  107. package/dist/channels/origin/origin-channel.d.ts +4 -9
  108. package/dist/channels/origin/origin-channel.d.ts.map +1 -1
  109. package/dist/channels/origin/origin-channel.js +8 -48
  110. package/dist/channels/origin/types.d.ts +20 -2
  111. package/dist/channels/origin/types.d.ts.map +1 -1
  112. package/dist/channels/slack/api.d.ts +1 -1
  113. package/dist/channels/slack/api.d.ts.map +1 -1
  114. package/dist/channels/slack/api.js +3 -1
  115. package/dist/channels/slack/assistant.d.ts +1 -1
  116. package/dist/channels/slack/assistant.d.ts.map +1 -1
  117. package/dist/channels/slack/dispatch.d.ts +3 -2
  118. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  119. package/dist/channels/slack/dispatch.js +28 -8
  120. package/dist/channels/slack/eval-directive.d.ts.map +1 -1
  121. package/dist/channels/slack/eval-directive.js +1 -7
  122. package/dist/channels/slack/inbound.d.ts +8 -0
  123. package/dist/channels/slack/inbound.d.ts.map +1 -1
  124. package/dist/channels/slack/inbound.js +28 -0
  125. package/dist/channels/slack/init.d.ts.map +1 -1
  126. package/dist/channels/slack/init.js +3 -3
  127. package/dist/channels/slack/manifest.d.ts.map +1 -1
  128. package/dist/channels/slack/manifest.js +2 -1
  129. package/dist/channels/slack/setup.d.ts +1 -1
  130. package/dist/channels/slack/setup.d.ts.map +1 -1
  131. package/dist/channels/slack/setup.js +6 -13
  132. package/dist/channels/slack/types.d.ts +1 -1
  133. package/dist/channels/slack/types.d.ts.map +1 -1
  134. package/dist/channels.d.ts +1 -1
  135. package/dist/channels.d.ts.map +1 -1
  136. package/dist/client.d.ts +1 -1
  137. package/dist/client.js +1 -1
  138. package/dist/connections.d.ts +1 -1
  139. package/dist/connections.js +1 -1
  140. package/dist/docs/404.html +2 -2
  141. package/dist/docs/ab.html +4 -4
  142. package/dist/docs/assets/{app.BASO9Kih.js → app.DW9pXkpL.js} +1 -1
  143. package/dist/docs/assets/chunks/@localSearchIndexroot.nrl1ifBq.js +1 -0
  144. package/dist/docs/assets/chunks/{VPLocalSearchBox.DwkqxoE0.js → VPLocalSearchBox.CdEIUwDg.js} +1 -1
  145. package/dist/docs/assets/chunks/{theme.CCil_13e.js → theme.YZMHgPgg.js} +2 -2
  146. package/dist/docs/assets/{concepts.md.lwAgBIMI.js → concepts.md.DgEcZOfT.js} +1 -1
  147. package/dist/docs/assets/{concepts.md.lwAgBIMI.lean.js → concepts.md.DgEcZOfT.lean.js} +1 -1
  148. package/dist/docs/assets/{evals.md.CPzDAwoH.js → evals.md.CbMoebP1.js} +1 -1
  149. package/dist/docs/assets/guides_cloud-agents.md.DS8RIjwx.js +9 -0
  150. package/dist/docs/assets/guides_cloud-agents.md.DS8RIjwx.lean.js +1 -0
  151. package/dist/docs/assets/{guides_github.md.BtPr9GaP.js → guides_github.md.DKYiT9do.js} +1 -1
  152. package/dist/docs/assets/{guides_opentelemetry.md.BVTXDCRg.js → guides_opentelemetry.md.COh9jFVg.js} +7 -8
  153. package/dist/docs/assets/{guides_opentelemetry.md.BVTXDCRg.lean.js → guides_opentelemetry.md.COh9jFVg.lean.js} +1 -1
  154. package/dist/docs/assets/index.md.D75GWhPl.js +5 -0
  155. package/dist/docs/assets/{index.md.Bb4k8kUm.lean.js → index.md.D75GWhPl.lean.js} +1 -1
  156. package/dist/docs/assets/{reference_agent-config.md.BHeYMgme.js → reference_agent-config.md.CHNpiyp4.js} +3 -3
  157. package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.js → reference_channels.md.Dz8Cnudp.js} +2 -2
  158. package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.lean.js → reference_channels.md.Dz8Cnudp.lean.js} +1 -1
  159. package/dist/docs/assets/{reference_cli.md.DfoeyvL0.js → reference_cli.md.CJNc_xYK.js} +1 -1
  160. package/dist/docs/assets/reference_extensions.md.DykHW3qL.js +62 -0
  161. package/dist/docs/assets/reference_extensions.md.DykHW3qL.lean.js +1 -0
  162. package/dist/docs/assets/reference_hooks.md.Ddt5DdgJ.js +73 -0
  163. package/dist/docs/assets/{reference_hooks.md.a8BJxMR5.lean.js → reference_hooks.md.Ddt5DdgJ.lean.js} +1 -1
  164. package/dist/docs/assets/{reference_playground.md.DnX5nL-B.js → reference_playground.md.4myJPxrf.js} +1 -1
  165. package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.js → reference_project-layout.md.DuBu9a96.js} +2 -2
  166. package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.lean.js → reference_project-layout.md.DuBu9a96.lean.js} +1 -1
  167. package/dist/docs/assets/reference_result.md.BK5SxDrf.js +19 -0
  168. package/dist/docs/assets/reference_result.md.BK5SxDrf.lean.js +1 -0
  169. package/dist/docs/assets/{reference_sessions.md.NxFP_CAC.js → reference_sessions.md.CueyOHSL.js} +1 -1
  170. package/dist/docs/assets/{reference_sessions.md.NxFP_CAC.lean.js → reference_sessions.md.CueyOHSL.lean.js} +1 -1
  171. package/dist/docs/assets/{reference_skills.md.BFW9retM.js → reference_skills.md.l2ezAcaN.js} +1 -1
  172. package/dist/docs/assets/{reference_tools.md.CvAHsdSp.js → reference_tools.md.aGrn99hP.js} +2 -2
  173. package/dist/docs/assets/skills_framework-map.md.haibFyoB.js +1 -0
  174. package/dist/docs/assets/{skills_framework-map.md.BTi817yv.lean.js → skills_framework-map.md.haibFyoB.lean.js} +1 -1
  175. package/dist/docs/assets/{skills_otel.md.CgiZryR3.js → skills_otel.md.CqhobH3B.js} +3 -3
  176. package/dist/docs/assets/{skills_otel.md.CgiZryR3.lean.js → skills_otel.md.CqhobH3B.lean.js} +1 -1
  177. package/dist/docs/assets/{templates_pr-autofixer.md.x5zl6-GT.js → templates_pr-autofixer.md.Bds_XWcV.js} +2 -2
  178. package/dist/docs/assets/{templates_pr-autofixer.md.x5zl6-GT.lean.js → templates_pr-autofixer.md.Bds_XWcV.lean.js} +1 -1
  179. package/dist/docs/building-with-agents.html +4 -4
  180. package/dist/docs/concepts.html +5 -5
  181. package/dist/docs/concepts.md +5 -7
  182. package/dist/docs/deployment.html +4 -4
  183. package/dist/docs/design/runtime-abstraction.md +2 -3
  184. package/dist/docs/evals.html +6 -6
  185. package/dist/docs/evals.md +9 -7
  186. package/dist/docs/guides/agent-to-agent.html +4 -4
  187. package/dist/docs/guides/cloud-agents.html +35 -0
  188. package/dist/docs/guides/cloud-agents.md +91 -0
  189. package/dist/docs/guides/convert-automation.html +4 -4
  190. package/dist/docs/guides/github.html +6 -6
  191. package/dist/docs/guides/github.md +0 -1
  192. package/dist/docs/guides/human-in-the-loop.html +4 -4
  193. package/dist/docs/guides/mcp-oauth.html +5 -5
  194. package/dist/docs/guides/opentelemetry.html +11 -12
  195. package/dist/docs/guides/opentelemetry.md +41 -17
  196. package/dist/docs/guides/slack.html +4 -4
  197. package/dist/docs/guides/webhooks.html +4 -4
  198. package/dist/docs/hashmap.json +1 -1
  199. package/dist/docs/hillclimbing.html +4 -4
  200. package/dist/docs/index.html +6 -6
  201. package/dist/docs/index.md +7 -3
  202. package/dist/docs/llms-full.txt +765 -209
  203. package/dist/docs/llms.txt +3 -1
  204. package/dist/docs/quickstart.html +4 -4
  205. package/dist/docs/reference/agent-config.html +8 -8
  206. package/dist/docs/reference/agent-config.md +6 -10
  207. package/dist/docs/reference/artifacts.html +5 -5
  208. package/dist/docs/reference/channels.html +6 -6
  209. package/dist/docs/reference/channels.md +18 -8
  210. package/dist/docs/reference/cli.html +5 -5
  211. package/dist/docs/reference/cli.md +3 -4
  212. package/dist/docs/reference/connections.html +4 -4
  213. package/dist/docs/reference/extensions.html +88 -0
  214. package/dist/docs/reference/extensions.md +264 -0
  215. package/dist/docs/reference/hooks.html +69 -10
  216. package/dist/docs/reference/hooks.md +215 -46
  217. package/dist/docs/reference/http-api.html +4 -4
  218. package/dist/docs/reference/instructions.html +4 -4
  219. package/dist/docs/reference/playground.html +5 -5
  220. package/dist/docs/reference/playground.md +3 -0
  221. package/dist/docs/reference/project-layout.html +6 -6
  222. package/dist/docs/reference/project-layout.md +4 -0
  223. package/dist/docs/reference/prompt.html +4 -4
  224. package/dist/docs/reference/result.html +45 -0
  225. package/dist/docs/reference/result.md +89 -0
  226. package/dist/docs/reference/schedules.html +4 -4
  227. package/dist/docs/reference/sessions.html +5 -5
  228. package/dist/docs/reference/sessions.md +3 -1
  229. package/dist/docs/reference/skills.html +6 -6
  230. package/dist/docs/reference/skills.md +2 -0
  231. package/dist/docs/reference/subagents.html +5 -5
  232. package/dist/docs/reference/tools.html +6 -6
  233. package/dist/docs/reference/tools.md +3 -2
  234. package/dist/docs/scaffolding-agents.html +4 -4
  235. package/dist/docs/skills/ab.html +4 -4
  236. package/dist/docs/skills/create-agent.html +4 -4
  237. package/dist/docs/skills/debug.html +4 -4
  238. package/dist/docs/skills/evals.html +4 -4
  239. package/dist/docs/skills/framework-map.html +5 -5
  240. package/dist/docs/skills/framework-map.md +3 -0
  241. package/dist/docs/skills/github.html +4 -4
  242. package/dist/docs/skills/hillclimb.html +4 -4
  243. package/dist/docs/skills/index.html +4 -4
  244. package/dist/docs/skills/mcp-auth.html +4 -4
  245. package/dist/docs/skills/otel.html +7 -7
  246. package/dist/docs/skills/otel.md +8 -3
  247. package/dist/docs/skills/setup-slack.html +4 -4
  248. package/dist/docs/storage.html +4 -4
  249. package/dist/docs/templates/agentic-owners.html +4 -4
  250. package/dist/docs/templates/agents-md.html +4 -4
  251. package/dist/docs/templates/code-wiki.html +4 -4
  252. package/dist/docs/templates/demo.html +4 -4
  253. package/dist/docs/templates/pr-autofixer.html +6 -6
  254. package/dist/docs/templates/pr-autofixer.md +0 -3
  255. package/dist/docs/templates/security-help.html +4 -4
  256. package/dist/docs/templates/security-reviewer.html +4 -4
  257. package/dist/docs/templates/triage.html +4 -4
  258. package/dist/docs/troubleshooting.html +4 -4
  259. package/dist/evals.d.ts +1 -1
  260. package/dist/evals.d.ts.map +1 -1
  261. package/dist/extensions/cursor-cloud-agents/extension.d.ts +9 -7
  262. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  263. package/dist/extensions/cursor-cloud-agents/extension.js +9 -7
  264. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +78 -0
  265. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -0
  266. package/dist/extensions/cursor-cloud-agents/lib/backend.js +286 -0
  267. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +5 -0
  268. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -0
  269. package/dist/extensions/cursor-cloud-agents/lib/inputs.js +4 -0
  270. package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts +8 -0
  271. package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts.map +1 -0
  272. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +15 -0
  273. package/dist/extensions/cursor-cloud-agents/skills/handoff.md +21 -7
  274. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts +4 -0
  275. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -0
  276. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +26 -0
  277. package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts +4 -0
  278. package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts.map +1 -0
  279. package/dist/extensions/cursor-cloud-agents/tools/dump.js +54 -0
  280. package/dist/extensions/cursor-cloud-agents/tools/get.d.ts +4 -0
  281. package/dist/extensions/cursor-cloud-agents/tools/get.d.ts.map +1 -0
  282. package/dist/extensions/cursor-cloud-agents/tools/get.js +25 -0
  283. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
  284. package/dist/extensions/cursor-cloud-agents/tools/launch.js +14 -38
  285. package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
  286. package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts +4 -0
  287. package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts.map +1 -0
  288. package/dist/extensions/cursor-cloud-agents/tools/{follow_up.js → reply.js} +12 -14
  289. package/dist/extensions.d.ts +54 -17
  290. package/dist/extensions.d.ts.map +1 -1
  291. package/dist/extensions.js +83 -15
  292. package/dist/files-backends/cursor-hosted.d.ts +0 -8
  293. package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
  294. package/dist/files-backends/cursor-hosted.js +1 -11
  295. package/dist/files.d.ts +21 -4
  296. package/dist/files.d.ts.map +1 -1
  297. package/dist/files.js +38 -21
  298. package/dist/index.d.ts +6 -6
  299. package/dist/index.d.ts.map +1 -1
  300. package/dist/index.js +4 -4
  301. package/dist/internal/ab-snapshot.d.ts.map +1 -1
  302. package/dist/internal/ab-snapshot.js +0 -1
  303. package/dist/internal/advertise-tools.d.ts.map +1 -1
  304. package/dist/internal/advertise-tools.js +1 -3
  305. package/dist/internal/authored-alias-hooks.d.ts +4 -13
  306. package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
  307. package/dist/internal/authored-alias-hooks.js +4 -20
  308. package/dist/internal/authored-loaders.d.ts +2 -3
  309. package/dist/internal/authored-loaders.d.ts.map +1 -1
  310. package/dist/internal/authored-loaders.js +6 -20
  311. package/dist/internal/channel-dispatch.d.ts +43 -0
  312. package/dist/internal/channel-dispatch.d.ts.map +1 -0
  313. package/dist/internal/channel-dispatch.js +77 -0
  314. package/dist/internal/chat-client.d.ts +1 -1
  315. package/dist/internal/chat-client.js +1 -1
  316. package/dist/internal/cli-ax.d.ts +5 -5
  317. package/dist/internal/cli-ax.d.ts.map +1 -1
  318. package/dist/internal/cli-ax.js +5 -5
  319. package/dist/internal/cli-bitbucket.d.ts +33 -0
  320. package/dist/internal/cli-bitbucket.d.ts.map +1 -0
  321. package/dist/internal/cli-bitbucket.js +359 -0
  322. package/dist/internal/cli-convert-automation.d.ts +1 -1
  323. package/dist/internal/cli-convert-automation.js +2 -2
  324. package/dist/internal/cli-cursor.d.ts +1 -1
  325. package/dist/internal/cli-cursor.d.ts.map +1 -1
  326. package/dist/internal/cli-cursor.js +2 -4
  327. package/dist/internal/cli-deploy.d.ts.map +1 -1
  328. package/dist/internal/cli-deploy.js +2 -6
  329. package/dist/internal/cli-github.d.ts +1 -1
  330. package/dist/internal/cli-github.js +3 -3
  331. package/dist/internal/cli-gitlab.d.ts +37 -0
  332. package/dist/internal/cli-gitlab.d.ts.map +1 -0
  333. package/dist/internal/cli-gitlab.js +380 -0
  334. package/dist/internal/cli-mcp.d.ts.map +1 -1
  335. package/dist/internal/cli-mcp.js +2 -6
  336. package/dist/internal/cli-slack.d.ts +1 -1
  337. package/dist/internal/cli-slack.d.ts.map +1 -1
  338. package/dist/internal/cli-slack.js +2 -4
  339. package/dist/internal/continuation-channel.d.ts +14 -0
  340. package/dist/internal/continuation-channel.d.ts.map +1 -1
  341. package/dist/internal/continuation-channel.js +56 -3
  342. package/dist/internal/continuation-identity.d.ts +14 -15
  343. package/dist/internal/continuation-identity.d.ts.map +1 -1
  344. package/dist/internal/continuation-identity.js +182 -7
  345. package/dist/internal/conversation-mirror.d.ts.map +1 -1
  346. package/dist/internal/conversation-mirror.js +17 -18
  347. package/dist/internal/convert-automation/types.d.ts +1 -1
  348. package/dist/internal/convert-automation/types.js +1 -1
  349. package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
  350. package/dist/internal/cursor/account-mcp.js +1 -3
  351. package/dist/internal/cursor/backend-client.d.ts +13 -5
  352. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  353. package/dist/internal/cursor/backend-client.js +30 -15
  354. package/dist/internal/cursor/bound-secret-file.d.ts +56 -0
  355. package/dist/internal/cursor/bound-secret-file.d.ts.map +1 -0
  356. package/dist/internal/cursor/bound-secret-file.js +88 -0
  357. package/dist/internal/cursor/credentials.d.ts +39 -5
  358. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  359. package/dist/internal/cursor/credentials.js +58 -8
  360. package/dist/internal/cursor/hosted-bound-secrets.d.ts +41 -0
  361. package/dist/internal/cursor/hosted-bound-secrets.d.ts.map +1 -0
  362. package/dist/internal/cursor/hosted-bound-secrets.js +54 -0
  363. package/dist/internal/cursor/hosted-deployment-secrets.d.ts +19 -5
  364. package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -1
  365. package/dist/internal/cursor/hosted-deployment-secrets.js +29 -9
  366. package/dist/internal/cursor/hosted-store-secrets.d.ts +12 -1
  367. package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -1
  368. package/dist/internal/cursor/hosted-store-secrets.js +16 -1
  369. package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
  370. package/dist/internal/cursor-account-mcp-auth.js +2 -4
  371. package/dist/internal/cursor-deployment-relay.d.ts +6 -2
  372. package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
  373. package/dist/internal/cursor-deployment-relay.js +13 -9
  374. package/dist/internal/deploy-manifest.d.ts +1 -1
  375. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  376. package/dist/internal/deploy-manifest.js +1 -1
  377. package/dist/internal/discovery/ab.d.ts +9 -0
  378. package/dist/internal/discovery/ab.d.ts.map +1 -0
  379. package/dist/internal/discovery/ab.js +113 -0
  380. package/dist/internal/discovery/agent-config.d.ts +35 -0
  381. package/dist/internal/discovery/agent-config.d.ts.map +1 -0
  382. package/dist/internal/discovery/agent-config.js +173 -0
  383. package/dist/internal/discovery/agent.d.ts +16 -0
  384. package/dist/internal/discovery/agent.d.ts.map +1 -0
  385. package/dist/internal/discovery/agent.js +255 -0
  386. package/dist/internal/discovery/channels.d.ts +10 -0
  387. package/dist/internal/discovery/channels.d.ts.map +1 -0
  388. package/dist/internal/discovery/channels.js +97 -0
  389. package/dist/internal/discovery/connections.d.ts +13 -0
  390. package/dist/internal/discovery/connections.d.ts.map +1 -0
  391. package/dist/internal/discovery/connections.js +422 -0
  392. package/dist/internal/discovery/context.d.ts +20 -0
  393. package/dist/internal/discovery/context.d.ts.map +1 -0
  394. package/dist/internal/discovery/context.js +30 -0
  395. package/dist/internal/discovery/cursor-plugin.d.ts +25 -0
  396. package/dist/internal/discovery/cursor-plugin.d.ts.map +1 -0
  397. package/dist/internal/discovery/cursor-plugin.js +568 -0
  398. package/dist/internal/discovery/extension-overlay.d.ts +32 -0
  399. package/dist/internal/discovery/extension-overlay.d.ts.map +1 -0
  400. package/dist/internal/discovery/extension-overlay.js +191 -0
  401. package/dist/internal/discovery/extensions.d.ts +28 -0
  402. package/dist/internal/discovery/extensions.d.ts.map +1 -0
  403. package/dist/internal/discovery/extensions.js +375 -0
  404. package/dist/internal/discovery/fs.d.ts +15 -0
  405. package/dist/internal/discovery/fs.d.ts.map +1 -0
  406. package/dist/internal/discovery/fs.js +115 -0
  407. package/dist/internal/discovery/hooks.d.ts +7 -0
  408. package/dist/internal/discovery/hooks.d.ts.map +1 -0
  409. package/dist/internal/discovery/hooks.js +61 -0
  410. package/dist/internal/discovery/info.d.ts +6 -0
  411. package/dist/internal/discovery/info.d.ts.map +1 -0
  412. package/dist/internal/discovery/info.js +147 -0
  413. package/dist/internal/discovery/instructions.d.ts +7 -0
  414. package/dist/internal/discovery/instructions.d.ts.map +1 -0
  415. package/dist/internal/discovery/instructions.js +95 -0
  416. package/dist/internal/discovery/modules.d.ts +20 -0
  417. package/dist/internal/discovery/modules.d.ts.map +1 -0
  418. package/dist/internal/discovery/modules.js +107 -0
  419. package/dist/internal/discovery/names.d.ts +12 -0
  420. package/dist/internal/discovery/names.d.ts.map +1 -0
  421. package/dist/internal/discovery/names.js +37 -0
  422. package/dist/internal/discovery/project.d.ts +51 -0
  423. package/dist/internal/discovery/project.d.ts.map +1 -0
  424. package/dist/internal/discovery/project.js +293 -0
  425. package/dist/internal/discovery/runtime.d.ts +34 -0
  426. package/dist/internal/discovery/runtime.d.ts.map +1 -0
  427. package/dist/internal/discovery/runtime.js +97 -0
  428. package/dist/internal/discovery/schedules.d.ts +7 -0
  429. package/dist/internal/discovery/schedules.d.ts.map +1 -0
  430. package/dist/internal/discovery/schedules.js +118 -0
  431. package/dist/internal/discovery/seed-files.d.ts +7 -0
  432. package/dist/internal/discovery/seed-files.d.ts.map +1 -0
  433. package/dist/internal/discovery/seed-files.js +41 -0
  434. package/dist/internal/discovery/services.d.ts +21 -0
  435. package/dist/internal/discovery/services.d.ts.map +1 -0
  436. package/dist/internal/discovery/services.js +134 -0
  437. package/dist/internal/discovery/skills.d.ts +11 -0
  438. package/dist/internal/discovery/skills.d.ts.map +1 -0
  439. package/dist/internal/discovery/skills.js +156 -0
  440. package/dist/internal/discovery/subagent.d.ts +16 -0
  441. package/dist/internal/discovery/subagent.d.ts.map +1 -0
  442. package/dist/internal/discovery/subagent.js +128 -0
  443. package/dist/internal/discovery/tools.d.ts +18 -0
  444. package/dist/internal/discovery/tools.d.ts.map +1 -0
  445. package/dist/internal/discovery/tools.js +159 -0
  446. package/dist/internal/discovery.d.ts +8 -63
  447. package/dist/internal/discovery.d.ts.map +1 -1
  448. package/dist/internal/discovery.js +6 -2504
  449. package/dist/internal/distribution.d.ts +10 -27
  450. package/dist/internal/distribution.d.ts.map +1 -1
  451. package/dist/internal/distribution.js +25 -73
  452. package/dist/internal/docs-site.js +1 -1
  453. package/dist/internal/eval-run-store.d.ts +0 -1
  454. package/dist/internal/eval-run-store.d.ts.map +1 -1
  455. package/dist/internal/eval-runner.d.ts.map +1 -1
  456. package/dist/internal/framework-file-storage.d.ts +8 -0
  457. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  458. package/dist/internal/framework-file-storage.js +14 -14
  459. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  460. package/dist/internal/framework-storage-selection.js +8 -7
  461. package/dist/internal/frontmatter.d.ts +11 -3
  462. package/dist/internal/frontmatter.d.ts.map +1 -1
  463. package/dist/internal/frontmatter.js +29 -3
  464. package/dist/internal/github-fanout.d.ts +1 -1
  465. package/dist/internal/github-fanout.js +1 -1
  466. package/dist/internal/guest-network.d.ts +101 -0
  467. package/dist/internal/guest-network.d.ts.map +1 -0
  468. package/dist/internal/guest-network.js +304 -0
  469. package/dist/internal/host-otel.d.ts +3 -3
  470. package/dist/internal/host-otel.d.ts.map +1 -1
  471. package/dist/internal/host-otel.js +8 -4
  472. package/dist/internal/hosted-admission-adapter.d.ts +8 -7
  473. package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
  474. package/dist/internal/hosted-delivery-protocol.d.ts +6 -0
  475. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  476. package/dist/internal/hosted-delivery-protocol.js +18 -5
  477. package/dist/internal/hosted-delivery.d.ts +18 -0
  478. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  479. package/dist/internal/hosted-delivery.js +248 -118
  480. package/dist/internal/http-channel.d.ts.map +1 -1
  481. package/dist/internal/http-channel.js +1 -3
  482. package/dist/internal/init-interview.d.ts.map +1 -1
  483. package/dist/internal/init-interview.js +1 -3
  484. package/dist/internal/init-project.d.ts +2 -2
  485. package/dist/internal/init-project.js +2 -2
  486. package/dist/internal/inline-stdio-define-stub.d.ts +1 -1
  487. package/dist/internal/inline-stdio-define-stub.d.ts.map +1 -1
  488. package/dist/internal/inline-stdio-define-stub.js +1 -1
  489. package/dist/internal/is-record.d.ts +2 -0
  490. package/dist/internal/is-record.d.ts.map +1 -0
  491. package/dist/internal/is-record.js +3 -0
  492. package/dist/internal/json-schema.d.ts.map +1 -1
  493. package/dist/internal/json-schema.js +18 -10
  494. package/dist/internal/local-control-plane.d.ts +1 -2
  495. package/dist/internal/local-control-plane.d.ts.map +1 -1
  496. package/dist/internal/local-control-plane.js +3 -20
  497. package/dist/internal/mcp-endpoint.d.ts.map +1 -1
  498. package/dist/internal/mcp-endpoint.js +1 -3
  499. package/dist/internal/mcp-host.d.ts.map +1 -1
  500. package/dist/internal/mcp-host.js +37 -20
  501. package/dist/internal/otel/collector.d.ts +22 -0
  502. package/dist/internal/otel/collector.d.ts.map +1 -1
  503. package/dist/internal/otel/collector.js +145 -126
  504. package/dist/internal/otel/config.d.ts +0 -2
  505. package/dist/internal/otel/config.d.ts.map +1 -1
  506. package/dist/internal/otel/config.js +17 -20
  507. package/dist/internal/otel/http.d.ts +2 -0
  508. package/dist/internal/otel/http.d.ts.map +1 -1
  509. package/dist/internal/otel/http.js +8 -10
  510. package/dist/internal/otel/mcp.d.ts +16 -0
  511. package/dist/internal/otel/mcp.d.ts.map +1 -0
  512. package/dist/internal/otel/mcp.js +55 -0
  513. package/dist/internal/otel/propagation.d.ts +6 -0
  514. package/dist/internal/otel/propagation.d.ts.map +1 -0
  515. package/dist/internal/otel/propagation.js +14 -0
  516. package/dist/internal/otel/runtime.d.ts +26 -1
  517. package/dist/internal/otel/runtime.d.ts.map +1 -1
  518. package/dist/internal/otel/runtime.js +166 -15
  519. package/dist/internal/package-inline-stdio.d.ts.map +1 -1
  520. package/dist/internal/package-inline-stdio.js +3 -11
  521. package/dist/internal/playground/toolchain.d.ts +1 -1
  522. package/dist/internal/playground/toolchain.d.ts.map +1 -1
  523. package/dist/internal/playground/toolchain.js +1 -1
  524. package/dist/internal/request-error-status.d.ts +12 -0
  525. package/dist/internal/request-error-status.d.ts.map +1 -0
  526. package/dist/internal/request-error-status.js +52 -0
  527. package/dist/internal/resolve-prod-target.d.ts +1 -1
  528. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  529. package/dist/internal/resolve-prod-target.js +3 -7
  530. package/dist/internal/result-output.d.ts +18 -0
  531. package/dist/internal/result-output.d.ts.map +1 -0
  532. package/dist/internal/result-output.js +33 -0
  533. package/dist/internal/run-client.d.ts +2 -2
  534. package/dist/internal/run-client.js +2 -2
  535. package/dist/internal/runtime-dispatch-runner.d.ts +1 -11
  536. package/dist/internal/runtime-dispatch-runner.d.ts.map +1 -1
  537. package/dist/internal/runtime-dispatch-runner.js +2 -15
  538. package/dist/internal/sdk-runner.d.ts.map +1 -1
  539. package/dist/internal/sdk-runner.js +3 -6
  540. package/dist/internal/server.d.ts.map +1 -1
  541. package/dist/internal/server.js +110 -35
  542. package/dist/internal/session-cost.d.ts +3 -3
  543. package/dist/internal/session-cost.d.ts.map +1 -1
  544. package/dist/internal/session-cost.js +3 -3
  545. package/dist/internal/session-engine.d.ts +31 -11
  546. package/dist/internal/session-engine.d.ts.map +1 -1
  547. package/dist/internal/session-engine.js +208 -102
  548. package/dist/internal/session-run-log.d.ts +2 -1
  549. package/dist/internal/session-run-log.d.ts.map +1 -1
  550. package/dist/internal/session-run-log.js +14 -17
  551. package/dist/internal/skills-sync.d.ts +1 -4
  552. package/dist/internal/skills-sync.d.ts.map +1 -1
  553. package/dist/internal/skills-sync.js +10 -50
  554. package/dist/internal/sleep.d.ts +2 -0
  555. package/dist/internal/sleep.d.ts.map +1 -0
  556. package/dist/internal/sleep.js +3 -0
  557. package/dist/internal/start-log-store.d.ts +1 -1
  558. package/dist/internal/start-log-store.d.ts.map +1 -1
  559. package/dist/internal/start-log-store.js +12 -14
  560. package/dist/internal/storage-coordinator.d.ts +4 -1
  561. package/dist/internal/storage-coordinator.d.ts.map +1 -1
  562. package/dist/internal/storage-coordinator.js +15 -13
  563. package/dist/internal/store-mirror.d.ts +29 -0
  564. package/dist/internal/store-mirror.d.ts.map +1 -0
  565. package/dist/internal/store-mirror.js +70 -0
  566. package/dist/internal/tenant-slack/relay.d.ts +73 -0
  567. package/dist/internal/tenant-slack/relay.d.ts.map +1 -0
  568. package/dist/internal/tenant-slack/relay.js +138 -0
  569. package/dist/internal/testing/scm-continuation-fixtures.d.ts +33 -0
  570. package/dist/internal/testing/scm-continuation-fixtures.d.ts.map +1 -0
  571. package/dist/internal/testing/scm-continuation-fixtures.js +253 -0
  572. package/dist/internal/tool-catalog.d.ts.map +1 -1
  573. package/dist/internal/tool-catalog.js +9 -6
  574. package/dist/internal/turn-cost.d.ts +14 -0
  575. package/dist/internal/turn-cost.d.ts.map +1 -1
  576. package/dist/internal/turn-cost.js +41 -9
  577. package/dist/internal/v2-hosting.d.ts +22 -0
  578. package/dist/internal/v2-hosting.d.ts.map +1 -0
  579. package/dist/internal/v2-hosting.js +23 -0
  580. package/dist/internal/workspace-sync.d.ts +22 -0
  581. package/dist/internal/workspace-sync.d.ts.map +1 -0
  582. package/dist/internal/workspace-sync.js +49 -0
  583. package/dist/internal/workspace.d.ts +7 -0
  584. package/dist/internal/workspace.d.ts.map +1 -1
  585. package/dist/internal/workspace.js +13 -0
  586. package/dist/otel.d.ts +39 -1
  587. package/dist/otel.d.ts.map +1 -1
  588. package/dist/otel.js +118 -1
  589. package/dist/playground/assets/index-59KvgREd.js +67 -0
  590. package/dist/playground/assets/index-MbMxXg-y.css +1 -0
  591. package/dist/playground/index.html +2 -2
  592. package/dist/result.d.ts +24 -0
  593. package/dist/result.d.ts.map +1 -0
  594. package/dist/result.js +27 -0
  595. package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
  596. package/dist/storage-backends/cursor-hosted.js +7 -4
  597. package/dist/storage-protocol.d.ts +24 -23
  598. package/dist/storage-protocol.d.ts.map +1 -1
  599. package/dist/storage-protocol.js +69 -68
  600. package/dist/storage.d.ts +2 -2
  601. package/dist/storage.d.ts.map +1 -1
  602. package/dist/storage.js +1 -1
  603. package/dist/tools.d.ts +9 -0
  604. package/dist/tools.d.ts.map +1 -1
  605. package/dist/tools.js +9 -0
  606. package/dist/types.d.ts +126 -23
  607. package/dist/types.d.ts.map +1 -1
  608. package/docs/README.md +7 -3
  609. package/docs/concepts.md +5 -7
  610. package/docs/design/runtime-abstraction.md +2 -3
  611. package/docs/evals.md +9 -7
  612. package/docs/guides/cloud-agents.md +96 -0
  613. package/docs/guides/github.md +0 -1
  614. package/docs/guides/opentelemetry.md +41 -17
  615. package/docs/reference/agent-config.md +6 -10
  616. package/docs/reference/channels.md +18 -8
  617. package/docs/reference/cli.md +3 -4
  618. package/docs/reference/extensions.md +269 -0
  619. package/docs/reference/hooks.md +215 -46
  620. package/docs/reference/playground.md +3 -0
  621. package/docs/reference/project-layout.md +4 -0
  622. package/docs/reference/result.md +94 -0
  623. package/docs/reference/sessions.md +3 -1
  624. package/docs/reference/skills.md +2 -0
  625. package/docs/reference/tools.md +3 -2
  626. package/docs/templates/pr-autofixer.md +0 -3
  627. package/package.json +29 -10
  628. package/skills/framework-map/SKILL.md +3 -0
  629. package/skills/otel/SKILL.md +8 -3
  630. package/src/ab.ts +1 -1
  631. package/src/bin/agent-serve.ts +121 -21
  632. package/src/channels/bitbucket/api.ts +623 -0
  633. package/src/channels/bitbucket/binding.ts +414 -0
  634. package/src/channels/bitbucket/bitbucket-channel.ts +182 -0
  635. package/src/channels/bitbucket/bitbucket-webhook.ts +576 -0
  636. package/src/channels/bitbucket/checks.ts +154 -0
  637. package/src/channels/bitbucket/cursor-account.ts +117 -0
  638. package/src/channels/bitbucket/defaults.ts +110 -0
  639. package/src/channels/bitbucket/events.ts +84 -0
  640. package/src/channels/bitbucket/index.ts +49 -0
  641. package/src/channels/bitbucket/replay.ts +439 -0
  642. package/src/channels/bitbucket/state.ts +59 -0
  643. package/src/channels/bitbucket/types.ts +266 -0
  644. package/src/channels/deployments/deployments-channel.ts +25 -43
  645. package/src/channels/deployments/types.ts +12 -6
  646. package/src/channels/github/binding.ts +8 -1
  647. package/src/channels/github/cursor-account.ts +17 -6
  648. package/src/channels/github/events.ts +1 -1
  649. package/src/channels/github/forward.ts +3 -2
  650. package/src/channels/github/github-channel.ts +74 -221
  651. package/src/channels/github/replay.ts +1 -1
  652. package/src/channels/github/state.ts +6 -0
  653. package/src/channels/github/types.ts +2 -5
  654. package/src/channels/gitlab/api.ts +228 -0
  655. package/src/channels/gitlab/binding.ts +233 -0
  656. package/src/channels/gitlab/checks.ts +243 -0
  657. package/src/channels/gitlab/cursor-account.ts +114 -0
  658. package/src/channels/gitlab/defaults.ts +93 -0
  659. package/src/channels/gitlab/events.ts +44 -0
  660. package/src/channels/gitlab/gitlab-channel.ts +176 -0
  661. package/src/channels/gitlab/gitlab-webhook.ts +555 -0
  662. package/src/channels/gitlab/index.ts +43 -0
  663. package/src/channels/gitlab/replay.ts +347 -0
  664. package/src/channels/gitlab/state.ts +55 -0
  665. package/src/channels/gitlab/types.ts +263 -0
  666. package/src/channels/origin/api.ts +4 -2
  667. package/src/channels/origin/origin-channel.ts +19 -94
  668. package/src/channels/origin/types.ts +23 -2
  669. package/src/channels/slack/api.ts +4 -2
  670. package/src/channels/slack/assistant.ts +1 -1
  671. package/src/channels/slack/dispatch.ts +27 -2
  672. package/src/channels/slack/eval-directive.ts +1 -6
  673. package/src/channels/slack/inbound.ts +37 -0
  674. package/src/channels/slack/init.ts +6 -3
  675. package/src/channels/slack/manifest.ts +2 -1
  676. package/src/channels/slack/setup.ts +7 -6
  677. package/src/channels/slack/types.ts +1 -1
  678. package/src/channels.ts +0 -1
  679. package/src/client.ts +1 -1
  680. package/src/connections.ts +1 -1
  681. package/src/evals.ts +1 -1
  682. package/src/extensions/cursor-cloud-agents/extension.ts +9 -7
  683. package/src/extensions/cursor-cloud-agents/lib/backend.ts +395 -0
  684. package/src/extensions/cursor-cloud-agents/lib/inputs.ts +5 -0
  685. package/src/extensions/cursor-cloud-agents/lib/transcript.ts +23 -0
  686. package/src/extensions/cursor-cloud-agents/skills/handoff.md +21 -7
  687. package/src/extensions/cursor-cloud-agents/tools/cancel.ts +19 -0
  688. package/src/extensions/cursor-cloud-agents/tools/dump.ts +51 -0
  689. package/src/extensions/cursor-cloud-agents/tools/get.ts +18 -0
  690. package/src/extensions/cursor-cloud-agents/tools/launch.ts +22 -42
  691. package/src/extensions/cursor-cloud-agents/tools/list.ts +1 -1
  692. package/src/extensions/cursor-cloud-agents/tools/reply.ts +34 -0
  693. package/src/extensions.ts +100 -15
  694. package/src/files-backends/cursor-hosted.ts +1 -17
  695. package/src/files.ts +64 -37
  696. package/src/index.ts +27 -26
  697. package/src/internal/ab-snapshot.ts +0 -3
  698. package/src/internal/advertise-tools.ts +1 -4
  699. package/src/internal/authored-alias-hooks.ts +4 -21
  700. package/src/internal/authored-loaders.ts +6 -23
  701. package/src/internal/channel-dispatch.ts +160 -0
  702. package/src/internal/chat-client.ts +1 -1
  703. package/src/internal/cli-ax.ts +5 -5
  704. package/src/internal/cli-bitbucket.ts +477 -0
  705. package/src/internal/cli-convert-automation.ts +7 -7
  706. package/src/internal/cli-cursor.ts +2 -5
  707. package/src/internal/cli-deploy.ts +2 -8
  708. package/src/internal/cli-github.ts +3 -3
  709. package/src/internal/cli-gitlab.ts +485 -0
  710. package/src/internal/cli-mcp.ts +2 -7
  711. package/src/internal/cli-slack.ts +2 -5
  712. package/src/internal/continuation-channel.ts +82 -1
  713. package/src/internal/continuation-identity.ts +229 -11
  714. package/src/internal/conversation-mirror.ts +27 -21
  715. package/src/internal/convert-automation/types.ts +1 -1
  716. package/src/internal/cursor/account-mcp.ts +1 -4
  717. package/src/internal/cursor/backend-client.ts +41 -20
  718. package/src/internal/cursor/bound-secret-file.ts +108 -0
  719. package/src/internal/cursor/credentials.ts +75 -10
  720. package/src/internal/cursor/hosted-bound-secrets.ts +75 -0
  721. package/src/internal/cursor/hosted-deployment-secrets.ts +42 -11
  722. package/src/internal/cursor/hosted-store-secrets.ts +28 -1
  723. package/src/internal/cursor-account-mcp-auth.ts +2 -5
  724. package/src/internal/cursor-deployment-relay.ts +11 -7
  725. package/src/internal/deploy-manifest.ts +4 -2
  726. package/src/internal/discovery/ab.ts +131 -0
  727. package/src/internal/discovery/agent-config.ts +222 -0
  728. package/src/internal/discovery/agent.ts +319 -0
  729. package/src/internal/discovery/channels.ts +105 -0
  730. package/src/internal/discovery/connections.ts +545 -0
  731. package/src/internal/discovery/context.ts +46 -0
  732. package/src/internal/discovery/cursor-plugin.ts +705 -0
  733. package/src/internal/discovery/extension-overlay.ts +274 -0
  734. package/src/internal/discovery/extensions.ts +573 -0
  735. package/src/internal/discovery/fs.ts +108 -0
  736. package/src/internal/discovery/hooks.ts +63 -0
  737. package/src/internal/discovery/info.ts +186 -0
  738. package/src/internal/discovery/instructions.ts +113 -0
  739. package/src/internal/discovery/modules.ts +113 -0
  740. package/src/internal/discovery/names.ts +45 -0
  741. package/src/internal/discovery/project.ts +341 -0
  742. package/src/internal/discovery/runtime.ts +158 -0
  743. package/src/internal/discovery/schedules.ts +120 -0
  744. package/src/internal/discovery/seed-files.ts +37 -0
  745. package/src/internal/discovery/services.ts +160 -0
  746. package/src/internal/discovery/skills.ts +186 -0
  747. package/src/internal/discovery/subagent.ts +136 -0
  748. package/src/internal/discovery/tools.ts +182 -0
  749. package/src/internal/discovery.ts +18 -3081
  750. package/src/internal/distribution.ts +35 -83
  751. package/src/internal/docs-site.ts +1 -1
  752. package/src/internal/eval-run-store.ts +0 -7
  753. package/src/internal/eval-runner.ts +0 -1
  754. package/src/internal/framework-file-storage.ts +14 -14
  755. package/src/internal/framework-storage-selection.ts +9 -9
  756. package/src/internal/frontmatter.ts +36 -3
  757. package/src/internal/github-fanout.ts +1 -1
  758. package/src/internal/guest-network.ts +383 -0
  759. package/src/internal/host-otel.ts +8 -4
  760. package/src/internal/hosted-admission-adapter.ts +8 -8
  761. package/src/internal/hosted-delivery-protocol.ts +26 -1
  762. package/src/internal/hosted-delivery.ts +376 -192
  763. package/src/internal/http-channel.ts +1 -4
  764. package/src/internal/init-interview.ts +1 -4
  765. package/src/internal/init-project.ts +2 -2
  766. package/src/internal/inline-stdio-define-stub.ts +1 -1
  767. package/src/internal/is-record.ts +3 -0
  768. package/src/internal/json-schema.ts +19 -10
  769. package/src/internal/local-control-plane.ts +5 -24
  770. package/src/internal/mcp-endpoint.ts +1 -4
  771. package/src/internal/mcp-host.ts +84 -31
  772. package/src/internal/otel/collector.ts +200 -165
  773. package/src/internal/otel/config.ts +10 -14
  774. package/src/internal/otel/http.ts +16 -13
  775. package/src/internal/otel/mcp.ts +56 -0
  776. package/src/internal/otel/propagation.ts +17 -0
  777. package/src/internal/otel/runtime.ts +242 -25
  778. package/src/internal/package-inline-stdio.ts +3 -12
  779. package/src/internal/playground/toolchain.ts +1 -1
  780. package/src/internal/request-error-status.ts +72 -0
  781. package/src/internal/resolve-prod-target.ts +3 -8
  782. package/src/internal/result-output.ts +34 -0
  783. package/src/internal/run-client.ts +2 -2
  784. package/src/internal/runtime-dispatch-runner.ts +3 -21
  785. package/src/internal/sdk-runner.ts +3 -7
  786. package/src/internal/server.ts +153 -44
  787. package/src/internal/session-cost.ts +3 -3
  788. package/src/internal/session-engine.ts +274 -81
  789. package/src/internal/session-run-log.ts +18 -20
  790. package/src/internal/skills-sync.ts +13 -63
  791. package/src/internal/sleep.ts +3 -0
  792. package/src/internal/start-log-store.ts +13 -16
  793. package/src/internal/storage-coordinator.ts +19 -16
  794. package/src/internal/store-mirror.ts +86 -0
  795. package/src/internal/tenant-slack/relay.ts +179 -0
  796. package/src/internal/testing/scm-continuation-fixtures.ts +286 -0
  797. package/src/internal/tool-catalog.ts +9 -6
  798. package/src/internal/turn-cost.ts +47 -4
  799. package/src/internal/v2-hosting.ts +38 -0
  800. package/src/internal/workspace-sync.ts +55 -0
  801. package/src/internal/workspace.ts +14 -0
  802. package/src/otel.ts +180 -2
  803. package/src/result.ts +36 -0
  804. package/src/storage-backends/cursor-hosted.ts +7 -4
  805. package/src/storage-protocol.ts +102 -95
  806. package/src/storage.ts +4 -0
  807. package/src/tools.ts +18 -0
  808. package/src/types.ts +146 -34
  809. package/templates/triage/agent/lib/types.ts +0 -2
  810. package/dist/continuation.d.ts +0 -20
  811. package/dist/continuation.d.ts.map +0 -1
  812. package/dist/continuation.js +0 -18
  813. package/dist/docs/assets/chunks/@localSearchIndexroot.DbFXINq2.js +0 -1
  814. package/dist/docs/assets/guides_cloud-runtime.md.CkYbjnAX.js +0 -9
  815. package/dist/docs/assets/guides_cloud-runtime.md.CkYbjnAX.lean.js +0 -1
  816. package/dist/docs/assets/index.md.Bb4k8kUm.js +0 -5
  817. package/dist/docs/assets/reference_hooks.md.a8BJxMR5.js +0 -14
  818. package/dist/docs/assets/skills_framework-map.md.BTi817yv.js +0 -1
  819. package/dist/docs/guides/cloud-runtime.html +0 -35
  820. package/dist/docs/guides/cloud-runtime.md +0 -115
  821. package/dist/extensions/cursor-cloud-agents/lib/cloud.d.ts +0 -30
  822. package/dist/extensions/cursor-cloud-agents/lib/cloud.d.ts.map +0 -1
  823. package/dist/extensions/cursor-cloud-agents/lib/cloud.js +0 -45
  824. package/dist/extensions/cursor-cloud-agents/tools/follow_up.d.ts +0 -4
  825. package/dist/extensions/cursor-cloud-agents/tools/follow_up.d.ts.map +0 -1
  826. package/dist/extensions/cursor-cloud-agents/tools/status.d.ts +0 -4
  827. package/dist/extensions/cursor-cloud-agents/tools/status.d.ts.map +0 -1
  828. package/dist/extensions/cursor-cloud-agents/tools/status.js +0 -41
  829. package/dist/internal/convert-automation/index.d.ts +0 -3
  830. package/dist/internal/convert-automation/index.d.ts.map +0 -1
  831. package/dist/internal/convert-automation/index.js +0 -1
  832. package/dist/internal/grokbot/runner.d.ts +0 -64
  833. package/dist/internal/grokbot/runner.d.ts.map +0 -1
  834. package/dist/internal/grokbot/runner.js +0 -282
  835. package/dist/internal/managed-delivery.d.ts +0 -80
  836. package/dist/internal/managed-delivery.d.ts.map +0 -1
  837. package/dist/internal/managed-delivery.js +0 -86
  838. package/dist/internal/review-comments.d.ts +0 -370
  839. package/dist/internal/review-comments.d.ts.map +0 -1
  840. package/dist/internal/review-comments.js +0 -921
  841. package/dist/internal/shallow-clone.d.ts +0 -176
  842. package/dist/internal/shallow-clone.d.ts.map +0 -1
  843. package/dist/internal/shallow-clone.js +0 -419
  844. package/dist/playground/assets/index-BnNN1-EK.js +0 -69
  845. package/dist/playground/assets/index-DBQCwFp0.css +0 -1
  846. package/docs/guides/cloud-runtime.md +0 -120
  847. package/src/continuation.ts +0 -49
  848. package/src/extensions/cursor-cloud-agents/lib/cloud.ts +0 -79
  849. package/src/extensions/cursor-cloud-agents/tools/follow_up.ts +0 -29
  850. package/src/extensions/cursor-cloud-agents/tools/status.ts +0 -39
  851. package/src/internal/convert-automation/index.ts +0 -10
  852. package/src/internal/grokbot/runner.ts +0 -370
  853. package/src/internal/managed-delivery.ts +0 -125
  854. package/src/internal/review-comments.ts +0 -1363
  855. package/src/internal/shallow-clone.ts +0 -609
  856. /package/dist/docs/assets/{evals.md.CPzDAwoH.lean.js → evals.md.CbMoebP1.lean.js} +0 -0
  857. /package/dist/docs/assets/{guides_github.md.BtPr9GaP.lean.js → guides_github.md.DKYiT9do.lean.js} +0 -0
  858. /package/dist/docs/assets/{reference_agent-config.md.BHeYMgme.lean.js → reference_agent-config.md.CHNpiyp4.lean.js} +0 -0
  859. /package/dist/docs/assets/{reference_cli.md.DfoeyvL0.lean.js → reference_cli.md.CJNc_xYK.lean.js} +0 -0
  860. /package/dist/docs/assets/{reference_playground.md.DnX5nL-B.lean.js → reference_playground.md.4myJPxrf.lean.js} +0 -0
  861. /package/dist/docs/assets/{reference_skills.md.BFW9retM.lean.js → reference_skills.md.l2ezAcaN.lean.js} +0 -0
  862. /package/dist/docs/assets/{reference_tools.md.CvAHsdSp.lean.js → reference_tools.md.aGrn99hP.lean.js} +0 -0
@@ -5,8 +5,8 @@
5
5
  > until this document has been reviewed.
6
6
  > **Audience:** Agent SDK and cursor-sdk maintainers; change-monitor as the
7
7
  > first consumer that is already faking a third runtime.
8
- > **Companions:** [cloud-runtime.md](../guides/cloud-runtime.md) (today's
9
- > user-facing contract),
8
+ > **Companions:** [agent-config.md](../reference/agent-config.md#choose-a-runtime)
9
+ > (today's user-facing contract),
10
10
  > [factory/change-monitor/docs/tools.md](../../../../factory/change-monitor/docs/tools.md)
11
11
  > (why change-monitor is pinned to local),
12
12
  > [factory/change-monitor/docs/computer-use.md](../../../../factory/change-monitor/docs/computer-use.md)
@@ -1604,7 +1604,6 @@ sandbox })`, next to `cloudRuntime({ repos })`. Sibling
1604
1604
  | Page | Change |
1605
1605
  |---|---|
1606
1606
  | [reference/agent-config.md](../reference/agent-config.md) | `runtime` type becomes constructors **or** the deprecated string. Table + "Choose a runtime" show `localRuntime(opts)` / `cloudRuntime(opts)` / `virtualRuntime(fs)` first. Move cwd / sandbox / workspaceDir onto the `localRuntime` section. Mark sibling `local` / `cloud` and string `runtime` deprecated. |
1607
- | [guides/cloud-runtime.md](../guides/cloud-runtime.md) | Open with `cloudRuntime({ repos })`. Keep `runtime: "cloud"` as the still-supported form. Cloud is a turn host, not a filesystem. Hybrid is `send({ runtime: cloudRuntime(opts) })`; local overlay is `send({ runtime: localRuntime(opts) })`. `send({ cloud })` / `send({ workspaceDir })` deprecated. |
1608
1607
  | [concepts.md](../concepts.md) | Local vs cloud table: same facts, constructor names. Add one line that `virtualRuntime` is local-with-your-files, not a third host. |
1609
1608
 
1610
1609
  **New page**
package/docs/evals.md CHANGED
@@ -157,17 +157,19 @@ Drive the agent with `t.send(message, options?)`. It runs one turn and
157
157
  waits for the session to park or fail. Multiple sends in one case share
158
158
  the session, which is how you write multi-turn evals.
159
159
 
160
- Each `t.send` resolves to a turn result with `message`, `sessionId`,
161
- `events`, `toolCalls`, `ok`, and `index`. The turn carries the same
162
- assertion vocabulary as `t`, scoped to that turn, so you can grade an
163
- intermediate turn before the next send overwrites `t.reply`.
164
- `turn.expectOk()` throws when the turn failed, for later steps that
165
- depend on it.
160
+ Each `t.send` resolves to a turn result with `message`,
161
+ `sessionId`, `events`, `toolCalls`, `ok`, and `index`. The turn carries
162
+ the same assertion vocabulary as `t`, scoped to that turn, so you can
163
+ grade an intermediate turn before the next send overwrites `t.reply`.
164
+ `turn.expectOk()` throws when the turn failed, for later
165
+ steps that depend on it.
166
166
 
167
167
  Read the full case state with `t.reply` (the last assistant text),
168
168
  `t.events` (session events captured so far), `t.turns` (settled
169
169
  turns, oldest first), and `t.sessionId`. `t.signal` aborts when the
170
- case hits its timeout; pass it to your own async work.
170
+ case hits its timeout; pass it to your own async work. A thrown
171
+ [turn result](./reference/result.md) `commit` fails the turn, so
172
+ `t.succeeded()` fails too.
171
173
 
172
174
  Assert with the gates:
173
175
 
@@ -0,0 +1,96 @@
1
+ ---
2
+ title: "Cursor cloud agents"
3
+ description: "Let an agent-sdk agent hand coding work to Cursor cloud agents and steer them: mount the extension, pick the repositories it may touch, and decide what needs approval."
4
+ ---
5
+
6
+ # Cursor cloud agents
7
+
8
+ The `cursor-cloud-agents` extension lets an agent delegate coding work
9
+ to Cursor cloud agents and stay in the conversation while they do it.
10
+ The cloud agents work on real repository checkouts and push branches and
11
+ pull requests; your agent hands off the task, reports back, and answers
12
+ questions in the meantime. A Slack triage agent turns a bug report into
13
+ a PR, a planner fans a refactor out across repositories, a reviewer asks
14
+ a cloud agent to address its own comments.
15
+
16
+ This is different from
17
+ [`runtime: "cloud"`](../reference/agent-config.md#choose-a-runtime). The
18
+ runtime moves *this* agent's turns onto a cloud VM. The extension keeps
19
+ the agent where it is and lets it start *other* cloud agents.
20
+
21
+ ## Mount it
22
+
23
+ The extension ships with `@cursor/july`. Mount it with one file.
24
+
25
+ ```ts
26
+ // agent/extensions/cloud.ts
27
+ import cursorCloudAgents from "@cursor/july/extensions/cursor-cloud-agents";
28
+
29
+ export default cursorCloudAgents({
30
+ cloud: {
31
+ repos: [{ url: "https://github.com/acme/api", startingRef: "main" }],
32
+ autoCreatePR: true,
33
+ },
34
+ });
35
+ ```
36
+
37
+ Launches run under the host's signed-in account (`agent-sdk login` or
38
+ `CURSOR_API_KEY`) and spend its cloud-agent budget. Name the
39
+ repositories the agent may target, and keep approval on when you can't.
40
+
41
+ Mount it on an agent that runs on the local runtime; that is where
42
+ launches park for approval. On the cloud runtime approvals don't
43
+ resolve.
44
+
45
+ ## What the agent can do
46
+
47
+ With the extension mounted, the agent can hand off coding work and stay
48
+ in the conversation while it happens:
49
+
50
+ - **Hand off a task.** Launch a cloud agent on one of your repositories,
51
+ or on a pull request, with a self-contained brief. It gets back an
52
+ agent id and a URL to share.
53
+ - **Check on it.** See whether the agent is still running, what it
54
+ produced, and which branches or pull requests it pushed.
55
+ - **Read what was done.** Pull the agent's full conversation into the
56
+ workspace, quote its final report, or trace the exact edits before
57
+ summarizing for a person.
58
+ - **Steer or stop.** Send a follow-up to an agent it launched; it queues
59
+ behind the current run, or interrupts it on request. Cancel a run that
60
+ went sideways.
61
+ - **Keep track.** List the agents launched in this conversation, or
62
+ everything it has launched before.
63
+
64
+ A skill teaches the model when to delegate, how to write a brief a cloud
65
+ agent can act on alone, and how to follow up. Everything the extension
66
+ launches stays bound to whoever launched it: an agent started by another
67
+ user, or outside the extension, is out of reach. That separation is only
68
+ as fine as your host's auth; a shared bearer token or `--allow-anonymous`
69
+ makes every caller one principal, so use
70
+ [authored auth](../reference/channels.md#auth-policies) when callers need
71
+ their own.
72
+
73
+ ## Configure it
74
+
75
+ | Option | What it controls |
76
+ | --- | --- |
77
+ | `cloud` | Launch defaults, in the same shape as the agent's own [cloud options](../reference/agent-config.md#cloud-options). |
78
+ | `cloud.repos` | The repositories the agent may hand work to, with a default branch or pull request for each. Without it, launches run with no repository and the model can't name one, so secrets in `cloud.envVars` never reach a repository you didn't list. |
79
+ | `model` | The model launched agents run. Omit it to use the account default. |
80
+ | `needsApproval` | Park launches and follow-ups for a [human decision](./human-in-the-loop.md). Defaults to `true` when no `cloud.repos` are configured, `false` otherwise. |
81
+ | `apiKey` | A Cursor API key to launch with instead of the host's own. |
82
+
83
+ ## Adjust it
84
+
85
+ To take a capability away, such as sending follow-ups, mount as a
86
+ directory and disable that tool; see
87
+ [overlays](../reference/extensions.md#adjust-a-mounted-extension).
88
+
89
+ ## What's next
90
+
91
+ Continue with these pages:
92
+
93
+ - [Extensions](../reference/extensions.md): how mounts, namespaces, and
94
+ overrides work
95
+ - [Human-in-the-loop approvals](./human-in-the-loop.md): where parked
96
+ launches get approved
@@ -275,6 +275,5 @@ key. Handlers you author replace the matching defaults (same as
275
275
  - [Webhooks and custom channels](./webhooks.md): the HTTP mechanism under
276
276
  this pack
277
277
  - [Evals](../evals.md): turn replay snapshots into regression fixtures
278
- - [Cloud runtime](./cloud-runtime.md): attach PRs to cloud VMs
279
278
  - [Hooks](../reference/hooks.md): observe-only; use channel `progress` for
280
279
  GitHub surfaces
@@ -8,7 +8,7 @@ description: "Push session, turn, and tool traces from the serve process to an O
8
8
  Agent SDK can push traces, metrics, and logs from the serve process to
9
9
  an OTLP collector you run. Point the process at the collector with
10
10
  standard `OTEL_EXPORTER_OTLP_*` env, or author `agent/otel.ts`. Traces
11
- cover the inbound request, the session, each turn, and every tool call.
11
+ cover the inbound request, each turn, and every tool call.
12
12
 
13
13
  Export is opt-in. Nothing leaves the process until you set an endpoint
14
14
  or a `defineOtel` config.
@@ -17,7 +17,7 @@ or a `defineOtel` config.
17
17
 
18
18
  | Signal | Default | What you get |
19
19
  | --- | --- | --- |
20
- | Traces | on | `agent_sdk.http` `agent_sdk.session` `agent_sdk.turn` → `agent_sdk.tool` / `agent_sdk.subagent` |
20
+ | Traces | on | `agent_sdk.http` (per request) and `agent_sdk.turn` → `agent_sdk.tool` / `agent_sdk.subagent` |
21
21
  | Metrics | on | `cursor.token.usage`, `cursor.tool.calls`, `cursor.cost.usage`, plus `agent_sdk.*` session and turn counts |
22
22
  | Logs | off | Session events as log records. Prompt text, tool payloads, and failure messages stay off unless you opt in |
23
23
 
@@ -89,7 +89,17 @@ destination with `signals: ["traces"]`.
89
89
 
90
90
  You can also pass the same object to `serve(dir, { otel })`. Precedence
91
91
  is `serve({ otel })` over `agent/otel.ts` over env. An empty
92
- `defineOtel()` still enables export when `OTEL_EXPORTER_OTLP_*` is set.
92
+ `defineOtel()` still records traces; export starts when
93
+ `OTEL_EXPORTER_OTLP_*` or a factory-returned `exporters` list appears.
94
+
95
+ Hosted v2 binds deployment secrets after bake, onto the already-listening
96
+ process. Pass a factory so flush can re-read them. Spans record from
97
+ bake; the hosted handler flush constructs the OTLP client and sends the
98
+ queued batch.
99
+
100
+ ```ts
101
+ export default defineOtel(() => resolveMyOtelConfig());
102
+ ```
93
103
 
94
104
  The companion skill is [`skills/otel/SKILL.md`](../skills/otel.md).
95
105
 
@@ -97,17 +107,23 @@ The companion skill is [`skills/otel/SKILL.md`](../skills/otel.md).
97
107
 
98
108
  ```text
99
109
  agent_sdk.http inbound channel request (W3C traceparent)
100
- └─ agent_sdk.session cursor.conversation.id = session id
101
- └─ agent_sdk.turn
102
- ├─ agent_sdk.tool
103
- └─ agent_sdk.subagent
104
- └─ agent_sdk.tool
110
+ agent_sdk.turn one root per turn (`agent_sdk.session_id` = session id)
111
+ ├─ agent_sdk.tool
112
+ └─ agent_sdk.subagent
113
+ └─ agent_sdk.tool
105
114
  ```
106
115
 
107
- Inbound HTTP extracts W3C `traceparent`, so a channel request parents
108
- the session span when the turn starts in that request. Turns that
109
- resume after restore, or a direct `callTool` with no `turn.started` in
110
- this process, open a synthetic turn span so tool calls still nest.
116
+ Conversational sessions stay on `session.waiting` and can take more
117
+ turns, so there is no `agent_sdk.session` span it would never end
118
+ and OTel only exports ended spans. Each turn is its own root. Inbound
119
+ HTTP is a separate SERVER span (it extracts W3C `traceparent`) and
120
+ does not parent the turn, so the turn tree can export when the turn
121
+ ends. Hosted flush ends that SERVER span before the one-shot export so
122
+ `agent_sdk.http` is in the same batch.
123
+
124
+ Turns that resume after restore, or a direct `callTool` with no
125
+ `turn.started` in this process, open a synthetic turn span so tool
126
+ calls still nest.
111
127
 
112
128
  ## Which attributes land on the wire?
113
129
 
@@ -118,6 +134,12 @@ Every signal carries these resource attributes:
118
134
  - `cursor.surface=unspecified`
119
135
  - `agent_sdk.framework=@cursor/july`
120
136
 
137
+ Span attributes (not process resource attributes — one serve process
138
+ handles many sessions):
139
+
140
+ - `agent_sdk.session_id` / `cursor.conversation.id`: the session id.
141
+ Search all turns for one conversation with `@agent_sdk.session_id`.
142
+
121
143
  Shared names (same keys as enterprise export):
122
144
 
123
145
  - `cursor.conversation.id`: the session id
@@ -128,22 +150,24 @@ Shared names (same keys as enterprise export):
128
150
  `cursor.tool.status`
129
151
  - `cursor.cost.usage` (USD)
130
152
 
131
- Agent SDK only (`agent_sdk.*`): agent name, turn id, channel, call id,
132
- subagent name, session mode, and HTTP duration (`agent_sdk.http.duration`).
153
+ Agent SDK only (`agent_sdk.*`): session id, agent name, turn id, channel,
154
+ call id, subagent name, session mode, and HTTP duration
155
+ (`agent_sdk.http.duration`).
133
156
 
134
157
  ## How do I emit my own metrics?
135
158
 
136
159
  `ctx.host.otel` is always present on tools, hooks, and channel
137
160
  handlers. Counters and histograms no-op when no meter is running.
138
- `setAttributes` still tags the open session when a collector is
161
+ `setAttributes` still tags open turn/tool spans when a collector is
139
162
  attached.
140
163
 
141
164
  Prefix metric names with your team or agent. First-party names
142
165
  (`cursor.token.usage`, `cursor.tool.calls`, `cursor.cost.usage`,
143
166
  `agent_sdk.session.count`, `agent_sdk.turn.count`,
144
167
  `agent_sdk.subagent.count`, `agent_sdk.http.duration`) and join keys
145
- (`cursor.conversation.id`, `agent_sdk.agent`, `agent_sdk.turn_id`,
146
- `agent_sdk.framework`) are reserved. Custom spans are not on this
168
+ (`cursor.conversation.id`, `agent_sdk.session_id`, `agent_sdk.agent`,
169
+ `agent_sdk.turn_id`, `agent_sdk.framework`) are reserved. Custom spans
170
+ are not on this
147
171
  surface.
148
172
 
149
173
  ```ts
@@ -82,11 +82,10 @@ the first prompt, because the local session workspace is not the cloud
82
82
  VM.
83
83
 
84
84
  `validate` warns when `runtime: "cloud"` is combined with agent tools
85
- or sandbox seeds (they only materialize into local session workspaces),
86
- when skills are present (they sync onto an Agent Store for native
87
- discovery rather than the session workspace), and when the `cloud`
88
- block is missing. The full capability matrix and the patterns that hold
89
- up are in the [Cloud runtime guide](../guides/cloud-runtime.md).
85
+ (they are described on the first prompt instead of written to the VM),
86
+ when skills or sandbox seeds are present (they sync onto an Agent Store
87
+ rather than the session workspace), and when the `cloud` block is
88
+ missing.
90
89
 
91
90
  ## Local options
92
91
 
@@ -172,9 +171,8 @@ set `local: { sandbox: true }`.
172
171
  Cloud agent defaults forwarded to the Cursor SDK: `repos` (each
173
172
  `{ url, startingRef? }`), environment selection, `envVars`, and the
174
173
  rest. A local agent uses the same block as the base config when a
175
- channel opens a cloud-attached session per send. That hybrid pattern is
176
- covered in
177
- [Cloud runtime](../guides/cloud-runtime.md#hybrid-local-agent-cloud-sessions).
174
+ channel opens a cloud-attached session per send (the `cloud` option on
175
+ [`send`](./channels.md#handler-arguments)).
178
176
 
179
177
  ## Concurrency
180
178
 
@@ -251,6 +249,4 @@ Continue with these pages:
251
249
 
252
250
  - [Instructions](./instructions.md): the required half of a minimal
253
251
  agent
254
- - [Cloud runtime](../guides/cloud-runtime.md): when and how to leave
255
- the host
256
252
  - [CLI](./cli.md): the `serve` flags `serve()` accepts
@@ -142,8 +142,10 @@ The `events` map subscribes the channel to stream events for the
142
142
  sessions it owns. Keys are event types from the
143
143
  [event vocabulary](./sessions.md#which-events-can-i-stream), or `"*"`.
144
144
  Handlers receive `(event, channel, ctx)`, where `channel.state` is the
145
- per-session adapter state and `ctx` exposes session info and host
146
- services. This is where a channel delivers replies back to its surface.
145
+ per-session adapter state, `ctx.session` is the session info, and
146
+ `ctx.host` is the shared host services, bound to that session as in a
147
+ [hook](./hooks.md#handler-context). This is where a channel delivers
148
+ replies back to its surface.
147
149
 
148
150
  ## State and lifecycle
149
151
 
@@ -216,13 +218,21 @@ converge a merge-box check and sticky PR comment from default stream
216
218
  events. Guide: [GitHub](../guides/github.md).
217
219
 
218
220
  **Deployments** (`@cursor/july/channels/deployments`): pull deploy
219
- events. Subscribe per deploy source with `deploySourceUris`, narrow
220
- with `environments` / `events`, and handle each event in `onEvent`.
221
- `deploySourceUris` must match `Deployment.deploy_source_uri` as your
221
+ events. Declare `events` and handle each one in `onEvent`. Each event
222
+ carries `deploySourceUri` and `deployVersion`. Author
223
+ `agent/channels/deployments.ts` with `deploymentsChannel()`.
224
+
225
+ Omit `deploySourceUris` on hosted v2. The control plane binds
226
+ `deploy_source` edges from the deploy's watched `repositories` and the
227
+ channel admits what it is sent, which is what makes it multi-tenant
228
+ safe.
229
+
230
+ Name sources to narrow below that scope, or to drive the self-hosted
231
+ pull relay, which has no deploy scope to inherit. There, subscribe per
232
+ deploy source with `deploySourceUris` and narrow with `environments` /
233
+ `events`. Each entry must match `Deployment.deploy_source_uri` as your
222
234
  deployment writer records it; matching is case-insensitive but
223
- otherwise literal. Each event carries `deploySourceUri` and
224
- `deployVersion`. Author `agent/channels/deployments.ts` with
225
- `deploymentsChannel()`. It uses the host credential. A restart resumes
235
+ otherwise literal. It uses the host credential. A restart resumes
226
236
  rather than dropping events. An empty `deploySourceUris` list mounts
227
237
  the channel but starts no pull, so an env-configured agent stays inert
228
238
  until its deploy sources are set.
@@ -5,10 +5,9 @@ description: "Commands and common flags for local development, running servers,
5
5
 
6
6
  # CLI reference
7
7
 
8
- `@cursor/july` installs `july` (so `npx @cursor/july docs` works) and
9
- `agent-sdk`. The examples on this page use `agent-sdk`. Run the CLI with
10
- Node 22.13 or newer. Don't run it with Bun; Bun corrupts tool-result
11
- streams from the Cursor SDK.
8
+ `@cursor/july` installs one command, `agent-sdk`; `npx @cursor/july <cmd>`
9
+ runs it. Run the CLI with Node 22.13 or newer. Don't run it with Bun; Bun
10
+ corrupts tool-result streams from the Cursor SDK.
12
11
 
13
12
  `agent-sdk help` prints the built-in summary. The Slack and GitHub packs
14
13
  also provide `agent-sdk slack help` and `agent-sdk github help`.
@@ -0,0 +1,269 @@
1
+ ---
2
+ title: "Extensions"
3
+ description: "Mount a package of agent contributions or a Cursor plugin under a namespace with one file, adjust what it contributes, and author your own as a directory laid out like agent/."
4
+ ---
5
+
6
+ # Extensions
7
+
8
+ An extension packages the same contributions an agent authors under
9
+ `agent/` and installs them as one unit. You mount it with a single file
10
+ under `agent/extensions/`, and its contributions join the agent under a
11
+ namespace. The package updates like any other dependency; nothing is
12
+ copied into your project. A Cursor plugin mounts the same way; see
13
+ [Mount a Cursor plugin](#mount-a-cursor-plugin).
14
+
15
+ Extensions are native to the Agent SDK. Slot files use the `@cursor/july`
16
+ helpers, so a package built on another agent framework fails
17
+ `agent-sdk validate` until you rewrite it onto `@cursor/july`.
18
+
19
+ ## Mount an extension
20
+
21
+ Install the package, then add one file. The filename is the namespace.
22
+
23
+ ```ts
24
+ // agent/extensions/ci.ts
25
+ import ci from "@acme/ci-triage";
26
+
27
+ export default ci({ org: "acme", token: process.env.BUILDKITE_TOKEN! });
28
+ ```
29
+
30
+ Every contribution is exposed as `<namespace>__<name>`. A `failed_jobs`
31
+ tool from this mount runs in the agent as `ci__failed_jobs`, and a
32
+ `triage` skill loads as `ci__triage`. `agent-sdk info` lists each mount
33
+ with what it contributed, and `GET /v1/info` returns the same under
34
+ `extensions`.
35
+
36
+ Pass the configuration the extension asks for. The extension validates it
37
+ when the agent loads, so a missing or mistyped field fails
38
+ `agent-sdk validate` instead of a tool call later.
39
+
40
+ Namespaces follow the tool-name rule, and `__` is reserved: an authored
41
+ `agent/tools/ci__failed_jobs.ts` fails discovery, so nothing outside a
42
+ mount can pose as one of its tools.
43
+
44
+ ## What an extension can contribute
45
+
46
+ An extension tree uses the same slots as [`agent/`](./project-layout.md).
47
+ Each shareable contribution lands on the agent under the mount's
48
+ namespace:
49
+
50
+ | Path | Becomes |
51
+ | --- | --- |
52
+ | `tools/<name>.ts` | tool `<ns>__<name>` |
53
+ | `skills/<name>` | skill `<ns>__<name>` |
54
+ | `mcp-connections/<name>.ts` | connection `<ns>__<name>` |
55
+ | `host-connections/<name>.ts` | host connection `<ns>__<name>` |
56
+ | `hooks/<name>.ts` | hook `<ns>__<name>` |
57
+ | `channels/<name>.ts` | channel `<ns>__<name>` |
58
+ | `schedules/<name>` | schedule `<ns>__<name>` |
59
+ | `subagents/<id>/` | subagent `<ns>__<id>` |
60
+ | `instructions.md` / `.ts` / dir | appended to the agent's system prompt |
61
+ | `sandbox/workspace/**` | seeded into each local session workspace |
62
+ | `ab.ts` / `ab/<name>.ts` | A/B experiment `<ns>__<name>` |
63
+ | `artifacts.ts` | artifact kinds `<ns>__<kind>` |
64
+
65
+ The root agent still needs its own `instructions.md`. Extension
66
+ instructions are extra fragments, not a substitute.
67
+
68
+ `httpChannel()` stays on the agent. An extension authors
69
+ `defineChannel` only; a file named `http.ts` becomes `<ns>__http`.
70
+
71
+ These stay on the agent that mounts the extension. Each is a singleton
72
+ or is outside discovery:
73
+
74
+ | Path | Why it stays on the agent |
75
+ | --- | --- |
76
+ | `agent.ts` | One `defineAgent` runtime per agent |
77
+ | `storage.ts` | One `host.kv` / `host.files` backend |
78
+ | `otel.ts` | One OTLP exporter |
79
+ | `ab.config.ts` | One experiment-platform config; `ab.ts` / `ab/` still merge |
80
+ | `playground/` | Custom chips are a Vite glob of the agent tree, not a discovery walk |
81
+ | `extensions/` | Nested mounts are not loaded |
82
+ | `sandbox.ts` | Custom sandbox backends stay on the agent |
83
+
84
+ `agent-sdk validate` warns when a tree carries those paths.
85
+
86
+ ## Adjust a mounted extension
87
+
88
+ To replace or remove a contribution, mount the extension as a directory
89
+ and overlay the slot you want to change.
90
+
91
+ ```text
92
+ agent/extensions/ci/
93
+ ├── extension.ts # the mount: export default ci({ ... })
94
+ ├── tools/
95
+ │ ├── job_log.ts # replaces ci__job_log with your own defineTool
96
+ │ └── retry_job.ts # export default disableTool() removes ci__retry_job
97
+ ├── hooks/
98
+ │ └── audit.ts # export default disableHook() removes ci__audit
99
+ └── skills/
100
+ └── triage.ts # export default disableSkill() removes ci__triage
101
+ ```
102
+
103
+ Use the extension's own names inside the directory, without the
104
+ namespace. A file with a name the extension doesn't contribute adds a
105
+ new contribution under the namespace. Each helper comes from
106
+ `@cursor/july/extensions` and fails discovery when it names a
107
+ contribution the extension doesn't have, so a typo can't silently keep
108
+ it alive.
109
+
110
+ | Slot | Helper |
111
+ | --- | --- |
112
+ | `tools/<name>.ts` | `disableTool()` |
113
+ | `mcp-connections/<name>.ts` / `host-connections/<name>.ts` | `disableConnection()` |
114
+ | `skills/<name>.ts` | `disableSkill()` |
115
+ | `hooks/<name>.ts` | `disableHook()` |
116
+ | `channels/<name>.ts` | `disableChannel()` |
117
+ | `schedules/<name>.ts` | `disableSchedule()` |
118
+ | `subagents/<id>.ts` | `disableSubagent()` |
119
+ | `instructions.ts` | `disableInstructions()` |
120
+ | `ab.ts` / `ab/<name>.ts` | `disableAB()` |
121
+ | `artifacts.ts` | `disableArtifacts()` |
122
+
123
+ `disable()` is the same brand as the slot helpers above and works in
124
+ any of those files.
125
+
126
+ A Cursor plugin mount overlays its MCP servers the same way; see below.
127
+
128
+ ## Mount a Cursor plugin
129
+
130
+ A Cursor plugin is a directory with `.cursor-plugin/plugin.json` (or
131
+ `.claude-plugin/plugin.json`, or `plugin.json`) and any of `skills/`,
132
+ `commands/`, `agents/`, and `mcp.json`. Copy the plugin into your project
133
+ and mount it with `cursorPlugin`. The filename is the namespace, as with
134
+ any extension.
135
+
136
+ ```ts
137
+ // agent/extensions/notion.ts
138
+ import { cursorPlugin } from "@cursor/july/extensions";
139
+
140
+ export default cursorPlugin({
141
+ path: "plugins/notion-workspace", // relative to the project root
142
+ variables: { NOTION_TOKEN: process.env.NOTION_TOKEN! },
143
+ });
144
+ ```
145
+
146
+ The plugin joins the agent under that namespace:
147
+
148
+ | Plugin content | Becomes |
149
+ | --- | --- |
150
+ | `skills/<name>/SKILL.md` | skill `notion__<name>` |
151
+ | `commands/<name>.md` | skill `notion__<name>`, since a command is a procedure the model runs on request |
152
+ | `agents/<name>.md` | subagent `notion__<name>` |
153
+ | MCP servers in `mcp.json` or the manifest | connection `notion__<server>` |
154
+
155
+ `variables` fills the `${NAME}` placeholders the plugin's MCP config
156
+ declares; names you leave out come from the environment by exact name. A
157
+ placeholder nothing fills fails `agent-sdk validate`, so a server never
158
+ attaches half configured. A server that declares an OAuth client
159
+ authorizes through [host MCP OAuth](../guides/mcp-oauth.md) as
160
+ `agent-sdk mcp oauth notion__<server>`; its secret names collapse the
161
+ namespace separator, so `notion__notion` stores `MCP_OAUTH_NOTION_NOTION_*`.
162
+ A server that lists `enabledTools` mounts as an advertised connection with
163
+ that allowlist and requires the local runtime; `agent-sdk validate` fails
164
+ otherwise.
165
+
166
+ Mounting a plugin trusts it like authored code: its servers run the
167
+ commands and read the environment variables its config names. Review a
168
+ plugin before you vendor it.
169
+
170
+ Plugin rules and hooks are not mounted; `agent-sdk validate` warns when a
171
+ plugin carries them. To drop or reconfigure one of the plugin's servers,
172
+ mount as a directory and overlay `mcp-connections/<server>.ts`. An
173
+ overlaid server is never read from the plugin, so it needs no variables.
174
+
175
+ ```text
176
+ agent/extensions/cloudflare/
177
+ ├── extension.ts # export default cursorPlugin({ path: "plugins/cloudflare" })
178
+ └── mcp-connections/
179
+ ├── cloudflare-docs.ts # replaces cloudflare__cloudflare-docs with your defineConnection
180
+ └── cloudflare-bindings.ts # export default disableConnection() drops it
181
+ ```
182
+
183
+ `disableConnection()` comes from `@cursor/july/extensions` and fails
184
+ discovery when it names a server the plugin doesn't declare.
185
+
186
+ ## Build an extension
187
+
188
+ An extension is a directory laid out like `agent/`. `extension.ts`
189
+ declares it; the slots in [What an extension can contribute](#what-an-extension-can-contribute)
190
+ use the same authoring forms as the rest of this reference.
191
+
192
+ ```text
193
+ @acme/ci-triage/
194
+ ├── package.json
195
+ ├── extension.ts # defineExtension
196
+ ├── tools/
197
+ │ ├── failed_jobs.ts
198
+ │ ├── job_log.ts
199
+ │ └── retry_job.ts
200
+ ├── skills/
201
+ │ └── triage.md
202
+ ├── hooks/
203
+ │ └── audit.ts
204
+ ├── mcp-connections/
205
+ │ └── buildkite.ts
206
+ └── lib/
207
+ └── buildkite.ts # shared code, never discovered
208
+ ```
209
+
210
+ Declare the extension with its root and, when consumers must configure
211
+ it, a schema for their settings.
212
+
213
+ ```ts
214
+ // extension.ts
215
+ import { defineExtension } from "@cursor/july/extensions";
216
+ import { z } from "zod";
217
+
218
+ export default defineExtension({
219
+ root: import.meta.dirname,
220
+ description: "Investigate failing CI builds on Buildkite.",
221
+ config: z.object({
222
+ org: z.string(),
223
+ token: z.string(),
224
+ logTailLines: z.number().int().positive().default(200),
225
+ }),
226
+ });
227
+ ```
228
+
229
+ The default export is what consumers call to mount the extension, and it
230
+ is also how your own modules read the consumer's settings. Import it and
231
+ read `extension.config`; the value is validated and has defaults applied.
232
+
233
+ ```ts
234
+ // tools/job_log.ts
235
+ import { defineTool } from "@cursor/july/tools";
236
+ import { z } from "zod";
237
+ import extension from "../extension.js";
238
+ import { jobLogTail } from "../lib/buildkite.js";
239
+
240
+ export default defineTool({
241
+ description: "Read the tail of a CI job's log.",
242
+ effect: "read",
243
+ inputSchema: z.object({ pipeline: z.string(), build: z.number(), job: z.string() }),
244
+ async execute({ pipeline, build, job }) {
245
+ const { org, token, logTailLines } = extension.config;
246
+ return jobLogTail({ org, token, pipeline, build, job, lines: logTailLines });
247
+ },
248
+ });
249
+ ```
250
+
251
+ Because the consumer picks the namespace, have skills and tool
252
+ descriptions refer to sibling tools by their short names and say they
253
+ appear under the mount's namespace (`<namespace>__job_log`).
254
+
255
+ Publish the built `extension.js` as the package entry point with the
256
+ slot directories beside it. `root` is read from the built file, so copy
257
+ `skills/*.md` and `instructions.md` into the build output or author them
258
+ as `.ts`.
259
+
260
+ ## What's next
261
+
262
+ Continue with these pages:
263
+
264
+ - [Cursor cloud agents](../guides/cloud-agents.md): the extension that
265
+ lets an agent launch and steer cloud agents
266
+ - [Tools](./tools.md): the tool contract extensions contribute to
267
+ - [Skills](./skills.md): the skill forms an extension can carry
268
+ - [Project layout](./project-layout.md): where `agent/extensions/` sits
269
+ in the tree