@cursor/july 0.1.102 → 0.1.103

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (715) hide show
  1. package/AGENTS.md +34 -32
  2. package/README.md +10 -12
  3. package/dist/ab.d.ts +1 -1
  4. package/dist/ab.js +1 -1
  5. package/dist/bin/agent-serve.d.ts +12 -12
  6. package/dist/bin/agent-serve.js +114 -36
  7. package/dist/channels/bitbucket/api.d.ts +176 -0
  8. package/dist/channels/bitbucket/api.d.ts.map +1 -0
  9. package/dist/channels/bitbucket/api.js +419 -0
  10. package/dist/channels/bitbucket/binding.d.ts +71 -0
  11. package/dist/channels/bitbucket/binding.d.ts.map +1 -0
  12. package/dist/channels/bitbucket/binding.js +269 -0
  13. package/dist/channels/bitbucket/bitbucket-channel.d.ts +33 -0
  14. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -0
  15. package/dist/channels/bitbucket/bitbucket-channel.js +120 -0
  16. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +61 -0
  17. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -0
  18. package/dist/channels/bitbucket/bitbucket-webhook.js +394 -0
  19. package/dist/channels/bitbucket/checks.d.ts +67 -0
  20. package/dist/channels/bitbucket/checks.d.ts.map +1 -0
  21. package/dist/channels/bitbucket/checks.js +102 -0
  22. package/dist/channels/bitbucket/cursor-account.d.ts +37 -0
  23. package/dist/channels/bitbucket/cursor-account.d.ts.map +1 -0
  24. package/dist/channels/bitbucket/cursor-account.js +65 -0
  25. package/dist/channels/bitbucket/defaults.d.ts +26 -0
  26. package/dist/channels/bitbucket/defaults.d.ts.map +1 -0
  27. package/dist/channels/bitbucket/defaults.js +73 -0
  28. package/dist/channels/bitbucket/events.d.ts +22 -0
  29. package/dist/channels/bitbucket/events.d.ts.map +1 -0
  30. package/dist/channels/bitbucket/events.js +64 -0
  31. package/dist/channels/bitbucket/index.d.ts +34 -0
  32. package/dist/channels/bitbucket/index.d.ts.map +1 -0
  33. package/dist/channels/bitbucket/index.js +33 -0
  34. package/dist/channels/bitbucket/replay.d.ts +63 -0
  35. package/dist/channels/bitbucket/replay.d.ts.map +1 -0
  36. package/dist/channels/bitbucket/replay.js +304 -0
  37. package/dist/channels/bitbucket/state.d.ts +35 -0
  38. package/dist/channels/bitbucket/state.d.ts.map +1 -0
  39. package/dist/channels/bitbucket/state.js +21 -0
  40. package/dist/channels/bitbucket/types.d.ts +229 -0
  41. package/dist/channels/bitbucket/types.d.ts.map +1 -0
  42. package/dist/channels/bitbucket/types.js +1 -0
  43. package/dist/channels/deployments/deployments-channel.d.ts +22 -14
  44. package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
  45. package/dist/channels/deployments/deployments-channel.js +25 -27
  46. package/dist/channels/deployments/types.d.ts +12 -6
  47. package/dist/channels/deployments/types.d.ts.map +1 -1
  48. package/dist/channels/github/binding.d.ts +6 -0
  49. package/dist/channels/github/binding.d.ts.map +1 -1
  50. package/dist/channels/github/binding.js +3 -3
  51. package/dist/channels/github/cursor-account.d.ts +7 -3
  52. package/dist/channels/github/cursor-account.d.ts.map +1 -1
  53. package/dist/channels/github/cursor-account.js +10 -6
  54. package/dist/channels/github/events.d.ts +1 -1
  55. package/dist/channels/github/events.js +1 -1
  56. package/dist/channels/github/forward.d.ts +1 -1
  57. package/dist/channels/github/forward.d.ts.map +1 -1
  58. package/dist/channels/github/forward.js +3 -2
  59. package/dist/channels/github/github-channel.d.ts +29 -39
  60. package/dist/channels/github/github-channel.d.ts.map +1 -1
  61. package/dist/channels/github/github-channel.js +68 -101
  62. package/dist/channels/github/replay.d.ts +1 -1
  63. package/dist/channels/github/replay.js +1 -1
  64. package/dist/channels/github/state.d.ts +2 -0
  65. package/dist/channels/github/state.d.ts.map +1 -1
  66. package/dist/channels/github/state.js +14 -11
  67. package/dist/channels/github/types.d.ts +2 -4
  68. package/dist/channels/github/types.d.ts.map +1 -1
  69. package/dist/channels/gitlab/api.d.ts +91 -0
  70. package/dist/channels/gitlab/api.d.ts.map +1 -0
  71. package/dist/channels/gitlab/api.js +150 -0
  72. package/dist/channels/gitlab/binding.d.ts +58 -0
  73. package/dist/channels/gitlab/binding.d.ts.map +1 -0
  74. package/dist/channels/gitlab/binding.js +139 -0
  75. package/dist/channels/gitlab/checks.d.ts +110 -0
  76. package/dist/channels/gitlab/checks.d.ts.map +1 -0
  77. package/dist/channels/gitlab/checks.js +126 -0
  78. package/dist/channels/gitlab/cursor-account.d.ts +36 -0
  79. package/dist/channels/gitlab/cursor-account.d.ts.map +1 -0
  80. package/dist/channels/gitlab/cursor-account.js +65 -0
  81. package/dist/channels/gitlab/defaults.d.ts +25 -0
  82. package/dist/channels/gitlab/defaults.d.ts.map +1 -0
  83. package/dist/channels/gitlab/defaults.js +60 -0
  84. package/dist/channels/gitlab/events.d.ts +12 -0
  85. package/dist/channels/gitlab/events.d.ts.map +1 -0
  86. package/dist/channels/gitlab/events.js +28 -0
  87. package/dist/channels/gitlab/gitlab-channel.d.ts +33 -0
  88. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -0
  89. package/dist/channels/gitlab/gitlab-channel.js +120 -0
  90. package/dist/channels/gitlab/gitlab-webhook.d.ts +45 -0
  91. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -0
  92. package/dist/channels/gitlab/gitlab-webhook.js +397 -0
  93. package/dist/channels/gitlab/index.d.ts +31 -0
  94. package/dist/channels/gitlab/index.d.ts.map +1 -0
  95. package/dist/channels/gitlab/index.js +30 -0
  96. package/dist/channels/gitlab/replay.d.ts +105 -0
  97. package/dist/channels/gitlab/replay.d.ts.map +1 -0
  98. package/dist/channels/gitlab/replay.js +206 -0
  99. package/dist/channels/gitlab/state.d.ts +33 -0
  100. package/dist/channels/gitlab/state.d.ts.map +1 -0
  101. package/dist/channels/gitlab/state.js +23 -0
  102. package/dist/channels/gitlab/types.d.ts +214 -0
  103. package/dist/channels/gitlab/types.d.ts.map +1 -0
  104. package/dist/channels/gitlab/types.js +1 -0
  105. package/dist/channels/origin/api.d.ts.map +1 -1
  106. package/dist/channels/origin/api.js +4 -2
  107. package/dist/channels/origin/origin-channel.d.ts +4 -9
  108. package/dist/channels/origin/origin-channel.d.ts.map +1 -1
  109. package/dist/channels/origin/origin-channel.js +8 -48
  110. package/dist/channels/origin/types.d.ts +20 -2
  111. package/dist/channels/origin/types.d.ts.map +1 -1
  112. package/dist/channels/slack/eval-directive.d.ts.map +1 -1
  113. package/dist/channels/slack/eval-directive.js +1 -7
  114. package/dist/channels/slack/init.d.ts.map +1 -1
  115. package/dist/channels/slack/init.js +3 -3
  116. package/dist/channels/slack/setup.d.ts +1 -1
  117. package/dist/channels/slack/setup.d.ts.map +1 -1
  118. package/dist/channels/slack/setup.js +6 -13
  119. package/dist/channels/slack/types.d.ts +1 -1
  120. package/dist/channels/slack/types.d.ts.map +1 -1
  121. package/dist/channels.d.ts +1 -1
  122. package/dist/channels.d.ts.map +1 -1
  123. package/dist/client.d.ts +1 -1
  124. package/dist/client.js +1 -1
  125. package/dist/connections.d.ts +1 -1
  126. package/dist/connections.js +1 -1
  127. package/dist/docs/404.html +2 -2
  128. package/dist/docs/ab.html +4 -4
  129. package/dist/docs/assets/{app.CLA03RCz.js → app.DW9pXkpL.js} +1 -1
  130. package/dist/docs/assets/chunks/@localSearchIndexroot.nrl1ifBq.js +1 -0
  131. package/dist/docs/assets/chunks/{VPLocalSearchBox.ifxv-cJV.js → VPLocalSearchBox.CdEIUwDg.js} +1 -1
  132. package/dist/docs/assets/chunks/{theme.DWCwM6p-.js → theme.YZMHgPgg.js} +2 -2
  133. package/dist/docs/assets/concepts.md.DgEcZOfT.js +1 -0
  134. package/dist/docs/assets/{concepts.md.rPzW2HZN.lean.js → concepts.md.DgEcZOfT.lean.js} +1 -1
  135. package/dist/docs/assets/{evals.md.CPzDAwoH.js → evals.md.CbMoebP1.js} +1 -1
  136. package/dist/docs/assets/guides_cloud-agents.md.DS8RIjwx.js +9 -0
  137. package/dist/docs/assets/{guides_github.md.BtPr9GaP.js → guides_github.md.DKYiT9do.js} +1 -1
  138. package/dist/docs/assets/{guides_opentelemetry.md.BVTXDCRg.js → guides_opentelemetry.md.COh9jFVg.js} +7 -8
  139. package/dist/docs/assets/{guides_opentelemetry.md.BVTXDCRg.lean.js → guides_opentelemetry.md.COh9jFVg.lean.js} +1 -1
  140. package/dist/docs/assets/{index.md.Kiht7ell.js → index.md.D75GWhPl.js} +1 -1
  141. package/dist/docs/assets/{reference_agent-config.md.BHeYMgme.js → reference_agent-config.md.CHNpiyp4.js} +3 -3
  142. package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.js → reference_channels.md.Dz8Cnudp.js} +2 -2
  143. package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.lean.js → reference_channels.md.Dz8Cnudp.lean.js} +1 -1
  144. package/dist/docs/assets/{reference_cli.md.DfoeyvL0.js → reference_cli.md.CJNc_xYK.js} +1 -1
  145. package/dist/docs/assets/{reference_extensions.md.9WQMZe1l.js → reference_extensions.md.DykHW3qL.js} +11 -5
  146. package/dist/docs/assets/reference_extensions.md.DykHW3qL.lean.js +1 -0
  147. package/dist/docs/assets/reference_hooks.md.Ddt5DdgJ.js +73 -0
  148. package/dist/docs/assets/{reference_hooks.md.a8BJxMR5.lean.js → reference_hooks.md.Ddt5DdgJ.lean.js} +1 -1
  149. package/dist/docs/assets/{reference_playground.md.DnX5nL-B.js → reference_playground.md.4myJPxrf.js} +1 -1
  150. package/dist/docs/assets/{reference_project-layout.md.CA6QP6Lw.js → reference_project-layout.md.DuBu9a96.js} +2 -2
  151. package/dist/docs/assets/reference_result.md.BK5SxDrf.js +19 -0
  152. package/dist/docs/assets/reference_result.md.BK5SxDrf.lean.js +1 -0
  153. package/dist/docs/assets/{reference_sessions.md.NxFP_CAC.js → reference_sessions.md.CueyOHSL.js} +1 -1
  154. package/dist/docs/assets/{reference_sessions.md.NxFP_CAC.lean.js → reference_sessions.md.CueyOHSL.lean.js} +1 -1
  155. package/dist/docs/assets/{reference_tools.md.B1up2r9W.js → reference_tools.md.aGrn99hP.js} +1 -1
  156. package/dist/docs/assets/skills_framework-map.md.haibFyoB.js +1 -0
  157. package/dist/docs/assets/{skills_otel.md.CgiZryR3.js → skills_otel.md.CqhobH3B.js} +3 -3
  158. package/dist/docs/assets/{skills_otel.md.CgiZryR3.lean.js → skills_otel.md.CqhobH3B.lean.js} +1 -1
  159. package/dist/docs/assets/{templates_pr-autofixer.md.x5zl6-GT.js → templates_pr-autofixer.md.Bds_XWcV.js} +2 -2
  160. package/dist/docs/assets/{templates_pr-autofixer.md.x5zl6-GT.lean.js → templates_pr-autofixer.md.Bds_XWcV.lean.js} +1 -1
  161. package/dist/docs/building-with-agents.html +4 -4
  162. package/dist/docs/concepts.html +5 -5
  163. package/dist/docs/concepts.md +2 -4
  164. package/dist/docs/deployment.html +4 -4
  165. package/dist/docs/design/runtime-abstraction.md +2 -3
  166. package/dist/docs/evals.html +6 -6
  167. package/dist/docs/evals.md +9 -7
  168. package/dist/docs/guides/agent-to-agent.html +4 -4
  169. package/dist/docs/guides/cloud-agents.html +6 -6
  170. package/dist/docs/guides/cloud-agents.md +4 -6
  171. package/dist/docs/guides/convert-automation.html +4 -4
  172. package/dist/docs/guides/github.html +6 -6
  173. package/dist/docs/guides/github.md +0 -1
  174. package/dist/docs/guides/human-in-the-loop.html +4 -4
  175. package/dist/docs/guides/mcp-oauth.html +5 -5
  176. package/dist/docs/guides/opentelemetry.html +10 -11
  177. package/dist/docs/guides/opentelemetry.md +41 -17
  178. package/dist/docs/guides/slack.html +4 -4
  179. package/dist/docs/guides/webhooks.html +4 -4
  180. package/dist/docs/hashmap.json +1 -1
  181. package/dist/docs/hillclimbing.html +4 -4
  182. package/dist/docs/index.html +6 -6
  183. package/dist/docs/index.md +2 -2
  184. package/dist/docs/llms-full.txt +501 -262
  185. package/dist/docs/llms.txt +2 -2
  186. package/dist/docs/quickstart.html +4 -4
  187. package/dist/docs/reference/agent-config.html +8 -8
  188. package/dist/docs/reference/agent-config.md +6 -10
  189. package/dist/docs/reference/artifacts.html +5 -5
  190. package/dist/docs/reference/channels.html +6 -6
  191. package/dist/docs/reference/channels.md +18 -8
  192. package/dist/docs/reference/cli.html +5 -5
  193. package/dist/docs/reference/cli.md +3 -4
  194. package/dist/docs/reference/connections.html +4 -4
  195. package/dist/docs/reference/extensions.html +16 -10
  196. package/dist/docs/reference/extensions.md +86 -22
  197. package/dist/docs/reference/hooks.html +69 -10
  198. package/dist/docs/reference/hooks.md +215 -46
  199. package/dist/docs/reference/http-api.html +4 -4
  200. package/dist/docs/reference/instructions.html +4 -4
  201. package/dist/docs/reference/playground.html +5 -5
  202. package/dist/docs/reference/playground.md +3 -0
  203. package/dist/docs/reference/project-layout.html +6 -6
  204. package/dist/docs/reference/project-layout.md +2 -1
  205. package/dist/docs/reference/prompt.html +4 -4
  206. package/dist/docs/reference/result.html +45 -0
  207. package/dist/docs/reference/result.md +89 -0
  208. package/dist/docs/reference/schedules.html +4 -4
  209. package/dist/docs/reference/sessions.html +5 -5
  210. package/dist/docs/reference/sessions.md +3 -1
  211. package/dist/docs/reference/skills.html +4 -4
  212. package/dist/docs/reference/subagents.html +4 -4
  213. package/dist/docs/reference/tools.html +5 -5
  214. package/dist/docs/reference/tools.md +1 -2
  215. package/dist/docs/scaffolding-agents.html +4 -4
  216. package/dist/docs/skills/ab.html +4 -4
  217. package/dist/docs/skills/create-agent.html +4 -4
  218. package/dist/docs/skills/debug.html +4 -4
  219. package/dist/docs/skills/evals.html +4 -4
  220. package/dist/docs/skills/framework-map.html +5 -5
  221. package/dist/docs/skills/framework-map.md +3 -1
  222. package/dist/docs/skills/github.html +4 -4
  223. package/dist/docs/skills/hillclimb.html +4 -4
  224. package/dist/docs/skills/index.html +4 -4
  225. package/dist/docs/skills/mcp-auth.html +4 -4
  226. package/dist/docs/skills/otel.html +7 -7
  227. package/dist/docs/skills/otel.md +8 -3
  228. package/dist/docs/skills/setup-slack.html +4 -4
  229. package/dist/docs/storage.html +4 -4
  230. package/dist/docs/templates/agentic-owners.html +4 -4
  231. package/dist/docs/templates/agents-md.html +4 -4
  232. package/dist/docs/templates/code-wiki.html +4 -4
  233. package/dist/docs/templates/demo.html +4 -4
  234. package/dist/docs/templates/pr-autofixer.html +6 -6
  235. package/dist/docs/templates/pr-autofixer.md +0 -3
  236. package/dist/docs/templates/security-help.html +4 -4
  237. package/dist/docs/templates/security-reviewer.html +4 -4
  238. package/dist/docs/templates/triage.html +4 -4
  239. package/dist/docs/troubleshooting.html +4 -4
  240. package/dist/evals.d.ts +1 -1
  241. package/dist/evals.d.ts.map +1 -1
  242. package/dist/extensions.d.ts +20 -7
  243. package/dist/extensions.d.ts.map +1 -1
  244. package/dist/extensions.js +36 -5
  245. package/dist/files.d.ts +16 -3
  246. package/dist/files.d.ts.map +1 -1
  247. package/dist/files.js +16 -3
  248. package/dist/index.d.ts +4 -4
  249. package/dist/index.d.ts.map +1 -1
  250. package/dist/index.js +3 -3
  251. package/dist/internal/ab-snapshot.d.ts.map +1 -1
  252. package/dist/internal/ab-snapshot.js +0 -1
  253. package/dist/internal/advertise-tools.d.ts.map +1 -1
  254. package/dist/internal/advertise-tools.js +1 -3
  255. package/dist/internal/authored-alias-hooks.d.ts +4 -13
  256. package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
  257. package/dist/internal/authored-alias-hooks.js +4 -20
  258. package/dist/internal/authored-loaders.d.ts +2 -3
  259. package/dist/internal/authored-loaders.d.ts.map +1 -1
  260. package/dist/internal/authored-loaders.js +6 -20
  261. package/dist/internal/channel-dispatch.d.ts +43 -0
  262. package/dist/internal/channel-dispatch.d.ts.map +1 -0
  263. package/dist/internal/channel-dispatch.js +77 -0
  264. package/dist/internal/chat-client.d.ts +1 -1
  265. package/dist/internal/chat-client.js +1 -1
  266. package/dist/internal/cli-ax.d.ts +5 -5
  267. package/dist/internal/cli-ax.d.ts.map +1 -1
  268. package/dist/internal/cli-ax.js +5 -5
  269. package/dist/internal/cli-bitbucket.d.ts +33 -0
  270. package/dist/internal/cli-bitbucket.d.ts.map +1 -0
  271. package/dist/internal/cli-bitbucket.js +359 -0
  272. package/dist/internal/cli-convert-automation.d.ts +1 -1
  273. package/dist/internal/cli-convert-automation.js +2 -2
  274. package/dist/internal/cli-cursor.d.ts +1 -1
  275. package/dist/internal/cli-cursor.d.ts.map +1 -1
  276. package/dist/internal/cli-cursor.js +2 -4
  277. package/dist/internal/cli-deploy.d.ts.map +1 -1
  278. package/dist/internal/cli-deploy.js +2 -6
  279. package/dist/internal/cli-github.d.ts +1 -1
  280. package/dist/internal/cli-github.js +3 -3
  281. package/dist/internal/cli-gitlab.d.ts +37 -0
  282. package/dist/internal/cli-gitlab.d.ts.map +1 -0
  283. package/dist/internal/cli-gitlab.js +380 -0
  284. package/dist/internal/cli-mcp.d.ts.map +1 -1
  285. package/dist/internal/cli-mcp.js +2 -6
  286. package/dist/internal/cli-slack.d.ts +1 -1
  287. package/dist/internal/cli-slack.d.ts.map +1 -1
  288. package/dist/internal/cli-slack.js +2 -4
  289. package/dist/internal/continuation-channel.d.ts +14 -0
  290. package/dist/internal/continuation-channel.d.ts.map +1 -1
  291. package/dist/internal/continuation-channel.js +56 -3
  292. package/dist/internal/continuation-identity.d.ts +14 -15
  293. package/dist/internal/continuation-identity.d.ts.map +1 -1
  294. package/dist/internal/continuation-identity.js +182 -7
  295. package/dist/internal/conversation-mirror.d.ts.map +1 -1
  296. package/dist/internal/conversation-mirror.js +4 -3
  297. package/dist/internal/convert-automation/types.d.ts +1 -1
  298. package/dist/internal/convert-automation/types.js +1 -1
  299. package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
  300. package/dist/internal/cursor/account-mcp.js +1 -3
  301. package/dist/internal/cursor/backend-client.d.ts +5 -4
  302. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  303. package/dist/internal/cursor/backend-client.js +5 -6
  304. package/dist/internal/cursor/bound-secret-file.d.ts +56 -0
  305. package/dist/internal/cursor/bound-secret-file.d.ts.map +1 -0
  306. package/dist/internal/cursor/bound-secret-file.js +88 -0
  307. package/dist/internal/cursor/credentials.d.ts +39 -5
  308. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  309. package/dist/internal/cursor/credentials.js +58 -8
  310. package/dist/internal/cursor/hosted-bound-secrets.d.ts +41 -0
  311. package/dist/internal/cursor/hosted-bound-secrets.d.ts.map +1 -0
  312. package/dist/internal/cursor/hosted-bound-secrets.js +54 -0
  313. package/dist/internal/cursor/hosted-deployment-secrets.d.ts +19 -5
  314. package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -1
  315. package/dist/internal/cursor/hosted-deployment-secrets.js +29 -9
  316. package/dist/internal/cursor/hosted-store-secrets.d.ts +1 -1
  317. package/dist/internal/cursor/hosted-store-secrets.js +1 -1
  318. package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
  319. package/dist/internal/cursor-account-mcp-auth.js +2 -4
  320. package/dist/internal/cursor-deployment-relay.d.ts +6 -2
  321. package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
  322. package/dist/internal/cursor-deployment-relay.js +13 -9
  323. package/dist/internal/deploy-manifest.d.ts +1 -1
  324. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  325. package/dist/internal/deploy-manifest.js +1 -1
  326. package/dist/internal/discovery/ab.d.ts +1 -1
  327. package/dist/internal/discovery/ab.d.ts.map +1 -1
  328. package/dist/internal/discovery/ab.js +21 -9
  329. package/dist/internal/discovery/agent.d.ts +6 -1
  330. package/dist/internal/discovery/agent.d.ts.map +1 -1
  331. package/dist/internal/discovery/agent.js +65 -116
  332. package/dist/internal/discovery/channels.d.ts +1 -1
  333. package/dist/internal/discovery/channels.d.ts.map +1 -1
  334. package/dist/internal/discovery/channels.js +14 -14
  335. package/dist/internal/discovery/connections.d.ts +1 -5
  336. package/dist/internal/discovery/connections.d.ts.map +1 -1
  337. package/dist/internal/discovery/connections.js +30 -44
  338. package/dist/internal/discovery/cursor-plugin.d.ts.map +1 -1
  339. package/dist/internal/discovery/cursor-plugin.js +1 -3
  340. package/dist/internal/discovery/extension-overlay.d.ts +32 -0
  341. package/dist/internal/discovery/extension-overlay.d.ts.map +1 -0
  342. package/dist/internal/discovery/extension-overlay.js +191 -0
  343. package/dist/internal/discovery/extensions.d.ts +11 -2
  344. package/dist/internal/discovery/extensions.d.ts.map +1 -1
  345. package/dist/internal/discovery/extensions.js +211 -74
  346. package/dist/internal/discovery/hooks.d.ts +1 -1
  347. package/dist/internal/discovery/hooks.d.ts.map +1 -1
  348. package/dist/internal/discovery/hooks.js +15 -2
  349. package/dist/internal/discovery/info.d.ts.map +1 -1
  350. package/dist/internal/discovery/info.js +7 -1
  351. package/dist/internal/discovery/modules.d.ts.map +1 -1
  352. package/dist/internal/discovery/modules.js +8 -2
  353. package/dist/internal/discovery/names.d.ts +1 -1
  354. package/dist/internal/discovery/names.d.ts.map +1 -1
  355. package/dist/internal/discovery/names.js +1 -0
  356. package/dist/internal/discovery/project.d.ts +0 -2
  357. package/dist/internal/discovery/project.d.ts.map +1 -1
  358. package/dist/internal/discovery/project.js +64 -10
  359. package/dist/internal/discovery/runtime.d.ts.map +1 -1
  360. package/dist/internal/discovery/runtime.js +1 -2
  361. package/dist/internal/discovery/schedules.d.ts +1 -1
  362. package/dist/internal/discovery/schedules.d.ts.map +1 -1
  363. package/dist/internal/discovery/schedules.js +23 -2
  364. package/dist/internal/discovery/services.d.ts +6 -2
  365. package/dist/internal/discovery/services.d.ts.map +1 -1
  366. package/dist/internal/discovery/services.js +31 -1
  367. package/dist/internal/discovery/skills.d.ts +1 -6
  368. package/dist/internal/discovery/skills.d.ts.map +1 -1
  369. package/dist/internal/discovery/skills.js +8 -3
  370. package/dist/internal/discovery/subagent.d.ts +3 -0
  371. package/dist/internal/discovery/subagent.d.ts.map +1 -1
  372. package/dist/internal/discovery/subagent.js +109 -0
  373. package/dist/internal/discovery.d.ts +1 -2
  374. package/dist/internal/discovery.d.ts.map +1 -1
  375. package/dist/internal/discovery.js +1 -2
  376. package/dist/internal/distribution.d.ts +10 -27
  377. package/dist/internal/distribution.d.ts.map +1 -1
  378. package/dist/internal/distribution.js +25 -73
  379. package/dist/internal/docs-site.js +1 -1
  380. package/dist/internal/eval-run-store.d.ts +0 -1
  381. package/dist/internal/eval-run-store.d.ts.map +1 -1
  382. package/dist/internal/eval-runner.d.ts.map +1 -1
  383. package/dist/internal/framework-file-storage.d.ts +8 -0
  384. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  385. package/dist/internal/framework-file-storage.js +8 -8
  386. package/dist/internal/github-fanout.d.ts +1 -1
  387. package/dist/internal/github-fanout.js +1 -1
  388. package/dist/internal/guest-network.d.ts +101 -0
  389. package/dist/internal/guest-network.d.ts.map +1 -0
  390. package/dist/internal/guest-network.js +304 -0
  391. package/dist/internal/host-otel.d.ts +3 -3
  392. package/dist/internal/host-otel.d.ts.map +1 -1
  393. package/dist/internal/host-otel.js +8 -4
  394. package/dist/internal/hosted-admission-adapter.d.ts +8 -7
  395. package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
  396. package/dist/internal/hosted-delivery-protocol.d.ts +6 -0
  397. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  398. package/dist/internal/hosted-delivery-protocol.js +18 -5
  399. package/dist/internal/hosted-delivery.d.ts +18 -0
  400. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  401. package/dist/internal/hosted-delivery.js +248 -118
  402. package/dist/internal/http-channel.d.ts.map +1 -1
  403. package/dist/internal/http-channel.js +1 -3
  404. package/dist/internal/init-interview.d.ts.map +1 -1
  405. package/dist/internal/init-interview.js +1 -3
  406. package/dist/internal/init-project.d.ts +2 -2
  407. package/dist/internal/init-project.js +2 -2
  408. package/dist/internal/inline-stdio-define-stub.d.ts +1 -1
  409. package/dist/internal/inline-stdio-define-stub.d.ts.map +1 -1
  410. package/dist/internal/inline-stdio-define-stub.js +1 -1
  411. package/dist/internal/is-record.d.ts +2 -0
  412. package/dist/internal/is-record.d.ts.map +1 -0
  413. package/dist/internal/is-record.js +3 -0
  414. package/dist/internal/json-schema.d.ts.map +1 -1
  415. package/dist/internal/json-schema.js +18 -10
  416. package/dist/internal/local-control-plane.d.ts +1 -2
  417. package/dist/internal/local-control-plane.d.ts.map +1 -1
  418. package/dist/internal/local-control-plane.js +3 -20
  419. package/dist/internal/mcp-endpoint.d.ts.map +1 -1
  420. package/dist/internal/mcp-endpoint.js +1 -3
  421. package/dist/internal/otel/collector.d.ts +12 -3
  422. package/dist/internal/otel/collector.d.ts.map +1 -1
  423. package/dist/internal/otel/collector.js +77 -125
  424. package/dist/internal/otel/config.d.ts +0 -2
  425. package/dist/internal/otel/config.d.ts.map +1 -1
  426. package/dist/internal/otel/config.js +17 -20
  427. package/dist/internal/otel/http.d.ts +2 -0
  428. package/dist/internal/otel/http.d.ts.map +1 -1
  429. package/dist/internal/otel/http.js +7 -1
  430. package/dist/internal/otel/mcp.d.ts.map +1 -1
  431. package/dist/internal/otel/mcp.js +3 -16
  432. package/dist/internal/otel/runtime.d.ts +26 -1
  433. package/dist/internal/otel/runtime.d.ts.map +1 -1
  434. package/dist/internal/otel/runtime.js +164 -15
  435. package/dist/internal/package-inline-stdio.d.ts.map +1 -1
  436. package/dist/internal/package-inline-stdio.js +3 -11
  437. package/dist/internal/playground/toolchain.d.ts +1 -1
  438. package/dist/internal/playground/toolchain.d.ts.map +1 -1
  439. package/dist/internal/playground/toolchain.js +1 -1
  440. package/dist/internal/request-error-status.d.ts +12 -0
  441. package/dist/internal/request-error-status.d.ts.map +1 -0
  442. package/dist/internal/request-error-status.js +52 -0
  443. package/dist/internal/resolve-prod-target.d.ts +1 -1
  444. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  445. package/dist/internal/resolve-prod-target.js +3 -7
  446. package/dist/internal/result-output.d.ts +18 -0
  447. package/dist/internal/result-output.d.ts.map +1 -0
  448. package/dist/internal/result-output.js +33 -0
  449. package/dist/internal/run-client.d.ts +2 -2
  450. package/dist/internal/run-client.js +2 -2
  451. package/dist/internal/runtime-dispatch-runner.d.ts +1 -11
  452. package/dist/internal/runtime-dispatch-runner.d.ts.map +1 -1
  453. package/dist/internal/runtime-dispatch-runner.js +2 -15
  454. package/dist/internal/sdk-runner.d.ts.map +1 -1
  455. package/dist/internal/sdk-runner.js +3 -6
  456. package/dist/internal/server.d.ts.map +1 -1
  457. package/dist/internal/server.js +110 -35
  458. package/dist/internal/session-cost.d.ts +3 -3
  459. package/dist/internal/session-cost.d.ts.map +1 -1
  460. package/dist/internal/session-cost.js +3 -3
  461. package/dist/internal/session-engine.d.ts +26 -11
  462. package/dist/internal/session-engine.d.ts.map +1 -1
  463. package/dist/internal/session-engine.js +146 -76
  464. package/dist/internal/session-run-log.d.ts.map +1 -1
  465. package/dist/internal/session-run-log.js +1 -3
  466. package/dist/internal/skills-sync.d.ts +1 -4
  467. package/dist/internal/skills-sync.d.ts.map +1 -1
  468. package/dist/internal/skills-sync.js +10 -50
  469. package/dist/internal/sleep.d.ts +2 -0
  470. package/dist/internal/sleep.d.ts.map +1 -0
  471. package/dist/internal/sleep.js +3 -0
  472. package/dist/internal/store-mirror.d.ts +29 -0
  473. package/dist/internal/store-mirror.d.ts.map +1 -0
  474. package/dist/internal/store-mirror.js +70 -0
  475. package/dist/internal/tenant-slack/relay.d.ts +73 -0
  476. package/dist/internal/tenant-slack/relay.d.ts.map +1 -0
  477. package/dist/internal/tenant-slack/relay.js +138 -0
  478. package/dist/internal/testing/scm-continuation-fixtures.d.ts +33 -0
  479. package/dist/internal/testing/scm-continuation-fixtures.d.ts.map +1 -0
  480. package/dist/internal/testing/scm-continuation-fixtures.js +253 -0
  481. package/dist/internal/workspace-sync.d.ts +22 -0
  482. package/dist/internal/workspace-sync.d.ts.map +1 -0
  483. package/dist/internal/workspace-sync.js +49 -0
  484. package/dist/internal/workspace.d.ts +7 -0
  485. package/dist/internal/workspace.d.ts.map +1 -1
  486. package/dist/internal/workspace.js +13 -0
  487. package/dist/otel.d.ts +23 -1
  488. package/dist/otel.d.ts.map +1 -1
  489. package/dist/otel.js +93 -2
  490. package/dist/playground/assets/index-59KvgREd.js +67 -0
  491. package/dist/playground/assets/index-MbMxXg-y.css +1 -0
  492. package/dist/playground/index.html +2 -2
  493. package/dist/result.d.ts +24 -0
  494. package/dist/result.d.ts.map +1 -0
  495. package/dist/result.js +27 -0
  496. package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
  497. package/dist/storage-backends/cursor-hosted.js +7 -4
  498. package/dist/storage-protocol.d.ts.map +1 -1
  499. package/dist/storage-protocol.js +1 -3
  500. package/dist/types.d.ts +90 -23
  501. package/dist/types.d.ts.map +1 -1
  502. package/docs/README.md +2 -2
  503. package/docs/concepts.md +2 -4
  504. package/docs/design/runtime-abstraction.md +2 -3
  505. package/docs/evals.md +9 -7
  506. package/docs/guides/cloud-agents.md +4 -6
  507. package/docs/guides/github.md +0 -1
  508. package/docs/guides/opentelemetry.md +41 -17
  509. package/docs/reference/agent-config.md +6 -10
  510. package/docs/reference/channels.md +18 -8
  511. package/docs/reference/cli.md +3 -4
  512. package/docs/reference/extensions.md +87 -23
  513. package/docs/reference/hooks.md +215 -46
  514. package/docs/reference/playground.md +3 -0
  515. package/docs/reference/project-layout.md +2 -1
  516. package/docs/reference/result.md +94 -0
  517. package/docs/reference/sessions.md +3 -1
  518. package/docs/reference/tools.md +1 -2
  519. package/docs/templates/pr-autofixer.md +0 -3
  520. package/package.json +29 -10
  521. package/skills/framework-map/SKILL.md +3 -1
  522. package/skills/otel/SKILL.md +8 -3
  523. package/src/ab.ts +1 -1
  524. package/src/bin/agent-serve.ts +121 -21
  525. package/src/channels/bitbucket/api.ts +623 -0
  526. package/src/channels/bitbucket/binding.ts +414 -0
  527. package/src/channels/bitbucket/bitbucket-channel.ts +182 -0
  528. package/src/channels/bitbucket/bitbucket-webhook.ts +576 -0
  529. package/src/channels/bitbucket/checks.ts +154 -0
  530. package/src/channels/bitbucket/cursor-account.ts +117 -0
  531. package/src/channels/bitbucket/defaults.ts +110 -0
  532. package/src/channels/bitbucket/events.ts +84 -0
  533. package/src/channels/bitbucket/index.ts +49 -0
  534. package/src/channels/bitbucket/replay.ts +439 -0
  535. package/src/channels/bitbucket/state.ts +59 -0
  536. package/src/channels/bitbucket/types.ts +266 -0
  537. package/src/channels/deployments/deployments-channel.ts +25 -43
  538. package/src/channels/deployments/types.ts +12 -6
  539. package/src/channels/github/binding.ts +8 -1
  540. package/src/channels/github/cursor-account.ts +17 -6
  541. package/src/channels/github/events.ts +1 -1
  542. package/src/channels/github/forward.ts +3 -2
  543. package/src/channels/github/github-channel.ts +74 -221
  544. package/src/channels/github/replay.ts +1 -1
  545. package/src/channels/github/state.ts +6 -0
  546. package/src/channels/github/types.ts +2 -5
  547. package/src/channels/gitlab/api.ts +228 -0
  548. package/src/channels/gitlab/binding.ts +233 -0
  549. package/src/channels/gitlab/checks.ts +243 -0
  550. package/src/channels/gitlab/cursor-account.ts +114 -0
  551. package/src/channels/gitlab/defaults.ts +93 -0
  552. package/src/channels/gitlab/events.ts +44 -0
  553. package/src/channels/gitlab/gitlab-channel.ts +176 -0
  554. package/src/channels/gitlab/gitlab-webhook.ts +555 -0
  555. package/src/channels/gitlab/index.ts +43 -0
  556. package/src/channels/gitlab/replay.ts +347 -0
  557. package/src/channels/gitlab/state.ts +55 -0
  558. package/src/channels/gitlab/types.ts +263 -0
  559. package/src/channels/origin/api.ts +4 -2
  560. package/src/channels/origin/origin-channel.ts +19 -94
  561. package/src/channels/origin/types.ts +23 -2
  562. package/src/channels/slack/eval-directive.ts +1 -6
  563. package/src/channels/slack/init.ts +6 -3
  564. package/src/channels/slack/setup.ts +7 -6
  565. package/src/channels/slack/types.ts +1 -1
  566. package/src/channels.ts +0 -1
  567. package/src/client.ts +1 -1
  568. package/src/connections.ts +1 -1
  569. package/src/evals.ts +1 -1
  570. package/src/extensions.ts +47 -5
  571. package/src/files.ts +21 -3
  572. package/src/index.ts +20 -28
  573. package/src/internal/ab-snapshot.ts +0 -3
  574. package/src/internal/advertise-tools.ts +1 -4
  575. package/src/internal/authored-alias-hooks.ts +4 -21
  576. package/src/internal/authored-loaders.ts +6 -23
  577. package/src/internal/channel-dispatch.ts +160 -0
  578. package/src/internal/chat-client.ts +1 -1
  579. package/src/internal/cli-ax.ts +5 -5
  580. package/src/internal/cli-bitbucket.ts +477 -0
  581. package/src/internal/cli-convert-automation.ts +7 -7
  582. package/src/internal/cli-cursor.ts +2 -5
  583. package/src/internal/cli-deploy.ts +2 -8
  584. package/src/internal/cli-github.ts +3 -3
  585. package/src/internal/cli-gitlab.ts +485 -0
  586. package/src/internal/cli-mcp.ts +2 -7
  587. package/src/internal/cli-slack.ts +2 -5
  588. package/src/internal/continuation-channel.ts +82 -1
  589. package/src/internal/continuation-identity.ts +229 -11
  590. package/src/internal/conversation-mirror.ts +4 -3
  591. package/src/internal/convert-automation/types.ts +1 -1
  592. package/src/internal/cursor/account-mcp.ts +1 -4
  593. package/src/internal/cursor/backend-client.ts +9 -10
  594. package/src/internal/cursor/bound-secret-file.ts +108 -0
  595. package/src/internal/cursor/credentials.ts +75 -10
  596. package/src/internal/cursor/hosted-bound-secrets.ts +75 -0
  597. package/src/internal/cursor/hosted-deployment-secrets.ts +42 -11
  598. package/src/internal/cursor/hosted-store-secrets.ts +1 -1
  599. package/src/internal/cursor-account-mcp-auth.ts +2 -5
  600. package/src/internal/cursor-deployment-relay.ts +11 -7
  601. package/src/internal/deploy-manifest.ts +4 -2
  602. package/src/internal/discovery/ab.ts +29 -9
  603. package/src/internal/discovery/agent.ts +94 -135
  604. package/src/internal/discovery/channels.ts +15 -13
  605. package/src/internal/discovery/connections.ts +55 -50
  606. package/src/internal/discovery/cursor-plugin.ts +1 -4
  607. package/src/internal/discovery/extension-overlay.ts +274 -0
  608. package/src/internal/discovery/extensions.ts +330 -105
  609. package/src/internal/discovery/hooks.ts +20 -2
  610. package/src/internal/discovery/info.ts +7 -0
  611. package/src/internal/discovery/modules.ts +8 -2
  612. package/src/internal/discovery/names.ts +2 -1
  613. package/src/internal/discovery/project.ts +80 -9
  614. package/src/internal/discovery/runtime.ts +1 -2
  615. package/src/internal/discovery/schedules.ts +28 -2
  616. package/src/internal/discovery/services.ts +37 -1
  617. package/src/internal/discovery/skills.ts +13 -3
  618. package/src/internal/discovery/subagent.ts +107 -0
  619. package/src/internal/discovery.ts +0 -2
  620. package/src/internal/distribution.ts +35 -83
  621. package/src/internal/docs-site.ts +1 -1
  622. package/src/internal/eval-run-store.ts +0 -7
  623. package/src/internal/eval-runner.ts +0 -1
  624. package/src/internal/framework-file-storage.ts +8 -8
  625. package/src/internal/github-fanout.ts +1 -1
  626. package/src/internal/guest-network.ts +383 -0
  627. package/src/internal/host-otel.ts +8 -4
  628. package/src/internal/hosted-admission-adapter.ts +8 -8
  629. package/src/internal/hosted-delivery-protocol.ts +26 -1
  630. package/src/internal/hosted-delivery.ts +376 -192
  631. package/src/internal/http-channel.ts +1 -4
  632. package/src/internal/init-interview.ts +1 -4
  633. package/src/internal/init-project.ts +2 -2
  634. package/src/internal/inline-stdio-define-stub.ts +1 -1
  635. package/src/internal/is-record.ts +3 -0
  636. package/src/internal/json-schema.ts +19 -10
  637. package/src/internal/local-control-plane.ts +5 -24
  638. package/src/internal/mcp-endpoint.ts +1 -4
  639. package/src/internal/otel/collector.ts +94 -159
  640. package/src/internal/otel/config.ts +10 -14
  641. package/src/internal/otel/http.ts +14 -1
  642. package/src/internal/otel/mcp.ts +3 -16
  643. package/src/internal/otel/runtime.ts +240 -25
  644. package/src/internal/package-inline-stdio.ts +3 -12
  645. package/src/internal/playground/toolchain.ts +1 -1
  646. package/src/internal/request-error-status.ts +72 -0
  647. package/src/internal/resolve-prod-target.ts +3 -8
  648. package/src/internal/result-output.ts +34 -0
  649. package/src/internal/run-client.ts +2 -2
  650. package/src/internal/runtime-dispatch-runner.ts +3 -21
  651. package/src/internal/sdk-runner.ts +3 -7
  652. package/src/internal/server.ts +153 -44
  653. package/src/internal/session-cost.ts +3 -3
  654. package/src/internal/session-engine.ts +182 -74
  655. package/src/internal/session-run-log.ts +1 -4
  656. package/src/internal/skills-sync.ts +13 -63
  657. package/src/internal/sleep.ts +3 -0
  658. package/src/internal/store-mirror.ts +86 -0
  659. package/src/internal/tenant-slack/relay.ts +179 -0
  660. package/src/internal/testing/scm-continuation-fixtures.ts +286 -0
  661. package/src/internal/workspace-sync.ts +55 -0
  662. package/src/internal/workspace.ts +14 -0
  663. package/src/otel.ts +143 -3
  664. package/src/result.ts +36 -0
  665. package/src/storage-backends/cursor-hosted.ts +7 -4
  666. package/src/storage-protocol.ts +1 -4
  667. package/src/types.ts +105 -34
  668. package/templates/triage/agent/lib/types.ts +0 -2
  669. package/dist/continuation.d.ts +0 -20
  670. package/dist/continuation.d.ts.map +0 -1
  671. package/dist/continuation.js +0 -18
  672. package/dist/docs/assets/chunks/@localSearchIndexroot.FAqdWIXo.js +0 -1
  673. package/dist/docs/assets/concepts.md.rPzW2HZN.js +0 -1
  674. package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.js +0 -9
  675. package/dist/docs/assets/guides_cloud-runtime.md.BRirbRAN.js +0 -9
  676. package/dist/docs/assets/guides_cloud-runtime.md.BRirbRAN.lean.js +0 -1
  677. package/dist/docs/assets/reference_extensions.md.9WQMZe1l.lean.js +0 -1
  678. package/dist/docs/assets/reference_hooks.md.a8BJxMR5.js +0 -14
  679. package/dist/docs/assets/skills_framework-map.md.DDa4MeEW.js +0 -1
  680. package/dist/docs/guides/cloud-runtime.html +0 -35
  681. package/dist/docs/guides/cloud-runtime.md +0 -117
  682. package/dist/internal/convert-automation/index.d.ts +0 -3
  683. package/dist/internal/convert-automation/index.d.ts.map +0 -1
  684. package/dist/internal/convert-automation/index.js +0 -1
  685. package/dist/internal/grokbot/runner.d.ts +0 -64
  686. package/dist/internal/grokbot/runner.d.ts.map +0 -1
  687. package/dist/internal/grokbot/runner.js +0 -282
  688. package/dist/internal/managed-delivery.d.ts +0 -80
  689. package/dist/internal/managed-delivery.d.ts.map +0 -1
  690. package/dist/internal/managed-delivery.js +0 -86
  691. package/dist/internal/review-comments.d.ts +0 -370
  692. package/dist/internal/review-comments.d.ts.map +0 -1
  693. package/dist/internal/review-comments.js +0 -921
  694. package/dist/internal/shallow-clone.d.ts +0 -176
  695. package/dist/internal/shallow-clone.d.ts.map +0 -1
  696. package/dist/internal/shallow-clone.js +0 -419
  697. package/dist/playground/assets/index-B6C9S9nG.css +0 -1
  698. package/dist/playground/assets/index-ZqNoT8Ie.js +0 -69
  699. package/docs/guides/cloud-runtime.md +0 -122
  700. package/src/continuation.ts +0 -49
  701. package/src/internal/convert-automation/index.ts +0 -10
  702. package/src/internal/grokbot/runner.ts +0 -370
  703. package/src/internal/managed-delivery.ts +0 -125
  704. package/src/internal/review-comments.ts +0 -1363
  705. package/src/internal/shallow-clone.ts +0 -609
  706. /package/dist/docs/assets/{evals.md.CPzDAwoH.lean.js → evals.md.CbMoebP1.lean.js} +0 -0
  707. /package/dist/docs/assets/{guides_cloud-agents.md.DumwWXba.lean.js → guides_cloud-agents.md.DS8RIjwx.lean.js} +0 -0
  708. /package/dist/docs/assets/{guides_github.md.BtPr9GaP.lean.js → guides_github.md.DKYiT9do.lean.js} +0 -0
  709. /package/dist/docs/assets/{index.md.Kiht7ell.lean.js → index.md.D75GWhPl.lean.js} +0 -0
  710. /package/dist/docs/assets/{reference_agent-config.md.BHeYMgme.lean.js → reference_agent-config.md.CHNpiyp4.lean.js} +0 -0
  711. /package/dist/docs/assets/{reference_cli.md.DfoeyvL0.lean.js → reference_cli.md.CJNc_xYK.lean.js} +0 -0
  712. /package/dist/docs/assets/{reference_playground.md.DnX5nL-B.lean.js → reference_playground.md.4myJPxrf.lean.js} +0 -0
  713. /package/dist/docs/assets/{reference_project-layout.md.CA6QP6Lw.lean.js → reference_project-layout.md.DuBu9a96.lean.js} +0 -0
  714. /package/dist/docs/assets/{reference_tools.md.B1up2r9W.lean.js → reference_tools.md.aGrn99hP.lean.js} +0 -0
  715. /package/dist/docs/assets/{skills_framework-map.md.DDa4MeEW.lean.js → skills_framework-map.md.haibFyoB.lean.js} +0 -0
@@ -0,0 +1,266 @@
1
+ import type { ContinuationIdentity } from "../../internal/continuation-identity.js";
2
+ import type {
3
+ AgentCloudOptions,
4
+ ArtifactsApi,
5
+ AuthContext,
6
+ AuthPolicy,
7
+ ChannelEventHandlers,
8
+ ChannelStartArgs,
9
+ HostContext,
10
+ SendMessageFn,
11
+ } from "../../types.js";
12
+ import type { BitbucketTokenProvider } from "./api.js";
13
+ import type { BitbucketHandle } from "./binding.js";
14
+ import type { BitbucketChannelState } from "./state.js";
15
+
16
+ /**
17
+ * Which Bitbucket sent the payload. Cloud bodies carry `pullrequest` and
18
+ * `repository.uuid`; Data Center bodies carry `pullRequest` and
19
+ * `repository.project.key`.
20
+ */
21
+ export type BitbucketDialect = "cloud" | "data-center";
22
+
23
+ export interface BitbucketUser {
24
+ /** Cloud `uuid` (braces included) or Data Center numeric `id`. */
25
+ id: string;
26
+ displayName?: string;
27
+ /** Cloud `nickname` / Data Center `name`. */
28
+ username?: string;
29
+ }
30
+
31
+ export interface BitbucketRepositoryRef {
32
+ dialect: BitbucketDialect;
33
+ /**
34
+ * `workspace/repo` (Cloud) or `PROJECT/repo` (Data Center), as delivered.
35
+ * Continuation keys lowercase it; consumers should too when comparing.
36
+ */
37
+ fullName: string;
38
+ /** Workspace slug (Cloud) or project key (Data Center). */
39
+ owner: string;
40
+ slug: string;
41
+ /** Cloud `repository.uuid` (braces included). */
42
+ uuid?: string;
43
+ /** Data Center numeric repository id. */
44
+ id?: number;
45
+ /** Web URL when the payload carries one. */
46
+ htmlUrl?: string;
47
+ }
48
+
49
+ /** A pull request normalized from either dialect. */
50
+ export interface BitbucketPullRequestEvent {
51
+ /**
52
+ * Cloud-normalized action: `created`, `updated`, `approved`, `unapproved`,
53
+ * `changes_request_created`, `fulfilled`, `rejected`.
54
+ */
55
+ action: string;
56
+ id: number;
57
+ title?: string;
58
+ description?: string | null;
59
+ /** `OPEN`, `MERGED`, `DECLINED`, `SUPERSEDED`. */
60
+ state?: string;
61
+ draft?: boolean;
62
+ sourceBranch?: string;
63
+ targetBranch?: string;
64
+ /** Source-branch head: Cloud `source.commit.hash` / DC `fromRef.latestCommit`. */
65
+ headSha?: string;
66
+ /** DC `previousFromHash` on `pr:from_ref_updated` — new commits were pushed. */
67
+ previousHeadSha?: string;
68
+ author?: BitbucketUser;
69
+ htmlUrl?: string;
70
+ }
71
+
72
+ export interface BitbucketPullRequestComment {
73
+ id: number;
74
+ body: string;
75
+ author?: BitbucketUser;
76
+ htmlUrl?: string;
77
+ /** Cloud `comment.inline` when the comment is anchored to a file. */
78
+ inline?: { path?: string; to?: number; from?: number };
79
+ }
80
+
81
+ export interface BitbucketPushChange {
82
+ ref?: string;
83
+ /** Branch / tag name. */
84
+ name?: string;
85
+ before?: string;
86
+ after?: string;
87
+ type?: string;
88
+ }
89
+
90
+ export interface BitbucketPush {
91
+ changes: BitbucketPushChange[];
92
+ }
93
+
94
+ export interface BitbucketEventContext {
95
+ /** `X-Request-UUID` (Cloud) / `X-Request-Id` (DC), when present. */
96
+ deliveryId?: string;
97
+ /** Cloud-normalized event key (`pullrequest:created`, `repo:push`, …). */
98
+ eventType: string;
99
+ /** Raw `X-Event-Key` as delivered (DC keys before normalization). */
100
+ rawEventType: string;
101
+ repository: BitbucketRepositoryRef;
102
+ pullRequestId?: number;
103
+ pullRequestUrl?: string;
104
+ /** Raw parsed payload record, for consumers whose normalization needs more. */
105
+ payload: Record<string, unknown>;
106
+ /** `actor` on the payload — who triggered the delivery. */
107
+ sender?: BitbucketUser;
108
+ /**
109
+ * Repo-bound Bitbucket API (`api`, `request`, `setBuildStatus`,
110
+ * `createCheck`) in the delivery's dialect. Routes through the Cursor SCM
111
+ * proxy under `cursorAccount` + `--cursor-scm-proxy`; otherwise uses
112
+ * {@link BitbucketChannelOptions.token} / `BITBUCKET_TOKEN` against the
113
+ * dialect's API base.
114
+ */
115
+ bitbucket: BitbucketHandle;
116
+ /**
117
+ * Channel `send`. Set on every delivery path (HTTP webhook, hosted
118
+ * admission) so a hook can start a turn itself instead of returning
119
+ * `{ auth, message }` or a deferred `{ task }`.
120
+ */
121
+ send?: SendMessageFn;
122
+ host: HostContext;
123
+ artifacts: ArtifactsApi;
124
+ }
125
+
126
+ export type BitbucketTurnDispatch = {
127
+ auth: AuthContext;
128
+ message?: string;
129
+ title?: string;
130
+ context?: readonly string[];
131
+ };
132
+
133
+ /** Bound per-delivery helpers passed to a {@link BitbucketTaskDispatch.task}. */
134
+ export interface BitbucketTaskArgs {
135
+ send: SendMessageFn;
136
+ waitUntil: (promise: Promise<unknown>) => void;
137
+ }
138
+
139
+ /** Run a host-side handler after the webhook is acknowledged with a 202. */
140
+ export type BitbucketTaskDispatch = {
141
+ task: (args: BitbucketTaskArgs) => void | Promise<void>;
142
+ };
143
+
144
+ export type BitbucketDispatch = BitbucketTurnDispatch | BitbucketTaskDispatch;
145
+
146
+ export type BitbucketDispatchResult =
147
+ | BitbucketDispatch
148
+ | null
149
+ | Promise<BitbucketDispatch | null>;
150
+
151
+ export type BitbucketPullRequestHook = (
152
+ ctx: BitbucketEventContext,
153
+ pullRequest: BitbucketPullRequestEvent
154
+ ) => BitbucketDispatchResult;
155
+
156
+ export type BitbucketPullRequestCommentHook = (
157
+ ctx: BitbucketEventContext,
158
+ comment: BitbucketPullRequestComment,
159
+ pullRequest: BitbucketPullRequestEvent
160
+ ) => BitbucketDispatchResult;
161
+
162
+ export type BitbucketPushHook = (
163
+ ctx: BitbucketEventContext,
164
+ push: BitbucketPush
165
+ ) => BitbucketDispatchResult;
166
+
167
+ export type BitbucketEventHook = (
168
+ ctx: BitbucketEventContext,
169
+ event: { eventType: string; rawEventType: string; payload: unknown }
170
+ ) => BitbucketDispatchResult;
171
+
172
+ export type BitbucketCloudOptionsResolver = (
173
+ ctx: BitbucketEventContext,
174
+ pullRequest: BitbucketPullRequestEvent
175
+ ) => AgentCloudOptions | undefined | Promise<AgentCloudOptions | undefined>;
176
+
177
+ /** One verified Bitbucket delivery handed to {@link dispatchBitbucketWebhook}. */
178
+ export interface BitbucketWebhookDelivery {
179
+ /** Cloud-normalized event key (hosted admission passes the envelope's). */
180
+ eventType: string;
181
+ /** `X-Event-Key` as delivered. Defaults to {@link eventType}. */
182
+ rawEventType?: string;
183
+ payload: Record<string, unknown>;
184
+ deliveryId?: string;
185
+ }
186
+
187
+ export interface BitbucketChannelOptions {
188
+ /**
189
+ * Use the signed-in Cursor account for inbound Bitbucket events delivered
190
+ * by the Cursor backend. `true` takes repo scope from the deployment;
191
+ * `{ repos }` (`workspace/repo` or `PROJECT/repo`) makes the channel
192
+ * self-contained.
193
+ */
194
+ cursorAccount?: boolean | { repos: readonly string[] };
195
+ /**
196
+ * Access token (or provider) for direct `ctx.bitbucket` calls when not in
197
+ * proxy mode. Sent as `Authorization: Bearer`. Falls back to
198
+ * `BITBUCKET_TOKEN`.
199
+ */
200
+ token?: string | BitbucketTokenProvider;
201
+ /**
202
+ * REST base for direct `ctx.bitbucket` calls. Defaults to
203
+ * `BITBUCKET_API_BASE_URL`, else api.bitbucket.org 2.0 (Cloud). Data
204
+ * Center deploys must set one of these; the payload's repository link is
205
+ * never used to pick where the token is sent.
206
+ */
207
+ apiBaseUrl?: string;
208
+ /**
209
+ * Webhook secret for direct HTTP deliveries: `X-Hub-Signature`
210
+ * `sha256=<hmac>` over the raw body (both dialects). Falls back to
211
+ * `BITBUCKET_WEBHOOK_SECRET`. With a secret set the HMAC is the request
212
+ * auth; without one production stays loopback-strict and `serve --dev`
213
+ * admits unsigned loopback deliveries.
214
+ */
215
+ webhookSecret?: string | (() => string | undefined);
216
+ /**
217
+ * Optional repo allowlist (`workspace/repo` / `PROJECT/repo`,
218
+ * case-insensitive). Events from other repos are acked without a turn.
219
+ */
220
+ repos?: readonly string[];
221
+ /** Route auth chain; defaults follow {@link webhookSecret}. */
222
+ auth?: AuthPolicy[];
223
+ /** Route path under `/v1/channels/<name>`. Defaults to `/`. */
224
+ path?: string;
225
+ /**
226
+ * Pin the event keys this channel dispatches on (Cloud vocabulary; DC keys
227
+ * are normalized). Published as `meta.bitbucketWebhookEvents`. Defaults to
228
+ * the set derived from hooks.
229
+ */
230
+ webhookEvents?: readonly string[];
231
+ /**
232
+ * Continuation selector. Omitted inherits {@link AgentConfig.architecture}:
233
+ * engine-minted per-PR continuation unless the agent set
234
+ * `architecture: "v2"` (then `bitbucket.pr/v2`, or `bitbucket.none/v2`
235
+ * when a non-PR event is declared).
236
+ */
237
+ continuation?: ContinuationIdentity;
238
+ /**
239
+ * Decide whether an inbound pull-request event starts a turn. Return
240
+ * `{ auth: defaultBitbucketAuth(ctx) }` to dispatch, `null` to ignore.
241
+ * Without this hook the channel dispatches on `created` and on `updated`
242
+ * that pushed commits (Data Center `previousFromHash` differs from the
243
+ * head; Cloud `pullrequest:updated` carries no diff and is not dispatched).
244
+ */
245
+ onPullRequest?: BitbucketPullRequestHook;
246
+ /** Opt-in `pullrequest:comment_created` handler. */
247
+ onPullRequestComment?: BitbucketPullRequestCommentHook;
248
+ /** Opt-in `repo:push` handler. No default dispatch. */
249
+ onPush?: BitbucketPushHook;
250
+ /**
251
+ * Catch-all for event keys without a typed hook (`repo:fork`,
252
+ * `issue:created`, …). NOT a fallback: typed events never reach it.
253
+ */
254
+ onEvent?: BitbucketEventHook;
255
+ /**
256
+ * Per-session cloud options. Pass `true` to attach the repo using the
257
+ * pull request's web URL, or a resolver for custom cloud options.
258
+ */
259
+ cloud?: boolean | AgentCloudOptions | BitbucketCloudOptionsResolver;
260
+ /** Channel stream-event handlers. */
261
+ events?: ChannelEventHandlers<BitbucketChannelState>;
262
+ /** Called once when the server mounts this channel. */
263
+ onStart?: (args: ChannelStartArgs) => void | Promise<void>;
264
+ /** Called when the server shuts down. */
265
+ onStop?: () => void | Promise<void>;
266
+ }
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  import { defineChannel, localDevStrict, POST } from "../../channels.js";
4
+ import { skipped, tagOutcome } from "../../internal/channel-dispatch.js";
4
5
  import {
5
6
  deploymentEventMatches,
6
7
  resolveDeploymentSubscriptions,
@@ -49,16 +50,16 @@ export function getDeploymentsChannelOptions(
49
50
  * subscriptions. Published as `meta.deploymentEventTypes` so the deploy
50
51
  * manifest can extract `eventTypes`.
51
52
  *
52
- * A channel with no resolved subscriptions declares the full event set:
53
- * deploy sources usually come from env vars read at module load, and the
54
- * hosted freeze bakes hermetically (no customer env/secrets), so deriving
55
- * `[]` there would leave the manifest without event types and no
53
+ * A channel with no resolved subscriptions declares the full event set.
54
+ * That covers an omitted `deploySourceUris` and the env-configured case:
55
+ * the hosted freeze bakes hermetically (no customer env/secrets), so
56
+ * deriving `[]` there would leave the manifest without event types and no
56
57
  * subscription edge could ever materialize (invariant 26). Capability is
57
58
  * the channel's code shape — `onEvent` handles any deployment event —
58
59
  * while sources/environments/event narrowing are runtime subscription
59
60
  * config; the hosted-admission adapter re-applies them before authored
60
61
  * code runs. Inertness is still guaranteed by scope: a deploy that names
61
- * no deploy sources binds no edges.
62
+ * no repositories binds no edges.
62
63
  */
63
64
  export function deriveDeploymentEventTypes(
64
65
  options: Pick<DeploymentsChannelOptions, "deploySourceUris" | "events">
@@ -97,28 +98,7 @@ export async function dispatchDeploymentEvent(input: {
97
98
  );
98
99
  // "task": authored `onEvent` ran to completion without a captured send.
99
100
  // Hosted admission only consults this when no send was captured.
100
- return withDispatchOutcome(Response.json({ ok: true }), "task");
101
- }
102
-
103
- export type DeploymentsDispatchOutcome = "skip" | "task";
104
-
105
- const dispatchOutcomeByResponse = new WeakMap<
106
- Response,
107
- DeploymentsDispatchOutcome
108
- >();
109
-
110
- function withDispatchOutcome(
111
- response: Response,
112
- outcome: DeploymentsDispatchOutcome
113
- ): Response {
114
- dispatchOutcomeByResponse.set(response, outcome);
115
- return response;
116
- }
117
-
118
- export function getDeploymentsDispatchOutcome(
119
- response: Response
120
- ): DeploymentsDispatchOutcome | undefined {
121
- return dispatchOutcomeByResponse.get(response);
101
+ return tagOutcome(Response.json({ ok: true }), "task");
122
102
  }
123
103
 
124
104
  /**
@@ -129,13 +109,14 @@ export function getDeploymentsDispatchOutcome(
129
109
  * the v1 relay does before `onEvent`.
130
110
  *
131
111
  * A channel with NO resolved subscriptions admits everything the control
132
- * plane delivered: deploy sources usually come from env vars read at
133
- * module load, and the hosted freeze bakes hermetically (no customer env),
134
- * so on a restored pod an env-configured channel resolves empty the
135
- * deploy-time edges (bound from the watched repositories) already carry
136
- * the customer's scope, and refusing here would silently drop every
137
- * delivery. Same posture as {@link deriveDeploymentEventTypes}: authored
138
- * subscriptions narrow; an unconfigured channel defers to the deploy scope.
112
+ * plane delivered. Omitting `deploySourceUris` picks that deliberately:
113
+ * the deploy-time edges (bound from the watched repositories) already
114
+ * carry the tenant's scope, so re-filtering here could only narrow it with
115
+ * another tenant's list. The same holds for an env-configured channel that
116
+ * resolves empty on a restored pod, where refusing would silently drop
117
+ * every delivery. Same rule as {@link deriveDeploymentEventTypes}:
118
+ * authored subscriptions narrow; a channel that names none defers to the
119
+ * deploy scope.
139
120
  */
140
121
  export function deploymentEventMatchesChannel(
141
122
  options: DeploymentsChannelOptions,
@@ -181,6 +162,15 @@ export function deploymentEventMatchesChannel(
181
162
  * adapter re-applies this channel's subscription filter — environments are
182
163
  * not edge identity — and skips before authored code runs.
183
164
  *
165
+ * A hosted agent therefore omits `deploySourceUris`:
166
+ *
167
+ * ```ts
168
+ * export default deploymentsChannel({
169
+ * events: ["deployment.created", "deployment.succeeded"],
170
+ * onEvent: async (event, { send }) => { ... },
171
+ * });
172
+ * ```
173
+ *
184
174
  * The route on this channel exists for local replay (`agent-sdk` and tests):
185
175
  * POST an event body and it runs the same `onEvent`.
186
176
  */
@@ -232,18 +222,10 @@ export function deploymentsChannel(
232
222
  }
233
223
  const event = parsed.data as DeploymentEvent;
234
224
  if (!deploymentEventMatchesChannel(options, event)) {
235
- return withDispatchOutcome(
236
- Response.json({
237
- ok: true,
238
- skipped: true,
239
- reason: "subscription_mismatch",
240
- }),
241
- "skip"
242
- );
225
+ return skipped("subscription_mismatch");
243
226
  }
244
227
  return dispatchDeploymentEvent({ options, event, args });
245
228
  },
246
- getOutcome: (response) => getDeploymentsDispatchOutcome(response),
247
229
  });
248
230
  return definition;
249
231
  }
@@ -1,4 +1,4 @@
1
- import type { ContinuationIdentity } from "../../continuation.js";
1
+ import type { ContinuationIdentity } from "../../internal/continuation-identity.js";
2
2
  import type { ChannelDefinition, ChannelHandlerArgs } from "../../types.js";
3
3
 
4
4
  /** {@link ChannelMeta.kind} value used by {@link deploymentsChannel}. */
@@ -54,12 +54,18 @@ export interface DeploymentsChannelOptions {
54
54
  * and then receives nothing. A bare string takes the default environment and
55
55
  * event filters.
56
56
  *
57
- * There is no team-wide subscription: every deploy source is named. An
58
- * empty list is how a consumer *deregisters*, so it cannot also mean
59
- * "everything". A live array that starts empty and is filled later is
60
- * re-read on each registration heartbeat.
57
+ * Omit on hosted v2. The control plane then binds `deploy_source` edges
58
+ * from the deploy's watched `repositories` and the channel admits what it
59
+ * is sent. That is the multi-tenant shape: an agent cannot enumerate
60
+ * sources for a tenant it has never seen.
61
+ *
62
+ * Name sources to narrow below that scope, or to drive the self-hosted
63
+ * relay, which has no deploy scope to inherit. On that wire `[]` means
64
+ * deregister, which is why deferring to the deploy scope is an omitted
65
+ * field and not an empty one. A live array that starts empty and is filled
66
+ * later is re-read on each registration heartbeat.
61
67
  */
62
- deploySourceUris: readonly (string | DeploymentSubscription)[];
68
+ deploySourceUris?: readonly (string | DeploymentSubscription)[];
63
69
  /**
64
70
  * Applied to every subscription that does not set its own. Omit or leave
65
71
  * empty for every environment.
@@ -52,6 +52,12 @@ export interface GitHubBindingState {
52
52
  pullRequestNumber: number | null;
53
53
  repo: string;
54
54
  repositoryId: number | null;
55
+ /**
56
+ * `repository.html_url` from the delivery. Carries the GitHub Enterprise
57
+ * Server host; absent on state persisted before this field existed, in
58
+ * which case handles fall back to `https://github.com`.
59
+ */
60
+ repositoryUrl?: string | null;
55
61
  reviewCommentId: number | null;
56
62
  reviewThreadRootCommentId: number | null;
57
63
  triggeringCommentId: number | null;
@@ -113,7 +119,8 @@ export function buildGitHubBinding(input: {
113
119
  const { config, state } = input;
114
120
  const repository: GitHubRepositoryRef = {
115
121
  fullName: `${state.owner}/${state.repo}`,
116
- url: `https://github.com/${state.owner}/${state.repo}`,
122
+ url:
123
+ state.repositoryUrl ?? `https://github.com/${state.owner}/${state.repo}`,
117
124
  owner: state.owner,
118
125
  name: state.repo,
119
126
  ...(state.repositoryId === null ? {} : { id: state.repositoryId }),
@@ -259,20 +259,31 @@ const pendingByResolver = new WeakMap<
259
259
  PendingCursorGithubCredentials
260
260
  >();
261
261
 
262
+ /** Forges whose cursorAccount packs route through the backend SCM forwarder. */
263
+ export type CursorScmProxyForge = "github" | "gitlab" | "bitbucket";
264
+
262
265
  /**
263
- * Backend GitHub-proxy base URL for proxy mode (`--cursor-github-proxy`).
264
- * `AGENT_SERVE_GITHUB_PROXY_URL` overrides the default of the Cursor API
265
- * base URL + `/v0/github-proxy`.
266
+ * Backend SCM-proxy base URL for proxy mode (`--cursor-scm-proxy`). Each
267
+ * pack derives its own route, `/v0/<forge>-proxy`, from the Cursor API
268
+ * base URL; `AGENT_SERVE_<FORGE>_PROXY_URL` overrides it.
266
269
  */
267
- export function resolveCursorGithubProxyUrl(backendBaseUrl: string): string {
268
- const override = process.env.AGENT_SERVE_GITHUB_PROXY_URL;
270
+ export function resolveCursorScmProxyUrl(
271
+ forge: CursorScmProxyForge,
272
+ backendBaseUrl: string
273
+ ): string {
274
+ const override = process.env[`AGENT_SERVE_${forge.toUpperCase()}_PROXY_URL`];
269
275
  const url =
270
276
  override !== undefined && override.trim() !== ""
271
277
  ? new URL(override)
272
- : new URL("/v0/github-proxy", backendBaseUrl);
278
+ : new URL(`/v0/${forge}-proxy`, backendBaseUrl);
273
279
  return url.toString().replace(/\/+$/, "");
274
280
  }
275
281
 
282
+ /** GitHub-proxy base URL; see {@link resolveCursorScmProxyUrl}. */
283
+ export function resolveCursorGithubProxyUrl(backendBaseUrl: string): string {
284
+ return resolveCursorScmProxyUrl("github", backendBaseUrl);
285
+ }
286
+
276
287
  export function isCursorAccountGithubTokenResolver(
277
288
  value: unknown
278
289
  ): value is CursorAccountGithubTokenResolver {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Webhook event derivation for the GitHub channel.
3
3
  *
4
- * `agent-serve github forward` reads the set of webhook events a channel is
4
+ * `agent-sdk github forward` reads the set of webhook events a channel is
5
5
  * wired to dispatch (published as `meta.githubWebhookEvents`) so it can build
6
6
  * `gh webhook forward --events=…` without the operator hand-listing them.
7
7
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Planning helpers for `agent-serve github forward` — turning discovered
2
+ * Planning helpers for `agent-sdk github forward` — turning discovered
3
3
  * GitHub channels into a `gh webhook forward` invocation.
4
4
  *
5
5
  * These are pure functions (no process spawning) so they are unit-testable;
@@ -8,6 +8,7 @@
8
8
  * @see https://docs.github.com/en/webhooks/testing-and-troubleshooting-webhooks/using-the-github-cli-to-forward-webhooks-for-testing
9
9
  */
10
10
 
11
+ import { CLI_COMMAND_NAME as CLI } from "../../internal/distribution.js";
11
12
  import type { AgentProject } from "../../types.js";
12
13
  import { GITHUB_CHANNEL_KIND } from "./events.js";
13
14
 
@@ -316,7 +317,7 @@ export function detectGitHubEnvTokenOverride(
316
317
 
317
318
  /** Guidance shown when {@link detectGitHubEnvTokenOverride} finds an override. */
318
319
  export function githubEnvTokenHint(varName: string): string {
319
- return `${varName} is set — gh webhook forward authenticates its relay with the GitHub CLI's own login, so an env token usually causes HTTP 401. Blank it for the command (e.g. \`GITHUB_TOKEN= GH_TOKEN= agent-serve github forward …\`) or \`unset GITHUB_TOKEN GH_TOKEN\`.`;
320
+ return `${varName} is set — gh webhook forward authenticates its relay with the GitHub CLI's own login, so an env token usually causes HTTP 401. Blank it for the command (e.g. \`GITHUB_TOKEN= GH_TOKEN= ${CLI} github forward …\`) or \`unset GITHUB_TOKEN GH_TOKEN\`.`;
320
321
  }
321
322
 
322
323
  /**