@abelxiaoxing/cadence 1.8.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/README.md +324 -111
  2. package/THIRD_PARTY_NOTICES.md +15 -0
  3. package/agents/design-explorer.md +14 -26
  4. package/agents/diagnosis-worker.md +14 -25
  5. package/agents/implementation-worker.md +16 -35
  6. package/config/.env.example +2 -5
  7. package/config/workflow-task.example.json +7 -0
  8. package/docs/remote-access.md +60 -0
  9. package/docs/reuse-and-distribution.md +44 -0
  10. package/docs/service-management.md +108 -0
  11. package/licenses/bundled-web.txt +6245 -0
  12. package/licenses/pi-web-ui-MIT.txt +21 -0
  13. package/licenses/pi-web-ui-reuse.md +22 -0
  14. package/package.json +94 -21
  15. package/src/index.ts +22 -1807
  16. package/src/native-build.ts +6 -0
  17. package/src/native-client.ts +103 -0
  18. package/src/native-export.ts +58 -0
  19. package/src/native-history.ts +359 -0
  20. package/src/operator-cli.mjs +453 -1937
  21. package/src/plan-proposal.ts +87 -0
  22. package/src/sdk-worker.mjs +549 -0
  23. package/src/service/contracts/active.ts +82 -0
  24. package/src/service/contracts/budget.ts +148 -0
  25. package/src/service/contracts/build.ts +67 -0
  26. package/src/service/contracts/capture.ts +48 -0
  27. package/src/service/contracts/core.ts +33 -0
  28. package/src/service/contracts/current.ts +261 -0
  29. package/src/service/contracts/domain.ts +68 -0
  30. package/src/service/contracts/history.ts +2245 -0
  31. package/src/service/contracts/models.ts +139 -0
  32. package/src/service/coordination.ts +862 -0
  33. package/src/service/private-files.ts +204 -0
  34. package/src/service-cli.mjs +5592 -0
  35. package/src/service-client.ts +747 -0
  36. package/src/service-contract.ts +245 -0
  37. package/src/service-host.mjs +22382 -0
  38. package/src/service-http-client.ts +425 -0
  39. package/src/service-wire.ts +372 -0
  40. package/src/task-shell.ts +1045 -0
  41. package/src/task-store.ts +479 -0
  42. package/src/task-types.ts +184 -0
  43. package/src/verification-diagnostics.ts +29 -72
  44. package/src/worker-capture.mjs +1197 -0
  45. package/src/worker-public.mjs +1753 -0
  46. package/src/worker-redaction.mjs +608 -0
  47. package/src/worker-tools.mjs +202 -0
  48. package/web/dist/assets/KaTeX_AMS-Regular.ttf +0 -0
  49. package/web/dist/assets/KaTeX_AMS-Regular.woff +0 -0
  50. package/web/dist/assets/KaTeX_AMS-Regular.woff2 +0 -0
  51. package/web/dist/assets/KaTeX_Caligraphic-Bold.ttf +0 -0
  52. package/web/dist/assets/KaTeX_Caligraphic-Bold.woff +0 -0
  53. package/web/dist/assets/KaTeX_Caligraphic-Bold.woff2 +0 -0
  54. package/web/dist/assets/KaTeX_Caligraphic-Regular.ttf +0 -0
  55. package/web/dist/assets/KaTeX_Caligraphic-Regular.woff +0 -0
  56. package/web/dist/assets/KaTeX_Caligraphic-Regular.woff2 +0 -0
  57. package/web/dist/assets/KaTeX_Fraktur-Bold.ttf +0 -0
  58. package/web/dist/assets/KaTeX_Fraktur-Bold.woff +0 -0
  59. package/web/dist/assets/KaTeX_Fraktur-Bold.woff2 +0 -0
  60. package/web/dist/assets/KaTeX_Fraktur-Regular.ttf +0 -0
  61. package/web/dist/assets/KaTeX_Fraktur-Regular.woff +0 -0
  62. package/web/dist/assets/KaTeX_Fraktur-Regular.woff2 +0 -0
  63. package/web/dist/assets/KaTeX_Main-Bold.ttf +0 -0
  64. package/web/dist/assets/KaTeX_Main-Bold.woff +0 -0
  65. package/web/dist/assets/KaTeX_Main-Bold.woff2 +0 -0
  66. package/web/dist/assets/KaTeX_Main-BoldItalic.ttf +0 -0
  67. package/web/dist/assets/KaTeX_Main-BoldItalic.woff +0 -0
  68. package/web/dist/assets/KaTeX_Main-BoldItalic.woff2 +0 -0
  69. package/web/dist/assets/KaTeX_Main-Italic.ttf +0 -0
  70. package/web/dist/assets/KaTeX_Main-Italic.woff +0 -0
  71. package/web/dist/assets/KaTeX_Main-Italic.woff2 +0 -0
  72. package/web/dist/assets/KaTeX_Main-Regular.ttf +0 -0
  73. package/web/dist/assets/KaTeX_Main-Regular.woff +0 -0
  74. package/web/dist/assets/KaTeX_Main-Regular.woff2 +0 -0
  75. package/web/dist/assets/KaTeX_Math-BoldItalic.ttf +0 -0
  76. package/web/dist/assets/KaTeX_Math-BoldItalic.woff +0 -0
  77. package/web/dist/assets/KaTeX_Math-BoldItalic.woff2 +0 -0
  78. package/web/dist/assets/KaTeX_Math-Italic.ttf +0 -0
  79. package/web/dist/assets/KaTeX_Math-Italic.woff +0 -0
  80. package/web/dist/assets/KaTeX_Math-Italic.woff2 +0 -0
  81. package/web/dist/assets/KaTeX_SansSerif-Bold.ttf +0 -0
  82. package/web/dist/assets/KaTeX_SansSerif-Bold.woff +0 -0
  83. package/web/dist/assets/KaTeX_SansSerif-Bold.woff2 +0 -0
  84. package/web/dist/assets/KaTeX_SansSerif-Italic.ttf +0 -0
  85. package/web/dist/assets/KaTeX_SansSerif-Italic.woff +0 -0
  86. package/web/dist/assets/KaTeX_SansSerif-Italic.woff2 +0 -0
  87. package/web/dist/assets/KaTeX_SansSerif-Regular.ttf +0 -0
  88. package/web/dist/assets/KaTeX_SansSerif-Regular.woff +0 -0
  89. package/web/dist/assets/KaTeX_SansSerif-Regular.woff2 +0 -0
  90. package/web/dist/assets/KaTeX_Script-Regular.ttf +0 -0
  91. package/web/dist/assets/KaTeX_Script-Regular.woff +0 -0
  92. package/web/dist/assets/KaTeX_Script-Regular.woff2 +0 -0
  93. package/web/dist/assets/KaTeX_Size1-Regular.ttf +0 -0
  94. package/web/dist/assets/KaTeX_Size1-Regular.woff +0 -0
  95. package/web/dist/assets/KaTeX_Size1-Regular.woff2 +0 -0
  96. package/web/dist/assets/KaTeX_Size2-Regular.ttf +0 -0
  97. package/web/dist/assets/KaTeX_Size2-Regular.woff +0 -0
  98. package/web/dist/assets/KaTeX_Size2-Regular.woff2 +0 -0
  99. package/web/dist/assets/KaTeX_Size3-Regular.ttf +0 -0
  100. package/web/dist/assets/KaTeX_Size3-Regular.woff +0 -0
  101. package/web/dist/assets/KaTeX_Size3-Regular.woff2 +0 -0
  102. package/web/dist/assets/KaTeX_Size4-Regular.ttf +0 -0
  103. package/web/dist/assets/KaTeX_Size4-Regular.woff +0 -0
  104. package/web/dist/assets/KaTeX_Size4-Regular.woff2 +0 -0
  105. package/web/dist/assets/KaTeX_Typewriter-Regular.ttf +0 -0
  106. package/web/dist/assets/KaTeX_Typewriter-Regular.woff +0 -0
  107. package/web/dist/assets/KaTeX_Typewriter-Regular.woff2 +0 -0
  108. package/web/dist/assets/cadence.css +2 -0
  109. package/web/dist/assets/cadence.js +7 -0
  110. package/web/dist/assets/markdown.js +296 -0
  111. package/web/dist/assets/react.js +9 -0
  112. package/web/dist/assets/rolldown-runtime.js +1 -0
  113. package/web/dist/assets/timeline-client.js +41 -0
  114. package/web/dist/assets/vis-timeline.css +1274 -0
  115. package/web/dist/assets/vis-timeline.js +32 -0
  116. package/web/dist/index.html +18 -0
  117. package/web/dist/manifest.json +505 -0
  118. package/config/plan-draft.example.json +0 -125
  119. package/config/plan-draft.multiple-tasks.example.json +0 -375
  120. package/config/plan-draft.quick.example.json +0 -78
  121. package/config/routes.example.json +0 -39
  122. package/prompts/abel-design.md +0 -382
  123. package/prompts/abel-diagnose.md +0 -71
  124. package/prompts/abel-implement.md +0 -284
  125. package/prompts/abel-init.md +0 -52
  126. package/src/activation.ts +0 -44
  127. package/src/activity-contracts.ts +0 -82
  128. package/src/agent-registry.ts +0 -53
  129. package/src/apply-transaction.ts +0 -1437
  130. package/src/artifact-store.ts +0 -213
  131. package/src/build-windows-job.mjs +0 -95
  132. package/src/candidate-artifact.ts +0 -143
  133. package/src/candidate-patch.ts +0 -271
  134. package/src/candidate-workspace.ts +0 -80
  135. package/src/canonical.ts +0 -16
  136. package/src/change-contract-schema.ts +0 -191
  137. package/src/change-contract.ts +0 -324
  138. package/src/change-verification.ts +0 -1617
  139. package/src/child-budget.ts +0 -58
  140. package/src/child-model.ts +0 -142
  141. package/src/child-session.ts +0 -640
  142. package/src/contracts.ts +0 -2476
  143. package/src/control-contracts.ts +0 -382
  144. package/src/delivery-compiler.ts +0 -1805
  145. package/src/delivery-revision.ts +0 -42
  146. package/src/design-control.ts +0 -1299
  147. package/src/design-diagnostics.ts +0 -181
  148. package/src/design-journal.ts +0 -1773
  149. package/src/directory-sync.ts +0 -36
  150. package/src/durable-contracts.ts +0 -231
  151. package/src/durable-workflow.ts +0 -978
  152. package/src/evidence-draft.ts +0 -122
  153. package/src/execution-profile.ts +0 -64
  154. package/src/execution-retention.ts +0 -77
  155. package/src/file-snapshot.ts +0 -163
  156. package/src/implement-continuation.ts +0 -559
  157. package/src/implement-graph.ts +0 -690
  158. package/src/implement-plan.ts +0 -72
  159. package/src/install-config.d.mts +0 -6
  160. package/src/isolation-backend.ts +0 -353
  161. package/src/model-source.ts +0 -22
  162. package/src/openspec-cli.ts +0 -494
  163. package/src/operator-cli-entry.mjs +0 -24
  164. package/src/operator-tools.ts +0 -309
  165. package/src/package-candidate.ts +0 -227
  166. package/src/package-delivery.ts +0 -486
  167. package/src/package-state.ts +0 -320
  168. package/src/package-verification.ts +0 -635
  169. package/src/package-workflow.ts +0 -342
  170. package/src/packet-runtime.ts +0 -570
  171. package/src/parent-provider.ts +0 -375
  172. package/src/phase-execution.ts +0 -2259
  173. package/src/pi-adapter.ts +0 -19
  174. package/src/plan-draft-summary.ts +0 -527
  175. package/src/plan-draft.ts +0 -502
  176. package/src/remove-path.ts +0 -32
  177. package/src/route-policy.ts +0 -545
  178. package/src/run-state.ts +0 -420
  179. package/src/run-store.ts +0 -1179
  180. package/src/safe-path.ts +0 -77
  181. package/src/scoped-grep-worker.mjs +0 -23
  182. package/src/scoped-tools.ts +0 -775
  183. package/src/single-task-draft.ts +0 -142
  184. package/src/sqlite-schema.ts +0 -171
  185. package/src/state-root.ts +0 -215
  186. package/src/storage-schema.ts +0 -360
  187. package/src/subagent-activity.ts +0 -1417
  188. package/src/submit-tool.ts +0 -950
  189. package/src/task-ledger.ts +0 -1338
  190. package/src/transport-budget.ts +0 -52
  191. package/src/verification-capability.ts +0 -1191
  192. package/src/verification-environment-io.ts +0 -389
  193. package/src/verification-environment.ts +0 -162
  194. package/src/verification-identity.ts +0 -77
  195. package/src/verification-scan.ts +0 -64
  196. package/src/windows-job-backend.ts +0 -419
  197. package/src/windows-job.c +0 -149
  198. package/src/worker-broker.ts +0 -806
  199. package/src/workflow-engine.ts +0 -28
  200. package/src/workflow-policy.ts +0 -1679
  201. package/src/workflow-recovery-policy.ts +0 -97
  202. package/src/workflow-scheduling.ts +0 -105
  203. package/src/workflow-state-machine.ts +0 -4355
  204. package/src/workflow-status.ts +0 -576
  205. package/src/workspace-io-entry.mjs +0 -76
  206. package/src/workspace-io-worker.mjs +0 -1312
  207. package/src/workspace-io.ts +0 -89
  208. package/src/workspace-store.ts +0 -634
@@ -1,360 +0,0 @@
1
- export const ROUTE_HEALTH_SCHEMA = `
2
- CREATE TABLE IF NOT EXISTS route_health (
3
- route_fingerprint TEXT PRIMARY KEY,
4
- state TEXT NOT NULL,
5
- next_half_open_at INTEGER,
6
- projection_json TEXT NOT NULL
7
- ) STRICT;
8
- `;
9
-
10
- /** v2 predates proof-bound delivery receipts; migration must not invent proof. */
11
- const DELIVERY_PROOF_COLUMNS = `
12
- approval_revision INTEGER,
13
- contract_hash TEXT,
14
- record_hash TEXT,`;
15
-
16
- function runSchema(withDeliveryProof: boolean): string {
17
- return `
18
- CREATE TABLE IF NOT EXISTS runs (
19
- run_id TEXT PRIMARY KEY,
20
- root_hash TEXT NOT NULL,
21
- stage TEXT NOT NULL,
22
- lookup_key TEXT NOT NULL,
23
- change_name TEXT,
24
- provisional_key TEXT,
25
- state TEXT NOT NULL,
26
- sequence INTEGER NOT NULL,
27
- event_hash TEXT NOT NULL,
28
- delivery_revision INTEGER,
29
- projection_json TEXT NOT NULL,
30
- terminal_tombstone TEXT,
31
- UNIQUE (root_hash, stage, lookup_key)
32
- ) STRICT;
33
-
34
- CREATE TABLE IF NOT EXISTS delivery_bindings (
35
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
36
- gate TEXT NOT NULL,
37
- revision INTEGER NOT NULL,
38
- receipt_hash TEXT NOT NULL,${withDeliveryProof ? DELIVERY_PROOF_COLUMNS : ""}
39
- operation_id TEXT NOT NULL,
40
- PRIMARY KEY (run_id, gate, revision),
41
- UNIQUE (run_id, operation_id)
42
- ) STRICT;
43
-
44
- CREATE TABLE IF NOT EXISTS events (
45
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
46
- sequence INTEGER NOT NULL,
47
- type TEXT NOT NULL,
48
- payload_json TEXT NOT NULL,
49
- prior_hash TEXT NOT NULL,
50
- event_hash TEXT NOT NULL,
51
- PRIMARY KEY (run_id, sequence),
52
- UNIQUE (run_id, event_hash)
53
- ) STRICT;
54
-
55
- CREATE TABLE IF NOT EXISTS tasks (
56
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
57
- task_id TEXT NOT NULL,
58
- state TEXT NOT NULL,
59
- phase TEXT,
60
- projection_json TEXT NOT NULL,
61
- PRIMARY KEY (run_id, task_id)
62
- ) STRICT;
63
-
64
- CREATE TABLE IF NOT EXISTS operations (
65
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
66
- operation_id TEXT NOT NULL,
67
- kind TEXT NOT NULL,
68
- state TEXT NOT NULL,
69
- outcome_json TEXT,
70
- lease_token TEXT,
71
- lease_expires_at INTEGER,
72
- PRIMARY KEY (run_id, operation_id)
73
- ) STRICT;
74
-
75
- ${ROUTE_HEALTH_SCHEMA}
76
-
77
- CREATE TABLE IF NOT EXISTS artifacts (
78
- content_hash TEXT PRIMARY KEY,
79
- size_bytes INTEGER NOT NULL,
80
- seal_state TEXT NOT NULL,
81
- owner_run_id TEXT REFERENCES runs(run_id) ON DELETE CASCADE,
82
- reference_count INTEGER NOT NULL
83
- ) STRICT;
84
-
85
- CREATE TABLE IF NOT EXISTS workspace_revisions (
86
- revision_id TEXT PRIMARY KEY,
87
- owner_run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
88
- parent_revision_id TEXT,
89
- manifest_hash TEXT NOT NULL
90
- ) STRICT;
91
-
92
- CREATE TABLE IF NOT EXISTS apply_transactions (
93
- transaction_id TEXT PRIMARY KEY,
94
- owner_run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
95
- state TEXT NOT NULL,
96
- intent_json TEXT NOT NULL,
97
- recovery_json TEXT
98
- ) STRICT;
99
-
100
- CREATE TABLE IF NOT EXISTS bootstrap_handoffs (
101
- handoff_id TEXT PRIMARY KEY,
102
- owner_run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
103
- receipt_hash TEXT NOT NULL UNIQUE,
104
- state TEXT NOT NULL,
105
- facts_json TEXT NOT NULL
106
- ) STRICT;
107
- `;
108
- }
109
-
110
- /** Owner-private storage contracts. Migrations run atomically before use. */
111
- export const RUN_SCHEMA = runSchema(true);
112
- export const LEGACY_RUN_SCHEMA_V2 = runSchema(false);
113
-
114
- export const DESIGN_SCHEMA = `
115
- CREATE TABLE IF NOT EXISTS design_facts (
116
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
117
- sequence INTEGER NOT NULL,
118
- kind TEXT NOT NULL,
119
- identity TEXT NOT NULL,
120
- payload_json TEXT NOT NULL,
121
- canonical_hash TEXT NOT NULL,
122
- prior_record_hash TEXT NOT NULL,
123
- record_hash TEXT NOT NULL,
124
- PRIMARY KEY (run_id, sequence),
125
- UNIQUE (run_id, kind, identity),
126
- UNIQUE (run_id, record_hash)
127
- ) STRICT;
128
-
129
- CREATE TABLE IF NOT EXISTS design_operations (
130
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
131
- operation_id TEXT NOT NULL,
132
- operation TEXT NOT NULL,
133
- request_hash TEXT NOT NULL,
134
- outcome_json TEXT NOT NULL,
135
- PRIMARY KEY (run_id, operation_id)
136
- ) STRICT;
137
-
138
- CREATE TABLE IF NOT EXISTS design_compiled_plans (
139
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
140
- revision INTEGER NOT NULL,
141
- fact_sequence INTEGER NOT NULL,
142
- raw_sha256 TEXT NOT NULL,
143
- canonical_hash TEXT NOT NULL,
144
- plan_bytes BLOB NOT NULL,
145
- PRIMARY KEY (run_id, revision),
146
- UNIQUE (run_id, fact_sequence),
147
- FOREIGN KEY (run_id, fact_sequence)
148
- REFERENCES design_facts(run_id, sequence) ON DELETE CASCADE
149
- ) STRICT;
150
-
151
- CREATE TABLE IF NOT EXISTS design_finalization_leases (
152
- run_id TEXT PRIMARY KEY REFERENCES runs(run_id) ON DELETE CASCADE,
153
- operation_id TEXT NOT NULL,
154
- token TEXT NOT NULL UNIQUE,
155
- expires_at INTEGER NOT NULL
156
- ) STRICT;
157
- `;
158
-
159
- export const ENGINE_SCHEMA = `
160
- CREATE TABLE IF NOT EXISTS workflow_engine_runs (
161
- run_id TEXT PRIMARY KEY REFERENCES runs(run_id) ON DELETE CASCADE,
162
- current_revision INTEGER,
163
- baseline_workspace_revision TEXT,
164
- current_workspace_revision TEXT,
165
- cleanup_state TEXT NOT NULL DEFAULT 'none',
166
- route_id TEXT,
167
- route_fingerprint TEXT,
168
- transaction_id TEXT,
169
- verification_json TEXT,
170
- delivery_diagnostics_json TEXT,
171
- next_queue_position INTEGER NOT NULL DEFAULT 1
172
- ) STRICT;
173
-
174
- CREATE TABLE IF NOT EXISTS workflow_engine_deliveries (
175
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
176
- revision INTEGER NOT NULL,
177
- gate TEXT NOT NULL,
178
- receipt_hash TEXT NOT NULL,
179
- plan_json TEXT NOT NULL,
180
- PRIMARY KEY (run_id, revision)
181
- ) STRICT;
182
-
183
- CREATE TABLE IF NOT EXISTS workflow_engine_tasks (
184
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
185
- task_id TEXT NOT NULL,
186
- task_order INTEGER NOT NULL,
187
- delivery_revision INTEGER NOT NULL,
188
- plan_json TEXT NOT NULL,
189
- state TEXT NOT NULL,
190
- phase TEXT NOT NULL,
191
- pause_code TEXT,
192
- context_request_json TEXT,
193
- attempt_diagnostic_json TEXT,
194
- route_id TEXT,
195
- route_fingerprint TEXT,
196
- queue_position INTEGER,
197
- PRIMARY KEY (run_id, task_id)
198
- ) STRICT;
199
-
200
- CREATE TABLE IF NOT EXISTS workflow_engine_operations (
201
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
202
- operation_id TEXT NOT NULL,
203
- command TEXT NOT NULL,
204
- state TEXT NOT NULL,
205
- lease_token TEXT,
206
- lease_expires_at INTEGER,
207
- outcome_json TEXT,
208
- PRIMARY KEY (run_id, operation_id)
209
- ) STRICT;
210
- `;
211
-
212
- export const RECOVERY_SCHEMA = `
213
- CREATE TABLE IF NOT EXISTS workflow_context_reads (
214
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
215
- task_id TEXT NOT NULL,
216
- path TEXT NOT NULL,
217
- PRIMARY KEY (run_id, task_id, path)
218
- ) STRICT;
219
-
220
- CREATE TABLE IF NOT EXISTS workflow_work_budget (
221
- run_id TEXT PRIMARY KEY REFERENCES runs(run_id) ON DELETE CASCADE,
222
- used INTEGER NOT NULL CHECK (used >= 0),
223
- max_work INTEGER NOT NULL CHECK (max_work > 0 AND used <= max_work),
224
- phase_high_water INTEGER NOT NULL DEFAULT 0,
225
- hard_limit INTEGER NOT NULL DEFAULT 512,
226
- recovery_policy INTEGER NOT NULL DEFAULT 0
227
- ) STRICT;
228
-
229
- CREATE TABLE IF NOT EXISTS workflow_recovery_incidents (
230
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
231
- incident_key TEXT NOT NULL,
232
- failures INTEGER NOT NULL CHECK (failures >= 0),
233
- max_attempts INTEGER NOT NULL CHECK (max_attempts > 0),
234
- feedback_json TEXT NOT NULL,
235
- conditions_json TEXT NOT NULL DEFAULT '{}',
236
- PRIMARY KEY (run_id, incident_key)
237
- ) STRICT;
238
-
239
- CREATE TABLE IF NOT EXISTS workflow_recovery_events (
240
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
241
- sequence INTEGER NOT NULL CHECK (sequence > 0),
242
- incident_key TEXT NOT NULL,
243
- kind TEXT NOT NULL CHECK (kind IN ('failure', 'resolved', 'repair', 'launch')),
244
- PRIMARY KEY (run_id, sequence)
245
- ) STRICT;
246
- `;
247
-
248
- // Independent namespace so existing recovery stores remain atomically additive.
249
- export const AMENDMENT_SCHEMA = `
250
- CREATE TABLE IF NOT EXISTS workflow_amendment_budget (
251
- run_id TEXT PRIMARY KEY REFERENCES runs(run_id) ON DELETE CASCADE,
252
- used INTEGER NOT NULL CHECK (used >= 0 AND used <= 64)
253
- ) STRICT;
254
- `;
255
-
256
- export const REJECTED_DELIVERY_SCHEMA = `
257
- CREATE TABLE IF NOT EXISTS workflow_rejected_deliveries (
258
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
259
- delivery_revision INTEGER NOT NULL CHECK (delivery_revision > 0),
260
- receipt_hash TEXT NOT NULL,
261
- PRIMARY KEY (run_id, delivery_revision, receipt_hash)
262
- ) STRICT;
263
- `;
264
-
265
- export const TASK_SCHEMA = `
266
- CREATE TABLE IF NOT EXISTS candidates (
267
- candidate_id TEXT PRIMARY KEY,
268
- identity_json TEXT NOT NULL,
269
- state TEXT NOT NULL,
270
- next_sequence INTEGER NOT NULL,
271
- total_bytes INTEGER NOT NULL,
272
- artifact_hash TEXT,
273
- candidate_hash TEXT,
274
- segment_count INTEGER,
275
- paths_json TEXT,
276
- pause_code TEXT
277
- ) STRICT;
278
- CREATE TABLE IF NOT EXISTS candidate_segments (
279
- candidate_id TEXT NOT NULL REFERENCES candidates(candidate_id) ON DELETE CASCADE,
280
- sequence INTEGER NOT NULL,
281
- artifact_hash TEXT NOT NULL,
282
- size_bytes INTEGER NOT NULL,
283
- segment_hash TEXT NOT NULL,
284
- PRIMARY KEY (candidate_id, sequence)
285
- ) STRICT;
286
- CREATE TABLE IF NOT EXISTS task_ledger (
287
- run_id TEXT NOT NULL,
288
- task_id TEXT NOT NULL,
289
- delivery_revision INTEGER NOT NULL,
290
- boundary_hash TEXT NOT NULL,
291
- objective TEXT NOT NULL,
292
- context_refs_json TEXT NOT NULL,
293
- initial_phase TEXT NOT NULL,
294
- PRIMARY KEY (run_id, task_id)
295
- ) STRICT;
296
- CREATE TABLE IF NOT EXISTS task_events (
297
- run_id TEXT NOT NULL,
298
- task_id TEXT NOT NULL,
299
- ordinal INTEGER NOT NULL,
300
- event_id TEXT NOT NULL,
301
- event_json TEXT NOT NULL,
302
- prior_hash TEXT NOT NULL,
303
- event_hash TEXT NOT NULL,
304
- PRIMARY KEY (run_id, task_id, ordinal),
305
- UNIQUE (run_id, task_id, event_id),
306
- FOREIGN KEY (run_id, task_id) REFERENCES task_ledger(run_id, task_id) ON DELETE CASCADE
307
- ) STRICT;
308
- CREATE TABLE IF NOT EXISTS durable_facts (
309
- fact_key TEXT PRIMARY KEY,
310
- fact_json TEXT NOT NULL
311
- ) STRICT;
312
- `;
313
-
314
- export const APPLY_SCHEMA = `
315
- CREATE TABLE IF NOT EXISTS apply_transaction_journal (
316
- transaction_id TEXT PRIMARY KEY,
317
- journal_json TEXT NOT NULL,
318
- journal_hash TEXT NOT NULL
319
- ) STRICT;
320
- `;
321
-
322
- export const ENGINE_ADDITIONS = {
323
- workflow_engine_runs: {
324
- baseline_workspace_revision: "TEXT",
325
- current_workspace_revision: "TEXT",
326
- cleanup_state: "TEXT NOT NULL DEFAULT 'none'",
327
- verification_json: "TEXT",
328
- delivery_diagnostics_json: "TEXT",
329
- route_fingerprint: "TEXT",
330
- },
331
- workflow_engine_tasks: {
332
- route_fingerprint: "TEXT",
333
- context_request_json: "TEXT",
334
- attempt_diagnostic_json: "TEXT",
335
- },
336
- };
337
-
338
- export const RECOVERY_ADDITIONS = {
339
- workflow_work_budget: {
340
- phase_high_water: "INTEGER NOT NULL DEFAULT 0",
341
- hard_limit: "INTEGER NOT NULL DEFAULT 512",
342
- recovery_policy: "INTEGER NOT NULL DEFAULT 0",
343
- },
344
- workflow_recovery_incidents: {
345
- conditions_json: "TEXT NOT NULL DEFAULT '{}'",
346
- },
347
- };
348
-
349
- export const RECOVERY_GRANT_SCHEMA = `
350
- CREATE TABLE IF NOT EXISTS workflow_recovery_grants (
351
- run_id TEXT NOT NULL REFERENCES runs(run_id) ON DELETE CASCADE,
352
- operation_id TEXT NOT NULL,
353
- incident_key TEXT NOT NULL,
354
- failure_sequence INTEGER NOT NULL,
355
- reason TEXT NOT NULL,
356
- consumed INTEGER NOT NULL DEFAULT 0 CHECK (consumed IN (0, 1)),
357
- PRIMARY KEY (run_id, operation_id),
358
- UNIQUE (run_id, incident_key, failure_sequence)
359
- ) STRICT;
360
- `;