@wardby/cli 0.6.0 → 0.8.0

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 (740) hide show
  1. package/.env.example +5 -5
  2. package/README.md +6 -1
  3. package/deploy/local/docker-compose.quickstart-coding.yml +19 -0
  4. package/dist/claude-coding-worker/driver.d.ts +33 -3
  5. package/dist/claude-coding-worker/driver.js +151 -21
  6. package/dist/claude-coding-worker/main.js +38 -6
  7. package/dist/claude-coding-worker/sdk.js +29 -2
  8. package/dist/claude-coding-worker/tool-socket.d.ts +27 -0
  9. package/dist/claude-coding-worker/tool-socket.js +111 -0
  10. package/dist/claude-coding-worker/transcript.d.ts +18 -0
  11. package/dist/claude-coding-worker/transcript.js +77 -0
  12. package/dist/claude-plugin/command.d.ts +61 -0
  13. package/dist/claude-plugin/command.js +376 -0
  14. package/dist/cli-help.d.ts +1 -1
  15. package/dist/cli-help.js +3 -1
  16. package/dist/cli.js +71 -13
  17. package/dist/coding/code-host.d.ts +16 -0
  18. package/dist/coding/code-host.js +60 -0
  19. package/dist/coding/continuation-wording.d.ts +35 -0
  20. package/dist/coding/continuation-wording.js +73 -0
  21. package/dist/coding/linked-issue-note.d.ts +23 -0
  22. package/dist/coding/linked-issue-note.js +47 -0
  23. package/dist/coding/mcp-token.d.ts +12 -0
  24. package/dist/coding/mcp-token.js +26 -0
  25. package/dist/coding/merge-wording.d.ts +28 -0
  26. package/dist/coding/merge-wording.js +78 -0
  27. package/dist/coding/pr-description-note.d.ts +9 -0
  28. package/dist/coding/pr-description-note.js +32 -0
  29. package/dist/coding/profile.d.ts +46 -126
  30. package/dist/coding/profile.js +45 -4
  31. package/dist/coding/protected-path-wording.d.ts +8 -0
  32. package/dist/coding/protected-path-wording.js +1 -1
  33. package/dist/coding/protocol.d.ts +264 -346
  34. package/dist/coding/protocol.js +237 -12
  35. package/dist/coding/redact.d.ts +3 -0
  36. package/dist/coding/redact.js +17 -0
  37. package/dist/coding/registry/allowlist.d.ts +12 -0
  38. package/dist/coding/registry/allowlist.js +14 -1
  39. package/dist/coding/registry/audit-mode.d.ts +153 -0
  40. package/dist/coding/registry/audit-mode.js +304 -0
  41. package/dist/coding/registry/lockfile-shared.d.ts +36 -0
  42. package/dist/coding/registry/lockfile-shared.js +128 -0
  43. package/dist/coding/registry/lockfiles.js +1 -1
  44. package/dist/coding/registry/npm-lockfile-formats.d.ts +11 -0
  45. package/dist/coding/registry/npm-lockfile-formats.js +41 -0
  46. package/dist/coding/registry/npm-lockfile.d.ts +8 -4
  47. package/dist/coding/registry/npm-lockfile.js +4 -6
  48. package/dist/coding/registry/npm.js +78 -8
  49. package/dist/coding/registry/pnpm-lockfile.d.ts +17 -0
  50. package/dist/coding/registry/pnpm-lockfile.js +189 -0
  51. package/dist/coding/registry/pypi-plan.d.ts +50 -0
  52. package/dist/coding/registry/pypi-plan.js +406 -0
  53. package/dist/coding/registry/pypi-requirements.d.ts +58 -0
  54. package/dist/coding/registry/pypi-requirements.js +155 -0
  55. package/dist/coding/registry/pypi.d.ts +3 -27
  56. package/dist/coding/registry/pypi.js +40 -154
  57. package/dist/coding/registry/refusal-hints.d.ts +20 -0
  58. package/dist/coding/registry/refusal-hints.js +61 -0
  59. package/dist/coding/registry/refusal-wording.d.ts +11 -0
  60. package/dist/coding/registry/refusal-wording.js +56 -0
  61. package/dist/coding/registry/report.d.ts +70 -8
  62. package/dist/coding/registry/report.js +112 -5
  63. package/dist/coding/registry/types.d.ts +58 -8
  64. package/dist/coding/registry/yarn-lockfile.d.ts +30 -0
  65. package/dist/coding/registry/yarn-lockfile.js +367 -0
  66. package/dist/coding/services/catalog.d.ts +37 -351
  67. package/dist/coding/transcript/claude-code.d.ts +13 -0
  68. package/dist/coding/transcript/claude-code.js +273 -0
  69. package/dist/coding/transcript/download-protocol.d.ts +30 -0
  70. package/dist/coding/transcript/download-protocol.js +18 -0
  71. package/dist/coding/transcript/format.d.ts +20 -0
  72. package/dist/coding/transcript/format.js +32 -0
  73. package/dist/coding/transcript/recorder.d.ts +52 -0
  74. package/dist/coding/transcript/recorder.js +225 -0
  75. package/dist/coding/transcript/resume/checkout.d.ts +31 -0
  76. package/dist/coding/transcript/resume/checkout.js +203 -0
  77. package/dist/coding/transcript/resume/command.d.ts +17 -0
  78. package/dist/coding/transcript/resume/command.js +176 -0
  79. package/dist/coding/transcript/resume/download.d.ts +20 -0
  80. package/dist/coding/transcript/resume/download.js +153 -0
  81. package/dist/coding/transcript/resume/launch.d.ts +38 -0
  82. package/dist/coding/transcript/resume/launch.js +128 -0
  83. package/dist/coding/transcript/resume/session-file.d.ts +13 -0
  84. package/dist/coding/transcript/resume/session-file.js +79 -0
  85. package/dist/coding/transcript/resume/stand-in.d.ts +11 -0
  86. package/dist/coding/transcript/resume/stand-in.js +49 -0
  87. package/dist/coding-worker/artifact.d.ts +8 -3
  88. package/dist/coding-worker/artifact.js +3 -1
  89. package/dist/coding-worker/debug-trace.d.ts +9 -6
  90. package/dist/coding-worker/debug-trace.js +16 -19
  91. package/dist/coding-worker/dependency-cache.d.mts +229 -0
  92. package/dist/coding-worker/dependency-cache.mjs +2123 -0
  93. package/dist/coding-worker/driver.d.ts +4 -3
  94. package/dist/coding-worker/driver.js +124 -39
  95. package/dist/coding-worker/errors.d.ts +1 -0
  96. package/dist/coding-worker/errors.js +32 -0
  97. package/dist/coding-worker/main.js +5 -1
  98. package/dist/coding-worker/mcp-config.d.ts +27 -0
  99. package/dist/coding-worker/mcp-config.js +32 -0
  100. package/dist/coding-worker/sdk.d.ts +36 -0
  101. package/dist/coding-worker/sdk.js +28 -1
  102. package/dist/coding-worker/task-note.d.ts +11 -0
  103. package/dist/coding-worker/task-note.js +13 -0
  104. package/dist/coding-worker/types.d.ts +15 -0
  105. package/dist/config/dependency-cache.d.ts +23 -0
  106. package/dist/config/dependency-cache.js +32 -0
  107. package/dist/config/mcp-call-limit.d.ts +8 -0
  108. package/dist/config/mcp-call-limit.js +18 -0
  109. package/dist/config/mcp-servers.d.ts +8 -0
  110. package/dist/config/mcp-servers.js +12 -0
  111. package/dist/config/providers.d.ts +12 -3
  112. package/dist/config/providers.js +55 -5
  113. package/dist/config/test-simulators.d.ts +92 -0
  114. package/dist/config/test-simulators.js +333 -0
  115. package/dist/config/tool-timeout.d.ts +1 -0
  116. package/dist/config/tool-timeout.js +18 -0
  117. package/dist/core/async-context.d.ts +2 -0
  118. package/dist/core/async-context.js +12 -0
  119. package/dist/core/budget-events.d.ts +108 -0
  120. package/dist/core/budget-events.js +346 -0
  121. package/dist/core/budget-groups.d.ts +50 -1
  122. package/dist/core/budget-groups.js +236 -27
  123. package/dist/core/budget-stopped-head.d.ts +46 -0
  124. package/dist/core/budget-stopped-head.js +81 -0
  125. package/dist/core/budget-topup.d.ts +51 -0
  126. package/dist/core/budget-topup.js +156 -0
  127. package/dist/core/budget-wording.d.ts +16 -2
  128. package/dist/core/budget-wording.js +40 -2
  129. package/dist/core/coding-mcp.d.ts +36 -0
  130. package/dist/core/coding-mcp.js +253 -0
  131. package/dist/core/coding-queue.d.ts +2 -1
  132. package/dist/core/coding-queue.js +7 -0
  133. package/dist/core/coding-repository.d.ts +46 -0
  134. package/dist/core/coding-repository.js +92 -0
  135. package/dist/core/cron.d.ts +19 -1
  136. package/dist/core/cron.js +17 -0
  137. package/dist/core/datastores.js +1 -1
  138. package/dist/core/deferred-coding.d.ts +14 -0
  139. package/dist/core/deferred-coding.js +62 -0
  140. package/dist/core/delegation-child.d.ts +25 -0
  141. package/dist/core/delegation-child.js +37 -0
  142. package/dist/core/delegation-slots.d.ts +27 -0
  143. package/dist/core/delegation-slots.js +44 -0
  144. package/dist/core/dispatch.d.ts +48 -2
  145. package/dist/core/dispatch.js +166 -66
  146. package/dist/core/engine-native.js +1 -1
  147. package/dist/core/error-code.d.ts +38 -0
  148. package/dist/core/error-code.js +169 -0
  149. package/dist/core/grants.d.ts +46 -8
  150. package/dist/core/grants.js +99 -8
  151. package/dist/core/host-events.d.ts +18 -2
  152. package/dist/core/host-events.js +291 -27
  153. package/dist/core/host-status.d.ts +85 -3
  154. package/dist/core/host-status.js +300 -22
  155. package/dist/core/issue-bridge.d.ts +50 -6
  156. package/dist/core/issue-bridge.js +124 -33
  157. package/dist/core/issue-events.d.ts +1 -1
  158. package/dist/core/issue-events.js +4 -10
  159. package/dist/core/issue-status.d.ts +1 -1
  160. package/dist/core/issue-status.js +58 -29
  161. package/dist/core/logger.d.ts +5 -0
  162. package/dist/core/logger.js +14 -1
  163. package/dist/core/lost-run-children.d.ts +6 -0
  164. package/dist/core/lost-run-children.js +32 -0
  165. package/dist/core/mark-ready.d.ts +34 -0
  166. package/dist/core/mark-ready.js +152 -0
  167. package/dist/core/markdown-code.d.ts +8 -0
  168. package/dist/core/markdown-code.js +107 -0
  169. package/dist/core/mcp-client/client.d.ts +47 -0
  170. package/dist/core/mcp-client/client.js +141 -0
  171. package/dist/core/mcp-client/jsonrpc.d.ts +15 -0
  172. package/dist/core/mcp-client/jsonrpc.js +54 -0
  173. package/dist/core/mcp-client/results.d.ts +13 -0
  174. package/dist/core/mcp-client/results.js +42 -0
  175. package/dist/core/mcp-servers.d.ts +90 -0
  176. package/dist/core/mcp-servers.js +230 -0
  177. package/dist/core/mcp-tools.d.ts +108 -0
  178. package/dist/core/mcp-tools.js +287 -0
  179. package/dist/core/memory-tools.js +7 -0
  180. package/dist/core/merge-order-check.d.ts +2 -1
  181. package/dist/core/merge-order-check.js +44 -18
  182. package/dist/core/notification-dispatcher.js +2 -1
  183. package/dist/core/notification-templates.d.ts +1 -7
  184. package/dist/core/notification-templates.js +36 -2
  185. package/dist/core/pull-request-state-sync.js +2 -2
  186. package/dist/core/reconciler.d.ts +4 -3
  187. package/dist/core/reconciler.js +8 -1
  188. package/dist/core/related-pull-requests.d.ts +11 -3
  189. package/dist/core/related-pull-requests.js +49 -20
  190. package/dist/core/reply-parts.d.ts +21 -0
  191. package/dist/core/reply-parts.js +73 -0
  192. package/dist/core/review-fix.d.ts +1 -1
  193. package/dist/core/review-fix.js +4 -3
  194. package/dist/core/review-host-checks.d.ts +1 -1
  195. package/dist/core/review-host-tools.d.ts +3 -0
  196. package/dist/core/review-host-tools.js +102 -14
  197. package/dist/core/review-reads.d.ts +55 -0
  198. package/dist/core/review-reads.js +233 -0
  199. package/dist/core/run-status.d.ts +12 -0
  200. package/dist/core/run-status.js +12 -0
  201. package/dist/core/runner.d.ts +145 -49
  202. package/dist/core/runner.js +719 -216
  203. package/dist/core/schedule-start.d.ts +12 -0
  204. package/dist/core/schedule-start.js +14 -0
  205. package/dist/core/secret-broker-config.d.ts +12 -74
  206. package/dist/core/secret-broker-config.js +1 -1
  207. package/dist/core/secret-guard.d.ts +49 -0
  208. package/dist/core/secret-guard.js +119 -0
  209. package/dist/core/secret-guarded-stores.d.ts +12 -0
  210. package/dist/core/secret-guarded-stores.js +41 -0
  211. package/dist/core/secret-spans.d.ts +50 -0
  212. package/dist/core/secret-spans.js +94 -0
  213. package/dist/core/secrets.d.ts +11 -1
  214. package/dist/core/secrets.js +27 -1
  215. package/dist/core/serializable-retry.d.ts +18 -0
  216. package/dist/core/serializable-retry.js +43 -0
  217. package/dist/core/stop-run.d.ts +46 -0
  218. package/dist/core/stop-run.js +61 -0
  219. package/dist/core/tool-admin.d.ts +5 -1
  220. package/dist/core/tool-admin.js +7 -2
  221. package/dist/core/tool-names.d.ts +13 -0
  222. package/dist/core/tool-names.js +20 -0
  223. package/dist/core/webhooks.d.ts +4 -0
  224. package/dist/core/webhooks.js +68 -49
  225. package/dist/core/workflow-events.d.ts +14 -2
  226. package/dist/core/workflow-events.js +4 -0
  227. package/dist/core/workflow-run-events.d.ts +5 -3
  228. package/dist/core/workflow-run-events.js +45 -9
  229. package/dist/core/zod-json-schema.d.ts +4 -0
  230. package/dist/core/zod-json-schema.js +39 -0
  231. package/dist/core/zod3-window.d.ts +35 -0
  232. package/dist/core/zod3-window.js +124 -0
  233. package/dist/generated/prisma/browser.d.ts +65 -3
  234. package/dist/generated/prisma/client.d.ts +65 -3
  235. package/dist/generated/prisma/commonInputTypes.d.ts +266 -106
  236. package/dist/generated/prisma/enums.d.ts +10 -0
  237. package/dist/generated/prisma/enums.js +8 -0
  238. package/dist/generated/prisma/internal/class.d.ts +110 -0
  239. package/dist/generated/prisma/internal/class.js +4 -4
  240. package/dist/generated/prisma/internal/prismaNamespace.d.ts +957 -9
  241. package/dist/generated/prisma/internal/prismaNamespace.js +166 -2
  242. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +174 -0
  243. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +166 -2
  244. package/dist/generated/prisma/models/Agent.d.ts +377 -8
  245. package/dist/generated/prisma/models/AgentMcpServer.d.ts +1412 -0
  246. package/dist/generated/prisma/models/AgentMcpServer.js +1 -0
  247. package/dist/generated/prisma/models/AgentRepository.d.ts +81 -1
  248. package/dist/generated/prisma/models/AuthUser.d.ts +1 -1
  249. package/dist/generated/prisma/models/CodingAgentProfile.d.ts +228 -7
  250. package/dist/generated/prisma/models/CodingProxyRequest.d.ts +207 -3
  251. package/dist/generated/prisma/models/CodingProxySession.d.ts +232 -2
  252. package/dist/generated/prisma/models/CodingRun.d.ts +1712 -1
  253. package/dist/generated/prisma/models/DependencySnapshot.d.ts +1668 -0
  254. package/dist/generated/prisma/models/DependencySnapshot.js +1 -0
  255. package/dist/generated/prisma/models/HostProvider.d.ts +2176 -0
  256. package/dist/generated/prisma/models/HostProvider.js +1 -0
  257. package/dist/generated/prisma/models/HostProviderCredential.d.ts +1285 -0
  258. package/dist/generated/prisma/models/HostProviderCredential.js +1 -0
  259. package/dist/generated/prisma/models/HostProviderOperation.d.ts +1470 -0
  260. package/dist/generated/prisma/models/HostProviderOperation.js +1 -0
  261. package/dist/generated/prisma/models/HostProviderTrustedAccount.d.ts +1145 -0
  262. package/dist/generated/prisma/models/HostProviderTrustedAccount.js +1 -0
  263. package/dist/generated/prisma/models/IssuePullRequest.d.ts +6 -2
  264. package/dist/generated/prisma/models/LocalReview.d.ts +40 -1
  265. package/dist/generated/prisma/models/McpServer.d.ts +1500 -0
  266. package/dist/generated/prisma/models/McpServer.js +1 -0
  267. package/dist/generated/prisma/models/NativeGatewayCall.d.ts +77 -1
  268. package/dist/generated/prisma/models/NativeGatewaySession.d.ts +35 -1
  269. package/dist/generated/prisma/models/Principal.d.ts +167 -0
  270. package/dist/generated/prisma/models/RegistryAllowance.d.ts +41 -1
  271. package/dist/generated/prisma/models/RegistryApprovedVersion.d.ts +75 -1
  272. package/dist/generated/prisma/models/RegistryAuditRecord.d.ts +1364 -0
  273. package/dist/generated/prisma/models/RegistryAuditRecord.js +1 -0
  274. package/dist/generated/prisma/models/ResourceGrant.d.ts +1 -1
  275. package/dist/generated/prisma/models/Run.d.ts +738 -2
  276. package/dist/generated/prisma/models/RunBudgetEvent.d.ts +1211 -0
  277. package/dist/generated/prisma/models/RunBudgetEvent.js +1 -0
  278. package/dist/generated/prisma/models/RunTranscript.d.ts +1339 -0
  279. package/dist/generated/prisma/models/RunTranscript.js +1 -0
  280. package/dist/generated/prisma/models/Secret.d.ts +387 -0
  281. package/dist/generated/prisma/models/Tool.d.ts +223 -1
  282. package/dist/generated/prisma/models.d.ts +10 -0
  283. package/dist/help/search.js +12 -3
  284. package/dist/help-index.json +2033 -110
  285. package/dist/import/create.js +48 -4
  286. package/dist/import/neutral-schema.d.ts +51 -281
  287. package/dist/import/neutral-schema.js +7 -4
  288. package/dist/knowledge/check.d.ts +1 -1
  289. package/dist/knowledge/cli.d.ts +11 -1
  290. package/dist/knowledge/cli.js +37 -4
  291. package/dist/knowledge/concept.d.ts +3 -19
  292. package/dist/knowledge/location.d.ts +31 -0
  293. package/dist/knowledge/location.js +78 -0
  294. package/dist/mcp/auth/access.d.ts +10 -2
  295. package/dist/mcp/auth/access.js +15 -1
  296. package/dist/mcp/auth/grants-cli.d.ts +6 -4
  297. package/dist/mcp/auth/grants-cli.js +42 -3
  298. package/dist/mcp/auth/ownership.d.ts +7 -7
  299. package/dist/mcp/auth/resource-server.d.ts +3 -1
  300. package/dist/mcp/auth/resource-server.js +17 -2
  301. package/dist/mcp/auth/self-hosted/credentials.d.ts +3 -3
  302. package/dist/mcp/auth/self-hosted/session.d.ts +2 -2
  303. package/dist/mcp/context.d.ts +3 -0
  304. package/dist/mcp/host-events/github-ingress.d.ts +2 -0
  305. package/dist/mcp/host-events/github-ingress.js +2 -1
  306. package/dist/mcp/index.d.ts +6 -0
  307. package/dist/mcp/index.js +69 -10
  308. package/dist/mcp/server.d.ts +13 -0
  309. package/dist/mcp/server.js +33 -14
  310. package/dist/mcp/tools/agents.d.ts +4 -0
  311. package/dist/mcp/tools/agents.js +295 -28
  312. package/dist/mcp/tools/datastore.js +17 -8
  313. package/dist/mcp/tools/grants.js +73 -29
  314. package/dist/mcp/tools/host-providers.d.ts +2 -0
  315. package/dist/mcp/tools/host-providers.js +215 -0
  316. package/dist/mcp/tools/mcp-servers.d.ts +26 -0
  317. package/dist/mcp/tools/mcp-servers.js +481 -0
  318. package/dist/mcp/tools/memory.js +11 -1
  319. package/dist/mcp/tools/notification-channels.js +2 -2
  320. package/dist/mcp/tools/packages.d.ts +2 -0
  321. package/dist/mcp/tools/packages.js +195 -0
  322. package/dist/mcp/tools/repositories.js +65 -12
  323. package/dist/mcp/tools/run-access.d.ts +16 -0
  324. package/dist/mcp/tools/run-access.js +25 -0
  325. package/dist/mcp/tools/run-transcript-download.d.ts +30 -0
  326. package/dist/mcp/tools/run-transcript-download.js +129 -0
  327. package/dist/mcp/tools/run-transcript.d.ts +19 -0
  328. package/dist/mcp/tools/run-transcript.js +70 -0
  329. package/dist/mcp/tools/runs.js +209 -27
  330. package/dist/mcp/tools/scheduling.js +3 -1
  331. package/dist/mcp/tools/secret-elicitation-form.js +5 -0
  332. package/dist/mcp/tools/secret-elicitation-server.d.ts +6 -0
  333. package/dist/mcp/tools/secret-elicitation-server.js +10 -61
  334. package/dist/mcp/tools/secret-elicitation.d.ts +2 -0
  335. package/dist/mcp/tools/secret-elicitation.js +25 -2
  336. package/dist/mcp/tools/secrets.js +40 -6
  337. package/dist/mcp/tools/stop-run.d.ts +2 -0
  338. package/dist/mcp/tools/stop-run.js +82 -0
  339. package/dist/mcp/tools/subagents.js +2 -2
  340. package/dist/mcp/tools/tools.d.ts +7 -5
  341. package/dist/mcp/tools/tools.js +64 -16
  342. package/dist/mcp/tools/trigger.js +28 -6
  343. package/dist/mcp/transport/http-limits.d.ts +2 -0
  344. package/dist/mcp/transport/http-limits.js +6 -2
  345. package/dist/mcp/transport/stdio-link-host.d.ts +20 -0
  346. package/dist/mcp/transport/stdio-link-host.js +67 -0
  347. package/dist/mcp/transport/streamable-http.d.ts +13 -0
  348. package/dist/mcp/transport/streamable-http.js +41 -1
  349. package/dist/mcp/webhooks/ingress.js +10 -0
  350. package/dist/native-worker/docker-launcher.d.ts +38 -2
  351. package/dist/native-worker/docker-launcher.js +65 -5
  352. package/dist/native-worker/gateway-server.d.ts +55 -3
  353. package/dist/native-worker/gateway-server.js +152 -34
  354. package/dist/native-worker/gateway.d.ts +29 -1
  355. package/dist/native-worker/gateway.js +74 -4
  356. package/dist/native-worker/http-server.d.ts +7 -1
  357. package/dist/native-worker/http-server.js +62 -7
  358. package/dist/native-worker/http-transport.js +1 -1
  359. package/dist/native-worker/kubernetes-launcher.d.ts +7 -3
  360. package/dist/native-worker/kubernetes-launcher.js +43 -3
  361. package/dist/native-worker/launch.d.ts +18 -1
  362. package/dist/native-worker/launch.js +6 -1
  363. package/dist/native-worker/ledger.d.ts +24 -4
  364. package/dist/native-worker/ledger.js +62 -8
  365. package/dist/native-worker/loopback.js +3 -8
  366. package/dist/native-worker/main.d.ts +2 -1
  367. package/dist/native-worker/main.js +14 -3
  368. package/dist/native-worker/protocol.d.ts +130 -577
  369. package/dist/native-worker/protocol.js +51 -2
  370. package/dist/native-worker/sandbox-executor.d.ts +17 -2
  371. package/dist/native-worker/sandbox-executor.js +78 -4
  372. package/dist/native-worker/stderr-redaction.d.ts +77 -0
  373. package/dist/native-worker/stderr-redaction.js +237 -0
  374. package/dist/native-worker/stdio.d.ts +1 -1
  375. package/dist/native-worker/stdio.js +6 -5
  376. package/dist/native-worker/warm-pool.d.ts +2 -2
  377. package/dist/native-worker/warm-pool.js +4 -4
  378. package/dist/native-worker/worker.js +28 -2
  379. package/dist/observability/metrics.js +6 -1
  380. package/dist/providers/auth/self-hosted.d.ts +1 -1
  381. package/dist/providers/coding-proxy/capability-hash.d.ts +2 -0
  382. package/dist/providers/coding-proxy/capability-hash.js +5 -0
  383. package/dist/providers/coding-proxy/dependency-cache/eviction.d.ts +29 -0
  384. package/dist/providers/coding-proxy/dependency-cache/eviction.js +87 -0
  385. package/dist/providers/coding-proxy/dependency-cache/key.d.ts +33 -0
  386. package/dist/providers/coding-proxy/dependency-cache/key.js +86 -0
  387. package/dist/providers/coding-proxy/dependency-cache/model-request-seal.d.ts +18 -0
  388. package/dist/providers/coding-proxy/dependency-cache/model-request-seal.js +40 -0
  389. package/dist/providers/coding-proxy/dependency-cache/prisma-store.d.ts +25 -0
  390. package/dist/providers/coding-proxy/dependency-cache/prisma-store.js +131 -0
  391. package/dist/providers/coding-proxy/dependency-cache/service.d.ts +70 -0
  392. package/dist/providers/coding-proxy/dependency-cache/service.js +409 -0
  393. package/dist/providers/coding-proxy/dependency-cache/store.d.ts +85 -0
  394. package/dist/providers/coding-proxy/dependency-cache/store.js +95 -0
  395. package/dist/providers/coding-proxy/hold.d.ts +32 -0
  396. package/dist/providers/coding-proxy/hold.js +86 -0
  397. package/dist/providers/coding-proxy/interrupted.d.ts +70 -0
  398. package/dist/providers/coding-proxy/interrupted.js +104 -0
  399. package/dist/providers/coding-proxy/mcp-route.d.ts +34 -0
  400. package/dist/providers/coding-proxy/mcp-route.js +166 -0
  401. package/dist/providers/coding-proxy/memory-ledger.d.ts +17 -2
  402. package/dist/providers/coding-proxy/memory-ledger.js +99 -8
  403. package/dist/providers/coding-proxy/metering.d.ts +16 -0
  404. package/dist/providers/coding-proxy/metering.js +27 -4
  405. package/dist/providers/coding-proxy/prisma-ledger.d.ts +16 -2
  406. package/dist/providers/coding-proxy/prisma-ledger.js +209 -69
  407. package/dist/providers/coding-proxy/proxy.d.ts +21 -2
  408. package/dist/providers/coding-proxy/proxy.js +300 -48
  409. package/dist/providers/coding-proxy/registry/audit.d.ts +53 -10
  410. package/dist/providers/coding-proxy/registry/audit.js +94 -17
  411. package/dist/providers/coding-proxy/registry/lockfile-parse-worker.d.ts +36 -0
  412. package/dist/providers/coding-proxy/registry/lockfile-parse-worker.js +67 -0
  413. package/dist/providers/coding-proxy/registry/lockfile-parse.d.ts +16 -0
  414. package/dist/providers/coding-proxy/registry/lockfile-parse.js +110 -0
  415. package/dist/providers/coding-proxy/registry/plan.d.ts +9 -0
  416. package/dist/providers/coding-proxy/registry/plan.js +201 -48
  417. package/dist/providers/coding-proxy/registry/prisma-store.d.ts +11 -5
  418. package/dist/providers/coding-proxy/registry/prisma-store.js +120 -17
  419. package/dist/providers/coding-proxy/registry/service.d.ts +97 -16
  420. package/dist/providers/coding-proxy/registry/service.js +579 -112
  421. package/dist/providers/coding-proxy/registry/store.d.ts +84 -9
  422. package/dist/providers/coding-proxy/registry/store.js +54 -1
  423. package/dist/providers/coding-proxy/runtime.d.ts +10 -0
  424. package/dist/providers/coding-proxy/runtime.js +109 -16
  425. package/dist/providers/coding-proxy/server.d.ts +9 -1
  426. package/dist/providers/coding-proxy/server.js +55 -1
  427. package/dist/providers/coding-proxy/types.d.ts +78 -1
  428. package/dist/providers/datastore/types.d.ts +5 -0
  429. package/dist/providers/engine/types.d.ts +17 -2
  430. package/dist/providers/engine/types.js +17 -0
  431. package/dist/providers/executor/composition.d.ts +10 -3
  432. package/dist/providers/executor/composition.js +52 -7
  433. package/dist/providers/executor/container.d.ts +394 -9
  434. package/dist/providers/executor/container.js +1210 -96
  435. package/dist/providers/executor/dbos-status.d.ts +31 -0
  436. package/dist/providers/executor/dbos-status.js +64 -0
  437. package/dist/providers/executor/dbos.d.ts +50 -1
  438. package/dist/providers/executor/dbos.js +207 -20
  439. package/dist/providers/executor/deferred.d.ts +12 -24
  440. package/dist/providers/executor/deferred.js +10 -29
  441. package/dist/providers/executor/in-process.d.ts +9 -1
  442. package/dist/providers/executor/in-process.js +14 -4
  443. package/dist/providers/executor/linked-issue-reader.d.ts +16 -0
  444. package/dist/providers/executor/linked-issue-reader.js +30 -0
  445. package/dist/providers/executor/routing.d.ts +2 -0
  446. package/dist/providers/executor/routing.js +4 -0
  447. package/dist/providers/executor/types.d.ts +13 -0
  448. package/dist/providers/host-tools/invoke.d.ts +37 -0
  449. package/dist/providers/host-tools/invoke.js +117 -0
  450. package/dist/providers/host-tools/operations.d.ts +65 -0
  451. package/dist/providers/host-tools/operations.js +149 -0
  452. package/dist/providers/host-tools/registry.d.ts +79 -0
  453. package/dist/providers/host-tools/registry.js +362 -0
  454. package/dist/providers/host-tools/request-guard.d.ts +17 -0
  455. package/dist/providers/host-tools/request-guard.js +99 -0
  456. package/dist/providers/host-tools/self-test.d.ts +64 -0
  457. package/dist/providers/host-tools/self-test.js +142 -0
  458. package/dist/providers/index.d.ts +2 -1
  459. package/dist/providers/issue-tracker/types.d.ts +17 -0
  460. package/dist/providers/issue-tracker/types.js +39 -1
  461. package/dist/providers/jobs/claude-tool-setup.d.ts +4 -0
  462. package/dist/providers/jobs/claude-tool-setup.js +5 -2
  463. package/dist/providers/jobs/docker-isolation.d.ts +10 -2
  464. package/dist/providers/jobs/docker-isolation.js +47 -8
  465. package/dist/providers/jobs/docker.d.ts +9 -0
  466. package/dist/providers/jobs/docker.js +60 -11
  467. package/dist/providers/jobs/fake-kubernetes-api.d.ts +2 -0
  468. package/dist/providers/jobs/fake-kubernetes-api.js +3 -0
  469. package/dist/providers/jobs/kubernetes-api.d.ts +8 -0
  470. package/dist/providers/jobs/kubernetes-api.js +10 -0
  471. package/dist/providers/jobs/kubernetes-client.js +10 -1
  472. package/dist/providers/jobs/kubernetes-isolation.d.ts +5 -1
  473. package/dist/providers/jobs/kubernetes-isolation.js +32 -3
  474. package/dist/providers/jobs/kubernetes.d.ts +11 -1
  475. package/dist/providers/jobs/kubernetes.js +111 -17
  476. package/dist/providers/jobs/types.d.ts +39 -0
  477. package/dist/providers/jobs/types.js +13 -1
  478. package/dist/providers/llm/anthropic.js +5 -1
  479. package/dist/providers/llm/bedrock.d.ts +0 -12
  480. package/dist/providers/llm/bedrock.js +4 -0
  481. package/dist/providers/llm/claude-messages.d.ts +3 -1
  482. package/dist/providers/llm/claude-messages.js +4 -1
  483. package/dist/providers/llm/claude-provider.d.ts +2 -2
  484. package/dist/providers/llm/claude-provider.js +2 -2
  485. package/dist/providers/llm/openai.d.ts +2 -2
  486. package/dist/providers/llm/openai.js +6 -2
  487. package/dist/providers/llm/routing.d.ts +2 -2
  488. package/dist/providers/llm/routing.js +2 -2
  489. package/dist/providers/llm/types.d.ts +12 -2
  490. package/dist/providers/review-host/github-events.d.ts +9 -1
  491. package/dist/providers/review-host/github-events.js +34 -12
  492. package/dist/providers/review-host/github.d.ts +29 -2
  493. package/dist/providers/review-host/github.js +224 -29
  494. package/dist/providers/review-host/local.d.ts +8 -4
  495. package/dist/providers/review-host/local.js +49 -31
  496. package/dist/providers/review-host/patch-pages.d.ts +41 -0
  497. package/dist/providers/review-host/patch-pages.js +176 -0
  498. package/dist/providers/review-host/review-format.d.ts +19 -1
  499. package/dist/providers/review-host/review-format.js +38 -7
  500. package/dist/providers/review-host/types.d.ts +140 -6
  501. package/dist/providers/review-host/types.js +9 -1
  502. package/dist/providers/storage/gcs.d.ts +63 -0
  503. package/dist/providers/storage/gcs.js +69 -0
  504. package/dist/providers/storage/index.d.ts +15 -0
  505. package/dist/providers/storage/index.js +14 -0
  506. package/dist/providers/storage/local.d.ts +24 -0
  507. package/dist/providers/storage/local.js +92 -0
  508. package/dist/providers/storage/meter.d.ts +14 -0
  509. package/dist/providers/storage/meter.js +34 -0
  510. package/dist/providers/storage/s3.d.ts +41 -0
  511. package/dist/providers/storage/s3.js +107 -0
  512. package/dist/providers/storage/types.d.ts +37 -3
  513. package/dist/providers/storage/types.js +21 -4
  514. package/dist/providers/vcs/git.d.ts +39 -4
  515. package/dist/providers/vcs/git.js +339 -26
  516. package/dist/providers/vcs/github-remote.d.ts +26 -3
  517. package/dist/providers/vcs/github-remote.js +124 -14
  518. package/dist/providers/vcs/github.d.ts +183 -44
  519. package/dist/providers/vcs/github.js +455 -56
  520. package/dist/providers/vcs/index.d.ts +1 -1
  521. package/dist/providers/vcs/index.js +9 -2
  522. package/dist/providers/vcs/pr-description.d.ts +127 -0
  523. package/dist/providers/vcs/pr-description.js +270 -0
  524. package/dist/providers/vcs/remote.d.ts +37 -1
  525. package/dist/providers/vcs/remote.js +7 -1
  526. package/dist/providers/vcs/routing.d.ts +16 -8
  527. package/dist/providers/vcs/routing.js +27 -6
  528. package/dist/providers/vcs/types.d.ts +150 -5
  529. package/dist/quickstart/coding-seed.d.ts +14 -3
  530. package/dist/quickstart/coding-seed.js +213 -4
  531. package/dist/quickstart/index.d.ts +5 -0
  532. package/dist/quickstart/index.js +21 -0
  533. package/dist/quickstart/reviewer-prompt.d.ts +1 -1
  534. package/dist/quickstart/reviewer-prompt.js +6 -6
  535. package/dist/quickstart-images.json +1 -1
  536. package/dist/sandbox/eval-core.d.ts +12 -2
  537. package/dist/sandbox/eval-core.js +20 -4
  538. package/dist/sandbox/generated/zod.bundle.js +62 -1
  539. package/dist/sandbox/generated/zod3.bundle.js +5 -0
  540. package/dist/sandbox/host-functions.d.ts +5 -0
  541. package/dist/sandbox/host-functions.js +13 -13
  542. package/dist/sandbox/limits.d.ts +4 -1
  543. package/dist/sandbox/limits.js +4 -1
  544. package/dist/sandbox/run-in-sandbox.d.ts +6 -0
  545. package/dist/sandbox/run-in-sandbox.js +14 -2
  546. package/dist/sandbox/safe-fetch.d.ts +2 -0
  547. package/dist/sandbox/safe-fetch.js +1 -1
  548. package/dist/sandbox/secret-broker.d.ts +1 -0
  549. package/dist/sandbox/secret-broker.js +4 -5
  550. package/dist/sandbox/tool-capabilities.d.ts +10 -30
  551. package/dist/sandbox/tool-timeout.d.ts +32 -0
  552. package/dist/sandbox/tool-timeout.js +52 -0
  553. package/dist/sandbox/user-tool.d.ts +8 -1
  554. package/dist/sandbox/user-tool.js +9 -3
  555. package/dist/sandbox/zod-params.d.ts +37 -5
  556. package/dist/sandbox/zod-params.js +181 -26
  557. package/dist/serve.js +8 -1
  558. package/dist/viewer/api-schema.d.ts +349 -2627
  559. package/dist/viewer/api-schema.js +7 -0
  560. package/dist/viewer/build-schemas.js +6 -2
  561. package/dist/viewer/graph.js +2 -1
  562. package/dist/viewer/openapi.js +2 -4
  563. package/dist/wardby-bin.js +15 -0
  564. package/docs/README.md +11 -1
  565. package/docs/agent-recipes.md +95 -24
  566. package/docs/architecture-runtime.md +1 -1
  567. package/docs/claude-code-plugin.md +164 -0
  568. package/docs/code-review-agents.md +557 -41
  569. package/docs/coding-agent-setup.md +566 -8
  570. package/docs/coding-packages.md +1033 -90
  571. package/docs/coding-services.md +27 -12
  572. package/docs/coding-worker-byo-images.md +24 -2
  573. package/docs/coding-worker-isolation.md +183 -37
  574. package/docs/debugging-agent-runs.md +242 -0
  575. package/docs/getting-started-gke.md +129 -141
  576. package/docs/getting-started-identity-provider.md +53 -38
  577. package/docs/getting-started.md +17 -0
  578. package/docs/host-providers.md +294 -0
  579. package/docs/jira-agents.md +17 -8
  580. package/docs/knowledge/blob-not-found-semantics.md +41 -0
  581. package/docs/knowledge/bounded-file-descriptor.md +52 -0
  582. package/docs/knowledge/delegation-admission-slots.md +52 -0
  583. package/docs/knowledge/http-dispatcher-bootstrap.md +61 -0
  584. package/docs/knowledge/import-rename-target.md +52 -0
  585. package/docs/knowledge/index.md +57 -0
  586. package/docs/knowledge/log.md +9 -0
  587. package/docs/knowledge/mcp-cancelled-task-precedence.md +41 -0
  588. package/docs/knowledge/mcp-http-prompt-discovery.md +41 -0
  589. package/docs/knowledge/mcp-schema-module-boundary.md +41 -0
  590. package/docs/knowledge/nullable-tool-uniqueness.md +52 -0
  591. package/docs/knowledge/overview-cli.md +74 -0
  592. package/docs/knowledge/overview-coding-proxy.md +72 -0
  593. package/docs/knowledge/overview-coding.md +72 -0
  594. package/docs/knowledge/overview-config.md +60 -0
  595. package/docs/knowledge/overview-core.md +72 -0
  596. package/docs/knowledge/overview-deploy.md +83 -0
  597. package/docs/knowledge/overview-mcp.md +61 -0
  598. package/docs/knowledge/overview-prisma.md +72 -0
  599. package/docs/knowledge/overview-providers.md +89 -0
  600. package/docs/knowledge/overview-sandbox.md +83 -0
  601. package/docs/knowledge/overview-surfaces.md +83 -0
  602. package/docs/knowledge/private-datastore-shared-boundary.md +54 -0
  603. package/docs/knowledge/proxy-settlement-projections.md +41 -0
  604. package/docs/knowledge/run-pricing-first-writer.md +43 -0
  605. package/docs/knowledge/schedule-claim-transaction.md +41 -0
  606. package/docs/knowledge/secret-entry-replica-contract.md +52 -0
  607. package/docs/knowledge/terminal-run-first-writer.md +41 -0
  608. package/docs/knowledge/transactional-agent-authorization.md +52 -0
  609. package/docs/knowledge/viewer-notify-write-isolation.md +30 -0
  610. package/docs/knowledge/warm-input-publication.md +30 -0
  611. package/docs/knowledge/workspace-staging-failure.md +54 -0
  612. package/docs/knowledge.md +54 -14
  613. package/docs/mcp-servers.md +254 -0
  614. package/docs/native-sandbox.md +143 -31
  615. package/docs/observability.md +4 -0
  616. package/docs/security-deployment.md +139 -29
  617. package/docs/slack-notifications.md +35 -19
  618. package/docs/tool-secrets.md +45 -10
  619. package/docs/viewer-api.md +6 -0
  620. package/docs/viewer-api.openapi.yml +1 -1
  621. package/help/admin-viewer.md +28 -2
  622. package/help/agent-recipes.md +33 -2
  623. package/help/architecture-agent.md +11 -6
  624. package/help/brokered-secrets.md +3 -0
  625. package/help/build-claude-code-image.md +1 -1
  626. package/help/build-worker-image.md +3 -1
  627. package/help/builder-agent.md +19 -6
  628. package/help/claude-code-run-pane.md +40 -0
  629. package/help/code-review-agents.md +177 -6
  630. package/help/coding-packages.md +156 -6
  631. package/help/cost-attribution.md +9 -5
  632. package/help/creating-agents.md +14 -1
  633. package/help/dependency-cache.md +143 -0
  634. package/help/deploy-gke.md +15 -8
  635. package/help/errors/budget-exhausted.md +187 -0
  636. package/help/errors/budget-group-exhausted.md +5 -1
  637. package/help/errors/coding-mcp-pins-unavailable.md +35 -0
  638. package/help/errors/coding-stream-quota-exceeded.md +33 -0
  639. package/help/errors/coding-workspace-disk-exceeds-limit.md +39 -0
  640. package/help/errors/continuation-closed.md +9 -12
  641. package/help/errors/database-auth-invalid.md +1 -1
  642. package/help/errors/delegation-conflict.md +24 -0
  643. package/help/errors/file-list-truncated.md +45 -0
  644. package/help/errors/full-read-required.md +49 -0
  645. package/help/errors/github-account-not-allowed.md +4 -0
  646. package/help/errors/graph-incomplete.md +43 -0
  647. package/help/errors/graph-limit.md +43 -0
  648. package/help/errors/host-provider-error.md +40 -0
  649. package/help/errors/host-tool-failed.md +36 -0
  650. package/help/errors/mcp-call-limit.md +22 -0
  651. package/help/errors/mcp-call-timeout.md +22 -0
  652. package/help/errors/mcp-server-auth-failed.md +22 -0
  653. package/help/errors/mcp-server-credentials-unavailable.md +45 -0
  654. package/help/errors/mcp-server-error.md +28 -0
  655. package/help/errors/mcp-server-unreachable.md +22 -0
  656. package/help/errors/mcp-servers-off.md +21 -0
  657. package/help/errors/mcp-tool-not-allowed.md +26 -0
  658. package/help/errors/mcp-tool-removed.md +22 -0
  659. package/help/errors/mcp-unavailable.md +25 -0
  660. package/help/errors/merge-conflict.md +49 -0
  661. package/help/errors/native-sandbox-capacity.md +1 -1
  662. package/help/errors/native-sandbox-deadline-exceeded.md +1 -1
  663. package/help/errors/native-sandbox-docker-failed.md +1 -1
  664. package/help/errors/native-sandbox-gateway-error.md +20 -0
  665. package/help/errors/native-sandbox-gateway-unavailable.md +1 -1
  666. package/help/errors/native-sandbox-image-not-pinned.md +1 -1
  667. package/help/errors/native-sandbox-isolation-mismatch.md +1 -1
  668. package/help/errors/native-sandbox-launch-abandoned.md +21 -0
  669. package/help/errors/native-sandbox-network-unenforced.md +1 -1
  670. package/help/errors/native-sandbox-requires-catalog.md +1 -1
  671. package/help/errors/native-sandbox-unavailable.md +1 -1
  672. package/help/errors/native-sandbox-warm-delivery-failed.md +1 -1
  673. package/help/errors/native-sandbox-worker-exited.md +4 -3
  674. package/help/errors/native-sandbox-worker-lost.md +1 -1
  675. package/help/errors/native-sandbox-worker-unready.md +1 -1
  676. package/help/errors/package-not-allowed-pending.md +52 -0
  677. package/help/errors/package-not-allowed.md +51 -0
  678. package/help/errors/package-refusals.md +43 -0
  679. package/help/errors/patch-cursor-malformed.md +31 -0
  680. package/help/errors/repository-not-listed.md +36 -0
  681. package/help/errors/repository-required.md +36 -0
  682. package/help/errors/run-lost.md +39 -0
  683. package/help/errors/run-transcript-download.md +44 -0
  684. package/help/errors/secret-in-value.md +69 -0
  685. package/help/errors/target-merge.md +40 -0
  686. package/help/errors/tool-timeout.md +38 -0
  687. package/help/fix-merge-conflicts.md +73 -0
  688. package/help/github-app-setup.md +132 -0
  689. package/help/github.md +22 -0
  690. package/help/host-providers.md +40 -0
  691. package/help/identity-and-access.md +6 -1
  692. package/help/jira.md +23 -6
  693. package/help/knowledge.md +16 -7
  694. package/help/local-repositories.md +1 -1
  695. package/help/low-power-mode.md +7 -1
  696. package/help/mcp-servers.md +73 -0
  697. package/help/mcp.md +7 -2
  698. package/help/merge-order-check.md +5 -0
  699. package/help/native-capabilities.md +55 -1
  700. package/help/native-sandbox.md +16 -2
  701. package/help/operating-agents.md +21 -0
  702. package/help/package-audit-mode.md +91 -0
  703. package/help/related-pull-requests.md +17 -10
  704. package/help/repo-instructions-and-skills.md +3 -1
  705. package/help/resume-runs-locally.md +134 -0
  706. package/help/review-fix-rounds.md +33 -1
  707. package/help/sharing-agents.md +59 -0
  708. package/help/slack-notifications.md +19 -5
  709. package/help/status-comments.md +31 -0
  710. package/help/stop-run.md +58 -0
  711. package/help/troubleshooting/budgets.md +28 -0
  712. package/help/troubleshooting/coding-workers.md +86 -7
  713. package/help/troubleshooting/debugging-agent-runs.md +29 -0
  714. package/package.json +18 -10
  715. package/prisma/migrations/20261016000000_registry_approved_accepted_advisories/migration.sql +3 -0
  716. package/prisma/migrations/20261016000001_mark_ready_when_passing/migration.sql +3 -0
  717. package/prisma/migrations/20261017000000_debug_trace_max_mb/migration.sql +4 -0
  718. package/prisma/migrations/20261018000000_dependency_cache/migration.sql +53 -0
  719. package/prisma/migrations/20261019000000_claude_max_output_tokens/migration.sql +5 -0
  720. package/prisma/migrations/20261021000000_pr_description_hash/migration.sql +4 -0
  721. package/prisma/migrations/20261022000000_dependency_snapshot_validation_metadata/migration.sql +4 -0
  722. package/prisma/migrations/20261023000000_package_audit_mode/migration.sql +27 -0
  723. package/prisma/migrations/20261024000000_budget_events/migration.sql +26 -0
  724. package/prisma/migrations/20261025000000_cache_aware_holds/migration.sql +9 -0
  725. package/prisma/migrations/20261026000000_budget_overrun/migration.sql +4 -0
  726. package/prisma/migrations/20261027000000_coding_run_request/migration.sql +1 -0
  727. package/prisma/migrations/20261028000000_native_gateway_review_reads/migration.sql +6 -0
  728. package/prisma/migrations/20261029000000_lead_survives_deploy/migration.sql +6 -0
  729. package/prisma/migrations/20261030000000_local_review_covered_sha/migration.sql +2 -0
  730. package/prisma/migrations/20261031000000_coding_run_budget_limit/migration.sql +9 -0
  731. package/prisma/migrations/20261101000000_run_transcripts/migration.sql +22 -0
  732. package/prisma/migrations/20261102000000_host_providers/migration.sql +56 -0
  733. package/prisma/migrations/20261104000000_coding_agent_repository_list/migration.sql +5 -0
  734. package/prisma/migrations/20261106000000_tool_timeout/migration.sql +4 -0
  735. package/prisma/migrations/20261107000000_mcp_servers/migration.sql +33 -0
  736. package/prisma/migrations/20261108000000_coding_mcp/migration.sql +5 -0
  737. package/prisma/migrations/20261109000000_task_run_index/migration.sql +3 -0
  738. package/prisma/schema.prisma +468 -109
  739. package/scripts/git-askpass.sh +1 -1
  740. package/dist/sandbox/generated/zod-to-json-schema.bundle.js +0 -5
@@ -1,4 +1,4 @@
1
- import { CONTINUATION_CLOSED_ERROR } from "../../coding/continuation-wording.js";
1
+ import { budgetStoppedChangesSentence, CONTINUATION_CLOSED_ERROR } from "../../coding/continuation-wording.js";
2
2
  import { normalizeGitHubRepository, normalizeGitRef } from "../../coding/protocol.js";
3
3
  import { logger } from "../../core/logger.js";
4
4
  import { validateChangedPath } from "./git.js";
@@ -79,7 +79,57 @@ export class GitHubRemote {
79
79
  if (!open)
80
80
  throw new Error(CONTINUATION_CLOSED_ERROR);
81
81
  }
82
- async publish({ workspace: prepared, details, changedPaths }) {
82
+ /** See GitRemote.pullRequestBase: the root run's open PR's current base branch. Never throws. */
83
+ async pullRequestBase(input) {
84
+ const github = this.options.github;
85
+ if (!input.continuation || !github.openPullRequestBase)
86
+ return null;
87
+ try {
88
+ const found = await github.openPullRequestBase({
89
+ runId: input.continuation.rootRunId,
90
+ repository: input.repository,
91
+ baseRef: input.baseRef,
92
+ headRef: input.headRef,
93
+ });
94
+ return found ? { ref: found.baseRef } : null;
95
+ }
96
+ catch (error) {
97
+ logger.warn({ err: error, runId: input.runId }, "could not read the continuation pull request's base branch; continuing without merging it");
98
+ return null;
99
+ }
100
+ }
101
+ /** See VcsProvider.continuationPullRequestDraft: GitHub's draft flag on the root run's open PR. Never throws. */
102
+ async continuationPullRequestDraft(workspace) {
103
+ const github = this.options.github;
104
+ if (!workspace.continuation || !github.openPullRequestDraft)
105
+ return undefined;
106
+ try {
107
+ const draft = await github.openPullRequestDraft({
108
+ runId: workspace.continuation.rootRunId,
109
+ repository: workspace.repository,
110
+ baseRef: workspace.baseRef,
111
+ headRef: workspace.headRef,
112
+ });
113
+ return draft ?? undefined;
114
+ }
115
+ catch (error) {
116
+ logger.warn({ err: error, runId: workspace.runId }, "could not read the continuation pull request's draft state");
117
+ return undefined;
118
+ }
119
+ }
120
+ /** A continuation's description comment, written before the push (see GitRemote.proposeDescriptionBeforePush). Never throws. */
121
+ async proposeDescriptionBeforePush({ workspace: prepared, details, changedPaths, commitSha, }) {
122
+ const github = this.options.github;
123
+ if (!prepared.continuation || !details?.description || !github.proposeDescriptionComment)
124
+ return;
125
+ try {
126
+ await github.proposeDescriptionComment(this.descriptionInput({ ...prepared, continuation: prepared.continuation }, { ...details, description: details.description }, changedPaths, commitSha));
127
+ }
128
+ catch (error) {
129
+ logger.warn({ err: error, runId: prepared.runId }, "pre-push description comment failed");
130
+ }
131
+ }
132
+ async publish({ workspace: prepared, details, changedPaths, commitSha }) {
83
133
  // Revision-in-place: identify the PR by the run that originally opened
84
134
  // it (createOrFindDraftPullRequest's marker-based lookup keys on that
85
135
  // run's id), not this run's own -- this finds the existing open PR and
@@ -99,11 +149,65 @@ export class GitHubRemote {
99
149
  tag: details?.tag,
100
150
  packages: details?.packages,
101
151
  packageRefusals: details?.packageRefusals,
152
+ ...(details?.packageAudit ? { packageAudit: details.packageAudit } : {}),
153
+ ...(details?.restoredDependencies?.length ? { restoredDependencies: details.restoredDependencies } : {}),
102
154
  changedLockfiles: changedPaths.filter(isLockfilePath),
103
155
  ...(details?.issue ? { issue: details.issue } : {}),
156
+ ...(details?.issueNumber !== undefined ? { issueNumber: details.issueNumber } : {}),
104
157
  ...(details?.related ? { related: details.related } : {}),
105
158
  });
106
- return { kind: "pull_request", number: pullRequest.number, url: pullRequest.url };
159
+ let description;
160
+ if (prepared.continuation) {
161
+ description = await this.updateDescription(prepared, details, changedPaths, commitSha);
162
+ }
163
+ else if (pullRequest.descriptionSha256) {
164
+ description = { kind: "written", sha256: pullRequest.descriptionSha256 };
165
+ }
166
+ return {
167
+ kind: "pull_request",
168
+ number: pullRequest.number,
169
+ url: pullRequest.url,
170
+ ...(description ? { description } : {}),
171
+ };
172
+ }
173
+ /** The no-push path: a fix round that changed nothing still re-derives its PR description. */
174
+ async refreshDescription(workspace, details) {
175
+ // No push: the head is the commit the workspace was checked out at.
176
+ return this.updateDescription(workspace, details, [], workspace.baseCommit);
177
+ }
178
+ /** Never throws: a description problem must not fail an already-pushed run. */
179
+ async updateDescription(prepared, details, changedPaths, headSha) {
180
+ const github = this.options.github;
181
+ if (!prepared.continuation || !details?.description || !github.updatePullRequestDescription)
182
+ return undefined;
183
+ try {
184
+ return await github.updatePullRequestDescription(this.descriptionInput({ ...prepared, continuation: prepared.continuation }, { ...details, description: details.description }, changedPaths, headSha));
185
+ }
186
+ catch (error) {
187
+ logger.warn({ err: error, runId: prepared.runId }, "pull request description update failed");
188
+ return { kind: "skipped", reason: "error" };
189
+ }
190
+ }
191
+ descriptionInput(prepared, details, changedPaths, headSha) {
192
+ return {
193
+ rootRunId: prepared.continuation.rootRunId,
194
+ runId: prepared.runId,
195
+ repository: prepared.repository,
196
+ baseRef: prepared.baseRef,
197
+ headRef: prepared.headRef,
198
+ ...(headSha && /^[0-9a-f]{40}$/.test(headSha) ? { headSha } : {}),
199
+ summary: details.summary,
200
+ tests: details.tests,
201
+ tag: details.tag,
202
+ packages: details.packages,
203
+ packageRefusals: details.packageRefusals,
204
+ ...(details.packageAudit ? { packageAudit: details.packageAudit } : {}),
205
+ ...(details.restoredDependencies?.length ? { restoredDependencies: details.restoredDependencies } : {}),
206
+ changedLockfiles: changedPaths.filter(isLockfilePath),
207
+ ...(details.issue ? { issue: details.issue } : {}),
208
+ ...(details.issueNumber !== undefined ? { issueNumber: details.issueNumber } : {}),
209
+ baseline: details.description.baseline,
210
+ };
107
211
  }
108
212
  /**
109
213
  * Best-effort "wardby is working on this PR" signal (see VcsProvider) --
@@ -163,21 +267,27 @@ export class GitHubRemote {
163
267
  const summarySuffix = details?.summary ? `\n\n${details.summary}` : "";
164
268
  const budgetSuffix = details?.budgetSentence ? ` ${details.budgetSentence}` : "";
165
269
  const body = outcome === "succeeded"
166
- ? `✅ ${label} finished.${summarySuffix}`
167
- : outcome === "budget_exhausted"
168
- ? `❌ ${label} ran out of budget.${budgetSuffix}${summarySuffix}`
169
- : details?.serviceSentence
170
- ? `❌ ${label} could not start: ${details.serviceSentence}${summarySuffix}`
171
- : details?.providerSentence
172
- ? `❌ ${label} could not run: ${details.providerSentence}${summarySuffix}`
173
- : details?.protectedPathSentence
174
- ? `❌ ${label} could not open its changes: ${details.protectedPathSentence}${summarySuffix}`
175
- : `❌ ${label} failed.${summarySuffix}`;
270
+ ? `✅ ${label} finished.${details?.mergeSentence ? ` ${details.mergeSentence}` : ""}${details?.overrunSentence ? ` ${details.overrunSentence}` : ""}${summarySuffix}`
271
+ : outcome === "budget_exhausted" && details?.changesPushed
272
+ ? `⚠️ ${label} ran out of budget before finishing.${budgetSuffix} ${budgetStoppedChangesSentence(details.changesPushed.pullRequestNumber
273
+ ? `#${details.changesPushed.pullRequestNumber}`
274
+ : "this pull request", false)}${details?.mergeSentence ? ` ${details.mergeSentence}` : ""}${summarySuffix}`
275
+ : outcome === "budget_exhausted"
276
+ ? `❌ ${label} ran out of budget.${budgetSuffix}${summarySuffix}`
277
+ : details?.serviceSentence
278
+ ? `❌ ${label} could not start: ${details.serviceSentence}${summarySuffix}`
279
+ : details?.providerSentence
280
+ ? `❌ ${label} could not run: ${details.providerSentence}${summarySuffix}`
281
+ : details?.protectedPathSentence
282
+ ? `❌ ${label} could not open its changes: ${details.protectedPathSentence}${summarySuffix}`
283
+ : details?.conflictMarkersSentence
284
+ ? `❌ ${label} could not push its changes: ${details.conflictMarkersSentence}${summarySuffix}`
285
+ : `❌ ${label} failed.${summarySuffix}`;
176
286
  await Promise.allSettled([
177
287
  this.options.github.updateContinuationStatusComment({ ...identity, body }),
178
288
  this.options.github.completeContinuationCheckRun({
179
289
  repository: workspace.repository,
180
- headSha: workspace.baseCommit,
290
+ ...(workspace.baseCommit ? { headSha: workspace.baseCommit } : { headRef: workspace.headRef }),
181
291
  runId: workspace.runId,
182
292
  outcome: outcome === "succeeded" ? "succeeded" : "failed",
183
293
  }),
@@ -1,3 +1,8 @@
1
+ import { type PackageAuditReport } from "../../coding/registry/audit-mode.js";
2
+ import { RELATED_SECTION_END, RELATED_SECTION_START } from "./pr-description.js";
3
+ import type { DescriptionBaseline, DescriptionUpdateResult, RelatedPullRequestEntry, RelatedPullRequestState, RelatedPullRequestsInput, RepositoryFileInput } from "./types.js";
4
+ export type { DescriptionBaseline, DescriptionUpdateResult, RelatedPullRequestEntry, RelatedPullRequestState, RelatedPullRequestsInput, RepositoryFileInput, };
5
+ export { RELATED_SECTION_END, RELATED_SECTION_START };
1
6
  export interface GitHubAppConfig {
2
7
  appId: string;
3
8
  privateKey: string;
@@ -13,6 +18,9 @@ export interface PackageReport {
13
18
  ecosystem: string;
14
19
  name: string;
15
20
  version: string;
21
+ /** Blocking advisories the run's packagePolicy.acceptedAdvisories waived
22
+ * to serve it; listed under "Accepted advisories". */
23
+ acceptedAdvisories?: readonly string[];
16
24
  }
17
25
  /** One package the registry proxy refused during the run (RegistryFetch outcome "refused"). */
18
26
  export interface PackageRefusal {
@@ -32,6 +40,15 @@ export interface PullRequestInput {
32
40
  /** Deduplicated by the caller isn't required — pullRequestBody dedupes itself (ecosystem+name+version / +reason). */
33
41
  packages?: readonly PackageReport[];
34
42
  packageRefusals?: readonly PackageRefusal[];
43
+ /**
44
+ * Package audit mode (control-plane records, never model output): rendered
45
+ * as a [!CAUTION] banner with the packages installed outside the allowlist
46
+ * (and, in full mode, versions served past advisories). Kept when the
47
+ * packages section is dropped for size.
48
+ */
49
+ packageAudit?: PackageAuditReport;
50
+ /** Folders whose node_modules the dependency cache restored from a snapshot ("." for the root); control-plane data. */
51
+ restoredDependencies?: readonly string[];
35
52
  /** Lock files the run changed (repository paths); with refusals, the PR body warns they may be incomplete. */
36
53
  changedLockfiles?: readonly string[];
37
54
  /**
@@ -55,15 +72,57 @@ export interface PullRequestInput {
55
72
  url?: string;
56
73
  trackerName?: string;
57
74
  };
75
+ /**
76
+ * The issue in this pull request's own repository the run came from (a
77
+ * mention on a GitHub issue; control-plane data, never model output): the
78
+ * body's first visible line is `From issue #N`, the GitHub issue's form of
79
+ * the issue line above. It links the issue but never closes it: whether
80
+ * merging closes it is the agent's choice (`Resolves #N` or `Refs #N` in
81
+ * its summary). Used only when `issue` renders no line.
82
+ */
83
+ issueNumber?: number;
58
84
  /**
59
85
  * The request's other pull requests (control-plane rows only), rendered as
60
86
  * the marked "Related pull requests" section. Rendering failures omit it.
61
87
  */
62
88
  related?: RelatedPullRequestsInput;
89
+ /**
90
+ * The run that last wrote this description (a fix round), rendered as the
91
+ * hidden `<!-- wardby-latest:<runId> -->` last line. The root run marker
92
+ * stays first. Dropped when it isn't a safe run id.
93
+ */
94
+ latestRunId?: string;
95
+ /**
96
+ * What the packages list covers: this run (the default), or every run on
97
+ * the pull request (a later run's description update, whose `packages` are
98
+ * cumulative). Only the section title differs.
99
+ */
100
+ packagesScope?: "run" | "pull_request";
63
101
  }
64
102
  export interface PullRequestResult {
65
103
  number: number;
66
104
  url: string;
105
+ /**
106
+ * Hash (descriptionSha256) of the body in GitHub's create response. Set only
107
+ * when this call created the pull request; absent when it found one.
108
+ */
109
+ descriptionSha256?: string;
110
+ }
111
+ /**
112
+ * A fix round's description update. `runId` is this (latest) run; the pull
113
+ * request is re-found by `rootRunId`'s marker. `related` is ignored: the
114
+ * current body's Related block is kept verbatim.
115
+ */
116
+ export interface UpdateDescriptionInput extends Omit<PullRequestInput, "runId" | "acceptReadyForReview"> {
117
+ rootRunId: string;
118
+ runId: string;
119
+ baseline: DescriptionBaseline;
120
+ /**
121
+ * The head commit this description describes (the run's pushed commit, or
122
+ * the unchanged head of a no-change round); stamped on the fallback
123
+ * comment so a reviewer only trusts a proposal for the head it reviews.
124
+ */
125
+ headSha?: string;
67
126
  }
68
127
  /** See VcsProvider.notifyContinuationStarted/Finished (types.ts) — these back that GitHub-specific mechanism. */
69
128
  export interface ContinuationStatusCommentInput {
@@ -82,17 +141,18 @@ export interface ContinuationCheckRunInput {
82
141
  /** Stored as the check run's external_id — the re-lookup key, so no numeric id needs to be cached anywhere. */
83
142
  runId: string;
84
143
  }
85
- export interface ContinuationCheckRunCompleteInput extends ContinuationCheckRunInput {
86
- outcome: "succeeded" | "failed";
87
- }
88
- /** One file at one ref, read through the API without a clone. */
89
- export interface RepositoryFileInput {
144
+ export interface ContinuationCheckRunCompleteInput {
90
145
  repository: string;
91
- ref: string;
92
- /** Repository-relative POSIX path. */
93
- path: string;
94
- /** Refused above this many bytes. */
95
- maxBytes: number;
146
+ runId: string;
147
+ outcome: "succeeded" | "failed";
148
+ /** The commit the check run was created on. */
149
+ headSha?: string;
150
+ /**
151
+ * Used when headSha is unknown (the run's workspace is gone): the check run is
152
+ * looked up on the pull request's head branch, which a run that pushed nothing
153
+ * left at that commit.
154
+ */
155
+ headRef?: string;
96
156
  }
97
157
  export interface GitHubRepositoryAccess {
98
158
  withRepositoryToken<T>(repository: string, action: (token: string) => Promise<T>): Promise<T>;
@@ -108,6 +168,46 @@ export interface GitHubRepositoryAccess {
108
168
  baseRef: string;
109
169
  headRef: string;
110
170
  }): Promise<PullRequestResult | null>;
171
+ /**
172
+ * Whether the root run's marked open pull request is still a draft: true or
173
+ * false, or null when it is not open (merged, closed, or gone). Optional:
174
+ * without it a caller treats the draft state as unknown.
175
+ */
176
+ openPullRequestDraft?(input: {
177
+ runId: string;
178
+ repository: string;
179
+ baseRef: string;
180
+ headRef: string;
181
+ }): Promise<boolean | null>;
182
+ /**
183
+ * The current base branch of the root run's marked open pull request (it
184
+ * changes when someone retargets the PR), or null when the PR is not open or
185
+ * its head or base is in another repository (a fork). Optional: without it,
186
+ * continuations are not brought up to date with their target branch.
187
+ */
188
+ openPullRequestBase?(input: {
189
+ runId: string;
190
+ repository: string;
191
+ baseRef: string;
192
+ headRef: string;
193
+ }): Promise<{
194
+ number: number;
195
+ baseRef: string;
196
+ } | null>;
197
+ /**
198
+ * Rewrites the root run's open pull request description for a fix round,
199
+ * or, when a person edited it since wardby last wrote it, upserts a comment
200
+ * carrying the proposed description instead. Never throws. Optional:
201
+ * without it, descriptions are not updated after the first run.
202
+ */
203
+ updatePullRequestDescription?(input: UpdateDescriptionInput): Promise<DescriptionUpdateResult>;
204
+ /**
205
+ * Before a fix round's push: when wardby can't write the description
206
+ * directly, writes (or updates) the fallback comment stamped with the head
207
+ * about to be pushed, so it already exists when the push starts a review.
208
+ * True when it wrote one. Never throws. Optional.
209
+ */
210
+ proposeDescriptionComment?(input: UpdateDescriptionInput): Promise<boolean>;
111
211
  /** Creates the status comment if none exists yet for this run, else updates it. */
112
212
  upsertContinuationStatusComment(input: ContinuationStatusCommentInput): Promise<void>;
113
213
  /** Updates the status comment if one already exists for this run; a no-op otherwise (never creates). */
@@ -124,48 +224,19 @@ export interface GitHubRepositoryAccess {
124
224
  readFileAtRef?(input: RepositoryFileInput): Promise<string | null>;
125
225
  }
126
226
  type Fetch = typeof globalThis.fetch;
127
- /** Accepts bounded opaque installation tokens without allowing control characters. */
128
- export declare function isSafeGitHubInstallationToken(value: unknown): value is string;
129
227
  /**
130
228
  * Same shape as ISSUE_KEY (issue-tracker/types.ts); duplicated so the VCS layer
131
229
  * stays free of issue-tracker imports (a test keeps the two in step). The
132
230
  * executor validates with the shared one.
133
231
  */
134
232
  export declare const PR_ISSUE_KEY: RegExp;
233
+ /** Same shape as GITHUB_ISSUE_KEY (issue-tracker/types.ts), duplicated likewise. Only the Related section shows one. */
234
+ export declare const PR_GITHUB_ISSUE_KEY: RegExp;
135
235
  export declare function pullRequestTitle(input: PullRequestInput): string;
136
- export declare const RELATED_SECTION_START = "<!-- wardby-related:start -->";
137
- export declare const RELATED_SECTION_END = "<!-- wardby-related:end -->";
138
236
  /** At most this many pull requests are listed; the rest are counted. */
139
237
  export declare const MAX_RELATED_PULL_REQUESTS = 20;
140
238
  /** GitHub rejects a pull request body longer than this. */
141
239
  export declare const MAX_PULL_REQUEST_BODY_CHARS = 65536;
142
- export type RelatedPullRequestState = "open" | "draft" | "merged" | "closed";
143
- /** One pull request of the request's set, from stored control-plane rows only. */
144
- export interface RelatedPullRequestEntry {
145
- repository: string;
146
- /** Absent only for `self` while the pull request is being created. */
147
- number?: number;
148
- /** Live state; absent when unknown (at creation). */
149
- state?: RelatedPullRequestState;
150
- /** The pull request whose description this section is in. */
151
- self?: boolean;
152
- /**
153
- * Step in the delegating agent's declared merge order (1-99), from
154
- * CodingRun.mergeOrder; absent = the delegating agent set no order
155
- * (an open entry is listed under "Not ordered:" when any other entry,
156
- * open or done, has one).
157
- */
158
- mergeOrder?: number;
159
- }
160
- export interface RelatedPullRequestsInput {
161
- /** In merge order: by mergeOrder when set, else the order the request's coding runs were dispatched. */
162
- entries: readonly RelatedPullRequestEntry[];
163
- issue?: {
164
- key: string;
165
- url?: string;
166
- trackerName?: string;
167
- };
168
- }
169
240
  /**
170
241
  * The "Related pull requests" block, markers included, built only from
171
242
  * stored rows (never agent text). Open (and draft, and not-yet-known) pull
@@ -204,8 +275,15 @@ export declare function isLockfilePath(path: string): boolean;
204
275
  */
205
276
  /** Rendered verbatim in refusalWarning's first line, and used to locate it in tests. */
206
277
  export declare const DEPENDENCY_INSTALL_INCOMPLETE = "Dependency install incomplete.";
207
- /** The hidden run marker stays first and unconditional: createOrFindDraftPullRequest's idempotent lookup depends on it. */
208
- export declare function pullRequestBody(input: PullRequestInput): string;
278
+ /**
279
+ * The pull request body, within GitHub's MAX_PULL_REQUEST_BODY_CHARS. When it
280
+ * would be longer, the informational Packages section goes first; if that is
281
+ * not enough, the agent's summary is truncated to fit (fitSummary keeps its
282
+ * closing-keyword line). The other sections are bounded and stay whole.
283
+ */
284
+ export declare function pullRequestBody(input: PullRequestInput, options?: {
285
+ omitPackages?: boolean;
286
+ }): string;
209
287
  export declare class GitHubAppClient implements GitHubRepositoryAccess {
210
288
  private readonly config;
211
289
  private readonly fetchImpl;
@@ -276,6 +354,59 @@ export declare class GitHubAppClient implements GitHubRepositoryAccess {
276
354
  baseRef: string;
277
355
  headRef: string;
278
356
  }): Promise<PullRequestResult | null>;
357
+ /** See GitHubRepositoryAccess.openPullRequestDraft: GitHub's own `draft` flag on the marked open PR. */
358
+ openPullRequestDraft(input: {
359
+ runId: string;
360
+ repository: string;
361
+ baseRef: string;
362
+ headRef: string;
363
+ }): Promise<boolean | null>;
364
+ /** See GitHubRepositoryAccess.openPullRequestBase: the marked open PR's current base, same repository only. */
365
+ openPullRequestBase(input: {
366
+ runId: string;
367
+ repository: string;
368
+ baseRef: string;
369
+ headRef: string;
370
+ }): Promise<{
371
+ number: number;
372
+ baseRef: string;
373
+ } | null>;
374
+ /**
375
+ * A fix round's description update (see GitHubRepositoryAccess). One
376
+ * repository token; every failure becomes `skipped:error`.
377
+ */
378
+ updatePullRequestDescription(input: UpdateDescriptionInput): Promise<DescriptionUpdateResult>;
379
+ /** See GitHubRepositoryAccess.proposeDescriptionComment. */
380
+ proposeDescriptionComment(input: UpdateDescriptionInput): Promise<boolean>;
381
+ /** The validated repository and refs; throws unless this is wardby's own pull request branch. */
382
+ private descriptionTarget;
383
+ /**
384
+ * The open pull request, the description this run proposes, and whether
385
+ * wardby may write it directly: it is unedited (recorded or rebuilt hash),
386
+ * or a person copied wardby's latest proposal in (taken back). Null when
387
+ * the pull request isn't open. `comments` is set when it was read.
388
+ */
389
+ private descriptionState;
390
+ /**
391
+ * The rebuilt description: the generated sections from this run with
392
+ * `summary` as the agent text, the latest-run marker last, and the current
393
+ * body's Related block re-inserted verbatim. `proposed` drops the Packages
394
+ * section when `full` exceeds GitHub's limit, and is undefined when it still
395
+ * would.
396
+ */
397
+ private proposedDescription;
398
+ /**
399
+ * Creates the pull request's one description comment, or edits the newest
400
+ * one this App wrote (unchanged text is not re-sent); older duplicates are
401
+ * rewritten to point at it. A comment anyone else wrote is never edited.
402
+ */
403
+ private upsertDescriptionComment;
404
+ /** Once a run applied its description, a pending proposal in the description comment is marked applied. */
405
+ private markDescriptionCommentApplied;
406
+ /** Rewrites duplicate description comments to a pointer at the one in use. */
407
+ private supersedeDescriptionComments;
408
+ /** The description comments this App wrote (see findDescriptionComments; the reviewer reads them the same way). */
409
+ private findDescriptionComments;
279
410
  private appJwt;
280
411
  private mintRepositoryToken;
281
412
  /**
@@ -289,8 +420,17 @@ export declare class GitHubAppClient implements GitHubRepositoryAccess {
289
420
  private mintScopedToken;
290
421
  private revokeToken;
291
422
  private findPullRequest;
423
+ /**
424
+ * findPullRequest, plus the matched pull request's raw body and payload. Not
425
+ * filtered by base: a person may retarget the PR, and the head branch plus the
426
+ * run marker already identify it. When several open PRs match, the one on
427
+ * `baseRef` wins.
428
+ */
429
+ private findMarkedPullRequest;
292
430
  private parsePullRequest;
293
431
  private findStatusComment;
432
+ /** The first comment on the pull request (first page) whose body `matches`. */
433
+ private findMarkedComment;
294
434
  private findCheckRun;
295
435
  /** Public for the code-review host, which issues its own REST calls with tokens minted here. */
296
436
  requestJson(path: string, bearer: string, init?: RequestInit, expectedStatuses?: number[]): Promise<Response>;
@@ -300,4 +440,3 @@ export declare class GitHubAppClient implements GitHubRepositoryAccess {
300
440
  */
301
441
  graphql(bearer: string, query: string, variables: Record<string, unknown>): Promise<Record<string, unknown>>;
302
442
  }
303
- export {};