@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
@@ -4,7 +4,7 @@ title: Run native agents in a sandbox
4
4
  summary: Turn on sandbox mode so a native agent's turn loop and tools run in a single-use, credential-free Docker container or Kubernetes pod behind a native gateway.
5
5
  audience: operator
6
6
  tags: [native-agents, sandbox, isolation, docker, kubernetes, native-gateway, security, warm-pool]
7
- appliesTo: ">=0.5.4"
7
+ appliesTo: ">=0.6.0"
8
8
  ---
9
9
 
10
10
  # Run native agents in a sandbox
@@ -102,8 +102,21 @@ are in [Native sandbox](../docs/native-sandbox.md#warm-pool).
102
102
  run `budget_exhausted`.
103
103
  - Sub-agents of a sandboxed run are managed runs started by the scheduler
104
104
  leader on its next tick (about every 10 seconds), so the server or scheduler
105
- must be running.
105
+ must be running. A coding agent child is resolved by the server when it
106
+ starts (worker image, services, knowledge), so the gateway needs no `CODING_*`
107
+ settings; a problem there (such as a `workerImageRef` that is not pinned by digest)
108
+ shows as the child run `failed` or `refused`; the parent's `delegate_to_*`
109
+ call receives `status: "failed"` with the `errorCode`, or for a refused child
110
+ the refusal sentence, and the full error is on the child run (`get_run`).
111
+ Upgrade `wardby serve` and `wardby scheduler` before or together with the
112
+ gateway: an older server starts the child unresolved (a Codex child on the
113
+ default image without its instructions, a Claude Code child failing with
114
+ `coding_provider_not_configured:claude-code`).
106
115
  - A sandbox run has a 60-minute maximum lifetime.
116
+ - `stop_run` stops a sandbox run: its gateway session ends so the worker exits
117
+ at its next call, and a worker still running after 5 seconds is killed and
118
+ removed (a warm pool worker is discarded, never reused). Search help for
119
+ "stop run" (article `stop-run`, Wardby 0.7.0 and later).
107
120
 
108
121
  ## Roll back
109
122
 
@@ -120,6 +133,7 @@ codes:
120
133
 
121
134
  - [native_sandbox_unavailable](errors/native-sandbox-unavailable.md)
122
135
  - [native_sandbox_worker_exited](errors/native-sandbox-worker-exited.md)
136
+ - [native_sandbox_gateway_error](errors/native-sandbox-gateway-error.md)
123
137
  - [native_sandbox_deadline_exceeded](errors/native-sandbox-deadline-exceeded.md)
124
138
  - [native_sandbox_worker_lost](errors/native-sandbox-worker-lost.md)
125
139
  - [native_sandbox_image_not_pinned](errors/native-sandbox-image-not-pinned.md)
@@ -32,5 +32,26 @@ A running run's cost, token counts, and turn count update after each model
32
32
  call, so `get_run` and `list_runs` show spend so far rather than zero until the
33
33
  run finishes.
34
34
 
35
+ To see your runs across every agent, call `list_runs` without an `agentId`
36
+ (Wardby 0.8.0 and later). Each row names its agent and leaves out the final
37
+ text; `active: true` keeps pending and running runs, and `since` (an ISO time)
38
+ keeps runs that started or finished since then plus any still active. You see
39
+ every run of the agents you own and only the runs you started on the others.
40
+ `list_agents` with `summary: true` returns just each agent's id, name, kind,
41
+ model, coding provider, budget, owner and your access, without the full
42
+ configuration.
43
+
44
+ From Wardby 0.8.0, `get_run` and `list_runs` without an `agentId` also return
45
+ `triggerInfo` (the pull request or issue that started the run, and whether it
46
+ was a review or a mention), `outcomes` (pull requests opened, comments, checks)
47
+ and `serviceReadiness` (each coding-run service's state). They use the admin
48
+ viewer API's shapes. Match one run's pull-request outcome to another run's
49
+ trigger to follow a pull request through its review and fix rounds.
50
+
51
+ To stop a run that is pending, queued, or running (for example one a schedule
52
+ started that you did not want), call `stop_run` with its id. It ends as
53
+ `cancelled`, along with the sub-agent runs it still has in flight. Search help
54
+ for "stop run" (article `stop-run`, Wardby 0.7.0 and later).
55
+
35
56
  For the full lifecycle and the controls applied to every managed run, read
36
57
  [`README.md`](../README.md).
@@ -0,0 +1,91 @@
1
+ ---
2
+ id: package-audit-mode
3
+ title: Package audit mode
4
+ summary: Let a coding agent install packages outside its allowlist for a limited time, recorded for approval afterwards; full mode also installs versions with high-severity advisories. Malware and the release-age limit are always enforced.
5
+ audience: operator
6
+ tags: [coding-agents, packages, allowlist, package audit, package audit mode, audit mode, packageAuditMode, packageAuditMinutes, approve_audited_packages, packages_audited, npm, pypi, supply-chain]
7
+ appliesTo: >=0.7.0
8
+ ---
9
+
10
+ # Package audit mode
11
+
12
+ From Wardby 0.7.0, a coding agent's registry can run in package audit mode for
13
+ a limited time. Instead of refusing a package that is not on the agent's
14
+ allowlist, the registry installs it and records it. Use it to find out which
15
+ packages a task needs, then approve them and turn the mode off.
16
+
17
+ ## Modes
18
+
19
+ | Mode | Packages outside the allowlist | High or critical advisories | Malware | Release age |
20
+ | ------- | ------------------------------ | --------------------------- | ------- | ----------- |
21
+ | off | refused | withheld unless accepted | refused | enforced |
22
+ | `audit` | installed and recorded | withheld unless accepted | refused | enforced |
23
+ | `full` | installed and recorded | installed and recorded | refused | enforced |
24
+
25
+ Everything else still applies in every mode: integrity checks, source
26
+ distributions, size and file limits, and a version outside an allowlist
27
+ entry's own range (`foo@^1` never serves `foo@2`).
28
+
29
+ ## Turn it on and off
30
+
31
+ The agent's owner sets it with `update_agent` (needs `packages:approve` or
32
+ `agents:admin`):
33
+
34
+ ```json
35
+ { "id": "<agent id>", "codingProfile": { "packageAuditMode": "audit", "packageAuditMinutes": 1440 } }
36
+ ```
37
+
38
+ - `packageAuditMinutes` defaults to 1440 (24 hours); the most is 10080 (7 days).
39
+ - `packageAuditMinutes` alone re-arms the stored mode for that long.
40
+ - `"packageAuditMode": null` turns it off.
41
+ - `create_agent` does not accept it.
42
+
43
+ `get_agent` shows `packageAuditActive` and a warning while the window is
44
+ open. Each coding run takes the mode when it is dispatched and keeps it for
45
+ its whole life, so a run that starts just before the window ends still runs
46
+ with it.
47
+
48
+ ## Where audited packages show up
49
+
50
+ - `get_run`: `packageAuditMode` and `packageAudit`, one entry per version
51
+ with its `relation` (`top-level`, `transitive` with `via`, `unknown`, or
52
+ `allowed`) and, in `full` mode, its `advisories` (the high and critical ones it was served despite).
53
+ - The pull request body: a caution banner, **Packages outside the
54
+ allowlist**, and in `full` mode **Served despite advisories**.
55
+ - The run's status comment on GitHub or Jira, and a `packages_audited` Slack
56
+ message on linked channels (see [Slack notifications](slack-notifications.md)).
57
+ - The proxy log: one `registry.audited` line per version.
58
+
59
+ A lockfile plan in audit mode approves what passes every other check, and the
60
+ dependency cache never restores or saves a lockfile whose plan audited
61
+ anything.
62
+
63
+ ## Keep the packages
64
+
65
+ Approve the names a run recorded with `approve_audited_packages`
66
+ (`{ "runId": "<run id>" }`), or add them to `codingProfile.packageAllowlist`
67
+ with `update_agent`. Then turn the mode off.
68
+
69
+ Without `names`, the tool adds only `top-level` packages. A package recorded
70
+ as `unknown` (installed with no metadata or plan to show its parent) may be a
71
+ dependency of an allowlisted package, so every report lists it apart as
72
+ "Relation unknown — may be a dependency; approve only if needed directly".
73
+ Add one only if the project uses it directly, by listing it in `names`.
74
+
75
+ ## Risks
76
+
77
+ Audit mode weakens the supply-chain guard while it is on. `audit` keeps the
78
+ malware, advisory and release-age checks; `full` keeps only malware and
79
+ release age. A confused or prompt-injected agent could install a lookalike
80
+ package that has no advisory yet. Install scripts stay off, but tests and
81
+ builds still run what was installed. Keep the window short, review the
82
+ caution banner on every affected pull request, and never leave it on.
83
+
84
+ ## Related
85
+
86
+ - [Coding packages](coding-packages.md)
87
+ - [Not allowed: `wardby_package_not_allowed`](errors/package-not-allowed.md)
88
+ - [Package not reached: `wardby_package_not_allowed_pending`](errors/package-not-allowed-pending.md)
89
+ - [Graph limit: `wardby_graph_limit`](errors/graph-limit.md)
90
+ - [Still being checked: `wardby_graph_incomplete`](errors/graph-incomplete.md)
91
+ - [Package audit mode guide](../docs/coding-packages.md#package-audit-mode)
@@ -11,16 +11,19 @@ appliesTo: ">=0.4.2"
11
11
 
12
12
  When one request produces pull requests in several repositories — a lead
13
13
  agent that delegates to one coding agent per repository, or several runs for
14
- the same Jira issue — Wardby adds a **Related pull requests** section to each
14
+ the same Jira or GitHub issue — Wardby adds a **Related pull requests** section to each
15
15
  of those pull requests' descriptions. It lists the others with links and
16
16
  their state, names the originating issue when there is one, and gives a
17
17
  merge order: the one the delegating agent set, or else a suggested one.
18
18
 
19
- Without a tracked Jira issue, the list covers the pull requests opened by
20
- runs in the same delegation tree (the same lead run and everything it
21
- started). With a tracked issue, the list covers every pull request Wardby
22
- has recorded for that issue across every run, merged and closed ones
23
- included, plus that run tree's own siblings.
19
+ Without a tracked issue, the list covers the pull requests opened by runs in
20
+ the same delegation tree (the same lead run and everything it started). With
21
+ a tracked issue (a Jira issue, or a GitHub issue whose `@<app-slug>` mention
22
+ started the request), the list covers every pull request Wardby has recorded
23
+ for that issue across every run, merged and closed ones included, plus that
24
+ run tree's own siblings. The section names the issue the same way for both,
25
+ for example "for Jira issue PROJ-123" or "for GitHub issue owner/repo#7",
26
+ linked to the issue.
24
27
 
25
28
  - **Written by Wardby, not the model.** The list comes from Wardby's own run
26
29
  records, never from the agent's text. Edits you make inside the section
@@ -65,7 +68,7 @@ included, plus that run tree's own siblings.
65
68
  name and number, so a request that spans repositories of different
66
69
  visibility can show a private repository's name in a public repository's
67
70
  pull request. If you mix public and private repositories, keep such work in
68
- separate requests: separate Jira issues, or separate lead agents.
71
+ separate requests: separate issues, or separate lead agents.
69
72
 
70
73
  Reviewers see the section in the pull request description, so a reviewer
71
74
  agent can tell that a field, route, or schema a change relies on is added by
@@ -125,15 +128,19 @@ such hints: a fix round's task names only its own pull request. Merged and
125
128
  closed pull requests are never listed as continuable: a change there needs a
126
129
  new pull request, which joins the set once it is recorded.
127
130
 
131
+ When the sub-agent is a coding agent with a list of repositories, a
132
+ follow-up delegation passes `continuePriorRun` and takes its repository from
133
+ that run, so it needs no `repository` of its own.
134
+
128
135
  Give your own delivery or router agent's system prompt a line such as:
129
136
 
130
137
  Continue the pull request you were asked about, and any listed open
131
138
  sibling the change requires; never open a new pull request in a
132
139
  repository that already has an open sibling for this request.
133
140
 
134
- The usual limits still apply: `maxDelegationsPerRun` and never delegating to
135
- the same sub-agent twice in one run; every push to a sibling pull request
136
- gets its own review; fix rounds are capped per pull request and only one
141
+ The usual limits still apply: `maxDelegationsPerRun` and delegating to each
142
+ sub-agent and repository at most once per run; every push to a sibling pull
143
+ request gets its own review; fix rounds are capped per pull request and only one
137
144
  runs at a time on a pull request; and a continuation only ever reaches a
138
145
  sub-agent that shares the same owner as the one asked to continue it.
139
146
 
@@ -4,7 +4,7 @@ title: Repository instructions and skills in coding runs
4
4
  summary: What AGENTS.md, CLAUDE.md, and repo skills a coding run loads, and how to turn repo skills off per agent with codingProfile.repoSkills.
5
5
  audience: all
6
6
  tags: [coding, skills, repoSkills, claudeBareMode, CLAUDE.md, AGENTS.md, SKILL.md, codex, claude-code]
7
- appliesTo: ">=0.5.4"
7
+ appliesTo: ">=0.6.0"
8
8
  ---
9
9
 
10
10
  # Repository instructions and skills in coding runs
@@ -81,6 +81,8 @@ never loaded in either mode.
81
81
 
82
82
  ## See also
83
83
 
84
+ - [Remote MCP servers](../docs/mcp-servers.md) (0.8.0+) are for native agents only; a coding run loads no
85
+ MCP configuration.
84
86
  - [Choose a native or coding agent](creating-agents.md) for `codingProfile`
85
87
  basics and the other fields it accepts.
86
88
  - [Bring-Your-Own Coding-Worker Images](../docs/coding-worker-byo-images.md)
@@ -0,0 +1,134 @@
1
+ ---
2
+ id: resume-runs-locally
3
+ title: Resume Claude Code runs locally (sessionResume, get_run_transcript, wardby resume)
4
+ summary: Keep each Claude Code run's redacted conversation with sessionResume, then continue it on your machine with get_run_transcript and npx @wardby/cli@latest resume.
5
+ audience: operator
6
+ tags: [sessionResume, wardby resume, get_run_transcript, transcript, blob-store, WARDBY_SESSION_TRANSCRIPTS]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Resume Claude Code runs locally
11
+
12
+ `sessionResume` makes a Claude Code agent keep a redacted copy of each run's
13
+ conversation, so the session can be continued locally in Claude Code with
14
+ `get_run_transcript` and `npx @wardby/cli@latest resume`. It is off by default and is not
15
+ available for Codex agents. It needs Claude Code worker images from Wardby
16
+ 0.7.0 or later.
17
+
18
+ ## Turn it on
19
+
20
+ ```json
21
+ { "id": "<coding agent id>", "codingProfile": { "sessionResume": true } }
22
+ ```
23
+
24
+ Use `update_agent` or `create_agent`. The server needs a blob store
25
+ (`BLOB_STORE`, with `BLOB_STORE_LOCAL_DIR`, `BLOB_STORE_GCS_BUCKET`, or
26
+ `BLOB_STORE_S3_BUCKET` and `BLOB_STORE_S3_REGION`, plus the optional
27
+ `BLOB_STORE_S3_ENDPOINT` for an S3-compatible store) set on the **server
28
+ process** that launches coding runs, not only on the coding proxy. Without a
29
+ blob store nothing is stored, and `update_agent` warns you.
30
+
31
+ ## What is stored
32
+
33
+ - The conversation as Claude Code recorded it: user and assistant messages,
34
+ tool calls and their results, compaction summaries, files and skills the
35
+ agent loaded, and a session title (`wardby run <id>: <task>` when Claude
36
+ Code made none).
37
+ - Removed: thinking blocks, the system prompt, the worker's environment, date
38
+ and budget reminders, account and organisation details, and billing
39
+ records.
40
+ - Redacted: the values of the agent's attached secrets, plus the run's
41
+ capability and registry token by their token shape. If the agent's secrets
42
+ cannot be loaded, nothing is stored.
43
+ - Stored for runs that finish, stop at their budget, or fail. Not stored for
44
+ runs stopped with `stop_run` or ended by their timeout.
45
+ - Stored gzip-compressed under the `run-transcripts/` prefix. When the run's
46
+ context was compacted, only what a resume loads is kept: the last
47
+ compaction's summary, the messages it kept, and everything after it.
48
+ - At most `RUN_TRANSCRIPT_MAX_BYTES` per run, measured before compression
49
+ (default 10 MiB, at most 64 MiB). Each run records a status (`stored`,
50
+ `too_large`, `not_captured` or `failed`) with a reason code.
51
+
52
+ ## Who can read it
53
+
54
+ Transcripts are stored from the first run with `sessionResume` on. Anyone
55
+ who can read a run (its triggerer and the agent's owner, as for `get_run`)
56
+ can download its transcript, which includes
57
+ what the agent saw in the repository and in command output. Redaction removes secret
58
+ values, not other sensitive text. Turn this on only for agents whose runs you
59
+ are comfortable sharing with everyone who can read them.
60
+
61
+ ## Continue a run on your machine
62
+
63
+ 1. Ask your MCP client to call `get_run_transcript` with the run id (same
64
+ access as `get_run`). For a stored transcript it returns a download link
65
+ that works for 10 minutes and the command to run; otherwise the status
66
+ (`none`, `too_large`, `not_captured`, `failed`, `expired`, `unavailable`,
67
+ `unsupported`) and what it means.
68
+ 2. Run the command in a terminal, `npx @wardby/cli@latest resume -`, and paste the link
69
+ when it asks. (A link given as an argument stays in shell history and the
70
+ process list.) For a GitHub repository, run it inside a clone of that
71
+ repository. A `local:` repository is used only when the link comes from
72
+ this machine (a stdio MCP server); otherwise pass `--here` or `--dir`.
73
+
74
+ It verifies the download's SHA-256, writes the session to
75
+ `~/.wardby/sessions/<run id>/<session id>.jsonl` (mode 0600, never into
76
+ Claude Code's own config directory), adds a detached git worktree of the
77
+ run's branch next to the repository (the base commit, with a warning, when
78
+ the branch is gone), and starts `claude --resume` there. A stand-in
79
+ `wardby_tools` server shows the run's `run_command` calls but runs nothing,
80
+ and a note tells the model `/workspace` is now the worktree.
81
+
82
+ Options: `--dir <path>` (worktree location), `--here` (no checkout),
83
+ `--force` (replace a different imported session file), `--print` (print the
84
+ `claude` command instead of starting it). The command passes
85
+ `--system-prompt-snapshot off` so the move note applies; remove it for a
86
+ Claude Code older than 2.1.257 when the version could not be read. Under
87
+ `npx`, the MCP config points into the npx cache: run `wardby resume` again if
88
+ the cache was cleaned.
89
+
90
+ The link is a credential until it expires: do not share it. Over stdio it
91
+ points at a local port the MCP server opens, so keep your MCP client
92
+ connected until the download finishes. The token is in the link's query
93
+ string: keep `/run-transcripts/download` out of load-balancer and ingress
94
+ access logs. Refusals:
95
+ [Run transcript download refused](errors/run-transcript-download.md).
96
+
97
+ ## Retention
98
+
99
+ `RUN_TRANSCRIPT_RETENTION_DAYS` is a whole number from 1 to 3650 (default 30).
100
+ Expired transcripts are pruned when new ones are stored. On GCS or S3 also add
101
+ a bucket lifecycle rule on the `run-transcripts/` prefix.
102
+
103
+ ## Set it up per deployment
104
+
105
+ Give transcripts a bucket of their own, not the dependency cache bucket, that
106
+ only the control plane can use.
107
+
108
+ - GKE: `session_transcripts_enabled` and `session_transcripts_bucket_name` in
109
+ Terraform (optionally `session_transcripts_retention_days`), then
110
+ `WARDBY_SESSION_TRANSCRIPTS=true deploy/gke/up.sh`. Terraform adds the
111
+ lifecycle rule; `up.sh` passes the same retention to the control plane.
112
+ - AWS: the same Terraform variables, then give the control plane `BLOB_STORE=s3`,
113
+ the `session_transcripts_bucket` output as `BLOB_STORE_S3_BUCKET`,
114
+ `BLOB_STORE_S3_REGION`, and the `session_transcripts_retention_days` output as
115
+ `RUN_TRANSCRIPT_RETENTION_DAYS`.
116
+ - kind harness and Docker quickstart: the server runs on your host. Set
117
+ `BLOB_STORE=local` and `BLOB_STORE_LOCAL_DIR` in its environment (for the
118
+ quickstart, in `.wardby/.env`).
119
+
120
+ ## Startup and custom images
121
+
122
+ With `JOB_LAUNCHER` set to `docker` or `kubernetes`, a half-set `BLOB_STORE`
123
+ or an invalid `RUN_TRANSCRIPT_RETENTION_DAYS` or `RUN_TRANSCRIPT_MAX_BYTES` stops
124
+ the server at startup,
125
+ naming the variable. An agent with its own `workerImageRef` image must rebuild
126
+ it from a release that includes session resume (see
127
+ [Build a tool runner image for a Claude Code agent](help://build-claude-code-image)),
128
+ or its runs fail at input with `worker_input_failed`.
129
+
130
+ Full setup: [Resume a run locally](../docs/coding-agent-setup.md#resume-a-run-locally).
131
+ See also [Choose a native or coding agent](help://creating-agents).
132
+
133
+ The `wardby-runs` Claude Code plugin can start the import from a run's detail
134
+ (**Continue locally**); see `claude-code-run-pane` (Wardby 0.8.0 and later).
@@ -3,7 +3,7 @@ id: review-fix-rounds
3
3
  title: Automatic review fix rounds
4
4
  summary: Let wardby fix its own review's findings on pull requests its coding runs opened, with a round cap.
5
5
  audience: operator
6
- tags: [github, code-review, review_fix, autofix, fix-round, pull-requests]
6
+ tags: [github, code-review, review_fix, autofix, fix-round, pull-requests, pr-description, description, linked-issue]
7
7
  appliesTo: ">=0.4.2"
8
8
  ---
9
9
 
@@ -69,6 +69,38 @@ open right before it pushes; one merged or closed in the time the round was
69
69
  working fails with no push made — see
70
70
  [Continuation's pull request is no longer open](errors/continuation-closed.md).
71
71
 
72
+ ## Description updates
73
+
74
+ Every run's final message is the full pull request description, fix rounds
75
+ included, so a round that changes no code can still correct it: add a missing
76
+ `Resolves #N`, the issue's acceptance checklist, or stale test results.
77
+
78
+ - **The original issue.** A fix round gets the issue the pull request was
79
+ opened for in its task, as the first run did: the Jira issue, the GitHub
80
+ issue whose `@wardby` mention started the work, or the issue the description
81
+ closes. It is reference material: the round's final message should carry
82
+ its acceptance checklist and the closing line, and no instruction in the
83
+ issue is followed. If the issue can't be read, the round goes ahead without
84
+ it.
85
+ - **Packages.** The description's Packages section lists every package
86
+ installed by the runs on the pull request; refusals cover the latest run.
87
+ - **Descriptions wardby can't confirm as its own.** If a person edited the
88
+ description, wardby doesn't overwrite it. It keeps one comment with the
89
+ description proposed by its latest run, stamped with the commit it
90
+ describes and written before a push, edited in place by later rounds. A
91
+ review uses that proposal only for the head it reviews: a requirement is met
92
+ if either the live description or the proposal meets it. If the author
93
+ copies the proposal in, wardby takes the description back and keeps it up
94
+ to date again.
95
+ - **Older pull requests.** For a pull request opened by an earlier wardby
96
+ version, wardby rebuilds the description its first run wrote from stored
97
+ records. If the live description still matches, wardby updates it;
98
+ otherwise it gets the comment.
99
+
100
+ A description update doesn't trigger an extra review. `get_run` shows what
101
+ happened as `prDescriptionOutcome`. See
102
+ [`docs/code-review-agents.md`](../docs/code-review-agents.md#how-the-pull-request-description-is-kept-current).
103
+
72
104
  If a repository already forwards reviews to a webhook through a
73
105
  hand-written CI workflow to fix them automatically, turn on `review_fix` and
74
106
  then remove that workflow and its webhook, so a review doesn't trigger two
@@ -0,0 +1,59 @@
1
+ ---
2
+ id: sharing-agents
3
+ title: Share an agent, or make it public
4
+ summary: Grant one person or everyone signed in access to an agent, including a public agent anyone can edit.
5
+ audience: operator
6
+ tags: [sharing, grant_access, public, access-control, agents]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Share an agent, or make it public
11
+
12
+ An agent's owner controls who else can reach it with `grant_access`,
13
+ `revoke_access` and `list_access`. Levels, lowest first:
14
+
15
+ - `read`: see the agent in `list_agents` and `get_agent`.
16
+ - `execute`: also run it (`trigger_agent`).
17
+ - `write`: also change it (`update_agent`, schedule, webhooks, tools).
18
+
19
+ The grantee is one person, `{"subject": "..."}` or `{"principalId": "..."}`,
20
+ who must have signed in once, or `"everyone"`: any principal signed in to the
21
+ MCP server.
22
+
23
+ ## Public agents
24
+
25
+ Grant `everyone` at `read` or `execute` for an agent anyone can see or run.
26
+ Grant `everyone` at `write` for an agent anyone can also edit.
27
+
28
+ Everyone-`write` is refused while the agent holds any of its owner's bindings:
29
+ secrets, datastores, repositories, sub-agents, tool capabilities, or a coding
30
+ repository, so a coding agent can't be public-write. Otherwise anyone could
31
+ rewrite its prompt and use them. Detach them first, or grant `execute` instead.
32
+ The reverse holds too: `attach_secret`, `attach_datastore`, `link_repository`,
33
+ `attach_subagent`, `attach_tool` with capabilities, and `update_agent` making
34
+ it a coding agent are refused on an agent everyone can write. Revoke or lower
35
+ the everyone grant first.
36
+
37
+ ### Cap what a public-write agent can spend
38
+
39
+ Runs of a shared agent are charged to its owner. With `write`, anyone signed in
40
+ can change the agent's model, per-run budget, turns and schedule, and create
41
+ webhooks that trigger it. Before granting everyone `write`, put the agent in a
42
+ budget group (`create_budget_group`, then `update_agent` with `budgetGroupId`).
43
+ Only the owner can change
44
+ budget-group membership, so the group's limit caps total spend whatever anyone
45
+ else changes.
46
+
47
+ ### After you revoke or lower the grant
48
+
49
+ - **Webhooks:** a webhook fires only while its creator can still run the
50
+ agent. Revoking the everyone grant stops webhooks other people created;
51
+ lowering it to `execute` keeps them firing. Use `list_webhooks` and
52
+ `delete_webhook` to remove them; the owner can delete any webhook on the
53
+ agent.
54
+ - **Schedule:** a schedule someone else set stays on the agent. Check it with
55
+ `get_agent` and remove it with `disable_schedule`.
56
+ - **Prompt and settings:** edits stay. Check the prompt, model and budget with
57
+ `get_agent`.
58
+
59
+ See [Identity and access](identity-and-access.md) for sign-in and scopes.
@@ -28,11 +28,25 @@ per card. This is outbound only: nothing in Slack starts or affects a run.
28
28
 
29
29
  ## Events
30
30
 
31
- `issue_picked_up`, `run_failed` (top-level runs only), `pr_opened`,
32
- `review_posted` (approve / changes requested / comment), `review_fix` (round
33
- started, or stopped at the cap), and `pr_closed` (merged or closed, with any
34
- Jira status move). `events` on a link narrows which of these post; omitted
35
- means all six. `includeCost` appends the run's spend line.
31
+ `issue_picked_up`, `run_failed` and `run_blocked` (top-level runs only),
32
+ `pr_opened`, `review_posted` (approve / changes requested / comment),
33
+ `review_fix` (round started, or stopped at the cap), `pr_closed` (merged or
34
+ closed, with any Jira status move), and `packages_audited` (from Wardby 0.7.0,
35
+ top-level runs only: what its coding runs installed under package audit mode,
36
+ described in the `package-audit-mode` help article; it doesn't change the
37
+ thread's status). `events` on a link narrows which of these post; omitted
38
+ means all eight. `includeCost` appends the run's spend line.
39
+
40
+ A pull request opened from a GitHub issue mention posts `pr_opened` and
41
+ `pr_closed` too, the same as one opened for a Jira issue. Its thread is the
42
+ issue's, one per GitHub issue, not one per pull request; once the pull request
43
+ is recorded for the issue, its `review_posted` and `review_fix` events reply
44
+ there as well. The run events of a run a GitHub issue mention started keep a
45
+ thread of their own.
46
+
47
+ A `run_blocked` event uses the same ⛔ package registry wording and fixes as
48
+ [Run status comments](status-comments.md). See [Package refusal errors](errors/package-refusals.md)
49
+ for allowlist, release-age, advisory, and malware guidance.
36
50
 
37
51
  wardby never posts code, diffs, review text, or run output to Slack.
38
52
 
@@ -0,0 +1,31 @@
1
+ ---
2
+ id: status-comments
3
+ title: Run status comments
4
+ summary: Read GitHub and Jira run outcomes, package registry blocked statuses, and Slack notifications.
5
+ audience: operator
6
+ tags: [status, comments, github, jira, slack, blocked, packages, mentions]
7
+ appliesTo: >=0.2.1
8
+ ---
9
+
10
+ # Run status comments
11
+
12
+ Mentioning the GitHub App starts a run and posts a working status comment.
13
+ The comment is updated when the run finishes, with pull request links, an
14
+ answer, or a failure. This includes a run that a deploy moved to a new
15
+ control-plane process. Jira requests also report their outcome in a status
16
+ comment.
17
+
18
+ When coding sub-runs record package refusals and no pull request or pushed
19
+ changes result, the comment shows ⛔ **Blocked by the package registry: no
20
+ changes were made.** It lists refused packages, registry codes, and fixes.
21
+ Slack notifications use the same blocked wording. Lists are limited to ten
22
+ distinct entries with a count of remaining refusals; use `get_run` for all.
23
+ When changes were pushed despite refusals, the pull request link stays and
24
+ there is a ⚠️ dependency install warning. Without refusals, the usual ✅
25
+ success or ❌ failure wording remains.
26
+
27
+ An approver can update the coding agent's package allowlist or policy with
28
+ `update_agent` (requires `packages:approve` or `agents:admin`), then mention
29
+ `@wardby` again. See [Package refusal errors](errors/package-refusals.md) for
30
+ code-specific fixes and [Approve packages for coding agents](coding-packages.md)
31
+ for policy details. Malware checks cannot be bypassed.
@@ -0,0 +1,58 @@
1
+ ---
2
+ id: stop-run
3
+ title: Stop or cancel a run
4
+ summary: Use stop_run to stop a pending, queued, or running run and its in-flight sub-agent runs; it ends as cancelled.
5
+ audience: operator
6
+ tags: [runs, stop run, cancel run, stop_run, cancelled, schedules, coding-agents, native-agents, sandbox]
7
+ appliesTo: ">=0.7.0"
8
+ ---
9
+
10
+ # Stop or cancel a run
11
+
12
+ Call the MCP tool `stop_run` with the run's id to stop a run that has not
13
+ finished. Add an optional `reason`; it is recorded on the run.
14
+
15
+ ```text
16
+ stop_run {"runId": "<run id>", "reason": "unwanted scheduled run"}
17
+ ```
18
+
19
+ Find the id with `list_runs` (filter with `"status": "pending"` or
20
+ `"running"`). To stop a schedule from creating more runs, disable it with
21
+ `disable_schedule` as well; `stop_run` stops one run, not the schedule.
22
+
23
+ ## What happens
24
+
25
+ The run ends as `cancelled`, with `Stopped by <your id> with stop_run: <reason>`
26
+ in its `stopRequestReason` (and, for a native run, in its `error`).
27
+
28
+ | The run is | `stop_run` |
29
+ | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
30
+ | Pending, or a coding run queued for a slot | Ends it now. It never starts. |
31
+ | A running native run in the control plane | Ends it now; the run stops at its next step. A model turn already under way finishes first; a tool call already under way is aborted within a few seconds. |
32
+ | A running native run in the sandbox | Ends it now and ends its gateway session, so the worker's next call is refused and it exits. A worker still running after a short grace (5 seconds) is killed and removed; a warm pool worker is never reused. |
33
+ | A running coding run | Ends it, cancels its model proxy session, and stops and removes its worker. It opens or updates no pull request afterwards. |
34
+ | Already finished (any other status) | Changes nothing and returns its status. Calling `stop_run` again is safe. |
35
+
36
+ Sub-agent runs the stopped run delegated, and that are still pending or running,
37
+ are stopped too (their ids are in `stoppedChildRunIds`).
38
+
39
+ Spend already recorded stays counted against the budget. A stopped run is not a
40
+ failure: Slack notifications say it was cancelled, and no defect is filed.
41
+
42
+ If the result still shows `pending` or `running`, the stop has been recorded
43
+ but has not landed yet; check again with `get_run`.
44
+
45
+ ## Who can stop a run
46
+
47
+ You need the `runs:trigger` scope and `execute` access to the run's agent, the
48
+ same as `trigger_agent`. The agent's owner can stop any of its runs, including
49
+ scheduled ones; anyone else can stop only runs they triggered. A run you cannot
50
+ see returns `Run "<id>" not found.`, exactly like a missing one; a run you
51
+ triggered but whose agent you can no longer execute returns a 403.
52
+
53
+ ## Related
54
+
55
+ - [Operate managed agents](operating-agents.md)
56
+ - [Run native agents in a sandbox](native-sandbox.md)
57
+ - [Slack notifications](slack-notifications.md)
58
+ - [Run lost](errors/run-lost.md), for runs a deploy interrupted
@@ -41,3 +41,31 @@ with `already_dispatched` and a message naming how many delegations were
41
41
  made and how many are waiting for budget.
42
42
 
43
43
  For a shared-group refusal, read [Budget group exhausted](../errors/budget-group-exhausted.md).
44
+
45
+ To see exactly which limit stopped a run and with what numbers, read
46
+ `budgetEvents` in `get_run`; see the help article `errors/budget-exhausted`.
47
+ A lead and the sub-agents it starts in the same budget group hold the lead's
48
+ budget once (or its live sub-agent runs' unspent holds, if the lead's overrun
49
+ let them be topped up past it), and `get_budget_group` reports `heldRuns` for
50
+ each period.
51
+
52
+ A coding run's per-request holds price the cached part of the input at the
53
+ cache-read rate after the first reply of a conversation; see the help article
54
+ `errors/budget-exhausted`.
55
+
56
+ ## Allowing a small overrun
57
+
58
+ If coding runs stop just short of finishing, set `allowedOverrunPercent` (0 to
59
+ 100, default 0) on the coding agent so a run may spend that percent beyond
60
+ `budgetUsd`. Set it on a lead agent that delegates to raise its run tree's
61
+ ceiling for coding sub-agents; native runs' own model calls are not affected.
62
+
63
+ The overrun is not reserved. A run reserves its base budget, and is topped up
64
+ toward its limit while it works, only from room its budget group and run tree
65
+ have at that moment. Budget group and run-tree caps stay hard: in a full group
66
+ the run stops at what it was granted, and its budget sentence says so ("Only
67
+ $0.40 of its 10% allowed overrun was available because the "team" group had no
68
+ more left of its daily cap."). `get_run` shows `budgetBaseUsd`, the limit in `budgetLimitUsd`, and what
69
+ has been granted so far in `budgetReservedUsd`. A run still stopped for budget
70
+ keeps its work as a draft pull request you can continue. See
71
+ `errors/budget-exhausted`.