@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
@@ -16,20 +16,96 @@
16
16
  * down) lives inside the engine now — there is exactly one place that
17
17
  * reasons about cost, not one here plus one in the engine.
18
18
  */
19
- import type { PrismaClient, Run, RunTrigger } from "#prisma";
19
+ import { z } from "zod";
20
+ import { Prisma, type PrismaClient, type Run, type RunTrigger } from "#prisma";
20
21
  import type { ProviderRegistry } from "../providers/index.js";
21
- import { type StepRunner } from "../providers/engine/types.js";
22
+ import type { EngineProgress, EngineResult, LoadedTool } from "../providers/engine/types.js";
23
+ import { RunOwnershipLostError, type StepRunner } from "../providers/engine/types.js";
24
+ import { type PrivilegedHost } from "../sandbox/host-functions.js";
25
+ import type { safeFetch } from "../sandbox/safe-fetch.js";
26
+ import { type RunDrivability, type WorkerLauncher } from "../native-worker/gateway.js";
27
+ import { type WorkerInput } from "../native-worker/protocol.js";
28
+ import type { PrismaGatewayLedger } from "../native-worker/ledger.js";
29
+ import { type SecretsAccessor } from "./secrets.js";
22
30
  import type { Executor } from "../providers/executor/types.js";
23
31
  import type { ReviewHostRegistry } from "../providers/review-host/types.js";
24
32
  import type { IssueTrackerRegistry } from "../providers/issue-tracker/types.js";
33
+ import { type RepositoryLink } from "./review-host-tools.js";
34
+ import { type IssueProjectLink } from "./issue-tracker-tools.js";
35
+ import { ReviewReadLedger } from "./review-reads.js";
25
36
  import { type RepoAccessGate } from "./repo-access.js";
37
+ import { type BudgetEventView } from "./budget-events.js";
38
+ export declare const runnerLog: import("pino").Logger<never, boolean>;
39
+ declare const DelegateArgs: z.ZodObject<{
40
+ task: z.ZodString;
41
+ datastoreRef: z.ZodOptional<z.ZodObject<{
42
+ name: z.ZodString;
43
+ key: z.ZodString;
44
+ }, z.core.$strict>>;
45
+ grantParentMemoryKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
46
+ continuePriorRun: z.ZodOptional<z.ZodString>;
47
+ mergeOrder: z.ZodOptional<z.ZodNumber>;
48
+ }, z.core.$strict>;
49
+ /** A delegate_to_* call's arguments, or the tool result refusing them. */
50
+ export declare function parseDelegateArgs(argsJson: string): {
51
+ args: z.infer<typeof DelegateArgs>;
52
+ } | {
53
+ refusal: string;
54
+ };
55
+ /**
56
+ * At most `limit` dispatches per run (default one: a classifier deciding plan-vs-implement
57
+ * commits to exactly one child), and never the same child twice, so a retry can't leave two
58
+ * children racing on the same task. A delegation waiting for budget holds its place.
59
+ */
60
+ export declare function delegationLimitRefusal(input: {
61
+ priorChildAgentIds: readonly string[];
62
+ waitingChildAgentIds: readonly string[];
63
+ childAgentId: string;
64
+ boundName: string;
65
+ limit: number;
66
+ }): string | null;
67
+ declare const DELEGATION_CHILD_SELECT: {
68
+ readonly id: true;
69
+ readonly kind: true;
70
+ readonly budgetGroupId: true;
71
+ readonly budgetUsd: true;
72
+ readonly ownerId: true;
73
+ readonly nativeExecutionMode: true;
74
+ readonly codingProfile: {
75
+ readonly select: {
76
+ readonly allowWebhookTaskOverride: true;
77
+ readonly timeoutSec: true;
78
+ };
79
+ };
80
+ };
81
+ /** The child agent fields a delegation decides on. */
82
+ export type DelegationChildAgent = Prisma.AgentGetPayload<{
83
+ select: typeof DELEGATION_CHILD_SELECT;
84
+ }>;
85
+ /**
86
+ * The live authorization of one delegation, and the child agent as it is now. Owners are re-read
87
+ * on every delegation (resource-sharing grants spec §3.4.4, N1): the child must have the parent's
88
+ * current owner, or that owner must still hold execute on the child. A revoked grant or a
89
+ * make_owner transfer stops the very next call.
90
+ */
91
+ export declare function authorizeDelegation(db: RunnerDb, parentAgentId: string, edge: {
92
+ childAgentId: string;
93
+ }, boundName: string, args: z.infer<typeof DelegateArgs>): Promise<{
94
+ refusal: string;
95
+ } | {
96
+ childAgent: DelegationChildAgent;
97
+ }>;
98
+ /** A native child's task text: the delegated task, with any datastore reference as a note. */
99
+ export declare function delegationTaskOverride(args: z.infer<typeof DelegateArgs>): string | undefined;
100
+ /** The tool result a native child's terminal run reports to its parent. `note` surfaces e.g. an ignored mergeOrder. */
101
+ export declare function nativeChildResult(run: Pick<Run, "status" | "finalText" | "costUsd" | "tokensIn" | "tokensOut" | "error">, note?: string): string;
26
102
  /**
27
103
  * The subset of the Prisma client the runner touches — mockable in tests.
28
104
  * Includes `codingRun`/`task`/`webhook`/`$transaction`/`$queryRaw` so this
29
105
  * also satisfies `dispatch.ts`'s `DispatchDb`, needed for dispatching a
30
106
  * coding-kind sub-agent from inside a running native turn loop.
31
107
  */
32
- export type RunnerDb = Pick<PrismaClient, "agent" | "run" | "agentTool" | "agentSecret" | "agentDatastore" | "budgetGroup" | "agentSubAgent" | "resourceGrant" | "codingRun" | "task" | "webhook" | "$transaction" | "$queryRaw" | "agentRepository" | "runModelUsage" | "runHostCheck" | "runHostStatus" | "hostIdentity" | "agentIssueProject" | "issuePullRequest" | "runIssueStatus" | "issueFingerprint" | "workItem">;
108
+ export type RunnerDb = Pick<PrismaClient, "agent" | "run" | "agentTool" | "agentSecret" | "agentDatastore" | "budgetGroup" | "agentSubAgent" | "resourceGrant" | "codingRun" | "registryFetch" | "registryAuditRecord" | "task" | "webhook" | "$transaction" | "$queryRaw" | "agentRepository" | "runModelUsage" | "runHostCheck" | "runBudgetEvent" | "runHostStatus" | "hostIdentity" | "agentIssueProject" | "issuePullRequest" | "runIssueStatus" | "issueFingerprint" | "workItem" | "deferredReview" | "runAttribution">;
33
109
  /** The providers a native run needs; `executor`, `reviewHosts` and `issueTrackers` are optional capabilities. */
34
110
  export type NativeRunProviders = Pick<ProviderRegistry, "llm" | "engine" | "datastore" | "secrets" | "memory"> & {
35
111
  executor?: ProviderRegistry["executor"];
@@ -38,6 +114,13 @@ export type NativeRunProviders = Pick<ProviderRegistry, "llm" | "engine" | "data
38
114
  issueTrackers?: IssueTrackerRegistry;
39
115
  /** Repository authorization for repo_* calls; built from reviewHosts when absent. */
40
116
  repoAccess?: RepoAccessGate;
117
+ /**
118
+ * Runs sandbox-mode native runs: the engine runs in a worker this launcher starts, served by the
119
+ * native gateway (src/native-worker). Absent: a run whose snapshot says sandbox fails closed.
120
+ */
121
+ nativeSandbox?: WorkerLauncher;
122
+ /** Overrides the sandbox's outbound network call — tests only. */
123
+ sandboxFetch?: typeof safeFetch;
41
124
  };
42
125
  /**
43
126
  * Raised when a run's step boundary observed a cancellation (DbosExecutor's
@@ -47,12 +130,60 @@ export type NativeRunProviders = Pick<ProviderRegistry, "llm" | "engine" | "data
47
130
  export declare class RunCancelledError extends Error {
48
131
  constructor(message: string);
49
132
  }
133
+ /** Re-exported beside RunCancelledError: thrown by a step runner when another attempt owns the run. */
134
+ export { RunOwnershipLostError };
135
+ /** Options for a durable executor's use of stopAwareStep (DbosExecutor); inline runs pass none. */
136
+ export interface StopAwareStepOptions {
137
+ /**
138
+ * A failed read lets the step run, so the check adds no new way for a run to fail. The cost: in an
139
+ * attempt that is already superseded, a step whose read fails still runs (at most that one step,
140
+ * since the next read that succeeds fences it).
141
+ */
142
+ failOpen?: boolean;
143
+ /**
144
+ * Fences an attempt whose workflow the run has moved off. When the run's `executionWorkflowId`
145
+ * was forked from the workflow driving this attempt (a takeover recorded its fork), this attempt
146
+ * no longer owns the run and stops with a RunOwnershipLostError: no terminal write, no settle side
147
+ * effects. Only a fork *of this workflow* fences it: a null id, or an older id (a fork of a fork
148
+ * whose own id is not recorded yet, or failed to record), fences nothing, so a takeover's fork is
149
+ * never fenced out of the run it drives.
150
+ */
151
+ ownership?: {
152
+ /** The workflow driving this attempt, read when the step is called. */
153
+ workflowId: () => string | undefined;
154
+ /** Whether `recorded` was forked, directly or through further forks, from `own`. */
155
+ forkedFrom: (recorded: string, own: string) => boolean;
156
+ };
157
+ }
158
+ /**
159
+ * A step runner made to notice a stop. Before each step this reads the run's own row: once anything
160
+ * else has made it terminal (stop_run, an MCP task's cancel, a parent run's stop, the reconciler),
161
+ * the run stops at this boundary with a RunCancelledError. The terminal row is never rewritten
162
+ * (finishRunClaimed matches zero rows), so the stop keeps its reason. Inline runs need it because
163
+ * nothing else interrupts their steps. DbosExecutor wraps its own step runner in it too: DBOS stops
164
+ * only a workflow it was told to cancel, and stop() can name only the workflow the run records.
165
+ */
166
+ export declare function stopAwareStep(db: Pick<RunnerDb, "run">, runId: string, inner?: StepRunner, options?: StopAwareStepOptions): StepRunner;
167
+ /**
168
+ * Why a sandbox-mode native run is not executed here. The runner only ever
169
+ * executes native runs in the control plane; a run whose snapshot says
170
+ * `sandbox` reaches it only when no native sandbox executor is composed in
171
+ * (RoutingExecutor sends it to the native executor), and must fail closed
172
+ * rather than run unisolated.
173
+ */
174
+ export declare const NATIVE_SANDBOX_NOT_CONFIGURED: string;
50
175
  /**
51
176
  * Slack past the child's own queue wait + container deadline before the
52
177
  * parent gives up: the executor needs a moment after a deadline kill to
53
178
  * write the terminal row, and the queue timeout only fires on a drain tick.
54
179
  */
55
180
  export declare const CODING_CHILD_WAIT_GRACE_SEC = 60;
181
+ /**
182
+ * How long a parent waits for a sandbox-mode native child before stopping it. Native runs have
183
+ * no run timeout of their own; until the sandbox executor brings a per-run deadline, this bounds
184
+ * a parent left waiting on a child that never finishes.
185
+ */
186
+ export declare const SANDBOX_CHILD_WAIT_SEC: number;
56
187
  export type CodingChildWaitOutcome = {
57
188
  kind: "terminal";
58
189
  run: Run;
@@ -73,10 +204,12 @@ export interface WaitForCodingChildOptions {
73
204
  now?: () => number;
74
205
  sleep?: (ms: number) => Promise<void>;
75
206
  }
207
+ /** The leading snake_case code of an error message (`code: sentence`); messages can carry internals. */
76
208
  /**
77
209
  * What a coding sub-agent's run tells the parent run's model. A run refused
78
210
  * over its services carries the host sentence (never the raw Run.error), so
79
- * the parent can pass it on — for a mention, that is the requester.
211
+ * the parent can pass it on — for a mention, that is the requester. A failed
212
+ * run carries only its error code, so the parent can say why without seeing internals.
80
213
  */
81
214
  export declare function codingChildResult(run: {
82
215
  status: string;
@@ -85,7 +218,12 @@ export declare function codingChildResult(run: {
85
218
  tokensIn: number;
86
219
  tokensOut: number;
87
220
  error: string | null;
88
- }, codingResult?: unknown): string;
221
+ }, codingResult?: unknown,
222
+ /** The child's recorded budget refusal (loadBudgetEvent), if any. */
223
+ budgetEvent?: {
224
+ event: BudgetEventView;
225
+ agentName: string;
226
+ } | null): string;
89
227
  /**
90
228
  * Polls a dispatched coding child until it reaches a terminal status. Needed
91
229
  * because a queued child (every concurrency slot taken) makes Executor.start
@@ -102,6 +240,247 @@ export declare function codingChildResult(run: {
102
240
  export declare function waitForCodingChild(options: WaitForCodingChildOptions): Promise<CodingChildWaitOutcome>;
103
241
  /** Persists a new pending Run for the named agent. Throws if the agent is unknown. */
104
242
  export declare function createRun(db: RunnerDb, agentName: string, trigger?: RunTrigger): Promise<Run>;
243
+ export interface LoadNativeRunOptions {
244
+ runId: string;
245
+ existingRun: Run;
246
+ providers: NativeRunProviders;
247
+ db: RunnerDb;
248
+ step: StepRunner;
249
+ reviewHosts: ReviewHostRegistry | undefined;
250
+ issueTrackers: IssueTrackerRegistry | undefined;
251
+ }
252
+ /**
253
+ * The trusted load of a native run: the agent, its attached tools and their
254
+ * consented capabilities, the pinned catalog entry, the effective budget,
255
+ * sub-agent edges, and repository/issue links. Shared by in-process execution
256
+ * and the native sandbox gateway, which hands the worker this result.
257
+ *
258
+ * Pinned in one checkpointed step: on replay after a crash, the agent row
259
+ * or its budget group may have changed since first execution. The
260
+ * engine's control flow depends on budgetUsd and maxTurns, so they must
261
+ * be pinned to the values seen on first execution or the replay's step
262
+ * order diverges from the record.
263
+ */
264
+ export declare function loadNativeRun(options: LoadNativeRunOptions): Promise<{
265
+ repositoryLinks: RepositoryLink[];
266
+ issueProjectLinks: IssueProjectLink[];
267
+ agent: {
268
+ untrustedContext?: string | undefined;
269
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
270
+ systemPrompt: string;
271
+ model: string;
272
+ budgetUsd: number;
273
+ maxTurns: number;
274
+ };
275
+ tools: LoadedTool[];
276
+ toolsByName: {
277
+ [k: string]: {
278
+ code: string;
279
+ paramsZod: string;
280
+ allowedSecrets: string[];
281
+ allowedDatastorePrefixes: string[];
282
+ allowedHosts: string[];
283
+ allowedSharedDatastorePrefixes: Record<string, string[]>;
284
+ };
285
+ };
286
+ parallelDelegations?: boolean | undefined;
287
+ maxDelegationsPerRun?: number | undefined;
288
+ agentId: string;
289
+ kind: import("#prisma").AgentKind;
290
+ pricing: import("./run-pricing.js").PinnedPricing | undefined;
291
+ memoryEnabled: boolean;
292
+ subAgentEdges: {
293
+ boundName: string;
294
+ childAgentId: string;
295
+ }[];
296
+ } | {
297
+ readonly unavailable: string;
298
+ }>;
299
+ /** A loaded native run (loadNativeRun without its model-unavailable outcome). */
300
+ export type LoadedNativeRun = Exclude<Awaited<ReturnType<typeof loadNativeRun>>, {
301
+ unavailable: string;
302
+ }>;
303
+ export interface NativeRunToolsOptions {
304
+ runId: string;
305
+ existingRun: Run;
306
+ loaded: LoadedNativeRun;
307
+ providers: NativeRunProviders;
308
+ db: RunnerDb;
309
+ reviewHosts: ReviewHostRegistry | undefined;
310
+ repoAccess: RepoAccessGate | undefined;
311
+ issueTrackers: IssueTrackerRegistry | undefined;
312
+ /** What earlier requests of this run read (a sandbox run's gateway restores it per request); fresh otherwise. */
313
+ reviewReads?: ReviewReadLedger;
314
+ }
315
+ /** An attached user tool as the load step pinned it: its code, schema, and consented capabilities. */
316
+ export type LoadedUserTool = LoadedNativeRun["toolsByName"][string];
317
+ /**
318
+ * A built-in tool's handler for one call; built-ins run on the trusted side, never in a sandbox.
319
+ * `callId` is the model's id for the tool call, when the caller has one: a delegation keys its
320
+ * child on it (Run.parentCallId), so a re-executed call re-attaches instead of dispatching twice.
321
+ */
322
+ export type BuiltinToolHandler = (argsJson: string, callId?: string) => Promise<string>;
323
+ /**
324
+ * Every value of the secrets `names` (readable or brokered; a SigV4 secret's key and token alone
325
+ * too, the same set the in-process host redacts), as a redaction list. Rejects when ANY read
326
+ * fails: a list missing one secret would let that secret through, so a caller treats a rejection
327
+ * as "no list" and fails closed. A secret with no value contributes nothing.
328
+ */
329
+ export declare function readRedactionValues(accessor: SecretsAccessor, names: readonly string[]): Promise<string[]>;
330
+ /**
331
+ * One attempt's tool surface for a native run. `builtinHandler(name)` is the
332
+ * single source of truth for which names are trusted built-ins (memory,
333
+ * repo_*, jira_*, sub-agent/parent memory, delegate_to_*) and returns undefined
334
+ * for everything else, which `runUserTool` runs in the WASM sandbox. Per-attempt
335
+ * state (the delegation gate, siblings, issue creation counters) lives here.
336
+ */
337
+ export declare function createNativeRunTools(options: NativeRunToolsOptions): {
338
+ toolsByName: Map<string, {
339
+ code: string;
340
+ paramsZod: string;
341
+ allowedSecrets: string[];
342
+ allowedDatastorePrefixes: string[];
343
+ allowedHosts: string[];
344
+ allowedSharedDatastorePrefixes: Record<string, string[]>;
345
+ }>;
346
+ builtinHandler: (name: string) => BuiltinToolHandler | undefined;
347
+ privilegedHostFor: (name: string, signal: AbortSignal, redactSecretValues?: readonly string[]) => PrivilegedHost | undefined;
348
+ readableSecretValues: (name: string) => Promise<string[]>;
349
+ runUserTool: (name: string, argsJson: string) => Promise<string>;
350
+ runSandboxTool: (name: string, argsJson: string, callId?: string) => Promise<string>;
351
+ };
352
+ /**
353
+ * Live progress for observers (MCP get_run, the viewer). Absolute totals, so a DBOS replay
354
+ * re-writing them is harmless. Written into the run's own cost columns on purpose: the run
355
+ * tree's shared budget (computeRunTreeSpend) then counts a running parent's spend so far, as it
356
+ * already does for coding runs, whose proxy ledger writes their totals live. Best-effort: a
357
+ * failed write only delays what observers see, and finishRun writes the final totals anyway.
358
+ * A cancelled run takes them too: a stop lands mid-step, and that step's spend is real, while the
359
+ * cancelled run's terminal write (failNativeRun) records no totals of its own.
360
+ */
361
+ export declare function recordNativeRunProgress(db: RunnerDb, runId: string, progress: EngineProgress): Promise<void>;
362
+ /** What finishing a native run needs: the run, and the integrations its trigger may have opened. */
363
+ export interface NativeRunFinishContext {
364
+ runId: string;
365
+ db: RunnerDb;
366
+ providers: NativeRunProviders;
367
+ reviewHosts: ReviewHostRegistry | undefined;
368
+ repoAccess: RepoAccessGate | undefined;
369
+ issueTrackers: IssueTrackerRegistry | undefined;
370
+ }
371
+ /** The terminal write for an engine result, then its usage, host/issue status, and follow-ups. */
372
+ export declare function finishNativeRun(ctx: NativeRunFinishContext, model: string, result: EngineResult): Promise<Run>;
373
+ /** The backstop terminal write for a run that threw. A cancellation is not a failure: it carries the operator's own reason. */
374
+ export declare function failNativeRun(ctx: NativeRunFinishContext, err: unknown): Promise<Run>;
375
+ /** The terminal write for a run that cannot continue (it ends `lost` with `reason`), then the same settle path. */
376
+ export declare function loseNativeRun(ctx: NativeRunFinishContext, reason: string): Promise<Run>;
377
+ /** Where a run stands for the native gateway: still drivable, cancelled (its task), or otherwise ended. */
378
+ export declare function runDrivability(db: RunnerDb, runId: string): Promise<RunDrivability>;
379
+ /**
380
+ * What a sandbox worker is given: the pinned agent and tool definitions, which names are built-ins
381
+ * (served by the gateway), and each user tool's code and schema only — never its capabilities,
382
+ * secret names, or values, which stay with the gateway's privileged host.
383
+ */
384
+ export declare function sandboxWorkerInput(runId: string, loaded: LoadedNativeRun, tools: Pick<ReturnType<typeof createNativeRunTools>, "builtinHandler" | "toolsByName">): WorkerInput;
385
+ /** What the durable delegation needs from the gateway ledger (src/native-worker/ledger.ts). */
386
+ export type DelegationLedger = Pick<PrismaGatewayLedger, "claim" | "recordResult" | "setDelegation" | "delegation" | "waitingChildAgentIds">;
387
+ export interface DurableDelegationContext {
388
+ runId: string;
389
+ existingRun: Run;
390
+ loaded: LoadedNativeRun;
391
+ providers: NativeRunProviders;
392
+ db: RunnerDb;
393
+ issueTrackers: IssueTrackerRegistry | undefined;
394
+ ledger: DelegationLedger;
395
+ sessionId: string;
396
+ /** Every secret value the run can read, to redact its logs by exact value (unset or failing: nothing is logged of an error but its name and code). */
397
+ secretValues?: () => Promise<string[]>;
398
+ /** How long one call waits on the child before answering `pending` (the worker calls again). */
399
+ pollWindowMs?: number;
400
+ pollIntervalMs?: number;
401
+ now?: () => number;
402
+ sleep?: (ms: number) => Promise<void>;
403
+ }
404
+ export type DurableDelegationOutcome = {
405
+ result: string;
406
+ } | {
407
+ pending: true;
408
+ };
409
+ /** Long-poll window: well under common proxy and load-balancer idle timeouts. */
410
+ export declare const DELEGATION_POLL_WINDOW_MS = 20000;
411
+ /**
412
+ * A delegate_to_* call from a sandboxed run, served by the native gateway. The in-process branch
413
+ * holds its admission, budget wait, and child wait in one process's memory for the child's whole
414
+ * life; this one keeps them on the call's ledger row, so the worker can call again with the same
415
+ * callId — on any control-plane replica, before or after a restart — and continue where it was:
416
+ *
417
+ * - every child, native or coding, is a managed run dispatched through dispatchRun and the
418
+ * Executor (never inline: an inline child dies with the replica, and the reconciler does not
419
+ * reap unmanaged runs);
420
+ * - admission re-checks the per-run delegation limit under a run-scoped advisory lock inside the
421
+ * child's own transaction, so parallel delegations on different replicas cannot exceed it;
422
+ * - a delegation the budget would refuse while sibling children still run is recorded as waiting
423
+ * and re-evaluated on each call (parallelDelegations), up to the same bound as in process;
424
+ * - each call waits on the child row up to `pollWindowMs`, then answers `pending`.
425
+ *
426
+ * Every refusal and result uses the same helpers, and so the same messages, as in process.
427
+ */
428
+ export declare function durableDelegate(ctx: DurableDelegationContext, callId: string, name: string, argsJson: string): Promise<DurableDelegationOutcome>;
429
+ /** The integrations a native run uses, as executeRun derives them from its providers. */
430
+ export declare function nativeRunIntegrations(providers: NativeRunProviders, db: RunnerDb): {
431
+ reviewHosts: Partial<Record<import("../providers/review-host/types.js").ReviewHostProvider, import("../providers/review-host/types.js").CodeReviewHost>> | undefined;
432
+ repoAccess: RepoAccessGate | undefined;
433
+ issueTrackers: Partial<Record<"jira", import("../providers/issue-tracker/types.js").IssueTracker>> | undefined;
434
+ };
435
+ /** How long a sandbox run's gateway session (and so its capability) stays valid. */
436
+ export declare const SANDBOX_RUN_MAX_SEC: number;
437
+ /** What a sandbox session pins: the worker's input (without its capability) and the trusted load. */
438
+ export interface SandboxSessionSnapshot {
439
+ input: WorkerInput;
440
+ loaded: LoadedNativeRun;
441
+ }
442
+ export type SandboxSessionOutcome = {
443
+ kind: "started";
444
+ input: WorkerInput;
445
+ capability: string;
446
+ sessionId: string;
447
+ /** Every secret value the run's user tools may read, read on demand (never stored); rejects when any read fails. */
448
+ secretValues: () => Promise<string[]>;
449
+ }
450
+ /** The run ended before a worker was needed (already terminal, or failed at load). */
451
+ | {
452
+ kind: "ended";
453
+ run: Run;
454
+ };
455
+ /**
456
+ * Starts a sandbox-mode run's trusted half: loads and pins the run, marks it running, records its
457
+ * gateway session (capability hash, deadline, budget, snapshot), and records `native-sandbox` as
458
+ * its execution backend — all before any worker exists. The caller launches the worker with the
459
+ * returned input, which carries the gateway URL and the one-time capability.
460
+ */
461
+ export declare function createSandboxSession(options: {
462
+ runId: string;
463
+ providers: NativeRunProviders;
464
+ db: RunnerDb;
465
+ ledger: Pick<PrismaGatewayLedger, "createSession">;
466
+ gatewayUrl: string;
467
+ now?: Date;
468
+ /**
469
+ * Whether the worker's network isolation exists before the worker does (Docker's internal
470
+ * network). False (Kubernetes): the gateway refuses calls until the launcher proves it.
471
+ */
472
+ networkReady?: boolean;
473
+ }): Promise<SandboxSessionOutcome>;
474
+ /**
475
+ * Every secret value the sandbox run's user tools `names` may read (readable or brokered): what its
476
+ * worker can be handed, so what the gateway checks its cause codes against and a launcher masks
477
+ * from the worker's output tail. Rejects when any read fails (readRedactionValues).
478
+ */
479
+ export declare function userToolSecretValues(tools: Pick<ReturnType<typeof createNativeRunTools>, "readableSecretValues">, names: readonly string[]): Promise<string[]>;
480
+ /** Run.executionBackend for a sandbox-mode run whose worker is (or was) launched. */
481
+ export declare const NATIVE_SANDBOX_BACKEND = "native-sandbox";
482
+ /** The stored form of a sandbox capability: never the token itself. */
483
+ export declare function sandboxCapabilityHash(capability: string): string;
105
484
  /** Drives an existing Run (created by `createRun` or the scheduler) to a terminal state. */
106
485
  export declare function executeRun(runId: string, providers: NativeRunProviders, db?: RunnerDb, onText?: (delta: string) => void, step?: StepRunner): Promise<Run>;
107
486
  /**