@revisium/orchestrator 0.2.0-alpha.2 → 0.2.0-alpha.4

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 (268) hide show
  1. package/README.md +3 -3
  2. package/control-plane/bootstrap.config.json +104 -550
  3. package/control-plane/default-playbook/catalog/pipelines.json +405 -1065
  4. package/control-plane/default-playbook/catalog/run-profiles.json +208 -0
  5. package/control-plane/default-playbook/package.json +1 -1
  6. package/control-plane/default-playbook/playbook.json +2 -1
  7. package/control-plane/default-playbook/prompts/developer.md +6 -6
  8. package/dist/__generated__/client/browser.js +18 -0
  9. package/dist/__generated__/client/browser.js.map +1 -0
  10. package/dist/__generated__/client/client.js +32 -0
  11. package/dist/__generated__/client/client.js.map +1 -0
  12. package/dist/__generated__/client/commonInputTypes.js +11 -0
  13. package/dist/__generated__/client/commonInputTypes.js.map +1 -0
  14. package/dist/__generated__/client/enums.js +19 -0
  15. package/dist/__generated__/client/enums.js.map +1 -0
  16. package/dist/__generated__/client/internal/class.js +53 -0
  17. package/dist/__generated__/client/internal/class.js.map +1 -0
  18. package/dist/__generated__/client/internal/prismaNamespace.js +451 -0
  19. package/dist/__generated__/client/internal/prismaNamespace.js.map +1 -0
  20. package/dist/__generated__/client/internal/prismaNamespaceBrowser.js +422 -0
  21. package/dist/__generated__/client/internal/prismaNamespaceBrowser.js.map +1 -0
  22. package/dist/__generated__/client/models/Branch.js +2 -0
  23. package/dist/__generated__/client/models/Branch.js.map +1 -0
  24. package/dist/__generated__/client/models/CostLedgerEntry.js +2 -0
  25. package/dist/__generated__/client/models/CostLedgerEntry.js.map +1 -0
  26. package/dist/__generated__/client/models/FileBlob.js +2 -0
  27. package/dist/__generated__/client/models/FileBlob.js.map +1 -0
  28. package/dist/__generated__/client/models/InboxItem.js +2 -0
  29. package/dist/__generated__/client/models/InboxItem.js.map +1 -0
  30. package/dist/__generated__/client/models/ProjectFileUsage.js +2 -0
  31. package/dist/__generated__/client/models/ProjectFileUsage.js.map +1 -0
  32. package/dist/__generated__/client/models/Revision.js +2 -0
  33. package/dist/__generated__/client/models/Revision.js.map +1 -0
  34. package/dist/__generated__/client/models/RevoProject.js +2 -0
  35. package/dist/__generated__/client/models/RevoProject.js.map +1 -0
  36. package/dist/__generated__/client/models/Row.js +2 -0
  37. package/dist/__generated__/client/models/Row.js.map +1 -0
  38. package/dist/__generated__/client/models/RunAttempt.js +2 -0
  39. package/dist/__generated__/client/models/RunAttempt.js.map +1 -0
  40. package/dist/__generated__/client/models/RunEvent.js +2 -0
  41. package/dist/__generated__/client/models/RunEvent.js.map +1 -0
  42. package/dist/__generated__/client/models/RunOutput.js +2 -0
  43. package/dist/__generated__/client/models/RunOutput.js.map +1 -0
  44. package/dist/__generated__/client/models/RunTask.js +2 -0
  45. package/dist/__generated__/client/models/RunTask.js.map +1 -0
  46. package/dist/__generated__/client/models/Table.js +2 -0
  47. package/dist/__generated__/client/models/Table.js.map +1 -0
  48. package/dist/__generated__/client/models/TableMigration.js +2 -0
  49. package/dist/__generated__/client/models/TableMigration.js.map +1 -0
  50. package/dist/__generated__/client/models/TaskRun.js +2 -0
  51. package/dist/__generated__/client/models/TaskRun.js.map +1 -0
  52. package/dist/__generated__/client/models.js +2 -0
  53. package/dist/__generated__/client/models.js.map +1 -0
  54. package/dist/api/graphql-api/graphql-ws/pubsub.module.js +2 -1
  55. package/dist/api/graphql-api/graphql-ws/pubsub.module.js.map +1 -1
  56. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js +110 -28
  57. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js.map +1 -1
  58. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js +3 -1
  59. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -1
  60. package/dist/api/graphql-api/inbox/inputs/resolve-gate.input.js +46 -0
  61. package/dist/api/graphql-api/inbox/inputs/resolve-gate.input.js.map +1 -1
  62. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js +6 -0
  63. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -1
  64. package/dist/api/graphql-api/registerGraphqlEnums.js +2 -0
  65. package/dist/api/graphql-api/registerGraphqlEnums.js.map +1 -1
  66. package/dist/api/graphql-api/runs/inputs/create-run.input.js +17 -0
  67. package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -1
  68. package/dist/api/graphql-api/runs/inputs/execution-profile.input.js +85 -0
  69. package/dist/api/graphql-api/runs/inputs/execution-profile.input.js.map +1 -0
  70. package/dist/api/graphql-api/runs/inputs/simulate-route.input.js +11 -0
  71. package/dist/api/graphql-api/runs/inputs/simulate-route.input.js.map +1 -1
  72. package/dist/api/graphql-api/runs/model/run-workflow.model.js +5 -0
  73. package/dist/api/graphql-api/runs/model/run-workflow.model.js.map +1 -1
  74. package/dist/api/graphql-api/share/model/issue-action.model.js +7 -0
  75. package/dist/api/graphql-api/share/model/issue-action.model.js.map +1 -0
  76. package/dist/cli/commands/doctor-report.js +1 -13
  77. package/dist/cli/commands/doctor-report.js.map +1 -1
  78. package/dist/cli/commands/lifecycle.js +50 -65
  79. package/dist/cli/commands/lifecycle.js.map +1 -1
  80. package/dist/cli/commands/{revisium-helpers.js → process-helpers.js} +1 -24
  81. package/dist/cli/commands/process-helpers.js.map +1 -0
  82. package/dist/config.js +17 -55
  83. package/dist/config.js.map +1 -1
  84. package/dist/control-plane/audit-validation-helpers.js +31 -0
  85. package/dist/control-plane/audit-validation-helpers.js.map +1 -0
  86. package/dist/control-plane/bootstrap-json-validator.js +65 -0
  87. package/dist/control-plane/bootstrap-json-validator.js.map +1 -0
  88. package/dist/control-plane/bootstrap.js +25 -38
  89. package/dist/control-plane/bootstrap.js.map +1 -1
  90. package/dist/control-plane/change-notifications.js +45 -14
  91. package/dist/control-plane/change-notifications.js.map +1 -1
  92. package/dist/control-plane/data-access.js +1 -106
  93. package/dist/control-plane/data-access.js.map +1 -1
  94. package/dist/control-plane/default-playbook-policy.js +499 -78
  95. package/dist/control-plane/default-playbook-policy.js.map +1 -1
  96. package/dist/control-plane/definitions.js +4 -5
  97. package/dist/control-plane/definitions.js.map +1 -1
  98. package/dist/control-plane/engine-transport.js +381 -0
  99. package/dist/control-plane/engine-transport.js.map +1 -0
  100. package/dist/control-plane/inbox.js +15 -7
  101. package/dist/control-plane/inbox.js.map +1 -1
  102. package/dist/control-plane/index.js +0 -1
  103. package/dist/control-plane/index.js.map +1 -1
  104. package/dist/control-plane/manual-adoption-audit.js +3 -24
  105. package/dist/control-plane/manual-adoption-audit.js.map +1 -1
  106. package/dist/control-plane/merge-override-audit.js +44 -0
  107. package/dist/control-plane/merge-override-audit.js.map +1 -0
  108. package/dist/control-plane/pipeline-coverage-registry.js +478 -0
  109. package/dist/control-plane/pipeline-coverage-registry.js.map +1 -0
  110. package/dist/control-plane/query-types.js +2 -0
  111. package/dist/control-plane/query-types.js.map +1 -0
  112. package/dist/control-plane/run-profiles.js +89 -0
  113. package/dist/control-plane/run-profiles.js.map +1 -0
  114. package/dist/control-plane/schema-migration.js +0 -35
  115. package/dist/control-plane/schema-migration.js.map +1 -1
  116. package/dist/control-plane/seed-default-playbook.js +2 -31
  117. package/dist/control-plane/seed-default-playbook.js.map +1 -1
  118. package/dist/control-plane/tables.js +8 -0
  119. package/dist/control-plane/tables.js.map +1 -1
  120. package/dist/control-plane/transport.js +16 -0
  121. package/dist/control-plane/transport.js.map +1 -0
  122. package/dist/control-plane/versioned-meaning.js +56 -14
  123. package/dist/control-plane/versioned-meaning.js.map +1 -1
  124. package/dist/e2e/kit/agents.js +60 -6
  125. package/dist/e2e/kit/agents.js.map +1 -1
  126. package/dist/e2e/kit/assertions.js +13 -1
  127. package/dist/e2e/kit/assertions.js.map +1 -1
  128. package/dist/e2e/kit/drive.js +46 -11
  129. package/dist/e2e/kit/drive.js.map +1 -1
  130. package/dist/e2e/kit/env.js +17 -1
  131. package/dist/e2e/kit/env.js.map +1 -1
  132. package/dist/e2e/kit/fake-integrator.js +25 -5
  133. package/dist/e2e/kit/fake-integrator.js.map +1 -1
  134. package/dist/e2e/kit/gh-emulator.js +172 -40
  135. package/dist/e2e/kit/gh-emulator.js.map +1 -1
  136. package/dist/e2e/kit/harness.js +44 -10
  137. package/dist/e2e/kit/harness.js.map +1 -1
  138. package/dist/e2e/kit/index.js +1 -0
  139. package/dist/e2e/kit/index.js.map +1 -1
  140. package/dist/e2e/kit/scenario.js +165 -0
  141. package/dist/e2e/kit/scenario.js.map +1 -0
  142. package/dist/e2e/kit/scenarios.js +12 -18
  143. package/dist/e2e/kit/scenarios.js.map +1 -1
  144. package/dist/engine/dbos.service.js +8 -1
  145. package/dist/engine/dbos.service.js.map +1 -1
  146. package/dist/features/inbox/commands/impl/resolve-gate.command.js.map +1 -1
  147. package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -1
  148. package/dist/features/runs/commands/impl/create-run.command.js.map +1 -1
  149. package/dist/host/daemon.js +32 -8
  150. package/dist/host/daemon.js.map +1 -1
  151. package/dist/host/ensure-host.js +3 -3
  152. package/dist/host/ensure-host.js.map +1 -1
  153. package/dist/host/host-runtime.js.map +1 -1
  154. package/dist/host/host.lifecycle.js +3 -16
  155. package/dist/host/host.lifecycle.js.map +1 -1
  156. package/dist/http/graphql-host.js +17 -8
  157. package/dist/http/graphql-host.js.map +1 -1
  158. package/dist/mcp/mcp-capabilities.js +12 -11
  159. package/dist/mcp/mcp-capabilities.js.map +1 -1
  160. package/dist/mcp/mcp-facade.service.js +45 -5
  161. package/dist/mcp/mcp-facade.service.js.map +1 -1
  162. package/dist/mcp/mcp-tools.js +59 -5
  163. package/dist/mcp/mcp-tools.js.map +1 -1
  164. package/dist/mcp/monitoring-directive.js +43 -0
  165. package/dist/mcp/monitoring-directive.js.map +1 -0
  166. package/dist/pipeline/data-driven-task.workflow.js +393 -182
  167. package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
  168. package/dist/pipeline/pipeline.service.js +27 -5
  169. package/dist/pipeline/pipeline.service.js.map +1 -1
  170. package/dist/pipeline/route-contract.js +123 -3
  171. package/dist/pipeline/route-contract.js.map +1 -1
  172. package/dist/pipeline-core/condition-scopes.js +15 -0
  173. package/dist/pipeline-core/condition-scopes.js.map +1 -0
  174. package/dist/pipeline-core/index.js +2 -0
  175. package/dist/pipeline-core/index.js.map +1 -1
  176. package/dist/pipeline-core/kit/fixtures.js +81 -44
  177. package/dist/pipeline-core/kit/fixtures.js.map +1 -1
  178. package/dist/pipeline-core/materialize.js +221 -0
  179. package/dist/pipeline-core/materialize.js.map +1 -0
  180. package/dist/pipeline-core/types.js +5 -0
  181. package/dist/pipeline-core/types.js.map +1 -1
  182. package/dist/pipeline-core/validate-loops.js +2 -15
  183. package/dist/pipeline-core/validate-loops.js.map +1 -1
  184. package/dist/pipeline-core/validate-resilience.js +257 -0
  185. package/dist/pipeline-core/validate-resilience.js.map +1 -0
  186. package/dist/pipeline-core/validate.js +2 -0
  187. package/dist/pipeline-core/validate.js.map +1 -1
  188. package/dist/playbook/catalog-loader.js +39 -2
  189. package/dist/playbook/catalog-loader.js.map +1 -1
  190. package/dist/playbook/catalog-schema-validator.js +438 -0
  191. package/dist/playbook/catalog-schema-validator.js.map +1 -0
  192. package/dist/playbook/import-mapper.js +41 -0
  193. package/dist/playbook/import-mapper.js.map +1 -1
  194. package/dist/playbook/manifest.js +5 -0
  195. package/dist/playbook/manifest.js.map +1 -1
  196. package/dist/playbook/playbook-installer.js +17 -1
  197. package/dist/playbook/playbook-installer.js.map +1 -1
  198. package/dist/poller/pr-readiness-core.js +280 -94
  199. package/dist/poller/pr-readiness-core.js.map +1 -1
  200. package/dist/poller/pr-readiness.js +2 -2
  201. package/dist/poller/pr-readiness.js.map +1 -1
  202. package/dist/revisium/inbox.service.js +8 -8
  203. package/dist/revisium/inbox.service.js.map +1 -1
  204. package/dist/revisium/playbooks.service.js +116 -21
  205. package/dist/revisium/playbooks.service.js.map +1 -1
  206. package/dist/revisium/revisium.module.js +8 -8
  207. package/dist/revisium/revisium.module.js.map +1 -1
  208. package/dist/revisium/roles.service.js +3 -1
  209. package/dist/revisium/roles.service.js.map +1 -1
  210. package/dist/revisium/run.service.js +9 -8
  211. package/dist/revisium/run.service.js.map +1 -1
  212. package/dist/revisium/tokens.js +0 -1
  213. package/dist/revisium/tokens.js.map +1 -1
  214. package/dist/run/create-run.js +1 -1
  215. package/dist/run/create-run.js.map +1 -1
  216. package/dist/run/inspect-run.js +32 -28
  217. package/dist/run/inspect-run.js.map +1 -1
  218. package/dist/run/issue-ref.js +97 -2
  219. package/dist/run/issue-ref.js.map +1 -1
  220. package/dist/run/prisma-runtime-data-access.js +619 -0
  221. package/dist/run/prisma-runtime-data-access.js.map +1 -0
  222. package/dist/run/run-outputs.js +39 -14
  223. package/dist/run/run-outputs.js.map +1 -1
  224. package/dist/run/terminal-run-status.js.map +1 -1
  225. package/dist/runners/integrator.js +657 -56
  226. package/dist/runners/integrator.js.map +1 -1
  227. package/dist/runners/worktree.service.js +10 -8
  228. package/dist/runners/worktree.service.js.map +1 -1
  229. package/dist/schema/ajv-errors.js +15 -0
  230. package/dist/schema/ajv-errors.js.map +1 -0
  231. package/dist/smoke/isolation.js +7 -16
  232. package/dist/smoke/isolation.js.map +1 -1
  233. package/dist/storage/ensure-storage.js +117 -0
  234. package/dist/storage/ensure-storage.js.map +1 -0
  235. package/dist/storage/revo-database.js +39 -0
  236. package/dist/storage/revo-database.js.map +1 -0
  237. package/dist/storage/revo-prisma.service.js +31 -0
  238. package/dist/storage/revo-prisma.service.js.map +1 -0
  239. package/dist/storage/revo-storage.module.js +18 -0
  240. package/dist/storage/revo-storage.module.js.map +1 -0
  241. package/dist/task-control-plane/pr-readiness.service.js +5 -2
  242. package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
  243. package/dist/task-control-plane/run-watch.service.js +3 -6
  244. package/dist/task-control-plane/run-watch.service.js.map +1 -1
  245. package/dist/task-control-plane/task-control-plane-api.service.js +234 -43
  246. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  247. package/dist/testing/runtime-data-access.js +175 -0
  248. package/dist/testing/runtime-data-access.js.map +1 -0
  249. package/dist/worker/build-context.js +178 -2
  250. package/dist/worker/build-context.js.map +1 -1
  251. package/dist/worker/claude-code-runner.js +22 -3
  252. package/dist/worker/claude-code-runner.js.map +1 -1
  253. package/dist/worker/codex-runner.js +6 -1
  254. package/dist/worker/codex-runner.js.map +1 -1
  255. package/package.json +20 -7
  256. package/prisma/migrations/20260707080500_initial_schema/migration.sql +259 -0
  257. package/prisma/migrations/20260707103000_prisma_runtime_tables/migration.sql +235 -0
  258. package/prisma/migrations/migration_lock.toml +3 -0
  259. package/prisma/schema.prisma +339 -0
  260. package/prisma.config.ts +11 -0
  261. package/dist/cli/commands/revisium-helpers.js.map +0 -1
  262. package/dist/control-plane/client-transport.js +0 -168
  263. package/dist/control-plane/client-transport.js.map +0 -1
  264. package/dist/engine/ensure-postgres.js +0 -46
  265. package/dist/engine/ensure-postgres.js.map +0 -1
  266. package/dist/host/ensure-revisium.js +0 -135
  267. package/dist/host/ensure-revisium.js.map +0 -1
  268. package/revisium.config.json +0 -10
@@ -0,0 +1,438 @@
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 runProfileCatalogRecordSchema = {
363
+ type: 'object',
364
+ required: [
365
+ 'id',
366
+ 'pipelineId',
367
+ 'schemaVersion',
368
+ 'version',
369
+ 'displayName',
370
+ 'summary',
371
+ 'topology',
372
+ 'bindings',
373
+ 'status',
374
+ ],
375
+ properties: {
376
+ id: NON_EMPTY_STRING,
377
+ pipelineId: NON_EMPTY_STRING,
378
+ schemaVersion: { const: 'run-profile/v1' },
379
+ version: NON_EMPTY_STRING,
380
+ displayName: NON_EMPTY_STRING,
381
+ summary: NON_EMPTY_STRING,
382
+ topology: {
383
+ type: 'object',
384
+ required: ['stages'],
385
+ properties: {
386
+ stages: {
387
+ type: 'object',
388
+ minProperties: 1,
389
+ additionalProperties: stageSchema,
390
+ },
391
+ },
392
+ additionalProperties: false,
393
+ },
394
+ bindings: {
395
+ type: 'object',
396
+ required: ['slots'],
397
+ properties: {
398
+ slots: {
399
+ type: 'object',
400
+ minProperties: 1,
401
+ additionalProperties: {
402
+ type: 'object',
403
+ properties: {
404
+ runnerId: NON_EMPTY_STRING,
405
+ modelLevel: { enum: VALID_MODEL_LEVELS },
406
+ timeoutMs: { type: 'integer', minimum: 1 },
407
+ permissionMode: NON_EMPTY_STRING,
408
+ },
409
+ additionalProperties: false,
410
+ anyOf: [
411
+ { required: ['runnerId'] },
412
+ { required: ['modelLevel'] },
413
+ { required: ['timeoutMs'] },
414
+ { required: ['permissionMode'] },
415
+ ],
416
+ },
417
+ },
418
+ },
419
+ additionalProperties: false,
420
+ },
421
+ status: { enum: ['active', 'deprecated'] },
422
+ },
423
+ additionalProperties: false,
424
+ };
425
+ const validatePipelineExecutionPolicy = ajv.compile(pipelineExecutionPolicySchema);
426
+ const validateRunProfileCatalogRecord = ajv.compile(runProfileCatalogRecordSchema);
427
+ function assertValid(validate, value, context, schemaName) {
428
+ if (validate(value))
429
+ return;
430
+ throw new PlaybookError('PLAYBOOK_INVALID_CATALOG', `${context} violates ${schemaName} schema: ${formatAjvErrors(validate.errors)}`);
431
+ }
432
+ export function assertValidPipelineExecutionPolicy(value, context) {
433
+ assertValid(validatePipelineExecutionPolicy, value, context, 'pipeline execution_policy');
434
+ }
435
+ export function assertValidRunProfileCatalogRecord(value, context) {
436
+ assertValid(validateRunProfileCatalogRecord, value, context, 'run-profile/v1');
437
+ }
438
+ //# 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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"}
@@ -96,6 +96,7 @@ function mapRole(root, playbookId, role, now) {
96
96
  rights: role.rights,
97
97
  timeout_ms: 0,
98
98
  permission_mode: 'default',
99
+ status: 'active',
99
100
  updated_at: now,
100
101
  },
101
102
  };
@@ -117,6 +118,42 @@ function mapPipeline(playbookId, pipeline, now) {
117
118
  route_gates: normalizeRouteGates(pipeline.routeGates),
118
119
  platform_invocation: pipeline.platformInvocation,
119
120
  execution_policy_json: JSON.stringify(pipeline.executionPolicy),
121
+ status: 'active',
122
+ updated_at: now,
123
+ },
124
+ };
125
+ }
126
+ function mapRunProfile(playbookId, profile, now, sourcePath) {
127
+ const importedProfileId = scopedImportRowId(playbookId, profile.id);
128
+ const profileJson = {
129
+ id: profile.id,
130
+ pipelineId: profile.pipelineId,
131
+ schemaVersion: profile.schemaVersion,
132
+ version: profile.version,
133
+ displayName: profile.displayName,
134
+ summary: profile.summary,
135
+ topology: profile.topology,
136
+ bindings: profile.bindings,
137
+ status: profile.status,
138
+ };
139
+ const profileHash = hash(profileJson);
140
+ return {
141
+ table: 'run_profiles',
142
+ rowId: importedProfileId,
143
+ data: {
144
+ id: importedProfileId,
145
+ playbook_id: playbookId,
146
+ pipeline_id: profile.pipelineId,
147
+ profile_id: profile.id,
148
+ schema_version: profile.schemaVersion,
149
+ version: profile.version,
150
+ display_name: profile.displayName,
151
+ summary: profile.summary,
152
+ profile_json: JSON.stringify(profileJson),
153
+ profile_hash: profileHash,
154
+ status: profile.status,
155
+ source_path: sourcePath,
156
+ source_hash: profileHash,
120
157
  updated_at: now,
121
158
  },
122
159
  };
@@ -126,10 +163,12 @@ export function mapPlaybookRows(options) {
126
163
  const playbookId = options.nameOverride ?? options.manifest.id;
127
164
  const version = options.versionOverride ?? options.source.version;
128
165
  const roleRows = options.catalogs.roles.map((role) => mapRole(options.root, playbookId, role, now));
166
+ const runProfileRows = options.catalogs.runProfiles.map((profile) => mapRunProfile(playbookId, profile, now, options.manifest.catalogs.runProfiles ?? ''));
129
167
  const catalogHash = hash({
130
168
  manifest: options.manifest,
131
169
  roles: options.catalogs.roles,
132
170
  pipelines: options.catalogs.pipelines,
171
+ runProfiles: options.catalogs.runProfiles,
133
172
  prompts: roleRows.map((r) => ({ role: r.data.playbook_role_id, hash: r.data.source_hash })),
134
173
  });
135
174
  const playbook = {
@@ -145,6 +184,7 @@ export function mapPlaybookRows(options) {
145
184
  manifest_path: 'playbook.json',
146
185
  roles_catalog_path: options.manifest.catalogs.roles,
147
186
  pipelines_catalog_path: options.manifest.catalogs.pipelines,
187
+ run_profiles_catalog_path: options.manifest.catalogs.runProfiles ?? '',
148
188
  catalog_hash: catalogHash,
149
189
  installed_at: now,
150
190
  updated_at: now,
@@ -155,6 +195,7 @@ export function mapPlaybookRows(options) {
155
195
  playbook,
156
196
  roles: roleRows,
157
197
  pipelines: options.catalogs.pipelines.map((pipeline) => mapPipeline(playbookId, pipeline, now)),
198
+ runProfiles: runProfileRows,
158
199
  catalogHash,
159
200
  };
160
201
  }
@@ -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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"}
@@ -19,7 +19,10 @@ export class PlaybookInstaller {
19
19
  nameOverride: options.name,
20
20
  versionOverride: options.version,
21
21
  });
22
- const allRows = [rows.playbook, ...rows.roles, ...rows.pipelines];
22
+ const allRows = [rows.playbook, ...rows.roles, ...rows.pipelines, ...rows.runProfiles];
23
+ const updatedAt = typeof rows.playbook.data.updated_at === 'string'
24
+ ? rows.playbook.data.updated_at
25
+ : new Date().toISOString();
23
26
  const operations = options.dryRun
24
27
  ? allRows.map((row) => ({ action: 'dry-run', table: row.table, rowId: row.rowId }))
25
28
  : [];
@@ -27,6 +30,18 @@ export class PlaybookInstaller {
27
30
  for (const row of allRows) {
28
31
  operations.push(await this.deps.access.upsertRow(row));
29
32
  }
33
+ for (const group of [
34
+ { table: 'roles', current: rows.roles },
35
+ { table: 'pipelines', current: rows.pipelines },
36
+ { table: 'run_profiles', current: rows.runProfiles },
37
+ ]) {
38
+ operations.push(...await this.deps.access.retireMissingRows({
39
+ table: group.table,
40
+ playbookId: rows.playbookId,
41
+ keepRowIds: group.current.map((row) => row.rowId),
42
+ retiredAt: updatedAt,
43
+ }));
44
+ }
30
45
  }
31
46
  let revisionId;
32
47
  if (options.commit && !options.dryRun) {
@@ -41,6 +56,7 @@ export class PlaybookInstaller {
41
56
  source: source.source,
42
57
  roles: rows.roles.length,
43
58
  pipelines: rows.pipelines.length,
59
+ runProfiles: rows.runProfiles.length,
44
60
  operations,
45
61
  committed: Boolean(options.commit && !options.dryRun),
46
62
  dryRun: Boolean(options.dryRun),
@@ -1 +1 @@
1
- {"version":3,"file":"playbook-installer.js","sourceRoot":"","sources":["../../src/playbook/playbook-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,eAAe,EAAqB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAA8B,MAAM,sBAAsB,CAAC;AA6BzF,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,IAA2B;QAA3B,SAAI,GAAJ,IAAI,CAAuB;IAAG,CAAC;IAE5D,KAAK,CAAC,OAAO,CAAC,OAA+B;QAC3C,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,eAAe,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,YAAY,EAAE,OAAO,CAAC,IAAI;YAC1B,eAAe,EAAE,OAAO,CAAC,OAAO;SACjC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAClF,MAAM,UAAU,GAAgC,OAAO,CAAC,MAAM;YAC5D,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YACnF,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,IAAI,UAA8B,CAAC;QACnC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,oBAAoB,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC9D,UAAU,GAAG,OAAO,QAAQ,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,CAAC;QAED,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO;YAC1C,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;YAChC,UAAU;YACV,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACrD,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC/B,UAAU;SACX,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"playbook-installer.js","sourceRoot":"","sources":["../../src/playbook/playbook-installer.ts"],"names":[],"mappings":"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"}