@cleocode/core 2026.7.2 → 2026.8.2
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.
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +57 -27
- package/dist/bootstrap.js.map +1 -1
- package/dist/conduit/local-transport.d.ts +3 -6
- package/dist/conduit/local-transport.d.ts.map +1 -1
- package/dist/conduit/local-transport.js +6 -7
- package/dist/conduit/local-transport.js.map +1 -1
- package/dist/db/index.d.ts +28 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +28 -1
- package/dist/db/index.js.map +1 -1
- package/dist/docs/display-alias.js +1 -1
- package/dist/docs/display-alias.js.map +1 -1
- package/dist/docs/export-document.js +16292 -22315
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/numbering.js +1 -1
- package/dist/docs/numbering.js.map +1 -1
- package/dist/docs/supersede.js +1 -1
- package/dist/docs/supersede.js.map +1 -1
- package/dist/goal/store.d.ts.map +1 -1
- package/dist/goal/store.js.map +1 -1
- package/dist/hooks/payload-schemas.d.ts +9 -9
- package/dist/injection.d.ts.map +1 -1
- package/dist/injection.js +44 -3
- package/dist/injection.js.map +1 -1
- package/dist/lifecycle/index.js +1 -1
- package/dist/lifecycle/index.js.map +1 -1
- package/dist/llm/pi/pi-session-storage.d.ts.map +1 -1
- package/dist/llm/pi/pi-session-storage.js +6 -1
- package/dist/llm/pi/pi-session-storage.js.map +1 -1
- package/dist/llm/plugin-facade.js +5726 -16641
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/memory/brain-backfill.js +3 -3
- package/dist/memory/brain-backfill.js.map +1 -1
- package/dist/memory/brain-consolidator.js +2 -2
- package/dist/memory/brain-consolidator.js.map +1 -1
- package/dist/memory/brain-doctor.js +1 -1
- package/dist/memory/brain-doctor.js.map +1 -1
- package/dist/memory/brain-health-dashboard.js +1 -1
- package/dist/memory/brain-health-dashboard.js.map +1 -1
- package/dist/memory/brain-lifecycle.js +10 -10
- package/dist/memory/brain-lifecycle.js.map +1 -1
- package/dist/memory/brain-links.d.ts +26 -2
- package/dist/memory/brain-links.d.ts.map +1 -1
- package/dist/memory/brain-links.js +65 -19
- package/dist/memory/brain-links.js.map +1 -1
- package/dist/memory/brain-maintenance.js +1 -1
- package/dist/memory/brain-maintenance.js.map +1 -1
- package/dist/memory/brain-page-nodes.js +4 -4
- package/dist/memory/brain-page-nodes.js.map +1 -1
- package/dist/memory/brain-reasoning.js +1 -1
- package/dist/memory/brain-reasoning.js.map +1 -1
- package/dist/memory/brain-search.js +1 -1
- package/dist/memory/brain-search.js.map +1 -1
- package/dist/memory/brain-similarity.js +1 -1
- package/dist/memory/brain-similarity.js.map +1 -1
- package/dist/memory/brain-stdp.js +6 -6
- package/dist/memory/brain-stdp.js.map +1 -1
- package/dist/memory/brain-sweep-executor.js +1 -1
- package/dist/memory/brain-sweep-executor.js.map +1 -1
- package/dist/memory/brain-writer-handlers.js +2 -2
- package/dist/memory/brain-writer-handlers.js.map +1 -1
- package/dist/memory/brain-writer-thread.d.ts.map +1 -1
- package/dist/memory/brain-writer-thread.js +31 -40
- package/dist/memory/brain-writer-thread.js.map +1 -1
- package/dist/memory/claude-mem-migration.d.ts.map +1 -1
- package/dist/memory/claude-mem-migration.js +9 -3
- package/dist/memory/claude-mem-migration.js.map +1 -1
- package/dist/memory/dialectic-evaluator.d.ts +11 -6
- package/dist/memory/dialectic-evaluator.d.ts.map +1 -1
- package/dist/memory/dialectic-evaluator.js +8 -2
- package/dist/memory/dialectic-evaluator.js.map +1 -1
- package/dist/memory/engine-compat.js +4 -4
- package/dist/memory/engine-compat.js.map +1 -1
- package/dist/memory/extraction-gate.js +3 -3
- package/dist/memory/extraction-gate.js.map +1 -1
- package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
- package/dist/memory/graph-memory-bridge.js +12 -10
- package/dist/memory/graph-memory-bridge.js.map +1 -1
- package/dist/memory/graph-queries.js +4 -4
- package/dist/memory/graph-queries.js.map +1 -1
- package/dist/memory/learnings.d.ts +8 -8
- package/dist/memory/llm-extraction.js +1 -1
- package/dist/memory/llm-extraction.js.map +1 -1
- package/dist/memory/memory-bridge.js +1 -1
- package/dist/memory/memory-bridge.js.map +1 -1
- package/dist/memory/nexus-plasticity.js +1 -1
- package/dist/memory/nexus-plasticity.js.map +1 -1
- package/dist/memory/observer-reflector.js +1 -1
- package/dist/memory/observer-reflector.js.map +1 -1
- package/dist/memory/patterns.d.ts +14 -14
- package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.js +13 -3
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
- package/dist/memory/quality-feedback.js +4 -4
- package/dist/memory/quality-feedback.js.map +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.d.ts +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.d.ts.map +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
- package/dist/memory/retrieval/increment-citation-counts.js +1 -1
- package/dist/memory/retrieval/increment-citation-counts.js.map +1 -1
- package/dist/memory/retrieval/log-retrieval.js +1 -1
- package/dist/memory/retrieval/log-retrieval.js.map +1 -1
- package/dist/memory/retrieval/observe.d.ts.map +1 -1
- package/dist/memory/retrieval/observe.js +32 -17
- package/dist/memory/retrieval/observe.js.map +1 -1
- package/dist/memory/retrieval/search.js +1 -1
- package/dist/memory/retrieval/search.js.map +1 -1
- package/dist/memory/retrieval/timeline.js +1 -1
- package/dist/memory/retrieval/timeline.js.map +1 -1
- package/dist/memory/session-memory.d.ts.map +1 -1
- package/dist/memory/session-memory.js +35 -1
- package/dist/memory/session-memory.js.map +1 -1
- package/dist/memory/sleep-consolidation.js +4 -4
- package/dist/memory/sleep-consolidation.js.map +1 -1
- package/dist/memory/temporal-supersession.js +5 -5
- package/dist/memory/temporal-supersession.js.map +1 -1
- package/dist/memory/transcript-extractor.js +1 -1
- package/dist/memory/transcript-extractor.js.map +1 -1
- package/dist/memory/transcript-ingestor.js +1 -1
- package/dist/memory/transcript-ingestor.js.map +1 -1
- package/dist/memory/transcript-scanner.js +1 -1
- package/dist/memory/transcript-scanner.js.map +1 -1
- package/dist/nexus/living-brain.js +7 -7
- package/dist/nexus/living-brain.js.map +1 -1
- package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
- package/dist/nexus/migrations/M-split-graph.js +4 -1
- package/dist/nexus/migrations/M-split-graph.js.map +1 -1
- package/dist/nexus/sigil.d.ts +1 -2
- package/dist/nexus/sigil.d.ts.map +1 -1
- package/dist/nexus/tasks-bridge.js +4 -4
- package/dist/nexus/tasks-bridge.js.map +1 -1
- package/dist/nexus/user-profile.d.ts +1 -2
- package/dist/nexus/user-profile.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +4 -2
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +5 -1
- package/dist/release/reconcile.js.map +1 -1
- package/dist/sagas/migrate-containment.d.ts.map +1 -1
- package/dist/sagas/migrate-containment.js +4 -2
- package/dist/sagas/migrate-containment.js.map +1 -1
- package/dist/scaffold/ensure-dirs.js +1 -1
- package/dist/scaffold/ensure-dirs.js.map +1 -1
- package/dist/scaffold/ensure-skills.d.ts.map +1 -1
- package/dist/scaffold/ensure-skills.js +67 -0
- package/dist/scaffold/ensure-skills.js.map +1 -1
- package/dist/selfimprove/dhq-adapter.d.ts.map +1 -1
- package/dist/selfimprove/dhq-adapter.js +6 -2
- package/dist/selfimprove/dhq-adapter.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +5833 -16627
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sentient/dream-cycle.js +1 -1
- package/dist/sentient/dream-cycle.js.map +1 -1
- package/dist/sentient/hygiene-scan.js +1 -1
- package/dist/sentient/hygiene-scan.js.map +1 -1
- package/dist/sentient/propose-tick.js +3 -3
- package/dist/sentient/propose-tick.js.map +1 -1
- package/dist/sentient/stage-drift-tick.js +1 -1
- package/dist/sentient/stage-drift-tick.js.map +1 -1
- package/dist/sequence/index.js +1 -1
- package/dist/sequence/index.js.map +1 -1
- package/dist/store/agent-registry-store.d.ts.map +1 -1
- package/dist/store/agent-registry-store.js +72 -30
- package/dist/store/agent-registry-store.js.map +1 -1
- package/dist/store/attachment-store.js +3 -3
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/background-jobs.d.ts +1 -2
- package/dist/store/background-jobs.d.ts.map +1 -1
- package/dist/store/background-jobs.js.map +1 -1
- package/dist/store/conduit-sqlite.d.ts +21 -1
- package/dist/store/conduit-sqlite.d.ts.map +1 -1
- package/dist/store/conduit-sqlite.js +43 -58
- package/dist/store/conduit-sqlite.js.map +1 -1
- package/dist/store/cross-db-cleanup.d.ts +38 -0
- package/dist/store/cross-db-cleanup.d.ts.map +1 -1
- package/dist/store/cross-db-cleanup.js +125 -0
- package/dist/store/cross-db-cleanup.js.map +1 -1
- package/dist/store/db-helpers.d.ts +1 -2
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/dual-scope-db.d.ts +343 -4
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +665 -262
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/memory-accessor.d.ts +1 -1
- package/dist/store/memory-accessor.d.ts.map +1 -1
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/memory-sqlite.d.ts +58 -4
- package/dist/store/memory-sqlite.d.ts.map +1 -1
- package/dist/store/memory-sqlite.js +70 -78
- package/dist/store/memory-sqlite.js.map +1 -1
- package/dist/store/migration-manager.d.ts +7 -4
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +10 -10
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/migration-sqlite.js +1 -1
- package/dist/store/migration-sqlite.js.map +1 -1
- package/dist/store/nexus-sqlite.d.ts +43 -1
- package/dist/store/nexus-sqlite.d.ts.map +1 -1
- package/dist/store/nexus-sqlite.js +80 -116
- package/dist/store/nexus-sqlite.js.map +1 -1
- package/dist/store/ports/domain-binding.d.ts +233 -0
- package/dist/store/ports/domain-binding.d.ts.map +1 -0
- package/dist/store/ports/domain-binding.js +500 -0
- package/dist/store/ports/domain-binding.js.map +1 -0
- package/dist/store/ports/fk-integrity.d.ts +155 -0
- package/dist/store/ports/fk-integrity.d.ts.map +1 -0
- package/dist/store/ports/fk-integrity.js +182 -0
- package/dist/store/ports/fk-integrity.js.map +1 -0
- package/dist/store/role-accessors-impl.js +2 -2
- package/dist/store/role-accessors-impl.js.map +1 -1
- package/dist/store/schema/attachments.d.ts +1 -1
- package/dist/store/schema/audit.d.ts +2 -2
- package/dist/store/schema/background-jobs.d.ts +1 -1
- package/dist/store/schema/cleo-global/agent-registry.d.ts +1 -1
- package/dist/store/schema/cleo-global/models-catalog.d.ts +1 -1
- package/dist/store/schema/cleo-global/skills.d.ts +2 -2
- package/dist/store/schema/cleo-project/audit.d.ts +2 -2
- package/dist/store/schema/cleo-project/docs.d.ts +1 -1
- package/dist/store/schema/cleo-project/lifecycle.d.ts +4 -4
- package/dist/store/schema/cleo-project/nexus-graph.d.ts +2 -2
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +3 -3
- package/dist/store/schema/cleo-project/runtime.d.ts +2 -2
- package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +3 -3
- package/dist/store/schema/cleo-shared/brain.d.ts +5 -5
- package/dist/store/schema/jsonb.js +1 -1
- package/dist/store/schema/jsonb.js.map +1 -1
- package/dist/store/schema/lifecycle.d.ts +4 -4
- package/dist/store/schema/memory-schema.d.ts +3 -3
- package/dist/store/schema/nexus-schema.d.ts +1 -1
- package/dist/store/schema/provenance/releases.d.ts +3 -3
- package/dist/store/schema/skills-schema.d.ts +2 -2
- package/dist/store/schema/tasks.d.ts +2 -2
- package/dist/store/skills-db.d.ts +20 -1
- package/dist/store/skills-db.d.ts.map +1 -1
- package/dist/store/skills-db.js +80 -72
- package/dist/store/skills-db.js.map +1 -1
- package/dist/store/sqlite-backup.js +2 -2
- package/dist/store/sqlite-backup.js.map +1 -1
- package/dist/store/sqlite-data-accessor.js +1 -1
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite.d.ts +73 -11
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +173 -138
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/tasks-sqlite.js +2 -2
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +35 -35
- package/dist/store/writer-lease.d.ts +85 -53
- package/dist/store/writer-lease.d.ts.map +1 -1
- package/dist/store/writer-lease.js +194 -112
- package/dist/store/writer-lease.js.map +1 -1
- package/dist/system/health.d.ts +0 -4
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +58 -2
- package/dist/system/health.js.map +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +9 -2
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
- package/dist/tasks/backfill-child-projections.js +3 -1
- package/dist/tasks/backfill-child-projections.js.map +1 -1
- package/dist/tasks/evidence.d.ts +17 -0
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +145 -35
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/infer-add-params.d.ts.map +1 -1
- package/dist/tasks/infer-add-params.js +6 -1
- package/dist/tasks/infer-add-params.js.map +1 -1
- package/dist/tasks/tool-cache.d.ts +29 -0
- package/dist/tasks/tool-cache.d.ts.map +1 -1
- package/dist/tasks/tool-cache.js +166 -6
- package/dist/tasks/tool-cache.js.map +1 -1
- package/dist/tasks/tool-resolver.d.ts +5 -1
- package/dist/tasks/tool-resolver.d.ts.map +1 -1
- package/dist/tasks/tool-resolver.js +28 -20
- package/dist/tasks/tool-resolver.js.map +1 -1
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +4 -1
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/sqlite.d.ts +1 -2
- package/dist/telemetry/sqlite.d.ts.map +1 -1
- package/dist/telemetry/sqlite.js +1 -2
- package/dist/telemetry/sqlite.js.map +1 -1
- package/dist/upgrade.js +2 -2
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +23 -1
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +79 -19
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/worktree/list.js +1 -1
- package/dist/worktree/list.js.map +1 -1
- package/package.json +24 -14
- package/schemas/project-context.schema.json +69 -0
- package/templates/workflows/release-prepare.yml.tmpl +10 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Foreign-key integrity verification for the consolidated dual-scope
|
|
3
|
+
* `cleo.db` files.
|
|
4
|
+
*
|
|
5
|
+
* ## Why this exists (E6-L10 · T11530)
|
|
6
|
+
*
|
|
7
|
+
* The E6 cutover consolidated eight standalone databases into two files
|
|
8
|
+
* (project `cleo.db` and global `cleo.db`) and re-pointed every cross-domain
|
|
9
|
+
* foreign key at the PREFIXED consolidated tables. Two properties must hold
|
|
10
|
+
* afterwards and neither is self-evident:
|
|
11
|
+
*
|
|
12
|
+
* 1. **Referential integrity survived the move.** Exodus copies tables in
|
|
13
|
+
* dependency order, but a partially-applied migration, a hand-edited row,
|
|
14
|
+
* or a legacy DB restored from a pre-consolidation backup can leave an
|
|
15
|
+
* orphan whose parent row never made the trip.
|
|
16
|
+
* 2. **The FKs point at the right tables.** SQLite resolves a `REFERENCES`
|
|
17
|
+
* clause lazily, so an FK naming a table that no longer exists is not an
|
|
18
|
+
* error at DDL time — it fails only when a write touches it. A schema that
|
|
19
|
+
* still references the retired bare `tasks` table looks fine until
|
|
20
|
+
* something inserts.
|
|
21
|
+
*
|
|
22
|
+
* `PRAGMA foreign_key_check` answers both: it walks every FK in the schema and
|
|
23
|
+
* returns one row per violation, including one whose `parent` names a table
|
|
24
|
+
* that does not exist. So a structural defect and a row-level orphan surface
|
|
25
|
+
* through the same path.
|
|
26
|
+
*
|
|
27
|
+
* The verification runs against the LIVE consolidated files, not a fixture —
|
|
28
|
+
* this is the check that proves a real installation is sound.
|
|
29
|
+
*
|
|
30
|
+
* @packageDocumentation
|
|
31
|
+
* @task T11530 (E6-L10)
|
|
32
|
+
* @epic T11249 (E6)
|
|
33
|
+
* @saga T11242 (SG-DB-SUBSTRATE-V2)
|
|
34
|
+
*/
|
|
35
|
+
import { bindGlobalDomain, bindProjectDomain } from './domain-binding.js';
|
|
36
|
+
/**
|
|
37
|
+
* Run `PRAGMA foreign_key_check` against one open connection.
|
|
38
|
+
*
|
|
39
|
+
* @param native - An open consolidated `cleo.db` connection.
|
|
40
|
+
* @param scope - The scope label to attribute violations to.
|
|
41
|
+
* @returns Every violation the pragma reported.
|
|
42
|
+
*/
|
|
43
|
+
export function checkForeignKeys(native, scope) {
|
|
44
|
+
let rows;
|
|
45
|
+
try {
|
|
46
|
+
rows = native.prepare('PRAGMA foreign_key_check').all();
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
// The pragma normally reports a dangling parent table as an ordinary
|
|
50
|
+
// violation row, so this path is defensive: it covers the cases where
|
|
51
|
+
// SQLite raises instead (a malformed schema row, an unreadable page).
|
|
52
|
+
// Surfacing the error as a violation keeps a failure from reading as
|
|
53
|
+
// "no violations found".
|
|
54
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
55
|
+
return [
|
|
56
|
+
{
|
|
57
|
+
scope,
|
|
58
|
+
table: '(schema)',
|
|
59
|
+
rowid: null,
|
|
60
|
+
parent: message,
|
|
61
|
+
fkid: -1,
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
return rows.map((row) => ({
|
|
66
|
+
scope,
|
|
67
|
+
table: row.table,
|
|
68
|
+
rowid: row.rowid,
|
|
69
|
+
parent: row.parent,
|
|
70
|
+
fkid: row.fkid,
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Verify foreign-key integrity across the consolidated dual-scope databases.
|
|
75
|
+
*
|
|
76
|
+
* Opens each requested scope through the ProjectStore/GlobalStore ports — the
|
|
77
|
+
* same chokepoint the runtime uses — so the check runs against exactly the
|
|
78
|
+
* connection (and therefore the schema and pragmas) production code sees.
|
|
79
|
+
*
|
|
80
|
+
* The `establish` callbacks are deliberately inert: this is a read-only probe
|
|
81
|
+
* and must not reconcile or migrate anything as a side effect of checking.
|
|
82
|
+
*
|
|
83
|
+
* @param options - Which scopes to check and which project.
|
|
84
|
+
* @returns A report; `ok` is `true` only when ZERO violations were found.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* const report = await verifyForeignKeyIntegrity({ cwd: projectRoot });
|
|
89
|
+
* if (!report.ok) {
|
|
90
|
+
* for (const v of report.violations) {
|
|
91
|
+
* console.error(`${v.scope}: ${v.table} row ${v.rowid} → missing ${v.parent}`);
|
|
92
|
+
* }
|
|
93
|
+
* }
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* @task T11530
|
|
97
|
+
*/
|
|
98
|
+
export async function verifyForeignKeyIntegrity(options) {
|
|
99
|
+
const scopes = options?.scopes ?? ['project', 'global'];
|
|
100
|
+
const violations = [];
|
|
101
|
+
for (const scope of scopes) {
|
|
102
|
+
const binding = scope === 'project'
|
|
103
|
+
? await bindProjectDomain('fk-check', options?.cwd, (native) => native)
|
|
104
|
+
: await bindGlobalDomain('fk-check', (native) => native);
|
|
105
|
+
violations.push(...checkForeignKeys(binding.native, scope));
|
|
106
|
+
}
|
|
107
|
+
return { ok: violations.length === 0, scopes, violations };
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Whether the child table's failing foreign key declares `ON DELETE CASCADE`.
|
|
111
|
+
*
|
|
112
|
+
* This is the authorisation rule for automatic repair. A `CASCADE` FK is the
|
|
113
|
+
* schema stating "this row exists only while its parent does" — so an orphan
|
|
114
|
+
* is a row that SHOULD already have been deleted and removing it restores the
|
|
115
|
+
* intended state rather than discarding meaningful data. Any other
|
|
116
|
+
* `ON DELETE` action (`NO ACTION`, `RESTRICT`, `SET NULL`) means the schema
|
|
117
|
+
* expects the row to outlive or block the parent's removal, and deleting it
|
|
118
|
+
* would be destroying data the operator never authorised.
|
|
119
|
+
*
|
|
120
|
+
* @param native - The open connection.
|
|
121
|
+
* @param table - The child table.
|
|
122
|
+
* @param fkid - Index into the child's `PRAGMA foreign_key_list`.
|
|
123
|
+
*/
|
|
124
|
+
function isCascadeDelete(native, table, fkid) {
|
|
125
|
+
try {
|
|
126
|
+
const fks = native.prepare(`PRAGMA foreign_key_list(${JSON.stringify(table)})`).all();
|
|
127
|
+
return fks.some((fk) => fk.id === fkid && fk.on_delete.toUpperCase() === 'CASCADE');
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Delete orphan rows whose foreign key declares `ON DELETE CASCADE`.
|
|
135
|
+
*
|
|
136
|
+
* These rows are the residue of a parent deletion that happened while FK
|
|
137
|
+
* enforcement was off — most commonly a pre-consolidation legacy database that
|
|
138
|
+
* exodus then copied verbatim. The schema already says they should not exist;
|
|
139
|
+
* this restores that invariant.
|
|
140
|
+
*
|
|
141
|
+
* Rows whose FK is NOT `CASCADE` are reported in `skipped` and left untouched.
|
|
142
|
+
*
|
|
143
|
+
* @param options - Which scopes to repair and which project.
|
|
144
|
+
* @returns What was found, repaired, and deliberately skipped.
|
|
145
|
+
*
|
|
146
|
+
* @task T11530
|
|
147
|
+
*/
|
|
148
|
+
export async function repairForeignKeyViolations(options) {
|
|
149
|
+
const scopes = options?.scopes ?? ['project', 'global'];
|
|
150
|
+
const found = [];
|
|
151
|
+
const repaired = [];
|
|
152
|
+
const skipped = [];
|
|
153
|
+
for (const scope of scopes) {
|
|
154
|
+
const binding = scope === 'project'
|
|
155
|
+
? await bindProjectDomain('fk-check', options?.cwd, (native) => native)
|
|
156
|
+
: await bindGlobalDomain('fk-check', (native) => native);
|
|
157
|
+
const native = binding.native;
|
|
158
|
+
const violations = checkForeignKeys(native, scope);
|
|
159
|
+
found.push(...violations);
|
|
160
|
+
for (const v of violations) {
|
|
161
|
+
// A structural violation has no single row to delete.
|
|
162
|
+
if (v.rowid === null || v.fkid < 0) {
|
|
163
|
+
skipped.push(v);
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
if (!isCascadeDelete(native, v.table, v.fkid)) {
|
|
167
|
+
skipped.push(v);
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
native
|
|
171
|
+
.prepare(`DELETE FROM ${JSON.stringify(v.table)} WHERE rowid = ?`)
|
|
172
|
+
.run(v.rowid);
|
|
173
|
+
repaired.push(v);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const after = await verifyForeignKeyIntegrity({
|
|
177
|
+
...(options?.cwd === undefined ? {} : { cwd: options.cwd }),
|
|
178
|
+
scopes,
|
|
179
|
+
});
|
|
180
|
+
return { found, repaired, skipped, ok: after.ok };
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=fk-integrity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fk-integrity.js","sourceRoot":"","sources":["../../../src/store/ports/fk-integrity.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ export function createConduitAccessor(projectRoot) {
|
|
|
28
28
|
async publish(topic, payload) {
|
|
29
29
|
const { ensureConduitDb, getConduitNativeDb } = await import('./conduit-sqlite.js');
|
|
30
30
|
await ensureConduitDb(cwd);
|
|
31
|
-
const db = getConduitNativeDb();
|
|
31
|
+
const db = getConduitNativeDb(cwd);
|
|
32
32
|
if (!db)
|
|
33
33
|
throw new Error('ConduitAccessor: conduit.db not initialized');
|
|
34
34
|
// Best-effort publish into the prefixed conduit_messages table (T11578 ·
|
|
@@ -50,7 +50,7 @@ export function createConduitAccessor(projectRoot) {
|
|
|
50
50
|
try {
|
|
51
51
|
const { ensureConduitDb, getConduitNativeDb } = await import('./conduit-sqlite.js');
|
|
52
52
|
await ensureConduitDb(cwd);
|
|
53
|
-
const db = getConduitNativeDb();
|
|
53
|
+
const db = getConduitNativeDb(cwd);
|
|
54
54
|
if (!db)
|
|
55
55
|
return false;
|
|
56
56
|
db.prepare('SELECT 1').get();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-accessors-impl.js","sourceRoot":"","sources":["../../src/store/role-accessors-impl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAoB;IACxD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAEtC,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAAgB;YAC3C,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACpF,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,EAAE,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"role-accessors-impl.js","sourceRoot":"","sources":["../../src/store/role-accessors-impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -155,7 +155,7 @@ export declare const attachments: import("drizzle-orm/sqlite-core").SQLiteTableW
|
|
|
155
155
|
name: string;
|
|
156
156
|
tableName: "attachments";
|
|
157
157
|
dataType: "string enum";
|
|
158
|
-
data: "archived" | "proposed" | "accepted" | "superseded" | "
|
|
158
|
+
data: "archived" | "proposed" | "accepted" | "superseded" | "draft" | "deprecated";
|
|
159
159
|
driverParam: string;
|
|
160
160
|
notNull: true;
|
|
161
161
|
hasDefault: true;
|
|
@@ -645,7 +645,7 @@ export declare const tokenUsage: import("drizzle-orm/sqlite-core").SQLiteTableWi
|
|
|
645
645
|
name: string;
|
|
646
646
|
tableName: "token_usage";
|
|
647
647
|
dataType: "string enum";
|
|
648
|
-
data: "
|
|
648
|
+
data: "tokenizer" | "otel" | "provider_api" | "heuristic";
|
|
649
649
|
driverParam: string;
|
|
650
650
|
notNull: true;
|
|
651
651
|
hasDefault: true;
|
|
@@ -930,7 +930,7 @@ export declare const architectureDecisions: import("drizzle-orm/sqlite-core").SQ
|
|
|
930
930
|
name: string;
|
|
931
931
|
tableName: "architecture_decisions";
|
|
932
932
|
dataType: "string enum";
|
|
933
|
-
data: "
|
|
933
|
+
data: "failed" | "pending" | "passed" | "waived";
|
|
934
934
|
driverParam: string;
|
|
935
935
|
notNull: false;
|
|
936
936
|
hasDefault: false;
|
|
@@ -72,7 +72,7 @@ export declare const backgroundJobs: import("drizzle-orm/sqlite-core").SQLiteTab
|
|
|
72
72
|
name: string;
|
|
73
73
|
tableName: "background_jobs";
|
|
74
74
|
dataType: "string enum";
|
|
75
|
-
data: "orphaned" | "
|
|
75
|
+
data: "orphaned" | "cancelled" | "complete" | "failed" | "pending" | "running";
|
|
76
76
|
driverParam: string;
|
|
77
77
|
notNull: true;
|
|
78
78
|
hasDefault: true;
|
|
@@ -808,7 +808,7 @@ export declare const agentRegistryAgents: import("drizzle-orm/sqlite-core").SQLi
|
|
|
808
808
|
name: string;
|
|
809
809
|
tableName: "agent_registry_agents";
|
|
810
810
|
dataType: "string enum";
|
|
811
|
-
data: "online" | "
|
|
811
|
+
data: "online" | "busy" | "offline" | "away";
|
|
812
812
|
driverParam: string;
|
|
813
813
|
notNull: true;
|
|
814
814
|
hasDefault: true;
|
|
@@ -273,7 +273,7 @@ export declare const modelsCatalog: import("drizzle-orm/sqlite-core").SQLiteTabl
|
|
|
273
273
|
name: string;
|
|
274
274
|
tableName: "models_catalog";
|
|
275
275
|
dataType: "string enum";
|
|
276
|
-
data: "
|
|
276
|
+
data: "beta" | "deprecated" | "preview" | "stable" | "retired";
|
|
277
277
|
driverParam: string;
|
|
278
278
|
notNull: true;
|
|
279
279
|
hasDefault: true;
|
|
@@ -142,7 +142,7 @@ export declare const skillsSkills: import("drizzle-orm/sqlite-core").SQLiteTable
|
|
|
142
142
|
name: string;
|
|
143
143
|
tableName: "skills_skills";
|
|
144
144
|
dataType: "string enum";
|
|
145
|
-
data: "community" | "
|
|
145
|
+
data: "community" | "canonical" | "user" | "agent-created";
|
|
146
146
|
driverParam: string;
|
|
147
147
|
notNull: true;
|
|
148
148
|
hasDefault: false;
|
|
@@ -238,7 +238,7 @@ export declare const skillsSkills: import("drizzle-orm/sqlite-core").SQLiteTable
|
|
|
238
238
|
name: string;
|
|
239
239
|
tableName: "skills_skills";
|
|
240
240
|
dataType: "string enum";
|
|
241
|
-
data: "active" | "
|
|
241
|
+
data: "active" | "stale" | "archived";
|
|
242
242
|
driverParam: string;
|
|
243
243
|
notNull: true;
|
|
244
244
|
hasDefault: true;
|
|
@@ -680,7 +680,7 @@ export declare const tasksTokenUsage: import("drizzle-orm/sqlite-core").SQLiteTa
|
|
|
680
680
|
name: string;
|
|
681
681
|
tableName: "tasks_token_usage";
|
|
682
682
|
dataType: "string enum";
|
|
683
|
-
data: "
|
|
683
|
+
data: "tokenizer" | "otel" | "provider_api" | "heuristic";
|
|
684
684
|
driverParam: string;
|
|
685
685
|
notNull: true;
|
|
686
686
|
hasDefault: true;
|
|
@@ -964,7 +964,7 @@ export declare const tasksArchitectureDecisions: import("drizzle-orm/sqlite-core
|
|
|
964
964
|
name: string;
|
|
965
965
|
tableName: "tasks_architecture_decisions";
|
|
966
966
|
dataType: "string enum";
|
|
967
|
-
data: "
|
|
967
|
+
data: "failed" | "pending" | "passed" | "waived";
|
|
968
968
|
driverParam: string;
|
|
969
969
|
notNull: false;
|
|
970
970
|
hasDefault: false;
|
|
@@ -177,7 +177,7 @@ export declare const docsAttachments: import("drizzle-orm/sqlite-core").SQLiteTa
|
|
|
177
177
|
name: string;
|
|
178
178
|
tableName: "docs_attachments";
|
|
179
179
|
dataType: "string enum";
|
|
180
|
-
data: "archived" | "proposed" | "accepted" | "superseded" | "
|
|
180
|
+
data: "archived" | "proposed" | "accepted" | "superseded" | "draft" | "deprecated";
|
|
181
181
|
driverParam: string;
|
|
182
182
|
notNull: true;
|
|
183
183
|
hasDefault: true;
|
|
@@ -80,7 +80,7 @@ export declare const tasksLifecyclePipelines: import("drizzle-orm/sqlite-core").
|
|
|
80
80
|
name: string;
|
|
81
81
|
tableName: "tasks_lifecycle_pipelines";
|
|
82
82
|
dataType: "string enum";
|
|
83
|
-
data: "active" | "
|
|
83
|
+
data: "active" | "cancelled" | "blocked" | "failed" | "completed" | "aborted";
|
|
84
84
|
driverParam: string;
|
|
85
85
|
notNull: true;
|
|
86
86
|
hasDefault: true;
|
|
@@ -220,7 +220,7 @@ export declare const tasksLifecycleStages: import("drizzle-orm/sqlite-core").SQL
|
|
|
220
220
|
name: string;
|
|
221
221
|
tableName: "tasks_lifecycle_stages";
|
|
222
222
|
dataType: "string enum";
|
|
223
|
-
data: "
|
|
223
|
+
data: "release" | "research" | "consensus" | "architecture_decision" | "specification" | "decomposition" | "implementation" | "validation" | "testing" | "contribution";
|
|
224
224
|
driverParam: string;
|
|
225
225
|
notNull: true;
|
|
226
226
|
hasDefault: false;
|
|
@@ -236,7 +236,7 @@ export declare const tasksLifecycleStages: import("drizzle-orm/sqlite-core").SQL
|
|
|
236
236
|
name: string;
|
|
237
237
|
tableName: "tasks_lifecycle_stages";
|
|
238
238
|
dataType: "string enum";
|
|
239
|
-
data: "
|
|
239
|
+
data: "blocked" | "failed" | "in_progress" | "skipped" | "completed" | "not_started";
|
|
240
240
|
driverParam: string;
|
|
241
241
|
notNull: true;
|
|
242
242
|
hasDefault: true;
|
|
@@ -460,7 +460,7 @@ export declare const tasksLifecycleStages: import("drizzle-orm/sqlite-core").SQL
|
|
|
460
460
|
name: string;
|
|
461
461
|
tableName: "tasks_lifecycle_stages";
|
|
462
462
|
dataType: "string enum";
|
|
463
|
-
data: "pending" | "approved" | "
|
|
463
|
+
data: "pending" | "approved" | "in_review" | "rejected" | "needs_revision";
|
|
464
464
|
driverParam: string;
|
|
465
465
|
notNull: false;
|
|
466
466
|
hasDefault: false;
|
|
@@ -147,7 +147,7 @@ export declare const nexusNodes: import("drizzle-orm/sqlite-core").SQLiteTableWi
|
|
|
147
147
|
name: string;
|
|
148
148
|
tableName: "nexus_nodes";
|
|
149
149
|
dataType: "string enum";
|
|
150
|
-
data: "function" | "file" | "enum" | "folder" | "module" | "namespace" | "method" | "constructor" | "class" | "interface" | "struct" | "trait" | "impl" | "type_alias" | "property" | "constant" | "variable" | "static" | "record" | "delegate" | "macro" | "
|
|
150
|
+
data: "function" | "file" | "type" | "union" | "enum" | "folder" | "module" | "namespace" | "method" | "constructor" | "class" | "interface" | "struct" | "trait" | "impl" | "type_alias" | "property" | "constant" | "variable" | "static" | "record" | "delegate" | "macro" | "typedef" | "annotation" | "template" | "community" | "process" | "route" | "tool" | "section" | "import" | "export";
|
|
151
151
|
driverParam: string;
|
|
152
152
|
notNull: true;
|
|
153
153
|
hasDefault: false;
|
|
@@ -901,7 +901,7 @@ export declare const nexusCodeIndex: import("drizzle-orm/sqlite-core").SQLiteTab
|
|
|
901
901
|
name: string;
|
|
902
902
|
tableName: "nexus_code_index";
|
|
903
903
|
dataType: "string enum";
|
|
904
|
-
data: "function" | "enum" | "module" | "method" | "class" | "interface" | "struct" | "trait" | "impl" | "constant" | "variable" | "import" | "export"
|
|
904
|
+
data: "function" | "type" | "enum" | "module" | "method" | "class" | "interface" | "struct" | "trait" | "impl" | "constant" | "variable" | "import" | "export";
|
|
905
905
|
driverParam: string;
|
|
906
906
|
notNull: true;
|
|
907
907
|
hasDefault: false;
|
|
@@ -595,7 +595,7 @@ export declare const tasksReleases: import("drizzle-orm/sqlite-core").SQLiteTabl
|
|
|
595
595
|
name: string;
|
|
596
596
|
tableName: "tasks_releases";
|
|
597
597
|
dataType: "string enum";
|
|
598
|
-
data: "
|
|
598
|
+
data: "latest" | "beta" | "dev" | "hotfix";
|
|
599
599
|
driverParam: string;
|
|
600
600
|
notNull: true;
|
|
601
601
|
hasDefault: true;
|
|
@@ -643,7 +643,7 @@ export declare const tasksReleases: import("drizzle-orm/sqlite-core").SQLiteTabl
|
|
|
643
643
|
name: string;
|
|
644
644
|
tableName: "tasks_releases";
|
|
645
645
|
dataType: "string enum";
|
|
646
|
-
data: "
|
|
646
|
+
data: "cancelled" | "failed" | "reconciled" | "planned" | "pr-opened" | "pr-merged" | "published" | "prepared" | "committed" | "tagged" | "pushed" | "rolled_back";
|
|
647
647
|
driverParam: string;
|
|
648
648
|
notNull: true;
|
|
649
649
|
hasDefault: true;
|
|
@@ -1259,7 +1259,7 @@ export declare const tasksReleaseChanges: import("drizzle-orm/sqlite-core").SQLi
|
|
|
1259
1259
|
name: string;
|
|
1260
1260
|
tableName: "tasks_release_changes";
|
|
1261
1261
|
dataType: "string enum";
|
|
1262
|
-
data: "
|
|
1262
|
+
data: "none" | "major" | "minor" | "patch";
|
|
1263
1263
|
driverParam: string;
|
|
1264
1264
|
notNull: true;
|
|
1265
1265
|
hasDefault: true;
|
|
@@ -295,7 +295,7 @@ export declare const tasksWarpChainInstances: import("drizzle-orm/sqlite-core").
|
|
|
295
295
|
name: string;
|
|
296
296
|
tableName: "tasks_warp_chain_instances";
|
|
297
297
|
dataType: "string enum";
|
|
298
|
-
data: "
|
|
298
|
+
data: "active" | "cancelled" | "failed" | "pending" | "completed";
|
|
299
299
|
driverParam: string;
|
|
300
300
|
notNull: true;
|
|
301
301
|
hasDefault: true;
|
|
@@ -827,7 +827,7 @@ export declare const tasksPlaybookRuns: import("drizzle-orm/sqlite-core").SQLite
|
|
|
827
827
|
name: string;
|
|
828
828
|
tableName: "tasks_playbook_runs";
|
|
829
829
|
dataType: "string enum";
|
|
830
|
-
data: "
|
|
830
|
+
data: "cancelled" | "failed" | "completed" | "running" | "paused";
|
|
831
831
|
driverParam: string;
|
|
832
832
|
notNull: true;
|
|
833
833
|
hasDefault: true;
|
|
@@ -106,7 +106,7 @@ export declare const tasksBackgroundJobs: import("drizzle-orm/sqlite-core").SQLi
|
|
|
106
106
|
name: string;
|
|
107
107
|
tableName: "tasks_background_jobs";
|
|
108
108
|
dataType: "string enum";
|
|
109
|
-
data: "orphaned" | "
|
|
109
|
+
data: "orphaned" | "cancelled" | "complete" | "failed" | "pending" | "running";
|
|
110
110
|
driverParam: string;
|
|
111
111
|
notNull: true;
|
|
112
112
|
hasDefault: true;
|
|
@@ -126,7 +126,7 @@ export declare const tasksTasks: import("drizzle-orm/sqlite-core").SQLiteTableWi
|
|
|
126
126
|
name: string;
|
|
127
127
|
tableName: "tasks_tasks";
|
|
128
128
|
dataType: "string enum";
|
|
129
|
-
data: "
|
|
129
|
+
data: "active" | "done" | "archived" | "cancelled" | "blocked" | "pending" | "proposed";
|
|
130
130
|
driverParam: string;
|
|
131
131
|
notNull: true;
|
|
132
132
|
hasDefault: true;
|
|
@@ -174,7 +174,7 @@ export declare const tasksTasks: import("drizzle-orm/sqlite-core").SQLiteTableWi
|
|
|
174
174
|
name: string;
|
|
175
175
|
tableName: "tasks_tasks";
|
|
176
176
|
dataType: "string enum";
|
|
177
|
-
data: "work" | "research" | "experiment" | "bug" | "spike"
|
|
177
|
+
data: "release" | "work" | "research" | "experiment" | "bug" | "spike";
|
|
178
178
|
driverParam: string;
|
|
179
179
|
notNull: true;
|
|
180
180
|
hasDefault: true;
|
|
@@ -526,7 +526,7 @@ export declare const tasksTasks: import("drizzle-orm/sqlite-core").SQLiteTableWi
|
|
|
526
526
|
name: string;
|
|
527
527
|
tableName: "tasks_tasks";
|
|
528
528
|
dataType: "string enum";
|
|
529
|
-
data: "
|
|
529
|
+
data: "cancelled" | "verified" | "superseded" | "reconciled" | "shadowed" | "completed-unverified";
|
|
530
530
|
driverParam: string;
|
|
531
531
|
notNull: false;
|
|
532
532
|
hasDefault: false;
|
|
@@ -2205,7 +2205,7 @@ export declare const brainObservations: import("drizzle-orm/sqlite-core").SQLite
|
|
|
2205
2205
|
name: string;
|
|
2206
2206
|
tableName: "brain_observations";
|
|
2207
2207
|
dataType: "string enum";
|
|
2208
|
-
data: "agent" | "session-debrief" | "claude-mem"
|
|
2208
|
+
data: "manual" | "agent" | "session-debrief" | "claude-mem";
|
|
2209
2209
|
driverParam: string;
|
|
2210
2210
|
notNull: true;
|
|
2211
2211
|
hasDefault: true;
|
|
@@ -2329,7 +2329,7 @@ export declare const brainStickyNotes: import("drizzle-orm/sqlite-core").SQLiteT
|
|
|
2329
2329
|
name: string;
|
|
2330
2330
|
tableName: "brain_sticky_notes";
|
|
2331
2331
|
dataType: "string enum";
|
|
2332
|
-
data: "active" | "
|
|
2332
|
+
data: "active" | "archived" | "converted";
|
|
2333
2333
|
driverParam: string;
|
|
2334
2334
|
notNull: true;
|
|
2335
2335
|
hasDefault: true;
|
|
@@ -4193,7 +4193,7 @@ export declare const brainTranscriptEvents: import("drizzle-orm/sqlite-core").SQ
|
|
|
4193
4193
|
name: string;
|
|
4194
4194
|
tableName: "brain_transcript_events";
|
|
4195
4195
|
dataType: "string enum";
|
|
4196
|
-
data: "
|
|
4196
|
+
data: "system" | "user" | "assistant";
|
|
4197
4197
|
driverParam: string;
|
|
4198
4198
|
notNull: true;
|
|
4199
4199
|
hasDefault: false;
|
|
@@ -4457,7 +4457,7 @@ export declare const brainBackfillRuns: import("drizzle-orm/sqlite-core").SQLite
|
|
|
4457
4457
|
name: string;
|
|
4458
4458
|
tableName: "brain_backfill_runs";
|
|
4459
4459
|
dataType: "string enum";
|
|
4460
|
-
data: "custom" | "
|
|
4460
|
+
data: "custom" | "graph-backfill" | "noise-sweep-2440" | "observation-promotion" | "transcript-ingest";
|
|
4461
4461
|
driverParam: string;
|
|
4462
4462
|
notNull: true;
|
|
4463
4463
|
hasDefault: false;
|
|
@@ -4774,7 +4774,7 @@ export declare const brainDeriverQueue: import("drizzle-orm/sqlite-core").SQLite
|
|
|
4774
4774
|
name: string;
|
|
4775
4775
|
tableName: "brain_deriver_queue";
|
|
4776
4776
|
dataType: "string enum";
|
|
4777
|
-
data: "
|
|
4777
|
+
data: "done" | "failed" | "pending" | "in_progress";
|
|
4778
4778
|
driverParam: string;
|
|
4779
4779
|
notNull: true;
|
|
4780
4780
|
hasDefault: true;
|
|
@@ -127,6 +127,6 @@ export function jsonbText(column) {
|
|
|
127
127
|
// `sql` interpolates a column reference, an aliased expression, or a raw SQL
|
|
128
128
|
// fragment uniformly — all are valid `json()` arguments. The decoder parses
|
|
129
129
|
// the TEXT json() emits so consumers receive the live document.
|
|
130
|
-
return sql `json(${column})`.mapWith((
|
|
130
|
+
return sql `json(${column})`.mapWith((value) => JSON.parse(String(value)));
|
|
131
131
|
}
|
|
132
132
|
//# sourceMappingURL=jsonb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonb.js","sourceRoot":"","sources":["../../../src/store/schema/jsonb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAUrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,IAAY,EAAE,EAAE,CACvC,UAAU,CAA2C;IACnD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM;IACtB;;;OAGG;IACH,QAAQ,EAAE,CAAC,KAAQ,EAAO,EAAE,CAAC,GAAG,CAAA,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG;IACjE;;;;;;;OAOG;IACH,UAAU,EAAE,CAAC,MAAuB,EAAK,EAAE;QACzC,MAAM,IAAI,KAAK,CACb,gFAAgF;YAC9E,yEAAyE;YACzE,qFAAqF,CACxF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC,IAAI,CAAC,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,SAAS,CAAc,MAAyB;IAC9D,6EAA6E;IAC7E,4EAA4E;IAC5E,gEAAgE;IAChE,OAAO,GAAG,CAAA,QAAQ,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"jsonb.js","sourceRoot":"","sources":["../../../src/store/schema/jsonb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAUrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,IAAY,EAAE,EAAE,CACvC,UAAU,CAA2C;IACnD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM;IACtB;;;OAGG;IACH,QAAQ,EAAE,CAAC,KAAQ,EAAO,EAAE,CAAC,GAAG,CAAA,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG;IACjE;;;;;;;OAOG;IACH,UAAU,EAAE,CAAC,MAAuB,EAAK,EAAE;QACzC,MAAM,IAAI,KAAK,CACb,gFAAgF;YAC9E,yEAAyE;YACzE,qFAAqF,CACxF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC,IAAI,CAAC,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,SAAS,CAAc,MAAyB;IAC9D,6EAA6E;IAC7E,4EAA4E;IAC5E,gEAAgE;IAChE,OAAO,GAAG,CAAA,QAAQ,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,KAAc,EAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAM,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -50,7 +50,7 @@ export declare const lifecyclePipelines: import("drizzle-orm/sqlite-core").SQLit
|
|
|
50
50
|
name: string;
|
|
51
51
|
tableName: "lifecycle_pipelines";
|
|
52
52
|
dataType: "string enum";
|
|
53
|
-
data: "active" | "
|
|
53
|
+
data: "active" | "cancelled" | "blocked" | "failed" | "completed" | "aborted";
|
|
54
54
|
driverParam: string;
|
|
55
55
|
notNull: true;
|
|
56
56
|
hasDefault: true;
|
|
@@ -185,7 +185,7 @@ export declare const lifecycleStages: import("drizzle-orm/sqlite-core").SQLiteTa
|
|
|
185
185
|
name: string;
|
|
186
186
|
tableName: "lifecycle_stages";
|
|
187
187
|
dataType: "string enum";
|
|
188
|
-
data: "
|
|
188
|
+
data: "release" | "research" | "consensus" | "architecture_decision" | "specification" | "decomposition" | "implementation" | "validation" | "testing" | "contribution";
|
|
189
189
|
driverParam: string;
|
|
190
190
|
notNull: true;
|
|
191
191
|
hasDefault: false;
|
|
@@ -201,7 +201,7 @@ export declare const lifecycleStages: import("drizzle-orm/sqlite-core").SQLiteTa
|
|
|
201
201
|
name: string;
|
|
202
202
|
tableName: "lifecycle_stages";
|
|
203
203
|
dataType: "string enum";
|
|
204
|
-
data: "
|
|
204
|
+
data: "blocked" | "failed" | "in_progress" | "skipped" | "completed" | "not_started";
|
|
205
205
|
driverParam: string;
|
|
206
206
|
notNull: true;
|
|
207
207
|
hasDefault: true;
|
|
@@ -425,7 +425,7 @@ export declare const lifecycleStages: import("drizzle-orm/sqlite-core").SQLiteTa
|
|
|
425
425
|
name: string;
|
|
426
426
|
tableName: "lifecycle_stages";
|
|
427
427
|
dataType: "string enum";
|
|
428
|
-
data: "pending" | "approved" | "
|
|
428
|
+
data: "pending" | "approved" | "in_review" | "rejected" | "needs_revision";
|
|
429
429
|
driverParam: string;
|
|
430
430
|
notNull: false;
|
|
431
431
|
hasDefault: false;
|
|
@@ -1815,7 +1815,7 @@ export declare const brainObservations: import("drizzle-orm/sqlite-core").SQLite
|
|
|
1815
1815
|
name: string;
|
|
1816
1816
|
tableName: "brain_observations";
|
|
1817
1817
|
dataType: "string enum";
|
|
1818
|
-
data: "agent" | "session-debrief" | "claude-mem"
|
|
1818
|
+
data: "manual" | "agent" | "session-debrief" | "claude-mem";
|
|
1819
1819
|
driverParam: string;
|
|
1820
1820
|
notNull: true;
|
|
1821
1821
|
hasDefault: true;
|
|
@@ -2383,7 +2383,7 @@ export declare const brainStickyNotes: import("drizzle-orm/sqlite-core").SQLiteT
|
|
|
2383
2383
|
name: string;
|
|
2384
2384
|
tableName: "brain_sticky_notes";
|
|
2385
2385
|
dataType: "string enum";
|
|
2386
|
-
data: "active" | "
|
|
2386
|
+
data: "active" | "archived" | "converted";
|
|
2387
2387
|
driverParam: string;
|
|
2388
2388
|
notNull: true;
|
|
2389
2389
|
hasDefault: true;
|
|
@@ -4947,7 +4947,7 @@ export declare const deriverQueue: import("drizzle-orm/sqlite-core").SQLiteTable
|
|
|
4947
4947
|
name: string;
|
|
4948
4948
|
tableName: "deriver_queue";
|
|
4949
4949
|
dataType: "string enum";
|
|
4950
|
-
data: "
|
|
4950
|
+
data: "done" | "failed" | "pending" | "in_progress";
|
|
4951
4951
|
driverParam: string;
|
|
4952
4952
|
notNull: true;
|
|
4953
4953
|
hasDefault: true;
|
|
@@ -724,7 +724,7 @@ export declare const nexusNodes: import("drizzle-orm/sqlite-core").SQLiteTableWi
|
|
|
724
724
|
name: string;
|
|
725
725
|
tableName: "nexus_nodes";
|
|
726
726
|
dataType: "string enum";
|
|
727
|
-
data: "function" | "file" | "enum" | "folder" | "module" | "namespace" | "method" | "constructor" | "class" | "interface" | "struct" | "trait" | "impl" | "type_alias" | "property" | "constant" | "variable" | "static" | "record" | "delegate" | "macro" | "
|
|
727
|
+
data: "function" | "file" | "type" | "union" | "enum" | "folder" | "module" | "namespace" | "method" | "constructor" | "class" | "interface" | "struct" | "trait" | "impl" | "type_alias" | "property" | "constant" | "variable" | "static" | "record" | "delegate" | "macro" | "typedef" | "annotation" | "template" | "community" | "process" | "route" | "tool" | "section" | "import" | "export";
|
|
728
728
|
driverParam: string;
|
|
729
729
|
notNull: true;
|
|
730
730
|
hasDefault: false;
|