@substrate-ai/core 0.20.93 → 0.20.95
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/persistence/dolt-init.d.ts +15 -9
- package/dist/persistence/dolt-init.d.ts.map +1 -1
- package/dist/persistence/dolt-init.js +13 -12
- package/dist/persistence/dolt-init.js.map +1 -1
- package/dist/persistence/schema.d.ts.map +1 -1
- package/dist/persistence/schema.js +167 -0
- package/dist/persistence/schema.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* Configuration for `initializeDolt()`.
|
|
10
|
+
*
|
|
11
|
+
* Post-Ship-3 (2026-05): `schemaPath` was removed. `initializeDolt` no longer
|
|
12
|
+
* applies a DDL file at init time — `initSchema()` is the sole runtime
|
|
13
|
+
* contract, run on the first `substrate run` after init. Fresh repos pay one
|
|
14
|
+
* extra `substrate run` invocation before tables exist; existing repos
|
|
15
|
+
* auto-migrate idempotently via `CREATE TABLE IF NOT EXISTS`.
|
|
10
16
|
*/
|
|
11
17
|
export interface DoltInitConfig {
|
|
12
18
|
/** Absolute path to the project root. */
|
|
@@ -16,11 +22,6 @@ export interface DoltInitConfig {
|
|
|
16
22
|
* Defaults to `<projectRoot>/.substrate/state/`.
|
|
17
23
|
*/
|
|
18
24
|
statePath?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Path to the `schema.sql` DDL file. REQUIRED — caller must provide an
|
|
21
|
-
* absolute path (e.g. via fileURLToPath(new URL('./schema.sql', import.meta.url))).
|
|
22
|
-
*/
|
|
23
|
-
schemaPath: string;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Thrown when the `dolt` binary cannot be found in PATH.
|
|
@@ -52,11 +53,16 @@ export declare function runDoltCommand(args: string[], cwd: string): Promise<voi
|
|
|
52
53
|
* Initialize a Dolt repository for Substrate state storage.
|
|
53
54
|
*
|
|
54
55
|
* This function is idempotent: running it a second time on an already-
|
|
55
|
-
* initialized repository is safe — `dolt init` is skipped,
|
|
56
|
-
*
|
|
57
|
-
*
|
|
56
|
+
* initialized repository is safe — `dolt init` is skipped, and the initial
|
|
57
|
+
* empty-repo commit is not re-created.
|
|
58
|
+
*
|
|
59
|
+
* Post-Ship-3 (2026-05): no DDL is applied here. The runtime `initSchema()`
|
|
60
|
+
* call on first `substrate run` creates all tables idempotently via
|
|
61
|
+
* `CREATE TABLE IF NOT EXISTS` + try/catch `ALTER ADD COLUMN`. Existing
|
|
62
|
+
* repos auto-migrate transparently; fresh repos pay one extra `substrate run`
|
|
63
|
+
* invocation before tables exist.
|
|
58
64
|
*
|
|
59
|
-
* @param config - Initialization configuration.
|
|
65
|
+
* @param config - Initialization configuration.
|
|
60
66
|
* @throws {DoltNotInstalled} If the `dolt` binary is not in PATH.
|
|
61
67
|
* @throws {DoltInitError} If any Dolt CLI command fails.
|
|
62
68
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dolt-init.d.ts","sourceRoot":"","sources":["../../src/persistence/dolt-init.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH
|
|
1
|
+
{"version":3,"file":"dolt-init.d.ts","sourceRoot":"","sources":["../../src/persistence/dolt-init.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;;CAO1C;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAM7D;AAMD;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCxD;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB/E;AAwDD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C1E"}
|
|
@@ -155,18 +155,21 @@ async function runDoltConfigSet(key, value) {
|
|
|
155
155
|
* Initialize a Dolt repository for Substrate state storage.
|
|
156
156
|
*
|
|
157
157
|
* This function is idempotent: running it a second time on an already-
|
|
158
|
-
* initialized repository is safe — `dolt init` is skipped,
|
|
159
|
-
*
|
|
160
|
-
* not duplicated (INSERT IGNORE).
|
|
158
|
+
* initialized repository is safe — `dolt init` is skipped, and the initial
|
|
159
|
+
* empty-repo commit is not re-created.
|
|
161
160
|
*
|
|
162
|
-
*
|
|
161
|
+
* Post-Ship-3 (2026-05): no DDL is applied here. The runtime `initSchema()`
|
|
162
|
+
* call on first `substrate run` creates all tables idempotently via
|
|
163
|
+
* `CREATE TABLE IF NOT EXISTS` + try/catch `ALTER ADD COLUMN`. Existing
|
|
164
|
+
* repos auto-migrate transparently; fresh repos pay one extra `substrate run`
|
|
165
|
+
* invocation before tables exist.
|
|
166
|
+
*
|
|
167
|
+
* @param config - Initialization configuration.
|
|
163
168
|
* @throws {DoltNotInstalled} If the `dolt` binary is not in PATH.
|
|
164
169
|
* @throws {DoltInitError} If any Dolt CLI command fails.
|
|
165
170
|
*/
|
|
166
171
|
export async function initializeDolt(config) {
|
|
167
|
-
// Resolve paths
|
|
168
172
|
const statePath = config.statePath ?? join(config.projectRoot, '.substrate', 'state');
|
|
169
|
-
const schemaPath = config.schemaPath;
|
|
170
173
|
// 1. Verify Dolt is installed
|
|
171
174
|
await checkDoltInstalled();
|
|
172
175
|
// 2. Create the state directory (recursive — idempotent)
|
|
@@ -188,14 +191,12 @@ export async function initializeDolt(config) {
|
|
|
188
191
|
if (!doltDirExists) {
|
|
189
192
|
await runDoltCommand(['init'], statePath);
|
|
190
193
|
}
|
|
191
|
-
// 5.
|
|
192
|
-
|
|
193
|
-
//
|
|
194
|
+
// 5. Create an empty initial commit only if no commits exist yet. This
|
|
195
|
+
// ensures story branches created later via DOLT_BRANCH fork from a
|
|
196
|
+
// valid commit (Dolt requires at least one commit before branching).
|
|
194
197
|
let hasCommits = false;
|
|
195
198
|
try {
|
|
196
199
|
await runDoltCommand(['log', '--oneline'], statePath);
|
|
197
|
-
// If this succeeds, check whether there is any output.
|
|
198
|
-
// We use a separate helper that captures stdout to detect empty log.
|
|
199
200
|
hasCommits = await doltLogHasCommits(statePath);
|
|
200
201
|
}
|
|
201
202
|
catch {
|
|
@@ -203,7 +204,7 @@ export async function initializeDolt(config) {
|
|
|
203
204
|
}
|
|
204
205
|
if (!hasCommits) {
|
|
205
206
|
await runDoltCommand(['add', '-A'], statePath);
|
|
206
|
-
await runDoltCommand(['commit', '-m', 'Initialize substrate state
|
|
207
|
+
await runDoltCommand(['commit', '--allow-empty', '-m', 'Initialize substrate state repo'], statePath);
|
|
207
208
|
}
|
|
208
209
|
}
|
|
209
210
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dolt-init.js","sourceRoot":"","sources":["../../src/persistence/dolt-init.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"dolt-init.js","sourceRoot":"","sources":["../../src/persistence/dolt-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/persistence/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/persistence/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA+sBxE"}
|
|
@@ -565,5 +565,172 @@ export async function initSchema(adapter) {
|
|
|
565
565
|
applied_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
566
566
|
)
|
|
567
567
|
`);
|
|
568
|
+
// -- Legacy state tables (ported from schema.sql in Ship 3, 2026-05) ------
|
|
569
|
+
// These were previously created only at `substrate init --dolt` time via
|
|
570
|
+
// schema.sql. Ship 3 moved them into initSchema so initSchema is the single
|
|
571
|
+
// contract for "what tables substrate needs," and substrate init --dolt
|
|
572
|
+
// no longer applies a separate DDL file. The Ship 2 regression gate
|
|
573
|
+
// (test/persistence/full-init-integration.test.ts) enforces that this
|
|
574
|
+
// set + the rest of initSchema produces the same table union schema.sql did.
|
|
575
|
+
//
|
|
576
|
+
// Functional status of these tables: stories/contracts/metrics/dispatch_log/
|
|
577
|
+
// build_results/review_verdicts had ZERO rows in every audited production
|
|
578
|
+
// project (ynab, quant). They survive because Ship 7 will decide their
|
|
579
|
+
// fate; deleting them outright would break operator commands that still
|
|
580
|
+
// expect them and risk an inconsistent post-init schema for existing repos.
|
|
581
|
+
await adapter.exec(`
|
|
582
|
+
CREATE TABLE IF NOT EXISTS stories (
|
|
583
|
+
story_key VARCHAR(100) NOT NULL,
|
|
584
|
+
sprint VARCHAR(50),
|
|
585
|
+
status VARCHAR(30) NOT NULL DEFAULT 'PENDING',
|
|
586
|
+
phase VARCHAR(30) NOT NULL DEFAULT 'PENDING',
|
|
587
|
+
ac_results JSON,
|
|
588
|
+
error_message TEXT,
|
|
589
|
+
created_at DATETIME,
|
|
590
|
+
updated_at DATETIME,
|
|
591
|
+
completed_at DATETIME,
|
|
592
|
+
PRIMARY KEY (story_key)
|
|
593
|
+
)
|
|
594
|
+
`);
|
|
595
|
+
await adapter.exec(`
|
|
596
|
+
CREATE TABLE IF NOT EXISTS contracts (
|
|
597
|
+
story_key VARCHAR(100) NOT NULL,
|
|
598
|
+
name VARCHAR(200) NOT NULL,
|
|
599
|
+
direction VARCHAR(20) NOT NULL,
|
|
600
|
+
schema_path VARCHAR(500),
|
|
601
|
+
transport VARCHAR(200),
|
|
602
|
+
recorded_at DATETIME,
|
|
603
|
+
PRIMARY KEY (story_key, name, direction)
|
|
604
|
+
)
|
|
605
|
+
`);
|
|
606
|
+
await adapter.exec(`
|
|
607
|
+
CREATE TABLE IF NOT EXISTS metrics (
|
|
608
|
+
story_key VARCHAR(100) NOT NULL,
|
|
609
|
+
task_type VARCHAR(100) NOT NULL,
|
|
610
|
+
recorded_at DATETIME NOT NULL,
|
|
611
|
+
model VARCHAR(100),
|
|
612
|
+
tokens_in BIGINT NOT NULL DEFAULT 0,
|
|
613
|
+
tokens_out BIGINT NOT NULL DEFAULT 0,
|
|
614
|
+
cache_read_tokens BIGINT NOT NULL DEFAULT 0,
|
|
615
|
+
cost_usd DECIMAL(10,6) NOT NULL DEFAULT 0,
|
|
616
|
+
wall_clock_ms BIGINT NOT NULL DEFAULT 0,
|
|
617
|
+
review_cycles INT NOT NULL DEFAULT 0,
|
|
618
|
+
stall_count INT NOT NULL DEFAULT 0,
|
|
619
|
+
result VARCHAR(30),
|
|
620
|
+
PRIMARY KEY (story_key, task_type, recorded_at)
|
|
621
|
+
)
|
|
622
|
+
`);
|
|
623
|
+
await adapter.exec(`
|
|
624
|
+
CREATE TABLE IF NOT EXISTS dispatch_log (
|
|
625
|
+
story_key VARCHAR(100) NOT NULL,
|
|
626
|
+
dispatched_at DATETIME NOT NULL,
|
|
627
|
+
branch VARCHAR(200),
|
|
628
|
+
worker_id VARCHAR(100),
|
|
629
|
+
result VARCHAR(30),
|
|
630
|
+
PRIMARY KEY (story_key, dispatched_at)
|
|
631
|
+
)
|
|
632
|
+
`);
|
|
633
|
+
await adapter.exec(`
|
|
634
|
+
CREATE TABLE IF NOT EXISTS build_results (
|
|
635
|
+
story_key VARCHAR(100) NOT NULL,
|
|
636
|
+
timestamp DATETIME NOT NULL,
|
|
637
|
+
command VARCHAR(500),
|
|
638
|
+
exit_code INT,
|
|
639
|
+
stdout_hash VARCHAR(64),
|
|
640
|
+
PRIMARY KEY (story_key, timestamp)
|
|
641
|
+
)
|
|
642
|
+
`);
|
|
643
|
+
await adapter.exec(`
|
|
644
|
+
CREATE TABLE IF NOT EXISTS review_verdicts (
|
|
645
|
+
story_key VARCHAR(100) NOT NULL,
|
|
646
|
+
timestamp DATETIME NOT NULL,
|
|
647
|
+
verdict VARCHAR(30),
|
|
648
|
+
issues_count INT NOT NULL DEFAULT 0,
|
|
649
|
+
notes TEXT,
|
|
650
|
+
PRIMARY KEY (story_key, timestamp)
|
|
651
|
+
)
|
|
652
|
+
`);
|
|
653
|
+
await adapter.exec(`
|
|
654
|
+
CREATE TABLE IF NOT EXISTS _schema_version (
|
|
655
|
+
version INT NOT NULL,
|
|
656
|
+
applied_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
657
|
+
description VARCHAR(500),
|
|
658
|
+
PRIMARY KEY (version)
|
|
659
|
+
)
|
|
660
|
+
`);
|
|
661
|
+
// _schema_version seed rows — preserved verbatim from schema.sql for
|
|
662
|
+
// backward-compat with operators inspecting the version table. Ship 7
|
|
663
|
+
// will decide whether to keep the table or delete it.
|
|
664
|
+
try {
|
|
665
|
+
await adapter.exec(`INSERT IGNORE INTO _schema_version (version, description) VALUES (1, 'Initial substrate state schema')`);
|
|
666
|
+
}
|
|
667
|
+
catch { /* InMemory adapter does not support INSERT IGNORE */ }
|
|
668
|
+
try {
|
|
669
|
+
await adapter.exec(`INSERT IGNORE INTO _schema_version (version, description) VALUES (2, 'Add turn_analysis table (Epic 27-4)')`);
|
|
670
|
+
}
|
|
671
|
+
catch { /* same */ }
|
|
672
|
+
try {
|
|
673
|
+
await adapter.exec(`INSERT IGNORE INTO _schema_version (version, description) VALUES (3, 'Add category_stats and consumer_stats tables (Epic 27-5)')`);
|
|
674
|
+
}
|
|
675
|
+
catch { /* same */ }
|
|
676
|
+
try {
|
|
677
|
+
await adapter.exec(`INSERT IGNORE INTO _schema_version (version, description) VALUES (4, 'Add recommendations table (Epic 27-7)')`);
|
|
678
|
+
}
|
|
679
|
+
catch { /* same */ }
|
|
680
|
+
try {
|
|
681
|
+
await adapter.exec(`INSERT IGNORE INTO _schema_version (version, description) VALUES (5, 'Add repo_map_symbols and repo_map_meta tables (Epic 28-2)')`);
|
|
682
|
+
}
|
|
683
|
+
catch { /* same */ }
|
|
684
|
+
try {
|
|
685
|
+
await adapter.exec(`INSERT IGNORE INTO _schema_version (version, description) VALUES (6, 'Add dependencies JSON column to repo_map_symbols (Epic 28-3)')`);
|
|
686
|
+
}
|
|
687
|
+
catch { /* same */ }
|
|
688
|
+
try {
|
|
689
|
+
await adapter.exec(`INSERT IGNORE INTO _schema_version (version, description) VALUES (7, 'Add wg_stories, story_dependencies tables and ready_stories view (Epic 31-1)')`);
|
|
690
|
+
}
|
|
691
|
+
catch { /* same */ }
|
|
692
|
+
try {
|
|
693
|
+
await adapter.exec(`INSERT IGNORE INTO _schema_version (version, description) VALUES (8, 'Add task_type, phase, dispatch_id columns to turn_analysis (Story 30-1)')`);
|
|
694
|
+
}
|
|
695
|
+
catch { /* same */ }
|
|
696
|
+
try {
|
|
697
|
+
await adapter.exec(`INSERT IGNORE INTO _schema_version (version, description) VALUES (9, 'Add dispatch_id, task_type, phase columns to efficiency_scores (Story 30-3)')`);
|
|
698
|
+
}
|
|
699
|
+
catch { /* same */ }
|
|
700
|
+
// repo_map_symbols + repo_map_meta — actively used by src/modules/repo-map/storage.ts
|
|
701
|
+
await adapter.exec(`
|
|
702
|
+
CREATE TABLE IF NOT EXISTS repo_map_symbols (
|
|
703
|
+
id BIGINT AUTO_INCREMENT NOT NULL,
|
|
704
|
+
file_path VARCHAR(1000) NOT NULL,
|
|
705
|
+
symbol_name VARCHAR(500) NOT NULL,
|
|
706
|
+
symbol_kind VARCHAR(20) NOT NULL,
|
|
707
|
+
signature TEXT,
|
|
708
|
+
line_number INT NOT NULL DEFAULT 0,
|
|
709
|
+
exported TINYINT(1) NOT NULL DEFAULT 0,
|
|
710
|
+
file_hash VARCHAR(64) NOT NULL,
|
|
711
|
+
dependencies JSON,
|
|
712
|
+
PRIMARY KEY (id)
|
|
713
|
+
)
|
|
714
|
+
`);
|
|
715
|
+
await adapter.exec('CREATE INDEX IF NOT EXISTS idx_repo_map_symbols_file ON repo_map_symbols (file_path)');
|
|
716
|
+
await adapter.exec('CREATE INDEX IF NOT EXISTS idx_repo_map_symbols_kind ON repo_map_symbols (symbol_kind)');
|
|
717
|
+
await adapter.exec(`
|
|
718
|
+
CREATE TABLE IF NOT EXISTS repo_map_meta (
|
|
719
|
+
id INT NOT NULL DEFAULT 1,
|
|
720
|
+
commit_sha VARCHAR(64),
|
|
721
|
+
updated_at DATETIME,
|
|
722
|
+
file_count INT NOT NULL DEFAULT 0,
|
|
723
|
+
PRIMARY KEY (id)
|
|
724
|
+
)
|
|
725
|
+
`);
|
|
726
|
+
// -- Telemetry indexes (ported from schema.sql in Ship 3) ----------------
|
|
727
|
+
// These indexes were declared in schema.sql but not in the original initSchema.
|
|
728
|
+
// The Ship 2 regression gate doesn't check for individual indexes by name,
|
|
729
|
+
// but read-heavy operator commands (`substrate metrics`) depend on them
|
|
730
|
+
// for query performance against story_key columns.
|
|
731
|
+
await adapter.exec('CREATE INDEX IF NOT EXISTS idx_efficiency_story ON efficiency_scores (story_key, timestamp DESC)');
|
|
732
|
+
await adapter.exec('CREATE INDEX IF NOT EXISTS idx_recommendations_story ON recommendations (story_key, severity)');
|
|
733
|
+
await adapter.exec('CREATE INDEX IF NOT EXISTS idx_category_stats_story ON category_stats (story_key, total_tokens)');
|
|
734
|
+
await adapter.exec('CREATE INDEX IF NOT EXISTS idx_consumer_stats_story ON consumer_stats (story_key, total_tokens)');
|
|
568
735
|
}
|
|
569
736
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/persistence/schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/persistence/schema.ts"],"names":[],"mappings":"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"}
|