@buildautomaton/cli 0.1.55 → 0.1.57

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.
@@ -0,0 +1,50 @@
1
+ -- Content-addressed symbol index with base + overlay parent file maps.
2
+
3
+ ALTER TABLE symbol_index_parent_path ADD COLUMN kind TEXT NOT NULL DEFAULT 'base';
4
+ ALTER TABLE symbol_index_parent_path ADD COLUMN base_parent_id INTEGER REFERENCES symbol_index_parent_path(id) ON DELETE SET NULL;
5
+
6
+ CREATE TABLE IF NOT EXISTS symbol_file_blob (
7
+ content_hash TEXT PRIMARY KEY,
8
+ payload BLOB NOT NULL,
9
+ tag_count INTEGER NOT NULL,
10
+ created_at TEXT NOT NULL
11
+ );
12
+
13
+ -- Per-parent file map. content_hash NULL = tombstone (file removed in overlay; hides base entry).
14
+ CREATE TABLE IF NOT EXISTS symbol_parent_file_map (
15
+ parent_id INTEGER NOT NULL,
16
+ file_path TEXT NOT NULL,
17
+ content_hash TEXT,
18
+ PRIMARY KEY (parent_id, file_path),
19
+ FOREIGN KEY (parent_id) REFERENCES symbol_index_parent_path(id) ON DELETE CASCADE,
20
+ FOREIGN KEY (content_hash) REFERENCES symbol_file_blob(content_hash) ON DELETE SET NULL
21
+ );
22
+
23
+ CREATE INDEX IF NOT EXISTS idx_symbol_parent_file_map_parent ON symbol_parent_file_map(parent_id);
24
+ CREATE INDEX IF NOT EXISTS idx_symbol_parent_file_map_hash ON symbol_parent_file_map(content_hash);
25
+
26
+ -- Shared tag index keyed by content hash for cross-file name lookups.
27
+ CREATE TABLE IF NOT EXISTS symbol_blob_tag_index (
28
+ content_hash TEXT NOT NULL,
29
+ name TEXT NOT NULL,
30
+ role TEXT NOT NULL,
31
+ kind TEXT NOT NULL,
32
+ start_line INTEGER NOT NULL,
33
+ start_column INTEGER NOT NULL,
34
+ end_line INTEGER NOT NULL,
35
+ end_column INTEGER NOT NULL,
36
+ scope_start_line INTEGER,
37
+ scope_start_column INTEGER,
38
+ parent_scope_start_line INTEGER,
39
+ parent_scope_start_column INTEGER,
40
+ nav_target_path TEXT,
41
+ scope_chain TEXT,
42
+ PRIMARY KEY (content_hash, role, kind, name, start_line, start_column),
43
+ FOREIGN KEY (content_hash) REFERENCES symbol_file_blob(content_hash) ON DELETE CASCADE
44
+ );
45
+
46
+ CREATE INDEX IF NOT EXISTS idx_symbol_blob_tag_index_hash_name ON symbol_blob_tag_index(content_hash, name);
47
+
48
+ DROP TABLE IF EXISTS symbol_index_scope;
49
+ DROP TABLE IF EXISTS symbol_index_import;
50
+ DROP TABLE IF EXISTS symbol_index_tag;
@@ -0,0 +1,61 @@
1
+ -- Individual tag/import rows keyed by content hash (no JSON blobs).
2
+
3
+ DROP TABLE IF EXISTS symbol_blob_tag_index;
4
+ DROP TABLE IF EXISTS symbol_file_blob;
5
+
6
+ CREATE TABLE symbol_parent_file_map_new (
7
+ parent_id INTEGER NOT NULL,
8
+ file_path TEXT NOT NULL,
9
+ content_hash TEXT,
10
+ PRIMARY KEY (parent_id, file_path),
11
+ FOREIGN KEY (parent_id) REFERENCES symbol_index_parent_path(id) ON DELETE CASCADE
12
+ );
13
+
14
+ INSERT INTO symbol_parent_file_map_new (parent_id, file_path, content_hash)
15
+ SELECT parent_id, file_path, content_hash FROM symbol_parent_file_map;
16
+
17
+ DROP TABLE symbol_parent_file_map;
18
+ ALTER TABLE symbol_parent_file_map_new RENAME TO symbol_parent_file_map;
19
+
20
+ CREATE INDEX IF NOT EXISTS idx_symbol_parent_file_map_parent ON symbol_parent_file_map(parent_id);
21
+ CREATE INDEX IF NOT EXISTS idx_symbol_parent_file_map_hash ON symbol_parent_file_map(content_hash);
22
+
23
+ CREATE TABLE IF NOT EXISTS symbol_index_tag (
24
+ content_hash TEXT NOT NULL,
25
+ file_path TEXT NOT NULL,
26
+ name TEXT NOT NULL,
27
+ role TEXT NOT NULL,
28
+ kind TEXT NOT NULL,
29
+ start_line INTEGER NOT NULL,
30
+ start_column INTEGER NOT NULL,
31
+ end_line INTEGER NOT NULL,
32
+ end_column INTEGER NOT NULL,
33
+ scope_start_line INTEGER,
34
+ scope_start_column INTEGER,
35
+ parent_scope_start_line INTEGER,
36
+ parent_scope_start_column INTEGER,
37
+ nav_target_path TEXT,
38
+ scope_chain TEXT,
39
+ PRIMARY KEY (content_hash, file_path, start_line, start_column, role, kind, name)
40
+ );
41
+
42
+ CREATE INDEX IF NOT EXISTS idx_symbol_index_tag_hash_name ON symbol_index_tag(content_hash, name);
43
+ CREATE INDEX IF NOT EXISTS idx_symbol_index_tag_hash_file ON symbol_index_tag(content_hash, file_path);
44
+ CREATE INDEX IF NOT EXISTS idx_symbol_index_tag_hash_role_file_name
45
+ ON symbol_index_tag(content_hash, role, file_path, name);
46
+
47
+ CREATE TABLE IF NOT EXISTS symbol_index_import (
48
+ content_hash TEXT NOT NULL,
49
+ file_path TEXT NOT NULL,
50
+ local_name TEXT NOT NULL,
51
+ source_name TEXT NOT NULL,
52
+ module_specifier TEXT NOT NULL,
53
+ source_file_path TEXT,
54
+ import_kind TEXT NOT NULL,
55
+ start_line INTEGER NOT NULL,
56
+ start_column INTEGER NOT NULL,
57
+ PRIMARY KEY (content_hash, file_path, local_name, start_line, start_column)
58
+ );
59
+
60
+ CREATE INDEX IF NOT EXISTS idx_symbol_index_import_hash_file ON symbol_index_import(content_hash, file_path);
61
+ CREATE INDEX IF NOT EXISTS idx_symbol_index_import_hash_local ON symbol_index_import(content_hash, file_path, local_name);