@velvetmonkey/vault-core 1.27.28 → 1.27.29
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/CLAUDE.md +11 -0
- package/dist/entities.d.ts +0 -0
- package/dist/entities.d.ts.map +0 -0
- package/dist/entities.js +0 -0
- package/dist/entities.js.map +0 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/logging/index.d.ts +0 -0
- package/dist/logging/index.d.ts.map +0 -0
- package/dist/logging/index.js +0 -0
- package/dist/logging/index.js.map +0 -0
- package/dist/logging/operationLogger.d.ts +0 -0
- package/dist/logging/operationLogger.d.ts.map +0 -0
- package/dist/logging/operationLogger.js +0 -0
- package/dist/logging/operationLogger.js.map +0 -0
- package/dist/logging/sessionManager.d.ts +0 -0
- package/dist/logging/sessionManager.d.ts.map +0 -0
- package/dist/logging/sessionManager.js +0 -0
- package/dist/logging/sessionManager.js.map +0 -0
- package/dist/logging/types.d.ts +0 -0
- package/dist/logging/types.d.ts.map +0 -0
- package/dist/logging/types.js +0 -0
- package/dist/logging/types.js.map +0 -0
- package/dist/protectedZones.d.ts +0 -0
- package/dist/protectedZones.d.ts.map +0 -0
- package/dist/protectedZones.js +0 -0
- package/dist/protectedZones.js.map +0 -0
- package/dist/sqlite.d.ts +243 -0
- package/dist/sqlite.d.ts.map +1 -0
- package/dist/sqlite.js +751 -0
- package/dist/sqlite.js.map +1 -0
- package/dist/types.d.ts +0 -0
- package/dist/types.d.ts.map +0 -0
- package/dist/types.js +0 -0
- package/dist/types.js.map +0 -0
- package/dist/wikilinks.d.ts +0 -0
- package/dist/wikilinks.d.ts.map +1 -1
- package/dist/wikilinks.js +30 -3
- package/dist/wikilinks.js.map +1 -1
- package/package.json +5 -1
package/dist/CLAUDE.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<claude-mem-context>
|
|
2
|
+
# Recent Activity
|
|
3
|
+
|
|
4
|
+
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
|
|
5
|
+
|
|
6
|
+
### Feb 2, 2026
|
|
7
|
+
|
|
8
|
+
| ID | Time | T | Title | Read |
|
|
9
|
+
|----|------|---|-------|------|
|
|
10
|
+
| #5984 | 2:30 AM | 🟣 | Vault-Core SQLite StateDb Committed to Version Control | ~518 |
|
|
11
|
+
</claude-mem-context>
|
package/dist/entities.d.ts
CHANGED
|
File without changes
|
package/dist/entities.d.ts.map
CHANGED
|
File without changes
|
package/dist/entities.js
CHANGED
|
File without changes
|
package/dist/entities.js.map
CHANGED
|
File without changes
|
package/dist/index.d.ts
CHANGED
|
@@ -10,4 +10,6 @@ export { getProtectedZones, isInProtectedZone, rangeOverlapsProtectedZone, findF
|
|
|
10
10
|
export { applyWikilinks, suggestWikilinks, detectImplicitEntities, processWikilinks, } from './wikilinks.js';
|
|
11
11
|
export { OperationLogger, createLoggerFromConfig, generateSessionId, getSessionId, setSessionId, clearSession, createChildSession, getParentSession, isChildSession, DEFAULT_LOGGING_CONFIG, } from './logging/index.js';
|
|
12
12
|
export type { OperationLogEntry, SessionMetrics, AggregatedMetrics, LoggingConfig, ProductId, } from './logging/index.js';
|
|
13
|
+
export { openStateDb, deleteStateDb, stateDbExists, getStateDbPath, searchEntities, searchEntitiesPrefix, getEntityByName, getAllEntitiesFromDb, getEntityIndexFromDb, getBacklinks, getOutlinks, replaceLinksFromSource, recordEntityMention, getEntityRecency, getAllRecency, setCrankState, getCrankState, deleteCrankState, getStateDbMetadata, isEntityDataStale, escapeFts5Query, migrateFromJsonToSqlite, getLegacyPaths, backupLegacyFiles, deleteLegacyFiles, SCHEMA_VERSION, STATE_DB_FILENAME, FLYWHEEL_DIR, } from './sqlite.js';
|
|
14
|
+
export type { StateDb, EntitySearchResult, NoteRow, LinkRow, RecencyRow, StateDbMetadata, MigrationResult, LegacyPaths, } from './sqlite.js';
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,SAAS,GACV,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,WAAW,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,OAAO,EACP,kBAAkB,EAClB,OAAO,EACP,OAAO,EACP,UAAU,EACV,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,4 +12,6 @@ export { getProtectedZones, isInProtectedZone, rangeOverlapsProtectedZone, findF
|
|
|
12
12
|
export { applyWikilinks, suggestWikilinks, detectImplicitEntities, processWikilinks, } from './wikilinks.js';
|
|
13
13
|
// Logging (unified cross-product logging)
|
|
14
14
|
export { OperationLogger, createLoggerFromConfig, generateSessionId, getSessionId, setSessionId, clearSession, createChildSession, getParentSession, isChildSession, DEFAULT_LOGGING_CONFIG, } from './logging/index.js';
|
|
15
|
+
// SQLite State Database
|
|
16
|
+
export { openStateDb, deleteStateDb, stateDbExists, getStateDbPath, searchEntities, searchEntitiesPrefix, getEntityByName, getAllEntitiesFromDb, getEntityIndexFromDb, getBacklinks, getOutlinks, replaceLinksFromSource, recordEntityMention, getEntityRecency, getAllRecency, setCrankState, getCrankState, deleteCrankState, getStateDbMetadata, isEntityDataStale, escapeFts5Query, migrateFromJsonToSqlite, getLegacyPaths, backupLegacyFiles, deleteLegacyFiles, SCHEMA_VERSION, STATE_DB_FILENAME, FLYWHEEL_DIR, } from './sqlite.js';
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,kBAAkB;AAClB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,kBAAkB;AAClB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,YAAY;AACZ,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,0CAA0C;AAC1C,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,kBAAkB;AAClB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,kBAAkB;AAClB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,YAAY;AACZ,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,0CAA0C;AAC1C,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAU5B,wBAAwB;AACxB,OAAO,EACL,WAAW,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,YAAY,GACb,MAAM,aAAa,CAAC"}
|
package/dist/logging/index.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/logging/index.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/logging/types.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/logging/types.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/protectedZones.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/protectedZones.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/sqlite.d.ts
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared SQLite State Management
|
|
3
|
+
*
|
|
4
|
+
* Consolidates scattered JSON files and in-memory state into a single
|
|
5
|
+
* SQLite database with FTS5 for entity search.
|
|
6
|
+
*
|
|
7
|
+
* Target performance:
|
|
8
|
+
* - Startup <100ms for 10k note vault
|
|
9
|
+
* - Entity search <10ms
|
|
10
|
+
* - Single .flywheel/state.db for backup
|
|
11
|
+
*/
|
|
12
|
+
import Database from 'better-sqlite3';
|
|
13
|
+
import type { Statement, Transaction } from 'better-sqlite3';
|
|
14
|
+
import type { EntityCategory, EntityWithAliases, EntityIndex } from './types.js';
|
|
15
|
+
/** Search result from FTS5 entity search */
|
|
16
|
+
export interface EntitySearchResult {
|
|
17
|
+
id: number;
|
|
18
|
+
name: string;
|
|
19
|
+
nameLower: string;
|
|
20
|
+
path: string;
|
|
21
|
+
category: EntityCategory;
|
|
22
|
+
aliases: string[];
|
|
23
|
+
hubScore: number;
|
|
24
|
+
rank: number;
|
|
25
|
+
}
|
|
26
|
+
/** Note metadata stored in database */
|
|
27
|
+
export interface NoteRow {
|
|
28
|
+
id: number;
|
|
29
|
+
path: string;
|
|
30
|
+
title: string;
|
|
31
|
+
contentHash: string | null;
|
|
32
|
+
modifiedAt: number;
|
|
33
|
+
aliases: string[];
|
|
34
|
+
tags: string[];
|
|
35
|
+
}
|
|
36
|
+
/** Link between notes */
|
|
37
|
+
export interface LinkRow {
|
|
38
|
+
id: number;
|
|
39
|
+
sourcePath: string;
|
|
40
|
+
target: string;
|
|
41
|
+
targetPath: string | null;
|
|
42
|
+
lineNumber: number | null;
|
|
43
|
+
}
|
|
44
|
+
/** Recency tracking for entities */
|
|
45
|
+
export interface RecencyRow {
|
|
46
|
+
entityNameLower: string;
|
|
47
|
+
lastMentionedAt: number;
|
|
48
|
+
mentionCount: number;
|
|
49
|
+
}
|
|
50
|
+
/** Database state metadata */
|
|
51
|
+
export interface StateDbMetadata {
|
|
52
|
+
schemaVersion: number;
|
|
53
|
+
entitiesBuiltAt: string | null;
|
|
54
|
+
entityCount: number;
|
|
55
|
+
notesBuiltAt: string | null;
|
|
56
|
+
noteCount: number;
|
|
57
|
+
}
|
|
58
|
+
/** State database instance with prepared statements */
|
|
59
|
+
export interface StateDb {
|
|
60
|
+
db: Database.Database;
|
|
61
|
+
vaultPath: string;
|
|
62
|
+
dbPath: string;
|
|
63
|
+
insertEntity: Statement;
|
|
64
|
+
updateEntity: Statement;
|
|
65
|
+
deleteEntity: Statement;
|
|
66
|
+
getEntityByName: Statement;
|
|
67
|
+
getEntityById: Statement;
|
|
68
|
+
getAllEntities: Statement;
|
|
69
|
+
getEntitiesByCategory: Statement;
|
|
70
|
+
searchEntitiesFts: Statement;
|
|
71
|
+
clearEntities: Statement;
|
|
72
|
+
insertLink: Statement;
|
|
73
|
+
deleteLinksFromSource: Statement;
|
|
74
|
+
getBacklinks: Statement;
|
|
75
|
+
getOutlinks: Statement;
|
|
76
|
+
clearLinks: Statement;
|
|
77
|
+
upsertRecency: Statement;
|
|
78
|
+
getRecency: Statement;
|
|
79
|
+
getAllRecency: Statement;
|
|
80
|
+
clearRecency: Statement;
|
|
81
|
+
setCrankState: Statement;
|
|
82
|
+
getCrankState: Statement;
|
|
83
|
+
deleteCrankState: Statement;
|
|
84
|
+
insertNote: Statement;
|
|
85
|
+
updateNote: Statement;
|
|
86
|
+
deleteNote: Statement;
|
|
87
|
+
getNoteByPath: Statement;
|
|
88
|
+
getAllNotes: Statement;
|
|
89
|
+
clearNotes: Statement;
|
|
90
|
+
getMetadataValue: Statement;
|
|
91
|
+
setMetadataValue: Statement;
|
|
92
|
+
bulkInsertEntities: Transaction<(entities: EntityWithAliases[], category: EntityCategory) => number>;
|
|
93
|
+
bulkInsertLinks: Transaction<(links: Omit<LinkRow, 'id'>[]) => number>;
|
|
94
|
+
replaceAllEntities: Transaction<(index: EntityIndex) => number>;
|
|
95
|
+
close: () => void;
|
|
96
|
+
}
|
|
97
|
+
/** Current schema version - bump when schema changes */
|
|
98
|
+
export declare const SCHEMA_VERSION = 1;
|
|
99
|
+
/** State database filename */
|
|
100
|
+
export declare const STATE_DB_FILENAME = "state.db";
|
|
101
|
+
/** Directory for flywheel state */
|
|
102
|
+
export declare const FLYWHEEL_DIR = ".flywheel";
|
|
103
|
+
/**
|
|
104
|
+
* Get the database path for a vault
|
|
105
|
+
*/
|
|
106
|
+
export declare function getStateDbPath(vaultPath: string): string;
|
|
107
|
+
/**
|
|
108
|
+
* Open or create the state database for a vault
|
|
109
|
+
*
|
|
110
|
+
* @param vaultPath - Absolute path to the vault root
|
|
111
|
+
* @returns StateDb instance with prepared statements
|
|
112
|
+
*/
|
|
113
|
+
export declare function openStateDb(vaultPath: string): StateDb;
|
|
114
|
+
/**
|
|
115
|
+
* Search entities using FTS5 with porter stemming
|
|
116
|
+
*
|
|
117
|
+
* @param stateDb - State database instance
|
|
118
|
+
* @param query - Search query (supports FTS5 syntax)
|
|
119
|
+
* @param limit - Maximum results to return
|
|
120
|
+
* @returns Array of matching entities with relevance scores
|
|
121
|
+
*/
|
|
122
|
+
export declare function searchEntities(stateDb: StateDb, query: string, limit?: number): EntitySearchResult[];
|
|
123
|
+
/**
|
|
124
|
+
* Search entities by prefix for autocomplete
|
|
125
|
+
*
|
|
126
|
+
* @param stateDb - State database instance
|
|
127
|
+
* @param prefix - Prefix to search for
|
|
128
|
+
* @param limit - Maximum results to return
|
|
129
|
+
*/
|
|
130
|
+
export declare function searchEntitiesPrefix(stateDb: StateDb, prefix: string, limit?: number): EntitySearchResult[];
|
|
131
|
+
/**
|
|
132
|
+
* Get entity by exact name (case-insensitive)
|
|
133
|
+
*/
|
|
134
|
+
export declare function getEntityByName(stateDb: StateDb, name: string): EntitySearchResult | null;
|
|
135
|
+
/**
|
|
136
|
+
* Get all entities from the database
|
|
137
|
+
*/
|
|
138
|
+
export declare function getAllEntitiesFromDb(stateDb: StateDb): EntitySearchResult[];
|
|
139
|
+
/**
|
|
140
|
+
* Convert database entities back to EntityIndex format
|
|
141
|
+
*/
|
|
142
|
+
export declare function getEntityIndexFromDb(stateDb: StateDb): EntityIndex;
|
|
143
|
+
/**
|
|
144
|
+
* Get all notes that link to a given path (backlinks)
|
|
145
|
+
*/
|
|
146
|
+
export declare function getBacklinks(stateDb: StateDb, targetPath: string): LinkRow[];
|
|
147
|
+
/**
|
|
148
|
+
* Get all links from a given note (outlinks)
|
|
149
|
+
*/
|
|
150
|
+
export declare function getOutlinks(stateDb: StateDb, sourcePath: string): LinkRow[];
|
|
151
|
+
/**
|
|
152
|
+
* Replace all links from a source note
|
|
153
|
+
*/
|
|
154
|
+
export declare function replaceLinksFromSource(stateDb: StateDb, sourcePath: string, links: Omit<LinkRow, 'id' | 'sourcePath'>[]): void;
|
|
155
|
+
/**
|
|
156
|
+
* Record a mention of an entity
|
|
157
|
+
*/
|
|
158
|
+
export declare function recordEntityMention(stateDb: StateDb, entityName: string, mentionedAt?: Date): void;
|
|
159
|
+
/**
|
|
160
|
+
* Get recency info for an entity
|
|
161
|
+
*/
|
|
162
|
+
export declare function getEntityRecency(stateDb: StateDb, entityName: string): RecencyRow | null;
|
|
163
|
+
/**
|
|
164
|
+
* Get all recency data ordered by most recent
|
|
165
|
+
*/
|
|
166
|
+
export declare function getAllRecency(stateDb: StateDb): RecencyRow[];
|
|
167
|
+
/**
|
|
168
|
+
* Set a crank state value
|
|
169
|
+
*/
|
|
170
|
+
export declare function setCrankState(stateDb: StateDb, key: string, value: unknown): void;
|
|
171
|
+
/**
|
|
172
|
+
* Get a crank state value
|
|
173
|
+
*/
|
|
174
|
+
export declare function getCrankState<T>(stateDb: StateDb, key: string): T | null;
|
|
175
|
+
/**
|
|
176
|
+
* Delete a crank state key
|
|
177
|
+
*/
|
|
178
|
+
export declare function deleteCrankState(stateDb: StateDb, key: string): void;
|
|
179
|
+
/**
|
|
180
|
+
* Get database metadata
|
|
181
|
+
*/
|
|
182
|
+
export declare function getStateDbMetadata(stateDb: StateDb): StateDbMetadata;
|
|
183
|
+
/**
|
|
184
|
+
* Check if entity data is stale (older than threshold)
|
|
185
|
+
*/
|
|
186
|
+
export declare function isEntityDataStale(stateDb: StateDb, thresholdMs?: number): boolean;
|
|
187
|
+
/**
|
|
188
|
+
* Escape special FTS5 characters in a query
|
|
189
|
+
*/
|
|
190
|
+
export declare function escapeFts5Query(query: string): string;
|
|
191
|
+
/**
|
|
192
|
+
* Check if the state database exists for a vault
|
|
193
|
+
*/
|
|
194
|
+
export declare function stateDbExists(vaultPath: string): boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Delete the state database (for testing or reset)
|
|
197
|
+
*/
|
|
198
|
+
export declare function deleteStateDb(vaultPath: string): void;
|
|
199
|
+
/** Result of a migration operation */
|
|
200
|
+
export interface MigrationResult {
|
|
201
|
+
success: boolean;
|
|
202
|
+
entitiesMigrated: number;
|
|
203
|
+
recencyMigrated: number;
|
|
204
|
+
crankStateMigrated: number;
|
|
205
|
+
errors: string[];
|
|
206
|
+
}
|
|
207
|
+
/** Paths to legacy JSON files */
|
|
208
|
+
export interface LegacyPaths {
|
|
209
|
+
entities?: string;
|
|
210
|
+
recency?: string;
|
|
211
|
+
lastCommit?: string;
|
|
212
|
+
hints?: string;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Get default legacy file paths for a vault
|
|
216
|
+
*/
|
|
217
|
+
export declare function getLegacyPaths(vaultPath: string): LegacyPaths;
|
|
218
|
+
/**
|
|
219
|
+
* Migrate legacy JSON files to SQLite state database
|
|
220
|
+
*
|
|
221
|
+
* This function reads existing JSON state files and imports them
|
|
222
|
+
* into the consolidated SQLite database. It does NOT delete the
|
|
223
|
+
* original JSON files - that should be done manually after verifying
|
|
224
|
+
* the migration was successful.
|
|
225
|
+
*
|
|
226
|
+
* @param stateDb - Open state database
|
|
227
|
+
* @param legacyPaths - Paths to legacy JSON files
|
|
228
|
+
* @returns Migration result with counts and any errors
|
|
229
|
+
*/
|
|
230
|
+
export declare function migrateFromJsonToSqlite(stateDb: StateDb, legacyPaths: LegacyPaths): Promise<MigrationResult>;
|
|
231
|
+
/**
|
|
232
|
+
* Backup legacy JSON files before migration
|
|
233
|
+
*
|
|
234
|
+
* Creates .bak files alongside the originals
|
|
235
|
+
*/
|
|
236
|
+
export declare function backupLegacyFiles(legacyPaths: LegacyPaths): string[];
|
|
237
|
+
/**
|
|
238
|
+
* Delete legacy JSON files after successful migration
|
|
239
|
+
*
|
|
240
|
+
* Only deletes files that have corresponding .bak backups
|
|
241
|
+
*/
|
|
242
|
+
export declare function deleteLegacyFiles(legacyPaths: LegacyPaths): string[];
|
|
243
|
+
//# sourceMappingURL=sqlite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../src/sqlite.ts"],"names":[],"mappings":"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"}
|