@reqlan/analytical 0.9.1 → 0.10.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.
- package/README.md +13 -2
- package/README.template.md +1 -1
- package/out/core/barrel-page.d.ts +2 -1
- package/out/core/barrel-page.js +18 -83
- package/out/core/barrel-page.js.map +1 -1
- package/out/core/base-discovery.d.ts +6 -0
- package/out/core/base-discovery.js +47 -2
- package/out/core/base-discovery.js.map +1 -1
- package/out/core/create-base.js +10 -14
- package/out/core/create-base.js.map +1 -1
- package/out/core/file-reference-resolve.js +3 -1
- package/out/core/file-reference-resolve.js.map +1 -1
- package/out/core/index-error.d.ts +3 -3
- package/out/core/index-error.js.map +1 -1
- package/out/core/index-state-types.d.ts +47 -0
- package/out/core/index-state-types.js +11 -0
- package/out/core/index-state-types.js.map +1 -0
- package/out/core/path-relative.d.ts +15 -0
- package/out/core/path-relative.js +84 -0
- package/out/core/path-relative.js.map +1 -0
- package/out/core/rqignore.js +62 -62
- package/out/core/rqignore.js.map +1 -1
- package/out/core/types.d.ts +4 -3
- package/out/core/types.js +4 -1
- package/out/core/types.js.map +1 -1
- package/out/core/workspace-paths.d.ts +1 -2
- package/out/core/workspace-paths.js +6 -46
- package/out/core/workspace-paths.js.map +1 -1
- package/out/export/build-export-snapshot.js +1 -1
- package/out/export/build-export-snapshot.js.map +1 -1
- package/out/export/export-utils.d.ts +5 -0
- package/out/export/export-utils.js +38 -0
- package/out/export/export-utils.js.map +1 -0
- package/out/export/write-csv-export.js +1 -1
- package/out/export/write-csv-export.js.map +1 -1
- package/out/export/write-markdown-export.js +1 -1
- package/out/export/write-markdown-export.js.map +1 -1
- package/out/index-store/base-registry.d.ts +2 -3
- package/out/index-store/base-registry.js +8 -4
- package/out/index-store/base-registry.js.map +1 -1
- package/out/index-store/fuzzy-search-hit.d.ts +10 -0
- package/out/index-store/fuzzy-search-hit.js +2 -0
- package/out/index-store/fuzzy-search-hit.js.map +1 -0
- package/out/index-store/index-diagnostics-store.d.ts +4 -0
- package/out/index-store/index-diagnostics-store.js +44 -88
- package/out/index-store/index-diagnostics-store.js.map +1 -1
- package/out/index-store/index-file-error.d.ts +1 -1
- package/out/index-store/index-parse-issues.d.ts +4 -3
- package/out/index-store/index-parse-issues.js +0 -38
- package/out/index-store/index-parse-issues.js.map +1 -1
- package/out/index-store/index-status.d.ts +1 -1
- package/out/index-store/sqlite-store.d.ts +6 -2
- package/out/index-store/sqlite-store.js +70 -613
- package/out/index-store/sqlite-store.js.map +1 -1
- package/out/index-store/webview-graph-queries.d.ts +5 -0
- package/out/index-store/webview-graph-queries.js.map +1 -1
- package/out/index-store/workspace-index-file.d.ts +3 -14
- package/out/index-store/workspace-index-file.js +1 -114
- package/out/index-store/workspace-index-file.js.map +1 -1
- package/out/index-store/workspace-index-sync.d.ts +4 -17
- package/out/index-store/workspace-index-sync.js +29 -11
- package/out/index-store/workspace-index-sync.js.map +1 -1
- package/out/index-store/workspace-index.d.ts +36 -9
- package/out/index-store/workspace-index.js +223 -120
- package/out/index-store/workspace-index.js.map +1 -1
- package/out/index.d.ts +16 -43
- package/out/index.js +9 -25
- package/out/index.js.map +1 -1
- package/out/native/generated.d.ts +102 -0
- package/out/native/generated.js +4 -0
- package/out/native/generated.js.map +1 -0
- package/out/native/index.d.ts +17 -0
- package/out/native/index.js +12 -0
- package/out/native/index.js.map +1 -0
- package/out/native/load-native.d.ts +50 -0
- package/out/native/load-native.js +152 -0
- package/out/native/load-native.js.map +1 -0
- package/out/{analysis-api.d.ts → native/native-analysis-api.d.ts} +19 -19
- package/out/native/native-analysis-api.js +212 -0
- package/out/native/native-analysis-api.js.map +1 -0
- package/out/native/native-index-store.d.ts +5 -0
- package/out/native/native-index-store.js +6 -0
- package/out/native/native-index-store.js.map +1 -0
- package/out/native/native-sql-db.d.ts +135 -0
- package/out/native/native-sql-db.js +217 -0
- package/out/native/native-sql-db.js.map +1 -0
- package/out/native/native-workspace-index.d.ts +164 -0
- package/out/native/native-workspace-index.js +283 -0
- package/out/native/native-workspace-index.js.map +1 -0
- package/out/native/open-analysis-api.d.ts +16 -0
- package/out/native/open-analysis-api.js +21 -0
- package/out/native/open-analysis-api.js.map +1 -0
- package/out/native/parse-source.d.ts +24 -0
- package/out/native/parse-source.js +26 -0
- package/out/native/parse-source.js.map +1 -0
- package/package.json +18 -30
- package/out/analysis/analyser-registry.d.ts +0 -21
- package/out/analysis/analyser-registry.js +0 -33
- package/out/analysis/analyser-registry.js.map +0 -1
- package/out/analysis/completion-tracking-analyser.d.ts +0 -3
- package/out/analysis/completion-tracking-analyser.js +0 -37
- package/out/analysis/completion-tracking-analyser.js.map +0 -1
- package/out/analysis/contextual-search.d.ts +0 -26
- package/out/analysis/contextual-search.js +0 -94
- package/out/analysis/contextual-search.js.map +0 -1
- package/out/analysis/deprecation-impact-analyser.d.ts +0 -3
- package/out/analysis/deprecation-impact-analyser.js +0 -21
- package/out/analysis/deprecation-impact-analyser.js.map +0 -1
- package/out/analysis/file-related-analyser.d.ts +0 -5
- package/out/analysis/file-related-analyser.js +0 -41
- package/out/analysis/file-related-analyser.js.map +0 -1
- package/out/analysis/fuzzy-search-analyser.d.ts +0 -17
- package/out/analysis/fuzzy-search-analyser.js +0 -25
- package/out/analysis/fuzzy-search-analyser.js.map +0 -1
- package/out/analysis/fuzzy-search-worker-client.d.ts +0 -39
- package/out/analysis/fuzzy-search-worker-client.js +0 -178
- package/out/analysis/fuzzy-search-worker-client.js.map +0 -1
- package/out/analysis/fuzzy-search-worker.d.ts +0 -32
- package/out/analysis/fuzzy-search-worker.js +0 -81
- package/out/analysis/fuzzy-search-worker.js.map +0 -1
- package/out/analysis/fuzzy-search.d.ts +0 -62
- package/out/analysis/fuzzy-search.js +0 -471
- package/out/analysis/fuzzy-search.js.map +0 -1
- package/out/analysis/git-dates-analyser.d.ts +0 -12
- package/out/analysis/git-dates-analyser.js +0 -96
- package/out/analysis/git-dates-analyser.js.map +0 -1
- package/out/analysis/list-ideas-analyser.d.ts +0 -3
- package/out/analysis/list-ideas-analyser.js +0 -7
- package/out/analysis/list-ideas-analyser.js.map +0 -1
- package/out/analysis/local-graph-analyser.d.ts +0 -6
- package/out/analysis/local-graph-analyser.js +0 -42
- package/out/analysis/local-graph-analyser.js.map +0 -1
- package/out/analysis/semantic-search-analyser.d.ts +0 -8
- package/out/analysis/semantic-search-analyser.js +0 -51
- package/out/analysis/semantic-search-analyser.js.map +0 -1
- package/out/analysis-api.js +0 -199
- package/out/analysis-api.js.map +0 -1
- package/out/core/analytical-store.d.ts +0 -85
- package/out/core/analytical-store.js +0 -143
- package/out/core/analytical-store.js.map +0 -1
- package/out/core/context-model.d.ts +0 -204
- package/out/core/context-model.js +0 -36
- package/out/core/context-model.js.map +0 -1
- package/out/core/context-signals.d.ts +0 -154
- package/out/core/context-signals.js +0 -406
- package/out/core/context-signals.js.map +0 -1
- package/out/create-runtime.d.ts +0 -47
- package/out/create-runtime.js +0 -79
- package/out/create-runtime.js.map +0 -1
- package/out/export/export-html.d.ts +0 -4
- package/out/export/export-html.js +0 -12
- package/out/export/export-html.js.map +0 -1
- package/out/export/html-export-assets.d.ts +0 -3
- package/out/export/html-export-assets.js +0 -2294
- package/out/export/html-export-assets.js.map +0 -1
- package/out/export/html-export-template.d.ts +0 -18
- package/out/export/html-export-template.js +0 -1154
- package/out/export/html-export-template.js.map +0 -1
- package/out/export/html-export-utils.d.ts +0 -86
- package/out/export/html-export-utils.js +0 -485
- package/out/export/html-export-utils.js.map +0 -1
- package/out/export/write-html-export.d.ts +0 -2
- package/out/export/write-html-export.js +0 -181
- package/out/export/write-html-export.js.map +0 -1
- package/out/graph/physics-core-source.d.ts +0 -5
- package/out/graph/physics-core-source.js +0 -8
- package/out/graph/physics-core-source.js.map +0 -1
- package/out/graph/physics-core.d.ts +0 -141
- package/out/graph/physics-core.js +0 -237
- package/out/graph/physics-core.js.map +0 -1
- package/out/index-store/file-treatment.d.ts +0 -40
- package/out/index-store/file-treatment.js +0 -144
- package/out/index-store/file-treatment.js.map +0 -1
- package/out/index-store/idea-extractor.d.ts +0 -11
- package/out/index-store/idea-extractor.js +0 -351
- package/out/index-store/idea-extractor.js.map +0 -1
- package/out/index-store/overview-coverage.d.ts +0 -23
- package/out/index-store/overview-coverage.js +0 -254
- package/out/index-store/overview-coverage.js.map +0 -1
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Multi-base index registry: one WorkspaceIndex
|
|
2
|
+
* Multi-base index registry: one WorkspaceIndex per base. The index lifecycle
|
|
3
|
+
* state now lives in the native runtime, not a per-base Zustand store.
|
|
3
4
|
*/
|
|
4
|
-
import type { AnalyticalStore } from '../core/analytical-store.js';
|
|
5
5
|
import { type BaseDescriptor } from '../core/base-discovery.js';
|
|
6
6
|
import type { IndexStatusSnapshot } from './index-status.js';
|
|
7
7
|
import { WorkspaceIndex } from './workspace-index.js';
|
|
8
8
|
export interface RegisteredBase {
|
|
9
9
|
descriptor: BaseDescriptor;
|
|
10
|
-
store: AnalyticalStore;
|
|
11
10
|
index: WorkspaceIndex;
|
|
12
11
|
}
|
|
13
12
|
export interface BaseStatusEntry {
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Multi-base index registry: one WorkspaceIndex per base. The index lifecycle
|
|
3
|
+
* state now lives in the native runtime, not a per-base Zustand store.
|
|
4
|
+
*/
|
|
2
5
|
import { baseForPath, discoverBases, filesOwnedByBase, selectDefaultBase } from '../core/base-discovery.js';
|
|
3
6
|
import { resolveApplicationMemoryPath } from '../core/application-memory.js';
|
|
7
|
+
import { loadNativeEngine } from '../native/load-native.js';
|
|
4
8
|
import { WorkspaceIndex } from './workspace-index.js';
|
|
5
9
|
export class BaseRegistry {
|
|
6
10
|
constructor() {
|
|
@@ -31,6 +35,7 @@ export class BaseRegistry {
|
|
|
31
35
|
}
|
|
32
36
|
/** Replace registry contents from discovered descriptors (does not open indexes). */
|
|
33
37
|
replaceDescriptors(bases) {
|
|
38
|
+
loadNativeEngine();
|
|
34
39
|
const keep = new Set(bases.map(b => b.id));
|
|
35
40
|
for (const id of [...this.entries.keys()]) {
|
|
36
41
|
if (!keep.has(id)) {
|
|
@@ -43,10 +48,9 @@ export class BaseRegistry {
|
|
|
43
48
|
if (this.entries.has(descriptor.id)) {
|
|
44
49
|
continue;
|
|
45
50
|
}
|
|
46
|
-
const store = createAnalyticalStore();
|
|
47
51
|
const storagePath = resolveApplicationMemoryPath(descriptor.root);
|
|
48
|
-
const index = new WorkspaceIndex(
|
|
49
|
-
this.entries.set(descriptor.id, { descriptor,
|
|
52
|
+
const index = new WorkspaceIndex(storagePath, descriptor.root);
|
|
53
|
+
this.entries.set(descriptor.id, { descriptor, index });
|
|
50
54
|
}
|
|
51
55
|
}
|
|
52
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-registry.js","sourceRoot":"","sources":["../../src/index-store/base-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-registry.js","sourceRoot":"","sources":["../../src/index-store/base-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzzy-search-hit.js","sourceRoot":"","sources":["../../src/index-store/fuzzy-search-hit.ts"],"names":[],"mappings":""}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NativeSqlConnection } from '../native/native-sql-db.js';
|
|
1
2
|
export type IndexTimingTrigger = 'soft_sync' | 'rebuild' | 'enqueue' | 'stale';
|
|
2
3
|
export type IndexFileOutcome = 'mtime_skip' | 'mtime_refresh' | 'hash_skip' | 'persisted' | 'error';
|
|
3
4
|
export interface IndexFileTimingRecord {
|
|
@@ -58,7 +59,10 @@ export declare class IndexDiagnosticsStore {
|
|
|
58
59
|
private readonly db;
|
|
59
60
|
private constructor();
|
|
60
61
|
static open(dbPath: string): Promise<IndexDiagnosticsStore>;
|
|
62
|
+
/** Wrap an already-open native connection (e.g. NativeWorkspaceIndex diagnostics DB). */
|
|
63
|
+
static fromConnection(conn: NativeSqlConnection): Promise<IndexDiagnosticsStore>;
|
|
61
64
|
close(): Promise<void>;
|
|
65
|
+
static deleteDatabaseFile(dbPath: string): Promise<void>;
|
|
62
66
|
recordSyncRun(run: IndexSyncRunRecord): Promise<number>;
|
|
63
67
|
listRecentRuns(limit?: number): Promise<IndexSyncRunSummary[]>;
|
|
64
68
|
getRun(runId: number): Promise<IndexSyncRunSummary | undefined>;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-base indexing timing diagnostic store (`index-diagnostics.sqlite`).
|
|
3
3
|
* Sibling of ideas-index; survives Clear & rebuild.
|
|
4
|
+
* Backed by rusqlite via the core native engine (NativeSqlDb).
|
|
4
5
|
*
|
|
5
6
|
* rq:["../../../reqlan rq/extension/module/index.rq".index_diagnostics_store]
|
|
6
7
|
* rq:["../../../reqlan rq/extension/features-index-diagnostics.rq".index_diagnostics_metrics]
|
|
7
8
|
* rq:["../../../reqlan rq/indexer/indexer.rq".index_diagnostics_timing]
|
|
8
9
|
*/
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
10
|
+
import { unlink } from 'node:fs/promises';
|
|
11
|
+
import { NativeSqlConnection } from '../native/native-sql-db.js';
|
|
11
12
|
const SCHEMA_VERSION = 1;
|
|
12
13
|
const MAX_RETAINED_RUNS = 50;
|
|
13
14
|
const BASE_SQL = [
|
|
@@ -54,50 +55,54 @@ export class IndexDiagnosticsStore {
|
|
|
54
55
|
this.db = db;
|
|
55
56
|
}
|
|
56
57
|
static async open(dbPath) {
|
|
57
|
-
const
|
|
58
|
-
|
|
58
|
+
const conn = await NativeSqlConnection.open(dbPath);
|
|
59
|
+
return IndexDiagnosticsStore.fromConnection(conn);
|
|
60
|
+
}
|
|
61
|
+
/** Wrap an already-open native connection (e.g. NativeWorkspaceIndex diagnostics DB). */
|
|
62
|
+
static async fromConnection(conn) {
|
|
63
|
+
const store = new IndexDiagnosticsStore({ conn });
|
|
59
64
|
await store.migrate();
|
|
60
65
|
return store;
|
|
61
66
|
}
|
|
62
67
|
async close() {
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
this.db.conn.close();
|
|
69
|
+
}
|
|
70
|
+
static async deleteDatabaseFile(dbPath) {
|
|
71
|
+
for (const suffix of ['', '-wal', '-shm']) {
|
|
72
|
+
try {
|
|
73
|
+
await unlink(`${dbPath}${suffix}`);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
if (typeof error === 'object' &&
|
|
77
|
+
error !== null &&
|
|
78
|
+
'code' in error &&
|
|
79
|
+
error.code === 'ENOENT') {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
65
85
|
}
|
|
66
86
|
async recordSyncRun(run) {
|
|
67
87
|
try {
|
|
68
|
-
this.db.
|
|
69
|
-
this.db.
|
|
88
|
+
this.db.conn.run('BEGIN');
|
|
89
|
+
this.db.conn.run(`INSERT INTO sync_runs (
|
|
70
90
|
started_at, finished_at, duration_ms, trigger,
|
|
71
91
|
total_files, skipped_mtime, indexed_files, error_files,
|
|
72
92
|
cancelled, sum_file_duration_ms, avg_path_depth
|
|
73
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
74
|
-
|
|
75
|
-
run.finishedAt,
|
|
76
|
-
run.durationMs,
|
|
77
|
-
run.trigger,
|
|
78
|
-
run.totalFiles,
|
|
79
|
-
run.skippedMtime,
|
|
80
|
-
run.indexedFiles,
|
|
81
|
-
run.errorFiles,
|
|
82
|
-
run.cancelled ? 1 : 0,
|
|
83
|
-
run.sumFileDurationMs,
|
|
84
|
-
run.avgPathDepth ?? null
|
|
85
|
-
]);
|
|
86
|
-
const idRow = await get(this.db, 'SELECT last_insert_rowid() AS id');
|
|
87
|
-
const runId = idRow?.id ?? 0;
|
|
93
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, run.startedAt, run.finishedAt, run.durationMs, run.trigger, run.totalFiles, run.skippedMtime, run.indexedFiles, run.errorFiles, run.cancelled ? 1 : 0, run.sumFileDurationMs, run.avgPathDepth ?? null);
|
|
94
|
+
const runId = this.db.conn.lastInsertRowid();
|
|
88
95
|
for (const file of run.files) {
|
|
89
|
-
this.db.
|
|
90
|
-
VALUES (?, ?, ?, ?, ?)`,
|
|
96
|
+
this.db.conn.run(`INSERT INTO file_timings (run_id, file_uri, duration_ms, outcome, path_depth)
|
|
97
|
+
VALUES (?, ?, ?, ?, ?)`, runId, file.fileUri, file.durationMs, file.outcome, file.pathDepth);
|
|
91
98
|
}
|
|
92
|
-
this.db.
|
|
93
|
-
this.db.dirty = true;
|
|
99
|
+
this.db.conn.run('COMMIT');
|
|
94
100
|
await this.trimOldRuns();
|
|
95
|
-
await persistDatabase(this.db);
|
|
96
101
|
return runId;
|
|
97
102
|
}
|
|
98
103
|
catch (error) {
|
|
99
104
|
try {
|
|
100
|
-
this.db.
|
|
105
|
+
this.db.conn.run('ROLLBACK');
|
|
101
106
|
}
|
|
102
107
|
catch {
|
|
103
108
|
// ignore
|
|
@@ -106,11 +111,11 @@ export class IndexDiagnosticsStore {
|
|
|
106
111
|
}
|
|
107
112
|
}
|
|
108
113
|
async listRecentRuns(limit = 20) {
|
|
109
|
-
const rows =
|
|
114
|
+
const rows = this.db.conn.all(`SELECT * FROM sync_runs ORDER BY id DESC LIMIT ?`, Math.max(1, Math.min(limit, MAX_RETAINED_RUNS)));
|
|
110
115
|
return rows.map(mapRunSummary);
|
|
111
116
|
}
|
|
112
117
|
async getRun(runId) {
|
|
113
|
-
const row =
|
|
118
|
+
const row = this.db.conn.get(`SELECT * FROM sync_runs WHERE id = ?`, runId);
|
|
114
119
|
return row ? mapRunSummary(row) : undefined;
|
|
115
120
|
}
|
|
116
121
|
async listFileTimings(runId, options) {
|
|
@@ -121,11 +126,11 @@ export class IndexDiagnosticsStore {
|
|
|
121
126
|
? 'file_uri ASC'
|
|
122
127
|
: 'duration_ms DESC, file_uri ASC';
|
|
123
128
|
const limit = Math.max(1, Math.min(options?.limit ?? 500, 2000));
|
|
124
|
-
const rows =
|
|
129
|
+
const rows = this.db.conn.all(`SELECT * FROM file_timings WHERE run_id = ? ORDER BY ${orderSql} LIMIT ?`, runId, limit);
|
|
125
130
|
return rows.map(mapFileTiming);
|
|
126
131
|
}
|
|
127
132
|
async getOverview() {
|
|
128
|
-
const agg =
|
|
133
|
+
const agg = this.db.conn.get(`SELECT
|
|
129
134
|
COUNT(*) AS run_count,
|
|
130
135
|
COALESCE(SUM(duration_ms), 0) AS total_duration,
|
|
131
136
|
COALESCE(SUM(sum_file_duration_ms), 0) AS total_file_duration,
|
|
@@ -145,21 +150,18 @@ export class IndexDiagnosticsStore {
|
|
|
145
150
|
}
|
|
146
151
|
async migrate() {
|
|
147
152
|
for (const sql of BASE_SQL) {
|
|
148
|
-
this.db.
|
|
153
|
+
this.db.conn.exec(sql);
|
|
149
154
|
}
|
|
150
|
-
this.db.
|
|
151
|
-
ON CONFLICT(key) DO UPDATE SET value = excluded.value`,
|
|
152
|
-
this.db.dirty = true;
|
|
153
|
-
await persistDatabase(this.db);
|
|
155
|
+
this.db.conn.run(`INSERT INTO meta (key, value) VALUES (?, ?)
|
|
156
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`, 'schema_version', String(SCHEMA_VERSION));
|
|
154
157
|
}
|
|
155
158
|
async trimOldRuns() {
|
|
156
|
-
const cutoff =
|
|
159
|
+
const cutoff = this.db.conn.get(`SELECT id FROM sync_runs ORDER BY id DESC LIMIT 1 OFFSET ?`, MAX_RETAINED_RUNS - 1);
|
|
157
160
|
if (!cutoff) {
|
|
158
161
|
return;
|
|
159
162
|
}
|
|
160
|
-
this.db.
|
|
161
|
-
this.db.
|
|
162
|
-
this.db.dirty = true;
|
|
163
|
+
this.db.conn.run(`DELETE FROM file_timings WHERE run_id < ?`, cutoff.id);
|
|
164
|
+
this.db.conn.run(`DELETE FROM sync_runs WHERE id < ?`, cutoff.id);
|
|
163
165
|
}
|
|
164
166
|
}
|
|
165
167
|
function mapRunSummary(row) {
|
|
@@ -188,50 +190,4 @@ function mapFileTiming(row) {
|
|
|
188
190
|
pathDepth: row.path_depth
|
|
189
191
|
};
|
|
190
192
|
}
|
|
191
|
-
let sqlJsModulePromise;
|
|
192
|
-
async function getSqlJsModule() {
|
|
193
|
-
sqlJsModulePromise ?? (sqlJsModulePromise = import('sql.js/dist/sql-asm.js').then(({ default: initSqlJs }) => initSqlJs({})));
|
|
194
|
-
return sqlJsModulePromise;
|
|
195
|
-
}
|
|
196
|
-
async function openDatabase(path) {
|
|
197
|
-
await mkdir(dirname(path), { recursive: true });
|
|
198
|
-
const SQL = await getSqlJsModule();
|
|
199
|
-
let bytes;
|
|
200
|
-
try {
|
|
201
|
-
bytes = new Uint8Array(await readFile(path));
|
|
202
|
-
}
|
|
203
|
-
catch {
|
|
204
|
-
bytes = undefined;
|
|
205
|
-
}
|
|
206
|
-
return {
|
|
207
|
-
db: bytes ? new SQL.Database(bytes) : new SQL.Database(),
|
|
208
|
-
dbPath: path,
|
|
209
|
-
dirty: false
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
async function persistDatabase(db) {
|
|
213
|
-
if (!db.dirty) {
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
await mkdir(dirname(db.dbPath), { recursive: true });
|
|
217
|
-
await writeFile(db.dbPath, Buffer.from(db.db.export()));
|
|
218
|
-
db.dirty = false;
|
|
219
|
-
}
|
|
220
|
-
async function get(db, sql, ...params) {
|
|
221
|
-
const rows = await all(db, sql, ...params);
|
|
222
|
-
return rows[0];
|
|
223
|
-
}
|
|
224
|
-
async function all(db, sql, ...params) {
|
|
225
|
-
const statement = db.db.prepare(sql, params);
|
|
226
|
-
const rows = [];
|
|
227
|
-
try {
|
|
228
|
-
while (statement.step()) {
|
|
229
|
-
rows.push(statement.getAsObject());
|
|
230
|
-
}
|
|
231
|
-
return rows;
|
|
232
|
-
}
|
|
233
|
-
finally {
|
|
234
|
-
statement.free();
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
193
|
//# sourceMappingURL=index-diagnostics-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-diagnostics-store.js","sourceRoot":"","sources":["../../src/index-store/index-diagnostics-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index-diagnostics-store.js","sourceRoot":"","sources":["../../src/index-store/index-diagnostics-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IndexErrorPhase } from '../core/
|
|
1
|
+
import type { IndexErrorPhase } from '../core/index-state-types.js';
|
|
2
2
|
import type { FileIndexIssueDraft } from './index-parse-issues.js';
|
|
3
3
|
export declare class IndexFileError extends Error {
|
|
4
4
|
readonly fileUri: string;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* File-index issue helpers (Langium document parse helpers removed after native cutover).
|
|
3
|
+
*/
|
|
4
|
+
import type { FileIndexIssue, IndexErrorPhase } from '../core/index-state-types.js';
|
|
3
5
|
import type { IdeaRecord } from '../core/types.js';
|
|
4
6
|
export type FileIndexIssueDraft = Omit<FileIndexIssue, 'fileUri' | 'at'>;
|
|
5
|
-
export declare function collectParseIssues(document: LangiumDocument): FileIndexIssueDraft[];
|
|
6
7
|
export declare function fileIssue(message: string, phase: IndexErrorPhase, line?: number, column?: number, ideaNames?: string[]): FileIndexIssueDraft;
|
|
7
8
|
export declare function fileIssueFromError(phase: IndexErrorPhase, error: unknown, fallbackMessage: string, line?: number, column?: number, ideaNames?: string[]): FileIndexIssueDraft;
|
|
8
9
|
export declare function unnamedIdeaIssues(ideas: IdeaRecord[]): FileIndexIssueDraft[];
|
|
@@ -1,25 +1,4 @@
|
|
|
1
1
|
import { errorCauseMessage } from '../core/index-error.js';
|
|
2
|
-
export function collectParseIssues(document) {
|
|
3
|
-
const issues = [];
|
|
4
|
-
for (const error of document.parseResult.parserErrors) {
|
|
5
|
-
const position = parserErrorPosition(error);
|
|
6
|
-
issues.push({
|
|
7
|
-
line: position.line,
|
|
8
|
-
column: position.column,
|
|
9
|
-
message: error.message,
|
|
10
|
-
phase: 'parse'
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
for (const error of document.parseResult.lexerErrors) {
|
|
14
|
-
issues.push({
|
|
15
|
-
line: Math.max(0, (error.line ?? 1) - 1),
|
|
16
|
-
column: Math.max(0, (error.column ?? 1) - 1),
|
|
17
|
-
message: error.message,
|
|
18
|
-
phase: 'parse'
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
return issues;
|
|
22
|
-
}
|
|
23
2
|
export function fileIssue(message, phase, line = 0, column = 0, ideaNames) {
|
|
24
3
|
return { line, column, message, phase, ideaNames };
|
|
25
4
|
}
|
|
@@ -42,21 +21,4 @@ export function unnamedIdeaIssues(ideas) {
|
|
|
42
21
|
export function validIdeas(ideas) {
|
|
43
22
|
return ideas.filter(idea => idea.name?.trim());
|
|
44
23
|
}
|
|
45
|
-
function parserErrorPosition(error) {
|
|
46
|
-
const token = error.token;
|
|
47
|
-
if (token && !Number.isNaN(token.startOffset) && token.startLine !== undefined) {
|
|
48
|
-
return {
|
|
49
|
-
line: Math.max(0, token.startLine - 1),
|
|
50
|
-
column: Math.max(0, (token.startColumn ?? 1) - 1)
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
const previousToken = error.previousToken;
|
|
54
|
-
if (previousToken && !Number.isNaN(previousToken.startOffset) && previousToken.endLine !== undefined) {
|
|
55
|
-
return {
|
|
56
|
-
line: Math.max(0, previousToken.endLine - 1),
|
|
57
|
-
column: Math.max(0, (previousToken.endColumn ?? 1) - 1)
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
return { line: 0, column: 0 };
|
|
61
|
-
}
|
|
62
24
|
//# sourceMappingURL=index-parse-issues.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-parse-issues.js","sourceRoot":"","sources":["../../src/index-store/index-parse-issues.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index-parse-issues.js","sourceRoot":"","sources":["../../src/index-store/index-parse-issues.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,MAAM,UAAU,SAAS,CACrB,OAAe,EACf,KAAsB,EACtB,IAAI,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,EACV,SAAoB;IAEpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAC9B,KAAsB,EACtB,KAAc,EACd,eAAuB,EACvB,IAAI,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,EACV,SAAoB;IAEpB,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO;QACH,IAAI;QACJ,MAAM;QACN,OAAO,EAAE,eAAe;QACxB,KAAK;QACL,SAAS;QACT,KAAK;KACR,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAmB;IACjD,OAAO,KAAK;SACP,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;SAClC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,uCAAuC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAmB;IAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DocumentUpdate, IndexState, WorkspaceFileChange } from '../core/
|
|
1
|
+
import type { DocumentUpdate, IndexState, WorkspaceFileChange } from '../core/index-state-types.js';
|
|
2
2
|
import type { FileIndexIssueView, IndexErrorDetail } from '../core/index-error.js';
|
|
3
3
|
export interface IndexSyncProgress {
|
|
4
4
|
processed: number;
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
+
import { NativeSqlConnection } from '../native/native-sql-db.js';
|
|
1
2
|
import type { EdgeRecord, IdeaRecord, IdeaReferenceChip, IdeaSummary, IdeaWithRange, IdeasetKind, IdeasetMemberRow, IdeasetTableRow, IdeaTableRow, ReferenceListRow, ReferenceTableRow, AncestorChainResult, TodoIdeaListResult } from '../core/types.js';
|
|
2
3
|
import type { AttributesTableQuery, AttributeTableRow, IdeasTableQuery, IdeasetsTableQuery, ReferencesTableQuery } from './webview-table-queries.js';
|
|
3
4
|
import type { GitIdeaTimelineEvent } from './webview-table-queries.js';
|
|
4
|
-
import {
|
|
5
|
+
import type { GraphViewQuery } from './webview-graph-queries.js';
|
|
5
6
|
export declare class SqliteIndexStore {
|
|
6
7
|
private readonly db;
|
|
7
8
|
private constructor();
|
|
8
9
|
static open(dbPath: string): Promise<SqliteIndexStore>;
|
|
10
|
+
/** Wrap an already-open native connection (e.g. NativeWorkspaceIndex ideas DB). */
|
|
11
|
+
static fromConnection(conn: NativeSqlConnection): Promise<SqliteIndexStore>;
|
|
9
12
|
close(): Promise<void>;
|
|
10
|
-
/** Close
|
|
13
|
+
/** Close without extra flush work (file-backed rusqlite already durable). */
|
|
11
14
|
closeWithoutPersist(): void;
|
|
12
15
|
static deleteDatabaseFile(dbPath: string): Promise<void>;
|
|
13
16
|
getDocumentHash(fileUri: string): Promise<string | undefined>;
|
|
14
17
|
getDocumentMtimeMs(fileUri: string): Promise<number | undefined>;
|
|
15
18
|
updateDocumentMtime(fileUri: string, mtimeMs: number): Promise<void>;
|
|
16
19
|
listDocumentMtimes(): Promise<Map<string, number | undefined>>;
|
|
20
|
+
listDocumentUris(): Promise<string[]>;
|
|
17
21
|
upsertDocument(fileUri: string, contentHash: string, ideas: IdeaRecord[], edges: EdgeRecord[], mtimeMs?: number): Promise<void>;
|
|
18
22
|
removeDocument(fileUri: string): Promise<void>;
|
|
19
23
|
/** Delete many document rows (and their ideas/edges) in one transaction. */
|