@cursor/july 0.1.107 → 0.1.109

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 (523) hide show
  1. package/AGENTS.md +2 -6
  2. package/README.md +13 -11
  3. package/dist/bin/agent-serve.js +30 -8
  4. package/dist/channels/bitbucket/api.d.ts +41 -0
  5. package/dist/channels/bitbucket/api.d.ts.map +1 -1
  6. package/dist/channels/bitbucket/api.js +260 -0
  7. package/dist/channels/bitbucket/binding.d.ts +4 -0
  8. package/dist/channels/bitbucket/binding.d.ts.map +1 -1
  9. package/dist/channels/bitbucket/binding.js +16 -0
  10. package/dist/channels/bitbucket/index.d.ts +1 -1
  11. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  12. package/dist/channels/bitbucket/index.js +1 -1
  13. package/dist/channels/github/github-channel.js +8 -5
  14. package/dist/channels/github/types.d.ts +5 -1
  15. package/dist/channels/github/types.d.ts.map +1 -1
  16. package/dist/channels/gitlab/api.d.ts +27 -0
  17. package/dist/channels/gitlab/api.d.ts.map +1 -1
  18. package/dist/channels/gitlab/api.js +88 -0
  19. package/dist/channels/gitlab/binding.d.ts +5 -0
  20. package/dist/channels/gitlab/binding.d.ts.map +1 -1
  21. package/dist/channels/gitlab/binding.js +10 -0
  22. package/dist/channels/gitlab/index.d.ts +1 -1
  23. package/dist/channels/gitlab/index.d.ts.map +1 -1
  24. package/dist/channels/gitlab/index.js +1 -1
  25. package/dist/channels/origin/origin-channel.d.ts.map +1 -1
  26. package/dist/channels/origin/origin-channel.js +27 -13
  27. package/dist/channels/origin/types.d.ts +5 -1
  28. package/dist/channels/origin/types.d.ts.map +1 -1
  29. package/dist/channels/slack/dispatch.d.ts +10 -0
  30. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  31. package/dist/channels/slack/dispatch.js +20 -3
  32. package/dist/channels/slack/slack-channel.d.ts +12 -5
  33. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  34. package/dist/channels/slack/slack-channel.js +59 -8
  35. package/dist/channels.d.ts +45 -0
  36. package/dist/channels.d.ts.map +1 -1
  37. package/dist/channels.js +106 -7
  38. package/dist/connections.d.ts +2 -1
  39. package/dist/connections.d.ts.map +1 -1
  40. package/dist/connections.js +2 -1
  41. package/dist/docs/404.html +2 -2
  42. package/dist/docs/assets/{app.CtuckIiL.js → app.Cr-wVbnB.js} +1 -1
  43. package/dist/docs/assets/{building-with-agents.md.CUSWxlP_.js → building-with-agents.md.D0KbSkJn.js} +2 -2
  44. package/dist/docs/assets/{building-with-agents.md.CUSWxlP_.lean.js → building-with-agents.md.D0KbSkJn.lean.js} +1 -1
  45. package/dist/docs/assets/chunks/@localSearchIndexroot.CFVQ4S17.js +1 -0
  46. package/dist/docs/assets/chunks/{VPLocalSearchBox.Bkkhnu8K.js → VPLocalSearchBox.CVQERt56.js} +1 -1
  47. package/dist/docs/assets/chunks/{theme.DhpIe0Pa.js → theme.Dnsd3XOn.js} +2 -2
  48. package/dist/docs/assets/concepts.md.B4o63Gul.js +1 -0
  49. package/dist/docs/assets/{deployment.md.MFPKqsqI.js → deployment.md.JenwuCCB.js} +4 -4
  50. package/dist/docs/assets/{deployment.md.MFPKqsqI.lean.js → deployment.md.JenwuCCB.lean.js} +1 -1
  51. package/dist/docs/assets/evals.md.C7JLjoEP.js +211 -0
  52. package/dist/docs/assets/evals.md.C7JLjoEP.lean.js +1 -0
  53. package/dist/docs/assets/guides_bitbucket.md.DZPzmUjU.js +10 -0
  54. package/dist/docs/assets/guides_bitbucket.md.DZPzmUjU.lean.js +1 -0
  55. package/dist/docs/assets/guides_cloud-agents.md.BsloyHdY.js +9 -0
  56. package/dist/docs/assets/{guides_cloud-agents.md.DS8RIjwx.lean.js → guides_cloud-agents.md.BsloyHdY.lean.js} +1 -1
  57. package/dist/docs/assets/{guides_github.md.c0gdGJ-D.js → guides_github.md.TZaTZlfz.js} +13 -3
  58. package/dist/docs/assets/{guides_github.md.c0gdGJ-D.lean.js → guides_github.md.TZaTZlfz.lean.js} +1 -1
  59. package/dist/docs/assets/guides_gitlab.md.BmqwQfdG.js +14 -0
  60. package/dist/docs/assets/guides_gitlab.md.BmqwQfdG.lean.js +1 -0
  61. package/dist/docs/assets/{guides_grokbot-agents.md.DVqdhBKb.js → guides_grokbot-agents.md.DyV-WArv.js} +1 -1
  62. package/dist/docs/assets/guides_improve.md.BGVk32bK.js +14 -0
  63. package/dist/docs/assets/guides_improve.md.BGVk32bK.lean.js +1 -0
  64. package/dist/docs/assets/{guides_slack.md.9oHPye9o.js → guides_slack.md.D4RVMM4G.js} +3 -3
  65. package/dist/docs/assets/{guides_slack.md.9oHPye9o.lean.js → guides_slack.md.D4RVMM4G.lean.js} +1 -1
  66. package/dist/docs/assets/{guides_webhooks.md.DKdA43Qm.js → guides_webhooks.md.CJK484ex.js} +2 -2
  67. package/dist/docs/assets/{hillclimbing.md.CpTGTCle.js → hillclimbing.md.BOiVo1tf.js} +1 -1
  68. package/dist/docs/assets/index.md.DD9Q2XuJ.js +5 -0
  69. package/dist/docs/assets/{index.md.BW_6tOgR.lean.js → index.md.DD9Q2XuJ.lean.js} +1 -1
  70. package/dist/docs/assets/{reference_agent-config.md.CHNpiyp4.js → reference_agent-config.md.CvoL6pof.js} +1 -1
  71. package/dist/docs/assets/{reference_channels.md.D-qTqwcq.js → reference_channels.md.CAo-iK4j.js} +2 -2
  72. package/dist/docs/assets/{reference_channels.md.D-qTqwcq.lean.js → reference_channels.md.CAo-iK4j.lean.js} +1 -1
  73. package/dist/docs/assets/{reference_cli.md.Dm67hd2D.js → reference_cli.md.Deg7849l.js} +7 -7
  74. package/dist/docs/assets/{reference_cli.md.Dm67hd2D.lean.js → reference_cli.md.Deg7849l.lean.js} +1 -1
  75. package/dist/docs/assets/{reference_connections.md.Di6jJAXF.js → reference_connections.md.BojkC6c5.js} +1 -1
  76. package/dist/docs/assets/{reference_extensions.md.CGmMLblt.js → reference_extensions.md.ZAVUyuEX.js} +3 -3
  77. package/dist/docs/assets/{reference_hooks.md.Ddt5DdgJ.js → reference_hooks.md.BlM_bOg6.js} +3 -3
  78. package/dist/docs/assets/{reference_hooks.md.Ddt5DdgJ.lean.js → reference_hooks.md.BlM_bOg6.lean.js} +1 -1
  79. package/dist/docs/assets/{reference_http-api.md.oySXBO8o.js → reference_http-api.md.BwaCo-VO.js} +1 -1
  80. package/dist/docs/assets/{reference_playground.md.4myJPxrf.js → reference_playground.md.DLnoaczX.js} +1 -1
  81. package/dist/docs/assets/{reference_playground.md.4myJPxrf.lean.js → reference_playground.md.DLnoaczX.lean.js} +1 -1
  82. package/dist/docs/assets/{reference_project-layout.md.DuBu9a96.js → reference_project-layout.md.BEU8MtQV.js} +3 -3
  83. package/dist/docs/assets/{reference_project-layout.md.DuBu9a96.lean.js → reference_project-layout.md.BEU8MtQV.lean.js} +1 -1
  84. package/dist/docs/assets/reference_sessions.md.CyXV1MUw.js +1 -0
  85. package/dist/docs/assets/{scaffolding-agents.md.em43xlY1.js → scaffolding-agents.md.Kctn3OVb.js} +1 -1
  86. package/dist/docs/assets/{skills_create-agent.md.BVoWPcan.js → skills_create-agent.md.Q3h6Je-e.js} +1 -1
  87. package/dist/docs/assets/{skills_debug.md.CDbPhHfg.js → skills_debug.md.CVjCXMFF.js} +1 -1
  88. package/dist/docs/assets/{skills_debug.md.CDbPhHfg.lean.js → skills_debug.md.CVjCXMFF.lean.js} +1 -1
  89. package/dist/docs/assets/skills_deploy.md.CWqi_ZxW.js +35 -0
  90. package/dist/docs/assets/skills_deploy.md.CWqi_ZxW.lean.js +1 -0
  91. package/dist/docs/assets/skills_evals.md.DFxYPErF.js +25 -0
  92. package/dist/docs/assets/skills_evals.md.DFxYPErF.lean.js +1 -0
  93. package/dist/docs/assets/skills_framework-map.md.BxLSOhSY.js +1 -0
  94. package/dist/docs/assets/{skills_framework-map.md.haibFyoB.lean.js → skills_framework-map.md.BxLSOhSY.lean.js} +1 -1
  95. package/dist/docs/assets/{skills_github.md.D0JahM8c.js → skills_github.md.hgFX_oKY.js} +1 -1
  96. package/dist/docs/assets/skills_index.md.DL7EHaQ-.js +1 -0
  97. package/dist/docs/assets/skills_index.md.DL7EHaQ-.lean.js +1 -0
  98. package/dist/docs/assets/{storage.md.BOHeqk2M.js → storage.md.BUrhJ-Zz.js} +4 -4
  99. package/dist/docs/assets/{storage.md.BOHeqk2M.lean.js → storage.md.BUrhJ-Zz.lean.js} +1 -1
  100. package/dist/docs/assets/troubleshooting.md.CYEAO9bM.js +1 -0
  101. package/dist/docs/building-with-agents.html +5 -5
  102. package/dist/docs/building-with-agents.md +3 -2
  103. package/dist/docs/concepts.html +5 -5
  104. package/dist/docs/concepts.md +2 -4
  105. package/dist/docs/deployment.html +7 -7
  106. package/dist/docs/deployment.md +7 -2
  107. package/dist/docs/evals.html +161 -35
  108. package/dist/docs/evals.md +612 -296
  109. package/dist/docs/guides/agent-to-agent.html +4 -4
  110. package/dist/docs/guides/bitbucket.html +36 -0
  111. package/dist/docs/guides/bitbucket.md +84 -0
  112. package/dist/docs/guides/cloud-agents.html +6 -6
  113. package/dist/docs/guides/cloud-agents.md +4 -3
  114. package/dist/docs/guides/convert-automation.html +4 -4
  115. package/dist/docs/guides/github.html +17 -7
  116. package/dist/docs/guides/github.md +33 -1
  117. package/dist/docs/guides/gitlab.html +40 -0
  118. package/dist/docs/guides/gitlab.md +92 -0
  119. package/dist/docs/guides/grokbot-agents.html +6 -6
  120. package/dist/docs/guides/grokbot-agents.md +2 -2
  121. package/dist/docs/guides/human-in-the-loop.html +4 -4
  122. package/dist/docs/guides/improve.html +40 -0
  123. package/dist/docs/guides/improve.md +91 -0
  124. package/dist/docs/guides/mcp-oauth.html +4 -4
  125. package/dist/docs/guides/opentelemetry.html +5 -5
  126. package/dist/docs/guides/slack.html +7 -7
  127. package/dist/docs/guides/slack.md +2 -1
  128. package/dist/docs/guides/webhooks.html +6 -6
  129. package/dist/docs/guides/webhooks.md +4 -2
  130. package/dist/docs/hashmap.json +1 -1
  131. package/dist/docs/hillclimbing.html +6 -6
  132. package/dist/docs/hillclimbing.md +2 -2
  133. package/dist/docs/index.html +6 -6
  134. package/dist/docs/index.md +14 -6
  135. package/dist/docs/llms-full.txt +1274 -814
  136. package/dist/docs/llms.txt +7 -5
  137. package/dist/docs/quickstart.html +4 -4
  138. package/dist/docs/reference/agent-config.html +6 -6
  139. package/dist/docs/reference/agent-config.md +5 -2
  140. package/dist/docs/reference/artifacts.html +4 -4
  141. package/dist/docs/reference/channels.html +6 -6
  142. package/dist/docs/reference/channels.md +16 -3
  143. package/dist/docs/reference/cli.html +11 -11
  144. package/dist/docs/reference/cli.md +24 -15
  145. package/dist/docs/reference/connections.html +6 -6
  146. package/dist/docs/reference/connections.md +2 -1
  147. package/dist/docs/reference/extensions.html +8 -8
  148. package/dist/docs/reference/extensions.md +2 -3
  149. package/dist/docs/reference/hooks.html +7 -7
  150. package/dist/docs/reference/hooks.md +9 -12
  151. package/dist/docs/reference/http-api.html +6 -6
  152. package/dist/docs/reference/http-api.md +2 -3
  153. package/dist/docs/reference/instructions.html +4 -4
  154. package/dist/docs/reference/playground.html +5 -5
  155. package/dist/docs/reference/playground.md +0 -4
  156. package/dist/docs/reference/project-layout.html +7 -7
  157. package/dist/docs/reference/project-layout.md +1 -8
  158. package/dist/docs/reference/prompt.html +4 -4
  159. package/dist/docs/reference/result.html +4 -4
  160. package/dist/docs/reference/schedules.html +4 -4
  161. package/dist/docs/reference/sessions.html +5 -5
  162. package/dist/docs/reference/sessions.md +1 -2
  163. package/dist/docs/reference/skills.html +4 -4
  164. package/dist/docs/reference/subagents.html +4 -4
  165. package/dist/docs/reference/tools.html +4 -4
  166. package/dist/docs/scaffolding-agents.html +5 -5
  167. package/dist/docs/scaffolding-agents.md +2 -1
  168. package/dist/docs/skills/create-agent.html +6 -6
  169. package/dist/docs/skills/create-agent.md +1 -1
  170. package/dist/docs/skills/debug.html +5 -5
  171. package/dist/docs/skills/debug.md +1 -1
  172. package/dist/docs/skills/deploy.html +61 -0
  173. package/dist/docs/skills/deploy.md +161 -0
  174. package/dist/docs/skills/evals.html +8 -8
  175. package/dist/docs/skills/evals.md +44 -6
  176. package/dist/docs/skills/framework-map.html +5 -5
  177. package/dist/docs/skills/framework-map.md +5 -4
  178. package/dist/docs/skills/github.html +6 -6
  179. package/dist/docs/skills/github.md +1 -1
  180. package/dist/docs/skills/hillclimb.html +4 -4
  181. package/dist/docs/skills/index.html +6 -6
  182. package/dist/docs/skills/index.md +1 -1
  183. package/dist/docs/skills/mcp-auth.html +4 -4
  184. package/dist/docs/skills/otel.html +4 -4
  185. package/dist/docs/skills/setup-slack.html +4 -4
  186. package/dist/docs/storage.html +8 -8
  187. package/dist/docs/storage.md +15 -24
  188. package/dist/docs/templates/agentic-owners.html +4 -4
  189. package/dist/docs/templates/agents-md.html +4 -4
  190. package/dist/docs/templates/code-wiki.html +4 -4
  191. package/dist/docs/templates/demo.html +4 -4
  192. package/dist/docs/templates/grokbot-agents.html +4 -4
  193. package/dist/docs/templates/pr-autofixer.html +4 -4
  194. package/dist/docs/templates/security-help.html +4 -4
  195. package/dist/docs/templates/security-reviewer.html +4 -4
  196. package/dist/docs/templates/triage.html +4 -4
  197. package/dist/docs/troubleshooting.html +5 -5
  198. package/dist/docs/troubleshooting.md +1 -1
  199. package/dist/extensions/improve/extension.d.ts +46 -0
  200. package/dist/extensions/improve/extension.d.ts.map +1 -0
  201. package/dist/extensions/improve/extension.js +41 -0
  202. package/dist/extensions/improve/skills/yourself.d.ts +4 -0
  203. package/dist/extensions/improve/skills/yourself.d.ts.map +1 -0
  204. package/dist/extensions/improve/skills/yourself.js +43 -0
  205. package/dist/extensions.d.ts +2 -3
  206. package/dist/extensions.d.ts.map +1 -1
  207. package/dist/extensions.js +2 -5
  208. package/dist/index.d.ts +2 -3
  209. package/dist/index.d.ts.map +1 -1
  210. package/dist/index.js +1 -2
  211. package/dist/internal/authored-alias-hooks.d.ts +5 -0
  212. package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
  213. package/dist/internal/authored-alias-hooks.js +17 -0
  214. package/dist/internal/authored-loaders.d.ts +4 -0
  215. package/dist/internal/authored-loaders.d.ts.map +1 -1
  216. package/dist/internal/authored-loaders.js +21 -2
  217. package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -1
  218. package/dist/internal/builtin-tools/artifacts.js +2 -3
  219. package/dist/internal/channel-route-dispatch.d.ts +13 -0
  220. package/dist/internal/channel-route-dispatch.d.ts.map +1 -0
  221. package/dist/internal/channel-route-dispatch.js +62 -0
  222. package/dist/internal/channel-state.d.ts +17 -0
  223. package/dist/internal/channel-state.d.ts.map +1 -0
  224. package/dist/internal/channel-state.js +78 -0
  225. package/dist/internal/cli-ax.d.ts +8 -2
  226. package/dist/internal/cli-ax.d.ts.map +1 -1
  227. package/dist/internal/cli-ax.js +100 -3
  228. package/dist/internal/cli-cursor.d.ts.map +1 -1
  229. package/dist/internal/cli-cursor.js +2 -0
  230. package/dist/internal/cli-deploy.d.ts.map +1 -1
  231. package/dist/internal/cli-deploy.js +38 -14
  232. package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
  233. package/dist/internal/cli-mcp-oauth.js +15 -0
  234. package/dist/internal/cli-mcp.d.ts.map +1 -1
  235. package/dist/internal/cli-mcp.js +12 -0
  236. package/dist/internal/cli-slack.d.ts.map +1 -1
  237. package/dist/internal/cli-slack.js +8 -2
  238. package/dist/internal/continuation-channel.d.ts.map +1 -1
  239. package/dist/internal/continuation-channel.js +2 -2
  240. package/dist/internal/continuation-identity.js +8 -3
  241. package/dist/internal/cursor/credentials.d.ts +8 -2
  242. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  243. package/dist/internal/cursor/credentials.js +27 -5
  244. package/dist/internal/deploy-client.d.ts +27 -0
  245. package/dist/internal/deploy-client.d.ts.map +1 -1
  246. package/dist/internal/deploy-client.js +32 -0
  247. package/dist/internal/deploy-manifest.d.ts +23 -0
  248. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  249. package/dist/internal/deploy-manifest.js +84 -1
  250. package/dist/internal/describe-error.d.ts +1 -0
  251. package/dist/internal/describe-error.d.ts.map +1 -1
  252. package/dist/internal/describe-error.js +25 -0
  253. package/dist/internal/discovery/agent.d.ts +1 -1
  254. package/dist/internal/discovery/agent.d.ts.map +1 -1
  255. package/dist/internal/discovery/agent.js +0 -5
  256. package/dist/internal/discovery/extension-overlay.d.ts +1 -2
  257. package/dist/internal/discovery/extension-overlay.d.ts.map +1 -1
  258. package/dist/internal/discovery/extension-overlay.js +0 -14
  259. package/dist/internal/discovery/extensions.d.ts +1 -2
  260. package/dist/internal/discovery/extensions.d.ts.map +1 -1
  261. package/dist/internal/discovery/extensions.js +4 -22
  262. package/dist/internal/discovery/info.d.ts.map +1 -1
  263. package/dist/internal/discovery/info.js +42 -24
  264. package/dist/internal/discovery/modules.js +0 -1
  265. package/dist/internal/discovery/project.d.ts.map +1 -1
  266. package/dist/internal/discovery/project.js +0 -16
  267. package/dist/internal/eval-runner.js +0 -1
  268. package/dist/internal/framework-file-storage.d.ts +4 -5
  269. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  270. package/dist/internal/framework-file-storage.js +4 -5
  271. package/dist/internal/framework-storage-selection.d.ts +2 -2
  272. package/dist/internal/framework-storage-selection.js +2 -2
  273. package/dist/internal/guest-network.d.ts +4 -10
  274. package/dist/internal/guest-network.d.ts.map +1 -1
  275. package/dist/internal/guest-network.js +42 -26
  276. package/dist/internal/hosted-admission-adapter.d.ts +2 -0
  277. package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
  278. package/dist/internal/hosted-catch-protocol.d.ts +51 -0
  279. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -0
  280. package/dist/internal/hosted-catch-protocol.js +103 -0
  281. package/dist/internal/hosted-catch.d.ts +40 -0
  282. package/dist/internal/hosted-catch.d.ts.map +1 -0
  283. package/dist/internal/hosted-catch.js +149 -0
  284. package/dist/internal/hosted-delivery-protocol.d.ts +41 -0
  285. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  286. package/dist/internal/hosted-delivery-protocol.js +249 -0
  287. package/dist/internal/hosted-delivery.d.ts +10 -1
  288. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  289. package/dist/internal/hosted-delivery.js +100 -22
  290. package/dist/internal/hosted-execution-diag.d.ts +4 -1
  291. package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
  292. package/dist/internal/hosted-execution-diag.js +13 -4
  293. package/dist/internal/hosted-execution-flush.d.ts +3 -0
  294. package/dist/internal/hosted-execution-flush.d.ts.map +1 -1
  295. package/dist/internal/hosted-execution-flush.js +2 -4
  296. package/dist/internal/http-control-plane-session.d.ts +30 -0
  297. package/dist/internal/http-control-plane-session.d.ts.map +1 -0
  298. package/dist/internal/http-control-plane-session.js +83 -0
  299. package/dist/internal/init-scaffold.d.ts.map +1 -1
  300. package/dist/internal/init-scaffold.js +1 -2
  301. package/dist/internal/install-cursor-skills.d.ts +5 -2
  302. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  303. package/dist/internal/install-cursor-skills.js +25 -5
  304. package/dist/internal/legacy-command-guard.d.ts +22 -0
  305. package/dist/internal/legacy-command-guard.d.ts.map +1 -0
  306. package/dist/internal/legacy-command-guard.js +51 -0
  307. package/dist/internal/platform-timers.d.ts +7 -0
  308. package/dist/internal/platform-timers.d.ts.map +1 -1
  309. package/dist/internal/platform-timers.js +139 -0
  310. package/dist/internal/reminder-control-plane-protocol.d.ts +2 -0
  311. package/dist/internal/reminder-control-plane-protocol.d.ts.map +1 -1
  312. package/dist/internal/reminder-control-plane-protocol.js +9 -2
  313. package/dist/internal/reminder-runner.d.ts +8 -0
  314. package/dist/internal/reminder-runner.d.ts.map +1 -1
  315. package/dist/internal/reminder-runner.js +36 -9
  316. package/dist/internal/resolve-prod-target.d.ts +2 -0
  317. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  318. package/dist/internal/resolve-prod-target.js +13 -0
  319. package/dist/internal/run-client.d.ts +1 -1
  320. package/dist/internal/sdk-runner.d.ts.map +1 -1
  321. package/dist/internal/sdk-runner.js +5 -4
  322. package/dist/internal/server.d.ts.map +1 -1
  323. package/dist/internal/server.js +57 -70
  324. package/dist/internal/session-engine.d.ts +7 -41
  325. package/dist/internal/session-engine.d.ts.map +1 -1
  326. package/dist/internal/session-engine.js +110 -227
  327. package/dist/internal/storage-coordinator.d.ts +5 -19
  328. package/dist/internal/storage-coordinator.d.ts.map +1 -1
  329. package/dist/internal/storage-coordinator.js +3 -62
  330. package/dist/internal/storage-roles.d.ts +4 -9
  331. package/dist/internal/storage-roles.d.ts.map +1 -1
  332. package/dist/internal/storage-roles.js +2 -2
  333. package/dist/playground/assets/index-Bhxzrcf6.css +1 -0
  334. package/dist/playground/assets/index-CqLX5uF3.js +67 -0
  335. package/dist/playground/index.html +2 -2
  336. package/dist/storage-backends/cursor-hosted-v2.d.ts +4 -5
  337. package/dist/storage-backends/cursor-hosted-v2.d.ts.map +1 -1
  338. package/dist/storage-backends/cursor-hosted-v2.js +4 -5
  339. package/dist/storage-backends/cursor-hosted.d.ts +7 -2
  340. package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
  341. package/dist/storage-backends/cursor-hosted.js +29 -31
  342. package/dist/storage-backends/file-kv.d.ts +9 -12
  343. package/dist/storage-backends/file-kv.d.ts.map +1 -1
  344. package/dist/storage-backends/file-kv.js +11 -47
  345. package/dist/storage-protocol.d.ts +3 -11
  346. package/dist/storage-protocol.d.ts.map +1 -1
  347. package/dist/storage-protocol.js +3 -11
  348. package/dist/storage.d.ts +8 -36
  349. package/dist/storage.d.ts.map +1 -1
  350. package/dist/storage.js +8 -44
  351. package/dist/types.d.ts +53 -62
  352. package/dist/types.d.ts.map +1 -1
  353. package/docs/README.md +14 -6
  354. package/docs/building-with-agents.md +3 -2
  355. package/docs/concepts.md +2 -4
  356. package/docs/deployment.md +7 -2
  357. package/docs/evals.md +613 -297
  358. package/docs/guides/bitbucket.md +89 -0
  359. package/docs/guides/cloud-agents.md +4 -3
  360. package/docs/guides/github.md +33 -1
  361. package/docs/guides/gitlab.md +97 -0
  362. package/docs/guides/grokbot-agents.md +2 -2
  363. package/docs/guides/improve.md +96 -0
  364. package/docs/guides/slack.md +2 -1
  365. package/docs/guides/webhooks.md +4 -2
  366. package/docs/hillclimbing.md +2 -2
  367. package/docs/reference/agent-config.md +5 -2
  368. package/docs/reference/channels.md +16 -3
  369. package/docs/reference/cli.md +24 -15
  370. package/docs/reference/connections.md +2 -1
  371. package/docs/reference/extensions.md +2 -3
  372. package/docs/reference/hooks.md +9 -12
  373. package/docs/reference/http-api.md +2 -3
  374. package/docs/reference/playground.md +0 -4
  375. package/docs/reference/project-layout.md +1 -8
  376. package/docs/reference/sessions.md +1 -2
  377. package/docs/scaffolding-agents.md +2 -1
  378. package/docs/skills/index.md +2 -2
  379. package/docs/storage.md +15 -24
  380. package/docs/troubleshooting.md +1 -1
  381. package/package.json +8 -7
  382. package/skills/create-agent/SKILL.md +1 -1
  383. package/skills/debug/SKILL.md +1 -1
  384. package/skills/deploy/SKILL.md +169 -0
  385. package/skills/evals/SKILL.md +45 -8
  386. package/skills/framework-map/SKILL.md +5 -4
  387. package/skills/github/SKILL.md +1 -1
  388. package/src/bin/agent-serve.ts +27 -2
  389. package/src/channels/bitbucket/api.ts +341 -0
  390. package/src/channels/bitbucket/binding.ts +25 -0
  391. package/src/channels/bitbucket/index.ts +2 -0
  392. package/src/channels/github/github-channel.ts +8 -8
  393. package/src/channels/github/types.ts +5 -0
  394. package/src/channels/gitlab/api.ts +123 -0
  395. package/src/channels/gitlab/binding.ts +12 -0
  396. package/src/channels/gitlab/index.ts +1 -0
  397. package/src/channels/origin/origin-channel.ts +29 -13
  398. package/src/channels/origin/types.ts +5 -0
  399. package/src/channels/slack/dispatch.ts +30 -0
  400. package/src/channels/slack/slack-channel.ts +69 -7
  401. package/src/channels.ts +157 -10
  402. package/src/connections.ts +2 -1
  403. package/src/extensions/improve/extension.ts +70 -0
  404. package/src/extensions/improve/skills/yourself.ts +50 -0
  405. package/src/extensions.ts +2 -6
  406. package/src/index.ts +0 -3
  407. package/src/internal/authored-alias-hooks.ts +32 -0
  408. package/src/internal/authored-loaders.ts +26 -2
  409. package/src/internal/builtin-tools/artifacts.ts +2 -3
  410. package/src/internal/channel-route-dispatch.ts +66 -0
  411. package/src/internal/channel-state.ts +96 -0
  412. package/src/internal/cli-ax.ts +111 -3
  413. package/src/internal/cli-cursor.ts +4 -1
  414. package/src/internal/cli-deploy.ts +50 -10
  415. package/src/internal/cli-mcp-oauth.ts +18 -0
  416. package/src/internal/cli-mcp.ts +11 -0
  417. package/src/internal/cli-slack.ts +15 -2
  418. package/src/internal/continuation-channel.ts +2 -1
  419. package/src/internal/continuation-identity.ts +10 -2
  420. package/src/internal/cursor/credentials.ts +35 -7
  421. package/src/internal/deploy-client.ts +54 -0
  422. package/src/internal/deploy-manifest.ts +115 -1
  423. package/src/internal/describe-error.ts +28 -0
  424. package/src/internal/discovery/agent.ts +1 -7
  425. package/src/internal/discovery/extension-overlay.ts +0 -18
  426. package/src/internal/discovery/extensions.ts +2 -26
  427. package/src/internal/discovery/info.ts +3 -13
  428. package/src/internal/discovery/modules.ts +0 -1
  429. package/src/internal/discovery/project.ts +0 -16
  430. package/src/internal/eval-runner.ts +0 -1
  431. package/src/internal/framework-file-storage.ts +4 -5
  432. package/src/internal/framework-storage-selection.ts +2 -2
  433. package/src/internal/guest-network.ts +43 -29
  434. package/src/internal/hosted-admission-adapter.ts +2 -0
  435. package/src/internal/hosted-catch-protocol.ts +130 -0
  436. package/src/internal/hosted-catch.ts +192 -0
  437. package/src/internal/hosted-delivery-protocol.ts +387 -0
  438. package/src/internal/hosted-delivery.ts +155 -22
  439. package/src/internal/hosted-execution-diag.ts +21 -3
  440. package/src/internal/hosted-execution-flush.ts +6 -3
  441. package/src/internal/http-control-plane-session.ts +104 -0
  442. package/src/internal/init-scaffold.ts +1 -2
  443. package/src/internal/install-cursor-skills.ts +38 -5
  444. package/src/internal/legacy-command-guard.ts +59 -0
  445. package/src/internal/platform-timers.ts +191 -0
  446. package/src/internal/reminder-control-plane-protocol.ts +15 -2
  447. package/src/internal/reminder-runner.ts +60 -9
  448. package/src/internal/resolve-prod-target.ts +15 -0
  449. package/src/internal/run-client.ts +1 -1
  450. package/src/internal/sdk-runner.ts +3 -2
  451. package/src/internal/server.ts +89 -95
  452. package/src/internal/session-engine.ts +155 -285
  453. package/src/internal/storage-coordinator.ts +5 -76
  454. package/src/internal/storage-roles.ts +4 -9
  455. package/src/storage-backends/cursor-hosted-v2.ts +4 -7
  456. package/src/storage-backends/cursor-hosted.ts +40 -38
  457. package/src/storage-backends/file-kv.ts +10 -51
  458. package/src/storage-protocol.ts +3 -17
  459. package/src/storage.ts +10 -101
  460. package/src/types.ts +58 -62
  461. package/templates/demo/README.md +10 -6
  462. package/templates/demo/agent/channels/github.ts +2 -0
  463. package/templates/demo/agent/channels/queue.ts +6 -2
  464. package/templates/demo/agent/lib/repos.ts +5 -0
  465. package/templates/demo/init.json +25 -0
  466. package/dist/ab.d.ts +0 -209
  467. package/dist/ab.d.ts.map +0 -1
  468. package/dist/ab.js +0 -246
  469. package/dist/docs/ab.html +0 -80
  470. package/dist/docs/ab.md +0 -332
  471. package/dist/docs/assets/ab.md.mlVgqvSk.js +0 -54
  472. package/dist/docs/assets/ab.md.mlVgqvSk.lean.js +0 -1
  473. package/dist/docs/assets/chunks/@localSearchIndexroot.DXXZxiMv.js +0 -1
  474. package/dist/docs/assets/concepts.md.DgEcZOfT.js +0 -1
  475. package/dist/docs/assets/evals.md.CbMoebP1.js +0 -85
  476. package/dist/docs/assets/evals.md.CbMoebP1.lean.js +0 -1
  477. package/dist/docs/assets/guides_cloud-agents.md.DS8RIjwx.js +0 -9
  478. package/dist/docs/assets/index.md.BW_6tOgR.js +0 -5
  479. package/dist/docs/assets/reference_sessions.md.CueyOHSL.js +0 -1
  480. package/dist/docs/assets/skills_ab.md.CsFNatVx.js +0 -26
  481. package/dist/docs/assets/skills_ab.md.CsFNatVx.lean.js +0 -1
  482. package/dist/docs/assets/skills_evals.md.723kpUmA.js +0 -25
  483. package/dist/docs/assets/skills_evals.md.723kpUmA.lean.js +0 -1
  484. package/dist/docs/assets/skills_framework-map.md.haibFyoB.js +0 -1
  485. package/dist/docs/assets/skills_index.md.DKwIxzGg.js +0 -1
  486. package/dist/docs/assets/skills_index.md.DKwIxzGg.lean.js +0 -1
  487. package/dist/docs/assets/troubleshooting.md.Cus_YZga.js +0 -1
  488. package/dist/docs/skills/ab.html +0 -52
  489. package/dist/docs/skills/ab.md +0 -50
  490. package/dist/internal/ab-collector.d.ts +0 -44
  491. package/dist/internal/ab-collector.d.ts.map +0 -1
  492. package/dist/internal/ab-collector.js +0 -142
  493. package/dist/internal/ab-fold.d.ts +0 -36
  494. package/dist/internal/ab-fold.d.ts.map +0 -1
  495. package/dist/internal/ab-fold.js +0 -175
  496. package/dist/internal/ab-snapshot.d.ts +0 -68
  497. package/dist/internal/ab-snapshot.d.ts.map +0 -1
  498. package/dist/internal/ab-snapshot.js +0 -208
  499. package/dist/internal/discovery/ab.d.ts +0 -9
  500. package/dist/internal/discovery/ab.d.ts.map +0 -1
  501. package/dist/internal/discovery/ab.js +0 -113
  502. package/dist/playground/assets/index-Bq2HpEQB.js +0 -67
  503. package/dist/playground/assets/index-CZKKNlmb.css +0 -1
  504. package/docs/ab.md +0 -337
  505. package/skills/ab/SKILL.md +0 -58
  506. package/src/ab.ts +0 -430
  507. package/src/internal/ab-collector.ts +0 -200
  508. package/src/internal/ab-fold.ts +0 -232
  509. package/src/internal/ab-snapshot.ts +0 -331
  510. package/src/internal/discovery/ab.ts +0 -131
  511. /package/dist/docs/assets/{concepts.md.DgEcZOfT.lean.js → concepts.md.B4o63Gul.lean.js} +0 -0
  512. /package/dist/docs/assets/{guides_grokbot-agents.md.DVqdhBKb.lean.js → guides_grokbot-agents.md.DyV-WArv.lean.js} +0 -0
  513. /package/dist/docs/assets/{guides_webhooks.md.DKdA43Qm.lean.js → guides_webhooks.md.CJK484ex.lean.js} +0 -0
  514. /package/dist/docs/assets/{hillclimbing.md.CpTGTCle.lean.js → hillclimbing.md.BOiVo1tf.lean.js} +0 -0
  515. /package/dist/docs/assets/{reference_agent-config.md.CHNpiyp4.lean.js → reference_agent-config.md.CvoL6pof.lean.js} +0 -0
  516. /package/dist/docs/assets/{reference_connections.md.Di6jJAXF.lean.js → reference_connections.md.BojkC6c5.lean.js} +0 -0
  517. /package/dist/docs/assets/{reference_extensions.md.CGmMLblt.lean.js → reference_extensions.md.ZAVUyuEX.lean.js} +0 -0
  518. /package/dist/docs/assets/{reference_http-api.md.oySXBO8o.lean.js → reference_http-api.md.BwaCo-VO.lean.js} +0 -0
  519. /package/dist/docs/assets/{reference_sessions.md.CueyOHSL.lean.js → reference_sessions.md.CyXV1MUw.lean.js} +0 -0
  520. /package/dist/docs/assets/{scaffolding-agents.md.em43xlY1.lean.js → scaffolding-agents.md.Kctn3OVb.lean.js} +0 -0
  521. /package/dist/docs/assets/{skills_create-agent.md.BVoWPcan.lean.js → skills_create-agent.md.Q3h6Je-e.lean.js} +0 -0
  522. /package/dist/docs/assets/{skills_github.md.D0JahM8c.lean.js → skills_github.md.hgFX_oKY.lean.js} +0 -0
  523. /package/dist/docs/assets/{troubleshooting.md.Cus_YZga.lean.js → troubleshooting.md.CYEAO9bM.lean.js} +0 -0
package/AGENTS.md CHANGED
@@ -5,7 +5,7 @@ Loop: edit files → inspect surface → run a turn → assert with filesystem
5
5
  evals. Prefer the CLI over ad-hoc curl.
6
6
 
7
7
  User-facing documentation lives in [`docs/`](./docs/README.md)
8
- (quickstart, concepts, guides, evals/live A/B metrics/hillclimbing, deployment,
8
+ (quickstart, concepts, guides, evals/hillclimbing, deployment,
9
9
  troubleshooting, reference). This file is the terse loop reference;
10
10
  point humans at the docs.
11
11
 
@@ -44,12 +44,12 @@ which reads these files. Open them directly. There are no
44
44
  | `skills/framework-map/SKILL.md` | First contact: folder structure, runtimes, sessions, state, invariants |
45
45
  | `skills/create-agent/SKILL.md` | Scaffolding a new agent (interview → scaffold → verify) |
46
46
  | `skills/evals/SKILL.md` | Writing evals; fixture strategy; the regression ratchet |
47
- | `skills/ab/SKILL.md` | Live A/B metrics (`defineAB` under `agent/ab`); not a test runner |
48
47
  | `skills/otel/SKILL.md` | OpenTelemetry export (`defineOtel` / OTLP env / `ctx.host.otel`) |
49
48
  | `skills/hillclimb/SKILL.md` | Improving an existing agent measurably |
50
49
  | `skills/github/SKILL.md` | GitHub webhook agents; replay / forward / fixtures / cursor-events |
51
50
  | `skills/setup-slack/SKILL.md` | Slack wiring and Slack tool approvals |
52
51
  | `skills/mcp-auth/SKILL.md` | Host MCP OAuth (`mcp oauth`, `--store`, `advertiseTools`, `host-connections/`) |
52
+ | `skills/deploy/SKILL.md` | Deploy or redeploy from a pushed Git ref with an attached service account |
53
53
  | `skills/debug/SKILL.md` | Something misbehaving locally (symptom → cause) |
54
54
 
55
55
  Hosted-platform debug (stopped / slow start / health-fail, Datadog
@@ -87,8 +87,6 @@ agent-sdk call get_weather --dir . --input '{"city":"NYC"}'
87
87
  agent-sdk eval --dir . --list
88
88
  agent-sdk eval --dir . --json
89
89
  agent-sdk eval --dir . weather/nyc
90
-
91
- # Live A/B metrics: author agent/ab.ts (defineAB) — runs under serve, no CLI
92
90
  ```
93
91
 
94
92
  ## Project layout
@@ -101,8 +99,6 @@ my-agent/
101
99
  tools/*.ts
102
100
  skills/*.md
103
101
  channels/
104
- ab.ts # optional live A/B metrics (defineAB)
105
- ab.config.ts # optional: maxPlaygroundSessions (default 200)
106
102
  ...
107
103
  evals/
108
104
  smoke.eval.ts # single datapoint → id: smoke
package/README.md CHANGED
@@ -16,9 +16,9 @@ as the execution engine.
16
16
  **User-facing documentation lives in [`docs/`](./docs/README.md)**.
17
17
  Open it with `npx @cursor/july docs`, or at `/docs` on every running
18
18
  `agent-sdk serve` host. It covers getting started, concepts, guides (Slack,
19
- GitHub webhooks, approvals, agent-to-agent, cloud runtime), evals, live
20
- A/B metrics, hillclimbing, deployment, troubleshooting, and reference
21
- pages for each folder. This README is the compact package reference.
19
+ GitHub webhooks, approvals, agent-to-agent, cloud runtime), evals,
20
+ hillclimbing, deployment, troubleshooting, and reference pages for each
21
+ folder. This README is the compact package reference.
22
22
 
23
23
  Instead of one large configuration object, each part of the agent gets a
24
24
  clear home. Instructions go in one file, tools in one folder, channels in
@@ -49,8 +49,6 @@ my-agent/
49
49
  ├── result.ts # optional host commit on the final assistant text
50
50
  ├── otel.ts # optional OpenTelemetry export
51
51
  ├── playground/ # optional custom playground tool chips
52
- ├── ab.ts # optional live A/B experiment
53
- ├── ab/ # optional: more experiments
54
52
  ├── schedules/
55
53
  │ └── heartbeat.md # cron-driven runs
56
54
  ├── sandbox/workspace/ # files seeded into each session's workspace
@@ -694,7 +692,7 @@ name.
694
692
 
695
693
  Requirements and behavior:
696
694
 
697
- - The host must be signed in (`agent-sdk login` or `CURSOR_API_KEY`);
695
+ - The host must be signed in (`agent-sdk login`, `CURSOR_API_KEY`, or `CURSOR_SERVICE_ACCOUNT_KEY`);
698
696
  `serve` fails fast at startup otherwise, and logs each connector's live
699
697
  status (`connected` / `needsAuth` / `error`) as it starts.
700
698
  - Local turns and host-side calls go through a loopback bridge route guarded
@@ -981,8 +979,10 @@ under `serve --dev`, which admits unsigned loopback deliveries so
981
979
  `{ auth }` to start a model turn as the actor, `{ task }` for host-side work
982
980
  (202 ACK, runs past GitHub's ~10s timeout), or `null` to skip.
983
981
 
984
- **Testing GitHub agents locally.** `cursorAccount` reuses `agent-sdk login`
985
- for both Cursor SCM events and a refreshing repo-scoped GitHub credential used
982
+ **Testing GitHub agents locally.** `cursorAccount` uses the host Cursor
983
+ credential (`agent-sdk login`, `CURSOR_API_KEY`, or
984
+ `CURSOR_SERVICE_ACCOUNT_KEY`) for both Cursor SCM events and a refreshing
985
+ repo-scoped GitHub credential used
986
986
  by `ctx.github`, `ctx.host.github`, and child `gh` commands. Default
987
987
  `permissions: "pr-write"` covers comments without `contents:write`; opt up to
988
988
  `"contents-write"` when the agent must push or post merge-box checks.
@@ -1066,7 +1066,7 @@ Cursor GitHub App is on the repo, `serve --cursor-events --repo owner/repo`
1066
1066
  long-polls `/v0/scm-events` with the host's Cursor account (no public URL /
1067
1067
  repo admin). Offset + consumer id live under `<state-root>/cursor-events/`.
1068
1068
  The stream is read as your Cursor user, so the flag **requires a signed-in
1069
- host** (`agent-sdk login`, `CURSOR_API_KEY`, or `serve({ apiKey })`).
1069
+ host** (`agent-sdk login`, `CURSOR_API_KEY`, `CURSOR_SERVICE_ACCOUNT_KEY`, or `serve({ apiKey })`).
1070
1070
  Serve fails fast rather than starting with a relay that can never receive
1071
1071
  events.
1072
1072
 
@@ -1152,7 +1152,6 @@ The NDJSON stream vocabulary: one JSON object per line, each carrying
1152
1152
  | --------------------- | -------------------------------------------------------------- |
1153
1153
  | `session.started` | A durable session was created. |
1154
1154
  | `agent.bound` | Cloud conversation URL. |
1155
- | `ab.assigned` | Sticky A/B enrollment (`experiment`, `variant` or `null` skip). |
1156
1155
  | `message.received` | An inbound user message was accepted. |
1157
1156
  | `turn.started` | A turn began. |
1158
1157
  | `step.started` / `step.completed` | Model step boundaries (with duration). |
@@ -1187,7 +1186,10 @@ console.log(`listening on ${handle.url}`);
1187
1186
 
1188
1187
  The Cursor credential resolves in one order everywhere (SDK turns, cloud
1189
1188
  runtime, Cursor account MCP connections): explicit `apiKey` option / `--api-key`
1190
- → `CURSOR_API_KEY` → the key stored by `agent-sdk login`. `whoami` shows
1189
+ → `CURSOR_API_KEY` → `CURSOR_API_KEY_FILE` (hosted default
1190
+ `/run/cursor/secrets/CURSOR_API_KEY` when unset) → `CURSOR_SERVICE_ACCOUNT_KEY`
1191
+ → the key stored by `agent-sdk login`. A bind file wins over
1192
+ `CURSOR_SERVICE_ACCOUNT_KEY`. `whoami` shows
1191
1193
  which one is active; `logout` removes the stored key (revoke it in the
1192
1194
  Cursor dashboard to kill it outright).
1193
1195
 
@@ -63,6 +63,7 @@ Usage:
63
63
  ${CLI} session <sessionId> [--url <baseUrl> | --prod]
64
64
  [--json | --text | --events] [--out <file.ndjson>]
65
65
  [--slug <slug>] [--team <id>] [--dir <path>]
66
+ or: --prod [<sessionId>] --slug <slug> --message "…" [--dry-run] [--as-of <instant>]
66
67
  ${CLI} cost [sessionId] [--url <baseUrl> | --prod] [--json]
67
68
  [--slug <slug>] [--team <id>] [--dir <path>]
68
69
  ${CLI} playground [--url <baseUrl> | --prod] [--session <id>] [--print]
@@ -72,6 +73,7 @@ Usage:
72
73
  [--session <id>] [--continuation-token <t>]
73
74
  [--events <file.ndjson>] [--no-events] [--text]
74
75
  [--timeout-ms <n>] [--no-stream] [--slug <slug>] [--team <id>]
76
+ [--dry-run] [--as-of <instant>]
75
77
  ${CLI} trajectory --events <file.ndjson> [--text]
76
78
  ${CLI} call <tool> [--input <json>] [--dir <path> | --url <baseUrl> | --prod]
77
79
  [--session <id>] [--slug <slug>] [--team <id>]
@@ -161,6 +163,10 @@ Commands:
161
163
  Writes a single events.ndjson trace (summarize with trajectory).
162
164
  Streams tool calls and reply text to stderr when stderr is a TTY.
163
165
  Pass --prod to hit the hosted deployment instead of a local server.
166
+ On an AgentSDK v2 slug, --prod starts a hosted session through
167
+ the control plane (Temporal, no resident engine); --session
168
+ ses_… resumes that exact session. A 404 falls back to the v1
169
+ engine alias.
164
170
  trajectory Summarize an events.ndjson file into a trajectory.
165
171
  call Call an authored server tool deterministically (no model turn)
166
172
  via POST /v1/tools/:toolName. --session runs it inside an
@@ -275,8 +281,11 @@ Options:
275
281
  ALB/ECS checks; use single when one agent is the whole host.
276
282
  --dev Dev mode: mounts POST /v1/dev/schedules/:scheduleId and
277
283
  disables the cron runner (dispatch schedules by hand).
278
- --api-key Cursor API key (defaults to CURSOR_API_KEY, then the
279
- stored \`${CLI} login\` credential).
284
+ --api-key Cursor API key (defaults to CURSOR_API_KEY, then
285
+ CURSOR_API_KEY_FILE hosted default
286
+ /run/cursor/secrets/CURSOR_API_KEY when unset —
287
+ then CURSOR_SERVICE_ACCOUNT_KEY, then the stored
288
+ \`${CLI} login\` credential).
280
289
  --key-name login: label for the minted API key (defaults to
281
290
  "${CLI} (<hostname>)").
282
291
  --state-root Durable state directory (default <dir>/.agent-serve). Put it
@@ -325,6 +334,9 @@ Options:
325
334
  --dir basename. Mutually exclusive with --url. Requires
326
335
  \`${CLI} login\`. For eval, this is how you opt into the
327
336
  persisted server-side batch (default is local).
337
+ --dry-run run/session --prod: mark the hosted v2 turn non-mutating.
338
+ --as-of run/session --prod: freeze the session clock at this
339
+ timezone-bearing ISO-8601 instant.
328
340
  --once logs: print current progress / log buffer once and exit
329
341
  (default is to follow).
330
342
  --print playground/docs: print the URL only; do not open a
@@ -436,7 +448,7 @@ function writeStdout(text) {
436
448
  function main(argv) {
437
449
  return __awaiter(this, void 0, void 0, function* () {
438
450
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
439
- var _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
451
+ var _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
440
452
  const [command, ...restIn] = argv;
441
453
  if (command === undefined ||
442
454
  command === "help" ||
@@ -531,6 +543,7 @@ function main(argv) {
531
543
  context: { type: "string" },
532
544
  comment: { type: "string" },
533
545
  "dry-run": { type: "boolean", default: false },
546
+ "as-of": { type: "string" },
534
547
  out: { type: "string" },
535
548
  team: { type: "string" },
536
549
  "no-wait": { type: "boolean", default: false },
@@ -817,6 +830,8 @@ function main(argv) {
817
830
  stateRoot: values["state-root"],
818
831
  timeoutMs: parseTimeoutMs(values["timeout-ms"]),
819
832
  stream: values["no-stream"] ? false : undefined,
833
+ dryRun: values["dry-run"],
834
+ asOf: values["as-of"],
820
835
  }));
821
836
  }
822
837
  case "call": {
@@ -963,6 +978,7 @@ function main(argv) {
963
978
  }));
964
979
  }
965
980
  case "session": {
981
+ const messages = yield loadMessages(values.message, values["messages-file"]);
966
982
  return cmdSession(positionals[0], axFromOptions({
967
983
  dir,
968
984
  url: values.url,
@@ -975,10 +991,14 @@ function main(argv) {
975
991
  text: values.text,
976
992
  rawEvents: values["raw-events"],
977
993
  out: values.out,
994
+ messages,
995
+ sessionId: (_s = values["session-id"]) !== null && _s !== void 0 ? _s : values.session,
996
+ dryRun: values["dry-run"],
997
+ asOf: values["as-of"],
978
998
  }));
979
999
  }
980
1000
  case "cost": {
981
- return cmdCost((_t = (_s = positionals[0]) !== null && _s !== void 0 ? _s : values["session-id"]) !== null && _t !== void 0 ? _t : values.session, axFromOptions({
1001
+ return cmdCost((_u = (_t = positionals[0]) !== null && _t !== void 0 ? _t : values["session-id"]) !== null && _u !== void 0 ? _u : values.session, axFromOptions({
982
1002
  dir,
983
1003
  url: values.url,
984
1004
  prod: values.prod,
@@ -998,7 +1018,7 @@ function main(argv) {
998
1018
  apiKey: values["api-key"],
999
1019
  slug: values.slug,
1000
1020
  bearerToken: values["bearer-token"],
1001
- sessionId: (_u = values["session-id"]) !== null && _u !== void 0 ? _u : values.session,
1021
+ sessionId: (_v = values["session-id"]) !== null && _v !== void 0 ? _v : values.session,
1002
1022
  print: values.print,
1003
1023
  }));
1004
1024
  }
@@ -1067,8 +1087,8 @@ function main(argv) {
1067
1087
  "(events only)"}`)));
1068
1088
  lines.push(section("schedules", info.schedules.map((s) => `${s.name} (${s.cron}, ${s.kind})`)));
1069
1089
  lines.push(section("hooks", info.hooks));
1070
- lines.push(section("hosting egress domains", (_v = (_j = info.hosting) === null || _j === void 0 ? void 0 : _j.egressDomains) !== null && _v !== void 0 ? _v : []));
1071
- lines.push(section("hosting secret names", (_w = (_k = info.hosting) === null || _k === void 0 ? void 0 : _k.secretNames) !== null && _w !== void 0 ? _w : []));
1090
+ lines.push(section("hosting egress domains", (_w = (_j = info.hosting) === null || _j === void 0 ? void 0 : _j.egressDomains) !== null && _w !== void 0 ? _w : []));
1091
+ lines.push(section("hosting secret names", (_x = (_k = info.hosting) === null || _k === void 0 ? void 0 : _k.secretNames) !== null && _x !== void 0 ? _x : []));
1072
1092
  if (info.diagnostics.length > 0) {
1073
1093
  lines.push(`\ndiagnostics:\n${formatDiagnostics(info.diagnostics)}`);
1074
1094
  }
@@ -1138,7 +1158,7 @@ function main(argv) {
1138
1158
  publicUrl: values["public-url"],
1139
1159
  cloudToolsUrl: values["cloud-tools-url"],
1140
1160
  cursorEvents: values["cursor-events"] === true
1141
- ? { repos: (_x = values.repo) !== null && _x !== void 0 ? _x : [] }
1161
+ ? { repos: (_y = values.repo) !== null && _y !== void 0 ? _y : [] }
1142
1162
  : undefined,
1143
1163
  // Soft boot logs stay secondary to the banner. `dim` is a no-op on
1144
1164
  // already-styled lines (the MCP warning box).
@@ -1247,6 +1267,8 @@ function axFromOptions(partial) {
1247
1267
  sessionId: partial.sessionId,
1248
1268
  resume: partial.resume,
1249
1269
  continuationToken: partial.continuationToken,
1270
+ dryRun: partial.dryRun,
1271
+ asOf: partial.asOf,
1250
1272
  timeoutMs: partial.timeoutMs,
1251
1273
  events: partial.events,
1252
1274
  text: partial.text,
@@ -136,6 +136,8 @@ export interface BitbucketApiPullRequest {
136
136
  title?: string;
137
137
  description?: string;
138
138
  state?: string;
139
+ draft?: boolean;
140
+ authorUsername?: string;
139
141
  sourceBranch?: string;
140
142
  targetBranch?: string;
141
143
  headSha?: string;
@@ -143,6 +145,18 @@ export interface BitbucketApiPullRequest {
143
145
  htmlUrl?: string;
144
146
  raw: unknown;
145
147
  }
148
+ export interface BitbucketApiChangedFile {
149
+ path: string;
150
+ previousPath?: string;
151
+ status: "added" | "modified" | "removed" | "renamed";
152
+ patch?: string;
153
+ }
154
+ export interface BitbucketPullRequestDiffInput {
155
+ headSha?: string;
156
+ baseSha?: string;
157
+ mergeBaseSha?: string;
158
+ mergeBaseResolved?: boolean;
159
+ }
146
160
  /**
147
161
  * The handful of operations review products need, implemented once per
148
162
  * dialect. `ctx.bitbucket.api` is the repo-bound instance.
@@ -159,6 +173,29 @@ export interface BitbucketApi {
159
173
  /** Raw file contents at `ref` (branch, tag, or SHA). */
160
174
  getFileAtRef(path: string, ref: string): Promise<string>;
161
175
  }
176
+ export interface BitbucketPullRequestReadApi {
177
+ getPullRequest(id: number): Promise<BitbucketApiPullRequest>;
178
+ getMergeBaseSha(id: number, base: string, headSha: string): Promise<string | undefined>;
179
+ listChangedFiles(id: number, input?: BitbucketPullRequestDiffInput): Promise<BitbucketApiChangedFile[]>;
180
+ }
181
+ export interface BitbucketPullRequestReadClient {
182
+ readonly repository: BitbucketRepositoryRef;
183
+ readonly api: Pick<BitbucketApi, "getPullRequest" | "getPullRequestDiff">;
184
+ request<T = unknown>(input: BitbucketRequestInput): Promise<T>;
185
+ }
186
+ export type BitbucketPullRequestReadDiagnostic = {
187
+ kind: "commit-expansion-failed";
188
+ sha: string;
189
+ error: unknown;
190
+ } | {
191
+ kind: "diff-fallback";
192
+ status: number;
193
+ } | {
194
+ kind: "metadata-fallback";
195
+ status: number;
196
+ };
197
+ /** Split a Git-style unified diff into normalized changed files. */
198
+ export declare function splitBitbucketUnifiedDiff(diff: string): BitbucketApiChangedFile[];
162
199
  /** `/repositories/{workspace}/{slug}` — Bitbucket Cloud 2.0. */
163
200
  export declare function bitbucketCloudRepoPath(repository: {
164
201
  owner: string;
@@ -169,6 +206,10 @@ export declare function bitbucketDataCenterRepoPath(repository: {
169
206
  owner: string;
170
207
  slug: string;
171
208
  }): string;
209
+ export declare function expandBitbucketCloudCommitSha(bitbucket: Pick<BitbucketClient, "request">, repository: Pick<BitbucketRepositoryRef, "owner" | "slug">, sha: string | undefined, onError?: (error: unknown) => void): Promise<string | undefined>;
210
+ export declare function createBitbucketPullRequestReadApi(bitbucket: BitbucketPullRequestReadClient, options?: {
211
+ onDiagnostic?: (diagnostic: BitbucketPullRequestReadDiagnostic) => void;
212
+ }): BitbucketPullRequestReadApi;
172
213
  export declare function cloudBitbucketApi(client: BitbucketClient, repository: BitbucketRepositoryRef): BitbucketApi;
173
214
  export declare function dcBitbucketApi(client: BitbucketClient, repository: BitbucketRepositoryRef): BitbucketApi;
174
215
  /** Pick the dialect implementation for `repository.dialect`. */
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE3E,eAAO,MAAM,oCAAoC,kCAChB,CAAC;AAElC,wEAAwE;AACxE,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AAExE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7E,yEAAyE;AACzE,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,KAAK,EAAE;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,EASA;CACF;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAEpE,yEAAyE;AACzE,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,qEAAqE;IACrE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACxC,gFAAgF;IAChF,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAChE;AAOD,kCAAkC;AAClC,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,GAAG,SAAS,CAgBrB;AAgBD,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,sBAA2B,GACnC,eAAe,CAiFjB;AAID,gFAAgF;AAChF,MAAM,MAAM,yBAAyB,GACjC,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,yBAAyB,CAAC;IACjC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;CACd;AAED,wEAAwE;AACxE,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7D,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACpE,sBAAsB,CACpB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,cAAc,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,wDAAwD;IACxD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,2BAA2B;IAC1C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7D,eAAe,CACb,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/B,gBAAgB,CACd,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,6BAA6B,GACpC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,GAAG,oBAAoB,CAAC,CAAC;IAC1E,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAChE;AAED,MAAM,MAAM,kCAAkC,GAC1C;IAAE,IAAI,EAAE,yBAAyB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAgFlD,oEAAoE;AACpE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,GACX,uBAAuB,EAAE,CAsC3B;AAmBD,gEAAgE;AAChE,wBAAgB,sBAAsB,CAAC,UAAU,EAAE;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAET;AAED,kEAAkE;AAClE,wBAAgB,2BAA2B,CAAC,UAAU,EAAE;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAET;AAED,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,EAC3C,UAAU,EAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,GAAG,MAAM,CAAC,EAC1D,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GACjC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc7B;AAiCD,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,8BAA8B,EACzC,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,kCAAkC,KAAK,IAAI,CAAC;CACpE,GACL,2BAA2B,CAyI7B;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,sBAAsB,GACjC,YAAY,CAgHd;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,sBAAsB,GACjC,YAAY,CA2Hd;AAED,gEAAgE;AAChE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,sBAAsB,GACjC,YAAY,CAId"}
@@ -166,6 +166,102 @@ function num(value) {
166
166
  ? value
167
167
  : undefined;
168
168
  }
169
+ function errorStatus(error) {
170
+ var _a;
171
+ return num((_a = asRecord(error)) === null || _a === void 0 ? void 0 : _a.status);
172
+ }
173
+ function bitbucketAuthorUsername(raw) {
174
+ var _a;
175
+ var _b, _c, _d, _e;
176
+ const author = asRecord((_a = asRecord(raw)) === null || _a === void 0 ? void 0 : _a.author);
177
+ const user = asRecord(author === null || author === void 0 ? void 0 : author.user);
178
+ return ((_e = (_d = (_c = (_b = str(author === null || author === void 0 ? void 0 : author.nickname)) !== null && _b !== void 0 ? _b : str(user === null || user === void 0 ? void 0 : user.name)) !== null && _c !== void 0 ? _c : str(user === null || user === void 0 ? void 0 : user.slug)) !== null && _d !== void 0 ? _d : str(author === null || author === void 0 ? void 0 : author.display_name)) !== null && _e !== void 0 ? _e : str(user === null || user === void 0 ? void 0 : user.displayName));
179
+ }
180
+ const GIT_PATH_ESCAPES = {
181
+ a: "\u0007",
182
+ b: "\b",
183
+ f: "\f",
184
+ n: "\n",
185
+ r: "\r",
186
+ t: "\t",
187
+ v: "\v",
188
+ "\\": "\\",
189
+ '"': '"',
190
+ };
191
+ function unescapeGitPath(path, quoted) {
192
+ var _a, _b;
193
+ if (!quoted) {
194
+ return path;
195
+ }
196
+ const bytes = [];
197
+ let output = "";
198
+ const flush = () => {
199
+ if (bytes.length > 0) {
200
+ output += Buffer.from(bytes).toString("utf8");
201
+ bytes.length = 0;
202
+ }
203
+ };
204
+ for (let index = 0; index < path.length; index += 1) {
205
+ const character = path[index];
206
+ if (character !== "\\") {
207
+ flush();
208
+ output += character;
209
+ continue;
210
+ }
211
+ const octal = /^[0-7]{1,3}/.exec(path.slice(index + 1));
212
+ if (octal !== null) {
213
+ bytes.push(Number.parseInt(octal[0], 8));
214
+ index += octal[0].length;
215
+ continue;
216
+ }
217
+ flush();
218
+ const next = (_a = path[index + 1]) !== null && _a !== void 0 ? _a : "";
219
+ output += (_b = GIT_PATH_ESCAPES[next]) !== null && _b !== void 0 ? _b : next;
220
+ index += 1;
221
+ }
222
+ flush();
223
+ return output;
224
+ }
225
+ /** Split a Git-style unified diff into normalized changed files. */
226
+ export function splitBitbucketUnifiedDiff(diff) {
227
+ var _a, _b, _c, _d;
228
+ const files = [];
229
+ const sections = diff.split(/^(?=diff --git )/m).filter(Boolean);
230
+ for (const section of sections) {
231
+ const lines = section.replace(/\n$/, "").split("\n");
232
+ const header = /^diff --git ("?)a\/(.+?)\1 ("?)b\/(.+?)\3$/.exec((_a = lines[0]) !== null && _a !== void 0 ? _a : "");
233
+ if (header === null) {
234
+ continue;
235
+ }
236
+ const oldPath = unescapeGitPath((_b = header[2]) !== null && _b !== void 0 ? _b : "", header[1] !== "");
237
+ const newPath = unescapeGitPath((_c = header[4]) !== null && _c !== void 0 ? _c : "", header[3] !== "");
238
+ let status = "modified";
239
+ let bodyStart = 1;
240
+ for (; bodyStart < lines.length; bodyStart += 1) {
241
+ const line = (_d = lines[bodyStart]) !== null && _d !== void 0 ? _d : "";
242
+ if (line.startsWith("@@")) {
243
+ break;
244
+ }
245
+ if (line === "--- /dev/null") {
246
+ status = "added";
247
+ }
248
+ else if (line === "+++ /dev/null") {
249
+ status = "removed";
250
+ }
251
+ }
252
+ if (status === "modified" && oldPath !== newPath) {
253
+ status = "renamed";
254
+ }
255
+ const patch = lines.slice(bodyStart).join("\n");
256
+ files.push({
257
+ path: newPath,
258
+ previousPath: status === "renamed" ? oldPath : undefined,
259
+ status,
260
+ patch: patch === "" ? undefined : patch,
261
+ });
262
+ }
263
+ return files;
264
+ }
169
265
  function encodePath(path) {
170
266
  return path
171
267
  .split("/")
@@ -187,6 +283,170 @@ export function bitbucketCloudRepoPath(repository) {
187
283
  export function bitbucketDataCenterRepoPath(repository) {
188
284
  return `/projects/${encodeURIComponent(repository.owner)}/repos/${encodeURIComponent(repository.slug)}`;
189
285
  }
286
+ export function expandBitbucketCloudCommitSha(bitbucket, repository, sha, onError) {
287
+ return __awaiter(this, void 0, void 0, function* () {
288
+ var _a;
289
+ if (sha === undefined || !/^[0-9a-f]{7,39}$/i.test(sha)) {
290
+ return sha;
291
+ }
292
+ try {
293
+ const commit = yield bitbucket.request({
294
+ method: "GET",
295
+ path: `${bitbucketCloudRepoPath(repository)}/commit/${encodeURIComponent(sha)}`,
296
+ });
297
+ return /^[0-9a-f]{40}$/i.test((_a = commit.hash) !== null && _a !== void 0 ? _a : "") ? commit.hash : sha;
298
+ }
299
+ catch (error) {
300
+ onError === null || onError === void 0 ? void 0 : onError(error);
301
+ return sha;
302
+ }
303
+ });
304
+ }
305
+ function bitbucketPullRequestFromRaw(raw, id, htmlUrl) {
306
+ var _a, _b, _c, _d, _e, _f, _g, _h;
307
+ var _j, _k, _l, _m;
308
+ const source = asRecord(raw.source);
309
+ const destination = asRecord(raw.destination);
310
+ return {
311
+ id,
312
+ title: str(raw.title),
313
+ description: str(raw.description),
314
+ state: str(raw.state),
315
+ draft: typeof raw.draft === "boolean" ? raw.draft : undefined,
316
+ authorUsername: bitbucketAuthorUsername(raw),
317
+ sourceBranch: (_j = str((_a = asRecord(source === null || source === void 0 ? void 0 : source.branch)) === null || _a === void 0 ? void 0 : _a.name)) !== null && _j !== void 0 ? _j : str((_b = asRecord(raw.fromRef)) === null || _b === void 0 ? void 0 : _b.displayId),
318
+ targetBranch: (_k = str((_c = asRecord(destination === null || destination === void 0 ? void 0 : destination.branch)) === null || _c === void 0 ? void 0 : _c.name)) !== null && _k !== void 0 ? _k : str((_d = asRecord(raw.toRef)) === null || _d === void 0 ? void 0 : _d.displayId),
319
+ headSha: (_l = str((_e = asRecord(source === null || source === void 0 ? void 0 : source.commit)) === null || _e === void 0 ? void 0 : _e.hash)) !== null && _l !== void 0 ? _l : str((_f = asRecord(raw.fromRef)) === null || _f === void 0 ? void 0 : _f.latestCommit),
320
+ baseSha: (_m = str((_g = asRecord(destination === null || destination === void 0 ? void 0 : destination.commit)) === null || _g === void 0 ? void 0 : _g.hash)) !== null && _m !== void 0 ? _m : str((_h = asRecord(raw.toRef)) === null || _h === void 0 ? void 0 : _h.latestCommit),
321
+ htmlUrl,
322
+ raw,
323
+ };
324
+ }
325
+ export function createBitbucketPullRequestReadApi(bitbucket, options = {}) {
326
+ const { repository } = bitbucket;
327
+ const repo = repository.dialect === "cloud"
328
+ ? bitbucketCloudRepoPath(repository)
329
+ : bitbucketDataCenterRepoPath(repository);
330
+ const cloudPullRequestFromActivity = (id) => __awaiter(this, void 0, void 0, function* () {
331
+ var _a;
332
+ let path = `${repo}/pullrequests/${id}/activity`;
333
+ let query = { pagelen: 50 };
334
+ for (let page = 0; page < 20; page += 1) {
335
+ const response = yield bitbucket.request({
336
+ method: "GET",
337
+ path,
338
+ query,
339
+ });
340
+ for (const value of Array.isArray(response.values)
341
+ ? response.values
342
+ : []) {
343
+ const update = asRecord((_a = asRecord(value)) === null || _a === void 0 ? void 0 : _a.update);
344
+ if (update !== undefined) {
345
+ return bitbucketPullRequestFromRaw(update, id);
346
+ }
347
+ }
348
+ const next = str(response.next);
349
+ if (next === undefined) {
350
+ return undefined;
351
+ }
352
+ const nextUrl = new URL(next);
353
+ const marker = nextUrl.pathname.indexOf("/repositories/");
354
+ path = marker === -1 ? nextUrl.pathname : nextUrl.pathname.slice(marker);
355
+ query = Object.fromEntries(nextUrl.searchParams.entries());
356
+ }
357
+ return undefined;
358
+ });
359
+ return {
360
+ getPullRequest(id) {
361
+ return __awaiter(this, void 0, void 0, function* () {
362
+ var _a, _b;
363
+ let pullRequest;
364
+ try {
365
+ pullRequest = yield bitbucket.api.getPullRequest(id);
366
+ }
367
+ catch (error) {
368
+ const status = errorStatus(error);
369
+ if (repository.dialect !== "cloud" ||
370
+ status === undefined ||
371
+ status < 500) {
372
+ throw error;
373
+ }
374
+ (_a = options.onDiagnostic) === null || _a === void 0 ? void 0 : _a.call(options, { kind: "metadata-fallback", status });
375
+ const fallback = yield cloudPullRequestFromActivity(id);
376
+ if (fallback === undefined) {
377
+ throw error;
378
+ }
379
+ pullRequest = fallback;
380
+ }
381
+ const normalized = Object.assign(Object.assign({}, pullRequest), { draft: ((_b = asRecord(pullRequest.raw)) === null || _b === void 0 ? void 0 : _b.draft) === true, authorUsername: bitbucketAuthorUsername(pullRequest.raw) });
382
+ if (repository.dialect !== "cloud") {
383
+ return normalized;
384
+ }
385
+ const [headSha, baseSha] = yield Promise.all([
386
+ expandBitbucketCloudCommitSha(bitbucket, repository, pullRequest.headSha, (error) => { var _a; return pullRequest.headSha === undefined
387
+ ? undefined
388
+ : (_a = options.onDiagnostic) === null || _a === void 0 ? void 0 : _a.call(options, {
389
+ kind: "commit-expansion-failed",
390
+ sha: pullRequest.headSha,
391
+ error,
392
+ }); }),
393
+ expandBitbucketCloudCommitSha(bitbucket, repository, pullRequest.baseSha, (error) => { var _a; return pullRequest.baseSha === undefined
394
+ ? undefined
395
+ : (_a = options.onDiagnostic) === null || _a === void 0 ? void 0 : _a.call(options, {
396
+ kind: "commit-expansion-failed",
397
+ sha: pullRequest.baseSha,
398
+ error,
399
+ }); }),
400
+ ]);
401
+ return Object.assign(Object.assign({}, normalized), { headSha, baseSha });
402
+ });
403
+ },
404
+ getMergeBaseSha(id, base, headSha) {
405
+ return __awaiter(this, void 0, void 0, function* () {
406
+ if (repository.dialect === "cloud") {
407
+ const commit = yield bitbucket.request({
408
+ method: "GET",
409
+ path: `${repo}/merge-base/${encodeURIComponent(headSha)}..${encodeURIComponent(base)}`,
410
+ });
411
+ return str(commit.hash);
412
+ }
413
+ const commit = yield bitbucket.request({
414
+ method: "GET",
415
+ path: `${repo}/pull-requests/${id}/merge-base`,
416
+ });
417
+ return str(commit.id);
418
+ });
419
+ },
420
+ listChangedFiles(id, input) {
421
+ return __awaiter(this, void 0, void 0, function* () {
422
+ var _a;
423
+ var _b;
424
+ try {
425
+ return splitBitbucketUnifiedDiff(yield bitbucket.api.getPullRequestDiff(id));
426
+ }
427
+ catch (error) {
428
+ const status = errorStatus(error);
429
+ const comparisonBase = (_b = input === null || input === void 0 ? void 0 : input.mergeBaseSha) !== null && _b !== void 0 ? _b : input === null || input === void 0 ? void 0 : input.baseSha;
430
+ if (repository.dialect !== "cloud" ||
431
+ status === undefined ||
432
+ status < 500 ||
433
+ (input === null || input === void 0 ? void 0 : input.headSha) === undefined ||
434
+ comparisonBase === undefined) {
435
+ throw error;
436
+ }
437
+ (_a = options.onDiagnostic) === null || _a === void 0 ? void 0 : _a.call(options, { kind: "diff-fallback", status });
438
+ const diff = yield bitbucket.request({
439
+ method: "GET",
440
+ path: `${repo}/diff/${encodeURIComponent(input.headSha)}..${encodeURIComponent(comparisonBase)}`,
441
+ query: { topic: input.mergeBaseResolved === true ? "false" : "true" },
442
+ accept: "text/plain",
443
+ });
444
+ return splitBitbucketUnifiedDiff(diff);
445
+ }
446
+ });
447
+ },
448
+ };
449
+ }
190
450
  export function cloudBitbucketApi(client, repository) {
191
451
  const repo = bitbucketCloudRepoPath(repository);
192
452
  const mapComment = (raw) => {
@@ -59,6 +59,10 @@ export declare function bitbucketRepositoryFromPayload(payload: Record<string, u
59
59
  /** Cloud `{uuid, display_name, nickname}` or DC `{id, name, displayName}`. */
60
60
  export declare function bitbucketUser(value: unknown): BitbucketUser | undefined;
61
61
  export declare function bitbucketPullRequestUrl(repository: BitbucketRepositoryRef, id: number, explicit?: string): string;
62
+ /** Absolute PR URL, or undefined when a Data Center payload has no repo URL. */
63
+ export declare function bitbucketAbsolutePullRequestUrl(repository: BitbucketRepositoryRef, id: number, explicit?: string): string | undefined;
64
+ /** Whether a Data Center `updated` payload publishes a draft pull request. */
65
+ export declare function bitbucketDraftMarkedReady(payload: Record<string, unknown>, draft: boolean | undefined): boolean;
62
66
  /**
63
67
  * Normalize the pull request from either dialect. `action` is the suffix of
64
68
  * the Cloud-normalized event key (`pullrequest:created` → `created`).
@@ -1 +1 @@
1
- {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/binding.ts"],"names":[],"mappings":"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"}