@cursor/july 0.1.96 → 0.1.99

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 (381) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +3 -2
  3. package/dist/bin/agent-serve.js +13 -3
  4. package/dist/channels/github/github-channel.d.ts.map +1 -1
  5. package/dist/channels/github/github-channel.js +16 -0
  6. package/dist/channels/origin/api.d.ts +15 -4
  7. package/dist/channels/origin/api.d.ts.map +1 -1
  8. package/dist/channels/origin/api.js +19 -3
  9. package/dist/channels/origin/binding.d.ts +11 -0
  10. package/dist/channels/origin/binding.d.ts.map +1 -1
  11. package/dist/channels/origin/binding.js +41 -25
  12. package/dist/channels/origin/index.d.ts +1 -0
  13. package/dist/channels/origin/index.d.ts.map +1 -1
  14. package/dist/channels/origin/index.js +1 -0
  15. package/dist/channels/origin/origin-channel.d.ts +2 -0
  16. package/dist/channels/origin/origin-channel.d.ts.map +1 -1
  17. package/dist/channels/origin/origin-channel.js +40 -4
  18. package/dist/channels/origin/reactions.d.ts +56 -0
  19. package/dist/channels/origin/reactions.d.ts.map +1 -0
  20. package/dist/channels/origin/reactions.js +67 -0
  21. package/dist/channels/origin/types.d.ts +11 -0
  22. package/dist/channels/origin/types.d.ts.map +1 -1
  23. package/dist/channels/slack/approvals.d.ts +16 -0
  24. package/dist/channels/slack/approvals.d.ts.map +1 -1
  25. package/dist/channels/slack/approvals.js +86 -0
  26. package/dist/channels/slack/cli-project.d.ts +19 -0
  27. package/dist/channels/slack/cli-project.d.ts.map +1 -0
  28. package/dist/channels/slack/cli-project.js +234 -0
  29. package/dist/channels/slack/defaults.d.ts.map +1 -1
  30. package/dist/channels/slack/defaults.js +142 -63
  31. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  32. package/dist/channels/slack/dispatch.js +1 -1
  33. package/dist/channels/slack/init.d.ts +3 -2
  34. package/dist/channels/slack/init.d.ts.map +1 -1
  35. package/dist/channels/slack/init.js +5 -5
  36. package/dist/channels/slack/interactive.d.ts +2 -1
  37. package/dist/channels/slack/interactive.d.ts.map +1 -1
  38. package/dist/channels/slack/interactive.js +15 -4
  39. package/dist/channels/slack/live-delivery.d.ts +1 -1
  40. package/dist/channels/slack/live-delivery.d.ts.map +1 -1
  41. package/dist/channels/slack/live-delivery.js +4 -2
  42. package/dist/channels/slack/manifest.d.ts +1 -1
  43. package/dist/channels/slack/manifest.js +1 -1
  44. package/dist/channels/slack/progress-delivery.d.ts +28 -0
  45. package/dist/channels/slack/progress-delivery.d.ts.map +1 -0
  46. package/dist/channels/slack/progress-delivery.js +115 -0
  47. package/dist/channels/slack/setup.d.ts +1 -1
  48. package/dist/channels/slack/setup.d.ts.map +1 -1
  49. package/dist/channels/slack/setup.js +10 -6
  50. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  51. package/dist/channels/slack/slack-channel.js +1 -0
  52. package/dist/channels/slack/tool-approval-events.d.ts.map +1 -1
  53. package/dist/channels/slack/tool-approval-events.js +91 -1
  54. package/dist/channels/slack/types.d.ts +9 -1
  55. package/dist/channels/slack/types.d.ts.map +1 -1
  56. package/dist/docs/404.html +2 -2
  57. package/dist/docs/ab.html +4 -4
  58. package/dist/docs/assets/{app.jXleCmOc.js → app.BplEAZ3S.js} +1 -1
  59. package/dist/docs/assets/chunks/@localSearchIndexroot.DpuI4i7Z.js +1 -0
  60. package/dist/docs/assets/chunks/{VPLocalSearchBox.8LhyglIT.js → VPLocalSearchBox.CHXyv4wP.js} +1 -1
  61. package/dist/docs/assets/chunks/{theme.9ged-pr2.js → theme.BTcsZmjQ.js} +2 -2
  62. package/dist/docs/assets/{deployment.md.D9msOFOW.js → deployment.md.MFPKqsqI.js} +2 -2
  63. package/dist/docs/assets/{guides_mcp-oauth.md.DPYmBCbV.js → guides_mcp-oauth.md.CN-6YmTJ.js} +4 -4
  64. package/dist/docs/assets/{guides_mcp-oauth.md.DPYmBCbV.lean.js → guides_mcp-oauth.md.CN-6YmTJ.lean.js} +1 -1
  65. package/dist/docs/assets/guides_slack.md.VDXQV3ja.js +22 -0
  66. package/dist/docs/assets/guides_slack.md.VDXQV3ja.lean.js +1 -0
  67. package/dist/docs/assets/index.md.CVeRUOeZ.js +5 -0
  68. package/dist/docs/assets/{reference_agent-config.md.Cp_x38Nl.js → reference_agent-config.md.BHeYMgme.js} +1 -1
  69. package/dist/docs/assets/{reference_cli.md.CCnG-nJx.js → reference_cli.md.DfoeyvL0.js} +9 -6
  70. package/dist/docs/assets/{reference_cli.md.CCnG-nJx.lean.js → reference_cli.md.DfoeyvL0.lean.js} +1 -1
  71. package/dist/docs/assets/{reference_connections.md.BH8Oc0D0.js → reference_connections.md.DxldvyIB.js} +4 -3
  72. package/dist/docs/assets/{reference_http-api.md.D89k1mdm.js → reference_http-api.md.BEJx9XVj.js} +2 -2
  73. package/dist/docs/assets/reference_sessions.md.NxFP_CAC.js +1 -0
  74. package/dist/docs/assets/{reference_tools.md.BHeXn2id.js → reference_tools.md.CvAHsdSp.js} +10 -2
  75. package/dist/docs/assets/{reference_tools.md.BHeXn2id.lean.js → reference_tools.md.CvAHsdSp.lean.js} +1 -1
  76. package/dist/docs/assets/templates_agents-md.md.CXSMZljE.js +2 -0
  77. package/dist/docs/assets/templates_agents-md.md.CXSMZljE.lean.js +1 -0
  78. package/dist/docs/assets/troubleshooting.md.DCiPBhYs.js +1 -0
  79. package/dist/docs/building-with-agents.html +4 -4
  80. package/dist/docs/concepts.html +4 -4
  81. package/dist/docs/deployment.html +7 -7
  82. package/dist/docs/deployment.md +5 -4
  83. package/dist/docs/design/runtime-abstraction.md +1757 -0
  84. package/dist/docs/evals.html +4 -4
  85. package/dist/docs/guides/agent-to-agent.html +4 -4
  86. package/dist/docs/guides/cloud-runtime.html +4 -4
  87. package/dist/docs/guides/convert-automation.html +4 -4
  88. package/dist/docs/guides/github.html +4 -4
  89. package/dist/docs/guides/human-in-the-loop.html +4 -4
  90. package/dist/docs/guides/mcp-oauth.html +8 -8
  91. package/dist/docs/guides/mcp-oauth.md +26 -8
  92. package/dist/docs/guides/opentelemetry.html +4 -4
  93. package/dist/docs/guides/slack.html +17 -33
  94. package/dist/docs/guides/slack.md +92 -201
  95. package/dist/docs/guides/webhooks.html +4 -4
  96. package/dist/docs/hashmap.json +1 -1
  97. package/dist/docs/hillclimbing.html +4 -4
  98. package/dist/docs/index.html +6 -6
  99. package/dist/docs/index.md +5 -3
  100. package/dist/docs/llms-full.txt +2065 -637
  101. package/dist/docs/llms.txt +3 -2
  102. package/dist/docs/quickstart.html +4 -4
  103. package/dist/docs/reference/agent-config.html +6 -6
  104. package/dist/docs/reference/agent-config.md +2 -2
  105. package/dist/docs/reference/artifacts.html +4 -4
  106. package/dist/docs/reference/channels.html +4 -4
  107. package/dist/docs/reference/cli.html +13 -10
  108. package/dist/docs/reference/cli.md +32 -16
  109. package/dist/docs/reference/connections.html +9 -8
  110. package/dist/docs/reference/connections.md +6 -3
  111. package/dist/docs/reference/hooks.html +4 -4
  112. package/dist/docs/reference/http-api.html +7 -7
  113. package/dist/docs/reference/http-api.md +3 -1
  114. package/dist/docs/reference/instructions.html +4 -4
  115. package/dist/docs/reference/playground.html +4 -4
  116. package/dist/docs/reference/project-layout.html +4 -4
  117. package/dist/docs/reference/prompt.html +4 -4
  118. package/dist/docs/reference/schedules.html +4 -4
  119. package/dist/docs/reference/sessions.html +5 -5
  120. package/dist/docs/reference/sessions.md +4 -2
  121. package/dist/docs/reference/skills.html +4 -4
  122. package/dist/docs/reference/subagents.html +4 -4
  123. package/dist/docs/reference/tools.html +15 -7
  124. package/dist/docs/reference/tools.md +34 -2
  125. package/dist/docs/scaffolding-agents.html +4 -4
  126. package/dist/docs/storage.html +4 -4
  127. package/dist/docs/templates/agentic-owners.html +4 -4
  128. package/dist/docs/templates/agents-md.html +28 -0
  129. package/dist/docs/templates/agents-md.md +105 -0
  130. package/dist/docs/templates/code-wiki.html +5 -5
  131. package/dist/docs/templates/demo.html +4 -4
  132. package/dist/docs/templates/pr-autofixer.html +4 -4
  133. package/dist/docs/templates/security-help.html +4 -4
  134. package/dist/docs/templates/security-reviewer.html +5 -5
  135. package/dist/docs/templates/triage.html +4 -4
  136. package/dist/docs/troubleshooting.html +5 -5
  137. package/dist/docs/troubleshooting.md +2 -2
  138. package/dist/evals/run-facts.d.ts.map +1 -1
  139. package/dist/evals/run-facts.js +27 -0
  140. package/dist/files-backends/cursor-hosted.d.ts +3 -2
  141. package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
  142. package/dist/files-backends/cursor-hosted.js +3 -2
  143. package/dist/index.d.ts +1 -0
  144. package/dist/index.d.ts.map +1 -1
  145. package/dist/index.js +1 -0
  146. package/dist/internal/advertise-tools.d.ts.map +1 -1
  147. package/dist/internal/advertise-tools.js +15 -9
  148. package/dist/internal/approval-gate.d.ts +12 -13
  149. package/dist/internal/approval-gate.d.ts.map +1 -1
  150. package/dist/internal/approval-gate.js +16 -21
  151. package/dist/internal/as-of.d.ts +19 -0
  152. package/dist/internal/as-of.d.ts.map +1 -0
  153. package/dist/internal/as-of.js +82 -0
  154. package/dist/internal/chat-client.js +10 -0
  155. package/dist/internal/cli-deploy.d.ts +6 -0
  156. package/dist/internal/cli-deploy.d.ts.map +1 -1
  157. package/dist/internal/cli-deploy.js +149 -21
  158. package/dist/internal/cli-mcp-oauth.js +8 -18
  159. package/dist/internal/cli-slack-manual.d.ts +24 -2
  160. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  161. package/dist/internal/cli-slack-manual.js +251 -20
  162. package/dist/internal/cli-slack.d.ts +9 -2
  163. package/dist/internal/cli-slack.d.ts.map +1 -1
  164. package/dist/internal/cli-slack.js +29 -82
  165. package/dist/internal/cursor/account-mcp.d.ts +1 -0
  166. package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
  167. package/dist/internal/cursor/account-mcp.js +17 -0
  168. package/dist/internal/cursor-agent-template.d.ts +1 -1
  169. package/dist/internal/cursor-agent-template.d.ts.map +1 -1
  170. package/dist/internal/cursor-agent-template.js +1 -0
  171. package/dist/internal/cursor-event-relay.d.ts.map +1 -1
  172. package/dist/internal/cursor-event-relay.js +5 -6
  173. package/dist/internal/deploy-client.d.ts +17 -0
  174. package/dist/internal/deploy-client.d.ts.map +1 -1
  175. package/dist/internal/deploy-client.js +31 -10
  176. package/dist/internal/env-file.d.ts +19 -0
  177. package/dist/internal/env-file.d.ts.map +1 -0
  178. package/dist/internal/env-file.js +90 -0
  179. package/dist/internal/framework-file-storage.d.ts +11 -17
  180. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  181. package/dist/internal/framework-file-storage.js +17 -40
  182. package/dist/internal/framework-storage-selection.d.ts +13 -11
  183. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  184. package/dist/internal/framework-storage-selection.js +37 -26
  185. package/dist/internal/hosted-admission-adapter.d.ts +28 -0
  186. package/dist/internal/hosted-admission-adapter.d.ts.map +1 -0
  187. package/dist/internal/hosted-admission-adapter.js +7 -0
  188. package/dist/internal/hosted-delivery-protocol.d.ts +13 -1
  189. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  190. package/dist/internal/hosted-delivery-protocol.js +8 -1
  191. package/dist/internal/hosted-delivery.d.ts +21 -1
  192. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  193. package/dist/internal/hosted-delivery.js +101 -34
  194. package/dist/internal/hosted-execution-diag.d.ts +59 -0
  195. package/dist/internal/hosted-execution-diag.d.ts.map +1 -0
  196. package/dist/internal/hosted-execution-diag.js +187 -0
  197. package/dist/internal/http-channel.d.ts.map +1 -1
  198. package/dist/internal/http-channel.js +85 -2
  199. package/dist/internal/init-project.d.ts.map +1 -1
  200. package/dist/internal/init-project.js +2 -0
  201. package/dist/internal/logs-client.d.ts +5 -0
  202. package/dist/internal/logs-client.d.ts.map +1 -1
  203. package/dist/internal/logs-client.js +5 -0
  204. package/dist/internal/mcp-endpoint.js +2 -3
  205. package/dist/internal/mcp-host.d.ts +10 -0
  206. package/dist/internal/mcp-host.d.ts.map +1 -1
  207. package/dist/internal/mcp-host.js +57 -8
  208. package/dist/internal/mcp-oauth-on-demand.d.ts +68 -0
  209. package/dist/internal/mcp-oauth-on-demand.d.ts.map +1 -0
  210. package/dist/internal/mcp-oauth-on-demand.js +287 -0
  211. package/dist/internal/mcp-oauth-persist.d.ts +42 -0
  212. package/dist/internal/mcp-oauth-persist.d.ts.map +1 -0
  213. package/dist/internal/mcp-oauth-persist.js +92 -0
  214. package/dist/internal/mcp-oauth.d.ts +1 -0
  215. package/dist/internal/mcp-oauth.d.ts.map +1 -1
  216. package/dist/internal/mcp-oauth.js +10 -2
  217. package/dist/internal/null-kv-storage.d.ts +48 -0
  218. package/dist/internal/null-kv-storage.d.ts.map +1 -0
  219. package/dist/internal/null-kv-storage.js +58 -0
  220. package/dist/internal/otel/collector.d.ts.map +1 -1
  221. package/dist/internal/otel/collector.js +22 -9
  222. package/dist/internal/server.d.ts +6 -0
  223. package/dist/internal/server.d.ts.map +1 -1
  224. package/dist/internal/server.js +123 -33
  225. package/dist/internal/session-engine.d.ts +88 -3
  226. package/dist/internal/session-engine.d.ts.map +1 -1
  227. package/dist/internal/session-engine.js +538 -46
  228. package/dist/internal/session-run-log.d.ts +120 -0
  229. package/dist/internal/session-run-log.d.ts.map +1 -0
  230. package/dist/internal/session-run-log.js +359 -0
  231. package/dist/internal/sessions-client.d.ts +9 -7
  232. package/dist/internal/sessions-client.d.ts.map +1 -1
  233. package/dist/internal/sessions-client.js +3 -1
  234. package/dist/internal/storage-coordinator.d.ts +13 -0
  235. package/dist/internal/storage-coordinator.d.ts.map +1 -1
  236. package/dist/internal/storage-coordinator.js +37 -6
  237. package/dist/internal/storage-roles.d.ts +5 -0
  238. package/dist/internal/storage-roles.d.ts.map +1 -1
  239. package/dist/internal/stream-progress.d.ts.map +1 -1
  240. package/dist/internal/stream-progress.js +10 -0
  241. package/dist/internal/tool-policy.d.ts +29 -9
  242. package/dist/internal/tool-policy.d.ts.map +1 -1
  243. package/dist/internal/tool-policy.js +24 -0
  244. package/dist/internal/trajectory.d.ts.map +1 -1
  245. package/dist/internal/trajectory.js +10 -0
  246. package/dist/internal/turn-outbox.d.ts +24 -0
  247. package/dist/internal/turn-outbox.d.ts.map +1 -0
  248. package/dist/internal/turn-outbox.js +80 -0
  249. package/dist/playground/assets/index-D7rGZNjy.css +1 -0
  250. package/dist/playground/assets/index-jzNbJENa.js +69 -0
  251. package/dist/playground/index.html +2 -2
  252. package/dist/storage-backends/cursor-hosted.d.ts +1 -1
  253. package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
  254. package/dist/storage-backends/cursor-hosted.js +12 -0
  255. package/dist/storage-protocol.d.ts +8 -0
  256. package/dist/storage-protocol.d.ts.map +1 -1
  257. package/dist/storage-protocol.js +8 -0
  258. package/dist/storage.d.ts +8 -0
  259. package/dist/storage.d.ts.map +1 -1
  260. package/dist/tools.d.ts +12 -2
  261. package/dist/tools.d.ts.map +1 -1
  262. package/dist/types.d.ts +88 -7
  263. package/dist/types.d.ts.map +1 -1
  264. package/docs/README.md +5 -3
  265. package/docs/deployment.md +5 -4
  266. package/docs/design/runtime-abstraction.md +1757 -0
  267. package/docs/guides/mcp-oauth.md +26 -8
  268. package/docs/guides/slack.md +93 -202
  269. package/docs/reference/agent-config.md +2 -2
  270. package/docs/reference/cli.md +32 -16
  271. package/docs/reference/connections.md +6 -3
  272. package/docs/reference/http-api.md +3 -1
  273. package/docs/reference/sessions.md +4 -2
  274. package/docs/reference/tools.md +34 -2
  275. package/docs/templates/agents-md.md +110 -0
  276. package/docs/troubleshooting.md +2 -2
  277. package/package.json +1 -1
  278. package/skills/create-agent/SKILL.md +2 -1
  279. package/skills/mcp-auth/SKILL.md +6 -3
  280. package/skills/setup-slack/SKILL.md +23 -13
  281. package/src/bin/agent-serve.ts +12 -1
  282. package/src/channels/github/github-channel.ts +17 -0
  283. package/src/channels/origin/api.ts +24 -5
  284. package/src/channels/origin/binding.ts +55 -26
  285. package/src/channels/origin/index.ts +1 -0
  286. package/src/channels/origin/origin-channel.ts +78 -10
  287. package/src/channels/origin/reactions.ts +82 -0
  288. package/src/channels/origin/types.ts +11 -0
  289. package/src/channels/slack/approvals.ts +105 -0
  290. package/src/channels/slack/cli-project.ts +267 -0
  291. package/src/channels/slack/defaults.ts +165 -74
  292. package/src/channels/slack/dispatch.ts +2 -0
  293. package/src/channels/slack/init.ts +10 -5
  294. package/src/channels/slack/interactive.ts +35 -9
  295. package/src/channels/slack/live-delivery.ts +5 -3
  296. package/src/channels/slack/manifest.ts +1 -1
  297. package/src/channels/slack/progress-delivery.ts +133 -0
  298. package/src/channels/slack/setup.ts +10 -6
  299. package/src/channels/slack/slack-channel.ts +1 -0
  300. package/src/channels/slack/tool-approval-events.ts +93 -0
  301. package/src/channels/slack/types.ts +9 -1
  302. package/src/evals/run-facts.ts +32 -0
  303. package/src/files-backends/cursor-hosted.ts +3 -2
  304. package/src/index.ts +4 -0
  305. package/src/internal/advertise-tools.ts +31 -10
  306. package/src/internal/approval-gate.ts +20 -29
  307. package/src/internal/as-of.ts +107 -0
  308. package/src/internal/chat-client.ts +19 -0
  309. package/src/internal/cli-deploy.ts +203 -13
  310. package/src/internal/cli-mcp-oauth.ts +7 -21
  311. package/src/internal/cli-slack-manual.ts +350 -18
  312. package/src/internal/cli-slack.ts +40 -84
  313. package/src/internal/cursor/account-mcp.ts +21 -0
  314. package/src/internal/cursor-agent-template.ts +1 -0
  315. package/src/internal/cursor-event-relay.ts +5 -6
  316. package/src/internal/deploy-client.ts +43 -0
  317. package/src/internal/env-file.ts +84 -0
  318. package/src/internal/framework-file-storage.ts +18 -46
  319. package/src/internal/framework-storage-selection.ts +41 -25
  320. package/src/internal/hosted-admission-adapter.ts +42 -0
  321. package/src/internal/hosted-delivery-protocol.ts +14 -2
  322. package/src/internal/hosted-delivery.ts +169 -44
  323. package/src/internal/hosted-execution-diag.ts +252 -0
  324. package/src/internal/http-channel.ts +107 -0
  325. package/src/internal/init-project.ts +2 -0
  326. package/src/internal/logs-client.ts +5 -0
  327. package/src/internal/mcp-endpoint.ts +13 -4
  328. package/src/internal/mcp-host.ts +77 -11
  329. package/src/internal/mcp-oauth-on-demand.ts +352 -0
  330. package/src/internal/mcp-oauth-persist.ts +127 -0
  331. package/src/internal/mcp-oauth.ts +17 -1
  332. package/src/internal/null-kv-storage.ts +74 -0
  333. package/src/internal/otel/collector.ts +30 -0
  334. package/src/internal/server.ts +159 -11
  335. package/src/internal/session-engine.ts +691 -57
  336. package/src/internal/session-run-log.ts +584 -0
  337. package/src/internal/sessions-client.ts +17 -8
  338. package/src/internal/storage-coordinator.ts +49 -9
  339. package/src/internal/storage-roles.ts +7 -0
  340. package/src/internal/stream-progress.ts +19 -0
  341. package/src/internal/tool-policy.ts +49 -9
  342. package/src/internal/trajectory.ts +10 -0
  343. package/src/internal/turn-outbox.ts +85 -0
  344. package/src/storage-backends/cursor-hosted.ts +13 -1
  345. package/src/storage-protocol.ts +10 -0
  346. package/src/storage.ts +12 -0
  347. package/src/tools.ts +12 -2
  348. package/src/types.ts +93 -8
  349. package/templates/agents-md/README.md +39 -0
  350. package/templates/agents-md/agent/agent.ts +8 -0
  351. package/templates/agents-md/agent/channels/github.ts +10 -0
  352. package/templates/agents-md/agent/channels/queue.ts +28 -0
  353. package/templates/agents-md/agent/channels/slack.ts +9 -0
  354. package/templates/agents-md/agent/instructions.md +39 -0
  355. package/templates/agents-md/agent/lib/collect.ts +439 -0
  356. package/templates/agents-md/agent/lib/config.ts +8 -0
  357. package/templates/agents-md/agent/lib/paths.ts +51 -0
  358. package/templates/agents-md/agent/schedules/weekly.ts +17 -0
  359. package/templates/agents-md/agent/tools/apply_agents.ts +226 -0
  360. package/templates/agents-md/evals/agents.eval.ts +135 -0
  361. package/templates/agents-md/evals/evals.config.ts +5 -0
  362. package/templates/agents-md/init.json +38 -0
  363. package/templates/agents-md/package.json +18 -0
  364. package/templates/agents-md/tsconfig.json +12 -0
  365. package/dist/docs/assets/chunks/@localSearchIndexroot.DFoGuETX.js +0 -1
  366. package/dist/docs/assets/guides_slack.md.C32HsdKk.js +0 -38
  367. package/dist/docs/assets/guides_slack.md.C32HsdKk.lean.js +0 -1
  368. package/dist/docs/assets/index.md.CI93Ltlb.js +0 -5
  369. package/dist/docs/assets/reference_sessions.md.D0mIh4KK.js +0 -1
  370. package/dist/docs/assets/troubleshooting.md.Ctv3T8C2.js +0 -1
  371. package/dist/docs/design/agsh.md +0 -406
  372. package/dist/playground/assets/index-B1DDvBeC.css +0 -1
  373. package/dist/playground/assets/index-Cx9CclK_.js +0 -88
  374. package/docs/design/agsh.md +0 -406
  375. /package/dist/docs/assets/{deployment.md.D9msOFOW.lean.js → deployment.md.MFPKqsqI.lean.js} +0 -0
  376. /package/dist/docs/assets/{index.md.CI93Ltlb.lean.js → index.md.CVeRUOeZ.lean.js} +0 -0
  377. /package/dist/docs/assets/{reference_agent-config.md.Cp_x38Nl.lean.js → reference_agent-config.md.BHeYMgme.lean.js} +0 -0
  378. /package/dist/docs/assets/{reference_connections.md.BH8Oc0D0.lean.js → reference_connections.md.DxldvyIB.lean.js} +0 -0
  379. /package/dist/docs/assets/{reference_http-api.md.D89k1mdm.lean.js → reference_http-api.md.BEJx9XVj.lean.js} +0 -0
  380. /package/dist/docs/assets/{reference_sessions.md.D0mIh4KK.lean.js → reference_sessions.md.NxFP_CAC.lean.js} +0 -0
  381. /package/dist/docs/assets/{troubleshooting.md.Ctv3T8C2.lean.js → troubleshooting.md.DCiPBhYs.lean.js} +0 -0
@@ -1,13 +1,12 @@
1
1
  /**
2
- * In-memory gate for human-in-the-loop tool approvals. The session
3
- * engine parks inside a server-tool `execute` by awaiting
4
- * {@link ApprovalGate.wait}; HTTP (or the playground) unblocks via
5
- * {@link ApprovalGate.resolve}.
2
+ * In-memory gate for human-in-the-loop parks. The session engine parks
3
+ * inside a server-tool `execute` by awaiting {@link ApprovalGate.wait};
4
+ * HTTP (or the playground) unblocks via {@link ApprovalGate.resolve}.
6
5
  *
7
- * Pending approvals are also mirrored onto {@link SessionRecord} for
8
- * durability of the *list* across reloads. After a process restart the
9
- * in-flight SDK tool callback is gone, so resolve returns false and
10
- * the host treats the approval as interrupted.
6
+ * Used for `needsApproval` and MCP on-demand auth. Pending rows are also
7
+ * mirrored onto {@link SessionRecord} for durability of the *list* across
8
+ * reloads. After a process restart the in-flight SDK tool callback is gone,
9
+ * so resolve returns false and the host treats the park as interrupted.
11
10
  */
12
11
  function approvalKey(sessionId, callId) {
13
12
  return `${sessionId}\0${callId}`;
@@ -16,21 +15,15 @@ export class ApprovalGate {
16
15
  constructor() {
17
16
  this.waiters = new Map();
18
17
  }
19
- wait(meta) {
20
- const key = approvalKey(meta.sessionId, meta.callId);
18
+ wait(sessionId, meta) {
19
+ const key = approvalKey(sessionId, meta.callId);
21
20
  const existing = this.waiters.get(key);
22
21
  if (existing !== undefined) {
23
- throw new Error(`Approval already pending for session ${meta.sessionId} call ${meta.callId}`);
22
+ throw new Error(`Approval already pending for session ${sessionId} call ${meta.callId}`);
24
23
  }
25
24
  return new Promise((resolveDecision) => {
26
25
  this.waiters.set(key, {
27
- meta: {
28
- callId: meta.callId,
29
- turnId: meta.turnId,
30
- toolName: meta.toolName,
31
- args: meta.args,
32
- requestedAt: meta.requestedAt,
33
- },
26
+ meta,
34
27
  resolve: resolveDecision,
35
28
  });
36
29
  });
@@ -46,9 +39,11 @@ export class ApprovalGate {
46
39
  return false;
47
40
  }
48
41
  this.waiters.delete(key);
49
- waiter.resolve(Object.assign({ decision }, (resolvedBy === undefined || resolvedBy === ""
50
- ? {}
51
- : { by: resolvedBy })));
42
+ const by = resolvedBy === undefined || resolvedBy === "" ? undefined : resolvedBy;
43
+ waiter.resolve({
44
+ decision,
45
+ by,
46
+ });
52
47
  return true;
53
48
  }
54
49
  has(sessionId, callId) {
@@ -0,0 +1,19 @@
1
+ export declare class InvalidAsOfError extends Error {
2
+ constructor(value: string);
3
+ }
4
+ export declare function normalizeAsOf(value: string | undefined): string | undefined;
5
+ export declare function sessionClock(asOf: string | undefined): () => Date;
6
+ export declare class VacuousTimeArgsError extends Error {
7
+ constructor(toolName: string, missing: readonly string[]);
8
+ }
9
+ export declare function assertTimeArgs(tools: readonly {
10
+ name: string;
11
+ definition: {
12
+ timeArgs?: readonly string[];
13
+ };
14
+ inputSchema?: {
15
+ properties?: Record<string, unknown>;
16
+ };
17
+ }[], asOf: string | undefined): void;
18
+ export declare function timeArgViolation(input: unknown, timeArgs: readonly string[], asOf: string): string | undefined;
19
+ //# sourceMappingURL=as-of.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"as-of.d.ts","sourceRoot":"","sources":["../../src/internal/as-of.ts"],"names":[],"mappings":"AAEA,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,KAAK,EAAE,MAAM,EAMxB;CACF;AAWD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAS3E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI,CAMjE;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAQvD;CACF;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QAAE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAC7C,WAAW,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACxD,EAAE,EACH,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,IAAI,CAeN;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CA0BpB"}
@@ -0,0 +1,82 @@
1
+ const TIMEZONE_SUFFIX = /(?:Z|[+-]\d{2}:?\d{2})$/i;
2
+ export class InvalidAsOfError extends Error {
3
+ constructor(value) {
4
+ super(`asOf must be an ISO-8601 instant with a timezone (e.g. ` +
5
+ `2026-08-31T12:00:00Z); received ${JSON.stringify(value)}.`);
6
+ this.name = "InvalidAsOfError";
7
+ }
8
+ }
9
+ function parseInstant(value) {
10
+ const trimmed = value.trim();
11
+ if (trimmed === "" || !TIMEZONE_SUFFIX.test(trimmed)) {
12
+ return undefined;
13
+ }
14
+ const instant = new Date(trimmed);
15
+ return Number.isNaN(instant.getTime()) ? undefined : instant;
16
+ }
17
+ export function normalizeAsOf(value) {
18
+ if (value === undefined) {
19
+ return undefined;
20
+ }
21
+ const instant = parseInstant(value);
22
+ if (instant === undefined) {
23
+ throw new InvalidAsOfError(value);
24
+ }
25
+ return instant.toISOString();
26
+ }
27
+ export function sessionClock(asOf) {
28
+ if (asOf === undefined) {
29
+ return () => new Date();
30
+ }
31
+ const frozen = new Date(asOf).getTime();
32
+ return () => new Date(frozen);
33
+ }
34
+ export class VacuousTimeArgsError extends Error {
35
+ constructor(toolName, missing) {
36
+ super(`Tool "${toolName}" declares timeArgs ` +
37
+ `${JSON.stringify(missing)} that its input schema does not define, ` +
38
+ `so bounding would silently check nothing. Make the declaration ` +
39
+ `match the schema's property names.`);
40
+ this.name = "VacuousTimeArgsError";
41
+ }
42
+ }
43
+ export function assertTimeArgs(tools, asOf) {
44
+ var _a;
45
+ var _b;
46
+ if (asOf === undefined) {
47
+ return;
48
+ }
49
+ for (const tool of tools) {
50
+ const declared = tool.definition.timeArgs;
51
+ if (declared === undefined || declared.length === 0) {
52
+ continue;
53
+ }
54
+ const properties = (_b = (_a = tool.inputSchema) === null || _a === void 0 ? void 0 : _a.properties) !== null && _b !== void 0 ? _b : {};
55
+ const missing = declared.filter((name) => !(name in properties));
56
+ if (missing.length > 0) {
57
+ throw new VacuousTimeArgsError(tool.name, missing);
58
+ }
59
+ }
60
+ }
61
+ export function timeArgViolation(input, timeArgs, asOf) {
62
+ const record = typeof input === "object" && input !== null
63
+ ? input
64
+ : {};
65
+ const frozen = new Date(asOf).getTime();
66
+ for (const name of timeArgs) {
67
+ const value = record[name];
68
+ const instant = typeof value === "string" ? parseInstant(value) : undefined;
69
+ if (instant === undefined) {
70
+ return (`Time argument "${name}" must be an absolute ISO-8601 instant with ` +
71
+ `a timezone (e.g. ${asOf}); received ${JSON.stringify(value)}. This ` +
72
+ `session reads the world as of ${asOf} — supply absolute bounds at ` +
73
+ `or before that instant and retry.`);
74
+ }
75
+ if (instant.getTime() > frozen) {
76
+ return (`Time argument "${name}" (${JSON.stringify(value)}) is later than ` +
77
+ `the instant this session reads the world as of (${asOf}). Supply ` +
78
+ `bounds at or before that instant and retry.`);
79
+ }
80
+ }
81
+ return undefined;
82
+ }
@@ -364,6 +364,16 @@ function streamTurn(args) {
364
364
  write(` ${mark} ${c.bold(event.data.toolName)} ${c.dim(event.data.decision === "approve" ? "approved" : "denied")}\n`);
365
365
  continue;
366
366
  }
367
+ if (event.type === "action.auth_requested") {
368
+ closeAssistant();
369
+ write(` ${c.yellow("⏸")} ${c.bold(event.data.connection)} ${c.dim("awaiting MCP authorization")}\n`);
370
+ continue;
371
+ }
372
+ if (event.type === "action.auth_resolved") {
373
+ const mark = event.data.decision === "approve" ? c.green("✓") : c.red("✗");
374
+ write(` ${mark} ${c.bold(event.data.connection)} ${c.dim(event.data.decision === "approve" ? "connected" : "denied")}\n`);
375
+ continue;
376
+ }
367
377
  if (event.type === "action.result") {
368
378
  if (event.data.toolName === "task" &&
369
379
  event.data.parentCallId === undefined) {
@@ -53,6 +53,12 @@ export interface DeployCliOptions {
53
53
  cursorEventsRepos?: string[];
54
54
  /** deploy `--allow-domain <domain>` (repeatable; unioned with the manifest). */
55
55
  allowDomains?: string[];
56
+ /**
57
+ * deploy `--multi-tenant`: add a release to an existing Cursor-managed
58
+ * (multi-tenant) product. Hidden Anysphere-only flag. Cannot create a
59
+ * new multi-tenant application.
60
+ */
61
+ multiTenant?: boolean;
56
62
  /** Test seams. */
57
63
  fetchImpl?: typeof fetch;
58
64
  /** Inject the connector-auth browser opener (tests; also forces interactive). */
@@ -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":"AAAA;;;;;;;;;;GAUG;AAiBH,OAAO,EAKL,sBAAsB,EAevB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,KAAK,aAAa,EAMnB,MAAM,gBAAgB,CAAC;AAexB,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE,SAAS,YAAY,EAAE,KAC5B,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,qEAAqE;IACrE,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,GAAG;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC,CAAC;AAeF,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,gEAAgE;IAChE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAiEtC;AA0CD,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsF1E;AA4MD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,OAAO,EAAE;IACP,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,iBAAiB,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB,GACA,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAqChC;AAmnBD,wBAAsB,cAAc,CAClC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAMD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAoHjB;AAwCD,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CA0DjB;AAMD,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAuCjB;AAMD,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CA4BjB;AAMD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAMD,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CA4EjB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CA4BjB;AAoED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,cAAc,GAC5B,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuCnC"}
@@ -34,6 +34,8 @@ import { deployProgressLabel, sanitizeCustomerError } from "./logs-client.js";
34
34
  import { stderrPalette } from "./terminal-style.js";
35
35
  const DEFAULT_POLL_INTERVAL_MS = 3000;
36
36
  const DEFAULT_DEPLOY_TIMEOUT_MS = 10 * 60 * 1000;
37
+ /** `--multi-tenant` HTTP deploy is Anysphere-only (team id 1). */
38
+ const MULTI_TENANT_HTTP_DEPLOY_TEAM_ID = 1;
37
39
  /**
38
40
  * Credentials → deploy client → team id. Shared by deploy commands and
39
41
  * `--prod` AX routing. Returns an exit code (error already rendered) on
@@ -135,6 +137,11 @@ export function cmdDeploy(options) {
135
137
  if (typeof ctx === "number") {
136
138
  return ctx;
137
139
  }
140
+ if (options.multiTenant === true &&
141
+ ctx.teamId !== MULTI_TENANT_HTTP_DEPLOY_TEAM_ID) {
142
+ ctx.err("--multi-tenant is not available for this team.\n");
143
+ return 1;
144
+ }
138
145
  const targets = yield resolveDeployTargets(options, ctx);
139
146
  if (typeof targets === "number") {
140
147
  return targets;
@@ -152,7 +159,9 @@ export function cmdDeploy(options) {
152
159
  manifests.push(yield readDeployManifest(target.dir));
153
160
  }
154
161
  if (manifests.every((manifest) => manifest.architecture === "v2")) {
155
- return deployAgentsdkApplication(ctx, options, targets);
162
+ return deployAgentsdkApplication(ctx, options, targets, {
163
+ hasScmChannels: manifests.some((manifest) => manifest.hasScmChannels),
164
+ });
156
165
  }
157
166
  if (!ctx.json &&
158
167
  manifests.some((manifest) => manifest.architecture === "v2")) {
@@ -488,8 +497,14 @@ function deployOne(ctx, options, target, extras) {
488
497
  gitRef,
489
498
  agentPath,
490
499
  repositories: options.cursorEventsRepos,
500
+ hasScmChannels: manifest.hasScmChannels,
501
+ multiTenant: options.multiTenant === true,
491
502
  });
492
503
  }
504
+ if (options.multiTenant === true) {
505
+ ctx.err("--multi-tenant is only valid for architecture: v2 deploys (Cursor-managed products).\n");
506
+ return 1;
507
+ }
493
508
  // Today's only source shape: the control plane builds from a git ref.
494
509
  // See DeploySource for the artifact seam.
495
510
  const source = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ kind: "git-ref", gitRepoUrl }, (gitRef === undefined ? {} : { gitRef })), (agentPath === undefined ? {} : { agentPath })), (options.cursorEventsRepos === undefined ||
@@ -546,10 +561,7 @@ function deployOne(ctx, options, target, extras) {
546
561
  return detail.status === "running" ? 0 : 1;
547
562
  }
548
563
  if (detail.status !== "running") {
549
- const errorDetail = detail.lastError === null || detail.lastError === undefined
550
- ? ""
551
- : `: ${sanitizeCustomerError(detail.lastError)}`;
552
- ctx.err(`Deployment ${slug} ended ${detail.status}${errorDetail}\n`);
564
+ ctx.err(`Deployment ${slug} ended ${detail.status}${deployFailureDetail(detail.lastError)}\n`);
553
565
  return 1;
554
566
  }
555
567
  const deployedPublicRoutes = (_h = detail.publicRoutePaths) !== null && _h !== void 0 ? _h : [];
@@ -580,7 +592,7 @@ function deployOne(ctx, options, target, extras) {
580
592
  * key is the child's slug and its path is the child directory relative to
581
593
  * the repo root (a shared --path names the parent's directory in the repo).
582
594
  */
583
- function deployAgentsdkApplication(ctx, options, targets) {
595
+ function deployAgentsdkApplication(ctx, options, targets, declarations) {
584
596
  return __awaiter(this, void 0, void 0, function* () {
585
597
  var _a, _b, _c, _d, _e;
586
598
  const parentDir = resolve((_a = options.dir) !== null && _a !== void 0 ? _a : ".");
@@ -640,6 +652,8 @@ function deployAgentsdkApplication(ctx, options, targets) {
640
652
  agentPath: undefined,
641
653
  components,
642
654
  repositories: options.cursorEventsRepos,
655
+ hasScmChannels: declarations.hasScmChannels,
656
+ multiTenant: options.multiTenant === true,
643
657
  });
644
658
  });
645
659
  }
@@ -650,26 +664,25 @@ function deployAgentsdkApplication(ctx, options, targets) {
650
664
  */
651
665
  function deployOneAgentsdk(ctx, extras, args) {
652
666
  return __awaiter(this, void 0, void 0, function* () {
667
+ var _a;
653
668
  const { slug } = args;
654
669
  const componentsLine = args.components === undefined
655
670
  ? ""
656
671
  : ` components: ${args.components
657
672
  .map((component) => component.componentKey)
658
673
  .join(", ")}\n`;
674
+ if (args.multiTenant && !ctx.json) {
675
+ ctx.err(" multi-tenant: existing product\n");
676
+ }
659
677
  let accepted;
660
678
  try {
661
- accepted = yield ctx.client.deployAgentkit({
662
- teamId: ctx.teamId,
663
- slug,
664
- gitRepoUrl: args.gitRepoUrl,
665
- gitRef: args.gitRef,
666
- agentPath: args.agentPath,
667
- components: args.components,
668
- repositories: args.repositories,
669
- });
679
+ accepted = yield ctx.client.deployAgentkit(Object.assign({ teamId: ctx.teamId, slug, gitRepoUrl: args.gitRepoUrl, gitRef: args.gitRef, agentPath: args.agentPath, components: args.components, repositories: args.repositories }, (args.multiTenant ? { multiTenant: true } : {})));
670
680
  }
671
681
  catch (error) {
672
- return renderApiError(error, ctx.err);
682
+ return renderApiError(error, ctx.err, {
683
+ multiTenant: args.multiTenant,
684
+ teamId: ctx.teamId,
685
+ });
673
686
  }
674
687
  if (ctx.noWait) {
675
688
  if ((extras === null || extras === void 0 ? void 0 : extras.jsonCollect) !== undefined) {
@@ -702,7 +715,7 @@ function deployOneAgentsdk(ctx, extras, args) {
702
715
  return detail.status === "running" ? 0 : 1;
703
716
  }
704
717
  if (detail.status !== "running") {
705
- ctx.err(`Deployment ${slug} ended ${detail.status}\n`);
718
+ ctx.err(`Deployment ${slug} ended ${detail.status}${deployFailureDetail(detail.lastError)}\n`);
706
719
  return 1;
707
720
  }
708
721
  ctx.out(`Deployed ${slug} (team ${ctx.teamId})\n` +
@@ -714,7 +727,16 @@ function deployOneAgentsdk(ctx, extras, args) {
714
727
  ? ""
715
728
  : ` components: ${args.components
716
729
  .map((component) => component.componentKey)
717
- .join(", ")}\n`));
730
+ .join(", ")}\n`) +
731
+ (detail.repositories === undefined || !args.hasScmChannels
732
+ ? ""
733
+ : ` watching: ${detail.repositories.length === 0 ? "(nothing)" : detail.repositories.join(", ")}\n`));
734
+ // An agent with GitHub/Origin channels bound to no repository scope gets
735
+ // no deliveries at all, which is otherwise invisible in this output.
736
+ if (args.hasScmChannels && ((_a = detail.repositories) === null || _a === void 0 ? void 0 : _a.length) === 0) {
737
+ ctx.err(`warning: ${slug} watches no repositories, so its GitHub/Origin channels receive no events.\n` +
738
+ ` Redeploy with --cursor-events-repo <owner>/<name> to set the scope.\n`);
739
+ }
718
740
  return 0;
719
741
  });
720
742
  }
@@ -806,6 +828,11 @@ function readDeployManifest(dir) {
806
828
  .filter((channel) => { var _a; return ((_a = channel.definition.auth) !== null && _a !== void 0 ? _a : []).some(isPublicEndpointPolicy); })
807
829
  .map((channel) => channel.id),
808
830
  httpChannelPublicEndpoint: ((_a = project.httpChannel.auth) !== null && _a !== void 0 ? _a : []).some(isPublicEndpointPolicy),
831
+ hasScmChannels: project.channels.some((channel) => {
832
+ var _a;
833
+ const kind = (_a = channel.definition.meta) === null || _a === void 0 ? void 0 : _a.kind;
834
+ return kind === "github" || kind === "origin";
835
+ }),
809
836
  };
810
837
  });
811
838
  }
@@ -875,6 +902,22 @@ export function cmdDeploymentStatus(slug, options) {
875
902
  if (typeof ctx === "number") {
876
903
  return ctx;
877
904
  }
905
+ // Same dispatch as `stop`: v1 409s architecture-v2 slugs, so the v2
906
+ // GET goes first. A v2 404 (missing slug, or an older backend) falls
907
+ // through to the v1 agent-serve detail.
908
+ try {
909
+ const detail = yield ctx.client.getAgentkitDeploy({
910
+ teamId: ctx.teamId,
911
+ slug,
912
+ });
913
+ renderAgentkitDeploymentStatus(ctx, detail);
914
+ return 0;
915
+ }
916
+ catch (error) {
917
+ if (!(error instanceof DeployApiError) || error.status !== 404) {
918
+ return renderApiError(error, ctx.err);
919
+ }
920
+ }
878
921
  let detail;
879
922
  try {
880
923
  detail = yield ctx.client.getDeployment({ teamId: ctx.teamId, slug });
@@ -949,6 +992,32 @@ export function cmdDeploymentStatus(slug, options) {
949
992
  return 0;
950
993
  });
951
994
  }
995
+ function renderAgentkitDeploymentStatus(ctx, detail) {
996
+ if (ctx.json) {
997
+ ctx.out(`${JSON.stringify(detail, null, 2)}\n`);
998
+ return;
999
+ }
1000
+ const lines = [
1001
+ `${detail.slug} (team ${detail.teamId})`,
1002
+ ` status: ${detail.status}`,
1003
+ ` architecture: v2`,
1004
+ ` application: ${detail.applicationId}`,
1005
+ ` release: ${detail.releaseId}`,
1006
+ ` progress: ${detail.progress}`,
1007
+ ];
1008
+ if (detail.statusMessage !== null && detail.statusMessage.trim() !== "") {
1009
+ lines.push(` step: ${detail.statusMessage}`);
1010
+ }
1011
+ if (detail.repositories !== undefined) {
1012
+ lines.push(` watching: ${detail.repositories.length === 0
1013
+ ? "(nothing)"
1014
+ : detail.repositories.join(", ")}`);
1015
+ }
1016
+ if (detail.lastError !== null && detail.lastError !== undefined) {
1017
+ lines.push(` last error: ${sanitizeCustomerError(detail.lastError)}`);
1018
+ }
1019
+ ctx.out(`${lines.join("\n")}\n`);
1020
+ }
952
1021
  // ============================================================================
953
1022
  // stop <slug>
954
1023
  // ============================================================================
@@ -1389,10 +1458,35 @@ function pollUntil(ctx, slug, terminal, fetchDetail) {
1389
1458
  }
1390
1459
  };
1391
1460
  for (;;) {
1392
- const detail = yield fetchDetail().catch((error) => {
1461
+ let detail;
1462
+ try {
1463
+ detail = yield fetchDetail();
1464
+ }
1465
+ catch (error) {
1466
+ // Capacity / rate-limit on GET is not a bake failure. The v2 accept
1467
+ // already started freeze; keep polling until the wait budget expires.
1468
+ if (isTransientDeployStatusError(error) &&
1469
+ Date.now() - startedAt < ctx.timeoutMs) {
1470
+ if (!ctx.json) {
1471
+ const elapsed = Math.round((Date.now() - startedAt) / 1000);
1472
+ const label = "Waiting for status (server busy)";
1473
+ if (tty) {
1474
+ ctx.err(`\r\x1b[2K${slug}: ${label} (${elapsed}s)`);
1475
+ sawProgress = true;
1476
+ }
1477
+ else if (label !== lastLabel) {
1478
+ ctx.err(`${slug}: ${label}\n`);
1479
+ }
1480
+ lastLabel = label;
1481
+ }
1482
+ const waitMs = transientDeployStatusWaitMs(error, ctx.pollIntervalMs);
1483
+ const remaining = ctx.timeoutMs - (Date.now() - startedAt);
1484
+ yield sleep(Math.max(0, Math.min(waitMs, remaining)));
1485
+ continue;
1486
+ }
1393
1487
  finishProgressLine();
1394
1488
  throw error;
1395
- });
1489
+ }
1396
1490
  report(detail);
1397
1491
  if (terminal.has(detail.status)) {
1398
1492
  finishProgressLine();
@@ -1407,6 +1501,19 @@ function pollUntil(ctx, slug, terminal, fetchDetail) {
1407
1501
  }
1408
1502
  });
1409
1503
  }
1504
+ /** Load-shed / rate-limit on status GET — the deploy itself may still be baking. */
1505
+ function isTransientDeployStatusError(error) {
1506
+ return (error instanceof DeployApiError &&
1507
+ (error.status === 503 || error.status === 429));
1508
+ }
1509
+ function transientDeployStatusWaitMs(error, pollIntervalMs) {
1510
+ if (error.status === 429 &&
1511
+ error.retryAfterSeconds !== undefined &&
1512
+ error.retryAfterSeconds > 0) {
1513
+ return Math.max(pollIntervalMs, error.retryAfterSeconds * 1000);
1514
+ }
1515
+ return pollIntervalMs;
1516
+ }
1410
1517
  /**
1411
1518
  * Wait until GET 404s (the delete reconciler purged the record). Treats
1412
1519
  * other errors as failures. Throws DeployApiError on timeout.
@@ -1462,9 +1569,30 @@ function aliasTokenBlock(aliasToken) {
1462
1569
  ` or paste it into the hosted playground (<alias>/playground) sign-in gate.\n` +
1463
1570
  ` Lost tokens: \`${CLI} rotate-token <slug>\` mints a replacement.\n\n`);
1464
1571
  }
1465
- function renderApiError(error, err) {
1572
+ /**
1573
+ * `: <reason>` suffix for a deploy that ended in a non-running state, or
1574
+ * empty when the control plane recorded no reason.
1575
+ */
1576
+ function deployFailureDetail(lastError) {
1577
+ if (lastError === null ||
1578
+ lastError === undefined ||
1579
+ lastError.trim() === "") {
1580
+ return "";
1581
+ }
1582
+ return `: ${sanitizeCustomerError(lastError.trim())}`;
1583
+ }
1584
+ function renderApiError(error, err, context) {
1466
1585
  if (error instanceof DeployApiError) {
1467
1586
  err(`${error.message}\n`);
1587
+ if (error.status === 409 &&
1588
+ error.message.includes("application multiTenant does not match")) {
1589
+ if ((context === null || context === void 0 ? void 0 : context.multiTenant) === true) {
1590
+ err("This slug is a single-tenant application. Redeploy it without --multi-tenant.\n");
1591
+ }
1592
+ else if ((context === null || context === void 0 ? void 0 : context.teamId) === MULTI_TENANT_HTTP_DEPLOY_TEAM_ID) {
1593
+ err("This slug is a Cursor-managed (multi-tenant) product. Redeploy it with --multi-tenant.\n");
1594
+ }
1595
+ }
1468
1596
  return 1;
1469
1597
  }
1470
1598
  throw error;
@@ -27,7 +27,8 @@ import { authorizeCursorAccountConnectors } from "./cursor-account-mcp-auth.js";
27
27
  import { deploymentServiceAccountId } from "./deploy-client.js";
28
28
  import { loadAgentProject } from "./discovery.js";
29
29
  import { CLI_COMMAND_NAME as CLI, LOG_PREFIX } from "./distribution.js";
30
- import { createHostMcpOAuthProvider, MCP_OAUTH_CALLBACK_URL, mcpOauthSecretNames, openBrowser, waitForMcpOAuthCallback, } from "./mcp-oauth.js";
30
+ import { createHostMcpOAuthProvider, MCP_OAUTH_CALLBACK_URL, openBrowser, waitForMcpOAuthCallback, } from "./mcp-oauth.js";
31
+ import { upsertHostMcpOauthSecrets } from "./mcp-oauth-persist.js";
31
32
  import { resolveProdSlug } from "./resolve-prod-target.js";
32
33
  function describe(error) {
33
34
  if (!(error instanceof Error)) {
@@ -287,25 +288,14 @@ function storeOauthSecrets(args) {
287
288
  if (typeof auth === "number") {
288
289
  return auth;
289
290
  }
290
- const names = mcpOauthSecretNames(args.connection);
291
- const secrets = [
292
- { name: names.accessToken, value: tokens.access_token },
293
- ];
294
- if (tokens.refresh_token !== undefined &&
295
- tokens.refresh_token.trim() !== "") {
296
- secrets.push({ name: names.refreshToken, value: tokens.refresh_token });
297
- }
298
- if (args.clientId !== undefined && args.clientId.trim() !== "") {
299
- secrets.push({ name: names.clientId, value: args.clientId });
300
- }
301
291
  try {
302
- const secretNames = yield auth.client.setSecrets({
303
- teamId: auth.teamId,
304
- slug,
305
- secrets,
292
+ const secretNames = yield upsertHostMcpOauthSecrets({
293
+ connection: args.connection,
294
+ tokens,
295
+ clientId: args.clientId,
296
+ target: { client: auth.client, teamId: auth.teamId, slug },
306
297
  });
307
- args.out(`${LOG_PREFIX} Stored on ${slug}: ${secrets.map((s) => s.name).join(", ")}.\n` +
308
- `${LOG_PREFIX} Secrets now: ${secretNames.join(", ")}. Next deploy picks them up.\n`);
298
+ args.out(`${LOG_PREFIX} Stored on ${slug}. Secrets now: ${secretNames.join(", ")}. Next deploy picks them up.\n`);
309
299
  return 0;
310
300
  }
311
301
  catch (error) {
@@ -1,6 +1,8 @@
1
1
  /**
2
- * `slack init --manual` and `slack manifest` — DIY paste-at-api.slack.com.
3
- * Create/destroy/icon stay in `cli-slack.ts`.
2
+ * `slack init --manual` and `slack manifest` — unmanaged Slack app.
3
+ * Slack CLI create+install when `~/.slack/bin/slack` is present;
4
+ * paste-at-api.slack.com is the fallback. Create/destroy/icon stay
5
+ * in `cli-slack.ts`.
4
6
  */
5
7
  export interface SlackManualCliOptions {
6
8
  dir: string;
@@ -12,9 +14,29 @@ export interface SlackManualCliOptions {
12
14
  channelPosts?: boolean;
13
15
  /** Gate for `slack init`; ignored by `slack manifest`. */
14
16
  manual?: boolean;
17
+ /** Require Slack CLI install (fail if missing or install fails). */
18
+ install?: boolean;
19
+ /** Skip Slack CLI install even when the CLI is present. */
20
+ noInstall?: boolean;
21
+ slackTeam?: string;
22
+ prod?: boolean;
23
+ detectSlackCli?: () => string | undefined;
24
+ runSlackCli?: SlackCliExec;
15
25
  out?: (text: string) => void;
16
26
  err?: (text: string) => void;
17
27
  }
28
+ export interface SlackCliExecRequest {
29
+ bin: string;
30
+ argv: string[];
31
+ cwd: string;
32
+ env?: NodeJS.ProcessEnv;
33
+ }
34
+ export interface SlackCliExecResult {
35
+ code: number;
36
+ stdout: string;
37
+ stderr: string;
38
+ }
39
+ export type SlackCliExec = (request: SlackCliExecRequest) => Promise<SlackCliExecResult>;
18
40
  export declare function cmdSlackInit(options: SlackManualCliOptions): Promise<number>;
19
41
  export declare function runSlackManifest(options: SlackManualCliOptions): Promise<number>;
20
42
  //# sourceMappingURL=cli-slack-manual.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-slack-manual.d.ts","sourceRoot":"","sources":["../../src/internal/cli-slack-manual.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAMD,wBAAsB,YAAY,CAChC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAuDjB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAgCjB"}
1
+ {"version":3,"file":"cli-slack-manual.d.ts","sourceRoot":"","sources":["../../src/internal/cli-slack-manual.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAoGjC,wBAAsB,YAAY,CAChC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAoFjB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAgCjB"}