@wardby/cli 0.5.2 → 0.6.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 (411) hide show
  1. package/.env.example +33 -0
  2. package/README.md +25 -14
  3. package/dist/claude-coding-worker/context.d.ts +22 -0
  4. package/dist/claude-coding-worker/context.js +92 -0
  5. package/dist/claude-coding-worker/driver.d.ts +7 -1
  6. package/dist/claude-coding-worker/driver.js +38 -5
  7. package/dist/claude-coding-worker/sdk.js +13 -4
  8. package/dist/cli-help.d.ts +1 -1
  9. package/dist/cli-help.js +5 -2
  10. package/dist/cli-native-mode.d.ts +9 -0
  11. package/dist/cli-native-mode.js +20 -0
  12. package/dist/cli.d.ts +3 -1
  13. package/dist/cli.js +141 -5
  14. package/dist/coding/claude-context.d.ts +45 -0
  15. package/dist/coding/claude-context.js +434 -0
  16. package/dist/coding/local-git.js +9 -1
  17. package/dist/coding/profile.d.ts +12 -0
  18. package/dist/coding/profile.js +6 -0
  19. package/dist/coding/protocol.d.ts +104 -0
  20. package/dist/coding/protocol.js +87 -3
  21. package/dist/coding/registry/pypi.d.ts +25 -1
  22. package/dist/coding/registry/pypi.js +140 -16
  23. package/dist/coding/registry/types.d.ts +17 -3
  24. package/dist/coding-worker/artifact.d.ts +8 -0
  25. package/dist/coding-worker/artifact.js +2 -2
  26. package/dist/coding-worker/driver.js +2 -0
  27. package/dist/coding-worker/sdk.d.ts +6 -0
  28. package/dist/coding-worker/sdk.js +1 -0
  29. package/dist/coding-worker/skills.d.ts +23 -0
  30. package/dist/coding-worker/skills.js +117 -0
  31. package/dist/coding-worker/types.d.ts +2 -0
  32. package/dist/config/github-allowed-accounts.d.ts +15 -0
  33. package/dist/config/github-allowed-accounts.js +36 -0
  34. package/dist/config/low-power.d.ts +12 -0
  35. package/dist/config/low-power.js +18 -0
  36. package/dist/config/mobile.d.ts +12 -0
  37. package/dist/config/mobile.js +18 -0
  38. package/dist/config/providers.d.ts +56 -2
  39. package/dist/config/providers.js +92 -6
  40. package/dist/core/db.d.ts +16 -6
  41. package/dist/core/db.js +12 -10
  42. package/dist/core/dispatch.d.ts +11 -0
  43. package/dist/core/dispatch.js +36 -1
  44. package/dist/core/engine-native.js +9 -5
  45. package/dist/core/host-events.d.ts +49 -3
  46. package/dist/core/host-events.js +289 -15
  47. package/dist/core/http-runtime.js +13 -6
  48. package/dist/core/issue-bridge.js +42 -2
  49. package/dist/core/issue-events.js +12 -1
  50. package/dist/core/issue-status.js +14 -3
  51. package/dist/core/merge-order-check.d.ts +129 -0
  52. package/dist/core/merge-order-check.js +336 -0
  53. package/dist/core/notification-dispatcher.d.ts +70 -0
  54. package/dist/core/notification-dispatcher.js +368 -0
  55. package/dist/core/notification-templates.d.ts +25 -0
  56. package/dist/core/notification-templates.js +105 -0
  57. package/dist/core/notifications.d.ts +10 -0
  58. package/dist/core/notifications.js +38 -0
  59. package/dist/core/pg-auth.d.ts +22 -0
  60. package/dist/core/pg-auth.js +152 -0
  61. package/dist/core/power-composition.d.ts +16 -0
  62. package/dist/core/power-composition.js +37 -0
  63. package/dist/core/power-idle.d.ts +14 -0
  64. package/dist/core/power-idle.js +30 -0
  65. package/dist/core/power.d.ts +71 -0
  66. package/dist/core/power.js +202 -0
  67. package/dist/core/reconciler.d.ts +4 -2
  68. package/dist/core/reconciler.js +29 -5
  69. package/dist/core/related-pull-requests.d.ts +48 -4
  70. package/dist/core/related-pull-requests.js +113 -11
  71. package/dist/core/repo-access.d.ts +15 -0
  72. package/dist/core/repo-access.js +66 -0
  73. package/dist/core/review-fix.d.ts +37 -0
  74. package/dist/core/review-fix.js +207 -6
  75. package/dist/core/review-host-tools.d.ts +20 -0
  76. package/dist/core/review-host-tools.js +58 -2
  77. package/dist/core/runner.d.ts +336 -3
  78. package/dist/core/runner.js +894 -317
  79. package/dist/core/secret-broker-config.d.ts +103 -0
  80. package/dist/core/secret-broker-config.js +112 -0
  81. package/dist/core/secrets.d.ts +39 -4
  82. package/dist/core/secrets.js +148 -40
  83. package/dist/core/workflow-event-recorder.d.ts +14 -0
  84. package/dist/core/workflow-event-recorder.js +120 -0
  85. package/dist/core/workflow-events.d.ts +82 -0
  86. package/dist/core/workflow-events.js +44 -0
  87. package/dist/core/workflow-run-events.d.ts +16 -0
  88. package/dist/core/workflow-run-events.js +40 -0
  89. package/dist/generated/prisma/browser.d.ts +58 -0
  90. package/dist/generated/prisma/client.d.ts +58 -0
  91. package/dist/generated/prisma/commonInputTypes.d.ts +150 -0
  92. package/dist/generated/prisma/enums.d.ts +27 -0
  93. package/dist/generated/prisma/enums.js +23 -0
  94. package/dist/generated/prisma/internal/class.d.ts +88 -0
  95. package/dist/generated/prisma/internal/class.js +4 -4
  96. package/dist/generated/prisma/internal/prismaNamespace.d.ts +772 -1
  97. package/dist/generated/prisma/internal/prismaNamespace.js +135 -4
  98. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +139 -0
  99. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +135 -4
  100. package/dist/generated/prisma/models/Agent.d.ts +360 -1
  101. package/dist/generated/prisma/models/CodingAgentProfile.d.ts +73 -1
  102. package/dist/generated/prisma/models/CodingRun.d.ts +205 -1
  103. package/dist/generated/prisma/models/DeferredReview.d.ts +78 -1
  104. package/dist/generated/prisma/models/NativeGatewayCall.d.ts +1675 -0
  105. package/dist/generated/prisma/models/NativeGatewayCall.js +1 -0
  106. package/dist/generated/prisma/models/NativeGatewaySession.d.ts +1517 -0
  107. package/dist/generated/prisma/models/NativeGatewaySession.js +1 -0
  108. package/dist/generated/prisma/models/NativeWarmWorker.d.ts +1296 -0
  109. package/dist/generated/prisma/models/NativeWarmWorker.js +1 -0
  110. package/dist/generated/prisma/models/NotificationChannel.d.ts +1543 -0
  111. package/dist/generated/prisma/models/NotificationChannel.js +1 -0
  112. package/dist/generated/prisma/models/NotificationDelivery.d.ts +1502 -0
  113. package/dist/generated/prisma/models/NotificationDelivery.js +1 -0
  114. package/dist/generated/prisma/models/NotificationThread.d.ts +1090 -0
  115. package/dist/generated/prisma/models/NotificationThread.js +1 -0
  116. package/dist/generated/prisma/models/Run.d.ts +826 -1
  117. package/dist/generated/prisma/models/RunHostCheck.d.ts +36 -1
  118. package/dist/generated/prisma/models/Secret.d.ts +37 -1
  119. package/dist/generated/prisma/models/SecretBrokerChange.d.ts +1101 -0
  120. package/dist/generated/prisma/models/SecretBrokerChange.js +1 -0
  121. package/dist/generated/prisma/models/WorkflowEvent.d.ts +1422 -0
  122. package/dist/generated/prisma/models/WorkflowEvent.js +1 -0
  123. package/dist/generated/prisma/models.d.ts +8 -0
  124. package/dist/help/build.js +4 -2
  125. package/dist/help/catalog.d.ts +1 -1
  126. package/dist/help/catalog.js +31 -6
  127. package/dist/help-index.json +1492 -113
  128. package/dist/import/create.js +17 -0
  129. package/dist/import/neutral-schema.d.ts +6 -2
  130. package/dist/import/neutral-schema.js +2 -0
  131. package/dist/mcp/auth/access.d.ts +1 -0
  132. package/dist/mcp/auth/ownership.d.ts +1 -1
  133. package/dist/mcp/auth/repo-authorization.js +14 -0
  134. package/dist/mcp/auth/resource-server.d.ts +2 -1
  135. package/dist/mcp/auth/resource-server.js +7 -2
  136. package/dist/mcp/auth/self-hosted/browser.d.ts +1 -1
  137. package/dist/mcp/auth/self-hosted/browser.js +19 -6
  138. package/dist/mcp/context.d.ts +6 -0
  139. package/dist/mcp/host-events/github-ingress.d.ts +23 -1
  140. package/dist/mcp/host-events/github-ingress.js +68 -0
  141. package/dist/mcp/index.d.ts +13 -0
  142. package/dist/mcp/index.js +59 -10
  143. package/dist/mcp/tools/agents.js +83 -12
  144. package/dist/mcp/tools/notification-channels.d.ts +2 -0
  145. package/dist/mcp/tools/notification-channels.js +293 -0
  146. package/dist/mcp/tools/power.d.ts +2 -0
  147. package/dist/mcp/tools/power.js +77 -0
  148. package/dist/mcp/tools/runs.d.ts +0 -6
  149. package/dist/mcp/tools/runs.js +7 -2
  150. package/dist/mcp/tools/secret-broker-compat.d.ts +12 -0
  151. package/dist/mcp/tools/secret-broker-compat.js +23 -0
  152. package/dist/mcp/tools/secret-elicitation-form.d.ts +22 -2
  153. package/dist/mcp/tools/secret-elicitation-form.js +200 -10
  154. package/dist/mcp/tools/secret-elicitation-server.js +8 -1
  155. package/dist/mcp/tools/secret-elicitation.d.ts +38 -3
  156. package/dist/mcp/tools/secret-elicitation.js +110 -12
  157. package/dist/mcp/tools/secrets.js +184 -7
  158. package/dist/mcp/tools/tools.d.ts +1 -1
  159. package/dist/mcp/tools/tools.js +22 -2
  160. package/dist/native-worker/composition.d.ts +23 -0
  161. package/dist/native-worker/composition.js +77 -0
  162. package/dist/native-worker/docker-isolation.d.ts +65 -0
  163. package/dist/native-worker/docker-isolation.js +183 -0
  164. package/dist/native-worker/docker-launcher.d.ts +74 -0
  165. package/dist/native-worker/docker-launcher.js +237 -0
  166. package/dist/native-worker/gateway-server.d.ts +39 -0
  167. package/dist/native-worker/gateway-server.js +315 -0
  168. package/dist/native-worker/gateway.d.ts +44 -0
  169. package/dist/native-worker/gateway.js +197 -0
  170. package/dist/native-worker/http-server.d.ts +22 -0
  171. package/dist/native-worker/http-server.js +109 -0
  172. package/dist/native-worker/http-transport.d.ts +17 -0
  173. package/dist/native-worker/http-transport.js +88 -0
  174. package/dist/native-worker/kubernetes-isolation.d.ts +90 -0
  175. package/dist/native-worker/kubernetes-isolation.js +218 -0
  176. package/dist/native-worker/kubernetes-launcher.d.ts +102 -0
  177. package/dist/native-worker/kubernetes-launcher.js +335 -0
  178. package/dist/native-worker/launch.d.ts +45 -0
  179. package/dist/native-worker/launch.js +44 -0
  180. package/dist/native-worker/ledger.d.ts +109 -0
  181. package/dist/native-worker/ledger.js +192 -0
  182. package/dist/native-worker/loopback.d.ts +12 -0
  183. package/dist/native-worker/loopback.js +49 -0
  184. package/dist/native-worker/main.d.ts +7 -0
  185. package/dist/native-worker/main.js +74 -0
  186. package/dist/native-worker/protocol.d.ts +744 -0
  187. package/dist/native-worker/protocol.js +200 -0
  188. package/dist/native-worker/sandbox-executor.d.ts +68 -0
  189. package/dist/native-worker/sandbox-executor.js +210 -0
  190. package/dist/native-worker/stdio.d.ts +29 -0
  191. package/dist/native-worker/stdio.js +188 -0
  192. package/dist/native-worker/warm-delivery.d.ts +16 -0
  193. package/dist/native-worker/warm-delivery.js +33 -0
  194. package/dist/native-worker/warm-pool-ledger.d.ts +39 -0
  195. package/dist/native-worker/warm-pool-ledger.js +73 -0
  196. package/dist/native-worker/warm-pool.d.ts +107 -0
  197. package/dist/native-worker/warm-pool.js +283 -0
  198. package/dist/native-worker/worker.d.ts +17 -0
  199. package/dist/native-worker/worker.js +115 -0
  200. package/dist/providers/auth/authorization-server.d.ts +3 -0
  201. package/dist/providers/auth/index.js +2 -0
  202. package/dist/providers/auth/self-hosted.d.ts +13 -1
  203. package/dist/providers/auth/self-hosted.js +54 -4
  204. package/dist/providers/chat/fake.d.ts +46 -0
  205. package/dist/providers/chat/fake.js +39 -0
  206. package/dist/providers/chat/index.d.ts +4 -0
  207. package/dist/providers/chat/index.js +8 -0
  208. package/dist/providers/chat/slack.d.ts +37 -0
  209. package/dist/providers/chat/slack.js +105 -0
  210. package/dist/providers/chat/types.d.ts +42 -0
  211. package/dist/providers/chat/types.js +19 -0
  212. package/dist/providers/coding-proxy/mock-upstream.d.ts +33 -0
  213. package/dist/providers/coding-proxy/mock-upstream.js +116 -0
  214. package/dist/providers/coding-proxy/registry/prisma-store.d.ts +3 -0
  215. package/dist/providers/coding-proxy/registry/prisma-store.js +17 -0
  216. package/dist/providers/coding-proxy/registry/service.d.ts +4 -0
  217. package/dist/providers/coding-proxy/registry/service.js +20 -3
  218. package/dist/providers/coding-proxy/registry/store.d.ts +18 -1
  219. package/dist/providers/coding-proxy/registry/store.js +33 -0
  220. package/dist/providers/coding-proxy/runtime.js +12 -1
  221. package/dist/providers/coding-proxy/types.d.ts +2 -0
  222. package/dist/providers/engine/types.d.ts +19 -0
  223. package/dist/providers/engine/types.js +22 -0
  224. package/dist/providers/executor/composition.d.ts +24 -1
  225. package/dist/providers/executor/composition.js +39 -6
  226. package/dist/providers/executor/container.d.ts +24 -1
  227. package/dist/providers/executor/container.js +101 -11
  228. package/dist/providers/executor/dbos.d.ts +42 -0
  229. package/dist/providers/executor/dbos.js +118 -12
  230. package/dist/providers/executor/deferred.d.ts +56 -0
  231. package/dist/providers/executor/deferred.js +119 -0
  232. package/dist/providers/executor/routing.d.ts +37 -10
  233. package/dist/providers/executor/routing.js +73 -32
  234. package/dist/providers/executor/types.d.ts +12 -0
  235. package/dist/providers/jobs/docker.js +3 -3
  236. package/dist/providers/jobs/fake-kubernetes-api.d.ts +21 -2
  237. package/dist/providers/jobs/fake-kubernetes-api.js +42 -1
  238. package/dist/providers/jobs/kubernetes-api.d.ts +17 -1
  239. package/dist/providers/jobs/kubernetes-api.js +7 -0
  240. package/dist/providers/jobs/kubernetes-client.d.ts +10 -1
  241. package/dist/providers/jobs/kubernetes-client.js +52 -3
  242. package/dist/providers/jobs/kubernetes-dry-run-fixture.d.ts +6 -1
  243. package/dist/providers/jobs/kubernetes-dry-run-fixture.js +6 -3
  244. package/dist/providers/jobs/kubernetes-isolation.d.ts +16 -1
  245. package/dist/providers/jobs/kubernetes-isolation.js +58 -5
  246. package/dist/providers/jobs/kubernetes-platform.d.ts +4 -1
  247. package/dist/providers/jobs/kubernetes-platform.js +38 -1
  248. package/dist/providers/jobs/kubernetes-preflight.d.ts +2 -1
  249. package/dist/providers/jobs/kubernetes-preflight.js +4 -2
  250. package/dist/providers/jobs/kubernetes.d.ts +56 -7
  251. package/dist/providers/jobs/kubernetes.js +117 -36
  252. package/dist/providers/jobs/metadata-probes.d.ts +11 -0
  253. package/dist/providers/jobs/metadata-probes.js +13 -0
  254. package/dist/providers/jobs/types.d.ts +9 -0
  255. package/dist/providers/llm/openai.js +0 -1
  256. package/dist/providers/review-host/github.d.ts +11 -1
  257. package/dist/providers/review-host/github.js +50 -0
  258. package/dist/providers/review-host/types.d.ts +23 -0
  259. package/dist/providers/vcs/github.d.ts +32 -6
  260. package/dist/providers/vcs/github.js +74 -16
  261. package/dist/quickstart/coding-db.js +14 -2
  262. package/dist/quickstart/coding-doctor.d.ts +3 -0
  263. package/dist/quickstart/coding-doctor.js +3 -0
  264. package/dist/quickstart/coding-images.d.ts +9 -0
  265. package/dist/quickstart/coding-images.js +39 -0
  266. package/dist/quickstart/coding-seed.d.ts +20 -1
  267. package/dist/quickstart/coding-seed.js +96 -7
  268. package/dist/quickstart/coding.d.ts +2 -0
  269. package/dist/quickstart/coding.js +75 -3
  270. package/dist/quickstart/config.d.ts +2 -0
  271. package/dist/quickstart/config.js +4 -0
  272. package/dist/quickstart/images.d.ts +13 -0
  273. package/dist/quickstart/images.js +80 -12
  274. package/dist/quickstart/index.d.ts +0 -2
  275. package/dist/quickstart/index.js +10 -14
  276. package/dist/quickstart/manifests.d.ts +56 -0
  277. package/dist/quickstart/manifests.js +523 -0
  278. package/dist/quickstart/python-detect.d.ts +10 -0
  279. package/dist/quickstart/python-detect.js +32 -0
  280. package/dist/quickstart/repo-packages.d.ts +10 -0
  281. package/dist/quickstart/repo-packages.js +132 -0
  282. package/dist/quickstart/reviewer-prompt.d.ts +12 -0
  283. package/dist/quickstart/reviewer-prompt.js +84 -0
  284. package/dist/quickstart/scenarios.d.ts +19 -0
  285. package/dist/quickstart/scenarios.js +28 -0
  286. package/dist/quickstart/sync-reviewer-prompt.d.ts +1 -0
  287. package/dist/quickstart/sync-reviewer-prompt.js +10 -0
  288. package/dist/quickstart-images.json +1 -1
  289. package/dist/sandbox/brokered-fetch.d.ts +23 -0
  290. package/dist/sandbox/brokered-fetch.js +37 -0
  291. package/dist/sandbox/host-functions.d.ts +34 -0
  292. package/dist/sandbox/host-functions.js +144 -80
  293. package/dist/sandbox/prelude.js +7 -1
  294. package/dist/sandbox/run-in-sandbox.d.ts +19 -0
  295. package/dist/sandbox/run-in-sandbox.js +28 -10
  296. package/dist/sandbox/safe-fetch.d.ts +2 -0
  297. package/dist/sandbox/safe-fetch.js +3 -1
  298. package/dist/sandbox/secret-broker-sigv4.d.ts +2 -0
  299. package/dist/sandbox/secret-broker-sigv4.js +49 -0
  300. package/dist/sandbox/secret-broker.d.ts +34 -0
  301. package/dist/sandbox/secret-broker.js +162 -0
  302. package/dist/sandbox/user-tool.d.ts +14 -0
  303. package/dist/sandbox/user-tool.js +32 -0
  304. package/dist/serve.js +18 -0
  305. package/dist/viewer/api-schema.d.ts +214 -18
  306. package/dist/viewer/api-schema.js +22 -0
  307. package/dist/viewer/build-schemas.js +4 -1
  308. package/dist/viewer/event-bus.d.ts +6 -0
  309. package/dist/viewer/event-bus.js +16 -7
  310. package/dist/viewer/graph.d.ts +5 -2
  311. package/dist/viewer/graph.js +7 -2
  312. package/dist/viewer/http.d.ts +0 -1
  313. package/dist/viewer/http.js +2 -2
  314. package/dist/viewer/infra.js +25 -2
  315. package/dist/viewer/limits.d.ts +4 -0
  316. package/dist/viewer/limits.js +4 -0
  317. package/dist/viewer/openapi.d.ts +15 -0
  318. package/dist/viewer/openapi.js +172 -0
  319. package/docs/README.md +7 -0
  320. package/docs/agent-recipes.md +57 -8
  321. package/docs/architecture-runtime.md +16 -1
  322. package/docs/code-review-agents.md +139 -5
  323. package/docs/coding-agent-setup.md +127 -2
  324. package/docs/coding-packages.md +105 -5
  325. package/docs/coding-services.md +3 -1
  326. package/docs/coding-worker-byo-images.md +239 -2
  327. package/docs/coding-worker-isolation.md +88 -23
  328. package/docs/getting-started-gke.md +225 -9
  329. package/docs/getting-started-identity-provider.md +21 -10
  330. package/docs/getting-started.md +140 -11
  331. package/docs/jira-agents.md +5 -1
  332. package/docs/knowledge.md +11 -0
  333. package/docs/native-sandbox.md +635 -0
  334. package/docs/release-verification.md +9 -0
  335. package/docs/security-deployment.md +113 -12
  336. package/docs/slack-notifications.md +252 -0
  337. package/docs/tool-secrets.md +252 -0
  338. package/docs/viewer-api.md +46 -5
  339. package/docs/viewer-api.openapi.yml +1404 -0
  340. package/help/admin-viewer.md +6 -2
  341. package/help/agent-recipes.md +27 -0
  342. package/help/architecture-agent.md +136 -0
  343. package/help/brokered-secrets.md +79 -0
  344. package/help/build-claude-code-image.md +131 -0
  345. package/help/build-worker-image.md +195 -0
  346. package/help/code-review-agents.md +68 -6
  347. package/help/coding-packages.md +31 -2
  348. package/help/creating-agents.md +14 -0
  349. package/help/deploy-gke.md +37 -6
  350. package/help/deployment-targets.md +24 -13
  351. package/help/errors/coding-provider-not-configured.md +2 -2
  352. package/help/errors/database-auth-invalid.md +28 -0
  353. package/help/errors/github-account-not-allowed.md +25 -0
  354. package/help/errors/low-power-disabled.md +29 -0
  355. package/help/errors/low-power-scale-forbidden.md +35 -0
  356. package/help/errors/low-power-wake-timeout.md +30 -0
  357. package/help/errors/mobile-disabled.md +31 -0
  358. package/help/errors/native-sandbox-capacity.md +22 -0
  359. package/help/errors/native-sandbox-deadline-exceeded.md +19 -0
  360. package/help/errors/native-sandbox-docker-failed.md +20 -0
  361. package/help/errors/native-sandbox-gateway-unavailable.md +21 -0
  362. package/help/errors/native-sandbox-image-not-pinned.md +19 -0
  363. package/help/errors/native-sandbox-isolation-mismatch.md +20 -0
  364. package/help/errors/native-sandbox-network-unenforced.md +22 -0
  365. package/help/errors/native-sandbox-requires-catalog.md +31 -0
  366. package/help/errors/native-sandbox-unavailable.md +19 -0
  367. package/help/errors/native-sandbox-warm-delivery-failed.md +21 -0
  368. package/help/errors/native-sandbox-worker-exited.md +20 -0
  369. package/help/errors/native-sandbox-worker-lost.md +20 -0
  370. package/help/errors/native-sandbox-worker-unready.md +22 -0
  371. package/help/errors/secret-broker-body-invalid.md +26 -0
  372. package/help/errors/secret-broker-changed.md +20 -0
  373. package/help/errors/secret-broker-config-invalid.md +30 -0
  374. package/help/errors/secret-broker-conflict.md +27 -0
  375. package/help/errors/secret-broker-destination-denied.md +28 -0
  376. package/help/errors/secret-broker-value-invalid.md +28 -0
  377. package/help/errors/secret-brokered.md +24 -0
  378. package/help/errors/secret-not-brokered.md +25 -0
  379. package/help/errors/slack-auth-failed.md +48 -0
  380. package/help/errors/slack-channel-unreachable.md +39 -0
  381. package/help/errors/slack-not-configured.md +33 -0
  382. package/help/getting-started.md +18 -0
  383. package/help/github.md +18 -1
  384. package/help/identity-and-access.md +5 -1
  385. package/help/local-repositories.md +35 -5
  386. package/help/low-power-mode.md +125 -0
  387. package/help/merge-order-check.md +117 -0
  388. package/help/mobile-app.md +54 -0
  389. package/help/native-sandbox.md +136 -0
  390. package/help/observability.md +8 -0
  391. package/help/related-pull-requests.md +70 -9
  392. package/help/repo-instructions-and-skills.md +91 -0
  393. package/help/review-fix-rounds.md +10 -0
  394. package/help/slack-notifications.md +62 -0
  395. package/help/troubleshooting/coding-workers.md +21 -0
  396. package/package.json +13 -5
  397. package/prisma/migrations/20261009000003_native_execution_mode/migration.sql +12 -0
  398. package/prisma/migrations/20261009000004_native_gateway_ledger/migration.sql +65 -0
  399. package/prisma/migrations/20261009000005_native_gateway_call_child_agent/migration.sql +5 -0
  400. package/prisma/migrations/20261009000006_run_deferred_start_stop/migration.sql +14 -0
  401. package/prisma/migrations/20261009000007_native_gateway_network_ready/migration.sql +5 -0
  402. package/prisma/migrations/20261010000001_workflow_notifications/migration.sql +99 -0
  403. package/prisma/migrations/20261011000001_native_gateway_session_status_index/migration.sql +2 -0
  404. package/prisma/migrations/20261012000001_native_warm_worker/migration.sql +32 -0
  405. package/prisma/migrations/20261013000001_coding_run_merge_order/migration.sql +2 -0
  406. package/prisma/migrations/20261013000001_secret_broker/migration.sql +17 -0
  407. package/prisma/migrations/20261013000002_deferred_review_request/migration.sql +4 -0
  408. package/prisma/migrations/20261014000000_repo_skills/migration.sql +15 -0
  409. package/prisma/migrations/20261015000001_coding_run_merge_order_index/migration.sql +2 -0
  410. package/prisma/migrations/20261015000002_no_change_rereview/migration.sql +2 -0
  411. package/prisma/schema.prisma +362 -91
@@ -0,0 +1,82 @@
1
+ export declare const WORKFLOW_EVENT_KINDS: readonly ["issue_picked_up", "run_failed", "pr_opened", "review_posted", "review_fix", "pr_closed"];
2
+ export type WorkflowEventKind = (typeof WORKFLOW_EVENT_KINDS)[number];
3
+ /** Template inputs per kind. Every string here may be shown in Slack (escaped). */
4
+ export type WorkflowPayload = {
5
+ kind: "issue_picked_up";
6
+ agentName: string;
7
+ trigger: string;
8
+ } | {
9
+ kind: "run_failed";
10
+ agentName: string;
11
+ status: "failed" | "budget_exhausted" | "cancelled" | "lost" | "refused";
12
+ reason: string | null;
13
+ } | {
14
+ kind: "pr_opened";
15
+ prLabel: string;
16
+ prUrl: string;
17
+ movedTo: string | null;
18
+ } | {
19
+ kind: "review_posted";
20
+ agentName: string;
21
+ verdict: "APPROVE" | "CHANGES_REQUESTED" | "COMMENT";
22
+ prLabel: string;
23
+ prUrl: string | null;
24
+ ciPending: boolean;
25
+ } | {
26
+ kind: "review_fix";
27
+ prLabel: string;
28
+ round: number;
29
+ maxRounds: number;
30
+ state: "started" | "capped";
31
+ } | {
32
+ kind: "pr_closed";
33
+ prLabel: string;
34
+ prUrl: string;
35
+ merged: boolean;
36
+ movedTo: string | null;
37
+ };
38
+ /** What a thread's parent message shows about its subject. */
39
+ export interface ThreadSubject {
40
+ /** "PAY-241" or "org/repo#212" or "run abc123". */
41
+ label: string;
42
+ title: string | null;
43
+ url: string | null;
44
+ }
45
+ export declare const dedupeKeys: {
46
+ issuePickedUp: (runId: string) => string;
47
+ runFailed: (runId: string) => string;
48
+ prOpened: (codeProvider: string, repository: string, n: number) => string;
49
+ reviewPosted: (runId: string) => string;
50
+ reviewFix: (repository: string, n: number, round: number, state: "started" | "capped") => string;
51
+ prClosed: (codeProvider: string, repository: string, n: number) => string;
52
+ };
53
+ export declare const threadKeys: {
54
+ issue: (provider: string, key: string) => string;
55
+ pr: (codeProvider: string, repository: string, n: number) => string;
56
+ run: (runId: string) => string;
57
+ };
58
+ /** First line of an error, at most 200 characters; null for empty. */
59
+ export declare function shortReason(error: string | null | undefined): string | null;
60
+ export interface WorkflowEventInput {
61
+ dedupeKey: string;
62
+ payload: WorkflowPayload;
63
+ /** The run the event is about (its attribution names the work item). */
64
+ runId?: string;
65
+ /** The agent the event is about (agent links match on it). */
66
+ agentId?: string;
67
+ /** Known work item; otherwise resolved from runId's RunAttribution, then the PR's IssuePullRequest. */
68
+ workItem?: {
69
+ provider: string;
70
+ key: string;
71
+ };
72
+ pullRequest?: {
73
+ codeProvider: string;
74
+ repository: string;
75
+ number: number;
76
+ };
77
+ }
78
+ export type WorkflowEventSink = (input: WorkflowEventInput) => Promise<void>;
79
+ /** Installed once per process by startNotifications; null uninstalls (tests). */
80
+ export declare function setWorkflowEventSink(next: WorkflowEventSink | null): void;
81
+ /** Never throws; a no-op until a sink is installed. */
82
+ export declare function emitWorkflowEvent(input: WorkflowEventInput): Promise<void>;
@@ -0,0 +1,44 @@
1
+ import { logger } from "./logger.js";
2
+ export const WORKFLOW_EVENT_KINDS = [
3
+ "issue_picked_up",
4
+ "run_failed",
5
+ "pr_opened",
6
+ "review_posted",
7
+ "review_fix",
8
+ "pr_closed",
9
+ ];
10
+ export const dedupeKeys = {
11
+ issuePickedUp: (runId) => `issue_picked_up:${runId}`,
12
+ runFailed: (runId) => `run_failed:${runId}`,
13
+ prOpened: (codeProvider, repository, n) => `pr_opened:${codeProvider}:${repository}#${n}`,
14
+ reviewPosted: (runId) => `review_posted:${runId}`,
15
+ reviewFix: (repository, n, round, state) => `review_fix:${repository}#${n}:${round}:${state}`,
16
+ prClosed: (codeProvider, repository, n) => `pr_closed:${codeProvider}:${repository}#${n}`,
17
+ };
18
+ export const threadKeys = {
19
+ issue: (provider, key) => `issue:${provider}:${key}`,
20
+ pr: (codeProvider, repository, n) => `pr:${codeProvider}:${repository}#${n}`,
21
+ run: (runId) => `run:${runId}`,
22
+ };
23
+ /** First line of an error, at most 200 characters; null for empty. */
24
+ export function shortReason(error) {
25
+ const first = (error ?? "").split("\n", 1)[0].trim();
26
+ return first ? first.slice(0, 200) : null;
27
+ }
28
+ const log = logger.child({ module: "workflow-events" });
29
+ let sink = null;
30
+ /** Installed once per process by startNotifications; null uninstalls (tests). */
31
+ export function setWorkflowEventSink(next) {
32
+ sink = next;
33
+ }
34
+ /** Never throws; a no-op until a sink is installed. */
35
+ export async function emitWorkflowEvent(input) {
36
+ if (!sink)
37
+ return;
38
+ try {
39
+ await sink(input);
40
+ }
41
+ catch (err) {
42
+ log.warn({ err, dedupeKey: input.dedupeKey }, "workflow event record failed");
43
+ }
44
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Workflow notifications a run's finalizer emits: run_failed for a top-level
3
+ * run that did not succeed (children are summarized by their parent), and
4
+ * review_posted when the run published a verdict on its own check. Called
5
+ * only by the finalizer that made the run terminal. Never throws.
6
+ */
7
+ import type { PrismaClient } from "#prisma";
8
+ export type RunEventsDb = Pick<PrismaClient, "agent" | "runHostCheck">;
9
+ /** Emits run_failed (top-level, non-success) and review_posted (verdict published). Never throws. */
10
+ export declare function emitRunFinishedEvents(db: RunEventsDb, run: {
11
+ id: string;
12
+ agentId: string;
13
+ status: string;
14
+ error: string | null;
15
+ parentRunId: string | null;
16
+ }): Promise<void>;
@@ -0,0 +1,40 @@
1
+ import { logger } from "./logger.js";
2
+ import { dedupeKeys, emitWorkflowEvent, shortReason } from "./workflow-events.js";
3
+ const log = logger.child({ module: "workflow-run-events" });
4
+ const FAILED = new Set(["failed", "budget_exhausted", "cancelled", "lost", "refused"]);
5
+ const VERDICTS = new Set(["APPROVE", "CHANGES_REQUESTED", "COMMENT"]);
6
+ /** Emits run_failed (top-level, non-success) and review_posted (verdict published). Never throws. */
7
+ export async function emitRunFinishedEvents(db, run) {
8
+ try {
9
+ const agentName = (await db.agent.findUnique({ where: { id: run.agentId }, select: { name: true } }))?.name ?? run.agentId;
10
+ if (!run.parentRunId && FAILED.has(run.status)) {
11
+ await emitWorkflowEvent({
12
+ dedupeKey: dedupeKeys.runFailed(run.id),
13
+ runId: run.id,
14
+ agentId: run.agentId,
15
+ payload: { kind: "run_failed", agentName, status: run.status, reason: shortReason(run.error) },
16
+ });
17
+ }
18
+ const check = await db.runHostCheck.findUnique({ where: { runId: run.id } });
19
+ if (check?.verdict && VERDICTS.has(check.verdict) && check.prNumber !== null) {
20
+ const prLabel = `${check.repository}#${check.prNumber}`;
21
+ await emitWorkflowEvent({
22
+ dedupeKey: dedupeKeys.reviewPosted(run.id),
23
+ runId: run.id,
24
+ agentId: run.agentId,
25
+ pullRequest: { codeProvider: check.provider, repository: check.repository, number: check.prNumber },
26
+ payload: {
27
+ kind: "review_posted",
28
+ agentName,
29
+ verdict: check.verdict,
30
+ prLabel,
31
+ prUrl: check.provider === "github" ? `https://github.com/${check.repository}/pull/${check.prNumber}` : null,
32
+ ciPending: check.ciPendingAtReview === true,
33
+ },
34
+ });
35
+ }
36
+ }
37
+ catch (err) {
38
+ log.warn({ err, runId: run.id }, "could not emit run workflow events");
39
+ }
40
+ }
@@ -134,6 +134,34 @@ export type CodingService = Prisma.CodingServiceModel;
134
134
  * never probe output.
135
135
  */
136
136
  export type CodingRunServiceStatus = Prisma.CodingRunServiceStatusModel;
137
+ /**
138
+ * Model NativeGatewaySession
139
+ * The trusted gateway's record of one sandbox-mode native run (native
140
+ * sandbox phase 3): the worker authenticates with a capability whose hash is
141
+ * stored here (the raw token is never persisted), and any control-plane
142
+ * replica can serve it from this row. `snapshot` is what the run loaded --
143
+ * the worker's input plus trusted-only capabilities and links -- and never
144
+ * holds a secret value.
145
+ */
146
+ export type NativeGatewaySession = Prisma.NativeGatewaySessionModel;
147
+ /**
148
+ * Model NativeWarmWorker
149
+ * One worker of the native sandbox warm pool (native sandbox phase 6): an
150
+ * isolated worker started before any run exists, holding no run data or
151
+ * capability. A run claims an idle one with a compare-and-swap on this row
152
+ * (`runId` is set at the claim), its input is delivered only after, and the
153
+ * worker is destroyed after that one run. The row is inserted before the
154
+ * worker is created, so a worker with no row is an orphan.
155
+ */
156
+ export type NativeWarmWorker = Prisma.NativeWarmWorkerModel;
157
+ /**
158
+ * Model NativeGatewayCall
159
+ * One worker call through the gateway, keyed by its callId: model calls are
160
+ * reserved before the provider is called and settled after; side-effecting
161
+ * built-in and bridge calls keep their result so a retried callId replays it;
162
+ * a delegation records the child run it started.
163
+ */
164
+ export type NativeGatewayCall = Prisma.NativeGatewayCallModel;
137
165
  /**
138
166
  * Model CodingProxySession
139
167
  * Trusted-boundary state for one coding run. Only a capability digest and an
@@ -218,6 +246,12 @@ export type Task = Prisma.TaskModel;
218
246
  * produces plaintext, and only at point-of-use inside the sandbox.
219
247
  */
220
248
  export type Secret = Prisma.SecretModel;
249
+ /**
250
+ * Model SecretBrokerChange
251
+ * Audit trail of every change to a secret's broker config. No FK to Secret,
252
+ * so the history survives deleting the secret. Never holds a value.
253
+ */
254
+ export type SecretBrokerChange = Prisma.SecretBrokerChangeModel;
221
255
  /**
222
256
  * Model AgentSecret
223
257
  * Phase 4: attaches a secret to an agent, addressed at sandbox point-of-use
@@ -415,3 +449,27 @@ export type LocalPullRequest = Prisma.LocalPullRequestModel;
415
449
  * A review (or a plain comment, verdict COMMENT) published on a LocalPullRequest.
416
450
  */
417
451
  export type LocalReview = Prisma.LocalReviewModel;
452
+ /**
453
+ * Model NotificationChannel
454
+ * A Slack (chat) channel that receives workflow notifications for a Jira
455
+ * project or for one agent. Exactly one subject: (issueProvider, projectKey)
456
+ * or agentId (enforced in code and by a CHECK constraint). Admin-approved.
457
+ * See docs/slack-notifications.md.
458
+ */
459
+ export type NotificationChannel = Prisma.NotificationChannelModel;
460
+ /**
461
+ * Model WorkflowEvent
462
+ * One workflow fact (a card picked up, a PR opened, ...). Written only when
463
+ * at least one channel matches. No FKs to Run/Agent: audit-style rows.
464
+ */
465
+ export type WorkflowEvent = Prisma.WorkflowEventModel;
466
+ /**
467
+ * Model NotificationDelivery
468
+ * One event's delivery to one channel (the outbox row the dispatcher works).
469
+ */
470
+ export type NotificationDelivery = Prisma.NotificationDeliveryModel;
471
+ /**
472
+ * Model NotificationThread
473
+ * The parent message of a work item's (or PR's) thread in one channel.
474
+ */
475
+ export type NotificationThread = Prisma.NotificationThreadModel;
@@ -153,6 +153,34 @@ export type CodingService = Prisma.CodingServiceModel;
153
153
  * never probe output.
154
154
  */
155
155
  export type CodingRunServiceStatus = Prisma.CodingRunServiceStatusModel;
156
+ /**
157
+ * Model NativeGatewaySession
158
+ * The trusted gateway's record of one sandbox-mode native run (native
159
+ * sandbox phase 3): the worker authenticates with a capability whose hash is
160
+ * stored here (the raw token is never persisted), and any control-plane
161
+ * replica can serve it from this row. `snapshot` is what the run loaded --
162
+ * the worker's input plus trusted-only capabilities and links -- and never
163
+ * holds a secret value.
164
+ */
165
+ export type NativeGatewaySession = Prisma.NativeGatewaySessionModel;
166
+ /**
167
+ * Model NativeWarmWorker
168
+ * One worker of the native sandbox warm pool (native sandbox phase 6): an
169
+ * isolated worker started before any run exists, holding no run data or
170
+ * capability. A run claims an idle one with a compare-and-swap on this row
171
+ * (`runId` is set at the claim), its input is delivered only after, and the
172
+ * worker is destroyed after that one run. The row is inserted before the
173
+ * worker is created, so a worker with no row is an orphan.
174
+ */
175
+ export type NativeWarmWorker = Prisma.NativeWarmWorkerModel;
176
+ /**
177
+ * Model NativeGatewayCall
178
+ * One worker call through the gateway, keyed by its callId: model calls are
179
+ * reserved before the provider is called and settled after; side-effecting
180
+ * built-in and bridge calls keep their result so a retried callId replays it;
181
+ * a delegation records the child run it started.
182
+ */
183
+ export type NativeGatewayCall = Prisma.NativeGatewayCallModel;
156
184
  /**
157
185
  * Model CodingProxySession
158
186
  * Trusted-boundary state for one coding run. Only a capability digest and an
@@ -237,6 +265,12 @@ export type Task = Prisma.TaskModel;
237
265
  * produces plaintext, and only at point-of-use inside the sandbox.
238
266
  */
239
267
  export type Secret = Prisma.SecretModel;
268
+ /**
269
+ * Model SecretBrokerChange
270
+ * Audit trail of every change to a secret's broker config. No FK to Secret,
271
+ * so the history survives deleting the secret. Never holds a value.
272
+ */
273
+ export type SecretBrokerChange = Prisma.SecretBrokerChangeModel;
240
274
  /**
241
275
  * Model AgentSecret
242
276
  * Phase 4: attaches a secret to an agent, addressed at sandbox point-of-use
@@ -434,3 +468,27 @@ export type LocalPullRequest = Prisma.LocalPullRequestModel;
434
468
  * A review (or a plain comment, verdict COMMENT) published on a LocalPullRequest.
435
469
  */
436
470
  export type LocalReview = Prisma.LocalReviewModel;
471
+ /**
472
+ * Model NotificationChannel
473
+ * A Slack (chat) channel that receives workflow notifications for a Jira
474
+ * project or for one agent. Exactly one subject: (issueProvider, projectKey)
475
+ * or agentId (enforced in code and by a CHECK constraint). Admin-approved.
476
+ * See docs/slack-notifications.md.
477
+ */
478
+ export type NotificationChannel = Prisma.NotificationChannelModel;
479
+ /**
480
+ * Model WorkflowEvent
481
+ * One workflow fact (a card picked up, a PR opened, ...). Written only when
482
+ * at least one channel matches. No FKs to Run/Agent: audit-style rows.
483
+ */
484
+ export type WorkflowEvent = Prisma.WorkflowEventModel;
485
+ /**
486
+ * Model NotificationDelivery
487
+ * One event's delivery to one channel (the outbox row the dispatcher works).
488
+ */
489
+ export type NotificationDelivery = Prisma.NotificationDeliveryModel;
490
+ /**
491
+ * Model NotificationThread
492
+ * The parent message of a work item's (or PR's) thread in one channel.
493
+ */
494
+ export type NotificationThread = Prisma.NotificationThreadModel;
@@ -79,6 +79,12 @@ export type IntFilter<$PrismaModel = never> = {
79
79
  gte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
80
80
  not?: Prisma.NestedIntFilter<$PrismaModel> | number;
81
81
  };
82
+ export type EnumNativeExecutionModeFilter<$PrismaModel = never> = {
83
+ equals?: $Enums.NativeExecutionMode | Prisma.EnumNativeExecutionModeFieldRefInput<$PrismaModel>;
84
+ in?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel>;
85
+ notIn?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel>;
86
+ not?: Prisma.NestedEnumNativeExecutionModeFilter<$PrismaModel> | $Enums.NativeExecutionMode;
87
+ };
82
88
  export type SortOrderInput = {
83
89
  sort: Prisma.SortOrder;
84
90
  nulls?: Prisma.NullsOrder;
@@ -189,6 +195,15 @@ export type IntWithAggregatesFilter<$PrismaModel = never> = {
189
195
  _min?: Prisma.NestedIntFilter<$PrismaModel>;
190
196
  _max?: Prisma.NestedIntFilter<$PrismaModel>;
191
197
  };
198
+ export type EnumNativeExecutionModeWithAggregatesFilter<$PrismaModel = never> = {
199
+ equals?: $Enums.NativeExecutionMode | Prisma.EnumNativeExecutionModeFieldRefInput<$PrismaModel>;
200
+ in?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel>;
201
+ notIn?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel>;
202
+ not?: Prisma.NestedEnumNativeExecutionModeWithAggregatesFilter<$PrismaModel> | $Enums.NativeExecutionMode;
203
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
204
+ _min?: Prisma.NestedEnumNativeExecutionModeFilter<$PrismaModel>;
205
+ _max?: Prisma.NestedEnumNativeExecutionModeFilter<$PrismaModel>;
206
+ };
192
207
  export type DecimalNullableFilter<$PrismaModel = never> = {
193
208
  equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> | null;
194
209
  in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] | Prisma.ListDecimalFieldRefInput<$PrismaModel> | null;
@@ -280,6 +295,12 @@ export type JsonNullableFilterBase<$PrismaModel = never> = {
280
295
  gte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>;
281
296
  not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter;
282
297
  };
298
+ export type EnumNativeExecutionModeNullableFilter<$PrismaModel = never> = {
299
+ equals?: $Enums.NativeExecutionMode | Prisma.EnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
300
+ in?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
301
+ notIn?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
302
+ not?: Prisma.NestedEnumNativeExecutionModeNullableFilter<$PrismaModel> | $Enums.NativeExecutionMode | null;
303
+ };
283
304
  export type EnumRunStatusWithAggregatesFilter<$PrismaModel = never> = {
284
305
  equals?: $Enums.RunStatus | Prisma.EnumRunStatusFieldRefInput<$PrismaModel>;
285
306
  in?: $Enums.RunStatus[] | Prisma.ListEnumRunStatusFieldRefInput<$PrismaModel>;
@@ -318,6 +339,15 @@ export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = {
318
339
  _min?: Prisma.NestedJsonNullableFilter<$PrismaModel>;
319
340
  _max?: Prisma.NestedJsonNullableFilter<$PrismaModel>;
320
341
  };
342
+ export type EnumNativeExecutionModeNullableWithAggregatesFilter<$PrismaModel = never> = {
343
+ equals?: $Enums.NativeExecutionMode | Prisma.EnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
344
+ in?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
345
+ notIn?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
346
+ not?: Prisma.NestedEnumNativeExecutionModeNullableWithAggregatesFilter<$PrismaModel> | $Enums.NativeExecutionMode | null;
347
+ _count?: Prisma.NestedIntNullableFilter<$PrismaModel>;
348
+ _min?: Prisma.NestedEnumNativeExecutionModeNullableFilter<$PrismaModel>;
349
+ _max?: Prisma.NestedEnumNativeExecutionModeNullableFilter<$PrismaModel>;
350
+ };
321
351
  export type IntNullableFilter<$PrismaModel = never> = {
322
352
  equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null;
323
353
  in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null;
@@ -358,6 +388,51 @@ export type EnumCodingServiceStateWithAggregatesFilter<$PrismaModel = never> = {
358
388
  _min?: Prisma.NestedEnumCodingServiceStateFilter<$PrismaModel>;
359
389
  _max?: Prisma.NestedEnumCodingServiceStateFilter<$PrismaModel>;
360
390
  };
391
+ export type EnumNativeGatewaySessionStatusFilter<$PrismaModel = never> = {
392
+ equals?: $Enums.NativeGatewaySessionStatus | Prisma.EnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
393
+ in?: $Enums.NativeGatewaySessionStatus[] | Prisma.ListEnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
394
+ notIn?: $Enums.NativeGatewaySessionStatus[] | Prisma.ListEnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
395
+ not?: Prisma.NestedEnumNativeGatewaySessionStatusFilter<$PrismaModel> | $Enums.NativeGatewaySessionStatus;
396
+ };
397
+ export type EnumNativeGatewaySessionStatusWithAggregatesFilter<$PrismaModel = never> = {
398
+ equals?: $Enums.NativeGatewaySessionStatus | Prisma.EnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
399
+ in?: $Enums.NativeGatewaySessionStatus[] | Prisma.ListEnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
400
+ notIn?: $Enums.NativeGatewaySessionStatus[] | Prisma.ListEnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
401
+ not?: Prisma.NestedEnumNativeGatewaySessionStatusWithAggregatesFilter<$PrismaModel> | $Enums.NativeGatewaySessionStatus;
402
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
403
+ _min?: Prisma.NestedEnumNativeGatewaySessionStatusFilter<$PrismaModel>;
404
+ _max?: Prisma.NestedEnumNativeGatewaySessionStatusFilter<$PrismaModel>;
405
+ };
406
+ export type EnumNativeWarmWorkerStatusFilter<$PrismaModel = never> = {
407
+ equals?: $Enums.NativeWarmWorkerStatus | Prisma.EnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
408
+ in?: $Enums.NativeWarmWorkerStatus[] | Prisma.ListEnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
409
+ notIn?: $Enums.NativeWarmWorkerStatus[] | Prisma.ListEnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
410
+ not?: Prisma.NestedEnumNativeWarmWorkerStatusFilter<$PrismaModel> | $Enums.NativeWarmWorkerStatus;
411
+ };
412
+ export type EnumNativeWarmWorkerStatusWithAggregatesFilter<$PrismaModel = never> = {
413
+ equals?: $Enums.NativeWarmWorkerStatus | Prisma.EnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
414
+ in?: $Enums.NativeWarmWorkerStatus[] | Prisma.ListEnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
415
+ notIn?: $Enums.NativeWarmWorkerStatus[] | Prisma.ListEnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
416
+ not?: Prisma.NestedEnumNativeWarmWorkerStatusWithAggregatesFilter<$PrismaModel> | $Enums.NativeWarmWorkerStatus;
417
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
418
+ _min?: Prisma.NestedEnumNativeWarmWorkerStatusFilter<$PrismaModel>;
419
+ _max?: Prisma.NestedEnumNativeWarmWorkerStatusFilter<$PrismaModel>;
420
+ };
421
+ export type EnumNativeGatewayCallStatusFilter<$PrismaModel = never> = {
422
+ equals?: $Enums.NativeGatewayCallStatus | Prisma.EnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
423
+ in?: $Enums.NativeGatewayCallStatus[] | Prisma.ListEnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
424
+ notIn?: $Enums.NativeGatewayCallStatus[] | Prisma.ListEnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
425
+ not?: Prisma.NestedEnumNativeGatewayCallStatusFilter<$PrismaModel> | $Enums.NativeGatewayCallStatus;
426
+ };
427
+ export type EnumNativeGatewayCallStatusWithAggregatesFilter<$PrismaModel = never> = {
428
+ equals?: $Enums.NativeGatewayCallStatus | Prisma.EnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
429
+ in?: $Enums.NativeGatewayCallStatus[] | Prisma.ListEnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
430
+ notIn?: $Enums.NativeGatewayCallStatus[] | Prisma.ListEnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
431
+ not?: Prisma.NestedEnumNativeGatewayCallStatusWithAggregatesFilter<$PrismaModel> | $Enums.NativeGatewayCallStatus;
432
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
433
+ _min?: Prisma.NestedEnumNativeGatewayCallStatusFilter<$PrismaModel>;
434
+ _max?: Prisma.NestedEnumNativeGatewayCallStatusFilter<$PrismaModel>;
435
+ };
361
436
  export type EnumCodingProxySessionStatusFilter<$PrismaModel = never> = {
362
437
  equals?: $Enums.CodingProxySessionStatus | Prisma.EnumCodingProxySessionStatusFieldRefInput<$PrismaModel>;
363
438
  in?: $Enums.CodingProxySessionStatus[] | Prisma.ListEnumCodingProxySessionStatusFieldRefInput<$PrismaModel>;
@@ -560,6 +635,12 @@ export type NestedIntFilter<$PrismaModel = never> = {
560
635
  gte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
561
636
  not?: Prisma.NestedIntFilter<$PrismaModel> | number;
562
637
  };
638
+ export type NestedEnumNativeExecutionModeFilter<$PrismaModel = never> = {
639
+ equals?: $Enums.NativeExecutionMode | Prisma.EnumNativeExecutionModeFieldRefInput<$PrismaModel>;
640
+ in?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel>;
641
+ notIn?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel>;
642
+ not?: Prisma.NestedEnumNativeExecutionModeFilter<$PrismaModel> | $Enums.NativeExecutionMode;
643
+ };
563
644
  export type NestedStringWithAggregatesFilter<$PrismaModel = never> = {
564
645
  equals?: string | Prisma.StringFieldRefInput<$PrismaModel>;
565
646
  in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>;
@@ -684,6 +765,15 @@ export type NestedFloatFilter<$PrismaModel = never> = {
684
765
  gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>;
685
766
  not?: Prisma.NestedFloatFilter<$PrismaModel> | number;
686
767
  };
768
+ export type NestedEnumNativeExecutionModeWithAggregatesFilter<$PrismaModel = never> = {
769
+ equals?: $Enums.NativeExecutionMode | Prisma.EnumNativeExecutionModeFieldRefInput<$PrismaModel>;
770
+ in?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel>;
771
+ notIn?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel>;
772
+ not?: Prisma.NestedEnumNativeExecutionModeWithAggregatesFilter<$PrismaModel> | $Enums.NativeExecutionMode;
773
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
774
+ _min?: Prisma.NestedEnumNativeExecutionModeFilter<$PrismaModel>;
775
+ _max?: Prisma.NestedEnumNativeExecutionModeFilter<$PrismaModel>;
776
+ };
687
777
  export type NestedDecimalNullableFilter<$PrismaModel = never> = {
688
778
  equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> | null;
689
779
  in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] | Prisma.ListDecimalFieldRefInput<$PrismaModel> | null;
@@ -738,6 +828,12 @@ export type NestedEnumRunTriggerFilter<$PrismaModel = never> = {
738
828
  notIn?: $Enums.RunTrigger[] | Prisma.ListEnumRunTriggerFieldRefInput<$PrismaModel>;
739
829
  not?: Prisma.NestedEnumRunTriggerFilter<$PrismaModel> | $Enums.RunTrigger;
740
830
  };
831
+ export type NestedEnumNativeExecutionModeNullableFilter<$PrismaModel = never> = {
832
+ equals?: $Enums.NativeExecutionMode | Prisma.EnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
833
+ in?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
834
+ notIn?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
835
+ not?: Prisma.NestedEnumNativeExecutionModeNullableFilter<$PrismaModel> | $Enums.NativeExecutionMode | null;
836
+ };
741
837
  export type NestedEnumRunStatusWithAggregatesFilter<$PrismaModel = never> = {
742
838
  equals?: $Enums.RunStatus | Prisma.EnumRunStatusFieldRefInput<$PrismaModel>;
743
839
  in?: $Enums.RunStatus[] | Prisma.ListEnumRunStatusFieldRefInput<$PrismaModel>;
@@ -773,6 +869,15 @@ export type NestedJsonNullableFilterBase<$PrismaModel = never> = {
773
869
  gte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>;
774
870
  not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter;
775
871
  };
872
+ export type NestedEnumNativeExecutionModeNullableWithAggregatesFilter<$PrismaModel = never> = {
873
+ equals?: $Enums.NativeExecutionMode | Prisma.EnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
874
+ in?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
875
+ notIn?: $Enums.NativeExecutionMode[] | Prisma.ListEnumNativeExecutionModeFieldRefInput<$PrismaModel> | null;
876
+ not?: Prisma.NestedEnumNativeExecutionModeNullableWithAggregatesFilter<$PrismaModel> | $Enums.NativeExecutionMode | null;
877
+ _count?: Prisma.NestedIntNullableFilter<$PrismaModel>;
878
+ _min?: Prisma.NestedEnumNativeExecutionModeNullableFilter<$PrismaModel>;
879
+ _max?: Prisma.NestedEnumNativeExecutionModeNullableFilter<$PrismaModel>;
880
+ };
776
881
  export type NestedIntNullableWithAggregatesFilter<$PrismaModel = never> = {
777
882
  equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null;
778
883
  in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null;
@@ -813,6 +918,51 @@ export type NestedEnumCodingServiceStateWithAggregatesFilter<$PrismaModel = neve
813
918
  _min?: Prisma.NestedEnumCodingServiceStateFilter<$PrismaModel>;
814
919
  _max?: Prisma.NestedEnumCodingServiceStateFilter<$PrismaModel>;
815
920
  };
921
+ export type NestedEnumNativeGatewaySessionStatusFilter<$PrismaModel = never> = {
922
+ equals?: $Enums.NativeGatewaySessionStatus | Prisma.EnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
923
+ in?: $Enums.NativeGatewaySessionStatus[] | Prisma.ListEnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
924
+ notIn?: $Enums.NativeGatewaySessionStatus[] | Prisma.ListEnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
925
+ not?: Prisma.NestedEnumNativeGatewaySessionStatusFilter<$PrismaModel> | $Enums.NativeGatewaySessionStatus;
926
+ };
927
+ export type NestedEnumNativeGatewaySessionStatusWithAggregatesFilter<$PrismaModel = never> = {
928
+ equals?: $Enums.NativeGatewaySessionStatus | Prisma.EnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
929
+ in?: $Enums.NativeGatewaySessionStatus[] | Prisma.ListEnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
930
+ notIn?: $Enums.NativeGatewaySessionStatus[] | Prisma.ListEnumNativeGatewaySessionStatusFieldRefInput<$PrismaModel>;
931
+ not?: Prisma.NestedEnumNativeGatewaySessionStatusWithAggregatesFilter<$PrismaModel> | $Enums.NativeGatewaySessionStatus;
932
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
933
+ _min?: Prisma.NestedEnumNativeGatewaySessionStatusFilter<$PrismaModel>;
934
+ _max?: Prisma.NestedEnumNativeGatewaySessionStatusFilter<$PrismaModel>;
935
+ };
936
+ export type NestedEnumNativeWarmWorkerStatusFilter<$PrismaModel = never> = {
937
+ equals?: $Enums.NativeWarmWorkerStatus | Prisma.EnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
938
+ in?: $Enums.NativeWarmWorkerStatus[] | Prisma.ListEnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
939
+ notIn?: $Enums.NativeWarmWorkerStatus[] | Prisma.ListEnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
940
+ not?: Prisma.NestedEnumNativeWarmWorkerStatusFilter<$PrismaModel> | $Enums.NativeWarmWorkerStatus;
941
+ };
942
+ export type NestedEnumNativeWarmWorkerStatusWithAggregatesFilter<$PrismaModel = never> = {
943
+ equals?: $Enums.NativeWarmWorkerStatus | Prisma.EnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
944
+ in?: $Enums.NativeWarmWorkerStatus[] | Prisma.ListEnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
945
+ notIn?: $Enums.NativeWarmWorkerStatus[] | Prisma.ListEnumNativeWarmWorkerStatusFieldRefInput<$PrismaModel>;
946
+ not?: Prisma.NestedEnumNativeWarmWorkerStatusWithAggregatesFilter<$PrismaModel> | $Enums.NativeWarmWorkerStatus;
947
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
948
+ _min?: Prisma.NestedEnumNativeWarmWorkerStatusFilter<$PrismaModel>;
949
+ _max?: Prisma.NestedEnumNativeWarmWorkerStatusFilter<$PrismaModel>;
950
+ };
951
+ export type NestedEnumNativeGatewayCallStatusFilter<$PrismaModel = never> = {
952
+ equals?: $Enums.NativeGatewayCallStatus | Prisma.EnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
953
+ in?: $Enums.NativeGatewayCallStatus[] | Prisma.ListEnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
954
+ notIn?: $Enums.NativeGatewayCallStatus[] | Prisma.ListEnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
955
+ not?: Prisma.NestedEnumNativeGatewayCallStatusFilter<$PrismaModel> | $Enums.NativeGatewayCallStatus;
956
+ };
957
+ export type NestedEnumNativeGatewayCallStatusWithAggregatesFilter<$PrismaModel = never> = {
958
+ equals?: $Enums.NativeGatewayCallStatus | Prisma.EnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
959
+ in?: $Enums.NativeGatewayCallStatus[] | Prisma.ListEnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
960
+ notIn?: $Enums.NativeGatewayCallStatus[] | Prisma.ListEnumNativeGatewayCallStatusFieldRefInput<$PrismaModel>;
961
+ not?: Prisma.NestedEnumNativeGatewayCallStatusWithAggregatesFilter<$PrismaModel> | $Enums.NativeGatewayCallStatus;
962
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
963
+ _min?: Prisma.NestedEnumNativeGatewayCallStatusFilter<$PrismaModel>;
964
+ _max?: Prisma.NestedEnumNativeGatewayCallStatusFilter<$PrismaModel>;
965
+ };
816
966
  export type NestedEnumCodingProxySessionStatusFilter<$PrismaModel = never> = {
817
967
  equals?: $Enums.CodingProxySessionStatus | Prisma.EnumCodingProxySessionStatusFieldRefInput<$PrismaModel>;
818
968
  in?: $Enums.CodingProxySessionStatus[] | Prisma.ListEnumCodingProxySessionStatusFieldRefInput<$PrismaModel>;
@@ -3,6 +3,11 @@ export declare const AgentKind: {
3
3
  readonly coding: "coding";
4
4
  };
5
5
  export type AgentKind = (typeof AgentKind)[keyof typeof AgentKind];
6
+ export declare const NativeExecutionMode: {
7
+ readonly control_plane: "control_plane";
8
+ readonly sandbox: "sandbox";
9
+ };
10
+ export type NativeExecutionMode = (typeof NativeExecutionMode)[keyof typeof NativeExecutionMode];
6
11
  export declare const RunStatus: {
7
12
  readonly pending: "pending";
8
13
  readonly running: "running";
@@ -41,6 +46,28 @@ export declare const CodingProxyRequestStatus: {
41
46
  readonly uncertain: "uncertain";
42
47
  };
43
48
  export type CodingProxyRequestStatus = (typeof CodingProxyRequestStatus)[keyof typeof CodingProxyRequestStatus];
49
+ export declare const NativeGatewaySessionStatus: {
50
+ readonly active: "active";
51
+ readonly finished: "finished";
52
+ readonly cancelled: "cancelled";
53
+ };
54
+ export type NativeGatewaySessionStatus = (typeof NativeGatewaySessionStatus)[keyof typeof NativeGatewaySessionStatus];
55
+ export declare const NativeWarmWorkerStatus: {
56
+ readonly warming: "warming";
57
+ readonly idle: "idle";
58
+ readonly claimed: "claimed";
59
+ readonly retiring: "retiring";
60
+ };
61
+ export type NativeWarmWorkerStatus = (typeof NativeWarmWorkerStatus)[keyof typeof NativeWarmWorkerStatus];
62
+ export declare const NativeGatewayCallStatus: {
63
+ readonly reserved: "reserved";
64
+ readonly completed: "completed";
65
+ readonly released: "released";
66
+ readonly uncertain: "uncertain";
67
+ readonly pending: "pending";
68
+ readonly waiting_budget: "waiting_budget";
69
+ };
70
+ export type NativeGatewayCallStatus = (typeof NativeGatewayCallStatus)[keyof typeof NativeGatewayCallStatus];
44
71
  export declare const RegistryFetchOutcome: {
45
72
  readonly served: "served";
46
73
  readonly refused: "refused";
@@ -11,6 +11,10 @@ export const AgentKind = {
11
11
  native: 'native',
12
12
  coding: 'coding'
13
13
  };
14
+ export const NativeExecutionMode = {
15
+ control_plane: 'control_plane',
16
+ sandbox: 'sandbox'
17
+ };
14
18
  export const RunStatus = {
15
19
  pending: 'pending',
16
20
  running: 'running',
@@ -44,6 +48,25 @@ export const CodingProxyRequestStatus = {
44
48
  released: 'released',
45
49
  uncertain: 'uncertain'
46
50
  };
51
+ export const NativeGatewaySessionStatus = {
52
+ active: 'active',
53
+ finished: 'finished',
54
+ cancelled: 'cancelled'
55
+ };
56
+ export const NativeWarmWorkerStatus = {
57
+ warming: 'warming',
58
+ idle: 'idle',
59
+ claimed: 'claimed',
60
+ retiring: 'retiring'
61
+ };
62
+ export const NativeGatewayCallStatus = {
63
+ reserved: 'reserved',
64
+ completed: 'completed',
65
+ released: 'released',
66
+ uncertain: 'uncertain',
67
+ pending: 'pending',
68
+ waiting_budget: 'waiting_budget'
69
+ };
47
70
  export const RegistryFetchOutcome = {
48
71
  served: 'served',
49
72
  refused: 'refused'