@revisium/orchestrator 0.2.0-alpha.3 → 0.2.0-alpha.5

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 (323) hide show
  1. package/README.md +4 -4
  2. package/control-plane/bootstrap.config.json +108 -550
  3. package/control-plane/default-playbook/catalog/pipelines.json +446 -1123
  4. package/control-plane/default-playbook/catalog/roles.json +1 -1
  5. package/control-plane/default-playbook/catalog/run-profiles.json +338 -0
  6. package/control-plane/default-playbook/package.json +1 -1
  7. package/control-plane/default-playbook/playbook.json +2 -1
  8. package/control-plane/default-playbook/prompts/developer.md +6 -6
  9. package/control-plane/default-playbook/prompts/integrator.md +1 -1
  10. package/dist/__generated__/client/browser.js +18 -0
  11. package/dist/__generated__/client/browser.js.map +1 -0
  12. package/dist/__generated__/client/client.js +32 -0
  13. package/dist/__generated__/client/client.js.map +1 -0
  14. package/dist/__generated__/client/commonInputTypes.js +11 -0
  15. package/dist/__generated__/client/commonInputTypes.js.map +1 -0
  16. package/dist/__generated__/client/enums.js +19 -0
  17. package/dist/__generated__/client/enums.js.map +1 -0
  18. package/dist/__generated__/client/internal/class.js +53 -0
  19. package/dist/__generated__/client/internal/class.js.map +1 -0
  20. package/dist/__generated__/client/internal/prismaNamespace.js +450 -0
  21. package/dist/__generated__/client/internal/prismaNamespace.js.map +1 -0
  22. package/dist/__generated__/client/internal/prismaNamespaceBrowser.js +421 -0
  23. package/dist/__generated__/client/internal/prismaNamespaceBrowser.js.map +1 -0
  24. package/dist/__generated__/client/models/Branch.js +2 -0
  25. package/dist/__generated__/client/models/Branch.js.map +1 -0
  26. package/dist/__generated__/client/models/CostLedgerEntry.js +2 -0
  27. package/dist/__generated__/client/models/CostLedgerEntry.js.map +1 -0
  28. package/dist/__generated__/client/models/FileBlob.js +2 -0
  29. package/dist/__generated__/client/models/FileBlob.js.map +1 -0
  30. package/dist/__generated__/client/models/InboxItem.js +2 -0
  31. package/dist/__generated__/client/models/InboxItem.js.map +1 -0
  32. package/dist/__generated__/client/models/ProjectFileUsage.js +2 -0
  33. package/dist/__generated__/client/models/ProjectFileUsage.js.map +1 -0
  34. package/dist/__generated__/client/models/Revision.js +2 -0
  35. package/dist/__generated__/client/models/Revision.js.map +1 -0
  36. package/dist/__generated__/client/models/RevoProject.js +2 -0
  37. package/dist/__generated__/client/models/RevoProject.js.map +1 -0
  38. package/dist/__generated__/client/models/Row.js +2 -0
  39. package/dist/__generated__/client/models/Row.js.map +1 -0
  40. package/dist/__generated__/client/models/RunAttempt.js +2 -0
  41. package/dist/__generated__/client/models/RunAttempt.js.map +1 -0
  42. package/dist/__generated__/client/models/RunEvent.js +2 -0
  43. package/dist/__generated__/client/models/RunEvent.js.map +1 -0
  44. package/dist/__generated__/client/models/RunOutput.js +2 -0
  45. package/dist/__generated__/client/models/RunOutput.js.map +1 -0
  46. package/dist/__generated__/client/models/RunTask.js +2 -0
  47. package/dist/__generated__/client/models/RunTask.js.map +1 -0
  48. package/dist/__generated__/client/models/Table.js +2 -0
  49. package/dist/__generated__/client/models/Table.js.map +1 -0
  50. package/dist/__generated__/client/models/TableMigration.js +2 -0
  51. package/dist/__generated__/client/models/TableMigration.js.map +1 -0
  52. package/dist/__generated__/client/models/TaskRun.js +2 -0
  53. package/dist/__generated__/client/models/TaskRun.js.map +1 -0
  54. package/dist/__generated__/client/models.js +2 -0
  55. package/dist/__generated__/client/models.js.map +1 -0
  56. package/dist/api/graphql-api/graphql-ws/pubsub.module.js +2 -1
  57. package/dist/api/graphql-api/graphql-ws/pubsub.module.js.map +1 -1
  58. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js +110 -28
  59. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js.map +1 -1
  60. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js +3 -1
  61. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -1
  62. package/dist/api/graphql-api/inbox/inputs/resolve-gate.input.js +9 -0
  63. package/dist/api/graphql-api/inbox/inputs/resolve-gate.input.js.map +1 -1
  64. package/dist/api/graphql-api/method/inputs/create-run-profile.input.js +54 -0
  65. package/dist/api/graphql-api/method/inputs/create-run-profile.input.js.map +1 -0
  66. package/dist/api/graphql-api/method/inputs/deprecate-run-profile.input.js +37 -0
  67. package/dist/api/graphql-api/method/inputs/deprecate-run-profile.input.js.map +1 -0
  68. package/dist/api/graphql-api/method/inputs/get-run-profile.input.js +32 -0
  69. package/dist/api/graphql-api/method/inputs/get-run-profile.input.js.map +1 -0
  70. package/dist/api/graphql-api/method/inputs/list-run-profiles.input.js +33 -0
  71. package/dist/api/graphql-api/method/inputs/list-run-profiles.input.js.map +1 -0
  72. package/dist/api/graphql-api/method/inputs/update-run-profile.input.js +59 -0
  73. package/dist/api/graphql-api/method/inputs/update-run-profile.input.js.map +1 -0
  74. package/dist/api/graphql-api/method/inputs/validate-run-profile.input.js +33 -0
  75. package/dist/api/graphql-api/method/inputs/validate-run-profile.input.js.map +1 -0
  76. package/dist/api/graphql-api/method/method.resolver.js +76 -1
  77. package/dist/api/graphql-api/method/method.resolver.js.map +1 -1
  78. package/dist/api/graphql-api/method/model/run-profile-connection.model.js +16 -0
  79. package/dist/api/graphql-api/method/model/run-profile-connection.model.js.map +1 -0
  80. package/dist/api/graphql-api/method/model/run-profile-status.model.js +6 -0
  81. package/dist/api/graphql-api/method/model/run-profile-status.model.js.map +1 -0
  82. package/dist/api/graphql-api/method/model/run-profile.model.js +79 -0
  83. package/dist/api/graphql-api/method/model/run-profile.model.js.map +1 -0
  84. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js +6 -0
  85. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -1
  86. package/dist/api/graphql-api/registerGraphqlEnums.js +6 -0
  87. package/dist/api/graphql-api/registerGraphqlEnums.js.map +1 -1
  88. package/dist/api/graphql-api/runs/inputs/create-run.input.js +17 -1
  89. package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -1
  90. package/dist/api/graphql-api/runs/inputs/simulate-route.input.js +11 -1
  91. package/dist/api/graphql-api/runs/inputs/simulate-route.input.js.map +1 -1
  92. package/dist/api/graphql-api/runs/model/run-workflow.model.js +5 -0
  93. package/dist/api/graphql-api/runs/model/run-workflow.model.js.map +1 -1
  94. package/dist/api/graphql-api/share/model/issue-action.model.js +7 -0
  95. package/dist/api/graphql-api/share/model/issue-action.model.js.map +1 -0
  96. package/dist/cli/commands/doctor-report.js +1 -13
  97. package/dist/cli/commands/doctor-report.js.map +1 -1
  98. package/dist/cli/commands/lifecycle.js +50 -65
  99. package/dist/cli/commands/lifecycle.js.map +1 -1
  100. package/dist/cli/commands/{revisium-helpers.js → process-helpers.js} +1 -24
  101. package/dist/cli/commands/process-helpers.js.map +1 -0
  102. package/dist/config.js +17 -55
  103. package/dist/config.js.map +1 -1
  104. package/dist/control-plane/bootstrap-json-validator.js +65 -0
  105. package/dist/control-plane/bootstrap-json-validator.js.map +1 -0
  106. package/dist/control-plane/bootstrap.js +25 -38
  107. package/dist/control-plane/bootstrap.js.map +1 -1
  108. package/dist/control-plane/change-notifications.js +45 -14
  109. package/dist/control-plane/change-notifications.js.map +1 -1
  110. package/dist/control-plane/data-access.js +1 -106
  111. package/dist/control-plane/data-access.js.map +1 -1
  112. package/dist/control-plane/default-playbook-policy.js +488 -94
  113. package/dist/control-plane/default-playbook-policy.js.map +1 -1
  114. package/dist/control-plane/definitions.js +4 -5
  115. package/dist/control-plane/definitions.js.map +1 -1
  116. package/dist/control-plane/engine-transport.js +383 -0
  117. package/dist/control-plane/engine-transport.js.map +1 -0
  118. package/dist/control-plane/inbox.js +15 -7
  119. package/dist/control-plane/inbox.js.map +1 -1
  120. package/dist/control-plane/index.js +0 -1
  121. package/dist/control-plane/index.js.map +1 -1
  122. package/dist/control-plane/json-fields.js +1 -1
  123. package/dist/control-plane/json-fields.js.map +1 -1
  124. package/dist/control-plane/merge-override-audit.js +2 -2
  125. package/dist/control-plane/merge-override-audit.js.map +1 -1
  126. package/dist/control-plane/pipeline-coverage-registry.js +486 -0
  127. package/dist/control-plane/pipeline-coverage-registry.js.map +1 -0
  128. package/dist/control-plane/query-types.js +2 -0
  129. package/dist/control-plane/query-types.js.map +1 -0
  130. package/dist/control-plane/run-profiles.js +175 -0
  131. package/dist/control-plane/run-profiles.js.map +1 -0
  132. package/dist/control-plane/schema-migration.js +0 -35
  133. package/dist/control-plane/schema-migration.js.map +1 -1
  134. package/dist/control-plane/seed-default-playbook.js +2 -31
  135. package/dist/control-plane/seed-default-playbook.js.map +1 -1
  136. package/dist/control-plane/tables.js +8 -0
  137. package/dist/control-plane/tables.js.map +1 -1
  138. package/dist/control-plane/transport.js +16 -0
  139. package/dist/control-plane/transport.js.map +1 -0
  140. package/dist/control-plane/versioned-meaning.js +72 -15
  141. package/dist/control-plane/versioned-meaning.js.map +1 -1
  142. package/dist/e2e/kit/agents.js +63 -8
  143. package/dist/e2e/kit/agents.js.map +1 -1
  144. package/dist/e2e/kit/assertions.js +15 -3
  145. package/dist/e2e/kit/assertions.js.map +1 -1
  146. package/dist/e2e/kit/crash.js +8 -4
  147. package/dist/e2e/kit/crash.js.map +1 -1
  148. package/dist/e2e/kit/drive.js +46 -11
  149. package/dist/e2e/kit/drive.js.map +1 -1
  150. package/dist/e2e/kit/env.js +17 -1
  151. package/dist/e2e/kit/env.js.map +1 -1
  152. package/dist/e2e/kit/fake-integrator.js +9 -22
  153. package/dist/e2e/kit/fake-integrator.js.map +1 -1
  154. package/dist/e2e/kit/gh-emulator.js +166 -26
  155. package/dist/e2e/kit/gh-emulator.js.map +1 -1
  156. package/dist/e2e/kit/harness.js +44 -10
  157. package/dist/e2e/kit/harness.js.map +1 -1
  158. package/dist/e2e/kit/index.js +2 -0
  159. package/dist/e2e/kit/index.js.map +1 -1
  160. package/dist/e2e/kit/run-profiles.js +50 -0
  161. package/dist/e2e/kit/run-profiles.js.map +1 -0
  162. package/dist/e2e/kit/scenario.js +207 -0
  163. package/dist/e2e/kit/scenario.js.map +1 -0
  164. package/dist/e2e/kit/scenarios.js +38 -45
  165. package/dist/e2e/kit/scenarios.js.map +1 -1
  166. package/dist/e2e/recovery-crash-child.js +2 -2
  167. package/dist/e2e/recovery-crash-child.js.map +1 -1
  168. package/dist/e2e/recovery-dd-crash-child.js +8 -6
  169. package/dist/e2e/recovery-dd-crash-child.js.map +1 -1
  170. package/dist/engine/dbos.service.js +8 -1
  171. package/dist/engine/dbos.service.js.map +1 -1
  172. package/dist/features/inbox/commands/impl/resolve-gate.command.js.map +1 -1
  173. package/dist/features/method/commands/handlers/method-command.handlers.js +64 -0
  174. package/dist/features/method/commands/handlers/method-command.handlers.js.map +1 -0
  175. package/dist/features/method/commands/impl/create-run-profile.command.js +7 -0
  176. package/dist/features/method/commands/impl/create-run-profile.command.js.map +1 -0
  177. package/dist/features/method/commands/impl/deprecate-run-profile.command.js +7 -0
  178. package/dist/features/method/commands/impl/deprecate-run-profile.command.js.map +1 -0
  179. package/dist/features/method/commands/impl/update-run-profile.command.js +7 -0
  180. package/dist/features/method/commands/impl/update-run-profile.command.js.map +1 -0
  181. package/dist/features/method/commands/index.js +6 -1
  182. package/dist/features/method/commands/index.js.map +1 -1
  183. package/dist/features/method/method-api.service.js +31 -3
  184. package/dist/features/method/method-api.service.js.map +1 -1
  185. package/dist/features/method/queries/handlers/method-query.handlers.js +58 -1
  186. package/dist/features/method/queries/handlers/method-query.handlers.js.map +1 -1
  187. package/dist/features/method/queries/impl/get-run-profile.query.js +7 -0
  188. package/dist/features/method/queries/impl/get-run-profile.query.js.map +1 -0
  189. package/dist/features/method/queries/impl/list-run-profiles.query.js +7 -0
  190. package/dist/features/method/queries/impl/list-run-profiles.query.js.map +1 -0
  191. package/dist/features/method/queries/impl/validate-run-profile.query.js +7 -0
  192. package/dist/features/method/queries/impl/validate-run-profile.query.js.map +1 -0
  193. package/dist/features/method/queries/index.js +4 -1
  194. package/dist/features/method/queries/index.js.map +1 -1
  195. package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -1
  196. package/dist/features/runs/commands/impl/create-run.command.js.map +1 -1
  197. package/dist/features/runs/queries/impl/simulate-route.query.js.map +1 -1
  198. package/dist/features/shared/connection.js +6 -3
  199. package/dist/features/shared/connection.js.map +1 -1
  200. package/dist/host/daemon.js +32 -8
  201. package/dist/host/daemon.js.map +1 -1
  202. package/dist/host/ensure-host.js +3 -3
  203. package/dist/host/ensure-host.js.map +1 -1
  204. package/dist/host/host-runtime.js.map +1 -1
  205. package/dist/host/host.lifecycle.js +3 -16
  206. package/dist/host/host.lifecycle.js.map +1 -1
  207. package/dist/http/graphql-host.js +17 -8
  208. package/dist/http/graphql-host.js.map +1 -1
  209. package/dist/mcp/mcp-capabilities.js +8 -2
  210. package/dist/mcp/mcp-capabilities.js.map +1 -1
  211. package/dist/mcp/mcp-facade.service.js +53 -10
  212. package/dist/mcp/mcp-facade.service.js.map +1 -1
  213. package/dist/mcp/mcp-tool-result.js +22 -0
  214. package/dist/mcp/mcp-tool-result.js.map +1 -0
  215. package/dist/mcp/mcp-tools.js +108 -1
  216. package/dist/mcp/mcp-tools.js.map +1 -1
  217. package/dist/pipeline/await-human.js +27 -8
  218. package/dist/pipeline/await-human.js.map +1 -1
  219. package/dist/pipeline/data-driven-task.workflow.js +573 -105
  220. package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
  221. package/dist/pipeline/pipeline.service.js +28 -12
  222. package/dist/pipeline/pipeline.service.js.map +1 -1
  223. package/dist/pipeline/route-contract.js +80 -39
  224. package/dist/pipeline/route-contract.js.map +1 -1
  225. package/dist/pipeline-core/condition-scopes.js +15 -0
  226. package/dist/pipeline-core/condition-scopes.js.map +1 -0
  227. package/dist/pipeline-core/index.js +2 -0
  228. package/dist/pipeline-core/index.js.map +1 -1
  229. package/dist/pipeline-core/kit/fixtures.js +81 -44
  230. package/dist/pipeline-core/kit/fixtures.js.map +1 -1
  231. package/dist/pipeline-core/materialize.js +221 -0
  232. package/dist/pipeline-core/materialize.js.map +1 -0
  233. package/dist/pipeline-core/types.js +5 -0
  234. package/dist/pipeline-core/types.js.map +1 -1
  235. package/dist/pipeline-core/validate-loops.js +2 -15
  236. package/dist/pipeline-core/validate-loops.js.map +1 -1
  237. package/dist/pipeline-core/validate-resilience.js +257 -0
  238. package/dist/pipeline-core/validate-resilience.js.map +1 -0
  239. package/dist/pipeline-core/validate.js +2 -0
  240. package/dist/pipeline-core/validate.js.map +1 -1
  241. package/dist/playbook/catalog-loader.js +40 -3
  242. package/dist/playbook/catalog-loader.js.map +1 -1
  243. package/dist/playbook/catalog-schema-validator.js +468 -0
  244. package/dist/playbook/catalog-schema-validator.js.map +1 -0
  245. package/dist/playbook/import-mapper.js +55 -3
  246. package/dist/playbook/import-mapper.js.map +1 -1
  247. package/dist/playbook/manifest.js +5 -0
  248. package/dist/playbook/manifest.js.map +1 -1
  249. package/dist/playbook/playbook-installer.js +17 -1
  250. package/dist/playbook/playbook-installer.js.map +1 -1
  251. package/dist/poller/pr-readiness-core.js +257 -93
  252. package/dist/poller/pr-readiness-core.js.map +1 -1
  253. package/dist/poller/pr-readiness.js +2 -2
  254. package/dist/poller/pr-readiness.js.map +1 -1
  255. package/dist/revisium/inbox.service.js +8 -8
  256. package/dist/revisium/inbox.service.js.map +1 -1
  257. package/dist/revisium/playbooks.service.js +311 -21
  258. package/dist/revisium/playbooks.service.js.map +1 -1
  259. package/dist/revisium/revisium.module.js +8 -8
  260. package/dist/revisium/revisium.module.js.map +1 -1
  261. package/dist/revisium/roles.service.js +3 -1
  262. package/dist/revisium/roles.service.js.map +1 -1
  263. package/dist/revisium/run.service.js +9 -8
  264. package/dist/revisium/run.service.js.map +1 -1
  265. package/dist/revisium/tokens.js +0 -1
  266. package/dist/revisium/tokens.js.map +1 -1
  267. package/dist/run/create-run.js +1 -4
  268. package/dist/run/create-run.js.map +1 -1
  269. package/dist/run/inspect-run.js +33 -29
  270. package/dist/run/inspect-run.js.map +1 -1
  271. package/dist/run/issue-ref.js +97 -2
  272. package/dist/run/issue-ref.js.map +1 -1
  273. package/dist/run/prisma-runtime-data-access.js +616 -0
  274. package/dist/run/prisma-runtime-data-access.js.map +1 -0
  275. package/dist/run/run-outputs.js +39 -14
  276. package/dist/run/run-outputs.js.map +1 -1
  277. package/dist/run/terminal-run-status.js.map +1 -1
  278. package/dist/runners/gh-identity.js +29 -7
  279. package/dist/runners/gh-identity.js.map +1 -1
  280. package/dist/runners/integrator.js +692 -89
  281. package/dist/runners/integrator.js.map +1 -1
  282. package/dist/runners/worktree.service.js +10 -8
  283. package/dist/runners/worktree.service.js.map +1 -1
  284. package/dist/schema/ajv-errors.js +15 -0
  285. package/dist/schema/ajv-errors.js.map +1 -0
  286. package/dist/smoke/isolation.js +7 -16
  287. package/dist/smoke/isolation.js.map +1 -1
  288. package/dist/storage/ensure-storage.js +118 -0
  289. package/dist/storage/ensure-storage.js.map +1 -0
  290. package/dist/storage/revo-database.js +39 -0
  291. package/dist/storage/revo-database.js.map +1 -0
  292. package/dist/storage/revo-prisma.service.js +31 -0
  293. package/dist/storage/revo-prisma.service.js.map +1 -0
  294. package/dist/storage/revo-storage.module.js +18 -0
  295. package/dist/storage/revo-storage.module.js.map +1 -0
  296. package/dist/task-control-plane/pr-readiness.service.js +5 -2
  297. package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
  298. package/dist/task-control-plane/run-watch.service.js +3 -6
  299. package/dist/task-control-plane/run-watch.service.js.map +1 -1
  300. package/dist/task-control-plane/task-control-plane-api.service.js +518 -85
  301. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  302. package/dist/testing/runtime-data-access.js +175 -0
  303. package/dist/testing/runtime-data-access.js.map +1 -0
  304. package/dist/worker/build-context.js +178 -2
  305. package/dist/worker/build-context.js.map +1 -1
  306. package/dist/worker/claude-code-runner.js +23 -6
  307. package/dist/worker/claude-code-runner.js.map +1 -1
  308. package/dist/worker/codex-runner.js +6 -1
  309. package/dist/worker/codex-runner.js.map +1 -1
  310. package/package.json +20 -7
  311. package/prisma/migrations/20260707080500_initial_schema/migration.sql +259 -0
  312. package/prisma/migrations/20260707103000_prisma_runtime_tables/migration.sql +234 -0
  313. package/prisma/migrations/migration_lock.toml +3 -0
  314. package/prisma/schema.prisma +338 -0
  315. package/prisma.config.ts +11 -0
  316. package/dist/cli/commands/revisium-helpers.js.map +0 -1
  317. package/dist/control-plane/client-transport.js +0 -168
  318. package/dist/control-plane/client-transport.js.map +0 -1
  319. package/dist/engine/ensure-postgres.js +0 -46
  320. package/dist/engine/ensure-postgres.js.map +0 -1
  321. package/dist/host/ensure-revisium.js +0 -135
  322. package/dist/host/ensure-revisium.js.map +0 -1
  323. package/revisium.config.json +0 -10
@@ -0,0 +1,468 @@
1
+ import { Ajv } from 'ajv';
2
+ import { FAILURE_POLICIES, TERMINAL_STATUSES } from '../pipeline-core/types.js';
3
+ import { VALID_MODEL_LEVELS } from '../control-plane/definitions.js';
4
+ import { PlaybookError } from './errors.js';
5
+ import { formatAjvErrors } from '../schema/ajv-errors.js';
6
+ const ajv = new Ajv({ allErrors: true, strict: false });
7
+ const NON_EMPTY_STRING = { type: 'string', minLength: 1 };
8
+ const STRING_ARRAY = { type: 'array', items: NON_EMPTY_STRING };
9
+ const producesSchema = {
10
+ type: 'object',
11
+ required: ['name'],
12
+ properties: { name: NON_EMPTY_STRING },
13
+ additionalProperties: false,
14
+ };
15
+ const consumesSchema = {
16
+ type: 'object',
17
+ required: ['node', 'as'],
18
+ properties: {
19
+ node: NON_EMPTY_STRING,
20
+ as: NON_EMPTY_STRING,
21
+ iteration: { anyOf: [{ enum: ['latest', 'all'] }, { type: 'integer' }] },
22
+ optional: { type: 'boolean' },
23
+ staleOk: { type: 'boolean' },
24
+ },
25
+ additionalProperties: false,
26
+ };
27
+ const gateArtifactSchema = {
28
+ type: 'object',
29
+ required: ['node'],
30
+ properties: {
31
+ node: NON_EMPTY_STRING,
32
+ as: NON_EMPTY_STRING,
33
+ iteration: { anyOf: [{ enum: ['latest', 'all'] }, { type: 'integer' }] },
34
+ },
35
+ additionalProperties: false,
36
+ };
37
+ const catchSchema = {
38
+ type: 'object',
39
+ required: ['onError', 'goto'],
40
+ properties: {
41
+ onError: { type: 'string', pattern: String.raw `^revo\.[A-Za-z][A-Za-z0-9]*$` },
42
+ goto: NON_EMPTY_STRING,
43
+ },
44
+ additionalProperties: false,
45
+ };
46
+ const branchSchema = {
47
+ oneOf: [
48
+ {
49
+ type: 'object',
50
+ required: ['when', 'goto'],
51
+ properties: {
52
+ when: { $ref: '#/$defs/condition' },
53
+ goto: NON_EMPTY_STRING,
54
+ },
55
+ additionalProperties: false,
56
+ },
57
+ {
58
+ type: 'object',
59
+ required: ['default'],
60
+ properties: { default: NON_EMPTY_STRING },
61
+ additionalProperties: false,
62
+ },
63
+ ],
64
+ };
65
+ const effectProperties = {
66
+ next: NON_EMPTY_STRING,
67
+ catch: { type: 'array', items: catchSchema },
68
+ resultSchema: NON_EMPTY_STRING,
69
+ onFailure: { enum: FAILURE_POLICIES },
70
+ escalateTo: NON_EMPTY_STRING,
71
+ incrementCounters: STRING_ARRAY,
72
+ produces: producesSchema,
73
+ consumes: { type: 'array', items: consumesSchema },
74
+ };
75
+ const agentNodeSchema = {
76
+ type: 'object',
77
+ required: ['id', 'kind', 'roleRef', 'next'],
78
+ properties: {
79
+ id: NON_EMPTY_STRING,
80
+ displayName: NON_EMPTY_STRING,
81
+ kind: { const: 'agent' },
82
+ roleRef: NON_EMPTY_STRING,
83
+ ...effectProperties,
84
+ },
85
+ additionalProperties: false,
86
+ };
87
+ const scriptNodeSchema = {
88
+ type: 'object',
89
+ required: ['id', 'kind', 'scriptRef', 'next'],
90
+ properties: {
91
+ id: NON_EMPTY_STRING,
92
+ displayName: NON_EMPTY_STRING,
93
+ kind: { const: 'script' },
94
+ scriptRef: NON_EMPTY_STRING,
95
+ ...effectProperties,
96
+ },
97
+ additionalProperties: false,
98
+ };
99
+ const humanGateNodeSchema = {
100
+ type: 'object',
101
+ required: ['id', 'kind', 'reason', 'outcomes', 'branches'],
102
+ properties: {
103
+ id: NON_EMPTY_STRING,
104
+ displayName: NON_EMPTY_STRING,
105
+ kind: { const: 'humanGate' },
106
+ reason: NON_EMPTY_STRING,
107
+ outcomes: STRING_ARRAY,
108
+ branches: { type: 'array', minItems: 1, items: branchSchema },
109
+ timeout: {
110
+ type: 'object',
111
+ required: ['after', 'goto'],
112
+ properties: { after: NON_EMPTY_STRING, goto: NON_EMPTY_STRING },
113
+ additionalProperties: false,
114
+ },
115
+ incrementCounters: STRING_ARRAY,
116
+ produces: producesSchema,
117
+ gatedArtifact: gateArtifactSchema,
118
+ verdictFrom: gateArtifactSchema,
119
+ },
120
+ additionalProperties: false,
121
+ };
122
+ const choiceNodeSchema = {
123
+ type: 'object',
124
+ required: ['id', 'kind', 'branches'],
125
+ properties: {
126
+ id: NON_EMPTY_STRING,
127
+ displayName: NON_EMPTY_STRING,
128
+ kind: { const: 'choice' },
129
+ branches: { type: 'array', minItems: 1, items: branchSchema },
130
+ incrementCounters: STRING_ARRAY,
131
+ },
132
+ additionalProperties: false,
133
+ };
134
+ const parallelNodeSchema = {
135
+ type: 'object',
136
+ required: ['id', 'kind', 'branches', 'join'],
137
+ properties: {
138
+ id: NON_EMPTY_STRING,
139
+ displayName: NON_EMPTY_STRING,
140
+ kind: { const: 'parallel' },
141
+ branches: {
142
+ type: 'array',
143
+ minItems: 2,
144
+ items: {
145
+ type: 'object',
146
+ required: ['id', 'entry'],
147
+ properties: { id: NON_EMPTY_STRING, entry: NON_EMPTY_STRING },
148
+ additionalProperties: false,
149
+ },
150
+ },
151
+ join: NON_EMPTY_STRING,
152
+ },
153
+ additionalProperties: false,
154
+ };
155
+ const joinNodeSchema = {
156
+ type: 'object',
157
+ required: ['id', 'kind', 'joinMode', 'next'],
158
+ properties: {
159
+ id: NON_EMPTY_STRING,
160
+ displayName: NON_EMPTY_STRING,
161
+ kind: { const: 'join' },
162
+ joinMode: {
163
+ oneOf: [
164
+ {
165
+ type: 'object',
166
+ required: ['kind'],
167
+ properties: { kind: { enum: ['all', 'any'] } },
168
+ additionalProperties: false,
169
+ },
170
+ {
171
+ type: 'object',
172
+ required: ['kind', 'count'],
173
+ properties: { kind: { const: 'quorum' }, count: { type: 'integer', minimum: 1 } },
174
+ additionalProperties: false,
175
+ },
176
+ ],
177
+ },
178
+ merge: { type: 'object', additionalProperties: { enum: ['overwrite', 'appendByBranchOrder'] } },
179
+ verdictReducer: {
180
+ type: 'object',
181
+ required: ['kind', 'pass', 'passVerdict', 'failVerdict'],
182
+ properties: {
183
+ kind: { const: 'allIn' },
184
+ pass: STRING_ARRAY,
185
+ passVerdict: NON_EMPTY_STRING,
186
+ failVerdict: NON_EMPTY_STRING,
187
+ },
188
+ additionalProperties: false,
189
+ },
190
+ next: NON_EMPTY_STRING,
191
+ },
192
+ additionalProperties: false,
193
+ };
194
+ const waitNodeSchema = {
195
+ type: 'object',
196
+ required: ['id', 'kind', 'duration', 'next'],
197
+ properties: {
198
+ id: NON_EMPTY_STRING,
199
+ displayName: NON_EMPTY_STRING,
200
+ kind: { const: 'wait' },
201
+ duration: NON_EMPTY_STRING,
202
+ next: NON_EMPTY_STRING,
203
+ },
204
+ additionalProperties: false,
205
+ };
206
+ const terminalNodeSchema = {
207
+ type: 'object',
208
+ required: ['id', 'kind', 'status'],
209
+ properties: {
210
+ id: NON_EMPTY_STRING,
211
+ displayName: NON_EMPTY_STRING,
212
+ kind: { const: 'terminal' },
213
+ status: { enum: TERMINAL_STATUSES },
214
+ },
215
+ additionalProperties: false,
216
+ };
217
+ const pipelineExecutionPolicySchema = {
218
+ type: 'object',
219
+ properties: {
220
+ raw: { type: 'array', items: { type: 'string' } },
221
+ template_json: { $ref: '#/$defs/template' },
222
+ },
223
+ additionalProperties: true,
224
+ $defs: {
225
+ condition: {
226
+ oneOf: [
227
+ {
228
+ type: 'object',
229
+ required: ['op', 'value'],
230
+ properties: { op: { const: 'verdict.eq' }, value: NON_EMPTY_STRING },
231
+ additionalProperties: false,
232
+ },
233
+ {
234
+ type: 'object',
235
+ required: ['op', 'value'],
236
+ properties: { op: { const: 'verdict.in' }, value: STRING_ARRAY },
237
+ additionalProperties: false,
238
+ },
239
+ {
240
+ type: 'object',
241
+ required: ['op', 'scope', 'value'],
242
+ properties: {
243
+ op: { enum: ['counter.lt', 'counter.gte'] },
244
+ scope: NON_EMPTY_STRING,
245
+ value: { type: 'number' },
246
+ },
247
+ additionalProperties: false,
248
+ },
249
+ {
250
+ type: 'object',
251
+ required: ['op', 'of'],
252
+ properties: {
253
+ op: { const: 'all' },
254
+ of: { type: 'array', minItems: 1, items: { $ref: '#/$defs/condition' } },
255
+ },
256
+ additionalProperties: false,
257
+ },
258
+ {
259
+ type: 'object',
260
+ required: ['op', 'of'],
261
+ properties: {
262
+ op: { const: 'any' },
263
+ of: { type: 'array', minItems: 1, items: { $ref: '#/$defs/condition' } },
264
+ },
265
+ additionalProperties: false,
266
+ },
267
+ {
268
+ type: 'object',
269
+ required: ['op', 'cond'],
270
+ properties: {
271
+ op: { const: 'not' },
272
+ cond: { $ref: '#/$defs/condition' },
273
+ },
274
+ additionalProperties: false,
275
+ },
276
+ ],
277
+ },
278
+ node: {
279
+ oneOf: [
280
+ agentNodeSchema,
281
+ scriptNodeSchema,
282
+ humanGateNodeSchema,
283
+ choiceNodeSchema,
284
+ parallelNodeSchema,
285
+ joinNodeSchema,
286
+ waitNodeSchema,
287
+ terminalNodeSchema,
288
+ ],
289
+ },
290
+ template: {
291
+ type: 'object',
292
+ required: ['specVersion', 'pipelineId', 'entry', 'verdicts', 'nodes'],
293
+ properties: {
294
+ specVersion: NON_EMPTY_STRING,
295
+ pipelineId: NON_EMPTY_STRING,
296
+ title: NON_EMPTY_STRING,
297
+ entry: NON_EMPTY_STRING,
298
+ verdicts: {
299
+ type: 'object',
300
+ required: ['domain'],
301
+ properties: { domain: STRING_ARRAY },
302
+ additionalProperties: true,
303
+ },
304
+ policy: {
305
+ type: 'object',
306
+ required: ['conflicts', 'enforcement'],
307
+ properties: {
308
+ conflicts: {
309
+ type: 'array',
310
+ items: {
311
+ type: 'array',
312
+ minItems: 2,
313
+ maxItems: 2,
314
+ items: NON_EMPTY_STRING,
315
+ },
316
+ },
317
+ enforcement: { enum: ['strict', 'warn'] },
318
+ },
319
+ additionalProperties: false,
320
+ },
321
+ scopes: {
322
+ type: 'object',
323
+ additionalProperties: {
324
+ type: 'object',
325
+ required: ['cap', 'parent'],
326
+ properties: {
327
+ cap: { type: 'integer', minimum: 1 },
328
+ parent: { anyOf: [NON_EMPTY_STRING, { type: 'null' }] },
329
+ },
330
+ additionalProperties: false,
331
+ },
332
+ },
333
+ nodes: {
334
+ type: 'object',
335
+ minProperties: 1,
336
+ additionalProperties: { $ref: '#/$defs/node' },
337
+ },
338
+ },
339
+ additionalProperties: false,
340
+ },
341
+ },
342
+ };
343
+ const stageSchema = {
344
+ type: 'object',
345
+ required: ['mode'],
346
+ properties: {
347
+ mode: { enum: ['single', 'consensus'] },
348
+ branches: { type: 'integer', minimum: 2, maximum: 8 },
349
+ },
350
+ additionalProperties: false,
351
+ allOf: [
352
+ {
353
+ if: { properties: { mode: { const: 'consensus' } }, required: ['mode'] },
354
+ then: { required: ['branches'] },
355
+ },
356
+ {
357
+ if: { properties: { mode: { const: 'single' } }, required: ['mode'] },
358
+ then: { not: { required: ['branches'] } },
359
+ },
360
+ ],
361
+ };
362
+ const runProfileTopologySchema = (minProperties) => ({
363
+ type: 'object',
364
+ required: ['stages'],
365
+ properties: {
366
+ stages: {
367
+ type: 'object',
368
+ minProperties,
369
+ additionalProperties: stageSchema,
370
+ },
371
+ },
372
+ additionalProperties: false,
373
+ });
374
+ const runProfileSlotBindingSchema = {
375
+ type: 'object',
376
+ properties: {
377
+ runnerId: NON_EMPTY_STRING,
378
+ modelLevel: { enum: VALID_MODEL_LEVELS },
379
+ timeoutMs: { type: 'integer', minimum: 1 },
380
+ permissionMode: NON_EMPTY_STRING,
381
+ accounts: {
382
+ type: 'object',
383
+ properties: {
384
+ github: NON_EMPTY_STRING,
385
+ },
386
+ additionalProperties: false,
387
+ required: ['github'],
388
+ },
389
+ },
390
+ additionalProperties: false,
391
+ anyOf: [
392
+ { required: ['runnerId'] },
393
+ { required: ['modelLevel'] },
394
+ { required: ['timeoutMs'] },
395
+ { required: ['permissionMode'] },
396
+ { required: ['accounts'] },
397
+ ],
398
+ };
399
+ const runProfileBindingsSchema = (minProperties) => ({
400
+ type: 'object',
401
+ required: ['slots'],
402
+ properties: {
403
+ slots: {
404
+ type: 'object',
405
+ minProperties,
406
+ additionalProperties: runProfileSlotBindingSchema,
407
+ },
408
+ },
409
+ additionalProperties: false,
410
+ });
411
+ const runProfileCatalogRecordSchema = {
412
+ type: 'object',
413
+ required: [
414
+ 'id',
415
+ 'pipelineId',
416
+ 'schemaVersion',
417
+ 'version',
418
+ 'displayName',
419
+ 'summary',
420
+ 'topology',
421
+ 'bindings',
422
+ 'status',
423
+ ],
424
+ properties: {
425
+ id: NON_EMPTY_STRING,
426
+ pipelineId: NON_EMPTY_STRING,
427
+ schemaVersion: { const: 'run-profile/v1' },
428
+ version: NON_EMPTY_STRING,
429
+ displayName: NON_EMPTY_STRING,
430
+ summary: NON_EMPTY_STRING,
431
+ topology: runProfileTopologySchema(1),
432
+ bindings: runProfileBindingsSchema(1),
433
+ status: { enum: ['active', 'deprecated'] },
434
+ },
435
+ additionalProperties: false,
436
+ };
437
+ const runProfileInlineSchema = {
438
+ type: 'object',
439
+ required: [
440
+ 'schemaVersion',
441
+ 'topology',
442
+ 'bindings',
443
+ ],
444
+ properties: {
445
+ schemaVersion: { const: 'run-profile/v1' },
446
+ topology: runProfileTopologySchema(0),
447
+ bindings: runProfileBindingsSchema(0),
448
+ },
449
+ additionalProperties: false,
450
+ };
451
+ const validatePipelineExecutionPolicy = ajv.compile(pipelineExecutionPolicySchema);
452
+ const validateRunProfileCatalogRecord = ajv.compile(runProfileCatalogRecordSchema);
453
+ const validateInlineRunProfile = ajv.compile(runProfileInlineSchema);
454
+ function assertValid(validate, value, context, schemaName) {
455
+ if (validate(value))
456
+ return;
457
+ throw new PlaybookError('PLAYBOOK_INVALID_CATALOG', `${context} violates ${schemaName} schema: ${formatAjvErrors(validate.errors)}`);
458
+ }
459
+ export function assertValidPipelineExecutionPolicy(value, context) {
460
+ assertValid(validatePipelineExecutionPolicy, value, context, 'pipeline execution_policy');
461
+ }
462
+ export function assertValidRunProfileCatalogRecord(value, context) {
463
+ assertValid(validateRunProfileCatalogRecord, value, context, 'run-profile/v1');
464
+ }
465
+ export function assertValidInlineRunProfile(value, context) {
466
+ assertValid(validateInlineRunProfile, value, context, 'run-profile/v1');
467
+ }
468
+ //# sourceMappingURL=catalog-schema-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-schema-validator.js","sourceRoot":"","sources":["../../src/playbook/catalog-schema-validator.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { createHash } from 'node:crypto';
2
2
  import { PlaybookError } from './errors.js';
3
3
  import { composeRolePrompt } from './prompt-composer.js';
4
4
  import { normalizeRouteGates } from '../pipeline/route-contract.js';
5
+ import { runProfileHash, runProfileRevisionHash } from '../control-plane/run-profiles.js';
5
6
  const ROW_ID_MAX_LENGTH = 64;
6
7
  const ROW_ID_HASH_LENGTH = 12;
7
8
  function stableStringify(value) {
@@ -62,12 +63,14 @@ export function scopedImportRowId(playbookId, itemId) {
62
63
  const prefix = trimTrailingHyphens(raw.slice(0, prefixLength)) || 'item';
63
64
  return `${prefix}-${digest}`;
64
65
  }
66
+ export function scopedRunProfileRowId(playbookId, pipelineId, profileId) {
67
+ return scopedImportRowId(playbookId, `${pipelineId.length}-${pipelineId}-${profileId}`);
68
+ }
65
69
  function mapRole(root, playbookId, role, now) {
66
70
  if (role.runnerId === 'stub-agent') {
67
- throw new PlaybookError('PLAYBOOK_INVALID_CATALOG', `Production playbook role ${role.id} must not bind runner_id stub-agent; use an execution profile override for test stubs`);
71
+ throw new PlaybookError('PLAYBOOK_INVALID_CATALOG', `Production playbook role ${role.id} must not bind runner_id stub-agent; use a run profile binding for test stubs`);
68
72
  }
69
- const requiredPrompt = !role.runnerId.startsWith('revo-');
70
- const prompt = composeRolePrompt(root, role, requiredPrompt);
73
+ const prompt = composeRolePrompt(root, role, true);
71
74
  const importedRoleId = scopedImportRowId(playbookId, role.id);
72
75
  return {
73
76
  table: 'roles',
@@ -96,6 +99,7 @@ function mapRole(root, playbookId, role, now) {
96
99
  rights: role.rights,
97
100
  timeout_ms: 0,
98
101
  permission_mode: 'default',
102
+ status: 'active',
99
103
  updated_at: now,
100
104
  },
101
105
  };
@@ -117,6 +121,50 @@ function mapPipeline(playbookId, pipeline, now) {
117
121
  route_gates: normalizeRouteGates(pipeline.routeGates),
118
122
  platform_invocation: pipeline.platformInvocation,
119
123
  execution_policy_json: JSON.stringify(pipeline.executionPolicy),
124
+ status: 'active',
125
+ updated_at: now,
126
+ },
127
+ };
128
+ }
129
+ function mapRunProfile(playbookId, profile, now, sourcePath) {
130
+ const importedProfileId = scopedRunProfileRowId(playbookId, profile.pipelineId, profile.id);
131
+ const profileJson = {
132
+ schemaVersion: profile.schemaVersion,
133
+ topology: profile.topology,
134
+ bindings: profile.bindings,
135
+ };
136
+ const profileHash = runProfileHash(profileJson, {
137
+ pipelineId: profile.pipelineId,
138
+ schemaVersion: profile.schemaVersion,
139
+ });
140
+ const profileRevisionHash = runProfileRevisionHash(profileJson, {
141
+ playbookId,
142
+ pipelineId: profile.pipelineId,
143
+ profileId: profile.id,
144
+ schemaVersion: profile.schemaVersion,
145
+ version: profile.version,
146
+ displayName: profile.displayName,
147
+ summary: profile.summary,
148
+ status: profile.status,
149
+ });
150
+ return {
151
+ table: 'run_profiles',
152
+ rowId: importedProfileId,
153
+ data: {
154
+ id: importedProfileId,
155
+ playbook_id: playbookId,
156
+ pipeline_id: profile.pipelineId,
157
+ profile_id: profile.id,
158
+ schema_version: profile.schemaVersion,
159
+ version: profile.version,
160
+ display_name: profile.displayName,
161
+ summary: profile.summary,
162
+ profile_json: JSON.stringify(profileJson),
163
+ profile_hash: profileHash,
164
+ profile_revision_hash: profileRevisionHash,
165
+ status: profile.status,
166
+ source_path: sourcePath,
167
+ source_hash: profileHash,
120
168
  updated_at: now,
121
169
  },
122
170
  };
@@ -126,10 +174,12 @@ export function mapPlaybookRows(options) {
126
174
  const playbookId = options.nameOverride ?? options.manifest.id;
127
175
  const version = options.versionOverride ?? options.source.version;
128
176
  const roleRows = options.catalogs.roles.map((role) => mapRole(options.root, playbookId, role, now));
177
+ const runProfileRows = options.catalogs.runProfiles.map((profile) => mapRunProfile(playbookId, profile, now, options.manifest.catalogs.runProfiles ?? ''));
129
178
  const catalogHash = hash({
130
179
  manifest: options.manifest,
131
180
  roles: options.catalogs.roles,
132
181
  pipelines: options.catalogs.pipelines,
182
+ runProfiles: options.catalogs.runProfiles,
133
183
  prompts: roleRows.map((r) => ({ role: r.data.playbook_role_id, hash: r.data.source_hash })),
134
184
  });
135
185
  const playbook = {
@@ -145,6 +195,7 @@ export function mapPlaybookRows(options) {
145
195
  manifest_path: 'playbook.json',
146
196
  roles_catalog_path: options.manifest.catalogs.roles,
147
197
  pipelines_catalog_path: options.manifest.catalogs.pipelines,
198
+ run_profiles_catalog_path: options.manifest.catalogs.runProfiles ?? '',
148
199
  catalog_hash: catalogHash,
149
200
  installed_at: now,
150
201
  updated_at: now,
@@ -155,6 +206,7 @@ export function mapPlaybookRows(options) {
155
206
  playbook,
156
207
  roles: roleRows,
157
208
  pipelines: options.catalogs.pipelines.map((pipeline) => mapPipeline(playbookId, pipeline, now)),
209
+ runProfiles: runProfileRows,
158
210
  catalogHash,
159
211
  };
160
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"import-mapper.js","sourceRoot":"","sources":["../../src/playbook/import-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-mapper.js","sourceRoot":"","sources":["../../src/playbook/import-mapper.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,9 @@ export function parsePlaybookManifest(raw) {
37
37
  catalogs: {
38
38
  roles: requireString(catalogs, 'roles'),
39
39
  pipelines: requireString(catalogs, 'pipelines'),
40
+ runProfiles: typeof catalogs.runProfiles === 'string' && catalogs.runProfiles.trim() !== ''
41
+ ? catalogs.runProfiles
42
+ : undefined,
40
43
  },
41
44
  supportedRuntimes: optionalStringArray(record, 'supported_runtimes'),
42
45
  };
@@ -47,6 +50,8 @@ export function readPlaybookManifest(root) {
47
50
  const manifest = parsePlaybookManifest(JSON.parse(readFileSync(manifestPath, 'utf8')));
48
51
  resolvePathInside(root, manifest.catalogs.roles);
49
52
  resolvePathInside(root, manifest.catalogs.pipelines);
53
+ if (manifest.catalogs.runProfiles)
54
+ resolvePathInside(root, manifest.catalogs.runProfiles);
50
55
  return manifest;
51
56
  }
52
57
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/playbook/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/playbook/manifest.ts"],"names":[],"mappings":"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"}