@cursor/july 0.1.30 → 0.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +10 -5
  3. package/dist/bin/agent-serve.js +4 -4
  4. package/dist/channels/github/index.d.ts +1 -1
  5. package/dist/channels/github/index.js +1 -1
  6. package/dist/channels/slack/bot-mentions.d.ts +1 -1
  7. package/dist/channels/slack/bot-mentions.d.ts.map +1 -1
  8. package/dist/channels/slack/bot-mentions.js +1 -1
  9. package/dist/channels/slack/eval-directive.js +1 -1
  10. package/dist/channels/slack/external-policy.d.ts +1 -1
  11. package/dist/channels/slack/external-policy.js +1 -1
  12. package/dist/channels/slack/log.d.ts +1 -1
  13. package/dist/channels/slack/log.js +1 -1
  14. package/dist/channels/slack/post-update-delivery.d.ts +85 -0
  15. package/dist/channels/slack/post-update-delivery.d.ts.map +1 -0
  16. package/dist/channels/slack/setup.js +1 -1
  17. package/dist/channels/slack/socket-mode.js +1 -1
  18. package/dist/docs/404.html +3 -3
  19. package/dist/docs/ab.html +11 -11
  20. package/dist/docs/assets/{ab.md.BMCZ6Hd7.js → ab.md.DAQoJ-up.js} +6 -6
  21. package/dist/docs/assets/{ab.md.BMCZ6Hd7.lean.js → ab.md.DAQoJ-up.lean.js} +1 -1
  22. package/dist/docs/assets/{app.Cm4lsMc4.js → app.C2aVczmo.js} +1 -1
  23. package/dist/docs/assets/building-with-agents.md.CnHqvYDd.js +13 -0
  24. package/dist/docs/assets/{building-with-agents.md.CJCtZCyi.lean.js → building-with-agents.md.CnHqvYDd.lean.js} +1 -1
  25. package/dist/docs/assets/chunks/@localSearchIndexroot.xgMnlUSO.js +1 -0
  26. package/dist/docs/assets/chunks/{VPLocalSearchBox.CYUFXspH.js → VPLocalSearchBox.DLEzetbD.js} +1 -1
  27. package/dist/docs/assets/chunks/{theme.CTjkX9vc.js → theme.BkOH1oMp.js} +2 -2
  28. package/dist/docs/assets/concepts.md.DFaQEFkA.js +4 -0
  29. package/dist/docs/assets/concepts.md.DFaQEFkA.lean.js +1 -0
  30. package/dist/docs/assets/deployment.md.9MYBuKM1.js +55 -0
  31. package/dist/docs/assets/deployment.md.9MYBuKM1.lean.js +1 -0
  32. package/dist/docs/assets/{evals.md.DYOjkRCX.js → evals.md.BIUoVZ6X.js} +13 -13
  33. package/dist/docs/assets/evals.md.BIUoVZ6X.lean.js +1 -0
  34. package/dist/docs/assets/{example-agents_approval-buddy.md.DFGBYLcc.js → example-agents_approval-buddy.md.BhEfleVx.js} +4 -4
  35. package/dist/docs/assets/{example-agents_approval-buddy.md.DFGBYLcc.lean.js → example-agents_approval-buddy.md.BhEfleVx.lean.js} +1 -1
  36. package/dist/docs/assets/example-agents_benny.md.2Et1qa8f.js +7 -0
  37. package/dist/docs/assets/{example-agents_bugbot.md.DelIdhxB.js → example-agents_bugbot.md.ByUexi5i.js} +5 -5
  38. package/dist/docs/assets/{example-agents_codebase-wiki.md.DC6sgwn0.js → example-agents_codebase-wiki.md.B4y-7ZVW.js} +6 -6
  39. package/dist/docs/assets/{example-agents_codebase-wiki.md.DC6sgwn0.lean.js → example-agents_codebase-wiki.md.B4y-7ZVW.lean.js} +1 -1
  40. package/dist/docs/assets/{example-agents_codeowners-review.md.Ku_tG2RY.js → example-agents_codeowners-review.md.D6ay4nvf.js} +6 -6
  41. package/dist/docs/assets/{example-agents_codeowners-review.md.Ku_tG2RY.lean.js → example-agents_codeowners-review.md.D6ay4nvf.lean.js} +1 -1
  42. package/dist/docs/assets/{example-agents_concierge.md.4rQTSMXt.js → example-agents_concierge.md.lL8rhYlj.js} +7 -7
  43. package/dist/docs/assets/{example-agents_fsd.md.CzgUrDfi.js → example-agents_fsd.md.DfNKQTHz.js} +5 -5
  44. package/dist/docs/assets/example-agents_index.md.DgGBwckv.js +2 -0
  45. package/dist/docs/assets/example-agents_index.md.DgGBwckv.lean.js +1 -0
  46. package/dist/docs/assets/{example-agents_knowledge-base.md.BPJiVueF.js → example-agents_knowledge-base.md.CzyZ2DCr.js} +5 -5
  47. package/dist/docs/assets/{example-agents_knowledge-base.md.BPJiVueF.lean.js → example-agents_knowledge-base.md.CzyZ2DCr.lean.js} +1 -1
  48. package/dist/docs/assets/example-agents_oncall.md.wFFXXEyW.js +10 -0
  49. package/dist/docs/assets/{example-agents_security-reviewer.md.Dhj_m7_B.js → example-agents_security-reviewer.md.Dkf1gyo6.js} +8 -8
  50. package/dist/docs/assets/example-agents_slack-agent.md.DvgvT4nn.js +5 -0
  51. package/dist/docs/assets/example-agents_weather-agent.md.Dmrcphhl.js +24 -0
  52. package/dist/docs/assets/example-agents_weather-agent.md.Dmrcphhl.lean.js +1 -0
  53. package/dist/docs/assets/{guides_agent-to-agent.md.Bpzgq2Pq.js → guides_agent-to-agent.md.Bmbxy-FA.js} +4 -4
  54. package/dist/docs/assets/guides_cloud-runtime.md.BZ2GA7Es.js +9 -0
  55. package/dist/docs/assets/{guides_github.md.DOOCpqsW.js → guides_github.md.R2QlpR75.js} +5 -5
  56. package/dist/docs/assets/{guides_human-in-the-loop.md.DlUqsp1S.js → guides_human-in-the-loop.md.BWvT7UqY.js} +1 -1
  57. package/dist/docs/assets/{guides_mcp-oauth.md.Dd8EgSem.js → guides_mcp-oauth.md.C7G7IykG.js} +5 -5
  58. package/dist/docs/assets/guides_mcp-oauth.md.C7G7IykG.lean.js +1 -0
  59. package/dist/docs/assets/guides_slack.md.zriQpU_9.js +47 -0
  60. package/dist/docs/assets/guides_slack.md.zriQpU_9.lean.js +1 -0
  61. package/dist/docs/assets/{guides_webhooks.md.wSOYas3X.js → guides_webhooks.md.DiAwSR42.js} +1 -1
  62. package/dist/docs/assets/{hillclimbing.md.DHNast08.js → hillclimbing.md.D9Y1_bYh.js} +1 -1
  63. package/dist/docs/assets/index.md.CZqbBJPB.js +20 -0
  64. package/dist/docs/assets/index.md.CZqbBJPB.lean.js +1 -0
  65. package/dist/docs/assets/{quickstart.md.BU6Iwi_9.js → quickstart.md.TnEXYgYW.js} +12 -12
  66. package/dist/docs/assets/{reference_agent-config.md.DrW2JUM8.js → reference_agent-config.md.kuN6-OxK.js} +1 -1
  67. package/dist/docs/assets/reference_cli.md.sD-IUWjg.js +73 -0
  68. package/dist/docs/assets/{reference_cli.md.ccoKOoXt.lean.js → reference_cli.md.sD-IUWjg.lean.js} +1 -1
  69. package/dist/docs/assets/{reference_connections.md.B9Q3TOve.js → reference_connections.md.DGqAsFXb.js} +3 -3
  70. package/dist/docs/assets/reference_http-api.md.CfVM_ICa.js +11 -0
  71. package/dist/docs/assets/{reference_project-layout.md.Bd_CKtNS.js → reference_project-layout.md.D8E6ZmHJ.js} +4 -4
  72. package/dist/docs/assets/{reference_project-layout.md.Bd_CKtNS.lean.js → reference_project-layout.md.D8E6ZmHJ.lean.js} +1 -1
  73. package/dist/docs/assets/{reference_schedules.md.w_F2mXB6.js → reference_schedules.md.gmfYzf_I.js} +1 -1
  74. package/dist/docs/assets/{reference_sessions.md.DLd6mvbv.js → reference_sessions.md.C_ouF_uf.js} +3 -3
  75. package/dist/docs/assets/{reference_tools.md.BRSDnTbN.js → reference_tools.md.BswAQM41.js} +3 -3
  76. package/dist/docs/assets/{scaffolding-agents.md.C3pTrmoE.js → scaffolding-agents.md.Bsr9Pwzu.js} +1 -1
  77. package/dist/docs/assets/{scaffolding-agents.md.C3pTrmoE.lean.js → scaffolding-agents.md.Bsr9Pwzu.lean.js} +1 -1
  78. package/dist/docs/assets/{storage.md.DRTdnFvd.js → storage.md.xZoiGM58.js} +3 -3
  79. package/dist/docs/assets/storage.md.xZoiGM58.lean.js +1 -0
  80. package/dist/docs/assets/troubleshooting.md.B5RVX_tL.js +1 -0
  81. package/dist/docs/assets/{troubleshooting.md.CmQkmnzC.lean.js → troubleshooting.md.B5RVX_tL.lean.js} +1 -1
  82. package/dist/docs/building-with-agents.html +12 -12
  83. package/dist/docs/concepts.html +6 -6
  84. package/dist/docs/deployment.html +32 -32
  85. package/dist/docs/evals.html +19 -19
  86. package/dist/docs/example-agents/approval-buddy.html +9 -9
  87. package/dist/docs/example-agents/benny.html +11 -11
  88. package/dist/docs/example-agents/bugbot.html +10 -10
  89. package/dist/docs/example-agents/codebase-wiki.html +11 -11
  90. package/dist/docs/example-agents/codeowners-review.html +11 -11
  91. package/dist/docs/example-agents/concierge.html +12 -12
  92. package/dist/docs/example-agents/fsd.html +10 -10
  93. package/dist/docs/example-agents/index.html +7 -7
  94. package/dist/docs/example-agents/knowledge-base.html +10 -10
  95. package/dist/docs/example-agents/oncall.html +10 -10
  96. package/dist/docs/example-agents/security-reviewer.html +13 -13
  97. package/dist/docs/example-agents/slack-agent.html +10 -10
  98. package/dist/docs/example-agents/weather-agent.html +16 -16
  99. package/dist/docs/guides/agent-to-agent.html +9 -9
  100. package/dist/docs/guides/cloud-runtime.html +7 -7
  101. package/dist/docs/guides/github.html +10 -10
  102. package/dist/docs/guides/human-in-the-loop.html +7 -7
  103. package/dist/docs/guides/mcp-oauth.html +11 -11
  104. package/dist/docs/guides/slack.html +22 -17
  105. package/dist/docs/guides/webhooks.html +7 -7
  106. package/dist/docs/hashmap.json +1 -1
  107. package/dist/docs/hillclimbing.html +7 -7
  108. package/dist/docs/index.html +9 -9
  109. package/dist/docs/quickstart.html +17 -17
  110. package/dist/docs/reference/agent-config.html +7 -7
  111. package/dist/docs/reference/channels.html +5 -5
  112. package/dist/docs/reference/cli.html +56 -48
  113. package/dist/docs/reference/connections.html +9 -9
  114. package/dist/docs/reference/hooks.html +5 -5
  115. package/dist/docs/reference/http-api.html +7 -7
  116. package/dist/docs/reference/instructions.html +5 -5
  117. package/dist/docs/reference/playground.html +5 -5
  118. package/dist/docs/reference/project-layout.html +9 -9
  119. package/dist/docs/reference/prompt.html +5 -5
  120. package/dist/docs/reference/schedules.html +7 -7
  121. package/dist/docs/reference/sessions.html +8 -8
  122. package/dist/docs/reference/skills.html +5 -5
  123. package/dist/docs/reference/subagents.html +5 -5
  124. package/dist/docs/reference/tools.html +9 -9
  125. package/dist/docs/scaffolding-agents.html +6 -6
  126. package/dist/docs/storage.html +9 -9
  127. package/dist/docs/troubleshooting.html +6 -6
  128. package/dist/evals/reporters.d.ts +1 -1
  129. package/dist/evals/reporters.js +1 -1
  130. package/dist/evals.d.ts +2 -2
  131. package/dist/files-backends/agent-store-presigned-url.d.ts +3 -0
  132. package/dist/files-backends/agent-store-presigned-url.d.ts.map +1 -0
  133. package/dist/files-backends/agent-store-presigned-url.js +1023 -0
  134. package/dist/files-backends/cursor-hosted.d.ts +87 -0
  135. package/dist/files-backends/cursor-hosted.d.ts.map +1 -0
  136. package/dist/files-backends/cursor-hosted.js +563 -0
  137. package/dist/files-backends/local-fs.d.ts +33 -0
  138. package/dist/files-backends/local-fs.d.ts.map +1 -0
  139. package/dist/files-backends/local-fs.js +199 -0
  140. package/dist/files.d.ts +139 -0
  141. package/dist/files.d.ts.map +1 -0
  142. package/dist/files.js +89 -0
  143. package/dist/internal/ab-collector.js +2 -2
  144. package/dist/internal/ab-fold.js +1 -1
  145. package/dist/internal/cli-ax.d.ts +2 -2
  146. package/dist/internal/cli-ax.js +2 -2
  147. package/dist/internal/cli-deploy.d.ts +1 -1
  148. package/dist/internal/cli-deploy.d.ts.map +1 -1
  149. package/dist/internal/cli-deploy.js +7 -2
  150. package/dist/internal/cli-docs.d.ts +1 -1
  151. package/dist/internal/cli-docs.js +1 -1
  152. package/dist/internal/cli-github.js +13 -13
  153. package/dist/internal/cli-mcp-oauth.d.ts +1 -1
  154. package/dist/internal/cli-mcp-oauth.js +2 -2
  155. package/dist/internal/cli-mcp.d.ts +3 -3
  156. package/dist/internal/cli-mcp.js +4 -4
  157. package/dist/internal/cli-skills.js +1 -1
  158. package/dist/internal/cloud-turn-cost.d.ts +9 -1
  159. package/dist/internal/cloud-turn-cost.d.ts.map +1 -1
  160. package/dist/internal/cloud-turn-cost.js +14 -4
  161. package/dist/internal/cursor/account-mcp.js +5 -5
  162. package/dist/internal/cursor/backend-client.js +1 -1
  163. package/dist/internal/cursor/github-credentials.js +3 -3
  164. package/dist/internal/cursor-account-mcp-auth.d.ts +1 -1
  165. package/dist/internal/cursor-account-mcp-auth.js +1 -1
  166. package/dist/internal/cursor-event-relay.js +1 -1
  167. package/dist/internal/cursor-relay-core.d.ts +1 -1
  168. package/dist/internal/cursor-relay-core.d.ts.map +1 -1
  169. package/dist/internal/cursor-slack-relay.js +1 -1
  170. package/dist/internal/deploy-client.d.ts +6 -1
  171. package/dist/internal/deploy-client.d.ts.map +1 -1
  172. package/dist/internal/deploy-client.js +3 -2
  173. package/dist/internal/deploy-source.d.ts +2 -2
  174. package/dist/internal/deploy-source.js +2 -2
  175. package/dist/internal/discovery.js +2 -2
  176. package/dist/internal/distribution.d.ts +5 -5
  177. package/dist/internal/distribution.d.ts.map +1 -1
  178. package/dist/internal/distribution.js +6 -6
  179. package/dist/internal/docs-site.js +5 -5
  180. package/dist/internal/eval-run-store.js +8 -8
  181. package/dist/internal/evals-client.d.ts +1 -1
  182. package/dist/internal/evals-client.js +1 -1
  183. package/dist/internal/github-fanout.js +2 -2
  184. package/dist/internal/host-files.d.ts +29 -0
  185. package/dist/internal/host-files.d.ts.map +1 -0
  186. package/dist/internal/host-files.js +283 -0
  187. package/dist/internal/host-platforms.js +5 -5
  188. package/dist/internal/hosting.d.ts +1 -1
  189. package/dist/internal/hosting.js +1 -1
  190. package/dist/internal/http-channel.d.ts.map +1 -1
  191. package/dist/internal/http-channel.js +26 -0
  192. package/dist/internal/install-cursor-skills.d.ts +1 -1
  193. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  194. package/dist/internal/install-cursor-skills.js +33 -4
  195. package/dist/internal/json-dir-store.d.ts +32 -0
  196. package/dist/internal/json-dir-store.d.ts.map +1 -0
  197. package/dist/internal/local-control-plane.js +2 -2
  198. package/dist/internal/logs-client.d.ts +2 -2
  199. package/dist/internal/logs-client.js +2 -2
  200. package/dist/internal/mcp-endpoint.js +1 -1
  201. package/dist/internal/mcp-oauth.js +2 -2
  202. package/dist/internal/persistence-coordinator.d.ts +127 -0
  203. package/dist/internal/persistence-coordinator.d.ts.map +1 -0
  204. package/dist/internal/platform-schedule-sync.js +2 -2
  205. package/dist/internal/playground/toolchain.js +6 -6
  206. package/dist/internal/reminder-runner.js +13 -13
  207. package/dist/internal/resolved-connections.js +6 -6
  208. package/dist/internal/schedule-runner.js +1 -1
  209. package/dist/internal/sdk-runner.js +5 -5
  210. package/dist/internal/server.js +16 -16
  211. package/dist/internal/session-cost.d.ts +3 -2
  212. package/dist/internal/session-cost.d.ts.map +1 -1
  213. package/dist/internal/session-cost.js +7 -6
  214. package/dist/internal/session-engine.d.ts +31 -1
  215. package/dist/internal/session-engine.d.ts.map +1 -1
  216. package/dist/internal/session-engine.js +119 -31
  217. package/dist/internal/slack-provision-client.js +1 -1
  218. package/dist/internal/storage-coordinator.js +7 -7
  219. package/dist/internal/trajectory.js +2 -2
  220. package/dist/internal/turn-cost.d.ts +27 -0
  221. package/dist/internal/turn-cost.d.ts.map +1 -0
  222. package/dist/internal/turn-cost.js +83 -0
  223. package/dist/internal/update-check.d.ts +3 -3
  224. package/dist/internal/update-check.d.ts.map +1 -1
  225. package/dist/internal/update-check.js +5 -5
  226. package/dist/memory.d.ts +1 -1
  227. package/dist/memory.js +1 -1
  228. package/dist/multi-tenant.d.ts +80 -0
  229. package/dist/multi-tenant.d.ts.map +1 -0
  230. package/dist/multi-tenant.js +69 -0
  231. package/dist/persistence.d.ts +184 -0
  232. package/dist/persistence.d.ts.map +1 -0
  233. package/dist/playground/assets/index-50PKeJlG.css +1 -0
  234. package/dist/playground/assets/index-C0f2Wl1q.js +85 -0
  235. package/dist/playground/index.html +2 -2
  236. package/dist/storage.d.ts +1 -1
  237. package/dist/storage.js +1 -1
  238. package/dist/types.d.ts +120 -16
  239. package/dist/types.d.ts.map +1 -1
  240. package/docs/README.md +23 -23
  241. package/docs/ab.md +12 -12
  242. package/docs/building-with-agents.md +9 -9
  243. package/docs/concepts.md +11 -11
  244. package/docs/deployment.md +55 -43
  245. package/docs/evals.md +20 -20
  246. package/docs/example-agents/approval-buddy.md +9 -9
  247. package/docs/example-agents/benny.md +13 -13
  248. package/docs/example-agents/bugbot.md +6 -6
  249. package/docs/example-agents/codebase-wiki.md +8 -8
  250. package/docs/example-agents/codeowners-review.md +8 -8
  251. package/docs/example-agents/concierge.md +10 -10
  252. package/docs/example-agents/fsd.md +7 -7
  253. package/docs/example-agents/index.md +8 -8
  254. package/docs/example-agents/knowledge-base.md +9 -9
  255. package/docs/example-agents/oncall.md +7 -7
  256. package/docs/example-agents/security-reviewer.md +12 -12
  257. package/docs/example-agents/slack-agent.md +10 -10
  258. package/docs/example-agents/weather-agent.md +30 -26
  259. package/docs/guides/agent-to-agent.md +4 -4
  260. package/docs/guides/cloud-runtime.md +3 -3
  261. package/docs/guides/github.md +6 -6
  262. package/docs/guides/human-in-the-loop.md +1 -1
  263. package/docs/guides/mcp-oauth.md +9 -9
  264. package/docs/guides/slack.md +94 -21
  265. package/docs/guides/webhooks.md +1 -1
  266. package/docs/hillclimbing.md +3 -3
  267. package/docs/quickstart.md +18 -18
  268. package/docs/reference/agent-config.md +1 -1
  269. package/docs/reference/cli.md +110 -79
  270. package/docs/reference/connections.md +3 -3
  271. package/docs/reference/http-api.md +2 -2
  272. package/docs/reference/project-layout.md +7 -7
  273. package/docs/reference/schedules.md +1 -1
  274. package/docs/reference/sessions.md +7 -7
  275. package/docs/reference/tools.md +3 -3
  276. package/docs/scaffolding-agents.md +2 -2
  277. package/docs/storage.md +5 -5
  278. package/docs/troubleshooting.md +11 -10
  279. package/package.json +5 -2
  280. package/skills/ab/SKILL.md +5 -5
  281. package/skills/create-agent/SKILL.md +17 -17
  282. package/skills/debug/SKILL.md +10 -10
  283. package/skills/evals/SKILL.md +13 -13
  284. package/skills/framework-map/SKILL.md +3 -3
  285. package/skills/github/SKILL.md +11 -11
  286. package/skills/hillclimb/SKILL.md +9 -9
  287. package/skills/mcp-auth/SKILL.md +11 -11
  288. package/skills/setup-slack/SKILL.md +28 -28
  289. package/src/bin/agent-serve.ts +4 -4
  290. package/src/channels/github/index.ts +1 -1
  291. package/src/channels/slack/bot-mentions.ts +1 -1
  292. package/src/channels/slack/eval-directive.ts +1 -1
  293. package/src/channels/slack/external-policy.ts +1 -1
  294. package/src/channels/slack/log.ts +1 -1
  295. package/src/channels/slack/setup.ts +1 -1
  296. package/src/channels/slack/socket-mode.ts +1 -1
  297. package/src/evals/reporters.ts +1 -1
  298. package/src/evals.ts +2 -2
  299. package/src/files-backends/agent-store-presigned-url.ts +8 -0
  300. package/src/files-backends/cursor-hosted.ts +724 -0
  301. package/src/files-backends/local-fs.ts +178 -0
  302. package/src/files.ts +195 -0
  303. package/src/internal/ab-collector.ts +2 -2
  304. package/src/internal/ab-fold.ts +1 -1
  305. package/src/internal/cli-ax.ts +2 -2
  306. package/src/internal/cli-deploy.ts +7 -2
  307. package/src/internal/cli-docs.ts +1 -1
  308. package/src/internal/cli-github.ts +13 -13
  309. package/src/internal/cli-mcp-oauth.ts +2 -2
  310. package/src/internal/cli-mcp.ts +4 -4
  311. package/src/internal/cli-skills.ts +1 -1
  312. package/src/internal/cloud-turn-cost.ts +20 -4
  313. package/src/internal/cursor/account-mcp.ts +5 -5
  314. package/src/internal/cursor/backend-client.ts +1 -1
  315. package/src/internal/cursor/github-credentials.ts +3 -3
  316. package/src/internal/cursor-account-mcp-auth.ts +1 -1
  317. package/src/internal/cursor-event-relay.ts +1 -1
  318. package/src/internal/cursor-relay-core.ts +1 -1
  319. package/src/internal/cursor-slack-relay.ts +1 -1
  320. package/src/internal/deploy-client.ts +8 -2
  321. package/src/internal/deploy-source.ts +2 -2
  322. package/src/internal/discovery.ts +2 -2
  323. package/src/internal/distribution.ts +6 -6
  324. package/src/internal/docs-site.ts +5 -5
  325. package/src/internal/eval-run-store.ts +8 -8
  326. package/src/internal/evals-client.ts +1 -1
  327. package/src/internal/github-fanout.ts +2 -2
  328. package/src/internal/host-files.ts +372 -0
  329. package/src/internal/host-platforms.ts +5 -5
  330. package/src/internal/hosting.ts +1 -1
  331. package/src/internal/http-channel.ts +30 -0
  332. package/src/internal/install-cursor-skills.ts +31 -3
  333. package/src/internal/local-control-plane.ts +2 -2
  334. package/src/internal/logs-client.ts +2 -2
  335. package/src/internal/mcp-endpoint.ts +1 -1
  336. package/src/internal/mcp-oauth.ts +2 -2
  337. package/src/internal/platform-schedule-sync.ts +2 -2
  338. package/src/internal/playground/toolchain.ts +6 -6
  339. package/src/internal/reminder-runner.ts +13 -13
  340. package/src/internal/resolved-connections.ts +6 -6
  341. package/src/internal/schedule-runner.ts +1 -1
  342. package/src/internal/sdk-runner.ts +5 -5
  343. package/src/internal/server.ts +16 -16
  344. package/src/internal/session-cost.ts +7 -6
  345. package/src/internal/session-engine.ts +141 -28
  346. package/src/internal/slack-provision-client.ts +1 -1
  347. package/src/internal/storage-coordinator.ts +7 -7
  348. package/src/internal/trajectory.ts +2 -2
  349. package/src/internal/turn-cost.ts +110 -0
  350. package/src/internal/update-check.ts +6 -6
  351. package/src/memory.ts +1 -1
  352. package/src/storage.ts +1 -1
  353. package/src/types.ts +148 -16
  354. package/dist/docs/assets/building-with-agents.md.CJCtZCyi.js +0 -13
  355. package/dist/docs/assets/chunks/@localSearchIndexroot.CbQshWFK.js +0 -1
  356. package/dist/docs/assets/concepts.md.Cfb9b-k1.js +0 -4
  357. package/dist/docs/assets/concepts.md.Cfb9b-k1.lean.js +0 -1
  358. package/dist/docs/assets/deployment.md.TecHo0_2.js +0 -55
  359. package/dist/docs/assets/deployment.md.TecHo0_2.lean.js +0 -1
  360. package/dist/docs/assets/evals.md.DYOjkRCX.lean.js +0 -1
  361. package/dist/docs/assets/example-agents_benny.md.B0gjhI-p.js +0 -7
  362. package/dist/docs/assets/example-agents_index.md.D2PEVSXl.js +0 -2
  363. package/dist/docs/assets/example-agents_index.md.D2PEVSXl.lean.js +0 -1
  364. package/dist/docs/assets/example-agents_oncall.md.BG_sUMly.js +0 -10
  365. package/dist/docs/assets/example-agents_slack-agent.md.buLbgvBf.js +0 -5
  366. package/dist/docs/assets/example-agents_weather-agent.md.C9Qv-W0o.js +0 -24
  367. package/dist/docs/assets/example-agents_weather-agent.md.C9Qv-W0o.lean.js +0 -1
  368. package/dist/docs/assets/guides_cloud-runtime.md.gVzabdQL.js +0 -9
  369. package/dist/docs/assets/guides_mcp-oauth.md.Dd8EgSem.lean.js +0 -1
  370. package/dist/docs/assets/guides_slack.md.CjmJSvZS.js +0 -42
  371. package/dist/docs/assets/guides_slack.md.CjmJSvZS.lean.js +0 -1
  372. package/dist/docs/assets/index.md.CH_s5uZe.js +0 -20
  373. package/dist/docs/assets/index.md.CH_s5uZe.lean.js +0 -1
  374. package/dist/docs/assets/reference_cli.md.ccoKOoXt.js +0 -65
  375. package/dist/docs/assets/reference_http-api.md.BncLd3PZ.js +0 -11
  376. package/dist/docs/assets/storage.md.DRTdnFvd.lean.js +0 -1
  377. package/dist/docs/assets/troubleshooting.md.CmQkmnzC.js +0 -1
  378. package/dist/internal/model-pricing.d.ts +0 -49
  379. package/dist/internal/model-pricing.d.ts.map +0 -1
  380. package/dist/internal/model-pricing.js +0 -377
  381. package/dist/playground/assets/index-CquRB-l0.js +0 -85
  382. package/dist/playground/assets/index-Dj0bWpkn.css +0 -1
  383. package/src/internal/model-pricing.ts +0 -426
  384. /package/dist/docs/assets/{example-agents_benny.md.B0gjhI-p.lean.js → example-agents_benny.md.2Et1qa8f.lean.js} +0 -0
  385. /package/dist/docs/assets/{example-agents_bugbot.md.DelIdhxB.lean.js → example-agents_bugbot.md.ByUexi5i.lean.js} +0 -0
  386. /package/dist/docs/assets/{example-agents_concierge.md.4rQTSMXt.lean.js → example-agents_concierge.md.lL8rhYlj.lean.js} +0 -0
  387. /package/dist/docs/assets/{example-agents_fsd.md.CzgUrDfi.lean.js → example-agents_fsd.md.DfNKQTHz.lean.js} +0 -0
  388. /package/dist/docs/assets/{example-agents_oncall.md.BG_sUMly.lean.js → example-agents_oncall.md.wFFXXEyW.lean.js} +0 -0
  389. /package/dist/docs/assets/{example-agents_security-reviewer.md.Dhj_m7_B.lean.js → example-agents_security-reviewer.md.Dkf1gyo6.lean.js} +0 -0
  390. /package/dist/docs/assets/{example-agents_slack-agent.md.buLbgvBf.lean.js → example-agents_slack-agent.md.DvgvT4nn.lean.js} +0 -0
  391. /package/dist/docs/assets/{guides_agent-to-agent.md.Bpzgq2Pq.lean.js → guides_agent-to-agent.md.Bmbxy-FA.lean.js} +0 -0
  392. /package/dist/docs/assets/{guides_cloud-runtime.md.gVzabdQL.lean.js → guides_cloud-runtime.md.BZ2GA7Es.lean.js} +0 -0
  393. /package/dist/docs/assets/{guides_github.md.DOOCpqsW.lean.js → guides_github.md.R2QlpR75.lean.js} +0 -0
  394. /package/dist/docs/assets/{guides_human-in-the-loop.md.DlUqsp1S.lean.js → guides_human-in-the-loop.md.BWvT7UqY.lean.js} +0 -0
  395. /package/dist/docs/assets/{guides_webhooks.md.wSOYas3X.lean.js → guides_webhooks.md.DiAwSR42.lean.js} +0 -0
  396. /package/dist/docs/assets/{hillclimbing.md.DHNast08.lean.js → hillclimbing.md.D9Y1_bYh.lean.js} +0 -0
  397. /package/dist/docs/assets/{quickstart.md.BU6Iwi_9.lean.js → quickstart.md.TnEXYgYW.lean.js} +0 -0
  398. /package/dist/docs/assets/{reference_agent-config.md.DrW2JUM8.lean.js → reference_agent-config.md.kuN6-OxK.lean.js} +0 -0
  399. /package/dist/docs/assets/{reference_connections.md.B9Q3TOve.lean.js → reference_connections.md.DGqAsFXb.lean.js} +0 -0
  400. /package/dist/docs/assets/{reference_http-api.md.BncLd3PZ.lean.js → reference_http-api.md.CfVM_ICa.lean.js} +0 -0
  401. /package/dist/docs/assets/{reference_schedules.md.w_F2mXB6.lean.js → reference_schedules.md.gmfYzf_I.lean.js} +0 -0
  402. /package/dist/docs/assets/{reference_sessions.md.DLd6mvbv.lean.js → reference_sessions.md.C_ouF_uf.lean.js} +0 -0
  403. /package/dist/docs/assets/{reference_tools.md.BRSDnTbN.lean.js → reference_tools.md.BswAQM41.lean.js} +0 -0
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Local-disk file sink: one file per key under a directory you own.
3
+ *
4
+ * The default off Cursor-managed hosting. Paths are real, so the harness can
5
+ * open a file with its ordinary tools — that is why this reports
6
+ * `materialized` — and there are no etags, so `conflictDetection` is honestly
7
+ * false and concurrent writers are last-writer-wins.
8
+ */
9
+ import { type FileSink } from "../files.js";
10
+ export interface LocalFilesOptions {
11
+ /** Directory the sink owns. */
12
+ filesRoot: string;
13
+ /**
14
+ * Prefix trimmed off each key before building the on-disk path, so the tree
15
+ * reads `deployment/notes.md` instead of repeating the framework key root.
16
+ *
17
+ * Framework-supplied. Authors should omit it: the value has to match the
18
+ * internal key scheme exactly, and a near-miss would silently nest files
19
+ * under a redundant path instead of failing. Omitted, keys are stored
20
+ * verbatim, which is always correct and lets two agents share one root.
21
+ */
22
+ stripKeyPrefix?: string;
23
+ }
24
+ /**
25
+ * Default sink: one file per key under the state root, written atomically.
26
+ *
27
+ * Reports `materialized` because the paths are real — that is what lets the
28
+ * harness read a file with its ordinary tools — and reports no `etags`, so
29
+ * `host.files.capabilities.conflictDetection` is honestly false and concurrent
30
+ * writers are last-writer-wins.
31
+ */
32
+ export declare function localFiles(options: LocalFilesOptions): FileSink;
33
+ //# sourceMappingURL=local-fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-fs.d.ts","sourceRoot":"","sources":["../../src/files-backends/local-fs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,EAEL,KAAK,QAAQ,EAGd,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,CAmG/D"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Local-disk file sink: one file per key under a directory you own.
3
+ *
4
+ * The default off Cursor-managed hosting. Paths are real, so the harness can
5
+ * open a file with its ordinary tools — that is why this reports
6
+ * `materialized` — and there are no etags, so `conflictDetection` is honestly
7
+ * false and concurrent writers are last-writer-wins.
8
+ */
9
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
10
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11
+ return new (P || (P = Promise))(function (resolve, reject) {
12
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
13
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
14
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
15
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
16
+ });
17
+ };
18
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
19
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
20
+ var m = o[Symbol.asyncIterator], i;
21
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
22
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
23
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
24
+ };
25
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
26
+ var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
27
+ var i, p;
28
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
29
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
30
+ };
31
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
32
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
33
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
34
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
35
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
36
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
37
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
38
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
39
+ function fulfill(value) { resume("next", value); }
40
+ function reject(value) { resume("throw", value); }
41
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
42
+ };
43
+ import { randomUUID } from "node:crypto";
44
+ import { mkdir, readdir, readFile, rename, rm, stat, writeFile, } from "node:fs/promises";
45
+ import { join, relative, resolve, sep } from "node:path";
46
+ import { FilePathRejectedError, } from "../files.js";
47
+ /**
48
+ * Default sink: one file per key under the state root, written atomically.
49
+ *
50
+ * Reports `materialized` because the paths are real — that is what lets the
51
+ * harness read a file with its ordinary tools — and reports no `etags`, so
52
+ * `host.files.capabilities.conflictDetection` is honestly false and concurrent
53
+ * writers are last-writer-wins.
54
+ */
55
+ export function localFiles(options) {
56
+ var _a;
57
+ const root = resolve(options.filesRoot);
58
+ const stripPrefix = (_a = options.stripKeyPrefix) !== null && _a !== void 0 ? _a : "";
59
+ const pathForKey = (key) => {
60
+ const rel = stripPrefix !== "" && key.startsWith(stripPrefix)
61
+ ? key.slice(stripPrefix.length)
62
+ : key;
63
+ const candidate = resolve(root, rel);
64
+ const within = relative(root, candidate);
65
+ if (within === "" || within === ".." || within.startsWith(`..${sep}`)) {
66
+ throw new FilePathRejectedError(`host.files key does not resolve under the state root: ${key}`);
67
+ }
68
+ return candidate;
69
+ };
70
+ const entryFor = (key, absPath) => __awaiter(this, void 0, void 0, function* () {
71
+ try {
72
+ const info = yield stat(absPath);
73
+ if (!info.isFile()) {
74
+ return undefined;
75
+ }
76
+ return { key, size: info.size, mtimeMs: info.mtimeMs };
77
+ }
78
+ catch (error) {
79
+ if (error.code === "ENOENT") {
80
+ return undefined;
81
+ }
82
+ throw error;
83
+ }
84
+ });
85
+ return {
86
+ capabilities: { materialized: true },
87
+ materializedPath: (key) => pathForKey(key),
88
+ put(key, body) {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ const target = pathForKey(key);
91
+ yield mkdir(join(target, ".."), { recursive: true });
92
+ // Same-directory temp + rename: a reader either sees the previous value
93
+ // or the whole new one, never a half-written file.
94
+ const tmp = join(target, "..", `.tmp-${randomUUID()}`);
95
+ try {
96
+ yield writeFile(tmp, body);
97
+ yield rename(tmp, target);
98
+ }
99
+ catch (error) {
100
+ yield rm(tmp, { force: true });
101
+ throw error;
102
+ }
103
+ });
104
+ },
105
+ get(key) {
106
+ return __awaiter(this, void 0, void 0, function* () {
107
+ try {
108
+ return { body: new Uint8Array(yield readFile(pathForKey(key))) };
109
+ }
110
+ catch (error) {
111
+ const code = error.code;
112
+ if (code === "ENOENT" || code === "EISDIR") {
113
+ return undefined;
114
+ }
115
+ throw error;
116
+ }
117
+ });
118
+ },
119
+ delete(key) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ yield rm(pathForKey(key), { force: true });
122
+ });
123
+ },
124
+ stat(key) {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ return yield entryFor(key, pathForKey(key));
127
+ });
128
+ },
129
+ list(prefix) {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ var _a, e_1, _b, _c;
132
+ // Walk the deepest existing directory at or above the prefix, then keep
133
+ // the keys that actually start with it — `prefix` is a key prefix, not a
134
+ // directory, so `notes/sum` must match `notes/summary.md`.
135
+ const prefixPath = pathForKey(prefix);
136
+ const searchRoot = (yield isDirectory(prefixPath))
137
+ ? prefixPath
138
+ : join(prefixPath, "..");
139
+ const out = [];
140
+ try {
141
+ for (var _d = true, _e = __asyncValues(walkFiles(searchRoot)), _f; _f = yield _e.next(), _a = _f.done, !_a; _d = true) {
142
+ _c = _f.value;
143
+ _d = false;
144
+ const absPath = _c;
145
+ const key = `${stripPrefix}${relative(root, absPath).split(sep).join("/")}`;
146
+ if (!key.startsWith(prefix)) {
147
+ continue;
148
+ }
149
+ const entry = yield entryFor(key, absPath);
150
+ if (entry !== undefined) {
151
+ out.push(entry);
152
+ }
153
+ }
154
+ }
155
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
156
+ finally {
157
+ try {
158
+ if (!_d && !_a && (_b = _e.return)) yield _b.call(_e);
159
+ }
160
+ finally { if (e_1) throw e_1.error; }
161
+ }
162
+ return out.sort((a, b) => (a.key < b.key ? -1 : a.key > b.key ? 1 : 0));
163
+ });
164
+ },
165
+ };
166
+ }
167
+ function isDirectory(absPath) {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ try {
170
+ return (yield stat(absPath)).isDirectory();
171
+ }
172
+ catch (_a) {
173
+ return false;
174
+ }
175
+ });
176
+ }
177
+ function walkFiles(dir) {
178
+ return __asyncGenerator(this, arguments, function* walkFiles_1() {
179
+ let entries;
180
+ try {
181
+ entries = yield __await(readdir(dir, { withFileTypes: true }));
182
+ }
183
+ catch (error) {
184
+ if (error.code === "ENOENT") {
185
+ return yield __await(void 0);
186
+ }
187
+ throw error;
188
+ }
189
+ for (const entry of entries) {
190
+ const abs = join(dir, entry.name);
191
+ if (entry.isDirectory()) {
192
+ yield __await(yield* __asyncDelegator(__asyncValues(walkFiles(abs))));
193
+ }
194
+ else if (entry.isFile() && !entry.name.startsWith(".tmp-")) {
195
+ yield yield __await(abs);
196
+ }
197
+ }
198
+ });
199
+ }
@@ -0,0 +1,139 @@
1
+ /**
2
+ * The internal sink contract behind `ctx.host.files` — durable, file-shaped
3
+ * state that must outlive the engine process.
4
+ *
5
+ * Deliberately **not a filesystem**: no file descriptors, no seeking, no
6
+ * rename, no directories as first-class objects, and no POSIX errno contract
7
+ * — a sink that is an HTTP API can implement all of it. The framework
8
+ * **mints every key** from a stable, versioned scheme (see {@link fileKeys});
9
+ * sinks see opaque strings and never learn which deployment or session a key
10
+ * belongs to, which is what keeps one deployment's files unreachable from
11
+ * another's.
12
+ *
13
+ * Internal for now: the authored plug-in surface (`agent/files.ts` with a
14
+ * `defineFiles`, mirroring `defineStorage`) is deliberately deferred so this
15
+ * ships as exactly the hosted connector plus the local default. When it
16
+ * lands, {@link FileSink} is the contract authored sinks implement.
17
+ *
18
+ * Delivery semantics differ from {@link import("./storage.js").defineStorage}
19
+ * on purpose. Storage is a fire-and-forget mirror of framework state, so a
20
+ * throwing `put` is logged and dropped. Files are author data the next turn
21
+ * may depend on, so {@link HostFilesApi} writes are **awaited and surface
22
+ * their failure** — an author who writes evidence and then delegates has to
23
+ * know the write did not land.
24
+ */
25
+ /** One entry returned by {@link FileSink.list}. */
26
+ export interface FileSinkEntry {
27
+ /** Framework-minted key, as passed to {@link FileSink.put}. */
28
+ key: string;
29
+ size: number;
30
+ /** Last-modified epoch ms, when the sink tracks one. */
31
+ mtimeMs?: number;
32
+ /** Opaque version tag; required for `ifMatch` to be usable. */
33
+ etag?: string;
34
+ }
35
+ /** One stored value plus the version it was read at. */
36
+ export interface FileSinkBody {
37
+ body: Uint8Array;
38
+ etag?: string;
39
+ }
40
+ /** Outcome of {@link FileSink.put}. */
41
+ export interface FileSinkPutResult {
42
+ /** Version tag after the write, when the sink issues one. */
43
+ etag?: string;
44
+ }
45
+ /**
46
+ * What a sink can do beyond the four required calls. Absent flags are false,
47
+ * so the narrowest possible sink — four functions over an HTTP API — is valid
48
+ * and the framework degrades visibly rather than assuming.
49
+ */
50
+ export interface FileSinkCapabilities {
51
+ /**
52
+ * `put` honors `ifMatch` and rejects a stale write. Required for
53
+ * {@link HostFilesApi} to report `conflictDetection`.
54
+ */
55
+ etags?: boolean;
56
+ /**
57
+ * The sink keeps a local copy at {@link FileSink.materializedPath} that the
58
+ * harness can read with ordinary file tools.
59
+ */
60
+ materialized?: boolean;
61
+ /** Largest value the sink accepts, in bytes. */
62
+ maxBytes?: number;
63
+ }
64
+ /**
65
+ * The pluggable file store. Keys are framework-minted opaque strings; a sink
66
+ * may treat them as flat keys or split on `/` to build a hierarchy.
67
+ */
68
+ export interface FileSink {
69
+ /**
70
+ * Write or replace one value. When `ifMatch` is set and the sink reports
71
+ * {@link FileSinkCapabilities.etags}, the write must fail unless the stored
72
+ * version matches — throw {@link FileConflictError} to say so precisely.
73
+ * `ifMatch: null` means "must not already exist".
74
+ */
75
+ put(key: string, body: Uint8Array, options?: {
76
+ ifMatch?: string | null;
77
+ }): Promise<FileSinkPutResult | void>;
78
+ /** Read one value. Miss → `undefined`. */
79
+ get(key: string): Promise<FileSinkBody | Uint8Array | undefined>;
80
+ /** Remove one key. No-op when missing. */
81
+ delete(key: string): Promise<void>;
82
+ /** Entries whose key starts with `prefix`, in key order. */
83
+ list(prefix: string): Promise<FileSinkEntry[]>;
84
+ /** Per-key metadata without transferring the body. Optional; `list` is the fallback. */
85
+ stat?(key: string): Promise<FileSinkEntry | undefined>;
86
+ /**
87
+ * Absolute path of the sink's local copy of `key`, or `undefined` when it
88
+ * keeps none. Only consulted when
89
+ * {@link FileSinkCapabilities.materialized} is set.
90
+ */
91
+ materializedPath?(key: string): string | undefined;
92
+ capabilities?: FileSinkCapabilities;
93
+ }
94
+ /**
95
+ * The framework-owned file key scheme, a stable versioned contract under
96
+ * {@link STORAGE_KEY_ROOT}. Sinks may treat these as opaque, or route on
97
+ * prefixes.
98
+ *
99
+ * | Key | Holds |
100
+ * | --- | --- |
101
+ * | `agentkit/v1/{agent}/files/deployment/{path}` | Deployment-scoped file, shared by every session and surviving redeploys |
102
+ * | `agentkit/v1/{agent}/files/deployment/{partition}/{path}` | Deployment-scoped file under an author partition (a PR, a customer, a branch) |
103
+ * | `agentkit/v1/{agent}/files/sessions/{sessionId}/{path}` | Session-scoped file |
104
+ *
105
+ * Scoping lives here, above the sink, so a sink cannot be handed a key for a
106
+ * deployment or session other than its own.
107
+ */
108
+ export declare const fileKeys: {
109
+ readonly deployment: (agent: string, path: string) => string;
110
+ readonly deploymentPartition: (agent: string, partition: string, path: string) => string;
111
+ readonly session: (agent: string, sessionId: string, path: string) => string;
112
+ readonly deploymentPrefix: (agent: string) => string;
113
+ readonly sessionPrefix: (agent: string, sessionId: string) => string;
114
+ };
115
+ /** Errors raised by the file surface. Thrown by sinks and by the framework. */
116
+ export declare class FileConflictError extends Error {
117
+ readonly key: string;
118
+ constructor(key: string, options?: {
119
+ cause?: unknown;
120
+ storedEtag?: string;
121
+ });
122
+ storedEtag?: string;
123
+ }
124
+ /** A path the framework refuses to mint a key for. */
125
+ export declare class FilePathRejectedError extends Error {
126
+ constructor(message: string);
127
+ }
128
+ /** A session-scoped call with no session in scope. */
129
+ export declare class FileSessionRequiredError extends Error {
130
+ constructor(message: string);
131
+ }
132
+ /** A value larger than the sink accepts. */
133
+ export declare class FileTooLargeError extends Error {
134
+ readonly key: string;
135
+ readonly size: number;
136
+ readonly maxBytes: number;
137
+ constructor(key: string, size: number, maxBytes: number);
138
+ }
139
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAQH,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,GAAG,CACD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GACpC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACrC,0CAA0C;IAC1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;IACjE,0CAA0C;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,4DAA4D;IAC5D,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/C,wFAAwF;IACxF,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACvD;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACnD,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAMD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ;aACnB,UAAU,UAAU,MAAM,QAAQ,MAAM,KAAG,MAAM;aAEjD,mBAAmB,UACV,MAAM,aACF,MAAM,QACX,MAAM,KACX,MAAM;aAET,OAAO,UAAU,MAAM,aAAa,MAAM,QAAQ,MAAM,KAAG,MAAM;aAEjE,gBAAgB,UAAU,MAAM,KAAG,MAAM;aAEzC,aAAa,UAAU,MAAM,aAAa,MAAM,KAAG,MAAM;CAEjD,CAAC;AAEX,+EAA+E;AAC/E,qBAAa,iBAAkB,SAAQ,KAAK;IAExC,QAAQ,CAAC,GAAG,EAAE,MAAM;IADtB,YACW,GAAG,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAgBnD;IACD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,sDAAsD;AACtD,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,sDAAsD;AACtD,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,4CAA4C;AAC5C,qBAAa,iBAAkB,SAAQ,KAAK;IAExC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAH3B,YACW,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAM1B;CACF"}
package/dist/files.js ADDED
@@ -0,0 +1,89 @@
1
+ /**
2
+ * The internal sink contract behind `ctx.host.files` — durable, file-shaped
3
+ * state that must outlive the engine process.
4
+ *
5
+ * Deliberately **not a filesystem**: no file descriptors, no seeking, no
6
+ * rename, no directories as first-class objects, and no POSIX errno contract
7
+ * — a sink that is an HTTP API can implement all of it. The framework
8
+ * **mints every key** from a stable, versioned scheme (see {@link fileKeys});
9
+ * sinks see opaque strings and never learn which deployment or session a key
10
+ * belongs to, which is what keeps one deployment's files unreachable from
11
+ * another's.
12
+ *
13
+ * Internal for now: the authored plug-in surface (`agent/files.ts` with a
14
+ * `defineFiles`, mirroring `defineStorage`) is deliberately deferred so this
15
+ * ships as exactly the hosted connector plus the local default. When it
16
+ * lands, {@link FileSink} is the contract authored sinks implement.
17
+ *
18
+ * Delivery semantics differ from {@link import("./storage.js").defineStorage}
19
+ * on purpose. Storage is a fire-and-forget mirror of framework state, so a
20
+ * throwing `put` is logged and dropped. Files are author data the next turn
21
+ * may depend on, so {@link HostFilesApi} writes are **awaited and surface
22
+ * their failure** — an author who writes evidence and then delegates has to
23
+ * know the write did not land.
24
+ */
25
+ import { STORAGE_KEY_ROOT } from "./storage.js";
26
+ // ============================================================================
27
+ // Key scheme
28
+ // ============================================================================
29
+ /**
30
+ * The framework-owned file key scheme, a stable versioned contract under
31
+ * {@link STORAGE_KEY_ROOT}. Sinks may treat these as opaque, or route on
32
+ * prefixes.
33
+ *
34
+ * | Key | Holds |
35
+ * | --- | --- |
36
+ * | `agentkit/v1/{agent}/files/deployment/{path}` | Deployment-scoped file, shared by every session and surviving redeploys |
37
+ * | `agentkit/v1/{agent}/files/deployment/{partition}/{path}` | Deployment-scoped file under an author partition (a PR, a customer, a branch) |
38
+ * | `agentkit/v1/{agent}/files/sessions/{sessionId}/{path}` | Session-scoped file |
39
+ *
40
+ * Scoping lives here, above the sink, so a sink cannot be handed a key for a
41
+ * deployment or session other than its own.
42
+ */
43
+ export const fileKeys = {
44
+ deployment: (agent, path) => `${STORAGE_KEY_ROOT}/${agent}/files/deployment/${path}`,
45
+ deploymentPartition: (agent, partition, path) => `${STORAGE_KEY_ROOT}/${agent}/files/deployment/${partition}/${path}`,
46
+ session: (agent, sessionId, path) => `${STORAGE_KEY_ROOT}/${agent}/files/sessions/${sessionId}/${path}`,
47
+ deploymentPrefix: (agent) => `${STORAGE_KEY_ROOT}/${agent}/files/deployment/`,
48
+ sessionPrefix: (agent, sessionId) => `${STORAGE_KEY_ROOT}/${agent}/files/sessions/${sessionId}/`,
49
+ };
50
+ /** Errors raised by the file surface. Thrown by sinks and by the framework. */
51
+ export class FileConflictError extends Error {
52
+ constructor(key, options) {
53
+ super(`host.files write for "${key}" lost a race with another writer${(options === null || options === void 0 ? void 0 : options.storedEtag) === undefined
54
+ ? ""
55
+ : ` (stored version ${options.storedEtag})`}`);
56
+ this.key = key;
57
+ this.name = "FileConflictError";
58
+ if ((options === null || options === void 0 ? void 0 : options.cause) !== undefined) {
59
+ this.cause = options.cause;
60
+ }
61
+ if ((options === null || options === void 0 ? void 0 : options.storedEtag) !== undefined) {
62
+ this.storedEtag = options.storedEtag;
63
+ }
64
+ }
65
+ }
66
+ /** A path the framework refuses to mint a key for. */
67
+ export class FilePathRejectedError extends Error {
68
+ constructor(message) {
69
+ super(message);
70
+ this.name = "FilePathRejectedError";
71
+ }
72
+ }
73
+ /** A session-scoped call with no session in scope. */
74
+ export class FileSessionRequiredError extends Error {
75
+ constructor(message) {
76
+ super(message);
77
+ this.name = "FileSessionRequiredError";
78
+ }
79
+ }
80
+ /** A value larger than the sink accepts. */
81
+ export class FileTooLargeError extends Error {
82
+ constructor(key, size, maxBytes) {
83
+ super(`host.files value for "${key}" is ${size} bytes, over the sink's ${maxBytes}-byte limit`);
84
+ this.key = key;
85
+ this.size = size;
86
+ this.maxBytes = maxBytes;
87
+ this.name = "FileTooLargeError";
88
+ }
89
+ }
@@ -103,7 +103,7 @@ export class ABCollector {
103
103
  experiment: experiment.name,
104
104
  variant,
105
105
  }, (key, error) => {
106
- this.logger(`[agentkit] ab "${experiment.name}" derive.${key} threw: ${describeError(error)}`);
106
+ this.logger(`[agent-sdk] ab "${experiment.name}" derive.${key} threw: ${describeError(error)}`);
107
107
  });
108
108
  }
109
109
  if (!options.emitSamples) {
@@ -118,7 +118,7 @@ export class ABCollector {
118
118
  yield def.onSample(sample);
119
119
  }
120
120
  catch (error) {
121
- this.logger(`[agentkit] ab "${experiment.name}" onSample threw: ${describeError(error)}`);
121
+ this.logger(`[agent-sdk] ab "${experiment.name}" onSample threw: ${describeError(error)}`);
122
122
  }
123
123
  (_b = this.persistSample) === null || _b === void 0 ? void 0 : _b.call(this, sample);
124
124
  }
@@ -113,7 +113,7 @@ export function applyABDerive(state, events, experiments, sessionInfo, agentName
113
113
  const ctx = collectContext(experiment.name, variant, sessionInfo, agentName);
114
114
  for (const event of events) {
115
115
  yield applyDeriveForEvent(accum.metrics.custom, def.derive, event, ctx, (key, error) => {
116
- logger(`[agentkit] ab "${experiment.name}" derive.${key} threw: ${describeError(error)}`);
116
+ logger(`[agent-sdk] ab "${experiment.name}" derive.${key} threw: ${describeError(error)}`);
117
117
  });
118
118
  }
119
119
  }
@@ -201,8 +201,8 @@ export declare function cmdSession(sessionId: string | undefined, options: AxCli
201
201
  * With a session id: per-turn token usage + estimated cost for that session.
202
202
  * Without one: one row per session (all sessions on the target) plus a
203
203
  * total row. `--json` prints the underlying report(s); text is the default.
204
- * Costs are the engine's recorded estimates on `turn.completed` events
205
- * (see `model-pricing.ts`); turns persisted before cost tracking simply
204
+ * Costs are recorded on `turn.completed` via `POST /v1/models/estimate-cost`
205
+ * (billed usage when available). Turns persisted before cost tracking simply
206
206
  * count as unpriced.
207
207
  */
208
208
  export declare function cmdCost(sessionId: string | undefined, options: AxCliOptions): Promise<number>;
@@ -1420,8 +1420,8 @@ const COST_FETCH_CONCURRENCY = 4;
1420
1420
  * With a session id: per-turn token usage + estimated cost for that session.
1421
1421
  * Without one: one row per session (all sessions on the target) plus a
1422
1422
  * total row. `--json` prints the underlying report(s); text is the default.
1423
- * Costs are the engine's recorded estimates on `turn.completed` events
1424
- * (see `model-pricing.ts`); turns persisted before cost tracking simply
1423
+ * Costs are recorded on `turn.completed` via `POST /v1/models/estimate-cost`
1424
+ * (billed usage when available). Turns persisted before cost tracking simply
1425
1425
  * count as unpriced.
1426
1426
  */
1427
1427
  export function cmdCost(sessionId, options) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `agentkit deploy | deployments | deployment | stop | rotate-token |
2
+ * `agent-sdk deploy | deployments | deployment | stop | rotate-token |
3
3
  * rotate-pod-credential | secrets set|list|unset` — Heroku-style deploys
4
4
  * onto Cursor's managed agent-serve hosting.
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `agentkit deploy | deployments | deployment | stop | rotate-token |
2
+ * `agent-sdk deploy | deployments | deployment | stop | rotate-token |
3
3
  * rotate-pod-credential | secrets set|list|unset` — Heroku-style deploys
4
4
  * onto Cursor's managed agent-serve hosting.
5
5
  *
@@ -360,7 +360,7 @@ function deployOne(ctx, options, target, extras) {
360
360
  var _a, _b, _c, _d, _e, _f, _g;
361
361
  const { dir, slug } = target;
362
362
  // Fill --repo/--ref/--path from the local git checkout when omitted so
363
- // `agentkit deploy` inside an agent directory is enough. Only probe git
363
+ // `agent-sdk deploy` inside an agent directory is enough. Only probe git
364
364
  // for real agent projects (avoids ambient monorepo remotes when someone
365
365
  // deploys a bare --slug). Explicit flags always win.
366
366
  const isAgent = yield isAgentProjectDir(dir);
@@ -676,6 +676,11 @@ export function cmdDeploymentStatus(slug, options) {
676
676
  detail.serviceAccountId !== null) {
677
677
  lines.push(` service account: ${detail.serviceAccountId}`);
678
678
  }
679
+ if (detail.agentStoreSourceId !== undefined) {
680
+ // The durable file store's address: GET /v0/agent-serve-files/<id> lists
681
+ // it, and the pod sees it as AGENT_SERVE_STORE_SOURCE_ID.
682
+ lines.push(` file store: ${detail.agentStoreSourceId}`);
683
+ }
679
684
  if (detail.egressAllowedDomains !== undefined &&
680
685
  detail.egressAllowedDomains.length > 0) {
681
686
  lines.push(` egress: ${detail.egressAllowedDomains.join(", ")}`);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `agentkit docs` / `npx @cursor/july docs` — serve the shipped VitePress
2
+ * `agent-sdk docs` / `npx @cursor/july docs` — serve the shipped VitePress
3
3
  * site on loopback and open it in a browser. Does not start an agent host.
4
4
  */
5
5
  import { createServer } from "node:http";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `agentkit docs` / `npx @cursor/july docs` — serve the shipped VitePress
2
+ * `agent-sdk docs` / `npx @cursor/july docs` — serve the shipped VitePress
3
3
  * site on loopback and open it in a browser. Does not start an agent host.
4
4
  */
5
5
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {