@cursor/july 0.1.100 → 0.1.102

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 (484) hide show
  1. package/README.md +27 -0
  2. package/dist/bin/agent-serve.js +3 -2
  3. package/dist/channels/deployments/deployments-channel.d.ts +41 -5
  4. package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
  5. package/dist/channels/deployments/deployments-channel.js +88 -8
  6. package/dist/channels/deployments/types.d.ts +4 -3
  7. package/dist/channels/deployments/types.d.ts.map +1 -1
  8. package/dist/channels/origin/defaults.d.ts +43 -0
  9. package/dist/channels/origin/defaults.d.ts.map +1 -0
  10. package/dist/channels/origin/defaults.js +111 -0
  11. package/dist/channels/origin/index.d.ts +2 -0
  12. package/dist/channels/origin/index.d.ts.map +1 -1
  13. package/dist/channels/origin/index.js +2 -0
  14. package/dist/channels/origin/origin-channel.d.ts +2 -1
  15. package/dist/channels/origin/origin-channel.d.ts.map +1 -1
  16. package/dist/channels/origin/origin-channel.js +24 -3
  17. package/dist/channels/origin/state.d.ts +32 -0
  18. package/dist/channels/origin/state.d.ts.map +1 -0
  19. package/dist/channels/origin/state.js +23 -0
  20. package/dist/channels/origin/types.d.ts +23 -1
  21. package/dist/channels/origin/types.d.ts.map +1 -1
  22. package/dist/channels/slack/api.d.ts +1 -1
  23. package/dist/channels/slack/api.d.ts.map +1 -1
  24. package/dist/channels/slack/api.js +5 -2
  25. package/dist/channels/slack/assistant.d.ts +1 -1
  26. package/dist/channels/slack/assistant.d.ts.map +1 -1
  27. package/dist/channels/slack/code-fences.d.ts +17 -0
  28. package/dist/channels/slack/code-fences.d.ts.map +1 -0
  29. package/dist/channels/slack/code-fences.js +168 -0
  30. package/dist/channels/slack/dispatch.d.ts +3 -2
  31. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  32. package/dist/channels/slack/dispatch.js +28 -8
  33. package/dist/channels/slack/inbound.d.ts +8 -0
  34. package/dist/channels/slack/inbound.d.ts.map +1 -1
  35. package/dist/channels/slack/inbound.js +28 -0
  36. package/dist/channels/slack/index.d.ts +1 -0
  37. package/dist/channels/slack/index.d.ts.map +1 -1
  38. package/dist/channels/slack/index.js +1 -0
  39. package/dist/channels/slack/live-delivery.d.ts.map +1 -1
  40. package/dist/channels/slack/live-delivery.js +11 -4
  41. package/dist/channels/slack/manifest.d.ts.map +1 -1
  42. package/dist/channels/slack/manifest.js +2 -1
  43. package/dist/connections.d.ts +18 -2
  44. package/dist/connections.d.ts.map +1 -1
  45. package/dist/connections.js +18 -2
  46. package/dist/docs/404.html +2 -2
  47. package/dist/docs/ab.html +4 -4
  48. package/dist/docs/assets/{app.DZ1e0Ycq.js → app.CLA03RCz.js} +1 -1
  49. package/dist/docs/assets/chunks/@localSearchIndexroot.FAqdWIXo.js +1 -0
  50. package/dist/docs/assets/chunks/{VPLocalSearchBox.l8omwc6D.js → VPLocalSearchBox.ifxv-cJV.js} +1 -1
  51. package/dist/docs/assets/chunks/{theme.JVcD6gel.js → theme.DWCwM6p-.js} +2 -2
  52. package/dist/docs/assets/concepts.md.rPzW2HZN.js +1 -0
  53. package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.js +9 -0
  54. package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.lean.js +1 -0
  55. package/dist/docs/assets/{guides_cloud-runtime.md.CkYbjnAX.js → guides_cloud-runtime.md.BRirbRAN.js} +1 -1
  56. package/dist/docs/assets/index.md.Kiht7ell.js +5 -0
  57. package/dist/docs/assets/{index.md.Bb4k8kUm.lean.js → index.md.Kiht7ell.lean.js} +1 -1
  58. package/dist/docs/assets/{reference_connections.md.BiGoBAk2.js → reference_connections.md.Di6jJAXF.js} +12 -2
  59. package/dist/docs/assets/{reference_connections.md.BiGoBAk2.lean.js → reference_connections.md.Di6jJAXF.lean.js} +1 -1
  60. package/dist/docs/assets/reference_extensions.md.9WQMZe1l.js +56 -0
  61. package/dist/docs/assets/reference_extensions.md.9WQMZe1l.lean.js +1 -0
  62. package/dist/docs/assets/{reference_http-api.md.BEJx9XVj.js → reference_http-api.md.oySXBO8o.js} +1 -1
  63. package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.js → reference_project-layout.md.CA6QP6Lw.js} +2 -2
  64. package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.lean.js → reference_project-layout.md.CA6QP6Lw.lean.js} +1 -1
  65. package/dist/docs/assets/{reference_skills.md.BFW9retM.js → reference_skills.md.l2ezAcaN.js} +1 -1
  66. package/dist/docs/assets/{reference_tools.md.CvAHsdSp.js → reference_tools.md.B1up2r9W.js} +1 -1
  67. package/dist/docs/assets/skills_framework-map.md.DDa4MeEW.js +1 -0
  68. package/dist/docs/assets/{skills_framework-map.md.BTi817yv.lean.js → skills_framework-map.md.DDa4MeEW.lean.js} +1 -1
  69. package/dist/docs/building-with-agents.html +4 -4
  70. package/dist/docs/concepts.html +5 -5
  71. package/dist/docs/concepts.md +3 -3
  72. package/dist/docs/deployment.html +4 -4
  73. package/dist/docs/evals.html +4 -4
  74. package/dist/docs/guides/agent-to-agent.html +4 -4
  75. package/dist/docs/guides/cloud-agents.html +35 -0
  76. package/dist/docs/guides/cloud-agents.md +93 -0
  77. package/dist/docs/guides/cloud-runtime.html +6 -6
  78. package/dist/docs/guides/cloud-runtime.md +2 -0
  79. package/dist/docs/guides/convert-automation.html +4 -4
  80. package/dist/docs/guides/github.html +4 -4
  81. package/dist/docs/guides/human-in-the-loop.html +4 -4
  82. package/dist/docs/guides/mcp-oauth.html +4 -4
  83. package/dist/docs/guides/opentelemetry.html +5 -5
  84. package/dist/docs/guides/slack.html +4 -4
  85. package/dist/docs/guides/webhooks.html +4 -4
  86. package/dist/docs/hashmap.json +1 -1
  87. package/dist/docs/hillclimbing.html +4 -4
  88. package/dist/docs/index.html +6 -6
  89. package/dist/docs/index.md +5 -1
  90. package/dist/docs/llms-full.txt +353 -5
  91. package/dist/docs/llms.txt +2 -0
  92. package/dist/docs/quickstart.html +4 -4
  93. package/dist/docs/reference/agent-config.html +4 -4
  94. package/dist/docs/reference/artifacts.html +4 -4
  95. package/dist/docs/reference/channels.html +5 -5
  96. package/dist/docs/reference/cli.html +4 -4
  97. package/dist/docs/reference/connections.html +16 -6
  98. package/dist/docs/reference/connections.md +31 -0
  99. package/dist/docs/reference/extensions.html +82 -0
  100. package/dist/docs/reference/extensions.md +200 -0
  101. package/dist/docs/reference/hooks.html +4 -4
  102. package/dist/docs/reference/http-api.html +6 -6
  103. package/dist/docs/reference/http-api.md +1 -1
  104. package/dist/docs/reference/instructions.html +4 -4
  105. package/dist/docs/reference/playground.html +4 -4
  106. package/dist/docs/reference/project-layout.html +6 -6
  107. package/dist/docs/reference/project-layout.md +3 -0
  108. package/dist/docs/reference/prompt.html +4 -4
  109. package/dist/docs/reference/schedules.html +4 -4
  110. package/dist/docs/reference/sessions.html +4 -4
  111. package/dist/docs/reference/skills.html +6 -6
  112. package/dist/docs/reference/skills.md +2 -0
  113. package/dist/docs/reference/subagents.html +5 -5
  114. package/dist/docs/reference/tools.html +6 -6
  115. package/dist/docs/reference/tools.md +2 -0
  116. package/dist/docs/scaffolding-agents.html +4 -4
  117. package/dist/docs/skills/ab.html +4 -4
  118. package/dist/docs/skills/create-agent.html +4 -4
  119. package/dist/docs/skills/debug.html +4 -4
  120. package/dist/docs/skills/evals.html +4 -4
  121. package/dist/docs/skills/framework-map.html +5 -5
  122. package/dist/docs/skills/framework-map.md +1 -0
  123. package/dist/docs/skills/github.html +4 -4
  124. package/dist/docs/skills/hillclimb.html +4 -4
  125. package/dist/docs/skills/index.html +4 -4
  126. package/dist/docs/skills/mcp-auth.html +4 -4
  127. package/dist/docs/skills/otel.html +4 -4
  128. package/dist/docs/skills/setup-slack.html +4 -4
  129. package/dist/docs/storage.html +4 -4
  130. package/dist/docs/templates/agentic-owners.html +4 -4
  131. package/dist/docs/templates/agents-md.html +4 -4
  132. package/dist/docs/templates/code-wiki.html +4 -4
  133. package/dist/docs/templates/demo.html +4 -4
  134. package/dist/docs/templates/pr-autofixer.html +4 -4
  135. package/dist/docs/templates/security-help.html +4 -4
  136. package/dist/docs/templates/security-reviewer.html +4 -4
  137. package/dist/docs/templates/triage.html +4 -4
  138. package/dist/docs/troubleshooting.html +4 -4
  139. package/dist/extensions/cursor-cloud-agents/extension.d.ts +57 -0
  140. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -0
  141. package/dist/extensions/cursor-cloud-agents/extension.js +66 -0
  142. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +78 -0
  143. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -0
  144. package/dist/extensions/cursor-cloud-agents/lib/backend.js +286 -0
  145. package/dist/extensions/cursor-cloud-agents/lib/fleet.d.ts +25 -0
  146. package/dist/extensions/cursor-cloud-agents/lib/fleet.d.ts.map +1 -0
  147. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +85 -0
  148. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +5 -0
  149. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -0
  150. package/dist/extensions/cursor-cloud-agents/lib/inputs.js +4 -0
  151. package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts +15 -0
  152. package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts.map +1 -0
  153. package/dist/extensions/cursor-cloud-agents/lib/repos.js +55 -0
  154. package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts +8 -0
  155. package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts.map +1 -0
  156. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +15 -0
  157. package/dist/extensions/cursor-cloud-agents/skills/handoff.md +41 -0
  158. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts +4 -0
  159. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -0
  160. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +26 -0
  161. package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts +4 -0
  162. package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts.map +1 -0
  163. package/dist/extensions/cursor-cloud-agents/tools/dump.js +54 -0
  164. package/dist/extensions/cursor-cloud-agents/tools/get.d.ts +4 -0
  165. package/dist/extensions/cursor-cloud-agents/tools/get.d.ts.map +1 -0
  166. package/dist/extensions/cursor-cloud-agents/tools/get.js +25 -0
  167. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts +4 -0
  168. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -0
  169. package/dist/extensions/cursor-cloud-agents/tools/launch.js +59 -0
  170. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts +4 -0
  171. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -0
  172. package/dist/extensions/cursor-cloud-agents/tools/list.js +36 -0
  173. package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts +4 -0
  174. package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts.map +1 -0
  175. package/dist/extensions/cursor-cloud-agents/tools/reply.js +35 -0
  176. package/dist/extensions.d.ts +73 -0
  177. package/dist/extensions.d.ts.map +1 -0
  178. package/dist/extensions.js +112 -0
  179. package/dist/files-backends/cursor-hosted.d.ts +0 -8
  180. package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
  181. package/dist/files-backends/cursor-hosted.js +1 -11
  182. package/dist/files.d.ts +5 -1
  183. package/dist/files.d.ts.map +1 -1
  184. package/dist/files.js +22 -18
  185. package/dist/index.d.ts +4 -3
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +3 -2
  188. package/dist/internal/advertise-tools.d.ts +4 -1
  189. package/dist/internal/advertise-tools.d.ts.map +1 -1
  190. package/dist/internal/advertise-tools.js +20 -1
  191. package/dist/internal/as-of.d.ts +18 -0
  192. package/dist/internal/as-of.d.ts.map +1 -1
  193. package/dist/internal/as-of.js +131 -0
  194. package/dist/internal/cli-deploy.d.ts.map +1 -1
  195. package/dist/internal/cli-deploy.js +64 -19
  196. package/dist/internal/continuation-identity.d.ts.map +1 -1
  197. package/dist/internal/continuation-identity.js +3 -1
  198. package/dist/internal/conversation-mirror.d.ts.map +1 -1
  199. package/dist/internal/conversation-mirror.js +13 -15
  200. package/dist/internal/cursor/backend-client.d.ts +8 -1
  201. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  202. package/dist/internal/cursor/backend-client.js +25 -9
  203. package/dist/internal/cursor/hosted-deployment-secrets.d.ts +16 -0
  204. package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -0
  205. package/dist/internal/cursor/hosted-deployment-secrets.js +61 -0
  206. package/dist/internal/cursor/hosted-store-secrets.d.ts +11 -0
  207. package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -1
  208. package/dist/internal/cursor/hosted-store-secrets.js +15 -0
  209. package/dist/internal/cursor-deployment-relay.d.ts +15 -1
  210. package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
  211. package/dist/internal/cursor-deployment-relay.js +46 -7
  212. package/dist/internal/deploy-client.d.ts +23 -0
  213. package/dist/internal/deploy-client.d.ts.map +1 -1
  214. package/dist/internal/deploy-client.js +54 -12
  215. package/dist/internal/discovery/ab.d.ts +9 -0
  216. package/dist/internal/discovery/ab.d.ts.map +1 -0
  217. package/dist/internal/discovery/ab.js +101 -0
  218. package/dist/internal/discovery/agent-config.d.ts +35 -0
  219. package/dist/internal/discovery/agent-config.d.ts.map +1 -0
  220. package/dist/internal/discovery/agent-config.js +173 -0
  221. package/dist/internal/discovery/agent.d.ts +11 -0
  222. package/dist/internal/discovery/agent.d.ts.map +1 -0
  223. package/dist/internal/discovery/agent.js +306 -0
  224. package/dist/internal/discovery/channels.d.ts +10 -0
  225. package/dist/internal/discovery/channels.d.ts.map +1 -0
  226. package/dist/internal/discovery/channels.js +97 -0
  227. package/dist/internal/discovery/connections.d.ts +17 -0
  228. package/dist/internal/discovery/connections.d.ts.map +1 -0
  229. package/dist/internal/discovery/connections.js +436 -0
  230. package/dist/internal/discovery/context.d.ts +20 -0
  231. package/dist/internal/discovery/context.d.ts.map +1 -0
  232. package/dist/internal/discovery/context.js +30 -0
  233. package/dist/internal/discovery/cursor-plugin.d.ts +25 -0
  234. package/dist/internal/discovery/cursor-plugin.d.ts.map +1 -0
  235. package/dist/internal/discovery/cursor-plugin.js +570 -0
  236. package/dist/internal/discovery/extensions.d.ts +19 -0
  237. package/dist/internal/discovery/extensions.d.ts.map +1 -0
  238. package/dist/internal/discovery/extensions.js +238 -0
  239. package/dist/internal/discovery/fs.d.ts +15 -0
  240. package/dist/internal/discovery/fs.d.ts.map +1 -0
  241. package/dist/internal/discovery/fs.js +115 -0
  242. package/dist/internal/discovery/hooks.d.ts +7 -0
  243. package/dist/internal/discovery/hooks.d.ts.map +1 -0
  244. package/dist/internal/discovery/hooks.js +48 -0
  245. package/dist/internal/discovery/info.d.ts +6 -0
  246. package/dist/internal/discovery/info.d.ts.map +1 -0
  247. package/dist/internal/discovery/info.js +141 -0
  248. package/dist/internal/discovery/instructions.d.ts +7 -0
  249. package/dist/internal/discovery/instructions.d.ts.map +1 -0
  250. package/dist/internal/discovery/instructions.js +95 -0
  251. package/dist/internal/discovery/modules.d.ts +20 -0
  252. package/dist/internal/discovery/modules.d.ts.map +1 -0
  253. package/dist/internal/discovery/modules.js +101 -0
  254. package/dist/internal/discovery/names.d.ts +12 -0
  255. package/dist/internal/discovery/names.d.ts.map +1 -0
  256. package/dist/internal/discovery/names.js +36 -0
  257. package/dist/internal/discovery/project.d.ts +53 -0
  258. package/dist/internal/discovery/project.d.ts.map +1 -0
  259. package/dist/internal/discovery/project.js +239 -0
  260. package/dist/internal/discovery/runtime.d.ts +34 -0
  261. package/dist/internal/discovery/runtime.d.ts.map +1 -0
  262. package/dist/internal/discovery/runtime.js +98 -0
  263. package/dist/internal/discovery/schedules.d.ts +7 -0
  264. package/dist/internal/discovery/schedules.d.ts.map +1 -0
  265. package/dist/internal/discovery/schedules.js +97 -0
  266. package/dist/internal/discovery/seed-files.d.ts +7 -0
  267. package/dist/internal/discovery/seed-files.d.ts.map +1 -0
  268. package/dist/internal/discovery/seed-files.js +41 -0
  269. package/dist/internal/discovery/services.d.ts +17 -0
  270. package/dist/internal/discovery/services.d.ts.map +1 -0
  271. package/dist/internal/discovery/services.js +104 -0
  272. package/dist/internal/discovery/skills.d.ts +16 -0
  273. package/dist/internal/discovery/skills.d.ts.map +1 -0
  274. package/dist/internal/discovery/skills.js +151 -0
  275. package/dist/internal/discovery/subagent.d.ts +13 -0
  276. package/dist/internal/discovery/subagent.d.ts.map +1 -0
  277. package/dist/internal/discovery/subagent.js +19 -0
  278. package/dist/internal/discovery/tools.d.ts +18 -0
  279. package/dist/internal/discovery/tools.d.ts.map +1 -0
  280. package/dist/internal/discovery/tools.js +159 -0
  281. package/dist/internal/discovery.d.ts +8 -62
  282. package/dist/internal/discovery.d.ts.map +1 -1
  283. package/dist/internal/discovery.js +8 -2210
  284. package/dist/internal/distribution.d.ts.map +1 -1
  285. package/dist/internal/distribution.js +5 -0
  286. package/dist/internal/framework-file-storage.d.ts +3 -3
  287. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  288. package/dist/internal/framework-file-storage.js +38 -9
  289. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  290. package/dist/internal/framework-storage-selection.js +8 -7
  291. package/dist/internal/frontmatter.d.ts +11 -3
  292. package/dist/internal/frontmatter.d.ts.map +1 -1
  293. package/dist/internal/frontmatter.js +29 -3
  294. package/dist/internal/hosted-delivery.d.ts +3 -1
  295. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  296. package/dist/internal/hosted-delivery.js +19 -32
  297. package/dist/internal/hosted-execution-diag.d.ts +5 -0
  298. package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
  299. package/dist/internal/hosted-execution-diag.js +5 -0
  300. package/dist/internal/hosted-execution-flush.d.ts +46 -0
  301. package/dist/internal/hosted-execution-flush.d.ts.map +1 -0
  302. package/dist/internal/hosted-execution-flush.js +81 -0
  303. package/dist/internal/mcp-endpoint.js +1 -0
  304. package/dist/internal/mcp-host.d.ts +2 -1
  305. package/dist/internal/mcp-host.d.ts.map +1 -1
  306. package/dist/internal/mcp-host.js +66 -29
  307. package/dist/internal/otel/collector.d.ts +13 -0
  308. package/dist/internal/otel/collector.d.ts.map +1 -1
  309. package/dist/internal/otel/collector.js +84 -17
  310. package/dist/internal/otel/http.d.ts.map +1 -1
  311. package/dist/internal/otel/http.js +2 -10
  312. package/dist/internal/otel/mcp.d.ts +16 -0
  313. package/dist/internal/otel/mcp.d.ts.map +1 -0
  314. package/dist/internal/otel/mcp.js +68 -0
  315. package/dist/internal/otel/propagation.d.ts +6 -0
  316. package/dist/internal/otel/propagation.d.ts.map +1 -0
  317. package/dist/internal/otel/propagation.js +14 -0
  318. package/dist/internal/otel/runtime.d.ts.map +1 -1
  319. package/dist/internal/otel/runtime.js +2 -0
  320. package/dist/internal/review-comments.d.ts +1 -1
  321. package/dist/internal/review-comments.d.ts.map +1 -1
  322. package/dist/internal/review-comments.js +4 -4
  323. package/dist/internal/server.d.ts +3 -0
  324. package/dist/internal/server.d.ts.map +1 -1
  325. package/dist/internal/server.js +79 -104
  326. package/dist/internal/session-engine.d.ts +14 -7
  327. package/dist/internal/session-engine.d.ts.map +1 -1
  328. package/dist/internal/session-engine.js +113 -66
  329. package/dist/internal/session-run-log.d.ts +3 -1
  330. package/dist/internal/session-run-log.d.ts.map +1 -1
  331. package/dist/internal/session-run-log.js +14 -14
  332. package/dist/internal/start-log-store.d.ts +60 -0
  333. package/dist/internal/start-log-store.d.ts.map +1 -0
  334. package/dist/internal/start-log-store.js +149 -0
  335. package/dist/internal/storage-coordinator.d.ts +4 -1
  336. package/dist/internal/storage-coordinator.d.ts.map +1 -1
  337. package/dist/internal/storage-coordinator.js +15 -13
  338. package/dist/internal/tool-catalog.d.ts.map +1 -1
  339. package/dist/internal/tool-catalog.js +9 -6
  340. package/dist/internal/tool-policy.d.ts +8 -0
  341. package/dist/internal/tool-policy.d.ts.map +1 -1
  342. package/dist/internal/tool-policy.js +19 -7
  343. package/dist/internal/turn-cost.d.ts +14 -0
  344. package/dist/internal/turn-cost.d.ts.map +1 -1
  345. package/dist/internal/turn-cost.js +41 -9
  346. package/dist/internal/v2-hosting.d.ts +22 -0
  347. package/dist/internal/v2-hosting.d.ts.map +1 -0
  348. package/dist/internal/v2-hosting.js +23 -0
  349. package/dist/otel.d.ts +16 -0
  350. package/dist/otel.d.ts.map +1 -1
  351. package/dist/otel.js +26 -0
  352. package/dist/playground/assets/index-B6C9S9nG.css +1 -0
  353. package/dist/playground/assets/{index-DVs98vPL.js → index-ZqNoT8Ie.js} +45 -45
  354. package/dist/playground/index.html +2 -2
  355. package/dist/storage-protocol.d.ts +47 -22
  356. package/dist/storage-protocol.d.ts.map +1 -1
  357. package/dist/storage-protocol.js +90 -54
  358. package/dist/storage.d.ts +2 -2
  359. package/dist/storage.d.ts.map +1 -1
  360. package/dist/storage.js +1 -1
  361. package/dist/tools.d.ts +9 -0
  362. package/dist/tools.d.ts.map +1 -1
  363. package/dist/tools.js +9 -0
  364. package/dist/types.d.ts +154 -6
  365. package/dist/types.d.ts.map +1 -1
  366. package/dist/types.js +29 -1
  367. package/docs/README.md +5 -1
  368. package/docs/concepts.md +3 -3
  369. package/docs/guides/cloud-agents.md +98 -0
  370. package/docs/guides/cloud-runtime.md +2 -0
  371. package/docs/reference/connections.md +31 -0
  372. package/docs/reference/extensions.md +205 -0
  373. package/docs/reference/http-api.md +1 -1
  374. package/docs/reference/project-layout.md +3 -0
  375. package/docs/reference/skills.md +2 -0
  376. package/docs/reference/tools.md +2 -0
  377. package/package.json +18 -4
  378. package/skills/framework-map/SKILL.md +1 -0
  379. package/src/bin/agent-serve.ts +11 -2
  380. package/src/channels/deployments/deployments-channel.ts +117 -8
  381. package/src/channels/deployments/types.ts +4 -3
  382. package/src/channels/origin/defaults.ts +143 -0
  383. package/src/channels/origin/index.ts +2 -0
  384. package/src/channels/origin/origin-channel.ts +37 -1
  385. package/src/channels/origin/state.ts +54 -0
  386. package/src/channels/origin/types.ts +24 -0
  387. package/src/channels/slack/api.ts +6 -3
  388. package/src/channels/slack/assistant.ts +1 -1
  389. package/src/channels/slack/code-fences.ts +183 -0
  390. package/src/channels/slack/dispatch.ts +27 -2
  391. package/src/channels/slack/inbound.ts +37 -0
  392. package/src/channels/slack/index.ts +1 -0
  393. package/src/channels/slack/live-delivery.ts +16 -13
  394. package/src/channels/slack/manifest.ts +2 -1
  395. package/src/connections.ts +18 -1
  396. package/src/extensions/cursor-cloud-agents/extension.ts +120 -0
  397. package/src/extensions/cursor-cloud-agents/lib/backend.ts +395 -0
  398. package/src/extensions/cursor-cloud-agents/lib/fleet.ts +109 -0
  399. package/src/extensions/cursor-cloud-agents/lib/inputs.ts +5 -0
  400. package/src/extensions/cursor-cloud-agents/lib/repos.ts +81 -0
  401. package/src/extensions/cursor-cloud-agents/lib/transcript.ts +23 -0
  402. package/src/extensions/cursor-cloud-agents/skills/handoff.md +41 -0
  403. package/src/extensions/cursor-cloud-agents/tools/cancel.ts +19 -0
  404. package/src/extensions/cursor-cloud-agents/tools/dump.ts +51 -0
  405. package/src/extensions/cursor-cloud-agents/tools/get.ts +18 -0
  406. package/src/extensions/cursor-cloud-agents/tools/launch.ts +64 -0
  407. package/src/extensions/cursor-cloud-agents/tools/list.ts +31 -0
  408. package/src/extensions/cursor-cloud-agents/tools/reply.ts +34 -0
  409. package/src/extensions.ts +141 -0
  410. package/src/files-backends/cursor-hosted.ts +1 -17
  411. package/src/files.ts +43 -34
  412. package/src/index.ts +11 -0
  413. package/src/internal/advertise-tools.ts +37 -12
  414. package/src/internal/as-of.ts +163 -0
  415. package/src/internal/cli-deploy.ts +86 -23
  416. package/src/internal/continuation-identity.ts +3 -1
  417. package/src/internal/conversation-mirror.ts +23 -18
  418. package/src/internal/cursor/backend-client.ts +32 -10
  419. package/src/internal/cursor/hosted-deployment-secrets.ts +72 -0
  420. package/src/internal/cursor/hosted-store-secrets.ts +27 -0
  421. package/src/internal/cursor-deployment-relay.ts +65 -8
  422. package/src/internal/deploy-client.ts +73 -18
  423. package/src/internal/discovery/ab.ts +111 -0
  424. package/src/internal/discovery/agent-config.ts +222 -0
  425. package/src/internal/discovery/agent.ts +360 -0
  426. package/src/internal/discovery/channels.ts +103 -0
  427. package/src/internal/discovery/connections.ts +540 -0
  428. package/src/internal/discovery/context.ts +46 -0
  429. package/src/internal/discovery/cursor-plugin.ts +708 -0
  430. package/src/internal/discovery/extensions.ts +348 -0
  431. package/src/internal/discovery/fs.ts +108 -0
  432. package/src/internal/discovery/hooks.ts +45 -0
  433. package/src/internal/discovery/info.ts +179 -0
  434. package/src/internal/discovery/instructions.ts +113 -0
  435. package/src/internal/discovery/modules.ts +107 -0
  436. package/src/internal/discovery/names.ts +44 -0
  437. package/src/internal/discovery/project.ts +270 -0
  438. package/src/internal/discovery/runtime.ts +159 -0
  439. package/src/internal/discovery/schedules.ts +94 -0
  440. package/src/internal/discovery/seed-files.ts +37 -0
  441. package/src/internal/discovery/services.ts +124 -0
  442. package/src/internal/discovery/skills.ts +176 -0
  443. package/src/internal/discovery/subagent.ts +29 -0
  444. package/src/internal/discovery/tools.ts +182 -0
  445. package/src/internal/discovery.ts +20 -2724
  446. package/src/internal/distribution.ts +5 -0
  447. package/src/internal/framework-file-storage.ts +43 -9
  448. package/src/internal/framework-storage-selection.ts +9 -9
  449. package/src/internal/frontmatter.ts +36 -3
  450. package/src/internal/hosted-delivery.ts +38 -63
  451. package/src/internal/hosted-execution-diag.ts +6 -0
  452. package/src/internal/hosted-execution-flush.ts +142 -0
  453. package/src/internal/mcp-endpoint.ts +1 -0
  454. package/src/internal/mcp-host.ts +116 -37
  455. package/src/internal/otel/collector.ts +125 -25
  456. package/src/internal/otel/http.ts +2 -12
  457. package/src/internal/otel/mcp.ts +69 -0
  458. package/src/internal/otel/propagation.ts +17 -0
  459. package/src/internal/otel/runtime.ts +2 -0
  460. package/src/internal/review-comments.ts +5 -2
  461. package/src/internal/server.ts +81 -100
  462. package/src/internal/session-engine.ts +152 -39
  463. package/src/internal/session-run-log.ts +18 -16
  464. package/src/internal/start-log-store.ts +174 -0
  465. package/src/internal/storage-coordinator.ts +19 -16
  466. package/src/internal/tool-catalog.ts +9 -6
  467. package/src/internal/tool-policy.ts +39 -9
  468. package/src/internal/turn-cost.ts +47 -4
  469. package/src/internal/v2-hosting.ts +38 -0
  470. package/src/otel.ts +38 -0
  471. package/src/storage-protocol.ts +126 -79
  472. package/src/storage.ts +5 -0
  473. package/src/tools.ts +18 -0
  474. package/src/types.ts +213 -14
  475. package/dist/docs/assets/chunks/@localSearchIndexroot.j70vvPL4.js +0 -1
  476. package/dist/docs/assets/concepts.md.lwAgBIMI.js +0 -1
  477. package/dist/docs/assets/index.md.Bb4k8kUm.js +0 -5
  478. package/dist/docs/assets/skills_framework-map.md.BTi817yv.js +0 -1
  479. package/dist/playground/assets/index-BszoQDc6.css +0 -1
  480. /package/dist/docs/assets/{concepts.md.lwAgBIMI.lean.js → concepts.md.rPzW2HZN.lean.js} +0 -0
  481. /package/dist/docs/assets/{guides_cloud-runtime.md.CkYbjnAX.lean.js → guides_cloud-runtime.md.BRirbRAN.lean.js} +0 -0
  482. /package/dist/docs/assets/{reference_http-api.md.BEJx9XVj.lean.js → reference_http-api.md.oySXBO8o.lean.js} +0 -0
  483. /package/dist/docs/assets/{reference_skills.md.BFW9retM.lean.js → reference_skills.md.l2ezAcaN.lean.js} +0 -0
  484. /package/dist/docs/assets/{reference_tools.md.CvAHsdSp.lean.js → reference_tools.md.B1up2r9W.lean.js} +0 -0
@@ -0,0 +1,54 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { mkdir, writeFile } from "node:fs/promises";
11
+ import { dirname, join } from "node:path";
12
+ import { defineTool } from "../../../tools.js";
13
+ import { cloudAgentsBackend } from "../lib/backend.js";
14
+ import { assertOwned } from "../lib/fleet.js";
15
+ import { agentRef } from "../lib/inputs.js";
16
+ import { lastAssistantText, transcriptLines, transcriptPath, } from "../lib/transcript.js";
17
+ const dump = defineTool({
18
+ description: "Write a cloud agent's full conversation to a JSONL file in your workspace so you can read what it did: one JSON message per line (prompts, assistant text, thinking, tool calls). Read the last line for the final report.",
19
+ effect: "read",
20
+ inputSchema: agentRef,
21
+ execute(input, ctx) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ yield assertOwned(ctx, input.agent_id);
24
+ const backend = cloudAgentsBackend();
25
+ const [messages, info] = yield Promise.all([
26
+ backend.conversation(input.agent_id),
27
+ backend.info(input.agent_id),
28
+ ]);
29
+ if (messages.length === 0) {
30
+ return {
31
+ agentId: input.agent_id,
32
+ lineCount: 0,
33
+ status: info.status,
34
+ note: "The agent has not produced any transcript yet.",
35
+ };
36
+ }
37
+ // Absolute: the harness's shell does not run in the workspace directory.
38
+ const path = join(ctx.workspaceDir, transcriptPath(input.agent_id));
39
+ const jsonl = `${transcriptLines(messages).join("\n")}\n`;
40
+ yield mkdir(dirname(path), { recursive: true });
41
+ yield writeFile(path, jsonl, "utf8");
42
+ return {
43
+ agentId: input.agent_id,
44
+ path,
45
+ sizeBytes: Buffer.byteLength(jsonl),
46
+ lineCount: messages.length,
47
+ status: info.status,
48
+ finalMessage: lastAssistantText(messages),
49
+ note: `One JSON message per line. Grep it, or read the final report with \`tail -n 1 ${path}\`.`,
50
+ };
51
+ });
52
+ },
53
+ });
54
+ export default dump;
@@ -0,0 +1,4 @@
1
+ import type { ToolDefinition } from "../../../types.js";
2
+ declare const get: ToolDefinition;
3
+ export default get;
4
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cursor-cloud-agents/tools/get.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,QAAA,MAAM,GAAG,EAAE,cAST,CAAC;eAEY,GAAG"}
@@ -0,0 +1,25 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { defineTool } from "../../../tools.js";
11
+ import { cloudAgentsBackend } from "../lib/backend.js";
12
+ import { assertOwned } from "../lib/fleet.js";
13
+ import { agentRef } from "../lib/inputs.js";
14
+ const get = defineTool({
15
+ description: "Look up a cloud agent you launched by id: its status, branch, pull request, changed-file counts, summary, and any error. Use dump to read everything it did.",
16
+ effect: "read",
17
+ inputSchema: agentRef,
18
+ execute(input, ctx) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ yield assertOwned(ctx, input.agent_id);
21
+ return cloudAgentsBackend().info(input.agent_id);
22
+ });
23
+ },
24
+ });
25
+ export default get;
@@ -0,0 +1,4 @@
1
+ import type { ToolDefinition } from "../../../types.js";
2
+ declare const launch: ToolDefinition;
3
+ export default launch;
4
+ //# sourceMappingURL=launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cursor-cloud-agents/tools/launch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD,QAAA,MAAM,MAAM,EAAE,cAqDZ,CAAC;eAEY,MAAM"}
@@ -0,0 +1,59 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { z } from "zod";
11
+ import { defineTool } from "../../../tools.js";
12
+ import extension from "../extension.js";
13
+ import { cloudAgentsBackend } from "../lib/backend.js";
14
+ import { recordLaunch } from "../lib/fleet.js";
15
+ import { launchRepos } from "../lib/repos.js";
16
+ const launch = defineTool({
17
+ description: "Launch a Cursor cloud agent on a repository with a self-contained task. Returns the agent id and URL; check on it with get, read what it did with dump.",
18
+ effect: "write",
19
+ needsApproval: () => extension.config.needsApproval,
20
+ inputSchema: z.object({
21
+ prompt: z
22
+ .string()
23
+ .min(1)
24
+ .describe("Self-contained task: goal, constraints, and what done looks like."),
25
+ repo: z
26
+ .string()
27
+ .url()
28
+ .optional()
29
+ .describe("GitHub repository URL, one of the configured repositories. Defaults to the configured repository."),
30
+ starting_ref: z
31
+ .string()
32
+ .optional()
33
+ .describe("Branch or commit to start from; defaults to the configured or default branch."),
34
+ pr_url: z
35
+ .string()
36
+ .url()
37
+ .optional()
38
+ .describe("Work on this pull request's branch instead of a new one."),
39
+ name: z
40
+ .string()
41
+ .max(100)
42
+ .optional()
43
+ .describe("Display name; derived from the prompt when omitted."),
44
+ }),
45
+ execute(input, ctx) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ const { cloud, model } = extension.config;
48
+ const launched = yield cloudAgentsBackend().launch({
49
+ prompt: input.prompt,
50
+ name: input.name,
51
+ model,
52
+ cloud: Object.assign(Object.assign({}, cloud), { repos: launchRepos({ repo: input.repo, ref: input.starting_ref, prUrl: input.pr_url }, cloud) }),
53
+ });
54
+ yield recordLaunch(ctx, launched.agentId, input.name);
55
+ return launched;
56
+ });
57
+ },
58
+ });
59
+ export default launch;
@@ -0,0 +1,4 @@
1
+ import type { ToolDefinition } from "../../../types.js";
2
+ declare const list: ToolDefinition;
3
+ export default list;
4
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cursor-cloud-agents/tools/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,QAAA,MAAM,IAAI,EAAE,cAsBV,CAAC;eAEY,IAAI"}
@@ -0,0 +1,36 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { z } from "zod";
11
+ import { defineTool } from "../../../tools.js";
12
+ import { agentUrl } from "../lib/backend.js";
13
+ import { listFleet } from "../lib/fleet.js";
14
+ const list = defineTool({
15
+ description: 'List the cloud agents launched in this session, newest first. Pass scope "all" for every agent you launched, in any session.',
16
+ effect: "read",
17
+ inputSchema: z.object({
18
+ scope: z
19
+ .enum(["session", "all"])
20
+ .default("session")
21
+ .describe("session: agents this session launched; all: every agent launched by you, in any session."),
22
+ limit: z.number().int().min(1).max(100).default(20),
23
+ }),
24
+ execute(input, ctx) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ const fleet = yield listFleet(ctx, input.scope);
27
+ return {
28
+ sessionId: ctx.session.id,
29
+ agents: fleet
30
+ .slice(0, input.limit)
31
+ .map((entry) => (Object.assign(Object.assign({}, entry), { url: agentUrl(entry.agentId) }))),
32
+ };
33
+ });
34
+ },
35
+ });
36
+ export default list;
@@ -0,0 +1,4 @@
1
+ import type { ToolDefinition } from "../../../types.js";
2
+ declare const reply: ToolDefinition;
3
+ export default reply;
4
+ //# sourceMappingURL=reply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cursor-cloud-agents/tools/reply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD,QAAA,MAAM,KAAK,EAAE,cAuBX,CAAC;eAEY,KAAK"}
@@ -0,0 +1,35 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { z } from "zod";
11
+ import { defineTool } from "../../../tools.js";
12
+ import extension from "../extension.js";
13
+ import { cloudAgentsBackend } from "../lib/backend.js";
14
+ import { assertOwned } from "../lib/fleet.js";
15
+ import { agentRef } from "../lib/inputs.js";
16
+ const reply = defineTool({
17
+ description: "Send a follow-up prompt to a cloud agent you launched. It queues behind the current run; pass interrupt to stop that run's current step and deliver it now.",
18
+ effect: "write",
19
+ needsApproval: () => extension.config.needsApproval,
20
+ inputSchema: agentRef.extend({
21
+ prompt: z.string().min(1).describe("The follow-up instruction."),
22
+ interrupt: z
23
+ .boolean()
24
+ .default(false)
25
+ .describe("Deliver now, cancelling the in-flight step, instead of waiting for the current run to finish."),
26
+ }),
27
+ execute(input, ctx) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ yield assertOwned(ctx, input.agent_id);
30
+ const { runId } = yield cloudAgentsBackend().followUp(input.agent_id, input.prompt, input.interrupt);
31
+ return { agentId: input.agent_id, runId, queued: !input.interrupt };
32
+ });
33
+ },
34
+ });
35
+ export default reply;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Extensions — agent-shaped trees an agent mounts under a namespace.
3
+ *
4
+ * An extension is a directory laid out like `agent/`: `extension.ts`
5
+ * declares it, `tools/<name>.ts` and `skills/<name>.md|ts` are its
6
+ * contributions, `lib/` holds shared code.
7
+ *
8
+ * ```ts
9
+ * // extension.ts
10
+ * import { defineExtension } from "@cursor/july/extensions";
11
+ * import { z } from "zod";
12
+ *
13
+ * export default defineExtension({
14
+ * root: import.meta.dirname,
15
+ * description: "Investigate failing CI builds.",
16
+ * config: z.object({ org: z.string(), token: z.string() }),
17
+ * });
18
+ *
19
+ * // tools/failed_jobs.ts
20
+ * import extension from "../extension.js";
21
+ *
22
+ * export default defineTool({
23
+ * description: "List the failed jobs of a build.",
24
+ * execute: (input) => failedJobs(extension.config, input),
25
+ * });
26
+ * ```
27
+ *
28
+ * A consumer mounts it from `agent/extensions/<ns>.ts`; the filename is the
29
+ * namespace, and every contribution is exposed as `<ns>__<name>`
30
+ * (`ci__failed_jobs`). `__` is reserved for that: an authored `agent/tools/`
31
+ * or `agent/skills/` name may not contain it.
32
+ *
33
+ * ```ts
34
+ * // agent/extensions/ci.ts
35
+ * import ci from "@acme/ci-triage";
36
+ *
37
+ * export default ci({ org: "acme", token: process.env.BUILDKITE_TOKEN! });
38
+ * ```
39
+ *
40
+ * To adjust a contribution, mount as a directory instead and overlay the
41
+ * slot: `agent/extensions/ci/extension.ts` holds the mount, and
42
+ * `agent/extensions/ci/tools/job_log.ts` replaces `ci__job_log` — or removes
43
+ * it with `export default disableTool()`.
44
+ *
45
+ * A Cursor plugin (the marketplace format: `.cursor-plugin/plugin.json`,
46
+ * `skills/`, `commands/`, `agents/`, `mcp.json`) mounts the same way with
47
+ * `cursorPlugin`. Its skills and commands become `<ns>__<name>` skills, its
48
+ * agents `<ns>__<name>` subagents, and its MCP servers `<ns>__<server>`
49
+ * connections. Rules and hooks are not mounted yet.
50
+ *
51
+ * ```ts
52
+ * // agent/extensions/notion.ts
53
+ * import { cursorPlugin } from "@cursor/july/extensions";
54
+ *
55
+ * export default cursorPlugin({
56
+ * path: "plugins/notion-workspace",
57
+ * variables: { NOTION_TOKEN: process.env.NOTION_TOKEN! },
58
+ * });
59
+ * ```
60
+ *
61
+ * A directory mount overlays its MCP servers too:
62
+ * `agent/extensions/notion/mcp-connections/notion.ts` replaces
63
+ * `notion__notion` with your own `defineConnection` (headers, `oauth`,
64
+ * `advertiseTools`), and `export default disableConnection()` drops a server
65
+ * the agent should not carry.
66
+ */
67
+ import type { CursorPluginOptions, DisabledConnectionDefinition, DisabledToolDefinition, Extension, ExtensionMount, ExtensionOptions } from "./types.js";
68
+ export type { CursorPluginDeclaration, CursorPluginOptions, DisabledConnectionDefinition, DisabledToolDefinition, DiscoveredExtension, Extension, ExtensionDeclaration, ExtensionMount, ExtensionOptions, } from "./types.js";
69
+ export declare function defineExtension<TConfig = undefined, TInput = TConfig>(options: ExtensionOptions<TConfig, TInput>): Extension<TConfig, TInput>;
70
+ export declare function disableTool(): DisabledToolDefinition;
71
+ export declare function disableConnection(): DisabledConnectionDefinition;
72
+ export declare function cursorPlugin(options: CursorPluginOptions): ExtensionMount;
73
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAGH,OAAO,KAAK,EACV,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,SAAS,EACT,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,EACnB,SAAS,EACT,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,eAAe,CAAC,OAAO,GAAG,SAAS,EAAE,MAAM,GAAG,OAAO,EACnE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,GACzC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CA6B5B;AAED,wBAAgB,WAAW,IAAI,sBAAsB,CAEpD;AAED,wBAAgB,iBAAiB,IAAI,4BAA4B,CAEhE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,cAAc,CAUzE"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Extensions — agent-shaped trees an agent mounts under a namespace.
3
+ *
4
+ * An extension is a directory laid out like `agent/`: `extension.ts`
5
+ * declares it, `tools/<name>.ts` and `skills/<name>.md|ts` are its
6
+ * contributions, `lib/` holds shared code.
7
+ *
8
+ * ```ts
9
+ * // extension.ts
10
+ * import { defineExtension } from "@cursor/july/extensions";
11
+ * import { z } from "zod";
12
+ *
13
+ * export default defineExtension({
14
+ * root: import.meta.dirname,
15
+ * description: "Investigate failing CI builds.",
16
+ * config: z.object({ org: z.string(), token: z.string() }),
17
+ * });
18
+ *
19
+ * // tools/failed_jobs.ts
20
+ * import extension from "../extension.js";
21
+ *
22
+ * export default defineTool({
23
+ * description: "List the failed jobs of a build.",
24
+ * execute: (input) => failedJobs(extension.config, input),
25
+ * });
26
+ * ```
27
+ *
28
+ * A consumer mounts it from `agent/extensions/<ns>.ts`; the filename is the
29
+ * namespace, and every contribution is exposed as `<ns>__<name>`
30
+ * (`ci__failed_jobs`). `__` is reserved for that: an authored `agent/tools/`
31
+ * or `agent/skills/` name may not contain it.
32
+ *
33
+ * ```ts
34
+ * // agent/extensions/ci.ts
35
+ * import ci from "@acme/ci-triage";
36
+ *
37
+ * export default ci({ org: "acme", token: process.env.BUILDKITE_TOKEN! });
38
+ * ```
39
+ *
40
+ * To adjust a contribution, mount as a directory instead and overlay the
41
+ * slot: `agent/extensions/ci/extension.ts` holds the mount, and
42
+ * `agent/extensions/ci/tools/job_log.ts` replaces `ci__job_log` — or removes
43
+ * it with `export default disableTool()`.
44
+ *
45
+ * A Cursor plugin (the marketplace format: `.cursor-plugin/plugin.json`,
46
+ * `skills/`, `commands/`, `agents/`, `mcp.json`) mounts the same way with
47
+ * `cursorPlugin`. Its skills and commands become `<ns>__<name>` skills, its
48
+ * agents `<ns>__<name>` subagents, and its MCP servers `<ns>__<server>`
49
+ * connections. Rules and hooks are not mounted yet.
50
+ *
51
+ * ```ts
52
+ * // agent/extensions/notion.ts
53
+ * import { cursorPlugin } from "@cursor/july/extensions";
54
+ *
55
+ * export default cursorPlugin({
56
+ * path: "plugins/notion-workspace",
57
+ * variables: { NOTION_TOKEN: process.env.NOTION_TOKEN! },
58
+ * });
59
+ * ```
60
+ *
61
+ * A directory mount overlays its MCP servers too:
62
+ * `agent/extensions/notion/mcp-connections/notion.ts` replaces
63
+ * `notion__notion` with your own `defineConnection` (headers, `oauth`,
64
+ * `advertiseTools`), and `export default disableConnection()` drops a server
65
+ * the agent should not carry.
66
+ */
67
+ import { brandDefinition } from "./internal/brand.js";
68
+ export function defineExtension(options) {
69
+ let mounted;
70
+ const mount = (config) => {
71
+ const parsed = options.config === undefined
72
+ ? config
73
+ : options.config.parse(config);
74
+ mounted = { config: parsed };
75
+ return brandDefinition("extension", {
76
+ extension: handle,
77
+ config: parsed,
78
+ });
79
+ };
80
+ const handle = Object.defineProperties(mount, {
81
+ root: { value: options.root, enumerable: true },
82
+ description: { value: options.description, enumerable: true },
83
+ config: {
84
+ enumerable: true,
85
+ get() {
86
+ if (mounted === undefined) {
87
+ throw new Error(`Extension at ${options.root} read its config before an agent mounted it. Mount it from agent/extensions/<ns>.ts; the mount runs before the tree loads.`);
88
+ }
89
+ return mounted.config;
90
+ },
91
+ },
92
+ });
93
+ return handle;
94
+ }
95
+ export function disableTool() {
96
+ return brandDefinition("disabled-tool", {});
97
+ }
98
+ export function disableConnection() {
99
+ return brandDefinition("disabled-connection", {});
100
+ }
101
+ export function cursorPlugin(options) {
102
+ var _a;
103
+ return brandDefinition("extension", {
104
+ extension: {
105
+ root: options.path,
106
+ description: undefined,
107
+ layout: "cursor-plugin",
108
+ variables: (_a = options.variables) !== null && _a !== void 0 ? _a : {},
109
+ },
110
+ config: undefined,
111
+ });
112
+ }
@@ -73,14 +73,6 @@ export declare const AGENT_SERVE_FRAMEWORK_STORE_SOURCE_ID_ENV_VAR = "AGENT_SERV
73
73
  * loudly when the sink is used.
74
74
  */
75
75
  export declare function isCursorHostedFilesAvailable(env?: NodeJS.ProcessEnv): boolean;
76
- /**
77
- * The framework-level store's source id, or `undefined` when the deployment
78
- * has none (v1, self-hosted, or a v2 deploy predating framework-store
79
- * provisioning). Same detection posture as
80
- * {@link isCursorHostedFilesAvailable}: keyed on the id alone — a missing
81
- * credential must fail loudly at use, not silently deselect the store.
82
- */
83
- export declare function cursorFrameworkStoreSourceId(env?: NodeJS.ProcessEnv): string | undefined;
84
76
  /**
85
77
  * Local `serve`/`run` with a personal `CURSOR_API_KEY` can address
86
78
  * `/v0/agent-serve-files/user`. Hosted deployments have a store source id
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-hosted.d.ts","sourceRoot":"","sources":["../../src/files-backends/cursor-hosted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AAerB;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,gCACjB,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6CAA6C,0CACjB,CAAC;AAgB1C;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAEpB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAYT;AAED,MAAM,WAAW,wBAAwB;IACvC,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACzC,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAChD,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAuCD,KAAK,kBAAkB,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG;IAChD,gFAAgF;IAChF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;CACrD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,kBAAkB,CAwXpB"}
1
+ {"version":3,"file":"cursor-hosted.d.ts","sourceRoot":"","sources":["../../src/files-backends/cursor-hosted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AAYrB;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,gCACjB,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6CAA6C,0CACjB,CAAC;AAgB1C;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAYT;AAED,MAAM,WAAW,wBAAwB;IACvC,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACzC,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAChD,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAuCD,KAAK,kBAAkB,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG;IAChD,gFAAgF;IAChF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;CACrD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,kBAAkB,CAwXpB"}
@@ -53,7 +53,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
53
53
  };
54
54
  import { createHash } from "node:crypto";
55
55
  import { FileConflictError, } from "../files.js";
56
- import { resolveDeploymentStoreSourceIdSync, resolveFrameworkStoreSourceIdSync, } from "../internal/cursor/hosted-store-secrets.js";
56
+ import { resolveDeploymentStoreSourceIdSync } from "../internal/cursor/hosted-store-secrets.js";
57
57
  import { createAgentStorePresignedUrlValidatorForBackend } from "./agent-store-presigned-url.js";
58
58
  /**
59
59
  * Same default as the hosted storage backend, inlined so this entrypoint does
@@ -105,16 +105,6 @@ const MAX_LIST_WALK_PAGES = 1000;
105
105
  export function isCursorHostedFilesAvailable(env = process.env) {
106
106
  return resolveDeploymentStoreSourceIdSync(env) !== undefined;
107
107
  }
108
- /**
109
- * The framework-level store's source id, or `undefined` when the deployment
110
- * has none (v1, self-hosted, or a v2 deploy predating framework-store
111
- * provisioning). Same detection posture as
112
- * {@link isCursorHostedFilesAvailable}: keyed on the id alone — a missing
113
- * credential must fail loudly at use, not silently deselect the store.
114
- */
115
- export function cursorFrameworkStoreSourceId(env = process.env) {
116
- return resolveFrameworkStoreSourceIdSync(env);
117
- }
118
108
  /**
119
109
  * Local `serve`/`run` with a personal `CURSOR_API_KEY` can address
120
110
  * `/v0/agent-serve-files/user`. Hosted deployments have a store source id
package/dist/files.d.ts CHANGED
@@ -133,7 +133,7 @@ export declare const AGENT_SERVE_USER_STORE_KEY_PREFIX = "agent-serve";
133
133
  * `--agent-store-skills-dir` walk finds them the same way it finds user-store
134
134
  * skills. Memory and artifacts stay under {@link STORAGE_KEY_ROOT}.
135
135
  */
136
- export declare const agentStoreKeys: {
136
+ declare function createAgentStoreKeys(root: string): {
137
137
  readonly artifactRow: (agent: string, id: string) => string;
138
138
  readonly artifactRowPrefix: (agent: string) => string;
139
139
  readonly artifactContent: (agent: string, id: string) => string;
@@ -147,6 +147,9 @@ export declare const agentStoreKeys: {
147
147
  readonly conversationManifest: (agent: string, sdkAgentId: string) => string;
148
148
  readonly conversationBlob: (agent: string, sdkAgentId: string, blobId: string) => string;
149
149
  };
150
+ export type AgentStoreKeys = ReturnType<typeof createAgentStoreKeys>;
151
+ export declare const agentStoreKeys: AgentStoreKeys;
152
+ export declare const agentSdkAgentStoreKeys: AgentStoreKeys;
150
153
  /**
151
154
  * Deployment store FUSE mount on cloud-runtime VMs. Mirrors
152
155
  * `AGENT_STORE_MOUNT_ROOT` / `AGENT_SERVE_DEPLOYMENT_STORE_MOUNT_NAME` in
@@ -177,4 +180,5 @@ export declare class FileTooLargeError extends Error {
177
180
  readonly maxBytes: number;
178
181
  constructor(key: string, size: number, maxBytes: number);
179
182
  }
183
+ export {};
180
184
  //# sourceMappingURL=files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
package/dist/files.js CHANGED
@@ -22,7 +22,7 @@
22
22
  * their failure** — an author who writes evidence and then delegates has to
23
23
  * know the write did not land.
24
24
  */
25
- import { STORAGE_KEY_ROOT } from "./storage.js";
25
+ import { AGENTSDK_STORAGE_KEY_ROOT, STORAGE_KEY_ROOT } from "./storage.js";
26
26
  // ============================================================================
27
27
  // Key scheme
28
28
  // ============================================================================
@@ -68,23 +68,27 @@ export const AGENT_SERVE_USER_STORE_KEY_PREFIX = "agent-serve";
68
68
  * `--agent-store-skills-dir` walk finds them the same way it finds user-store
69
69
  * skills. Memory and artifacts stay under {@link STORAGE_KEY_ROOT}.
70
70
  */
71
- export const agentStoreKeys = {
72
- artifactRow: (agent, id) => `${STORAGE_KEY_ROOT}/${agent}/artifacts/rows/${encodeURIComponent(id)}.json`,
73
- artifactRowPrefix: (agent) => `${STORAGE_KEY_ROOT}/${agent}/artifacts/rows/`,
74
- artifactContent: (agent, id) => `${STORAGE_KEY_ROOT}/${agent}/artifacts/content/${encodeURIComponent(id)}`,
75
- skillFile: (skillName, relPath, skillsPrefix = "skills/") => `${skillsPrefix}${skillName}/${relPath}`,
76
- skillsPrefix: () => "skills/",
77
- /** Personal-key cloud agents: namespaced so they cannot collide with the user's own `skills/`. */
78
- userSkillsPrefix: (agent) => `${AGENT_SERVE_USER_STORE_KEY_PREFIX}/${agent}/skills/`,
79
- memoryDir: (agent) => `${STORAGE_KEY_ROOT}/${agent}/memory`,
80
- memoryJournal: (agent) => `${STORAGE_KEY_ROOT}/${agent}/memory/journal.jsonl`,
81
- memoryJournalRotated: (agent, stamp) => `${STORAGE_KEY_ROOT}/${agent}/memory/journal-${stamp}.jsonl`,
82
- // SDK conversation mirror (the runner's SQLite store, exported through the
83
- // store APIs): one manifest per SDK agent id plus its content-addressed
84
- // checkpoint blobs. See internal/conversation-mirror.ts.
85
- conversationManifest: (agent, sdkAgentId) => `${STORAGE_KEY_ROOT}/${agent}/conversations/${encodeURIComponent(sdkAgentId)}/manifest.json`,
86
- conversationBlob: (agent, sdkAgentId, blobId) => `${STORAGE_KEY_ROOT}/${agent}/conversations/${encodeURIComponent(sdkAgentId)}/blobs/${encodeURIComponent(blobId)}`,
87
- };
71
+ function createAgentStoreKeys(root) {
72
+ return {
73
+ artifactRow: (agent, id) => `${root}/${agent}/artifacts/rows/${encodeURIComponent(id)}.json`,
74
+ artifactRowPrefix: (agent) => `${root}/${agent}/artifacts/rows/`,
75
+ artifactContent: (agent, id) => `${root}/${agent}/artifacts/content/${encodeURIComponent(id)}`,
76
+ skillFile: (skillName, relPath, skillsPrefix = "skills/") => `${skillsPrefix}${skillName}/${relPath}`,
77
+ skillsPrefix: () => "skills/",
78
+ /** Personal-key cloud agents: namespaced so they cannot collide with the user's own `skills/`. */
79
+ userSkillsPrefix: (agent) => `${AGENT_SERVE_USER_STORE_KEY_PREFIX}/${agent}/skills/`,
80
+ memoryDir: (agent) => `${root}/${agent}/memory`,
81
+ memoryJournal: (agent) => `${root}/${agent}/memory/journal.jsonl`,
82
+ memoryJournalRotated: (agent, stamp) => `${root}/${agent}/memory/journal-${stamp}.jsonl`,
83
+ // SDK conversation mirror (the runner's SQLite store, exported through the
84
+ // store APIs): one manifest per SDK agent id plus its content-addressed
85
+ // checkpoint blobs. See internal/conversation-mirror.ts.
86
+ conversationManifest: (agent, sdkAgentId) => `${root}/${agent}/conversations/${encodeURIComponent(sdkAgentId)}/manifest.json`,
87
+ conversationBlob: (agent, sdkAgentId, blobId) => `${root}/${agent}/conversations/${encodeURIComponent(sdkAgentId)}/blobs/${encodeURIComponent(blobId)}`,
88
+ };
89
+ }
90
+ export const agentStoreKeys = createAgentStoreKeys(STORAGE_KEY_ROOT);
91
+ export const agentSdkAgentStoreKeys = createAgentStoreKeys(AGENTSDK_STORAGE_KEY_ROOT);
88
92
  /**
89
93
  * Deployment store FUSE mount on cloud-runtime VMs. Mirrors
90
94
  * `AGENT_STORE_MOUNT_ROOT` / `AGENT_SERVE_DEPLOYMENT_STORE_MOUNT_NAME` in
package/dist/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export { allowAll, bearerAuth, DELETE, defineChannel, GET, httpChannel, localDev
20
20
  export { defineConnection } from "./connections.js";
21
21
  export type { ContinuationBuiltin, ContinuationClaim, ContinuationIdentity, ContinuationSelector, ConversationType, MailboxContinuation, ParsedContinuation, } from "./continuation.js";
22
22
  export { BUILTINS, bindMailboxContinuationSend, CONTINUATION_SELECTORS, continuationSource, defaultContinuationSelector, extractContinuation, formatConversationKey, handshakeContinuation, isContinuationSelector, mintClaim, normalizeIdentity, parseContinuationSelector, resolveContinuation, resolveV2Key, stampMailboxContinuation, V2EngineError, } from "./continuation.js";
23
+ export { cursorPlugin, defineExtension, disableConnection, disableTool, } from "./extensions.js";
23
24
  export { defineHook } from "./hooks.js";
24
25
  export { InvalidAsOfError, VacuousTimeArgsError, } from "./internal/as-of.js";
25
26
  export type { LoadAgentProjectOptions } from "./internal/discovery.js";
@@ -40,11 +41,11 @@ export { prompt } from "./prompt.js";
40
41
  export type { ReminderBusyPolicy, ReminderCreateInput, ReminderFireContext, ReminderFireResult, ReminderHostApi, ReminderInfo, ReminderReschedule, ReminderScheduleKind, ReminderStatus, ReminderTarget, ReminderUntilContext, } from "./reminders.js";
41
42
  export { defineSchedule } from "./schedules.js";
42
43
  export { defineSkill } from "./skills.js";
43
- export type { DurableSessionRecord, DurableSessionSummary, StorageABTable, StorageCasTable, StorageConfig, StorageContext, StorageDefinition, StorageEntry, StorageEvalsTable, StoragePolicy, StorageRestorePolicy, } from "./storage.js";
44
- export { defineStorage, isDurableSessionRecordKey, parseDurableSessionRecord, STORAGE_KEY_ROOT, storageKeys, summarizeDurableSessionRecord, } from "./storage.js";
44
+ export type { DurableSessionRecord, DurableSessionSummary, StorageABTable, StorageCasTable, StorageConfig, StorageContext, StorageDefinition, StorageEntry, StorageEvalsTable, StorageKeys, StoragePolicy, StorageRestorePolicy, } from "./storage.js";
45
+ export { AGENTSDK_STORAGE_KEY_ROOT, agentSdkStorageKeys, defineStorage, isDurableSessionRecordKey, parseDurableSessionRecord, STORAGE_KEY_ROOT, storageKeys, storageKeysForArchitecture, summarizeDurableSessionRecord, } from "./storage.js";
45
46
  export { defineTool } from "./tools.js";
46
47
  export type * from "./types.js";
47
- export { cursorAccountServersHasMixedWildcard, DEFAULT_MODEL, DIRECT_TOOL_CALL_CHANNEL_ID, isCursorAccountTransport, isPeerConnectionTransport, isSymbolicConnectionTransport, isToolEffect, MAX_RUNNING_TURNS_LIMIT, normalizeConnectionEffects, normalizeCursorAccountServers, supportsKvCas, } from "./types.js";
48
+ export { cursorAccountServersHasMixedWildcard, DEFAULT_MODEL, DIRECT_TOOL_CALL_CHANNEL_ID, isCursorAccountTransport, isPeerConnectionTransport, isSymbolicConnectionTransport, isToolEffect, MAX_RUNNING_TURNS_LIMIT, normalizeConnectionEffects, normalizeConnectionTools, normalizeCursorAccountServers, supportsKvCas, } from "./types.js";
48
49
  /**
49
50
  * Runtime config for an agent — authored at `agent/agent.ts` (the root
50
51
  * agent) or `agent/subagents/<id>/agent.ts` (a subagent). Set