@wardby/cli 0.5.3 → 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 (763) hide show
  1. package/.env.example +33 -0
  2. package/README.md +25 -14
  3. package/deploy/local/docker-compose.quickstart-coding.yml +13 -0
  4. package/dist/claude-coding-worker/context.d.ts +22 -0
  5. package/dist/claude-coding-worker/context.js +92 -0
  6. package/dist/claude-coding-worker/driver.d.ts +27 -3
  7. package/dist/claude-coding-worker/driver.js +161 -20
  8. package/dist/claude-coding-worker/main.js +34 -6
  9. package/dist/claude-coding-worker/sdk.js +25 -5
  10. package/dist/claude-coding-worker/tool-socket.d.ts +27 -0
  11. package/dist/claude-coding-worker/tool-socket.js +111 -0
  12. package/dist/claude-coding-worker/transcript.d.ts +18 -0
  13. package/dist/claude-coding-worker/transcript.js +77 -0
  14. package/dist/cli-help.d.ts +1 -1
  15. package/dist/cli-help.js +6 -2
  16. package/dist/cli-native-mode.d.ts +9 -0
  17. package/dist/cli-native-mode.js +20 -0
  18. package/dist/cli.d.ts +3 -1
  19. package/dist/cli.js +161 -11
  20. package/dist/coding/claude-context.d.ts +45 -0
  21. package/dist/coding/claude-context.js +434 -0
  22. package/dist/coding/continuation-wording.d.ts +35 -0
  23. package/dist/coding/continuation-wording.js +73 -0
  24. package/dist/coding/linked-issue-note.d.ts +23 -0
  25. package/dist/coding/linked-issue-note.js +47 -0
  26. package/dist/coding/merge-wording.d.ts +28 -0
  27. package/dist/coding/merge-wording.js +78 -0
  28. package/dist/coding/pr-description-note.d.ts +9 -0
  29. package/dist/coding/pr-description-note.js +32 -0
  30. package/dist/coding/profile.d.ts +50 -118
  31. package/dist/coding/profile.js +51 -4
  32. package/dist/coding/protected-path-wording.d.ts +8 -0
  33. package/dist/coding/protected-path-wording.js +1 -1
  34. package/dist/coding/protocol.d.ts +292 -270
  35. package/dist/coding/protocol.js +322 -15
  36. package/dist/coding/redact.d.ts +3 -0
  37. package/dist/coding/redact.js +12 -0
  38. package/dist/coding/registry/allowlist.d.ts +12 -0
  39. package/dist/coding/registry/allowlist.js +14 -1
  40. package/dist/coding/registry/audit-mode.d.ts +153 -0
  41. package/dist/coding/registry/audit-mode.js +304 -0
  42. package/dist/coding/registry/lockfile-shared.d.ts +36 -0
  43. package/dist/coding/registry/lockfile-shared.js +128 -0
  44. package/dist/coding/registry/lockfiles.js +1 -1
  45. package/dist/coding/registry/npm-lockfile-formats.d.ts +11 -0
  46. package/dist/coding/registry/npm-lockfile-formats.js +41 -0
  47. package/dist/coding/registry/npm-lockfile.d.ts +8 -4
  48. package/dist/coding/registry/npm-lockfile.js +4 -6
  49. package/dist/coding/registry/npm.js +78 -8
  50. package/dist/coding/registry/pnpm-lockfile.d.ts +17 -0
  51. package/dist/coding/registry/pnpm-lockfile.js +189 -0
  52. package/dist/coding/registry/pypi-plan.d.ts +50 -0
  53. package/dist/coding/registry/pypi-plan.js +406 -0
  54. package/dist/coding/registry/pypi-requirements.d.ts +58 -0
  55. package/dist/coding/registry/pypi-requirements.js +155 -0
  56. package/dist/coding/registry/pypi.d.ts +3 -27
  57. package/dist/coding/registry/pypi.js +40 -154
  58. package/dist/coding/registry/refusal-hints.d.ts +20 -0
  59. package/dist/coding/registry/refusal-hints.js +61 -0
  60. package/dist/coding/registry/refusal-wording.d.ts +11 -0
  61. package/dist/coding/registry/refusal-wording.js +56 -0
  62. package/dist/coding/registry/report.d.ts +70 -8
  63. package/dist/coding/registry/report.js +112 -5
  64. package/dist/coding/registry/types.d.ts +58 -8
  65. package/dist/coding/registry/yarn-lockfile.d.ts +30 -0
  66. package/dist/coding/registry/yarn-lockfile.js +367 -0
  67. package/dist/coding/services/catalog.d.ts +37 -351
  68. package/dist/coding/transcript/claude-code.d.ts +13 -0
  69. package/dist/coding/transcript/claude-code.js +273 -0
  70. package/dist/coding/transcript/download-protocol.d.ts +30 -0
  71. package/dist/coding/transcript/download-protocol.js +18 -0
  72. package/dist/coding/transcript/format.d.ts +20 -0
  73. package/dist/coding/transcript/format.js +32 -0
  74. package/dist/coding/transcript/recorder.d.ts +51 -0
  75. package/dist/coding/transcript/recorder.js +225 -0
  76. package/dist/coding/transcript/resume/checkout.d.ts +31 -0
  77. package/dist/coding/transcript/resume/checkout.js +203 -0
  78. package/dist/coding/transcript/resume/command.d.ts +17 -0
  79. package/dist/coding/transcript/resume/command.js +176 -0
  80. package/dist/coding/transcript/resume/download.d.ts +20 -0
  81. package/dist/coding/transcript/resume/download.js +153 -0
  82. package/dist/coding/transcript/resume/launch.d.ts +38 -0
  83. package/dist/coding/transcript/resume/launch.js +128 -0
  84. package/dist/coding/transcript/resume/session-file.d.ts +13 -0
  85. package/dist/coding/transcript/resume/session-file.js +79 -0
  86. package/dist/coding/transcript/resume/stand-in.d.ts +11 -0
  87. package/dist/coding/transcript/resume/stand-in.js +49 -0
  88. package/dist/coding-worker/artifact.d.ts +16 -3
  89. package/dist/coding-worker/artifact.js +5 -3
  90. package/dist/coding-worker/debug-trace.d.ts +6 -5
  91. package/dist/coding-worker/debug-trace.js +13 -18
  92. package/dist/coding-worker/dependency-cache.d.mts +229 -0
  93. package/dist/coding-worker/dependency-cache.mjs +2123 -0
  94. package/dist/coding-worker/driver.d.ts +4 -3
  95. package/dist/coding-worker/driver.js +118 -38
  96. package/dist/coding-worker/errors.d.ts +1 -0
  97. package/dist/coding-worker/errors.js +32 -0
  98. package/dist/coding-worker/sdk.d.ts +6 -0
  99. package/dist/coding-worker/sdk.js +1 -0
  100. package/dist/coding-worker/skills.d.ts +23 -0
  101. package/dist/coding-worker/skills.js +117 -0
  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 +13 -0
  105. package/dist/config/dependency-cache.d.ts +23 -0
  106. package/dist/config/dependency-cache.js +32 -0
  107. package/dist/config/github-allowed-accounts.d.ts +15 -0
  108. package/dist/config/github-allowed-accounts.js +36 -0
  109. package/dist/config/low-power.d.ts +12 -0
  110. package/dist/config/low-power.js +18 -0
  111. package/dist/config/mobile.d.ts +12 -0
  112. package/dist/config/mobile.js +18 -0
  113. package/dist/config/providers.d.ts +65 -3
  114. package/dist/config/providers.js +147 -11
  115. package/dist/config/test-simulators.d.ts +82 -0
  116. package/dist/config/test-simulators.js +305 -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-queue.d.ts +2 -1
  130. package/dist/core/coding-queue.js +7 -0
  131. package/dist/core/cron.d.ts +19 -1
  132. package/dist/core/cron.js +17 -0
  133. package/dist/core/datastores.js +1 -1
  134. package/dist/core/db.d.ts +16 -6
  135. package/dist/core/db.js +12 -10
  136. package/dist/core/deferred-coding.d.ts +14 -0
  137. package/dist/core/deferred-coding.js +62 -0
  138. package/dist/core/delegation-child.d.ts +25 -0
  139. package/dist/core/delegation-child.js +37 -0
  140. package/dist/core/dispatch.d.ts +53 -0
  141. package/dist/core/dispatch.js +167 -57
  142. package/dist/core/engine-native.js +10 -6
  143. package/dist/core/error-code.d.ts +38 -0
  144. package/dist/core/error-code.js +168 -0
  145. package/dist/core/grants.d.ts +19 -6
  146. package/dist/core/grants.js +55 -6
  147. package/dist/core/host-events.d.ts +67 -5
  148. package/dist/core/host-events.js +571 -37
  149. package/dist/core/host-status.d.ts +85 -3
  150. package/dist/core/host-status.js +298 -20
  151. package/dist/core/issue-bridge.d.ts +50 -6
  152. package/dist/core/issue-bridge.js +151 -20
  153. package/dist/core/issue-events.d.ts +1 -1
  154. package/dist/core/issue-events.js +16 -11
  155. package/dist/core/issue-status.d.ts +1 -1
  156. package/dist/core/issue-status.js +68 -29
  157. package/dist/core/logger.d.ts +5 -0
  158. package/dist/core/logger.js +14 -1
  159. package/dist/core/lost-run-children.d.ts +6 -0
  160. package/dist/core/lost-run-children.js +32 -0
  161. package/dist/core/mark-ready.d.ts +34 -0
  162. package/dist/core/mark-ready.js +152 -0
  163. package/dist/core/markdown-code.d.ts +8 -0
  164. package/dist/core/markdown-code.js +107 -0
  165. package/dist/core/memory-tools.js +7 -0
  166. package/dist/core/merge-order-check.d.ts +130 -0
  167. package/dist/core/merge-order-check.js +343 -0
  168. package/dist/core/notification-dispatcher.d.ts +70 -0
  169. package/dist/core/notification-dispatcher.js +368 -0
  170. package/dist/core/notification-templates.d.ts +19 -0
  171. package/dist/core/notification-templates.js +139 -0
  172. package/dist/core/notifications.d.ts +10 -0
  173. package/dist/core/notifications.js +38 -0
  174. package/dist/core/pg-auth.d.ts +22 -0
  175. package/dist/core/pg-auth.js +152 -0
  176. package/dist/core/power-composition.d.ts +16 -0
  177. package/dist/core/power-composition.js +37 -0
  178. package/dist/core/power-idle.d.ts +14 -0
  179. package/dist/core/power-idle.js +30 -0
  180. package/dist/core/power.d.ts +71 -0
  181. package/dist/core/power.js +202 -0
  182. package/dist/core/pull-request-state-sync.js +2 -2
  183. package/dist/core/reconciler.d.ts +8 -5
  184. package/dist/core/reconciler.js +37 -6
  185. package/dist/core/related-pull-requests.d.ts +59 -7
  186. package/dist/core/related-pull-requests.js +140 -25
  187. package/dist/core/reply-parts.d.ts +21 -0
  188. package/dist/core/reply-parts.js +73 -0
  189. package/dist/core/repo-access.d.ts +15 -0
  190. package/dist/core/repo-access.js +66 -0
  191. package/dist/core/review-fix.d.ts +38 -1
  192. package/dist/core/review-fix.js +209 -7
  193. package/dist/core/review-host-checks.d.ts +1 -1
  194. package/dist/core/review-host-tools.d.ts +23 -0
  195. package/dist/core/review-host-tools.js +156 -14
  196. package/dist/core/review-reads.d.ts +55 -0
  197. package/dist/core/review-reads.js +233 -0
  198. package/dist/core/run-status.d.ts +12 -0
  199. package/dist/core/run-status.js +12 -0
  200. package/dist/core/runner.d.ts +384 -5
  201. package/dist/core/runner.js +1244 -372
  202. package/dist/core/schedule-start.d.ts +12 -0
  203. package/dist/core/schedule-start.js +14 -0
  204. package/dist/core/secret-broker-config.d.ts +39 -0
  205. package/dist/core/secret-broker-config.js +112 -0
  206. package/dist/core/secret-guard.d.ts +46 -0
  207. package/dist/core/secret-guard.js +104 -0
  208. package/dist/core/secret-guarded-stores.d.ts +12 -0
  209. package/dist/core/secret-guarded-stores.js +41 -0
  210. package/dist/core/secret-spans.d.ts +50 -0
  211. package/dist/core/secret-spans.js +94 -0
  212. package/dist/core/secrets.d.ts +39 -4
  213. package/dist/core/secrets.js +148 -40
  214. package/dist/core/stop-run.d.ts +46 -0
  215. package/dist/core/stop-run.js +61 -0
  216. package/dist/core/workflow-event-recorder.d.ts +14 -0
  217. package/dist/core/workflow-event-recorder.js +120 -0
  218. package/dist/core/workflow-events.d.ts +94 -0
  219. package/dist/core/workflow-events.js +48 -0
  220. package/dist/core/workflow-run-events.d.ts +18 -0
  221. package/dist/core/workflow-run-events.js +75 -0
  222. package/dist/core/zod-json-schema.d.ts +4 -0
  223. package/dist/core/zod-json-schema.js +39 -0
  224. package/dist/core/zod3-window.d.ts +35 -0
  225. package/dist/core/zod3-window.js +124 -0
  226. package/dist/generated/prisma/browser.d.ts +92 -3
  227. package/dist/generated/prisma/client.d.ts +92 -3
  228. package/dist/generated/prisma/commonInputTypes.d.ts +364 -54
  229. package/dist/generated/prisma/enums.d.ts +37 -0
  230. package/dist/generated/prisma/enums.js +31 -0
  231. package/dist/generated/prisma/internal/class.d.ts +132 -0
  232. package/dist/generated/prisma/internal/class.js +4 -4
  233. package/dist/generated/prisma/internal/prismaNamespace.d.ts +1332 -142
  234. package/dist/generated/prisma/internal/prismaNamespace.js +227 -5
  235. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +234 -0
  236. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +227 -5
  237. package/dist/generated/prisma/models/Agent.d.ts +464 -7
  238. package/dist/generated/prisma/models/AgentRepository.d.ts +42 -1
  239. package/dist/generated/prisma/models/CodingAgentProfile.d.ts +301 -1
  240. package/dist/generated/prisma/models/CodingProxyRequest.d.ts +207 -3
  241. package/dist/generated/prisma/models/CodingProxySession.d.ts +114 -1
  242. package/dist/generated/prisma/models/CodingRun.d.ts +1841 -1
  243. package/dist/generated/prisma/models/DeferredReview.d.ts +78 -1
  244. package/dist/generated/prisma/models/DependencySnapshot.d.ts +1668 -0
  245. package/dist/generated/prisma/models/DependencySnapshot.js +1 -0
  246. package/dist/generated/prisma/models/IssuePullRequest.d.ts +6 -2
  247. package/dist/generated/prisma/models/LocalReview.d.ts +40 -1
  248. package/dist/generated/prisma/models/NativeGatewayCall.d.ts +1713 -0
  249. package/dist/generated/prisma/models/NativeGatewayCall.js +1 -0
  250. package/dist/generated/prisma/models/NativeGatewaySession.d.ts +1551 -0
  251. package/dist/generated/prisma/models/NativeGatewaySession.js +1 -0
  252. package/dist/generated/prisma/models/NativeWarmWorker.d.ts +1296 -0
  253. package/dist/generated/prisma/models/NativeWarmWorker.js +1 -0
  254. package/dist/generated/prisma/models/NotificationChannel.d.ts +1543 -0
  255. package/dist/generated/prisma/models/NotificationChannel.js +1 -0
  256. package/dist/generated/prisma/models/NotificationDelivery.d.ts +1502 -0
  257. package/dist/generated/prisma/models/NotificationDelivery.js +1 -0
  258. package/dist/generated/prisma/models/NotificationThread.d.ts +1090 -0
  259. package/dist/generated/prisma/models/NotificationThread.js +1 -0
  260. package/dist/generated/prisma/models/RegistryAllowance.d.ts +41 -1
  261. package/dist/generated/prisma/models/RegistryApprovedVersion.d.ts +75 -1
  262. package/dist/generated/prisma/models/RegistryAuditRecord.d.ts +1364 -0
  263. package/dist/generated/prisma/models/RegistryAuditRecord.js +1 -0
  264. package/dist/generated/prisma/models/Run.d.ts +1619 -58
  265. package/dist/generated/prisma/models/RunBudgetEvent.d.ts +1211 -0
  266. package/dist/generated/prisma/models/RunBudgetEvent.js +1 -0
  267. package/dist/generated/prisma/models/RunHostCheck.d.ts +36 -1
  268. package/dist/generated/prisma/models/RunTranscript.d.ts +1339 -0
  269. package/dist/generated/prisma/models/RunTranscript.js +1 -0
  270. package/dist/generated/prisma/models/Secret.d.ts +37 -1
  271. package/dist/generated/prisma/models/SecretBrokerChange.d.ts +1101 -0
  272. package/dist/generated/prisma/models/SecretBrokerChange.js +1 -0
  273. package/dist/generated/prisma/models/WorkflowEvent.d.ts +1422 -0
  274. package/dist/generated/prisma/models/WorkflowEvent.js +1 -0
  275. package/dist/generated/prisma/models.d.ts +12 -0
  276. package/dist/help/build.js +4 -2
  277. package/dist/help/catalog.d.ts +1 -1
  278. package/dist/help/catalog.js +31 -6
  279. package/dist/help-index.json +2584 -146
  280. package/dist/import/create.js +49 -3
  281. package/dist/import/neutral-schema.d.ts +50 -277
  282. package/dist/import/neutral-schema.js +7 -4
  283. package/dist/knowledge/check.d.ts +1 -1
  284. package/dist/knowledge/cli.d.ts +11 -1
  285. package/dist/knowledge/cli.js +37 -4
  286. package/dist/knowledge/concept.d.ts +3 -19
  287. package/dist/knowledge/location.d.ts +31 -0
  288. package/dist/knowledge/location.js +78 -0
  289. package/dist/mcp/auth/access.d.ts +11 -2
  290. package/dist/mcp/auth/access.js +15 -1
  291. package/dist/mcp/auth/ownership.d.ts +7 -7
  292. package/dist/mcp/auth/repo-authorization.js +14 -0
  293. package/dist/mcp/auth/resource-server.d.ts +2 -1
  294. package/dist/mcp/auth/resource-server.js +7 -2
  295. package/dist/mcp/auth/self-hosted/browser.d.ts +1 -1
  296. package/dist/mcp/auth/self-hosted/browser.js +19 -6
  297. package/dist/mcp/auth/self-hosted/credentials.d.ts +3 -3
  298. package/dist/mcp/auth/self-hosted/session.d.ts +2 -2
  299. package/dist/mcp/context.d.ts +6 -0
  300. package/dist/mcp/host-events/github-ingress.d.ts +25 -1
  301. package/dist/mcp/host-events/github-ingress.js +70 -1
  302. package/dist/mcp/index.d.ts +19 -0
  303. package/dist/mcp/index.js +117 -20
  304. package/dist/mcp/server.d.ts +13 -0
  305. package/dist/mcp/server.js +33 -14
  306. package/dist/mcp/tools/agents.d.ts +4 -0
  307. package/dist/mcp/tools/agents.js +277 -24
  308. package/dist/mcp/tools/datastore.js +17 -8
  309. package/dist/mcp/tools/grants.js +9 -3
  310. package/dist/mcp/tools/memory.js +11 -1
  311. package/dist/mcp/tools/notification-channels.d.ts +2 -0
  312. package/dist/mcp/tools/notification-channels.js +293 -0
  313. package/dist/mcp/tools/packages.d.ts +2 -0
  314. package/dist/mcp/tools/packages.js +195 -0
  315. package/dist/mcp/tools/power.d.ts +2 -0
  316. package/dist/mcp/tools/power.js +77 -0
  317. package/dist/mcp/tools/repositories.js +18 -5
  318. package/dist/mcp/tools/run-access.d.ts +16 -0
  319. package/dist/mcp/tools/run-access.js +25 -0
  320. package/dist/mcp/tools/run-transcript-download.d.ts +30 -0
  321. package/dist/mcp/tools/run-transcript-download.js +129 -0
  322. package/dist/mcp/tools/run-transcript.d.ts +19 -0
  323. package/dist/mcp/tools/run-transcript.js +70 -0
  324. package/dist/mcp/tools/runs.d.ts +0 -6
  325. package/dist/mcp/tools/runs.js +41 -14
  326. package/dist/mcp/tools/scheduling.js +3 -1
  327. package/dist/mcp/tools/secret-broker-compat.d.ts +12 -0
  328. package/dist/mcp/tools/secret-broker-compat.js +23 -0
  329. package/dist/mcp/tools/secret-elicitation-form.d.ts +22 -2
  330. package/dist/mcp/tools/secret-elicitation-form.js +205 -10
  331. package/dist/mcp/tools/secret-elicitation-server.d.ts +6 -0
  332. package/dist/mcp/tools/secret-elicitation-server.js +10 -54
  333. package/dist/mcp/tools/secret-elicitation.d.ts +38 -3
  334. package/dist/mcp/tools/secret-elicitation.js +110 -12
  335. package/dist/mcp/tools/secrets.js +186 -9
  336. package/dist/mcp/tools/stop-run.d.ts +2 -0
  337. package/dist/mcp/tools/stop-run.js +82 -0
  338. package/dist/mcp/tools/subagents.js +2 -2
  339. package/dist/mcp/tools/tools.d.ts +2 -2
  340. package/dist/mcp/tools/tools.js +47 -11
  341. package/dist/mcp/transport/stdio-link-host.d.ts +20 -0
  342. package/dist/mcp/transport/stdio-link-host.js +67 -0
  343. package/dist/mcp/transport/streamable-http.d.ts +13 -0
  344. package/dist/mcp/transport/streamable-http.js +41 -1
  345. package/dist/native-worker/composition.d.ts +23 -0
  346. package/dist/native-worker/composition.js +77 -0
  347. package/dist/native-worker/docker-isolation.d.ts +65 -0
  348. package/dist/native-worker/docker-isolation.js +183 -0
  349. package/dist/native-worker/docker-launcher.d.ts +110 -0
  350. package/dist/native-worker/docker-launcher.js +297 -0
  351. package/dist/native-worker/gateway-server.d.ts +77 -0
  352. package/dist/native-worker/gateway-server.js +412 -0
  353. package/dist/native-worker/gateway.d.ts +70 -0
  354. package/dist/native-worker/gateway.js +263 -0
  355. package/dist/native-worker/http-server.d.ts +24 -0
  356. package/dist/native-worker/http-server.js +113 -0
  357. package/dist/native-worker/http-transport.d.ts +17 -0
  358. package/dist/native-worker/http-transport.js +88 -0
  359. package/dist/native-worker/kubernetes-isolation.d.ts +90 -0
  360. package/dist/native-worker/kubernetes-isolation.js +218 -0
  361. package/dist/native-worker/kubernetes-launcher.d.ts +106 -0
  362. package/dist/native-worker/kubernetes-launcher.js +375 -0
  363. package/dist/native-worker/launch.d.ts +62 -0
  364. package/dist/native-worker/launch.js +49 -0
  365. package/dist/native-worker/ledger.d.ts +125 -0
  366. package/dist/native-worker/ledger.js +245 -0
  367. package/dist/native-worker/loopback.d.ts +12 -0
  368. package/dist/native-worker/loopback.js +44 -0
  369. package/dist/native-worker/main.d.ts +8 -0
  370. package/dist/native-worker/main.js +85 -0
  371. package/dist/native-worker/protocol.d.ts +296 -0
  372. package/dist/native-worker/protocol.js +246 -0
  373. package/dist/native-worker/sandbox-executor.d.ts +83 -0
  374. package/dist/native-worker/sandbox-executor.js +284 -0
  375. package/dist/native-worker/stderr-redaction.d.ts +77 -0
  376. package/dist/native-worker/stderr-redaction.js +237 -0
  377. package/dist/native-worker/stdio.d.ts +29 -0
  378. package/dist/native-worker/stdio.js +189 -0
  379. package/dist/native-worker/warm-delivery.d.ts +16 -0
  380. package/dist/native-worker/warm-delivery.js +33 -0
  381. package/dist/native-worker/warm-pool-ledger.d.ts +39 -0
  382. package/dist/native-worker/warm-pool-ledger.js +73 -0
  383. package/dist/native-worker/warm-pool.d.ts +107 -0
  384. package/dist/native-worker/warm-pool.js +283 -0
  385. package/dist/native-worker/worker.d.ts +17 -0
  386. package/dist/native-worker/worker.js +141 -0
  387. package/dist/observability/metrics.js +6 -1
  388. package/dist/providers/auth/authorization-server.d.ts +3 -0
  389. package/dist/providers/auth/index.js +2 -0
  390. package/dist/providers/auth/self-hosted.d.ts +14 -2
  391. package/dist/providers/auth/self-hosted.js +54 -4
  392. package/dist/providers/chat/fake.d.ts +46 -0
  393. package/dist/providers/chat/fake.js +39 -0
  394. package/dist/providers/chat/index.d.ts +4 -0
  395. package/dist/providers/chat/index.js +8 -0
  396. package/dist/providers/chat/slack.d.ts +37 -0
  397. package/dist/providers/chat/slack.js +105 -0
  398. package/dist/providers/chat/types.d.ts +42 -0
  399. package/dist/providers/chat/types.js +19 -0
  400. package/dist/providers/coding-proxy/dependency-cache/eviction.d.ts +29 -0
  401. package/dist/providers/coding-proxy/dependency-cache/eviction.js +87 -0
  402. package/dist/providers/coding-proxy/dependency-cache/key.d.ts +33 -0
  403. package/dist/providers/coding-proxy/dependency-cache/key.js +86 -0
  404. package/dist/providers/coding-proxy/dependency-cache/model-request-seal.d.ts +18 -0
  405. package/dist/providers/coding-proxy/dependency-cache/model-request-seal.js +40 -0
  406. package/dist/providers/coding-proxy/dependency-cache/prisma-store.d.ts +25 -0
  407. package/dist/providers/coding-proxy/dependency-cache/prisma-store.js +131 -0
  408. package/dist/providers/coding-proxy/dependency-cache/service.d.ts +70 -0
  409. package/dist/providers/coding-proxy/dependency-cache/service.js +409 -0
  410. package/dist/providers/coding-proxy/dependency-cache/store.d.ts +85 -0
  411. package/dist/providers/coding-proxy/dependency-cache/store.js +95 -0
  412. package/dist/providers/coding-proxy/hold.d.ts +32 -0
  413. package/dist/providers/coding-proxy/hold.js +86 -0
  414. package/dist/providers/coding-proxy/interrupted.d.ts +70 -0
  415. package/dist/providers/coding-proxy/interrupted.js +104 -0
  416. package/dist/providers/coding-proxy/memory-ledger.d.ts +15 -2
  417. package/dist/providers/coding-proxy/memory-ledger.js +84 -8
  418. package/dist/providers/coding-proxy/metering.d.ts +16 -0
  419. package/dist/providers/coding-proxy/metering.js +27 -4
  420. package/dist/providers/coding-proxy/prisma-ledger.d.ts +15 -2
  421. package/dist/providers/coding-proxy/prisma-ledger.js +179 -67
  422. package/dist/providers/coding-proxy/proxy.d.ts +14 -1
  423. package/dist/providers/coding-proxy/proxy.js +166 -14
  424. package/dist/providers/coding-proxy/registry/audit.d.ts +53 -10
  425. package/dist/providers/coding-proxy/registry/audit.js +94 -17
  426. package/dist/providers/coding-proxy/registry/lockfile-parse-worker.d.ts +36 -0
  427. package/dist/providers/coding-proxy/registry/lockfile-parse-worker.js +67 -0
  428. package/dist/providers/coding-proxy/registry/lockfile-parse.d.ts +16 -0
  429. package/dist/providers/coding-proxy/registry/lockfile-parse.js +110 -0
  430. package/dist/providers/coding-proxy/registry/plan.d.ts +9 -0
  431. package/dist/providers/coding-proxy/registry/plan.js +201 -48
  432. package/dist/providers/coding-proxy/registry/prisma-store.d.ts +11 -5
  433. package/dist/providers/coding-proxy/registry/prisma-store.js +120 -17
  434. package/dist/providers/coding-proxy/registry/service.d.ts +97 -16
  435. package/dist/providers/coding-proxy/registry/service.js +579 -112
  436. package/dist/providers/coding-proxy/registry/store.d.ts +84 -9
  437. package/dist/providers/coding-proxy/registry/store.js +54 -1
  438. package/dist/providers/coding-proxy/runtime.d.ts +4 -0
  439. package/dist/providers/coding-proxy/runtime.js +78 -16
  440. package/dist/providers/coding-proxy/server.d.ts +6 -1
  441. package/dist/providers/coding-proxy/server.js +45 -1
  442. package/dist/providers/coding-proxy/types.d.ts +65 -1
  443. package/dist/providers/datastore/types.d.ts +5 -0
  444. package/dist/providers/engine/types.d.ts +36 -2
  445. package/dist/providers/engine/types.js +39 -0
  446. package/dist/providers/executor/composition.d.ts +31 -1
  447. package/dist/providers/executor/composition.js +81 -8
  448. package/dist/providers/executor/container.d.ts +385 -9
  449. package/dist/providers/executor/container.js +1234 -99
  450. package/dist/providers/executor/dbos-status.d.ts +31 -0
  451. package/dist/providers/executor/dbos-status.js +64 -0
  452. package/dist/providers/executor/dbos.d.ts +91 -0
  453. package/dist/providers/executor/dbos.js +319 -26
  454. package/dist/providers/executor/deferred.d.ts +44 -0
  455. package/dist/providers/executor/deferred.js +100 -0
  456. package/dist/providers/executor/in-process.d.ts +9 -1
  457. package/dist/providers/executor/in-process.js +14 -4
  458. package/dist/providers/executor/linked-issue-reader.d.ts +16 -0
  459. package/dist/providers/executor/linked-issue-reader.js +30 -0
  460. package/dist/providers/executor/routing.d.ts +39 -10
  461. package/dist/providers/executor/routing.js +77 -32
  462. package/dist/providers/executor/types.d.ts +25 -0
  463. package/dist/providers/index.d.ts +2 -1
  464. package/dist/providers/issue-tracker/types.d.ts +17 -0
  465. package/dist/providers/issue-tracker/types.js +39 -1
  466. package/dist/providers/jobs/claude-tool-setup.d.ts +4 -0
  467. package/dist/providers/jobs/claude-tool-setup.js +5 -2
  468. package/dist/providers/jobs/docker-isolation.d.ts +8 -0
  469. package/dist/providers/jobs/docker-isolation.js +17 -0
  470. package/dist/providers/jobs/docker.d.ts +1 -0
  471. package/dist/providers/jobs/docker.js +29 -4
  472. package/dist/providers/jobs/fake-kubernetes-api.d.ts +23 -2
  473. package/dist/providers/jobs/fake-kubernetes-api.js +45 -1
  474. package/dist/providers/jobs/kubernetes-api.d.ts +25 -1
  475. package/dist/providers/jobs/kubernetes-api.js +17 -0
  476. package/dist/providers/jobs/kubernetes-client.d.ts +10 -1
  477. package/dist/providers/jobs/kubernetes-client.js +61 -3
  478. package/dist/providers/jobs/kubernetes-dry-run-fixture.d.ts +6 -1
  479. package/dist/providers/jobs/kubernetes-dry-run-fixture.js +6 -3
  480. package/dist/providers/jobs/kubernetes-isolation.d.ts +5 -1
  481. package/dist/providers/jobs/kubernetes-isolation.js +23 -1
  482. package/dist/providers/jobs/kubernetes-platform.d.ts +4 -1
  483. package/dist/providers/jobs/kubernetes-platform.js +38 -1
  484. package/dist/providers/jobs/kubernetes-preflight.d.ts +2 -1
  485. package/dist/providers/jobs/kubernetes-preflight.js +4 -2
  486. package/dist/providers/jobs/kubernetes.d.ts +42 -2
  487. package/dist/providers/jobs/kubernetes.js +178 -19
  488. package/dist/providers/jobs/metadata-probes.d.ts +11 -0
  489. package/dist/providers/jobs/metadata-probes.js +13 -0
  490. package/dist/providers/jobs/types.d.ts +42 -0
  491. package/dist/providers/jobs/types.js +13 -1
  492. package/dist/providers/llm/anthropic.js +5 -1
  493. package/dist/providers/llm/bedrock.d.ts +0 -12
  494. package/dist/providers/llm/bedrock.js +4 -0
  495. package/dist/providers/llm/claude-messages.d.ts +3 -1
  496. package/dist/providers/llm/claude-messages.js +4 -1
  497. package/dist/providers/llm/claude-provider.d.ts +2 -2
  498. package/dist/providers/llm/claude-provider.js +2 -2
  499. package/dist/providers/llm/openai.d.ts +2 -2
  500. package/dist/providers/llm/openai.js +6 -2
  501. package/dist/providers/llm/routing.d.ts +2 -2
  502. package/dist/providers/llm/routing.js +2 -2
  503. package/dist/providers/llm/types.d.ts +12 -2
  504. package/dist/providers/review-host/github-events.d.ts +9 -1
  505. package/dist/providers/review-host/github-events.js +34 -12
  506. package/dist/providers/review-host/github.d.ts +39 -2
  507. package/dist/providers/review-host/github.js +274 -29
  508. package/dist/providers/review-host/local.d.ts +8 -4
  509. package/dist/providers/review-host/local.js +49 -31
  510. package/dist/providers/review-host/patch-pages.d.ts +41 -0
  511. package/dist/providers/review-host/patch-pages.js +176 -0
  512. package/dist/providers/review-host/review-format.d.ts +19 -1
  513. package/dist/providers/review-host/review-format.js +38 -7
  514. package/dist/providers/review-host/types.d.ts +157 -2
  515. package/dist/providers/review-host/types.js +8 -0
  516. package/dist/providers/storage/gcs.d.ts +63 -0
  517. package/dist/providers/storage/gcs.js +69 -0
  518. package/dist/providers/storage/index.d.ts +15 -0
  519. package/dist/providers/storage/index.js +14 -0
  520. package/dist/providers/storage/local.d.ts +24 -0
  521. package/dist/providers/storage/local.js +92 -0
  522. package/dist/providers/storage/meter.d.ts +14 -0
  523. package/dist/providers/storage/meter.js +34 -0
  524. package/dist/providers/storage/s3.d.ts +41 -0
  525. package/dist/providers/storage/s3.js +107 -0
  526. package/dist/providers/storage/types.d.ts +37 -3
  527. package/dist/providers/storage/types.js +21 -4
  528. package/dist/providers/vcs/git.d.ts +33 -2
  529. package/dist/providers/vcs/git.js +324 -22
  530. package/dist/providers/vcs/github-remote.d.ts +26 -3
  531. package/dist/providers/vcs/github-remote.js +124 -14
  532. package/dist/providers/vcs/github.d.ts +246 -12
  533. package/dist/providers/vcs/github.js +521 -61
  534. package/dist/providers/vcs/index.js +8 -1
  535. package/dist/providers/vcs/pr-description.d.ts +127 -0
  536. package/dist/providers/vcs/pr-description.js +270 -0
  537. package/dist/providers/vcs/remote.d.ts +33 -1
  538. package/dist/providers/vcs/routing.d.ts +4 -2
  539. package/dist/providers/vcs/routing.js +6 -0
  540. package/dist/providers/vcs/types.d.ts +80 -3
  541. package/dist/quickstart/coding-seed.d.ts +21 -3
  542. package/dist/quickstart/coding-seed.js +283 -3
  543. package/dist/quickstart/images.d.ts +2 -0
  544. package/dist/quickstart/images.js +7 -1
  545. package/dist/quickstart/reviewer-prompt.d.ts +1 -1
  546. package/dist/quickstart/reviewer-prompt.js +6 -6
  547. package/dist/quickstart-images.json +1 -1
  548. package/dist/sandbox/brokered-fetch.d.ts +23 -0
  549. package/dist/sandbox/brokered-fetch.js +37 -0
  550. package/dist/sandbox/generated/zod.bundle.js +62 -1
  551. package/dist/sandbox/generated/zod3.bundle.js +5 -0
  552. package/dist/sandbox/host-functions.d.ts +35 -0
  553. package/dist/sandbox/host-functions.js +150 -91
  554. package/dist/sandbox/prelude.js +7 -1
  555. package/dist/sandbox/run-in-sandbox.d.ts +19 -0
  556. package/dist/sandbox/run-in-sandbox.js +28 -10
  557. package/dist/sandbox/safe-fetch.d.ts +2 -0
  558. package/dist/sandbox/safe-fetch.js +3 -1
  559. package/dist/sandbox/secret-broker-sigv4.d.ts +2 -0
  560. package/dist/sandbox/secret-broker-sigv4.js +49 -0
  561. package/dist/sandbox/secret-broker.d.ts +34 -0
  562. package/dist/sandbox/secret-broker.js +161 -0
  563. package/dist/sandbox/tool-capabilities.d.ts +10 -30
  564. package/dist/sandbox/user-tool.d.ts +14 -0
  565. package/dist/sandbox/user-tool.js +32 -0
  566. package/dist/sandbox/zod-params.d.ts +37 -5
  567. package/dist/sandbox/zod-params.js +181 -26
  568. package/dist/serve.js +25 -0
  569. package/dist/viewer/api-schema.d.ts +372 -2454
  570. package/dist/viewer/api-schema.js +29 -0
  571. package/dist/viewer/build-schemas.js +10 -3
  572. package/dist/viewer/event-bus.d.ts +6 -0
  573. package/dist/viewer/event-bus.js +16 -7
  574. package/dist/viewer/graph.d.ts +5 -2
  575. package/dist/viewer/graph.js +7 -2
  576. package/dist/viewer/http.d.ts +0 -1
  577. package/dist/viewer/http.js +2 -2
  578. package/dist/viewer/infra.js +25 -2
  579. package/dist/viewer/limits.d.ts +4 -0
  580. package/dist/viewer/limits.js +4 -0
  581. package/dist/viewer/openapi.d.ts +15 -0
  582. package/dist/viewer/openapi.js +170 -0
  583. package/dist/wardby-bin.js +10 -0
  584. package/docs/README.md +7 -0
  585. package/docs/agent-recipes.md +114 -27
  586. package/docs/architecture-runtime.md +16 -1
  587. package/docs/code-review-agents.md +689 -45
  588. package/docs/coding-agent-setup.md +602 -12
  589. package/docs/coding-packages.md +1037 -92
  590. package/docs/coding-services.md +30 -13
  591. package/docs/coding-worker-byo-images.md +218 -6
  592. package/docs/coding-worker-isolation.md +173 -44
  593. package/docs/getting-started-gke.md +332 -129
  594. package/docs/getting-started-identity-provider.md +31 -11
  595. package/docs/getting-started.md +14 -4
  596. package/docs/jira-agents.md +22 -9
  597. package/docs/knowledge/blob-not-found-semantics.md +41 -0
  598. package/docs/knowledge/bounded-file-descriptor.md +52 -0
  599. package/docs/knowledge/delegation-admission-slots.md +52 -0
  600. package/docs/knowledge/http-dispatcher-bootstrap.md +61 -0
  601. package/docs/knowledge/import-rename-target.md +52 -0
  602. package/docs/knowledge/index.md +57 -0
  603. package/docs/knowledge/log.md +9 -0
  604. package/docs/knowledge/mcp-cancelled-task-precedence.md +41 -0
  605. package/docs/knowledge/mcp-http-prompt-discovery.md +41 -0
  606. package/docs/knowledge/mcp-schema-module-boundary.md +41 -0
  607. package/docs/knowledge/nullable-tool-uniqueness.md +52 -0
  608. package/docs/knowledge/overview-cli.md +74 -0
  609. package/docs/knowledge/overview-coding-proxy.md +72 -0
  610. package/docs/knowledge/overview-coding.md +72 -0
  611. package/docs/knowledge/overview-config.md +60 -0
  612. package/docs/knowledge/overview-core.md +72 -0
  613. package/docs/knowledge/overview-deploy.md +83 -0
  614. package/docs/knowledge/overview-mcp.md +61 -0
  615. package/docs/knowledge/overview-prisma.md +72 -0
  616. package/docs/knowledge/overview-providers.md +89 -0
  617. package/docs/knowledge/overview-sandbox.md +83 -0
  618. package/docs/knowledge/overview-surfaces.md +83 -0
  619. package/docs/knowledge/private-datastore-shared-boundary.md +54 -0
  620. package/docs/knowledge/proxy-settlement-projections.md +41 -0
  621. package/docs/knowledge/run-pricing-first-writer.md +43 -0
  622. package/docs/knowledge/schedule-claim-transaction.md +41 -0
  623. package/docs/knowledge/secret-entry-replica-contract.md +52 -0
  624. package/docs/knowledge/terminal-run-first-writer.md +41 -0
  625. package/docs/knowledge/transactional-agent-authorization.md +52 -0
  626. package/docs/knowledge/viewer-notify-write-isolation.md +30 -0
  627. package/docs/knowledge/warm-input-publication.md +30 -0
  628. package/docs/knowledge/workspace-staging-failure.md +54 -0
  629. package/docs/knowledge.md +54 -14
  630. package/docs/native-sandbox.md +731 -0
  631. package/docs/observability.md +4 -0
  632. package/docs/release-verification.md +9 -0
  633. package/docs/security-deployment.md +146 -14
  634. package/docs/slack-notifications.md +268 -0
  635. package/docs/tool-secrets.md +284 -0
  636. package/docs/viewer-api.md +46 -5
  637. package/docs/viewer-api.openapi.yml +1404 -0
  638. package/help/admin-viewer.md +29 -3
  639. package/help/agent-recipes.md +27 -0
  640. package/help/architecture-agent.md +11 -6
  641. package/help/brokered-secrets.md +79 -0
  642. package/help/build-claude-code-image.md +131 -0
  643. package/help/build-worker-image.md +6 -7
  644. package/help/builder-agent.md +19 -6
  645. package/help/code-review-agents.md +243 -10
  646. package/help/coding-packages.md +156 -6
  647. package/help/cost-attribution.md +9 -5
  648. package/help/creating-agents.md +14 -1
  649. package/help/dependency-cache.md +143 -0
  650. package/help/deploy-gke.md +23 -9
  651. package/help/deployment-targets.md +25 -14
  652. package/help/errors/budget-exhausted.md +187 -0
  653. package/help/errors/budget-group-exhausted.md +5 -1
  654. package/help/errors/coding-provider-not-configured.md +2 -2
  655. package/help/errors/coding-stream-quota-exceeded.md +33 -0
  656. package/help/errors/coding-workspace-disk-exceeds-limit.md +39 -0
  657. package/help/errors/continuation-closed.md +9 -12
  658. package/help/errors/database-auth-invalid.md +28 -0
  659. package/help/errors/delegation-conflict.md +24 -0
  660. package/help/errors/file-list-truncated.md +45 -0
  661. package/help/errors/full-read-required.md +49 -0
  662. package/help/errors/github-account-not-allowed.md +29 -0
  663. package/help/errors/graph-incomplete.md +43 -0
  664. package/help/errors/graph-limit.md +43 -0
  665. package/help/errors/low-power-disabled.md +29 -0
  666. package/help/errors/low-power-scale-forbidden.md +35 -0
  667. package/help/errors/low-power-wake-timeout.md +30 -0
  668. package/help/errors/merge-conflict.md +49 -0
  669. package/help/errors/mobile-disabled.md +31 -0
  670. package/help/errors/native-sandbox-capacity.md +22 -0
  671. package/help/errors/native-sandbox-deadline-exceeded.md +19 -0
  672. package/help/errors/native-sandbox-docker-failed.md +20 -0
  673. package/help/errors/native-sandbox-gateway-error.md +20 -0
  674. package/help/errors/native-sandbox-gateway-unavailable.md +21 -0
  675. package/help/errors/native-sandbox-image-not-pinned.md +19 -0
  676. package/help/errors/native-sandbox-isolation-mismatch.md +20 -0
  677. package/help/errors/native-sandbox-launch-abandoned.md +21 -0
  678. package/help/errors/native-sandbox-network-unenforced.md +22 -0
  679. package/help/errors/native-sandbox-requires-catalog.md +31 -0
  680. package/help/errors/native-sandbox-unavailable.md +19 -0
  681. package/help/errors/native-sandbox-warm-delivery-failed.md +21 -0
  682. package/help/errors/native-sandbox-worker-exited.md +21 -0
  683. package/help/errors/native-sandbox-worker-lost.md +20 -0
  684. package/help/errors/native-sandbox-worker-unready.md +22 -0
  685. package/help/errors/package-not-allowed-pending.md +52 -0
  686. package/help/errors/package-not-allowed.md +51 -0
  687. package/help/errors/package-refusals.md +43 -0
  688. package/help/errors/patch-cursor-malformed.md +31 -0
  689. package/help/errors/run-lost.md +39 -0
  690. package/help/errors/run-transcript-download.md +44 -0
  691. package/help/errors/secret-broker-body-invalid.md +26 -0
  692. package/help/errors/secret-broker-changed.md +20 -0
  693. package/help/errors/secret-broker-config-invalid.md +30 -0
  694. package/help/errors/secret-broker-conflict.md +27 -0
  695. package/help/errors/secret-broker-destination-denied.md +28 -0
  696. package/help/errors/secret-broker-value-invalid.md +28 -0
  697. package/help/errors/secret-brokered.md +24 -0
  698. package/help/errors/secret-in-value.md +69 -0
  699. package/help/errors/secret-not-brokered.md +25 -0
  700. package/help/errors/slack-auth-failed.md +48 -0
  701. package/help/errors/slack-channel-unreachable.md +39 -0
  702. package/help/errors/slack-not-configured.md +33 -0
  703. package/help/errors/target-merge.md +40 -0
  704. package/help/fix-merge-conflicts.md +73 -0
  705. package/help/getting-started.md +4 -5
  706. package/help/github-app-setup.md +132 -0
  707. package/help/github.md +40 -1
  708. package/help/identity-and-access.md +7 -1
  709. package/help/jira.md +23 -6
  710. package/help/knowledge.md +16 -7
  711. package/help/local-repositories.md +3 -4
  712. package/help/low-power-mode.md +131 -0
  713. package/help/merge-order-check.md +122 -0
  714. package/help/mobile-app.md +54 -0
  715. package/help/native-capabilities.md +29 -1
  716. package/help/native-sandbox.md +150 -0
  717. package/help/observability.md +8 -0
  718. package/help/operating-agents.md +5 -0
  719. package/help/package-audit-mode.md +91 -0
  720. package/help/related-pull-requests.md +80 -16
  721. package/help/repo-instructions-and-skills.md +91 -0
  722. package/help/resume-runs-locally.md +131 -0
  723. package/help/review-fix-rounds.md +43 -1
  724. package/help/sharing-agents.md +59 -0
  725. package/help/slack-notifications.md +76 -0
  726. package/help/status-comments.md +31 -0
  727. package/help/stop-run.md +58 -0
  728. package/help/troubleshooting/budgets.md +28 -0
  729. package/help/troubleshooting/coding-workers.md +99 -7
  730. package/package.json +27 -13
  731. package/prisma/migrations/20261009000003_native_execution_mode/migration.sql +12 -0
  732. package/prisma/migrations/20261009000004_native_gateway_ledger/migration.sql +65 -0
  733. package/prisma/migrations/20261009000005_native_gateway_call_child_agent/migration.sql +5 -0
  734. package/prisma/migrations/20261009000006_run_deferred_start_stop/migration.sql +14 -0
  735. package/prisma/migrations/20261009000007_native_gateway_network_ready/migration.sql +5 -0
  736. package/prisma/migrations/20261010000001_workflow_notifications/migration.sql +99 -0
  737. package/prisma/migrations/20261011000001_native_gateway_session_status_index/migration.sql +2 -0
  738. package/prisma/migrations/20261012000001_native_warm_worker/migration.sql +32 -0
  739. package/prisma/migrations/20261013000001_coding_run_merge_order/migration.sql +2 -0
  740. package/prisma/migrations/20261013000001_secret_broker/migration.sql +17 -0
  741. package/prisma/migrations/20261013000002_deferred_review_request/migration.sql +4 -0
  742. package/prisma/migrations/20261014000000_repo_skills/migration.sql +15 -0
  743. package/prisma/migrations/20261015000001_coding_run_merge_order_index/migration.sql +2 -0
  744. package/prisma/migrations/20261015000002_no_change_rereview/migration.sql +2 -0
  745. package/prisma/migrations/20261016000000_registry_approved_accepted_advisories/migration.sql +3 -0
  746. package/prisma/migrations/20261016000001_mark_ready_when_passing/migration.sql +3 -0
  747. package/prisma/migrations/20261017000000_debug_trace_max_mb/migration.sql +4 -0
  748. package/prisma/migrations/20261018000000_dependency_cache/migration.sql +53 -0
  749. package/prisma/migrations/20261019000000_claude_max_output_tokens/migration.sql +5 -0
  750. package/prisma/migrations/20261021000000_pr_description_hash/migration.sql +4 -0
  751. package/prisma/migrations/20261022000000_dependency_snapshot_validation_metadata/migration.sql +4 -0
  752. package/prisma/migrations/20261023000000_package_audit_mode/migration.sql +27 -0
  753. package/prisma/migrations/20261024000000_budget_events/migration.sql +26 -0
  754. package/prisma/migrations/20261025000000_cache_aware_holds/migration.sql +9 -0
  755. package/prisma/migrations/20261026000000_budget_overrun/migration.sql +4 -0
  756. package/prisma/migrations/20261027000000_coding_run_request/migration.sql +1 -0
  757. package/prisma/migrations/20261028000000_native_gateway_review_reads/migration.sql +6 -0
  758. package/prisma/migrations/20261029000000_lead_survives_deploy/migration.sql +6 -0
  759. package/prisma/migrations/20261030000000_local_review_covered_sha/migration.sql +2 -0
  760. package/prisma/migrations/20261031000000_coding_run_budget_limit/migration.sql +9 -0
  761. package/prisma/migrations/20261101000000_run_transcripts/migration.sql +22 -0
  762. package/prisma/schema.prisma +631 -146
  763. package/dist/sandbox/generated/zod-to-json-schema.bundle.js +0 -5
@@ -0,0 +1,75 @@
1
+ import { packageAuditDigest } from "../coding/registry/audit-mode.js";
2
+ import { blockingRefusals, collectPackageAudit, collectRunOutcome, isBlockedByRefusals } from "./host-status.js";
3
+ import { logger } from "./logger.js";
4
+ import { dedupeKeys, emitWorkflowEvent, shortReason } from "./workflow-events.js";
5
+ const log = logger.child({ module: "workflow-run-events" });
6
+ const FAILED = new Set(["failed", "budget_exhausted", "cancelled", "lost", "refused"]);
7
+ const VERDICTS = new Set(["APPROVE", "CHANGES_REQUESTED", "COMMENT"]);
8
+ /** Emits top-level run outcomes and published review verdicts. Never throws. */
9
+ export async function emitRunFinishedEvents(db, run) {
10
+ try {
11
+ const agentName = (await db.agent.findUnique({ where: { id: run.agentId }, select: { name: true } }))?.name ?? run.agentId;
12
+ if (!run.parentRunId) {
13
+ try {
14
+ // Only a succeeded run can be blocked (isBlockedByRefusals), so only it needs its children read.
15
+ const succeeded = { id: run.id, status: "succeeded", finalText: null };
16
+ const outcome = run.status === "succeeded" ? await collectRunOutcome(db, succeeded) : null;
17
+ if (outcome && isBlockedByRefusals(succeeded, outcome)) {
18
+ await emitWorkflowEvent({
19
+ dedupeKey: dedupeKeys.runBlocked(run.id),
20
+ runId: run.id,
21
+ agentId: run.agentId,
22
+ payload: { kind: "run_blocked", agentName, packageRefusals: blockingRefusals(outcome) },
23
+ });
24
+ }
25
+ // Any terminal status: what audit mode let in is worth knowing whether or not the run succeeded.
26
+ const audit = outcome ? outcome.packageAudit : await collectPackageAudit(db, run.id);
27
+ if (audit && audit.summary.entries.length > 0) {
28
+ await emitWorkflowEvent({
29
+ dedupeKey: dedupeKeys.packagesAudited(run.id),
30
+ runId: run.id,
31
+ agentId: run.agentId,
32
+ payload: {
33
+ kind: "packages_audited",
34
+ agentName,
35
+ mode: audit.mode,
36
+ ...packageAuditDigest(audit.mode, audit.summary),
37
+ },
38
+ });
39
+ }
40
+ }
41
+ catch {
42
+ // A reporting read failure must not prevent other workflow events.
43
+ }
44
+ if (FAILED.has(run.status)) {
45
+ await emitWorkflowEvent({
46
+ dedupeKey: dedupeKeys.runFailed(run.id),
47
+ runId: run.id,
48
+ agentId: run.agentId,
49
+ payload: { kind: "run_failed", agentName, status: run.status, reason: shortReason(run.error) },
50
+ });
51
+ }
52
+ }
53
+ const check = await db.runHostCheck.findUnique({ where: { runId: run.id } });
54
+ if (check?.verdict && VERDICTS.has(check.verdict) && check.prNumber !== null) {
55
+ const prLabel = `${check.repository}#${check.prNumber}`;
56
+ await emitWorkflowEvent({
57
+ dedupeKey: dedupeKeys.reviewPosted(run.id),
58
+ runId: run.id,
59
+ agentId: run.agentId,
60
+ pullRequest: { codeProvider: check.provider, repository: check.repository, number: check.prNumber },
61
+ payload: {
62
+ kind: "review_posted",
63
+ agentName,
64
+ verdict: check.verdict,
65
+ prLabel,
66
+ prUrl: check.provider === "github" ? `https://github.com/${check.repository}/pull/${check.prNumber}` : null,
67
+ ciPending: check.ciPendingAtReview === true,
68
+ },
69
+ });
70
+ }
71
+ }
72
+ catch (err) {
73
+ log.warn({ err, runId: run.id }, "could not emit run workflow events");
74
+ }
75
+ }
@@ -0,0 +1,4 @@
1
+ export interface LegacyJsonSchemaOptions {
2
+ closeObjects?: boolean;
3
+ }
4
+ export declare function legacyJsonSchema(node: unknown, options?: LegacyJsonSchemaOptions): unknown;
@@ -0,0 +1,39 @@
1
+ function isStringKeySchema(value) {
2
+ return (!!value &&
3
+ typeof value === "object" &&
4
+ !Array.isArray(value) &&
5
+ Object.keys(value).length === 1 &&
6
+ value.type === "string");
7
+ }
8
+ export function legacyJsonSchema(node, options = {}) {
9
+ if (Array.isArray(node))
10
+ return node.map((item) => legacyJsonSchema(item, options));
11
+ if (!node || typeof node !== "object")
12
+ return node;
13
+ const source = node;
14
+ const out = {};
15
+ for (const [key, value] of Object.entries(source)) {
16
+ if (source.type === "integer" && key === "minimum" && value === Number.MIN_SAFE_INTEGER)
17
+ continue;
18
+ if (source.type === "integer" && key === "maximum" && value === Number.MAX_SAFE_INTEGER)
19
+ continue;
20
+ if (key === "propertyNames" && isStringKeySchema(value))
21
+ continue;
22
+ if (options.closeObjects &&
23
+ key === "additionalProperties" &&
24
+ value &&
25
+ typeof value === "object" &&
26
+ Object.keys(value).length === 0) {
27
+ out[key] = true;
28
+ continue;
29
+ }
30
+ // A `properties` map's keys are names, not keywords: only its values are schemas.
31
+ out[key === "oneOf" ? "anyOf" : key] =
32
+ key === "properties" && value && typeof value === "object"
33
+ ? Object.fromEntries(Object.entries(value).map(([name, sub]) => [name, legacyJsonSchema(sub, options)]))
34
+ : legacyJsonSchema(value, options);
35
+ }
36
+ if (options.closeObjects && source.type === "object" && "properties" in source && !("additionalProperties" in source))
37
+ out.additionalProperties = false;
38
+ return out;
39
+ }
@@ -0,0 +1,35 @@
1
+ import type { PrismaClient } from "#prisma";
2
+ import { type Zod4Compatibility } from "../sandbox/zod-params.js";
3
+ import type { SandboxResult } from "../sandbox/eval-core.js";
4
+ export declare const ZOD3_WINDOW_ENDS = "Zod 3 schemas stop working in the next release";
5
+ /** The warning for one paramsZod, or undefined when Zod 4 compiles it (or there is nothing to say). */
6
+ export declare function zod3WindowWarning(subject: string, compatibility: Zod4Compatibility): string | undefined;
7
+ /** How a warning names a tool. */
8
+ export declare function toolSubject(name: string): string;
9
+ export declare function cachedZod4Compatibility(paramsZod: string): Promise<Zod4Compatibility>;
10
+ /** Test hook: empties the compatibility cache. */
11
+ export declare function clearZod4CompatibilityCache(): void;
12
+ /** The warnings for one tool's paramsZod (empty or one entry), ready for a result's `warnings`. */
13
+ export declare function zod3ToolWarnings(subject: string, paramsZod: string): Promise<string[]>;
14
+ /**
15
+ * A tool row with its Zod 3 window warnings, for a caller who owns it (and so
16
+ * already sees its paramsZod). Rows projected for anyone else, which carry no
17
+ * paramsZod, pass through unchanged: a warning would reveal part of the schema.
18
+ */
19
+ export declare function withZod3ToolWarnings<T extends object>(projected: T): Promise<T | (T & {
20
+ warnings: string[];
21
+ })>;
22
+ /**
23
+ * dry_run_tool's check of a schema Zod 4 does compile: whether Zod 4 treats
24
+ * the sample arguments as the current release does. Names no values.
25
+ */
26
+ export declare function zod3SampleArgsWarning(subject: string, current: SandboxResult, zod4: SandboxResult): string | undefined;
27
+ interface WarnLog {
28
+ warn(fields: object, message: string): void;
29
+ }
30
+ /**
31
+ * Logs one warning per stored tool whose paramsZod Zod 4 can't compile. Runs
32
+ * in the background at startup; never throws.
33
+ */
34
+ export declare function logZod3ToolWarnings(db: Pick<PrismaClient, "tool">, log: WarnLog): Promise<number>;
35
+ export {};
@@ -0,0 +1,124 @@
1
+ /**
2
+ * The Zod 3 compatibility window's warnings (one release; see
3
+ * sandbox/zod-params.ts). A custom tool whose paramsZod Zod 4 can't compile
4
+ * still works this release, compiled with Zod 3, and stops working in the
5
+ * next. The operator hears about it in create_tool, update_tool,
6
+ * dry_run_tool, list_tools and get_agent results (on tools the caller owns),
7
+ * in import results, from `wardby tool create`, and once per tool in the
8
+ * server log at startup.
9
+ *
10
+ * A warning names only the tool and the removed Zod 3 API it uses (fixed
11
+ * labels from zod-params.ts): never the schema's text or anything else from
12
+ * the tool.
13
+ */
14
+ import { createHash } from "node:crypto";
15
+ import { zod4Compatibility } from "../sandbox/zod-params.js";
16
+ export const ZOD3_WINDOW_ENDS = "Zod 3 schemas stop working in the next release";
17
+ /** The warning for one paramsZod, or undefined when Zod 4 compiles it (or there is nothing to say). */
18
+ export function zod3WindowWarning(subject, compatibility) {
19
+ if (compatibility.compatible !== false)
20
+ return undefined;
21
+ const what = compatibility.removed.length
22
+ ? `uses Zod 3 API that Zod 4 removed: ${compatibility.removed.join(", ")}`
23
+ : "does not compile with Zod 4";
24
+ return (`${subject} ${what}. Wardby still compiles it with Zod 3 in this release, but ${ZOD3_WINDOW_ENDS}: ` +
25
+ "rewrite it with the Zod 4 API and check it with dry_run_tool.");
26
+ }
27
+ /** How a warning names a tool. */
28
+ export function toolSubject(name) {
29
+ return `Tool ${JSON.stringify(name)}'s paramsZod`;
30
+ }
31
+ /**
32
+ * Compatibility depends on the paramsZod text alone, so results are cached in
33
+ * memory keyed by a SHA-256 of that text: a changed paramsZod is a different
34
+ * key and is always probed afresh, so the cache can never hide a warning for
35
+ * it. The tool's name is not part of the result (the warning text is built
36
+ * from the current name each time). The startup scan fills the cache, so
37
+ * list_tools usually probes nothing. Bounded; the oldest entry goes first.
38
+ * An "unknown" result (a probe that hit a sandbox limit) is not cached.
39
+ */
40
+ const COMPATIBILITY_CACHE_LIMIT = 2000;
41
+ const compatibilityCache = new Map();
42
+ export function cachedZod4Compatibility(paramsZod) {
43
+ const key = createHash("sha256").update(paramsZod).digest("hex");
44
+ const hit = compatibilityCache.get(key);
45
+ if (hit)
46
+ return hit;
47
+ const pending = zod4Compatibility(paramsZod).then((result) => {
48
+ if (result.compatible === "unknown")
49
+ compatibilityCache.delete(key);
50
+ return result;
51
+ }, (err) => {
52
+ compatibilityCache.delete(key);
53
+ throw err;
54
+ });
55
+ compatibilityCache.set(key, pending);
56
+ while (compatibilityCache.size > COMPATIBILITY_CACHE_LIMIT) {
57
+ compatibilityCache.delete(compatibilityCache.keys().next().value);
58
+ }
59
+ return pending;
60
+ }
61
+ /** Test hook: empties the compatibility cache. */
62
+ export function clearZod4CompatibilityCache() {
63
+ compatibilityCache.clear();
64
+ }
65
+ /** The warnings for one tool's paramsZod (empty or one entry), ready for a result's `warnings`. */
66
+ export async function zod3ToolWarnings(subject, paramsZod) {
67
+ const warning = zod3WindowWarning(subject, await cachedZod4Compatibility(paramsZod));
68
+ return warning ? [warning] : [];
69
+ }
70
+ /**
71
+ * A tool row with its Zod 3 window warnings, for a caller who owns it (and so
72
+ * already sees its paramsZod). Rows projected for anyone else, which carry no
73
+ * paramsZod, pass through unchanged: a warning would reveal part of the schema.
74
+ */
75
+ export async function withZod3ToolWarnings(projected) {
76
+ const row = projected;
77
+ if (typeof row.paramsZod !== "string" || typeof row.name !== "string")
78
+ return projected;
79
+ const warnings = await zod3ToolWarnings(toolSubject(row.name), row.paramsZod);
80
+ return warnings.length ? { ...projected, warnings } : projected;
81
+ }
82
+ /**
83
+ * dry_run_tool's check of a schema Zod 4 does compile: whether Zod 4 treats
84
+ * the sample arguments as the current release does. Names no values.
85
+ */
86
+ export function zod3SampleArgsWarning(subject, current, zod4) {
87
+ let how;
88
+ if (current.ok && zod4.ok) {
89
+ if (JSON.stringify(current.value) === JSON.stringify(zod4.value))
90
+ return undefined;
91
+ how = "parses the sample arguments to a different value with Zod 4";
92
+ }
93
+ else if (current.ok !== zod4.ok) {
94
+ how = current.ok ? "rejects the sample arguments with Zod 4" : "accepts the sample arguments with Zod 4";
95
+ }
96
+ else {
97
+ return undefined;
98
+ }
99
+ return (`${subject} ${how}. Wardby still compiles it with Zod 3 in this release, but ${ZOD3_WINDOW_ENDS}: ` +
100
+ "check the schema against the Zod 4 API.");
101
+ }
102
+ /**
103
+ * Logs one warning per stored tool whose paramsZod Zod 4 can't compile. Runs
104
+ * in the background at startup; never throws.
105
+ */
106
+ export async function logZod3ToolWarnings(db, log) {
107
+ let warned = 0;
108
+ try {
109
+ const tools = await db.tool.findMany({ select: { id: true, name: true, paramsZod: true }, orderBy: { id: "asc" } });
110
+ for (const tool of tools) {
111
+ const compatibility = await cachedZod4Compatibility(tool.paramsZod);
112
+ const warning = zod3WindowWarning(toolSubject(tool.name), compatibility);
113
+ if (!warning)
114
+ continue;
115
+ const removed = compatibility.compatible === false ? compatibility.removed : [];
116
+ log.warn({ toolId: tool.id, toolName: tool.name, removed }, warning);
117
+ warned += 1;
118
+ }
119
+ }
120
+ catch (err) {
121
+ log.warn({ errorName: err instanceof Error ? err.name : typeof err }, "zod3_window_check_failed");
122
+ }
123
+ return warned;
124
+ }
@@ -111,6 +111,12 @@ export type CodingAgentProfile = Prisma.CodingAgentProfileModel;
111
111
  * one coding run. Policy is copied from the profile before work starts.
112
112
  */
113
113
  export type CodingRun = Prisma.CodingRunModel;
114
+ /**
115
+ * Model RunTranscript
116
+ * A coding run's session transcript for local resume: metadata only. The redacted content lives in
117
+ * the blob store under blobKey; the unredacted transcript is never stored.
118
+ */
119
+ export type RunTranscript = Prisma.RunTranscriptModel;
114
120
  /**
115
121
  * Model CodingService
116
122
  * Coding-run services (docs/coding-services.md): the catalog a repository's
@@ -134,6 +140,42 @@ export type CodingService = Prisma.CodingServiceModel;
134
140
  * never probe output.
135
141
  */
136
142
  export type CodingRunServiceStatus = Prisma.CodingRunServiceStatusModel;
143
+ /**
144
+ * Model RunBudgetEvent
145
+ * One budget decision about a run: a refusal by the coding proxy or at
146
+ * dispatch, or an overrun top-up with no room, with the numbers behind it.
147
+ * `limit` names what refused it: run, run-tree, day, week or month. `details`
148
+ * holds amounts, the model and the turn; never secrets or message text.
149
+ */
150
+ export type RunBudgetEvent = Prisma.RunBudgetEventModel;
151
+ /**
152
+ * Model NativeGatewaySession
153
+ * The trusted gateway's record of one sandbox-mode native run (native
154
+ * sandbox phase 3): the worker authenticates with a capability whose hash is
155
+ * stored here (the raw token is never persisted), and any control-plane
156
+ * replica can serve it from this row. `snapshot` is what the run loaded --
157
+ * the worker's input plus trusted-only capabilities and links -- and never
158
+ * holds a secret value.
159
+ */
160
+ export type NativeGatewaySession = Prisma.NativeGatewaySessionModel;
161
+ /**
162
+ * Model NativeWarmWorker
163
+ * One worker of the native sandbox warm pool (native sandbox phase 6): an
164
+ * isolated worker started before any run exists, holding no run data or
165
+ * capability. A run claims an idle one with a compare-and-swap on this row
166
+ * (`runId` is set at the claim), its input is delivered only after, and the
167
+ * worker is destroyed after that one run. The row is inserted before the
168
+ * worker is created, so a worker with no row is an orphan.
169
+ */
170
+ export type NativeWarmWorker = Prisma.NativeWarmWorkerModel;
171
+ /**
172
+ * Model NativeGatewayCall
173
+ * One worker call through the gateway, keyed by its callId: model calls are
174
+ * reserved before the provider is called and settled after; side-effecting
175
+ * built-in and bridge calls keep their result so a retried callId replays it;
176
+ * a delegation records the child run it started.
177
+ */
178
+ export type NativeGatewayCall = Prisma.NativeGatewayCallModel;
137
179
  /**
138
180
  * Model CodingProxySession
139
181
  * Trusted-boundary state for one coding run. Only a capability digest and an
@@ -142,10 +184,17 @@ export type CodingRunServiceStatus = Prisma.CodingRunServiceStatusModel;
142
184
  export type CodingProxySession = Prisma.CodingProxySessionModel;
143
185
  /**
144
186
  * Model CodingProxyRequest
145
- * Monotonic per-upstream-call ledger. Uncertain reservations remain held so a
146
- * crash or truncated provider stream can never create new spendable budget.
187
+ * Monotonic per-upstream-call ledger. An uncertain request without an
188
+ * estimate stays held in full; one the proxy estimated (costEstimated) counts
189
+ * at that estimate.
147
190
  */
148
191
  export type CodingProxyRequest = Prisma.CodingProxyRequestModel;
192
+ /**
193
+ * Model RegistryAuditRecord
194
+ * One package version a run's registry served only because of package audit mode (or, in full mode,
195
+ * served despite blocking advisories). Insert-only for the proxy.
196
+ */
197
+ export type RegistryAuditRecord = Prisma.RegistryAuditRecordModel;
149
198
  /**
150
199
  * Model RegistryAllowance
151
200
  * One package a run's profile has approved from a given ecosystem, resolved
@@ -183,6 +232,15 @@ export type RegistryApprovedVersion = Prisma.RegistryApprovedVersionModel;
183
232
  * from here with the same code and reason, without a graph walk.
184
233
  */
185
234
  export type RegistryPlanRefusal = Prisma.RegistryPlanRefusalModel;
235
+ /**
236
+ * Model DependencySnapshot
237
+ * A cached node_modules snapshot for one npm project of a repository, keyed
238
+ * server-side by the coding proxy. The archive lives in the blob store under
239
+ * blobKey; only trusted wardby code writes it, before a run's agent starts.
240
+ * Outlives the run that created it (createdByRunId is cleared when that run is
241
+ * deleted); evicted least-recently-used.
242
+ */
243
+ export type DependencySnapshot = Prisma.DependencySnapshotModel;
186
244
  /**
187
245
  * Model SchedulerLease
188
246
  * Phase 2: single-row-per-scope lease so exactly one scheduler process
@@ -218,6 +276,12 @@ export type Task = Prisma.TaskModel;
218
276
  * produces plaintext, and only at point-of-use inside the sandbox.
219
277
  */
220
278
  export type Secret = Prisma.SecretModel;
279
+ /**
280
+ * Model SecretBrokerChange
281
+ * Audit trail of every change to a secret's broker config. No FK to Secret,
282
+ * so the history survives deleting the secret. Never holds a value.
283
+ */
284
+ export type SecretBrokerChange = Prisma.SecretBrokerChangeModel;
221
285
  /**
222
286
  * Model AgentSecret
223
287
  * Phase 4: attaches a secret to an agent, addressed at sandbox point-of-use
@@ -364,7 +428,8 @@ export type AgentIssueProject = Prisma.AgentIssueProjectModel;
364
428
  export type IssueFingerprint = Prisma.IssueFingerprintModel;
365
429
  /**
366
430
  * Model IssuePullRequest
367
- * A pull request wardby opened for a tracker issue (the Jira -> code bridge). Provider-neutral on both sides.
431
+ * A pull request wardby opened for an issue (a Jira issue, a GitHub issue): one shape for every issue
432
+ * provider. Provider-neutral on both sides.
368
433
  * Deliberately no foreign keys to Agent or Run: audit-style rows that survive agent/run deletion.
369
434
  */
370
435
  export type IssuePullRequest = Prisma.IssuePullRequestModel;
@@ -415,3 +480,27 @@ export type LocalPullRequest = Prisma.LocalPullRequestModel;
415
480
  * A review (or a plain comment, verdict COMMENT) published on a LocalPullRequest.
416
481
  */
417
482
  export type LocalReview = Prisma.LocalReviewModel;
483
+ /**
484
+ * Model NotificationChannel
485
+ * A Slack (chat) channel that receives workflow notifications for a Jira
486
+ * project or for one agent. Exactly one subject: (issueProvider, projectKey)
487
+ * or agentId (enforced in code and by a CHECK constraint). Admin-approved.
488
+ * See docs/slack-notifications.md.
489
+ */
490
+ export type NotificationChannel = Prisma.NotificationChannelModel;
491
+ /**
492
+ * Model WorkflowEvent
493
+ * One workflow fact (a card picked up, a PR opened, ...). Written only when
494
+ * at least one channel matches. No FKs to Run/Agent: audit-style rows.
495
+ */
496
+ export type WorkflowEvent = Prisma.WorkflowEventModel;
497
+ /**
498
+ * Model NotificationDelivery
499
+ * One event's delivery to one channel (the outbox row the dispatcher works).
500
+ */
501
+ export type NotificationDelivery = Prisma.NotificationDeliveryModel;
502
+ /**
503
+ * Model NotificationThread
504
+ * The parent message of a work item's (or PR's) thread in one channel.
505
+ */
506
+ export type NotificationThread = Prisma.NotificationThreadModel;
@@ -130,6 +130,12 @@ export type CodingAgentProfile = Prisma.CodingAgentProfileModel;
130
130
  * one coding run. Policy is copied from the profile before work starts.
131
131
  */
132
132
  export type CodingRun = Prisma.CodingRunModel;
133
+ /**
134
+ * Model RunTranscript
135
+ * A coding run's session transcript for local resume: metadata only. The redacted content lives in
136
+ * the blob store under blobKey; the unredacted transcript is never stored.
137
+ */
138
+ export type RunTranscript = Prisma.RunTranscriptModel;
133
139
  /**
134
140
  * Model CodingService
135
141
  * Coding-run services (docs/coding-services.md): the catalog a repository's
@@ -153,6 +159,42 @@ export type CodingService = Prisma.CodingServiceModel;
153
159
  * never probe output.
154
160
  */
155
161
  export type CodingRunServiceStatus = Prisma.CodingRunServiceStatusModel;
162
+ /**
163
+ * Model RunBudgetEvent
164
+ * One budget decision about a run: a refusal by the coding proxy or at
165
+ * dispatch, or an overrun top-up with no room, with the numbers behind it.
166
+ * `limit` names what refused it: run, run-tree, day, week or month. `details`
167
+ * holds amounts, the model and the turn; never secrets or message text.
168
+ */
169
+ export type RunBudgetEvent = Prisma.RunBudgetEventModel;
170
+ /**
171
+ * Model NativeGatewaySession
172
+ * The trusted gateway's record of one sandbox-mode native run (native
173
+ * sandbox phase 3): the worker authenticates with a capability whose hash is
174
+ * stored here (the raw token is never persisted), and any control-plane
175
+ * replica can serve it from this row. `snapshot` is what the run loaded --
176
+ * the worker's input plus trusted-only capabilities and links -- and never
177
+ * holds a secret value.
178
+ */
179
+ export type NativeGatewaySession = Prisma.NativeGatewaySessionModel;
180
+ /**
181
+ * Model NativeWarmWorker
182
+ * One worker of the native sandbox warm pool (native sandbox phase 6): an
183
+ * isolated worker started before any run exists, holding no run data or
184
+ * capability. A run claims an idle one with a compare-and-swap on this row
185
+ * (`runId` is set at the claim), its input is delivered only after, and the
186
+ * worker is destroyed after that one run. The row is inserted before the
187
+ * worker is created, so a worker with no row is an orphan.
188
+ */
189
+ export type NativeWarmWorker = Prisma.NativeWarmWorkerModel;
190
+ /**
191
+ * Model NativeGatewayCall
192
+ * One worker call through the gateway, keyed by its callId: model calls are
193
+ * reserved before the provider is called and settled after; side-effecting
194
+ * built-in and bridge calls keep their result so a retried callId replays it;
195
+ * a delegation records the child run it started.
196
+ */
197
+ export type NativeGatewayCall = Prisma.NativeGatewayCallModel;
156
198
  /**
157
199
  * Model CodingProxySession
158
200
  * Trusted-boundary state for one coding run. Only a capability digest and an
@@ -161,10 +203,17 @@ export type CodingRunServiceStatus = Prisma.CodingRunServiceStatusModel;
161
203
  export type CodingProxySession = Prisma.CodingProxySessionModel;
162
204
  /**
163
205
  * Model CodingProxyRequest
164
- * Monotonic per-upstream-call ledger. Uncertain reservations remain held so a
165
- * crash or truncated provider stream can never create new spendable budget.
206
+ * Monotonic per-upstream-call ledger. An uncertain request without an
207
+ * estimate stays held in full; one the proxy estimated (costEstimated) counts
208
+ * at that estimate.
166
209
  */
167
210
  export type CodingProxyRequest = Prisma.CodingProxyRequestModel;
211
+ /**
212
+ * Model RegistryAuditRecord
213
+ * One package version a run's registry served only because of package audit mode (or, in full mode,
214
+ * served despite blocking advisories). Insert-only for the proxy.
215
+ */
216
+ export type RegistryAuditRecord = Prisma.RegistryAuditRecordModel;
168
217
  /**
169
218
  * Model RegistryAllowance
170
219
  * One package a run's profile has approved from a given ecosystem, resolved
@@ -202,6 +251,15 @@ export type RegistryApprovedVersion = Prisma.RegistryApprovedVersionModel;
202
251
  * from here with the same code and reason, without a graph walk.
203
252
  */
204
253
  export type RegistryPlanRefusal = Prisma.RegistryPlanRefusalModel;
254
+ /**
255
+ * Model DependencySnapshot
256
+ * A cached node_modules snapshot for one npm project of a repository, keyed
257
+ * server-side by the coding proxy. The archive lives in the blob store under
258
+ * blobKey; only trusted wardby code writes it, before a run's agent starts.
259
+ * Outlives the run that created it (createdByRunId is cleared when that run is
260
+ * deleted); evicted least-recently-used.
261
+ */
262
+ export type DependencySnapshot = Prisma.DependencySnapshotModel;
205
263
  /**
206
264
  * Model SchedulerLease
207
265
  * Phase 2: single-row-per-scope lease so exactly one scheduler process
@@ -237,6 +295,12 @@ export type Task = Prisma.TaskModel;
237
295
  * produces plaintext, and only at point-of-use inside the sandbox.
238
296
  */
239
297
  export type Secret = Prisma.SecretModel;
298
+ /**
299
+ * Model SecretBrokerChange
300
+ * Audit trail of every change to a secret's broker config. No FK to Secret,
301
+ * so the history survives deleting the secret. Never holds a value.
302
+ */
303
+ export type SecretBrokerChange = Prisma.SecretBrokerChangeModel;
240
304
  /**
241
305
  * Model AgentSecret
242
306
  * Phase 4: attaches a secret to an agent, addressed at sandbox point-of-use
@@ -383,7 +447,8 @@ export type AgentIssueProject = Prisma.AgentIssueProjectModel;
383
447
  export type IssueFingerprint = Prisma.IssueFingerprintModel;
384
448
  /**
385
449
  * Model IssuePullRequest
386
- * A pull request wardby opened for a tracker issue (the Jira -> code bridge). Provider-neutral on both sides.
450
+ * A pull request wardby opened for an issue (a Jira issue, a GitHub issue): one shape for every issue
451
+ * provider. Provider-neutral on both sides.
387
452
  * Deliberately no foreign keys to Agent or Run: audit-style rows that survive agent/run deletion.
388
453
  */
389
454
  export type IssuePullRequest = Prisma.IssuePullRequestModel;
@@ -434,3 +499,27 @@ export type LocalPullRequest = Prisma.LocalPullRequestModel;
434
499
  * A review (or a plain comment, verdict COMMENT) published on a LocalPullRequest.
435
500
  */
436
501
  export type LocalReview = Prisma.LocalReviewModel;
502
+ /**
503
+ * Model NotificationChannel
504
+ * A Slack (chat) channel that receives workflow notifications for a Jira
505
+ * project or for one agent. Exactly one subject: (issueProvider, projectKey)
506
+ * or agentId (enforced in code and by a CHECK constraint). Admin-approved.
507
+ * See docs/slack-notifications.md.
508
+ */
509
+ export type NotificationChannel = Prisma.NotificationChannelModel;
510
+ /**
511
+ * Model WorkflowEvent
512
+ * One workflow fact (a card picked up, a PR opened, ...). Written only when
513
+ * at least one channel matches. No FKs to Run/Agent: audit-style rows.
514
+ */
515
+ export type WorkflowEvent = Prisma.WorkflowEventModel;
516
+ /**
517
+ * Model NotificationDelivery
518
+ * One event's delivery to one channel (the outbox row the dispatcher works).
519
+ */
520
+ export type NotificationDelivery = Prisma.NotificationDeliveryModel;
521
+ /**
522
+ * Model NotificationThread
523
+ * The parent message of a work item's (or PR's) thread in one channel.
524
+ */
525
+ export type NotificationThread = Prisma.NotificationThreadModel;