@wardby/cli 0.6.0 → 0.7.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 (576) hide show
  1. package/deploy/local/docker-compose.quickstart-coding.yml +13 -0
  2. package/dist/claude-coding-worker/driver.d.ts +21 -3
  3. package/dist/claude-coding-worker/driver.js +125 -17
  4. package/dist/claude-coding-worker/main.js +34 -6
  5. package/dist/claude-coding-worker/sdk.js +12 -1
  6. package/dist/claude-coding-worker/tool-socket.d.ts +27 -0
  7. package/dist/claude-coding-worker/tool-socket.js +111 -0
  8. package/dist/claude-coding-worker/transcript.d.ts +18 -0
  9. package/dist/claude-coding-worker/transcript.js +77 -0
  10. package/dist/cli-help.d.ts +1 -1
  11. package/dist/cli-help.js +1 -0
  12. package/dist/cli.js +24 -10
  13. package/dist/coding/continuation-wording.d.ts +35 -0
  14. package/dist/coding/continuation-wording.js +73 -0
  15. package/dist/coding/linked-issue-note.d.ts +23 -0
  16. package/dist/coding/linked-issue-note.js +47 -0
  17. package/dist/coding/merge-wording.d.ts +28 -0
  18. package/dist/coding/merge-wording.js +78 -0
  19. package/dist/coding/pr-description-note.d.ts +9 -0
  20. package/dist/coding/pr-description-note.js +32 -0
  21. package/dist/coding/profile.d.ts +46 -126
  22. package/dist/coding/profile.js +45 -4
  23. package/dist/coding/protected-path-wording.d.ts +8 -0
  24. package/dist/coding/protected-path-wording.js +1 -1
  25. package/dist/coding/protocol.d.ts +264 -346
  26. package/dist/coding/protocol.js +235 -12
  27. package/dist/coding/redact.d.ts +3 -0
  28. package/dist/coding/redact.js +12 -0
  29. package/dist/coding/registry/allowlist.d.ts +12 -0
  30. package/dist/coding/registry/allowlist.js +14 -1
  31. package/dist/coding/registry/audit-mode.d.ts +153 -0
  32. package/dist/coding/registry/audit-mode.js +304 -0
  33. package/dist/coding/registry/lockfile-shared.d.ts +36 -0
  34. package/dist/coding/registry/lockfile-shared.js +128 -0
  35. package/dist/coding/registry/lockfiles.js +1 -1
  36. package/dist/coding/registry/npm-lockfile-formats.d.ts +11 -0
  37. package/dist/coding/registry/npm-lockfile-formats.js +41 -0
  38. package/dist/coding/registry/npm-lockfile.d.ts +8 -4
  39. package/dist/coding/registry/npm-lockfile.js +4 -6
  40. package/dist/coding/registry/npm.js +78 -8
  41. package/dist/coding/registry/pnpm-lockfile.d.ts +17 -0
  42. package/dist/coding/registry/pnpm-lockfile.js +189 -0
  43. package/dist/coding/registry/pypi-plan.d.ts +50 -0
  44. package/dist/coding/registry/pypi-plan.js +406 -0
  45. package/dist/coding/registry/pypi-requirements.d.ts +58 -0
  46. package/dist/coding/registry/pypi-requirements.js +155 -0
  47. package/dist/coding/registry/pypi.d.ts +3 -27
  48. package/dist/coding/registry/pypi.js +40 -154
  49. package/dist/coding/registry/refusal-hints.d.ts +20 -0
  50. package/dist/coding/registry/refusal-hints.js +61 -0
  51. package/dist/coding/registry/refusal-wording.d.ts +11 -0
  52. package/dist/coding/registry/refusal-wording.js +56 -0
  53. package/dist/coding/registry/report.d.ts +70 -8
  54. package/dist/coding/registry/report.js +112 -5
  55. package/dist/coding/registry/types.d.ts +58 -8
  56. package/dist/coding/registry/yarn-lockfile.d.ts +30 -0
  57. package/dist/coding/registry/yarn-lockfile.js +367 -0
  58. package/dist/coding/services/catalog.d.ts +37 -351
  59. package/dist/coding/transcript/claude-code.d.ts +13 -0
  60. package/dist/coding/transcript/claude-code.js +273 -0
  61. package/dist/coding/transcript/download-protocol.d.ts +30 -0
  62. package/dist/coding/transcript/download-protocol.js +18 -0
  63. package/dist/coding/transcript/format.d.ts +20 -0
  64. package/dist/coding/transcript/format.js +32 -0
  65. package/dist/coding/transcript/recorder.d.ts +51 -0
  66. package/dist/coding/transcript/recorder.js +225 -0
  67. package/dist/coding/transcript/resume/checkout.d.ts +31 -0
  68. package/dist/coding/transcript/resume/checkout.js +203 -0
  69. package/dist/coding/transcript/resume/command.d.ts +17 -0
  70. package/dist/coding/transcript/resume/command.js +176 -0
  71. package/dist/coding/transcript/resume/download.d.ts +20 -0
  72. package/dist/coding/transcript/resume/download.js +153 -0
  73. package/dist/coding/transcript/resume/launch.d.ts +38 -0
  74. package/dist/coding/transcript/resume/launch.js +128 -0
  75. package/dist/coding/transcript/resume/session-file.d.ts +13 -0
  76. package/dist/coding/transcript/resume/session-file.js +79 -0
  77. package/dist/coding/transcript/resume/stand-in.d.ts +11 -0
  78. package/dist/coding/transcript/resume/stand-in.js +49 -0
  79. package/dist/coding-worker/artifact.d.ts +8 -3
  80. package/dist/coding-worker/artifact.js +3 -1
  81. package/dist/coding-worker/debug-trace.d.ts +6 -5
  82. package/dist/coding-worker/debug-trace.js +13 -18
  83. package/dist/coding-worker/dependency-cache.d.mts +229 -0
  84. package/dist/coding-worker/dependency-cache.mjs +2123 -0
  85. package/dist/coding-worker/driver.d.ts +4 -3
  86. package/dist/coding-worker/driver.js +116 -38
  87. package/dist/coding-worker/errors.d.ts +1 -0
  88. package/dist/coding-worker/errors.js +32 -0
  89. package/dist/coding-worker/task-note.d.ts +11 -0
  90. package/dist/coding-worker/task-note.js +13 -0
  91. package/dist/coding-worker/types.d.ts +11 -0
  92. package/dist/config/dependency-cache.d.ts +23 -0
  93. package/dist/config/dependency-cache.js +32 -0
  94. package/dist/config/providers.d.ts +12 -3
  95. package/dist/config/providers.js +55 -5
  96. package/dist/config/test-simulators.d.ts +82 -0
  97. package/dist/config/test-simulators.js +305 -0
  98. package/dist/core/async-context.d.ts +2 -0
  99. package/dist/core/async-context.js +12 -0
  100. package/dist/core/budget-events.d.ts +108 -0
  101. package/dist/core/budget-events.js +346 -0
  102. package/dist/core/budget-groups.d.ts +50 -1
  103. package/dist/core/budget-groups.js +236 -27
  104. package/dist/core/budget-stopped-head.d.ts +46 -0
  105. package/dist/core/budget-stopped-head.js +81 -0
  106. package/dist/core/budget-topup.d.ts +51 -0
  107. package/dist/core/budget-topup.js +156 -0
  108. package/dist/core/budget-wording.d.ts +16 -2
  109. package/dist/core/budget-wording.js +40 -2
  110. package/dist/core/coding-queue.d.ts +2 -1
  111. package/dist/core/coding-queue.js +7 -0
  112. package/dist/core/cron.d.ts +19 -1
  113. package/dist/core/cron.js +17 -0
  114. package/dist/core/datastores.js +1 -1
  115. package/dist/core/deferred-coding.d.ts +14 -0
  116. package/dist/core/deferred-coding.js +62 -0
  117. package/dist/core/delegation-child.d.ts +25 -0
  118. package/dist/core/delegation-child.js +37 -0
  119. package/dist/core/dispatch.d.ts +42 -0
  120. package/dist/core/dispatch.js +131 -56
  121. package/dist/core/engine-native.js +1 -1
  122. package/dist/core/error-code.d.ts +38 -0
  123. package/dist/core/error-code.js +168 -0
  124. package/dist/core/grants.d.ts +19 -6
  125. package/dist/core/grants.js +55 -6
  126. package/dist/core/host-events.d.ts +18 -2
  127. package/dist/core/host-events.js +284 -24
  128. package/dist/core/host-status.d.ts +85 -3
  129. package/dist/core/host-status.js +298 -20
  130. package/dist/core/issue-bridge.d.ts +50 -6
  131. package/dist/core/issue-bridge.js +124 -33
  132. package/dist/core/issue-events.d.ts +1 -1
  133. package/dist/core/issue-events.js +4 -10
  134. package/dist/core/issue-status.d.ts +1 -1
  135. package/dist/core/issue-status.js +54 -26
  136. package/dist/core/logger.d.ts +5 -0
  137. package/dist/core/logger.js +14 -1
  138. package/dist/core/lost-run-children.d.ts +6 -0
  139. package/dist/core/lost-run-children.js +32 -0
  140. package/dist/core/mark-ready.d.ts +34 -0
  141. package/dist/core/mark-ready.js +152 -0
  142. package/dist/core/markdown-code.d.ts +8 -0
  143. package/dist/core/markdown-code.js +107 -0
  144. package/dist/core/memory-tools.js +7 -0
  145. package/dist/core/merge-order-check.d.ts +2 -1
  146. package/dist/core/merge-order-check.js +8 -1
  147. package/dist/core/notification-templates.d.ts +1 -7
  148. package/dist/core/notification-templates.js +36 -2
  149. package/dist/core/pull-request-state-sync.js +2 -2
  150. package/dist/core/reconciler.d.ts +4 -3
  151. package/dist/core/reconciler.js +8 -1
  152. package/dist/core/related-pull-requests.d.ts +11 -3
  153. package/dist/core/related-pull-requests.js +27 -14
  154. package/dist/core/reply-parts.d.ts +21 -0
  155. package/dist/core/reply-parts.js +73 -0
  156. package/dist/core/review-fix.d.ts +1 -1
  157. package/dist/core/review-fix.js +2 -1
  158. package/dist/core/review-host-checks.d.ts +1 -1
  159. package/dist/core/review-host-tools.d.ts +3 -0
  160. package/dist/core/review-host-tools.js +99 -13
  161. package/dist/core/review-reads.d.ts +55 -0
  162. package/dist/core/review-reads.js +233 -0
  163. package/dist/core/run-status.d.ts +12 -0
  164. package/dist/core/run-status.js +12 -0
  165. package/dist/core/runner.d.ts +80 -34
  166. package/dist/core/runner.js +439 -144
  167. package/dist/core/schedule-start.d.ts +12 -0
  168. package/dist/core/schedule-start.js +14 -0
  169. package/dist/core/secret-broker-config.d.ts +10 -74
  170. package/dist/core/secret-guard.d.ts +46 -0
  171. package/dist/core/secret-guard.js +104 -0
  172. package/dist/core/secret-guarded-stores.d.ts +12 -0
  173. package/dist/core/secret-guarded-stores.js +41 -0
  174. package/dist/core/secret-spans.d.ts +50 -0
  175. package/dist/core/secret-spans.js +94 -0
  176. package/dist/core/stop-run.d.ts +46 -0
  177. package/dist/core/stop-run.js +61 -0
  178. package/dist/core/workflow-events.d.ts +14 -2
  179. package/dist/core/workflow-events.js +4 -0
  180. package/dist/core/workflow-run-events.d.ts +5 -3
  181. package/dist/core/workflow-run-events.js +43 -8
  182. package/dist/core/zod-json-schema.d.ts +4 -0
  183. package/dist/core/zod-json-schema.js +39 -0
  184. package/dist/core/zod3-window.d.ts +35 -0
  185. package/dist/core/zod3-window.js +124 -0
  186. package/dist/generated/prisma/browser.d.ts +34 -3
  187. package/dist/generated/prisma/client.d.ts +34 -3
  188. package/dist/generated/prisma/commonInputTypes.d.ts +220 -60
  189. package/dist/generated/prisma/enums.d.ts +10 -0
  190. package/dist/generated/prisma/enums.js +8 -0
  191. package/dist/generated/prisma/internal/class.d.ts +44 -0
  192. package/dist/generated/prisma/internal/class.js +4 -4
  193. package/dist/generated/prisma/internal/prismaNamespace.d.ts +428 -9
  194. package/dist/generated/prisma/internal/prismaNamespace.js +92 -1
  195. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +95 -0
  196. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +92 -1
  197. package/dist/generated/prisma/models/Agent.d.ts +106 -8
  198. package/dist/generated/prisma/models/AgentRepository.d.ts +42 -1
  199. package/dist/generated/prisma/models/CodingAgentProfile.d.ts +229 -1
  200. package/dist/generated/prisma/models/CodingProxyRequest.d.ts +207 -3
  201. package/dist/generated/prisma/models/CodingProxySession.d.ts +114 -1
  202. package/dist/generated/prisma/models/CodingRun.d.ts +1637 -1
  203. package/dist/generated/prisma/models/DependencySnapshot.d.ts +1668 -0
  204. package/dist/generated/prisma/models/DependencySnapshot.js +1 -0
  205. package/dist/generated/prisma/models/IssuePullRequest.d.ts +6 -2
  206. package/dist/generated/prisma/models/LocalReview.d.ts +40 -1
  207. package/dist/generated/prisma/models/NativeGatewayCall.d.ts +39 -1
  208. package/dist/generated/prisma/models/NativeGatewaySession.d.ts +35 -1
  209. package/dist/generated/prisma/models/RegistryAllowance.d.ts +41 -1
  210. package/dist/generated/prisma/models/RegistryApprovedVersion.d.ts +75 -1
  211. package/dist/generated/prisma/models/RegistryAuditRecord.d.ts +1364 -0
  212. package/dist/generated/prisma/models/RegistryAuditRecord.js +1 -0
  213. package/dist/generated/prisma/models/Run.d.ts +738 -2
  214. package/dist/generated/prisma/models/RunBudgetEvent.d.ts +1211 -0
  215. package/dist/generated/prisma/models/RunBudgetEvent.js +1 -0
  216. package/dist/generated/prisma/models/RunTranscript.d.ts +1339 -0
  217. package/dist/generated/prisma/models/RunTranscript.js +1 -0
  218. package/dist/generated/prisma/models.d.ts +4 -0
  219. package/dist/help-index.json +1320 -69
  220. package/dist/import/create.js +32 -3
  221. package/dist/import/neutral-schema.d.ts +50 -281
  222. package/dist/import/neutral-schema.js +5 -4
  223. package/dist/knowledge/check.d.ts +1 -1
  224. package/dist/knowledge/cli.d.ts +11 -1
  225. package/dist/knowledge/cli.js +37 -4
  226. package/dist/knowledge/concept.d.ts +3 -19
  227. package/dist/knowledge/location.d.ts +31 -0
  228. package/dist/knowledge/location.js +78 -0
  229. package/dist/mcp/auth/access.d.ts +10 -2
  230. package/dist/mcp/auth/access.js +15 -1
  231. package/dist/mcp/auth/ownership.d.ts +7 -7
  232. package/dist/mcp/auth/self-hosted/credentials.d.ts +3 -3
  233. package/dist/mcp/auth/self-hosted/session.d.ts +2 -2
  234. package/dist/mcp/host-events/github-ingress.d.ts +2 -0
  235. package/dist/mcp/host-events/github-ingress.js +2 -1
  236. package/dist/mcp/index.d.ts +6 -0
  237. package/dist/mcp/index.js +58 -10
  238. package/dist/mcp/server.d.ts +13 -0
  239. package/dist/mcp/server.js +33 -14
  240. package/dist/mcp/tools/agents.d.ts +4 -0
  241. package/dist/mcp/tools/agents.js +198 -16
  242. package/dist/mcp/tools/datastore.js +17 -8
  243. package/dist/mcp/tools/grants.js +9 -3
  244. package/dist/mcp/tools/memory.js +11 -1
  245. package/dist/mcp/tools/notification-channels.js +2 -2
  246. package/dist/mcp/tools/packages.d.ts +2 -0
  247. package/dist/mcp/tools/packages.js +195 -0
  248. package/dist/mcp/tools/repositories.js +18 -5
  249. package/dist/mcp/tools/run-access.d.ts +16 -0
  250. package/dist/mcp/tools/run-access.js +25 -0
  251. package/dist/mcp/tools/run-transcript-download.d.ts +30 -0
  252. package/dist/mcp/tools/run-transcript-download.js +129 -0
  253. package/dist/mcp/tools/run-transcript.d.ts +19 -0
  254. package/dist/mcp/tools/run-transcript.js +70 -0
  255. package/dist/mcp/tools/runs.js +34 -12
  256. package/dist/mcp/tools/scheduling.js +3 -1
  257. package/dist/mcp/tools/secret-elicitation-form.js +5 -0
  258. package/dist/mcp/tools/secret-elicitation-server.d.ts +6 -0
  259. package/dist/mcp/tools/secret-elicitation-server.js +10 -61
  260. package/dist/mcp/tools/secrets.js +2 -2
  261. package/dist/mcp/tools/stop-run.d.ts +2 -0
  262. package/dist/mcp/tools/stop-run.js +82 -0
  263. package/dist/mcp/tools/subagents.js +2 -2
  264. package/dist/mcp/tools/tools.d.ts +1 -1
  265. package/dist/mcp/tools/tools.js +25 -9
  266. package/dist/mcp/transport/stdio-link-host.d.ts +20 -0
  267. package/dist/mcp/transport/stdio-link-host.js +67 -0
  268. package/dist/mcp/transport/streamable-http.d.ts +13 -0
  269. package/dist/mcp/transport/streamable-http.js +41 -1
  270. package/dist/native-worker/docker-launcher.d.ts +38 -2
  271. package/dist/native-worker/docker-launcher.js +65 -5
  272. package/dist/native-worker/gateway-server.d.ts +41 -3
  273. package/dist/native-worker/gateway-server.js +124 -27
  274. package/dist/native-worker/gateway.d.ts +27 -1
  275. package/dist/native-worker/gateway.js +70 -4
  276. package/dist/native-worker/http-server.d.ts +3 -1
  277. package/dist/native-worker/http-server.js +11 -7
  278. package/dist/native-worker/http-transport.js +1 -1
  279. package/dist/native-worker/kubernetes-launcher.d.ts +7 -3
  280. package/dist/native-worker/kubernetes-launcher.js +43 -3
  281. package/dist/native-worker/launch.d.ts +18 -1
  282. package/dist/native-worker/launch.js +6 -1
  283. package/dist/native-worker/ledger.d.ts +18 -2
  284. package/dist/native-worker/ledger.js +57 -4
  285. package/dist/native-worker/loopback.js +3 -8
  286. package/dist/native-worker/main.d.ts +2 -1
  287. package/dist/native-worker/main.js +14 -3
  288. package/dist/native-worker/protocol.d.ts +129 -577
  289. package/dist/native-worker/protocol.js +47 -1
  290. package/dist/native-worker/sandbox-executor.d.ts +17 -2
  291. package/dist/native-worker/sandbox-executor.js +78 -4
  292. package/dist/native-worker/stderr-redaction.d.ts +77 -0
  293. package/dist/native-worker/stderr-redaction.js +237 -0
  294. package/dist/native-worker/stdio.d.ts +1 -1
  295. package/dist/native-worker/stdio.js +6 -5
  296. package/dist/native-worker/warm-pool.d.ts +2 -2
  297. package/dist/native-worker/warm-pool.js +4 -4
  298. package/dist/native-worker/worker.js +28 -2
  299. package/dist/observability/metrics.js +6 -1
  300. package/dist/providers/auth/self-hosted.d.ts +1 -1
  301. package/dist/providers/coding-proxy/dependency-cache/eviction.d.ts +29 -0
  302. package/dist/providers/coding-proxy/dependency-cache/eviction.js +87 -0
  303. package/dist/providers/coding-proxy/dependency-cache/key.d.ts +33 -0
  304. package/dist/providers/coding-proxy/dependency-cache/key.js +86 -0
  305. package/dist/providers/coding-proxy/dependency-cache/model-request-seal.d.ts +18 -0
  306. package/dist/providers/coding-proxy/dependency-cache/model-request-seal.js +40 -0
  307. package/dist/providers/coding-proxy/dependency-cache/prisma-store.d.ts +25 -0
  308. package/dist/providers/coding-proxy/dependency-cache/prisma-store.js +131 -0
  309. package/dist/providers/coding-proxy/dependency-cache/service.d.ts +70 -0
  310. package/dist/providers/coding-proxy/dependency-cache/service.js +409 -0
  311. package/dist/providers/coding-proxy/dependency-cache/store.d.ts +85 -0
  312. package/dist/providers/coding-proxy/dependency-cache/store.js +95 -0
  313. package/dist/providers/coding-proxy/hold.d.ts +32 -0
  314. package/dist/providers/coding-proxy/hold.js +86 -0
  315. package/dist/providers/coding-proxy/interrupted.d.ts +70 -0
  316. package/dist/providers/coding-proxy/interrupted.js +104 -0
  317. package/dist/providers/coding-proxy/memory-ledger.d.ts +15 -2
  318. package/dist/providers/coding-proxy/memory-ledger.js +84 -8
  319. package/dist/providers/coding-proxy/metering.d.ts +16 -0
  320. package/dist/providers/coding-proxy/metering.js +27 -4
  321. package/dist/providers/coding-proxy/prisma-ledger.d.ts +15 -2
  322. package/dist/providers/coding-proxy/prisma-ledger.js +179 -67
  323. package/dist/providers/coding-proxy/proxy.d.ts +14 -1
  324. package/dist/providers/coding-proxy/proxy.js +166 -14
  325. package/dist/providers/coding-proxy/registry/audit.d.ts +53 -10
  326. package/dist/providers/coding-proxy/registry/audit.js +94 -17
  327. package/dist/providers/coding-proxy/registry/lockfile-parse-worker.d.ts +36 -0
  328. package/dist/providers/coding-proxy/registry/lockfile-parse-worker.js +67 -0
  329. package/dist/providers/coding-proxy/registry/lockfile-parse.d.ts +16 -0
  330. package/dist/providers/coding-proxy/registry/lockfile-parse.js +110 -0
  331. package/dist/providers/coding-proxy/registry/plan.d.ts +9 -0
  332. package/dist/providers/coding-proxy/registry/plan.js +201 -48
  333. package/dist/providers/coding-proxy/registry/prisma-store.d.ts +11 -5
  334. package/dist/providers/coding-proxy/registry/prisma-store.js +120 -17
  335. package/dist/providers/coding-proxy/registry/service.d.ts +97 -16
  336. package/dist/providers/coding-proxy/registry/service.js +579 -112
  337. package/dist/providers/coding-proxy/registry/store.d.ts +84 -9
  338. package/dist/providers/coding-proxy/registry/store.js +54 -1
  339. package/dist/providers/coding-proxy/runtime.d.ts +4 -0
  340. package/dist/providers/coding-proxy/runtime.js +78 -16
  341. package/dist/providers/coding-proxy/server.d.ts +6 -1
  342. package/dist/providers/coding-proxy/server.js +45 -1
  343. package/dist/providers/coding-proxy/types.d.ts +65 -1
  344. package/dist/providers/datastore/types.d.ts +5 -0
  345. package/dist/providers/engine/types.d.ts +17 -2
  346. package/dist/providers/engine/types.js +17 -0
  347. package/dist/providers/executor/composition.d.ts +10 -3
  348. package/dist/providers/executor/composition.js +47 -7
  349. package/dist/providers/executor/container.d.ts +361 -8
  350. package/dist/providers/executor/container.js +1136 -91
  351. package/dist/providers/executor/dbos-status.d.ts +31 -0
  352. package/dist/providers/executor/dbos-status.js +64 -0
  353. package/dist/providers/executor/dbos.d.ts +50 -1
  354. package/dist/providers/executor/dbos.js +207 -20
  355. package/dist/providers/executor/deferred.d.ts +12 -24
  356. package/dist/providers/executor/deferred.js +10 -29
  357. package/dist/providers/executor/in-process.d.ts +9 -1
  358. package/dist/providers/executor/in-process.js +14 -4
  359. package/dist/providers/executor/linked-issue-reader.d.ts +16 -0
  360. package/dist/providers/executor/linked-issue-reader.js +30 -0
  361. package/dist/providers/executor/routing.d.ts +2 -0
  362. package/dist/providers/executor/routing.js +4 -0
  363. package/dist/providers/executor/types.d.ts +13 -0
  364. package/dist/providers/index.d.ts +2 -1
  365. package/dist/providers/issue-tracker/types.d.ts +17 -0
  366. package/dist/providers/issue-tracker/types.js +39 -1
  367. package/dist/providers/jobs/claude-tool-setup.d.ts +4 -0
  368. package/dist/providers/jobs/claude-tool-setup.js +5 -2
  369. package/dist/providers/jobs/docker-isolation.d.ts +8 -0
  370. package/dist/providers/jobs/docker-isolation.js +17 -0
  371. package/dist/providers/jobs/docker.d.ts +1 -0
  372. package/dist/providers/jobs/docker.js +27 -2
  373. package/dist/providers/jobs/fake-kubernetes-api.d.ts +2 -0
  374. package/dist/providers/jobs/fake-kubernetes-api.js +3 -0
  375. package/dist/providers/jobs/kubernetes-api.d.ts +8 -0
  376. package/dist/providers/jobs/kubernetes-api.js +10 -0
  377. package/dist/providers/jobs/kubernetes-client.js +10 -1
  378. package/dist/providers/jobs/kubernetes-isolation.d.ts +2 -0
  379. package/dist/providers/jobs/kubernetes-isolation.js +17 -1
  380. package/dist/providers/jobs/kubernetes.d.ts +6 -1
  381. package/dist/providers/jobs/kubernetes.js +105 -16
  382. package/dist/providers/jobs/types.d.ts +33 -0
  383. package/dist/providers/jobs/types.js +13 -1
  384. package/dist/providers/llm/anthropic.js +5 -1
  385. package/dist/providers/llm/bedrock.d.ts +0 -12
  386. package/dist/providers/llm/bedrock.js +4 -0
  387. package/dist/providers/llm/claude-messages.d.ts +3 -1
  388. package/dist/providers/llm/claude-messages.js +4 -1
  389. package/dist/providers/llm/claude-provider.d.ts +2 -2
  390. package/dist/providers/llm/claude-provider.js +2 -2
  391. package/dist/providers/llm/openai.d.ts +2 -2
  392. package/dist/providers/llm/openai.js +6 -2
  393. package/dist/providers/llm/routing.d.ts +2 -2
  394. package/dist/providers/llm/routing.js +2 -2
  395. package/dist/providers/llm/types.d.ts +12 -2
  396. package/dist/providers/review-host/github-events.d.ts +9 -1
  397. package/dist/providers/review-host/github-events.js +34 -12
  398. package/dist/providers/review-host/github.d.ts +29 -2
  399. package/dist/providers/review-host/github.js +224 -29
  400. package/dist/providers/review-host/local.d.ts +8 -4
  401. package/dist/providers/review-host/local.js +49 -31
  402. package/dist/providers/review-host/patch-pages.d.ts +41 -0
  403. package/dist/providers/review-host/patch-pages.js +176 -0
  404. package/dist/providers/review-host/review-format.d.ts +19 -1
  405. package/dist/providers/review-host/review-format.js +38 -7
  406. package/dist/providers/review-host/types.d.ts +134 -2
  407. package/dist/providers/review-host/types.js +8 -0
  408. package/dist/providers/storage/gcs.d.ts +63 -0
  409. package/dist/providers/storage/gcs.js +69 -0
  410. package/dist/providers/storage/index.d.ts +15 -0
  411. package/dist/providers/storage/index.js +14 -0
  412. package/dist/providers/storage/local.d.ts +24 -0
  413. package/dist/providers/storage/local.js +92 -0
  414. package/dist/providers/storage/meter.d.ts +14 -0
  415. package/dist/providers/storage/meter.js +34 -0
  416. package/dist/providers/storage/s3.d.ts +41 -0
  417. package/dist/providers/storage/s3.js +107 -0
  418. package/dist/providers/storage/types.d.ts +37 -3
  419. package/dist/providers/storage/types.js +21 -4
  420. package/dist/providers/vcs/git.d.ts +33 -2
  421. package/dist/providers/vcs/git.js +324 -22
  422. package/dist/providers/vcs/github-remote.d.ts +26 -3
  423. package/dist/providers/vcs/github-remote.js +124 -14
  424. package/dist/providers/vcs/github.d.ts +214 -6
  425. package/dist/providers/vcs/github.js +447 -45
  426. package/dist/providers/vcs/index.js +8 -1
  427. package/dist/providers/vcs/pr-description.d.ts +127 -0
  428. package/dist/providers/vcs/pr-description.js +270 -0
  429. package/dist/providers/vcs/remote.d.ts +33 -1
  430. package/dist/providers/vcs/routing.d.ts +4 -2
  431. package/dist/providers/vcs/routing.js +6 -0
  432. package/dist/providers/vcs/types.d.ts +80 -3
  433. package/dist/quickstart/coding-seed.d.ts +14 -3
  434. package/dist/quickstart/coding-seed.js +213 -4
  435. package/dist/quickstart/reviewer-prompt.d.ts +1 -1
  436. package/dist/quickstart/reviewer-prompt.js +6 -6
  437. package/dist/quickstart-images.json +1 -1
  438. package/dist/sandbox/generated/zod.bundle.js +62 -1
  439. package/dist/sandbox/generated/zod3.bundle.js +5 -0
  440. package/dist/sandbox/host-functions.d.ts +1 -0
  441. package/dist/sandbox/host-functions.js +6 -11
  442. package/dist/sandbox/secret-broker.js +3 -4
  443. package/dist/sandbox/tool-capabilities.d.ts +10 -30
  444. package/dist/sandbox/zod-params.d.ts +37 -5
  445. package/dist/sandbox/zod-params.js +181 -26
  446. package/dist/serve.js +8 -1
  447. package/dist/viewer/api-schema.d.ts +349 -2627
  448. package/dist/viewer/api-schema.js +7 -0
  449. package/dist/viewer/build-schemas.js +6 -2
  450. package/dist/viewer/openapi.js +2 -4
  451. package/dist/wardby-bin.js +10 -0
  452. package/docs/agent-recipes.md +58 -20
  453. package/docs/code-review-agents.md +551 -41
  454. package/docs/coding-agent-setup.md +489 -7
  455. package/docs/coding-packages.md +1033 -90
  456. package/docs/coding-services.md +27 -12
  457. package/docs/coding-worker-byo-images.md +20 -0
  458. package/docs/coding-worker-isolation.md +105 -30
  459. package/docs/getting-started-gke.md +124 -137
  460. package/docs/getting-started-identity-provider.md +10 -1
  461. package/docs/getting-started.md +9 -0
  462. package/docs/jira-agents.md +17 -8
  463. package/docs/knowledge/blob-not-found-semantics.md +41 -0
  464. package/docs/knowledge/bounded-file-descriptor.md +52 -0
  465. package/docs/knowledge/delegation-admission-slots.md +52 -0
  466. package/docs/knowledge/http-dispatcher-bootstrap.md +61 -0
  467. package/docs/knowledge/import-rename-target.md +52 -0
  468. package/docs/knowledge/index.md +57 -0
  469. package/docs/knowledge/log.md +9 -0
  470. package/docs/knowledge/mcp-cancelled-task-precedence.md +41 -0
  471. package/docs/knowledge/mcp-http-prompt-discovery.md +41 -0
  472. package/docs/knowledge/mcp-schema-module-boundary.md +41 -0
  473. package/docs/knowledge/nullable-tool-uniqueness.md +52 -0
  474. package/docs/knowledge/overview-cli.md +74 -0
  475. package/docs/knowledge/overview-coding-proxy.md +72 -0
  476. package/docs/knowledge/overview-coding.md +72 -0
  477. package/docs/knowledge/overview-config.md +60 -0
  478. package/docs/knowledge/overview-core.md +72 -0
  479. package/docs/knowledge/overview-deploy.md +83 -0
  480. package/docs/knowledge/overview-mcp.md +61 -0
  481. package/docs/knowledge/overview-prisma.md +72 -0
  482. package/docs/knowledge/overview-providers.md +89 -0
  483. package/docs/knowledge/overview-sandbox.md +83 -0
  484. package/docs/knowledge/overview-surfaces.md +83 -0
  485. package/docs/knowledge/private-datastore-shared-boundary.md +54 -0
  486. package/docs/knowledge/proxy-settlement-projections.md +41 -0
  487. package/docs/knowledge/run-pricing-first-writer.md +43 -0
  488. package/docs/knowledge/schedule-claim-transaction.md +41 -0
  489. package/docs/knowledge/secret-entry-replica-contract.md +52 -0
  490. package/docs/knowledge/terminal-run-first-writer.md +41 -0
  491. package/docs/knowledge/transactional-agent-authorization.md +52 -0
  492. package/docs/knowledge/viewer-notify-write-isolation.md +30 -0
  493. package/docs/knowledge/warm-input-publication.md +30 -0
  494. package/docs/knowledge/workspace-staging-failure.md +54 -0
  495. package/docs/knowledge.md +54 -14
  496. package/docs/native-sandbox.md +119 -23
  497. package/docs/observability.md +4 -0
  498. package/docs/security-deployment.md +33 -2
  499. package/docs/slack-notifications.md +35 -19
  500. package/docs/tool-secrets.md +42 -10
  501. package/docs/viewer-api.openapi.yml +1 -1
  502. package/help/admin-viewer.md +24 -2
  503. package/help/architecture-agent.md +11 -6
  504. package/help/build-worker-image.md +3 -1
  505. package/help/builder-agent.md +19 -6
  506. package/help/code-review-agents.md +177 -6
  507. package/help/coding-packages.md +156 -6
  508. package/help/cost-attribution.md +9 -5
  509. package/help/creating-agents.md +14 -1
  510. package/help/dependency-cache.md +143 -0
  511. package/help/deploy-gke.md +15 -8
  512. package/help/errors/budget-exhausted.md +187 -0
  513. package/help/errors/budget-group-exhausted.md +5 -1
  514. package/help/errors/coding-stream-quota-exceeded.md +33 -0
  515. package/help/errors/coding-workspace-disk-exceeds-limit.md +39 -0
  516. package/help/errors/continuation-closed.md +9 -12
  517. package/help/errors/delegation-conflict.md +24 -0
  518. package/help/errors/file-list-truncated.md +45 -0
  519. package/help/errors/full-read-required.md +49 -0
  520. package/help/errors/github-account-not-allowed.md +4 -0
  521. package/help/errors/graph-incomplete.md +43 -0
  522. package/help/errors/graph-limit.md +43 -0
  523. package/help/errors/merge-conflict.md +49 -0
  524. package/help/errors/native-sandbox-gateway-error.md +20 -0
  525. package/help/errors/native-sandbox-launch-abandoned.md +21 -0
  526. package/help/errors/native-sandbox-worker-exited.md +3 -2
  527. package/help/errors/package-not-allowed-pending.md +52 -0
  528. package/help/errors/package-not-allowed.md +51 -0
  529. package/help/errors/package-refusals.md +43 -0
  530. package/help/errors/patch-cursor-malformed.md +31 -0
  531. package/help/errors/run-lost.md +39 -0
  532. package/help/errors/run-transcript-download.md +44 -0
  533. package/help/errors/secret-in-value.md +69 -0
  534. package/help/errors/target-merge.md +40 -0
  535. package/help/fix-merge-conflicts.md +73 -0
  536. package/help/github-app-setup.md +132 -0
  537. package/help/github.md +22 -0
  538. package/help/identity-and-access.md +2 -0
  539. package/help/jira.md +23 -6
  540. package/help/knowledge.md +16 -7
  541. package/help/local-repositories.md +1 -1
  542. package/help/low-power-mode.md +7 -1
  543. package/help/merge-order-check.md +5 -0
  544. package/help/native-capabilities.md +29 -1
  545. package/help/native-sandbox.md +15 -1
  546. package/help/operating-agents.md +5 -0
  547. package/help/package-audit-mode.md +91 -0
  548. package/help/related-pull-requests.md +10 -7
  549. package/help/resume-runs-locally.md +131 -0
  550. package/help/review-fix-rounds.md +33 -1
  551. package/help/sharing-agents.md +59 -0
  552. package/help/slack-notifications.md +19 -5
  553. package/help/status-comments.md +31 -0
  554. package/help/stop-run.md +58 -0
  555. package/help/troubleshooting/budgets.md +28 -0
  556. package/help/troubleshooting/coding-workers.md +78 -7
  557. package/package.json +17 -10
  558. package/prisma/migrations/20261016000000_registry_approved_accepted_advisories/migration.sql +3 -0
  559. package/prisma/migrations/20261016000001_mark_ready_when_passing/migration.sql +3 -0
  560. package/prisma/migrations/20261017000000_debug_trace_max_mb/migration.sql +4 -0
  561. package/prisma/migrations/20261018000000_dependency_cache/migration.sql +53 -0
  562. package/prisma/migrations/20261019000000_claude_max_output_tokens/migration.sql +5 -0
  563. package/prisma/migrations/20261021000000_pr_description_hash/migration.sql +4 -0
  564. package/prisma/migrations/20261022000000_dependency_snapshot_validation_metadata/migration.sql +4 -0
  565. package/prisma/migrations/20261023000000_package_audit_mode/migration.sql +27 -0
  566. package/prisma/migrations/20261024000000_budget_events/migration.sql +26 -0
  567. package/prisma/migrations/20261025000000_cache_aware_holds/migration.sql +9 -0
  568. package/prisma/migrations/20261026000000_budget_overrun/migration.sql +4 -0
  569. package/prisma/migrations/20261027000000_coding_run_request/migration.sql +1 -0
  570. package/prisma/migrations/20261028000000_native_gateway_review_reads/migration.sql +6 -0
  571. package/prisma/migrations/20261029000000_lead_survives_deploy/migration.sql +6 -0
  572. package/prisma/migrations/20261030000000_local_review_covered_sha/migration.sql +2 -0
  573. package/prisma/migrations/20261031000000_coding_run_budget_limit/migration.sql +9 -0
  574. package/prisma/migrations/20261101000000_run_transcripts/migration.sql +22 -0
  575. package/prisma/schema.prisma +311 -97
  576. package/dist/sandbox/generated/zod-to-json-schema.bundle.js +0 -5
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: errors/graph-incomplete
3
+ title: Package still being checked (wardby_graph_incomplete)
4
+ summary: The registry's walk reached the package but timed out before checking its versions, usually a slow upstream; retry shortly.
5
+ audience: operator
6
+ tags: [error, coding-agents, packages, allowlist, wardby_graph_incomplete]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Package still being checked
11
+
12
+ `wardby_graph_incomplete` (HTTP 503) means the requested package is still
13
+ being checked against the allowed packages' dependency graph. It arises only when the
14
+ registry walks the graph: for a tarball download the run hasn't resolved (a
15
+ lockfile install), or for a metadata request after a lockfile plan of the run
16
+ failed or refused an entry. The walk reached
17
+ the name (an expanded version declares it) but timed out
18
+ (`REGISTRY_GRAPH_TIMEOUT_MS`) before the name's own versions were checked. That
19
+ is usually a slow or failing upstream for that package, or another request's
20
+ walk running out of time. The error message shows the walk's progress. It never
21
+ means the package is outside the graph. When a completed walk has failed
22
+ nodes, the answer is `wardby_upstream_error` or `wardby_audit_unavailable`
23
+ instead.
24
+
25
+ ## What the agent should do
26
+
27
+ This is the one allowlist-related code worth retrying: try again shortly (npm
28
+ retries a 5xx on its own). If it keeps happening, report the package so its
29
+ owner can allowlist it directly.
30
+
31
+ ## What the owner does
32
+
33
+ If retries do not clear it, add the package to
34
+ `codingProfile.packageAllowlist` with `update_agent` (needs
35
+ `packages:approve` or `agents:admin`).
36
+
37
+ ## Related
38
+
39
+ - [Package not reached: `wardby_package_not_allowed_pending`](package-not-allowed-pending.md)
40
+ - [Not allowed: `wardby_package_not_allowed`](package-not-allowed.md)
41
+ - [Graph limit: `wardby_graph_limit`](graph-limit.md)
42
+ - [Package audit mode](../package-audit-mode.md): find out which packages a task needs without refusals, for a limited time.
43
+ - [Coding packages](../coding-packages.md)
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: errors/graph-limit
3
+ title: Dependency graph over the limit (wardby_graph_limit)
4
+ summary: The run's dependency graph walk hit REGISTRY_MAX_GRAPH_PACKAGES before reaching the package; the owner can allowlist it directly, or the operator can raise the limit.
5
+ audience: operator
6
+ tags: [error, coding-agents, packages, allowlist, wardby_graph_limit, REGISTRY_MAX_GRAPH_PACKAGES]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Dependency graph over the limit
11
+
12
+ `wardby_graph_limit` (HTTP 403) means this run's dependency graph walk reached
13
+ its limit of `REGISTRY_MAX_GRAPH_PACKAGES` package names (default 3000, counted
14
+ per run and ecosystem) before it reached the requested package, so the package
15
+ may not be in the graph at all. The bound is permanent for the run, so
16
+ retrying does not help. It arises only when the
17
+ registry walks the graph: for a tarball download the run hasn't resolved (a
18
+ lockfile install), or for a metadata request after a lockfile plan of the run
19
+ failed or refused an entry.
20
+
21
+ Large frameworks (for example Expo) can exceed the limit, because the walk
22
+ follows every in-range kept version plus optional and peer dependencies, so its
23
+ graph is usually several times larger than a single install.
24
+
25
+ ## What the agent should do
26
+
27
+ Stop retrying. Report the package so its owner can act.
28
+
29
+ ## What the owner does
30
+
31
+ 1. Open the agent with `get_agent`, then add the package (or the top-level package that needs it) to `codingProfile.packageAllowlist` with `update_agent`. This needs `packages:approve` or `agents:admin`.
32
+ 2. Run the request again. Allowing a package name allows all of its kept versions, subject to the release-age and vulnerability checks.
33
+
34
+ The operator, not the owner, can instead raise `REGISTRY_MAX_GRAPH_PACKAGES` on the
35
+ coding proxy. A higher limit uses more proxy memory and walk time.
36
+
37
+ ## Related
38
+
39
+ - [Package not reached: `wardby_package_not_allowed_pending`](package-not-allowed-pending.md)
40
+ - [Not allowed: `wardby_package_not_allowed`](package-not-allowed.md)
41
+ - [Still being checked: `wardby_graph_incomplete`](graph-incomplete.md)
42
+ - [Package audit mode](../package-audit-mode.md): find out which packages a task needs without refusals, for a limited time.
43
+ - [Coding packages](../../docs/coding-packages.md#operator-limits)
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: errors/merge-conflict
3
+ title: Conflict markers remain
4
+ summary: A follow-up run left conflict markers in a file the target-branch merge conflicted, so nothing was pushed.
5
+ audience: operator
6
+ tags: [error, coding-agents, vcs, merge-conflict, pull-requests]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Conflict markers remain
11
+
12
+ A follow-up run on a wardby pull request merges the pull request's target
13
+ branch into the branch before the agent starts (see
14
+ [Fix merge conflicts on a wardby pull request](../fix-merge-conflicts.md)).
15
+ When that merge conflicts, the agent is given the conflicted files to
16
+ resolve. A run that finished while one of those files still held a
17
+ `<<<<<<<` … `>>>>>>>` marker pair stops with failure category
18
+ `merge_conflict` (error `vcs_conflict_markers_remain`), and nothing is
19
+ pushed: the pull request is unchanged.
20
+
21
+ Only the files the merge conflicted are checked, so marker-like lines in
22
+ other files (test fixtures, documentation about merging) never trigger this.
23
+
24
+ ## What the requester sees
25
+
26
+ The run's status comment on the pull request names the file, for example:
27
+
28
+ > `src/app.ts` still has conflict markers after merging this pull request's
29
+ > target branch, so none of its changes were pushed. Ask again to resolve the
30
+ > conflicts.
31
+
32
+ A lead agent that delegated the follow-up sees the sub-run's error code
33
+ `coding_failure_merge_conflict`.
34
+
35
+ ## What to do
36
+
37
+ - Ask again on the pull request (for example "please fix the merge
38
+ conflicts"). The next follow-up merges the target again and gives the agent
39
+ the same list.
40
+ - If the conflicts are too large for the agent's budget or turn limit, raise
41
+ them for that agent, or resolve the conflicts by hand and push.
42
+ - An agent that keeps stopping early may need instructions that put
43
+ resolving the listed conflicts first.
44
+ - A conflict in a path this agent may not edit cannot be resolved by the
45
+ agent (resolving it is an edit, which is refused): resolve that file by hand
46
+ and push.
47
+
48
+ Related: [Run changed a protected path](protected-path.md),
49
+ [Target branch could not be merged](target-merge.md).
@@ -0,0 +1,20 @@
1
+ ---
2
+ id: errors/native-sandbox-gateway-error
3
+ title: Native worker's gateway call failed
4
+ summary: The sandbox worker's call to the gateway failed with an error the run could not continue from.
5
+ audience: operator
6
+ tags: [error, native-agents, sandbox, native_sandbox_gateway_error]
7
+ appliesTo: ">=0.5.4"
8
+ ---
9
+
10
+ # Native worker's gateway call failed
11
+
12
+ `native_sandbox_gateway_error: <code>: <message>` means the sandbox worker called the gateway (a model turn, a tool, or a delegation) and got an error the run could not continue from. The worker reports the run failed with this error instead of exiting, so it is not `native_sandbox_worker_exited`.
13
+
14
+ 1. Read the code and message in the run's error (`get_run`).
15
+ 2. For the gateway's `internal` code the message is never recorded. When the gateway's error named one of wardby's own declared codes, that code follows (any other leading word, and any code that matches a secret value the run can read, never leaves the gateway), for example `native_sandbox_gateway_error: internal: coding_execution_not_configured` (the gateway that served the call cannot start coding runs); otherwise the error is `native_sandbox_gateway_error: internal`. Read the gateway's logs (`native gateway request failed`) for the details: the line carries the error's message and stack with the run's secret values replaced by `[REDACTED]`; when the gateway could not read the run's secret values, or the failure was not an error object, it carries only the error's name (`errName`) and declared code (`causeCode`).
16
+ 3. Fix the cause the message names, or check that the gateway can reach the database and the LLM provider.
17
+ 4. Trigger the run again.
18
+
19
+ See [Run native agents in a sandbox](../native-sandbox.md) and the
20
+ [native sandbox guide](../../docs/native-sandbox.md).
@@ -0,0 +1,21 @@
1
+ ---
2
+ id: errors/native-sandbox-launch-abandoned
3
+ title: Native worker launch abandoned
4
+ summary: A sandbox run ended while its worker was launching (usually stopped during a low-power gateway wake), so no worker pod was created.
5
+ audience: operator
6
+ tags: [error, native-agents, sandbox, kubernetes, low-power, native_sandbox_launch_abandoned]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Native worker launch abandoned
11
+
12
+ `native_sandbox_launch_abandoned` means a sandbox run ended while its worker was being launched, so Wardby did not create the worker pod. Most often the run was stopped (`stop_run`, or its parent run was cancelled) while the native gateway was waking in low-power mode, which can take a few minutes on a cold node.
13
+
14
+ The run already has its own final status, such as `cancelled`. This code only appears in the control-plane log, as the reason the launch stopped. Nothing is left to clean up.
15
+
16
+ 1. If the run was stopped on purpose, there is nothing to do.
17
+ 2. If you did not stop it, check the run with `get_run`: its status and error say what ended it.
18
+ 3. Trigger the run again if you still want it.
19
+
20
+ See [Low-power mode](../low-power-mode.md) and the
21
+ [native sandbox guide](../../docs/native-sandbox.md).
@@ -13,8 +13,9 @@ appliesTo: ">=0.5.4"
13
13
 
14
14
  1. Read the exit code in the run's error (`get_run`). Code 137 usually means the memory limit was hit.
15
15
  2. If limits are the cause, raise `NATIVE_SANDBOX_MEMORY_MB`, `NATIVE_SANDBOX_PIDS`, or `NATIVE_SANDBOX_CPUS` on the server and restart it.
16
- 3. Otherwise test the agent's tools with `dry_run_tool` and fix the failing code.
17
- 4. Trigger the run again.
16
+ 3. Read the server log line `native worker exited non-zero` (Docker and Kubernetes): its `stderrTail` is the end of the worker's output. The server masks the run's gateway capability and every secret value the agent's tools can read (six characters or longer, as in tool console output) as `[REDACTED]`. If the line has `stderrTailOmitted` instead, there is no tail: `secrets_unavailable` means the server could not read one of those secrets (check the secret store and the tools' attached secrets); `log_read_failed` means it could not read the worker pod's log on Kubernetes (check that the server's Role allows `get` on `pods/log`).
17
+ 4. Otherwise test the agent's tools with `dry_run_tool` and fix the failing code.
18
+ 5. Trigger the run again.
18
19
 
19
20
  See [Run native agents in a sandbox](../native-sandbox.md) and the
20
21
  [native sandbox guide](../../docs/native-sandbox.md).
@@ -0,0 +1,52 @@
1
+ ---
2
+ id: errors/package-not-allowed-pending
3
+ title: Package not reached (wardby_package_not_allowed_pending)
4
+ summary: The dependency-graph walk stopped before reaching the requested package; the owner should allowlist it directly because retrying rarely helps.
5
+ audience: operator
6
+ tags: [error, coding-agents, packages, allowlist, wardby_package_not_allowed_pending]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Package not reached
11
+
12
+ `wardby_package_not_allowed_pending` (HTTP 403) means the registry's
13
+ dependency-graph walk ended before it reached the requested package. The
14
+ package may still be reachable from an allowlisted one, but the walk was cut
15
+ short (by `REGISTRY_GRAPH_TIMEOUT_MS`), so it was not proven allowed. The error message shows
16
+ how many packages were walked and how many were still queued. It arises only when the
17
+ registry walks the graph: for a tarball download the run hasn't resolved (a
18
+ lockfile install), or for a metadata request after a lockfile plan of the run
19
+ failed or refused an entry. Otherwise a metadata request gets
20
+ `wardby_package_not_allowed` at once instead.
21
+
22
+ The answer is final for the agent and is not transient: the walk resumes
23
+ within the run, but each request continues the walk for at most
24
+ `REGISTRY_GRAPH_TIMEOUT_MS`, so a large allowlist can take several requests or
25
+ never finish in time. Retrying rarely helps; allowlisting the package directly
26
+ is the reliable fix.
27
+
28
+ ## What the agent should do
29
+
30
+ Stop retrying. Report the package name so its owner can allowlist it.
31
+
32
+ ## What the owner does
33
+
34
+ 1. Open the agent with `get_agent`, then add the package (or the top-level package that needs it) to `codingProfile.packageAllowlist` with `update_agent`. This needs `packages:approve` or `agents:admin`.
35
+ 2. Run the request again. Allowing a package name allows all of its kept versions, subject to the release-age and vulnerability checks.
36
+
37
+ Large frameworks (for example Expo) can have a very large graph, because the
38
+ walk follows every in-range version plus optional and peer dependencies.
39
+ Allowlisting the packages the project needs directly avoids the walk for them.
40
+
41
+ ## Operator knobs
42
+
43
+ `REGISTRY_GRAPH_TIMEOUT_MS` is the time one request's walk may take. See
44
+ [Operator limits](../../docs/coding-packages.md#operator-limits).
45
+
46
+ ## Related
47
+
48
+ - [Not allowed: `wardby_package_not_allowed`](package-not-allowed.md)
49
+ - [Graph limit: `wardby_graph_limit`](graph-limit.md)
50
+ - [Still being checked: `wardby_graph_incomplete`](graph-incomplete.md)
51
+ - [Package audit mode](../package-audit-mode.md): find out which packages a task needs without refusals, for a limited time.
52
+ - [Coding packages](../coding-packages.md)
@@ -0,0 +1,51 @@
1
+ ---
2
+ id: errors/package-not-allowed
3
+ title: Package not allowed (wardby_package_not_allowed)
4
+ summary: The coding package registry refused a package because it is not on the agent's allowlist, or is only reachable through a refused package.
5
+ audience: operator
6
+ tags: [error, coding-agents, packages, allowlist, wardby_package_not_allowed]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Package not allowed
11
+
12
+ `wardby_package_not_allowed` (HTTP 403) is a final answer from the package
13
+ registry: the package is not on the agent's `packageAllowlist`, and nothing
14
+ the run has resolved allows it. It is also returned for a package reachable
15
+ only through a package that was itself refused (for example one with a
16
+ high-severity advisory).
17
+
18
+ - When npm resolves a package (a metadata request), the package is refused at
19
+ once unless it is allowlisted, was declared as a dependency by a package
20
+ already resolved in the run, or was approved by the run's lockfile plan. So
21
+ a new top-level package must be allowlisted, even if an allowlisted
22
+ package's dependency graph contains it. (After a lockfile plan of the run
23
+ failed or refused an entry, the metadata request walks the dependency graph
24
+ first, as a download does.)
25
+ - When npm downloads a tarball the run has not resolved (a lockfile install),
26
+ it is refused once the dependency-graph walk finds no allowlisted package
27
+ that reaches it.
28
+
29
+ ## What the agent should do
30
+
31
+ Stop. Do not retry, and do not look for a way around the refusal. Pick an
32
+ already-approved alternative, or report that the package needs approval.
33
+
34
+ ## What the owner does
35
+
36
+ 1. Open the agent with `get_agent`, then add the package to `codingProfile.packageAllowlist` with `update_agent`. This needs `packages:approve` or `agents:admin`. For a package the project adds directly, allowlist the package itself; allowlisting a dependent only helps for a package something already in the project depends on.
37
+ 2. Run the request again. Allowing a package name allows all of its kept versions, subject to the release-age and vulnerability checks.
38
+
39
+ For a PyPI package pulled in by an extra (`psycopg-binary` for
40
+ `psycopg[binary]`), name the extra on the entry instead.
41
+
42
+ If the package is only reachable through a refused one, allowlisting more
43
+ packages will not help; change or drop the refused dependency.
44
+
45
+ ## Related
46
+
47
+ - [Pending answer: `wardby_package_not_allowed_pending`](package-not-allowed-pending.md): the walk stopped before reaching the name.
48
+ - [Graph limit: `wardby_graph_limit`](graph-limit.md)
49
+ - [Still being checked: `wardby_graph_incomplete`](graph-incomplete.md)
50
+ - [Package audit mode](../package-audit-mode.md): find out which packages a task needs without refusals, for a limited time.
51
+ - [Coding packages](../coding-packages.md): the allowlist, the walk and the full error table.
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: errors/package-refusals
3
+ title: Package registry refused an install
4
+ summary: Understand package refusal codes and unblock a coding run's blocked status.
5
+ audience: operator
6
+ tags: [error, packages, allowlist, wardby_graph_incomplete, wardby_graph_limit, wardby_package_not_allowed, wardby_package_not_allowed_pending, wardby_version_filtered, wardby_lockfile_entry_unsupported]
7
+ appliesTo: >=0.2.1
8
+ ---
9
+
10
+ # Package registry refused an install
11
+
12
+ A coding run can finish successfully after restoring its changes because a
13
+ needed package was refused. When no pull request or pushed changes result,
14
+ the parent status says ⛔ **Blocked by the package registry: no changes were
15
+ made.** With a pull request, the link stays and a ⚠️ warning lists refusals.
16
+
17
+ - `wardby_package_not_allowed`, `wardby_package_not_allowed_pending`, and
18
+ `wardby_graph_limit`: add the needed package to the coding agent's
19
+ `codingProfile.packageAllowlist` with `update_agent`.
20
+ - `wardby_graph_incomplete`, `wardby_upstream_error`,
21
+ `wardby_upstream_unavailable`, `wardby_audit_unavailable`, and
22
+ `wardby_download_idle`: the registry could not finish checking the package,
23
+ usually because an upstream was slow or failing. Mention `@wardby` again to
24
+ retry.
25
+ - `wardby_version_filtered`: no version passed the release-age, advisory, or
26
+ malware checks. For release age, wait or adjust
27
+ `codingProfile.packagePolicy.minReleaseAgeDays`. For an advisory, upgrade
28
+ to a safe version or accept the advisory after reviewing exposure using
29
+ `codingProfile.packagePolicy.acceptedAdvisories`. Malware is never waivable:
30
+ use a safe alternative, never bypass the malware check. The code alone
31
+ does not distinguish which check blocked the version.
32
+ - `wardby_lockfile_entry_unsupported`: the lock file installs the package
33
+ from git or a URL, which the registry cannot verify. Depend on a registry
34
+ version instead.
35
+ - Other codes: inspect the registry error and package policy before retrying.
36
+
37
+ Changing allowlists or policy needs `packages:approve` or `agents:admin`.
38
+ `update_agent` replaces the whole package policy, so send all intended fields.
39
+ After fixing the refusal, mention `@wardby` again. An existing run's package
40
+ policy does not change.
41
+
42
+ See [Approve packages for coding agents](../coding-packages.md) and
43
+ [Run status comments](../status-comments.md).
@@ -0,0 +1,31 @@
1
+ ---
2
+ id: errors/patch-cursor-malformed
3
+ title: Patch cursor is malformed
4
+ summary: A repo_pr_read call passed a patchCursor that is not a well-formed cursor for the pull request (edited, truncated, retyped or too long).
5
+ audience: operator
6
+ tags: [error, code-review-agents, repo_pr_read, patchCursor, patch_cursor_malformed, patch_cursor_stale]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Patch cursor is malformed
11
+
12
+ `repo_pr_read` returns `patch_cursor_malformed` to a review agent when the
13
+ `patchCursor` it passed is not a well-formed cursor for this pull request: the
14
+ value was edited, truncated, damaged in transit, retyped by the model, or is
15
+ over-long. No page is returned or recorded as read, and nothing else changes;
16
+ the call can be made again.
17
+
18
+ A cursor is also tied to the pull request's head and compare. When the pull
19
+ request has moved on since the cursor was issued, the call returns
20
+ `patch_cursor_stale` instead.
21
+
22
+ ## What to do
23
+
24
+ - Pass `nextPatchCursor` back exactly as `repo_pr_read` returned it, with the
25
+ same arguments as the call that produced it.
26
+ - After `patch_cursor_stale`, or if no valid cursor is at hand, call
27
+ `repo_pr_read` again without `patchCursor` to start from the first page.
28
+ - If a model keeps rewriting the cursor, tell it in the agent's prompt to copy
29
+ `nextPatchCursor` verbatim.
30
+
31
+ See [Code review agents](../code-review-agents.md) for how patch pages work.
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: errors/run-lost
3
+ title: Run lost
4
+ summary: A run ended as lost, usually because a deploy replaced the version that was executing it.
5
+ audience: operator
6
+ tags: [error, runs, deploy, lost]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Run lost
11
+
12
+ A run with status `lost` stopped without finishing and without a result. Read its `error` with `get_run`. The usual cause is a deploy that changed the application version while the run was still going.
13
+
14
+ ## When a deploy does not lose a run
15
+
16
+ A native run that is waiting in a `delegate_to_*` call on a coding sub-agent, or on a native sub-agent running in `sandbox` mode, is taken over by the new version. It continues when the sub-agent finishes, and the turns it already took are not repeated.
17
+
18
+ ## Reasons
19
+
20
+ - `Durable workflow belongs to application version <old>; this process runs <new>.` The run was mid-turn, waiting on a tool that is not a delegation, or waiting on a control-plane native sub-agent, so the new version could not take it over.
21
+ - `Could not continue across versions: the run's steps changed in the new version.` The run was waiting on a sub-agent, but the new code no longer matches the steps the run had recorded.
22
+ - `Durable workflow could not be re-driven after 3 adoption attempts…` Wardby tried three times to resume the run and gave up.
23
+ - `Orphaned: no heartbeat/progress since before <time>.` Nothing was executing the run and it stopped reporting progress, for example because its process was killed.
24
+
25
+ ## Sub-agents of a lost run
26
+
27
+ When a run is marked lost, sub-agent runs it started that are still going are stopped with the reason `parent run lost`. They are not left running for nobody.
28
+
29
+ A run that continues after a restart of the same version cannot continue a control-plane native sub-agent it was waiting on: that sub-agent ran inside the process that stopped. (After a deploy, a run waiting on such a sub-agent is not taken over at all; it is marked lost, as above.) The sub-agent run is stopped with the reason `parent resumed without it`, and no new one is started. The parent run goes on, and its `delegate_to_*` call returns the error `subagent_interrupted` ("The sub-agent was interrupted by a restart and cannot be resumed; no new sub-agent run was started."), so the model can report it.
30
+
31
+ If two executions of the same `delegate_to_*` step overlap and the call id is already held by a run of a different sub-agent, the call returns `delegation_conflict` instead; see [Delegation conflict](delegation-conflict.md).
32
+
33
+ ## What to do
34
+
35
+ 1. Read the reason with `get_run`.
36
+ 2. Trigger the request again. If an `@`-mention started the run, its status comment says the request was interrupted and should be repeated.
37
+ 3. To lose fewer runs, deploy when few runs are executing. The old version first waits for its runs to finish, up to `SHUTDOWN_DRAIN_SECONDS`; only runs still going after that limit are affected.
38
+
39
+ See [Operating agents](../operating-agents.md) and the [GKE guide](../../docs/getting-started-gke.md).
@@ -0,0 +1,44 @@
1
+ ---
2
+ id: errors/run-transcript-download
3
+ title: Run transcript download refused
4
+ summary: What each refusal from a get_run_transcript download link means (link_invalid, not_found, transcript_expired, transcript_unavailable, transcript_corrupt, local_repository_refused) and what to do.
5
+ audience: operator
6
+ tags: [wardby resume, get_run_transcript, link_invalid, transcript_expired, local_repository_refused, download]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Run transcript download refused
11
+
12
+ `wardby resume` downloads a run's transcript from the link
13
+ `get_run_transcript` returned. When the server refuses, it answers with JSON
14
+ `{ "error": "<code>" }`, and `wardby resume` prints what the code means.
15
+ Nothing is written to your machine.
16
+
17
+ | Code | HTTP | Meaning and what to do |
18
+ | ------------------------ | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
19
+ | `link_invalid` | 403 | The link is malformed, was changed, was made by another server (or by a stdio server, on the HTTP route), or is older than 10 minutes. Call `get_run_transcript` again for a new link. Every HTTP instance must share `SECRET_APP_KEY` (or `REQUEST_STATE_KEY`, if set). |
20
+ | `not_found` | 404 | The person the link was made for can no longer read the run, or the run has no stored transcript. |
21
+ | `transcript_expired` | 410 | The transcript was deleted after `RUN_TRANSCRIPT_RETENTION_DAYS`. |
22
+ | `transcript_unavailable` | 503 | The server has no blob store configured (`BLOB_STORE`), or could not read the object. Check the blob store settings on the server process. |
23
+ | `transcript_corrupt` | 500 | The stored object no longer matches the SHA-256 recorded when it was stored, so the server refused to send it. |
24
+
25
+ `wardby resume` also refuses a download whose bytes do not match the
26
+ server's SHA-256 header, a response larger than it accepts or with an invalid
27
+ length, and run details with control characters, and never writes a partial
28
+ file.
29
+
30
+ ## local_repository_refused
31
+
32
+ Printed by `wardby resume`, not the server. The run's repository is a
33
+ `local:` folder, which names a path on the server's machine, but the link
34
+ comes from another machine. Checking it out would let that server choose any
35
+ repository on yours, so nothing was written. Run the command on the server's
36
+ machine with a link from its stdio MCP server, or pass `--here` to continue
37
+ in the current directory, or `--dir <path>` to check the run out from that
38
+ folder anyway.
39
+
40
+ Over stdio, the link points at a local port the MCP server opens while links
41
+ are in use: if `wardby resume` cannot reach it, keep your MCP client
42
+ connected and request a new link.
43
+
44
+ See [Resume Claude Code runs locally](../resume-runs-locally.md).
@@ -0,0 +1,69 @@
1
+ ---
2
+ id: errors/secret-in-value
3
+ title: A value was not stored because it contains a secret (secret_in_value)
4
+ summary: A datastore or agent memory write was refused because the value contains the value of a secret attached to the agent; store the secret's name and read it when needed.
5
+ audience: operator
6
+ tags: [error, secrets, datastore, memory, secret_in_value, secret_check_unavailable, datastore set, memory set]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # A value was not stored because it contains a secret (secret_in_value)
11
+
12
+ `secret_in_value` means a write to a datastore or agent memory contained the
13
+ value of a secret attached to the agent, in the value or in the key. The write
14
+ came from a tool's `datastore.set` (or a shared datastore's `set`), from the
15
+ `memory_set` tool, from the `datastore_set` or `set_agent_memory` MCP tools, or
16
+ from a bundle import. The error names the secret. Nothing was stored.
17
+
18
+ Secret values are never stored in datastores or agent memory, because anything
19
+ stored there can be read back by other tools and later runs that were never
20
+ given the secret, and can be printed.
21
+
22
+ ## What to do
23
+
24
+ Store the secret's **name**, not its value, and read the secret when you need it:
25
+
26
+ - `secrets.get("NAME")` in a tool that is allowed to read the secret, or
27
+ - `fetch(url, { secrets: ["NAME"] })` for a brokered secret.
28
+
29
+ See [Secrets and tools](../../docs/tool-secrets.md#secret-values-are-never-stored).
30
+
31
+ ## `secret_check_unavailable`
32
+
33
+ The agent's secrets could not be read, so the value could not be checked and was
34
+ not stored. Try the write again. If it keeps happening, check the database
35
+ connection and the secret encryption configuration on the server.
36
+
37
+ ## Bundle imports
38
+
39
+ A seeded datastore entry in an imported bundle, per-agent or shared, whose key
40
+ or value contains an attached secret's value is skipped, and the import reports
41
+ a warning that names the secret (the entry's key is withheld from the warning).
42
+ The rest of the bundle is still imported.
43
+
44
+ ## Also masked
45
+
46
+ Secret values are also kept out of other output:
47
+
48
+ - A native run's final text and error have attached secret values replaced with
49
+ `[REDACTED]`.
50
+ - The task text of a `delegate_to_*` call has the delegating agent's attached
51
+ secret values replaced with `[REDACTED]` before the sub-agent's run is created.
52
+ - Comments, reviews, and Jira posts made through built-in tools have attached
53
+ secret values replaced with `[REDACTED]`.
54
+ - If the secrets cannot be read when a run ends, both its stored final text and
55
+ its stored error are
56
+ `[withheld: this text could not be checked for secret values]`.
57
+ - If the secrets cannot be read when a posting tool or a `delegate_to_*` call
58
+ runs, the tool returns `secret_check_unavailable` and posts nothing or creates
59
+ no sub-agent run.
60
+
61
+ ## Limits
62
+
63
+ Matching is by exact value, including its JSON-escaped forms and, for brokered
64
+ secrets, the encoded forms that the broker scrubs. Values shorter than 6
65
+ characters are not matched. A value that is split, re-encoded, or otherwise
66
+ transformed is not detected. Values stored before this check existed are not
67
+ scanned.
68
+
69
+ See also [Brokered secrets](../brokered-secrets.md).
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: errors/target-merge
3
+ title: Target branch could not be merged
4
+ summary: A follow-up run could not fetch or merge its pull request's target branch, so it stopped before the agent started.
5
+ audience: operator
6
+ tags: [error, coding-agents, vcs, merge-conflict, target-branch, pull-requests]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Target branch could not be merged
11
+
12
+ Before a follow-up run on a wardby pull request starts its agent, wardby
13
+ merges the branch the pull request currently targets into the workspace (see
14
+ [Fix merge conflicts on a wardby pull request](../fix-merge-conflicts.md)).
15
+ A run stops with failure category `target_merge` (error
16
+ `vcs_target_merge_failed`) when that could not be done:
17
+
18
+ - the target branch could not be fetched from the repository (it was deleted,
19
+ or the fetch failed);
20
+ - the pull request's branch and its target share no history wardby could
21
+ find: the branches are unrelated, or their common commit is more than about
22
+ 5,000 commits back;
23
+ - the merge itself failed for a reason other than a content conflict (content
24
+ conflicts are handed to the agent, not failed);
25
+ - the git on the machine that runs wardby is older than 2.38, which does not
26
+ support the `merge-tree --write-tree` form the merge uses.
27
+
28
+ Nothing is pushed and no agent work is lost, since the agent had not started.
29
+
30
+ ## What to do
31
+
32
+ - Check the pull request's base branch on GitHub. Retarget it if the branch
33
+ it names no longer exists or is not the one it should merge into.
34
+ - For unrelated histories, merge the branches by hand once; later follow-ups
35
+ then find the merge base.
36
+ - A transient fetch failure succeeds on the next request.
37
+ - Upgrade the machine's git to 2.38 or newer (`git --version` shows it).
38
+
39
+ Related: [Conflict markers remain](merge-conflict.md),
40
+ [Continuation's pull request is no longer open](continuation-closed.md).
@@ -0,0 +1,73 @@
1
+ ---
2
+ id: fix-merge-conflicts
3
+ title: Fix merge conflicts on a wardby pull request
4
+ summary: Follow-up runs merge the PR's current target branch first and resolve its conflicts; ask to update a PR that fell behind.
5
+ audience: operator
6
+ tags: [github, pull-requests, merge-conflict, update-pr, target-branch, continuation, review_fix]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Fix merge conflicts on a wardby pull request
11
+
12
+ Every follow-up run on a pull request a wardby coding run opened (a mention on
13
+ the PR, a delegated `continuePriorRun`, a review fix round) first brings the
14
+ branch up to date with the branch the pull request **currently** targets:
15
+
16
+ 1. Before the agent starts, wardby asks GitHub for the pull request's base
17
+ branch. A pull request retargeted since it opened (a stacked PR whose
18
+ parent merged, a release branch) merges its new base, not the one the
19
+ first run used.
20
+ 2. wardby fetches that branch from the same repository (never a fork) and
21
+ merges it into the workspace, in trusted code, before the agent sees it.
22
+ A branch that already contains its target is left exactly as it was.
23
+ 3. **No conflicts:** the agent works on the updated branch as usual.
24
+ **Conflicts:** the agent's task lists the conflicted files and which side
25
+ is which (this pull request's branch, then the target). It is asked to
26
+ resolve every conflict keeping both sides' intent, fix the tests the
27
+ combination broke, and run the repository's checks.
28
+ 4. The push is one merge commit authored by Wardby, with the pull request's
29
+ head and the target as its parents. It is pushed even when the agent
30
+ changed nothing else, so asking a wardby agent on the pull request to
31
+ "update this PR" or "fix the merge conflicts" is enough.
32
+ 5. The run's status comment on the pull request says what was merged, for
33
+ example "Merged `main` @ `1a2b3c4` into this branch; resolved conflicts
34
+ in 2 files."
35
+
36
+ ## Ask to update this PR
37
+
38
+ Mention the wardby agent on the pull request with "please update this PR" or
39
+ "please fix the merge conflicts". The follow-up merges the target branch,
40
+ resolves any conflicts, and pushes the merge commit.
41
+
42
+ ## What is checked
43
+
44
+ - **Conflict markers.** A file the merge left conflicted that still holds
45
+ conflict markers when the run finishes stops the push: the run fails with
46
+ category `merge_conflict` and nothing is pushed — see
47
+ [Conflict markers remain](errors/merge-conflict.md).
48
+ - **Protected paths and size limits** apply to the agent's own changes,
49
+ measured against the automatic merge: a change the target branch made to a
50
+ protected path is merged as it is, while resolving a conflict in a protected
51
+ path, or reverting the target's change to one, is an edit by the agent and
52
+ is refused as usual (see [Protected path](errors/protected-path.md)).
53
+ - **Someone else pushed meanwhile.** The push is still a fast-forward of the
54
+ head the run started from, so a push by anyone else in the meantime fails
55
+ the run the same way it did before, with nothing pushed.
56
+ - **No merge base.** A target branch that cannot be fetched, or shares no
57
+ history with the pull request, fails the run before the agent starts — see
58
+ [Target branch could not be merged](errors/target-merge.md).
59
+
60
+ ## Limits
61
+
62
+ - Local repositories (`local:`) have no pull requests, so a continuation there
63
+ is not merged with anything.
64
+ - A conflicted file with no markers (a binary file, or one deleted on one side
65
+ and changed on the other) holds one side's version, or the changed version.
66
+ The agent is told to check it, but nothing stops it from leaving that version
67
+ as it is.
68
+ - A conflict in a protected path cannot be resolved by the agent: resolving it
69
+ is an edit to that path, which is refused. Resolve that file by hand and push.
70
+
71
+ Related: [Run GitHub code-review agents](code-review-agents.md),
72
+ [Automatic review fix rounds](review-fix-rounds.md),
73
+ [Related pull requests across repositories](related-pull-requests.md).