@revisium/orchestrator 0.2.0-alpha.3 → 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 (259) 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 +394 -1122
  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/pr/inputs/pr-readiness.input.js +6 -0
  61. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -1
  62. package/dist/api/graphql-api/registerGraphqlEnums.js +2 -0
  63. package/dist/api/graphql-api/registerGraphqlEnums.js.map +1 -1
  64. package/dist/api/graphql-api/runs/inputs/create-run.input.js +17 -0
  65. package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -1
  66. package/dist/api/graphql-api/runs/inputs/execution-profile.input.js +85 -0
  67. package/dist/api/graphql-api/runs/inputs/execution-profile.input.js.map +1 -0
  68. package/dist/api/graphql-api/runs/inputs/simulate-route.input.js +11 -0
  69. package/dist/api/graphql-api/runs/inputs/simulate-route.input.js.map +1 -1
  70. package/dist/api/graphql-api/runs/model/run-workflow.model.js +5 -0
  71. package/dist/api/graphql-api/runs/model/run-workflow.model.js.map +1 -1
  72. package/dist/api/graphql-api/share/model/issue-action.model.js +7 -0
  73. package/dist/api/graphql-api/share/model/issue-action.model.js.map +1 -0
  74. package/dist/cli/commands/doctor-report.js +1 -13
  75. package/dist/cli/commands/doctor-report.js.map +1 -1
  76. package/dist/cli/commands/lifecycle.js +50 -65
  77. package/dist/cli/commands/lifecycle.js.map +1 -1
  78. package/dist/cli/commands/{revisium-helpers.js → process-helpers.js} +1 -24
  79. package/dist/cli/commands/process-helpers.js.map +1 -0
  80. package/dist/config.js +17 -55
  81. package/dist/config.js.map +1 -1
  82. package/dist/control-plane/bootstrap-json-validator.js +65 -0
  83. package/dist/control-plane/bootstrap-json-validator.js.map +1 -0
  84. package/dist/control-plane/bootstrap.js +25 -38
  85. package/dist/control-plane/bootstrap.js.map +1 -1
  86. package/dist/control-plane/change-notifications.js +45 -14
  87. package/dist/control-plane/change-notifications.js.map +1 -1
  88. package/dist/control-plane/data-access.js +1 -106
  89. package/dist/control-plane/data-access.js.map +1 -1
  90. package/dist/control-plane/default-playbook-policy.js +497 -94
  91. package/dist/control-plane/default-playbook-policy.js.map +1 -1
  92. package/dist/control-plane/definitions.js +4 -5
  93. package/dist/control-plane/definitions.js.map +1 -1
  94. package/dist/control-plane/engine-transport.js +381 -0
  95. package/dist/control-plane/engine-transport.js.map +1 -0
  96. package/dist/control-plane/inbox.js +15 -7
  97. package/dist/control-plane/inbox.js.map +1 -1
  98. package/dist/control-plane/index.js +0 -1
  99. package/dist/control-plane/index.js.map +1 -1
  100. package/dist/control-plane/merge-override-audit.js +2 -2
  101. package/dist/control-plane/merge-override-audit.js.map +1 -1
  102. package/dist/control-plane/pipeline-coverage-registry.js +478 -0
  103. package/dist/control-plane/pipeline-coverage-registry.js.map +1 -0
  104. package/dist/control-plane/query-types.js +2 -0
  105. package/dist/control-plane/query-types.js.map +1 -0
  106. package/dist/control-plane/run-profiles.js +89 -0
  107. package/dist/control-plane/run-profiles.js.map +1 -0
  108. package/dist/control-plane/schema-migration.js +0 -35
  109. package/dist/control-plane/schema-migration.js.map +1 -1
  110. package/dist/control-plane/seed-default-playbook.js +2 -31
  111. package/dist/control-plane/seed-default-playbook.js.map +1 -1
  112. package/dist/control-plane/tables.js +8 -0
  113. package/dist/control-plane/tables.js.map +1 -1
  114. package/dist/control-plane/transport.js +16 -0
  115. package/dist/control-plane/transport.js.map +1 -0
  116. package/dist/control-plane/versioned-meaning.js +56 -14
  117. package/dist/control-plane/versioned-meaning.js.map +1 -1
  118. package/dist/e2e/kit/agents.js +60 -6
  119. package/dist/e2e/kit/agents.js.map +1 -1
  120. package/dist/e2e/kit/assertions.js +13 -1
  121. package/dist/e2e/kit/assertions.js.map +1 -1
  122. package/dist/e2e/kit/drive.js +46 -11
  123. package/dist/e2e/kit/drive.js.map +1 -1
  124. package/dist/e2e/kit/env.js +17 -1
  125. package/dist/e2e/kit/env.js.map +1 -1
  126. package/dist/e2e/kit/fake-integrator.js +25 -5
  127. package/dist/e2e/kit/fake-integrator.js.map +1 -1
  128. package/dist/e2e/kit/gh-emulator.js +158 -24
  129. package/dist/e2e/kit/gh-emulator.js.map +1 -1
  130. package/dist/e2e/kit/harness.js +44 -10
  131. package/dist/e2e/kit/harness.js.map +1 -1
  132. package/dist/e2e/kit/index.js +1 -0
  133. package/dist/e2e/kit/index.js.map +1 -1
  134. package/dist/e2e/kit/scenario.js +165 -0
  135. package/dist/e2e/kit/scenario.js.map +1 -0
  136. package/dist/e2e/kit/scenarios.js +12 -18
  137. package/dist/e2e/kit/scenarios.js.map +1 -1
  138. package/dist/engine/dbos.service.js +8 -1
  139. package/dist/engine/dbos.service.js.map +1 -1
  140. package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -1
  141. package/dist/features/runs/commands/impl/create-run.command.js.map +1 -1
  142. package/dist/host/daemon.js +32 -8
  143. package/dist/host/daemon.js.map +1 -1
  144. package/dist/host/ensure-host.js +3 -3
  145. package/dist/host/ensure-host.js.map +1 -1
  146. package/dist/host/host-runtime.js.map +1 -1
  147. package/dist/host/host.lifecycle.js +3 -16
  148. package/dist/host/host.lifecycle.js.map +1 -1
  149. package/dist/http/graphql-host.js +17 -8
  150. package/dist/http/graphql-host.js.map +1 -1
  151. package/dist/mcp/mcp-capabilities.js +3 -2
  152. package/dist/mcp/mcp-capabilities.js.map +1 -1
  153. package/dist/mcp/mcp-facade.service.js +21 -0
  154. package/dist/mcp/mcp-facade.service.js.map +1 -1
  155. package/dist/mcp/mcp-tools.js +35 -1
  156. package/dist/mcp/mcp-tools.js.map +1 -1
  157. package/dist/pipeline/data-driven-task.workflow.js +276 -57
  158. package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
  159. package/dist/pipeline/pipeline.service.js +27 -5
  160. package/dist/pipeline/pipeline.service.js.map +1 -1
  161. package/dist/pipeline/route-contract.js +123 -3
  162. package/dist/pipeline/route-contract.js.map +1 -1
  163. package/dist/pipeline-core/condition-scopes.js +15 -0
  164. package/dist/pipeline-core/condition-scopes.js.map +1 -0
  165. package/dist/pipeline-core/index.js +2 -0
  166. package/dist/pipeline-core/index.js.map +1 -1
  167. package/dist/pipeline-core/kit/fixtures.js +81 -44
  168. package/dist/pipeline-core/kit/fixtures.js.map +1 -1
  169. package/dist/pipeline-core/materialize.js +221 -0
  170. package/dist/pipeline-core/materialize.js.map +1 -0
  171. package/dist/pipeline-core/types.js +5 -0
  172. package/dist/pipeline-core/types.js.map +1 -1
  173. package/dist/pipeline-core/validate-loops.js +2 -15
  174. package/dist/pipeline-core/validate-loops.js.map +1 -1
  175. package/dist/pipeline-core/validate-resilience.js +257 -0
  176. package/dist/pipeline-core/validate-resilience.js.map +1 -0
  177. package/dist/pipeline-core/validate.js +2 -0
  178. package/dist/pipeline-core/validate.js.map +1 -1
  179. package/dist/playbook/catalog-loader.js +39 -2
  180. package/dist/playbook/catalog-loader.js.map +1 -1
  181. package/dist/playbook/catalog-schema-validator.js +438 -0
  182. package/dist/playbook/catalog-schema-validator.js.map +1 -0
  183. package/dist/playbook/import-mapper.js +41 -0
  184. package/dist/playbook/import-mapper.js.map +1 -1
  185. package/dist/playbook/manifest.js +5 -0
  186. package/dist/playbook/manifest.js.map +1 -1
  187. package/dist/playbook/playbook-installer.js +17 -1
  188. package/dist/playbook/playbook-installer.js.map +1 -1
  189. package/dist/poller/pr-readiness-core.js +257 -93
  190. package/dist/poller/pr-readiness-core.js.map +1 -1
  191. package/dist/poller/pr-readiness.js +2 -2
  192. package/dist/poller/pr-readiness.js.map +1 -1
  193. package/dist/revisium/inbox.service.js +8 -8
  194. package/dist/revisium/inbox.service.js.map +1 -1
  195. package/dist/revisium/playbooks.service.js +116 -21
  196. package/dist/revisium/playbooks.service.js.map +1 -1
  197. package/dist/revisium/revisium.module.js +8 -8
  198. package/dist/revisium/revisium.module.js.map +1 -1
  199. package/dist/revisium/roles.service.js +3 -1
  200. package/dist/revisium/roles.service.js.map +1 -1
  201. package/dist/revisium/run.service.js +9 -8
  202. package/dist/revisium/run.service.js.map +1 -1
  203. package/dist/revisium/tokens.js +0 -1
  204. package/dist/revisium/tokens.js.map +1 -1
  205. package/dist/run/create-run.js +1 -1
  206. package/dist/run/create-run.js.map +1 -1
  207. package/dist/run/inspect-run.js +32 -28
  208. package/dist/run/inspect-run.js.map +1 -1
  209. package/dist/run/issue-ref.js +97 -2
  210. package/dist/run/issue-ref.js.map +1 -1
  211. package/dist/run/prisma-runtime-data-access.js +619 -0
  212. package/dist/run/prisma-runtime-data-access.js.map +1 -0
  213. package/dist/run/run-outputs.js +39 -14
  214. package/dist/run/run-outputs.js.map +1 -1
  215. package/dist/run/terminal-run-status.js.map +1 -1
  216. package/dist/runners/integrator.js +657 -56
  217. package/dist/runners/integrator.js.map +1 -1
  218. package/dist/runners/worktree.service.js +10 -8
  219. package/dist/runners/worktree.service.js.map +1 -1
  220. package/dist/schema/ajv-errors.js +15 -0
  221. package/dist/schema/ajv-errors.js.map +1 -0
  222. package/dist/smoke/isolation.js +7 -16
  223. package/dist/smoke/isolation.js.map +1 -1
  224. package/dist/storage/ensure-storage.js +117 -0
  225. package/dist/storage/ensure-storage.js.map +1 -0
  226. package/dist/storage/revo-database.js +39 -0
  227. package/dist/storage/revo-database.js.map +1 -0
  228. package/dist/storage/revo-prisma.service.js +31 -0
  229. package/dist/storage/revo-prisma.service.js.map +1 -0
  230. package/dist/storage/revo-storage.module.js +18 -0
  231. package/dist/storage/revo-storage.module.js.map +1 -0
  232. package/dist/task-control-plane/pr-readiness.service.js +5 -2
  233. package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
  234. package/dist/task-control-plane/run-watch.service.js +3 -6
  235. package/dist/task-control-plane/run-watch.service.js.map +1 -1
  236. package/dist/task-control-plane/task-control-plane-api.service.js +225 -43
  237. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  238. package/dist/testing/runtime-data-access.js +175 -0
  239. package/dist/testing/runtime-data-access.js.map +1 -0
  240. package/dist/worker/build-context.js +178 -2
  241. package/dist/worker/build-context.js.map +1 -1
  242. package/dist/worker/claude-code-runner.js +22 -3
  243. package/dist/worker/claude-code-runner.js.map +1 -1
  244. package/dist/worker/codex-runner.js +6 -1
  245. package/dist/worker/codex-runner.js.map +1 -1
  246. package/package.json +20 -7
  247. package/prisma/migrations/20260707080500_initial_schema/migration.sql +259 -0
  248. package/prisma/migrations/20260707103000_prisma_runtime_tables/migration.sql +235 -0
  249. package/prisma/migrations/migration_lock.toml +3 -0
  250. package/prisma/schema.prisma +339 -0
  251. package/prisma.config.ts +11 -0
  252. package/dist/cli/commands/revisium-helpers.js.map +0 -1
  253. package/dist/control-plane/client-transport.js +0 -168
  254. package/dist/control-plane/client-transport.js.map +0 -1
  255. package/dist/engine/ensure-postgres.js +0 -46
  256. package/dist/engine/ensure-postgres.js.map +0 -1
  257. package/dist/host/ensure-revisium.js +0 -135
  258. package/dist/host/ensure-revisium.js.map +0 -1
  259. package/revisium.config.json +0 -10
@@ -0,0 +1,259 @@
1
+ -- CreateSchema
2
+ CREATE SCHEMA IF NOT EXISTS "public";
3
+
4
+ -- CreateEnum
5
+ CREATE TYPE "RevoProjectKind" AS ENUM ('USER', 'SYSTEM');
6
+
7
+ -- CreateEnum
8
+ CREATE TYPE "RevoProjectStatus" AS ENUM ('ACTIVE', 'ARCHIVED', 'DELETED');
9
+
10
+ -- CreateTable
11
+ CREATE TABLE "RevoProject" (
12
+ "id" TEXT NOT NULL,
13
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
14
+ "updatedAt" TIMESTAMP(3) NOT NULL,
15
+ "deletedAt" TIMESTAMP(3),
16
+ "kind" "RevoProjectKind" NOT NULL DEFAULT 'USER',
17
+ "name" TEXT NOT NULL,
18
+ "slug" TEXT NOT NULL,
19
+ "status" "RevoProjectStatus" NOT NULL DEFAULT 'ACTIVE',
20
+
21
+ CONSTRAINT "RevoProject_pkey" PRIMARY KEY ("id")
22
+ );
23
+
24
+ -- CreateTable
25
+ CREATE TABLE "Branch" (
26
+ "id" TEXT NOT NULL,
27
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
28
+ "isRoot" BOOLEAN NOT NULL DEFAULT false,
29
+ "name" TEXT NOT NULL,
30
+ "projectId" TEXT NOT NULL,
31
+
32
+ CONSTRAINT "Branch_pkey" PRIMARY KEY ("id")
33
+ );
34
+
35
+ -- CreateTable
36
+ CREATE TABLE "Revision" (
37
+ "id" TEXT NOT NULL,
38
+ "sequence" SERIAL NOT NULL,
39
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
40
+ "comment" TEXT NOT NULL DEFAULT '',
41
+ "isHead" BOOLEAN NOT NULL DEFAULT false,
42
+ "isDraft" BOOLEAN NOT NULL DEFAULT false,
43
+ "isStart" BOOLEAN NOT NULL DEFAULT false,
44
+ "hasChanges" BOOLEAN NOT NULL DEFAULT false,
45
+ "branchId" TEXT NOT NULL,
46
+ "parentId" TEXT,
47
+
48
+ CONSTRAINT "Revision_pkey" PRIMARY KEY ("id")
49
+ );
50
+
51
+ -- CreateTable
52
+ CREATE TABLE "Table" (
53
+ "versionId" TEXT NOT NULL,
54
+ "createdId" TEXT NOT NULL,
55
+ "id" TEXT NOT NULL,
56
+ "readonly" BOOLEAN NOT NULL DEFAULT false,
57
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
58
+ "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
59
+ "system" BOOLEAN NOT NULL DEFAULT false,
60
+
61
+ CONSTRAINT "Table_pkey" PRIMARY KEY ("versionId")
62
+ );
63
+
64
+ -- CreateTable
65
+ CREATE TABLE "Row" (
66
+ "versionId" TEXT NOT NULL,
67
+ "createdId" TEXT NOT NULL,
68
+ "id" TEXT NOT NULL,
69
+ "readonly" BOOLEAN NOT NULL DEFAULT false,
70
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
71
+ "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
72
+ "publishedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
73
+ "data" JSONB NOT NULL,
74
+ "meta" JSONB NOT NULL DEFAULT '{}',
75
+ "hash" TEXT NOT NULL,
76
+ "schemaHash" TEXT NOT NULL,
77
+
78
+ CONSTRAINT "Row_pkey" PRIMARY KEY ("versionId")
79
+ );
80
+
81
+ -- CreateTable
82
+ CREATE TABLE "FileBlob" (
83
+ "id" TEXT NOT NULL,
84
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
85
+ "deletedAt" TIMESTAMP(3),
86
+ "projectId" TEXT NOT NULL,
87
+ "hash" TEXT NOT NULL,
88
+ "size" BIGINT NOT NULL,
89
+
90
+ CONSTRAINT "FileBlob_pkey" PRIMARY KEY ("id")
91
+ );
92
+
93
+ -- CreateTable
94
+ CREATE TABLE "ProjectFileUsage" (
95
+ "projectId" TEXT NOT NULL,
96
+ "fileBytes" BIGINT NOT NULL DEFAULT 0,
97
+ "updatedAt" TIMESTAMP(3) NOT NULL,
98
+
99
+ CONSTRAINT "ProjectFileUsage_pkey" PRIMARY KEY ("projectId")
100
+ );
101
+
102
+ -- CreateTable
103
+ CREATE TABLE "TableMigration" (
104
+ "id" TEXT NOT NULL,
105
+ "revisionId" TEXT NOT NULL,
106
+ "tableId" TEXT NOT NULL,
107
+ "sourceTableVersionId" TEXT NOT NULL,
108
+ "shadowTableVersionId" TEXT,
109
+ "status" TEXT NOT NULL DEFAULT 'PENDING',
110
+ "phase" TEXT NOT NULL DEFAULT 'INIT',
111
+ "patches" JSONB NOT NULL,
112
+ "previousSchema" JSONB NOT NULL,
113
+ "previousSchemaHash" TEXT NOT NULL,
114
+ "targetSchemaHash" TEXT NOT NULL,
115
+ "totalRows" INTEGER NOT NULL,
116
+ "copiedRows" INTEGER NOT NULL DEFAULT 0,
117
+ "lastCopiedRowId" TEXT,
118
+ "batchSize" INTEGER NOT NULL DEFAULT 1000,
119
+ "currentBatch" INTEGER NOT NULL DEFAULT 0,
120
+ "totalBatches" INTEGER NOT NULL DEFAULT 0,
121
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
122
+ "startedAt" TIMESTAMP(3),
123
+ "completedAt" TIMESTAMP(3),
124
+ "lastProgressAt" TIMESTAMP(3),
125
+ "lockedBy" TEXT,
126
+ "lockedAt" TIMESTAMP(3),
127
+ "heartbeatAt" TIMESTAMP(3),
128
+ "errorMessage" TEXT,
129
+ "retryCount" INTEGER NOT NULL DEFAULT 0,
130
+ "maxRetries" INTEGER NOT NULL DEFAULT 3,
131
+
132
+ CONSTRAINT "TableMigration_pkey" PRIMARY KEY ("id")
133
+ );
134
+
135
+ -- CreateTable
136
+ CREATE TABLE "_RevisionToTable" (
137
+ "A" TEXT NOT NULL,
138
+ "B" TEXT NOT NULL,
139
+
140
+ CONSTRAINT "_RevisionToTable_AB_pkey" PRIMARY KEY ("A","B")
141
+ );
142
+
143
+ -- CreateTable
144
+ CREATE TABLE "_RowToTable" (
145
+ "A" TEXT NOT NULL,
146
+ "B" TEXT NOT NULL,
147
+
148
+ CONSTRAINT "_RowToTable_AB_pkey" PRIMARY KEY ("A","B")
149
+ );
150
+
151
+ -- CreateTable
152
+ CREATE TABLE "_FileBlobToRow" (
153
+ "A" TEXT NOT NULL,
154
+ "B" TEXT NOT NULL,
155
+
156
+ CONSTRAINT "_FileBlobToRow_AB_pkey" PRIMARY KEY ("A","B")
157
+ );
158
+
159
+ -- CreateIndex
160
+ CREATE UNIQUE INDEX "RevoProject_slug_key" ON "RevoProject"("slug");
161
+
162
+ -- CreateIndex
163
+ CREATE INDEX "RevoProject_status_idx" ON "RevoProject"("status");
164
+
165
+ -- CreateIndex
166
+ CREATE INDEX "RevoProject_kind_status_idx" ON "RevoProject"("kind", "status");
167
+
168
+ -- CreateIndex
169
+ CREATE INDEX "RevoProject_deletedAt_idx" ON "RevoProject"("deletedAt");
170
+
171
+ -- CreateIndex
172
+ CREATE INDEX "Branch_projectId_idx" ON "Branch"("projectId");
173
+
174
+ -- CreateIndex
175
+ CREATE UNIQUE INDEX "Branch_name_projectId_key" ON "Branch"("name", "projectId");
176
+
177
+ -- CreateIndex
178
+ CREATE UNIQUE INDEX "Revision_sequence_key" ON "Revision"("sequence");
179
+
180
+ -- CreateIndex
181
+ CREATE INDEX "Revision_branchId_idx" ON "Revision"("branchId");
182
+
183
+ -- CreateIndex
184
+ CREATE INDEX "Table_id_idx" ON "Table"("id");
185
+
186
+ -- CreateIndex
187
+ CREATE INDEX "Row_data_idx" ON "Row" USING GIN ("data");
188
+
189
+ -- CreateIndex
190
+ CREATE INDEX "Row_id_idx" ON "Row"("id");
191
+
192
+ -- CreateIndex
193
+ CREATE INDEX "Row_hash_idx" ON "Row"("hash");
194
+
195
+ -- CreateIndex
196
+ CREATE INDEX "Row_schemaHash_idx" ON "Row"("schemaHash");
197
+
198
+ -- CreateIndex
199
+ CREATE INDEX "Row_publishedAt_idx" ON "Row"("publishedAt");
200
+
201
+ -- CreateIndex
202
+ CREATE INDEX "FileBlob_projectId_idx" ON "FileBlob"("projectId");
203
+
204
+ -- CreateIndex
205
+ CREATE INDEX "FileBlob_hash_idx" ON "FileBlob"("hash");
206
+
207
+ -- CreateIndex
208
+ CREATE INDEX "FileBlob_deletedAt_idx" ON "FileBlob"("deletedAt");
209
+
210
+ -- CreateIndex
211
+ CREATE UNIQUE INDEX "FileBlob_projectId_hash_key" ON "FileBlob"("projectId", "hash");
212
+
213
+ -- CreateIndex
214
+ CREATE INDEX "TableMigration_status_idx" ON "TableMigration"("status");
215
+
216
+ -- CreateIndex
217
+ CREATE INDEX "TableMigration_lockedBy_idx" ON "TableMigration"("lockedBy");
218
+
219
+ -- CreateIndex
220
+ CREATE INDEX "TableMigration_status_heartbeatAt_idx" ON "TableMigration"("status", "heartbeatAt");
221
+
222
+ -- CreateIndex
223
+ CREATE UNIQUE INDEX "TableMigration_revisionId_tableId_key" ON "TableMigration"("revisionId", "tableId");
224
+
225
+ -- CreateIndex
226
+ CREATE INDEX "_RevisionToTable_B_index" ON "_RevisionToTable"("B");
227
+
228
+ -- CreateIndex
229
+ CREATE INDEX "_RowToTable_B_index" ON "_RowToTable"("B");
230
+
231
+ -- CreateIndex
232
+ CREATE INDEX "_FileBlobToRow_B_index" ON "_FileBlobToRow"("B");
233
+
234
+ -- AddForeignKey
235
+ ALTER TABLE "Branch" ADD CONSTRAINT "Branch_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "RevoProject"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
236
+
237
+ -- AddForeignKey
238
+ ALTER TABLE "Revision" ADD CONSTRAINT "Revision_branchId_fkey" FOREIGN KEY ("branchId") REFERENCES "Branch"("id") ON DELETE CASCADE ON UPDATE CASCADE;
239
+
240
+ -- AddForeignKey
241
+ ALTER TABLE "Revision" ADD CONSTRAINT "Revision_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Revision"("id") ON DELETE SET NULL ON UPDATE CASCADE;
242
+
243
+ -- AddForeignKey
244
+ ALTER TABLE "_RevisionToTable" ADD CONSTRAINT "_RevisionToTable_A_fkey" FOREIGN KEY ("A") REFERENCES "Revision"("id") ON DELETE CASCADE ON UPDATE CASCADE;
245
+
246
+ -- AddForeignKey
247
+ ALTER TABLE "_RevisionToTable" ADD CONSTRAINT "_RevisionToTable_B_fkey" FOREIGN KEY ("B") REFERENCES "Table"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
248
+
249
+ -- AddForeignKey
250
+ ALTER TABLE "_RowToTable" ADD CONSTRAINT "_RowToTable_A_fkey" FOREIGN KEY ("A") REFERENCES "Row"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
251
+
252
+ -- AddForeignKey
253
+ ALTER TABLE "_RowToTable" ADD CONSTRAINT "_RowToTable_B_fkey" FOREIGN KEY ("B") REFERENCES "Table"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
254
+
255
+ -- AddForeignKey
256
+ ALTER TABLE "_FileBlobToRow" ADD CONSTRAINT "_FileBlobToRow_A_fkey" FOREIGN KEY ("A") REFERENCES "FileBlob"("id") ON DELETE CASCADE ON UPDATE CASCADE;
257
+
258
+ -- AddForeignKey
259
+ ALTER TABLE "_FileBlobToRow" ADD CONSTRAINT "_FileBlobToRow_B_fkey" FOREIGN KEY ("B") REFERENCES "Row"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,235 @@
1
+ -- CreateTable
2
+ CREATE TABLE "TaskRun" (
3
+ "id" TEXT NOT NULL,
4
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
5
+ "updatedAt" TIMESTAMP(3) NOT NULL,
6
+ "projectId" TEXT,
7
+ "title" TEXT NOT NULL,
8
+ "description" TEXT NOT NULL DEFAULT '',
9
+ "status" TEXT NOT NULL,
10
+ "repos" TEXT[],
11
+ "scope" TEXT NOT NULL DEFAULT '',
12
+ "priority" INTEGER NOT NULL DEFAULT 0,
13
+ "playbookId" TEXT NOT NULL DEFAULT '',
14
+ "pipelineId" TEXT NOT NULL DEFAULT '',
15
+ "params" JSONB NOT NULL DEFAULT '{}',
16
+ "routeDecision" JSONB NOT NULL DEFAULT '{}',
17
+ "executionProfile" JSONB NOT NULL DEFAULT '{}',
18
+ "createdBy" TEXT NOT NULL DEFAULT '',
19
+
20
+ CONSTRAINT "TaskRun_pkey" PRIMARY KEY ("id")
21
+ );
22
+
23
+ -- CreateTable
24
+ CREATE TABLE "RunTask" (
25
+ "id" TEXT NOT NULL,
26
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
27
+ "updatedAt" TIMESTAMP(3) NOT NULL,
28
+ "runId" TEXT NOT NULL,
29
+ "repoRef" TEXT NOT NULL DEFAULT '',
30
+ "roleHint" TEXT NOT NULL DEFAULT '',
31
+ "title" TEXT NOT NULL,
32
+ "status" TEXT NOT NULL,
33
+ "dependsOn" TEXT[],
34
+ "scope" TEXT NOT NULL DEFAULT '',
35
+ "priority" INTEGER NOT NULL DEFAULT 0,
36
+
37
+ CONSTRAINT "RunTask_pkey" PRIMARY KEY ("id")
38
+ );
39
+
40
+ -- CreateTable
41
+ CREATE TABLE "RunEvent" (
42
+ "id" TEXT NOT NULL,
43
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
44
+ "sequence" SERIAL NOT NULL,
45
+ "runId" TEXT NOT NULL,
46
+ "taskId" TEXT NOT NULL DEFAULT '',
47
+ "stepId" TEXT NOT NULL DEFAULT '',
48
+ "type" TEXT NOT NULL,
49
+ "payload" JSONB NOT NULL DEFAULT '{}',
50
+ "actor" TEXT NOT NULL DEFAULT '',
51
+
52
+ CONSTRAINT "RunEvent_pkey" PRIMARY KEY ("id")
53
+ );
54
+
55
+ -- CreateTable
56
+ CREATE TABLE "RunAttempt" (
57
+ "id" TEXT NOT NULL,
58
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
59
+ "updatedAt" TIMESTAMP(3) NOT NULL,
60
+ "runId" TEXT NOT NULL,
61
+ "stepId" TEXT NOT NULL,
62
+ "workerId" TEXT NOT NULL DEFAULT '',
63
+ "attemptNo" INTEGER NOT NULL DEFAULT 0,
64
+ "iteration" INTEGER NOT NULL DEFAULT 0,
65
+ "status" TEXT NOT NULL,
66
+ "idempotencyKey" TEXT NOT NULL DEFAULT '',
67
+ "modelProfile" TEXT NOT NULL DEFAULT '',
68
+ "verdict" TEXT NOT NULL DEFAULT '',
69
+ "inputTokens" INTEGER NOT NULL DEFAULT 0,
70
+ "outputTokens" INTEGER NOT NULL DEFAULT 0,
71
+ "costAmount" DECIMAL(20,12) NOT NULL DEFAULT 0,
72
+ "currency" TEXT NOT NULL DEFAULT 'USD',
73
+ "durationMs" INTEGER NOT NULL DEFAULT 0,
74
+ "outputSummary" TEXT NOT NULL DEFAULT '',
75
+ "artifactRef" TEXT NOT NULL DEFAULT '',
76
+ "stdoutTail" TEXT NOT NULL DEFAULT '',
77
+ "stderrTail" TEXT NOT NULL DEFAULT '',
78
+ "lesson" TEXT NOT NULL DEFAULT '',
79
+ "error" TEXT NOT NULL DEFAULT '',
80
+ "startedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
81
+ "finishedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
82
+
83
+ CONSTRAINT "RunAttempt_pkey" PRIMARY KEY ("id")
84
+ );
85
+
86
+ -- CreateTable
87
+ CREATE TABLE "InboxItem" (
88
+ "id" TEXT NOT NULL,
89
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
90
+ "updatedAt" TIMESTAMP(3) NOT NULL,
91
+ "kind" TEXT NOT NULL,
92
+ "runId" TEXT,
93
+ "taskId" TEXT NOT NULL DEFAULT '',
94
+ "stepId" TEXT NOT NULL DEFAULT '',
95
+ "projectId" TEXT NOT NULL DEFAULT '',
96
+ "title" TEXT NOT NULL,
97
+ "context" JSONB NOT NULL DEFAULT '{}',
98
+ "options" TEXT[],
99
+ "status" TEXT NOT NULL,
100
+ "answer" JSONB,
101
+ "resolvedBy" TEXT NOT NULL DEFAULT '',
102
+ "resolvedAt" TIMESTAMP(3),
103
+
104
+ CONSTRAINT "InboxItem_pkey" PRIMARY KEY ("id")
105
+ );
106
+
107
+ -- CreateTable
108
+ CREATE TABLE "RunOutput" (
109
+ "id" TEXT NOT NULL,
110
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
111
+ "runId" TEXT NOT NULL,
112
+ "nodeId" TEXT NOT NULL,
113
+ "ordinal" INTEGER NOT NULL,
114
+ "name" TEXT NOT NULL,
115
+ "schemaRef" TEXT NOT NULL DEFAULT '',
116
+ "payload" JSONB NOT NULL DEFAULT '{}',
117
+ "payloadRef" TEXT NOT NULL DEFAULT '',
118
+ "attemptId" TEXT NOT NULL DEFAULT '',
119
+ "producedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
120
+
121
+ CONSTRAINT "RunOutput_pkey" PRIMARY KEY ("id")
122
+ );
123
+
124
+ -- CreateTable
125
+ CREATE TABLE "CostLedgerEntry" (
126
+ "id" TEXT NOT NULL,
127
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
128
+ "runId" TEXT NOT NULL,
129
+ "stepId" TEXT NOT NULL DEFAULT '',
130
+ "attemptId" TEXT NOT NULL DEFAULT '',
131
+ "modelProfile" TEXT NOT NULL DEFAULT '',
132
+ "inputTokens" INTEGER NOT NULL DEFAULT 0,
133
+ "outputTokens" INTEGER NOT NULL DEFAULT 0,
134
+ "costAmount" DECIMAL(20,12) NOT NULL DEFAULT 0,
135
+ "currency" TEXT NOT NULL DEFAULT 'USD',
136
+ "recordedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
137
+
138
+ CONSTRAINT "CostLedgerEntry_pkey" PRIMARY KEY ("id")
139
+ );
140
+
141
+ -- CreateIndex
142
+ CREATE INDEX "TaskRun_projectId_idx" ON "TaskRun"("projectId");
143
+
144
+ -- CreateIndex
145
+ CREATE INDEX "TaskRun_status_idx" ON "TaskRun"("status");
146
+
147
+ -- CreateIndex
148
+ CREATE INDEX "TaskRun_playbookId_pipelineId_idx" ON "TaskRun"("playbookId", "pipelineId");
149
+
150
+ -- CreateIndex
151
+ CREATE INDEX "TaskRun_createdAt_idx" ON "TaskRun"("createdAt");
152
+
153
+ -- CreateIndex
154
+ CREATE INDEX "RunTask_runId_idx" ON "RunTask"("runId");
155
+
156
+ -- CreateIndex
157
+ CREATE INDEX "RunTask_status_idx" ON "RunTask"("status");
158
+
159
+ -- CreateIndex
160
+ CREATE INDEX "RunTask_createdAt_idx" ON "RunTask"("createdAt");
161
+
162
+ -- CreateIndex
163
+ CREATE INDEX "RunEvent_runId_idx" ON "RunEvent"("runId");
164
+
165
+ -- CreateIndex
166
+ CREATE UNIQUE INDEX "RunEvent_runId_sequence_key" ON "RunEvent"("runId", "sequence");
167
+
168
+ -- CreateIndex
169
+ CREATE INDEX "RunEvent_runId_createdAt_idx" ON "RunEvent"("runId", "createdAt");
170
+
171
+ -- CreateIndex
172
+ CREATE INDEX "RunEvent_runId_sequence_idx" ON "RunEvent"("runId", "sequence");
173
+
174
+ -- CreateIndex
175
+ CREATE INDEX "RunEvent_type_idx" ON "RunEvent"("type");
176
+
177
+ -- CreateIndex
178
+ CREATE INDEX "RunAttempt_runId_idx" ON "RunAttempt"("runId");
179
+
180
+ -- CreateIndex
181
+ CREATE INDEX "RunAttempt_runId_stepId_idx" ON "RunAttempt"("runId", "stepId");
182
+
183
+ -- CreateIndex
184
+ CREATE INDEX "RunAttempt_status_idx" ON "RunAttempt"("status");
185
+
186
+ -- CreateIndex
187
+ CREATE INDEX "InboxItem_runId_idx" ON "InboxItem"("runId");
188
+
189
+ -- CreateIndex
190
+ CREATE INDEX "InboxItem_status_idx" ON "InboxItem"("status");
191
+
192
+ -- CreateIndex
193
+ CREATE INDEX "InboxItem_createdAt_idx" ON "InboxItem"("createdAt");
194
+
195
+ -- CreateIndex
196
+ CREATE UNIQUE INDEX "RunOutput_runId_nodeId_ordinal_key" ON "RunOutput"("runId", "nodeId", "ordinal");
197
+
198
+ -- CreateIndex
199
+ CREATE INDEX "RunOutput_runId_idx" ON "RunOutput"("runId");
200
+
201
+ -- CreateIndex
202
+ CREATE INDEX "RunOutput_nodeId_idx" ON "RunOutput"("nodeId");
203
+
204
+ -- CreateIndex
205
+ CREATE INDEX "RunOutput_producedAt_idx" ON "RunOutput"("producedAt");
206
+
207
+ -- CreateIndex
208
+ CREATE INDEX "CostLedgerEntry_runId_idx" ON "CostLedgerEntry"("runId");
209
+
210
+ -- CreateIndex
211
+ CREATE INDEX "CostLedgerEntry_attemptId_idx" ON "CostLedgerEntry"("attemptId");
212
+
213
+ -- CreateIndex
214
+ CREATE INDEX "CostLedgerEntry_recordedAt_idx" ON "CostLedgerEntry"("recordedAt");
215
+
216
+ -- AddForeignKey
217
+ ALTER TABLE "TaskRun" ADD CONSTRAINT "TaskRun_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "RevoProject"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
218
+
219
+ -- AddForeignKey
220
+ ALTER TABLE "RunTask" ADD CONSTRAINT "RunTask_runId_fkey" FOREIGN KEY ("runId") REFERENCES "TaskRun"("id") ON DELETE CASCADE ON UPDATE CASCADE;
221
+
222
+ -- AddForeignKey
223
+ ALTER TABLE "RunEvent" ADD CONSTRAINT "RunEvent_runId_fkey" FOREIGN KEY ("runId") REFERENCES "TaskRun"("id") ON DELETE CASCADE ON UPDATE CASCADE;
224
+
225
+ -- AddForeignKey
226
+ ALTER TABLE "RunAttempt" ADD CONSTRAINT "RunAttempt_runId_fkey" FOREIGN KEY ("runId") REFERENCES "TaskRun"("id") ON DELETE CASCADE ON UPDATE CASCADE;
227
+
228
+ -- AddForeignKey
229
+ ALTER TABLE "InboxItem" ADD CONSTRAINT "InboxItem_runId_fkey" FOREIGN KEY ("runId") REFERENCES "TaskRun"("id") ON DELETE CASCADE ON UPDATE CASCADE;
230
+
231
+ -- AddForeignKey
232
+ ALTER TABLE "RunOutput" ADD CONSTRAINT "RunOutput_runId_fkey" FOREIGN KEY ("runId") REFERENCES "TaskRun"("id") ON DELETE CASCADE ON UPDATE CASCADE;
233
+
234
+ -- AddForeignKey
235
+ ALTER TABLE "CostLedgerEntry" ADD CONSTRAINT "CostLedgerEntry_runId_fkey" FOREIGN KEY ("runId") REFERENCES "TaskRun"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,3 @@
1
+ # Please do not edit this file manually
2
+ # It should be added in your version-control system (e.g., Git)
3
+ provider = "postgresql"