@alextis59/athena 1.0.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/LICENSE +15 -0
- package/README.md +147 -0
- package/dist/agent/ask.d.ts +7 -0
- package/dist/agent/ask.d.ts.map +1 -0
- package/dist/agent/ask.js +35 -0
- package/dist/agent/ask.js.map +1 -0
- package/dist/agent/citations.d.ts +27 -0
- package/dist/agent/citations.d.ts.map +1 -0
- package/dist/agent/citations.js +190 -0
- package/dist/agent/citations.js.map +1 -0
- package/dist/agent/fake-provider.d.ts +9 -0
- package/dist/agent/fake-provider.d.ts.map +1 -0
- package/dist/agent/fake-provider.js +51 -0
- package/dist/agent/fake-provider.js.map +1 -0
- package/dist/agent/index.d.ts +10 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +6 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/loop.d.ts +11 -0
- package/dist/agent/loop.d.ts.map +1 -0
- package/dist/agent/loop.js +156 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/providers.d.ts +17 -0
- package/dist/agent/providers.d.ts.map +1 -0
- package/dist/agent/providers.js +171 -0
- package/dist/agent/providers.js.map +1 -0
- package/dist/agent/tools.d.ts +8 -0
- package/dist/agent/tools.d.ts.map +1 -0
- package/dist/agent/tools.js +233 -0
- package/dist/agent/tools.js.map +1 -0
- package/dist/agent/types.d.ts +84 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +2 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/cli/help.d.ts +2 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +28 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +5 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/options.d.ts +21 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +97 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/cli/run.d.ts +21 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +144 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +14 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +352 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +6 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +72 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/types.d.ts +53 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/doctor/doctor.d.ts +47 -0
- package/dist/doctor/doctor.d.ts.map +1 -0
- package/dist/doctor/doctor.js +159 -0
- package/dist/doctor/doctor.js.map +1 -0
- package/dist/embeddings/index.d.ts +117 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +515 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/errors.d.ts +19 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +37 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer/discovery.d.ts +10 -0
- package/dist/indexer/discovery.d.ts.map +1 -0
- package/dist/indexer/discovery.js +38 -0
- package/dist/indexer/discovery.js.map +1 -0
- package/dist/indexer/hash.d.ts +3 -0
- package/dist/indexer/hash.d.ts.map +1 -0
- package/dist/indexer/hash.js +11 -0
- package/dist/indexer/hash.js.map +1 -0
- package/dist/indexer/index.d.ts +7 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +5 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/indexer/kinds.d.ts +4 -0
- package/dist/indexer/kinds.d.ts.map +1 -0
- package/dist/indexer/kinds.js +38 -0
- package/dist/indexer/kinds.js.map +1 -0
- package/dist/indexer/run.d.ts +42 -0
- package/dist/indexer/run.d.ts.map +1 -0
- package/dist/indexer/run.js +563 -0
- package/dist/indexer/run.js.map +1 -0
- package/dist/logging/logger.d.ts +11 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +18 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/mcp/index.d.ts +35 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +392 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/parsers/chunking.d.ts +4 -0
- package/dist/parsers/chunking.d.ts.map +1 -0
- package/dist/parsers/chunking.js +112 -0
- package/dist/parsers/chunking.js.map +1 -0
- package/dist/parsers/index.d.ts +8 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +5 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/line-parser.d.ts +13 -0
- package/dist/parsers/line-parser.d.ts.map +1 -0
- package/dist/parsers/line-parser.js +242 -0
- package/dist/parsers/line-parser.js.map +1 -0
- package/dist/parsers/normalize.d.ts +4 -0
- package/dist/parsers/normalize.d.ts.map +1 -0
- package/dist/parsers/normalize.js +17 -0
- package/dist/parsers/normalize.js.map +1 -0
- package/dist/parsers/parser.d.ts +14 -0
- package/dist/parsers/parser.d.ts.map +1 -0
- package/dist/parsers/parser.js +77 -0
- package/dist/parsers/parser.js.map +1 -0
- package/dist/parsers/pdf2llm.d.ts +14 -0
- package/dist/parsers/pdf2llm.d.ts.map +1 -0
- package/dist/parsers/pdf2llm.js +215 -0
- package/dist/parsers/pdf2llm.js.map +1 -0
- package/dist/parsers/types.d.ts +48 -0
- package/dist/parsers/types.d.ts.map +1 -0
- package/dist/parsers/types.js +2 -0
- package/dist/parsers/types.js.map +1 -0
- package/dist/retrieval/index.d.ts +4 -0
- package/dist/retrieval/index.d.ts.map +1 -0
- package/dist/retrieval/index.js +3 -0
- package/dist/retrieval/index.js.map +1 -0
- package/dist/retrieval/schemas.d.ts +127 -0
- package/dist/retrieval/schemas.d.ts.map +1 -0
- package/dist/retrieval/schemas.js +65 -0
- package/dist/retrieval/schemas.js.map +1 -0
- package/dist/retrieval/tools.d.ts +31 -0
- package/dist/retrieval/tools.d.ts.map +1 -0
- package/dist/retrieval/tools.js +803 -0
- package/dist/retrieval/tools.js.map +1 -0
- package/dist/retrieval/types.d.ts +104 -0
- package/dist/retrieval/types.d.ts.map +1 -0
- package/dist/retrieval/types.js +2 -0
- package/dist/retrieval/types.js.map +1 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/server.d.ts +49 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +517 -0
- package/dist/server/server.js.map +1 -0
- package/dist/shared/types.d.ts +98 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +2 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/storage/database.d.ts +18 -0
- package/dist/storage/database.d.ts.map +1 -0
- package/dist/storage/database.js +66 -0
- package/dist/storage/database.js.map +1 -0
- package/dist/storage/index.d.ts +8 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +5 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/migrations.d.ts +15 -0
- package/dist/storage/migrations.d.ts.map +1 -0
- package/dist/storage/migrations.js +170 -0
- package/dist/storage/migrations.js.map +1 -0
- package/dist/storage/paths.d.ts +15 -0
- package/dist/storage/paths.d.ts.map +1 -0
- package/dist/storage/paths.js +27 -0
- package/dist/storage/paths.js.map +1 -0
- package/dist/storage/schema.d.ts +11 -0
- package/dist/storage/schema.d.ts.map +1 -0
- package/dist/storage/schema.js +40 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +2 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/static-app.d.ts +2 -0
- package/dist/ui/static-app.d.ts.map +1 -0
- package/dist/ui/static-app.js +735 -0
- package/dist/ui/static-app.js.map +1 -0
- package/docs/adr/0001-sqlite-driver.md +23 -0
- package/docs/agentic-rag-specifications.md +659 -0
- package/docs/agentic-rag-study.md +1056 -0
- package/docs/implementation-plan.md +1425 -0
- package/docs/mcp-integration.md +154 -0
- package/docs/validation-corpus.md +71 -0
- package/package.json +79 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { getSchemaVersion, migrateDatabase, openDatabase } from "./migrations.js";
|
|
3
|
+
import { ensureDatabaseDirectory, resolveAthenaPaths } from "./paths.js";
|
|
4
|
+
import { inspectSchema } from "./schema.js";
|
|
5
|
+
export async function initializeDatabase(root, dbPath) {
|
|
6
|
+
const paths = resolveAthenaPaths(root, dbPath);
|
|
7
|
+
await ensureDatabaseDirectory(paths);
|
|
8
|
+
const database = openDatabase(paths.databasePath);
|
|
9
|
+
try {
|
|
10
|
+
migrateDatabase(database);
|
|
11
|
+
return {
|
|
12
|
+
paths,
|
|
13
|
+
schemaVersion: getSchemaVersion(database)
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
finally {
|
|
17
|
+
database.close();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function inspectDatabase(root, dbPath) {
|
|
21
|
+
const paths = resolveAthenaPaths(root, dbPath);
|
|
22
|
+
const cacheState = {
|
|
23
|
+
cacheDirExists: existsSync(paths.cacheDir),
|
|
24
|
+
databaseExists: existsSync(paths.databasePath)
|
|
25
|
+
};
|
|
26
|
+
if (!cacheState.databaseExists) {
|
|
27
|
+
return {
|
|
28
|
+
paths,
|
|
29
|
+
cacheState,
|
|
30
|
+
status: "missing",
|
|
31
|
+
schemaVersion: null,
|
|
32
|
+
schema: null,
|
|
33
|
+
error: null
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
let database = null;
|
|
37
|
+
try {
|
|
38
|
+
database = openDatabase(paths.databasePath, {
|
|
39
|
+
readonly: true,
|
|
40
|
+
fileMustExist: true
|
|
41
|
+
});
|
|
42
|
+
const schema = inspectSchema(database);
|
|
43
|
+
return {
|
|
44
|
+
paths,
|
|
45
|
+
cacheState,
|
|
46
|
+
status: "ready",
|
|
47
|
+
schemaVersion: schema.schemaVersion,
|
|
48
|
+
schema,
|
|
49
|
+
error: null
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
return {
|
|
54
|
+
paths,
|
|
55
|
+
cacheState,
|
|
56
|
+
status: "unavailable",
|
|
57
|
+
schemaVersion: null,
|
|
58
|
+
schema: null,
|
|
59
|
+
error: error instanceof Error ? error.message : String(error)
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
database?.close();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoB5C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,MAAe;IAEf,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO;YACL,KAAK;YACL,aAAa,EAAE,gBAAgB,CAAC,QAAQ,CAAC;SAC1C,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,MAAe;IAEf,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG;QACjB,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC1C,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC;KAC/C,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QAC/B,OAAO;YACL,KAAK;YACL,UAAU;YACV,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,GAA0B,IAAI,CAAC;IAE3C,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE;YAC1C,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEvC,OAAO;YACL,KAAK;YACL,UAAU;YACV,MAAM,EAAE,OAAO;YACf,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,MAAM;YACN,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,KAAK;YACL,UAAU;YACV,MAAM,EAAE,aAAa;YACrB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { initializeDatabase, inspectDatabase } from "./database.js";
|
|
2
|
+
export { SCHEMA_VERSION, getSchemaVersion, migrateDatabase, openDatabase, withTransaction } from "./migrations.js";
|
|
3
|
+
export { ensureDatabaseDirectory, getCacheState, resolveAthenaPaths } from "./paths.js";
|
|
4
|
+
export { countAvailable, inspectSchema, requiredIndexes, requiredTables } from "./schema.js";
|
|
5
|
+
export type { DatabaseHealthReport, DatabaseStatus, InitializedDatabase } from "./database.js";
|
|
6
|
+
export type { AthenaPaths, CacheState } from "./paths.js";
|
|
7
|
+
export type { DatabaseSchemaHealth } from "./schema.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { initializeDatabase, inspectDatabase } from "./database.js";
|
|
2
|
+
export { SCHEMA_VERSION, getSchemaVersion, migrateDatabase, openDatabase, withTransaction } from "./migrations.js";
|
|
3
|
+
export { ensureDatabaseDirectory, getCacheState, resolveAthenaPaths } from "./paths.js";
|
|
4
|
+
export { countAvailable, inspectSchema, requiredIndexes, requiredTables } from "./schema.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACf,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Database as SqliteDatabase } from "better-sqlite3";
|
|
2
|
+
export declare const SCHEMA_VERSION = 1;
|
|
3
|
+
export interface MigrationResult {
|
|
4
|
+
beforeVersion: number;
|
|
5
|
+
afterVersion: number;
|
|
6
|
+
appliedVersions: number[];
|
|
7
|
+
}
|
|
8
|
+
export declare function openDatabase(databasePath: string, options?: {
|
|
9
|
+
readonly?: boolean;
|
|
10
|
+
fileMustExist?: boolean;
|
|
11
|
+
}): SqliteDatabase;
|
|
12
|
+
export declare function migrateDatabase(database: SqliteDatabase): MigrationResult;
|
|
13
|
+
export declare function getSchemaVersion(database: SqliteDatabase): number;
|
|
14
|
+
export declare function withTransaction<TResult>(database: SqliteDatabase, callback: () => TResult): TResult;
|
|
15
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/storage/migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjE,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAC1B,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5D,cAAc,CAIhB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,eAAe,CA0BzE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAkBjE;AAED,wBAAgB,eAAe,CAAC,OAAO,EACrC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,MAAM,OAAO,GACtB,OAAO,CAET"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import DatabaseConstructor from "better-sqlite3";
|
|
2
|
+
export const SCHEMA_VERSION = 1;
|
|
3
|
+
export function openDatabase(databasePath, options = {}) {
|
|
4
|
+
const database = new DatabaseConstructor(databasePath, options);
|
|
5
|
+
database.pragma("foreign_keys = ON");
|
|
6
|
+
return database;
|
|
7
|
+
}
|
|
8
|
+
export function migrateDatabase(database) {
|
|
9
|
+
database.exec(`
|
|
10
|
+
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
11
|
+
version INTEGER PRIMARY KEY,
|
|
12
|
+
applied_at TEXT NOT NULL
|
|
13
|
+
);
|
|
14
|
+
`);
|
|
15
|
+
const beforeVersion = getSchemaVersion(database);
|
|
16
|
+
const appliedVersions = [];
|
|
17
|
+
if (beforeVersion < 1) {
|
|
18
|
+
database.exec(SCHEMA_V1_SQL);
|
|
19
|
+
database
|
|
20
|
+
.prepare("INSERT INTO schema_migrations (version, applied_at) VALUES (?, ?)")
|
|
21
|
+
.run(1, new Date().toISOString());
|
|
22
|
+
appliedVersions.push(1);
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
beforeVersion,
|
|
26
|
+
afterVersion: getSchemaVersion(database),
|
|
27
|
+
appliedVersions
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function getSchemaVersion(database) {
|
|
31
|
+
const table = database
|
|
32
|
+
.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'schema_migrations'")
|
|
33
|
+
.get();
|
|
34
|
+
if (table === undefined) {
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
const row = database
|
|
38
|
+
.prepare("SELECT COALESCE(MAX(version), 0) AS version FROM schema_migrations")
|
|
39
|
+
.get();
|
|
40
|
+
return row?.version ?? 0;
|
|
41
|
+
}
|
|
42
|
+
export function withTransaction(database, callback) {
|
|
43
|
+
return database.transaction(callback)();
|
|
44
|
+
}
|
|
45
|
+
const SCHEMA_V1_SQL = `
|
|
46
|
+
CREATE TABLE IF NOT EXISTS sources (
|
|
47
|
+
id TEXT PRIMARY KEY,
|
|
48
|
+
root TEXT NOT NULL,
|
|
49
|
+
relative_path TEXT NOT NULL,
|
|
50
|
+
kind TEXT NOT NULL,
|
|
51
|
+
size_bytes INTEGER NOT NULL,
|
|
52
|
+
modified_time_ms INTEGER NOT NULL,
|
|
53
|
+
content_hash TEXT NOT NULL,
|
|
54
|
+
parser_name TEXT NOT NULL,
|
|
55
|
+
parser_version TEXT NOT NULL,
|
|
56
|
+
parser_options_hash TEXT NOT NULL,
|
|
57
|
+
indexed_at TEXT NOT NULL
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_sources_relative_path
|
|
61
|
+
ON sources(root, relative_path);
|
|
62
|
+
CREATE INDEX IF NOT EXISTS idx_sources_content_hash
|
|
63
|
+
ON sources(content_hash);
|
|
64
|
+
|
|
65
|
+
CREATE TABLE IF NOT EXISTS documents (
|
|
66
|
+
id TEXT PRIMARY KEY,
|
|
67
|
+
source_id TEXT NOT NULL REFERENCES sources(id) ON DELETE CASCADE,
|
|
68
|
+
title TEXT,
|
|
69
|
+
text TEXT NOT NULL,
|
|
70
|
+
normalized_text TEXT NOT NULL,
|
|
71
|
+
metadata_json TEXT NOT NULL DEFAULT '{}'
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
CREATE INDEX IF NOT EXISTS idx_documents_source_id
|
|
75
|
+
ON documents(source_id);
|
|
76
|
+
|
|
77
|
+
CREATE TABLE IF NOT EXISTS chunks (
|
|
78
|
+
id TEXT PRIMARY KEY,
|
|
79
|
+
source_id TEXT NOT NULL REFERENCES sources(id) ON DELETE CASCADE,
|
|
80
|
+
document_id TEXT NOT NULL REFERENCES documents(id) ON DELETE CASCADE,
|
|
81
|
+
ordinal INTEGER NOT NULL,
|
|
82
|
+
text TEXT NOT NULL,
|
|
83
|
+
normalized_text TEXT NOT NULL,
|
|
84
|
+
heading_path_json TEXT NOT NULL DEFAULT '[]',
|
|
85
|
+
locator_json TEXT NOT NULL,
|
|
86
|
+
token_estimate INTEGER NOT NULL,
|
|
87
|
+
previous_chunk_id TEXT,
|
|
88
|
+
next_chunk_id TEXT
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_source_id
|
|
92
|
+
ON chunks(source_id);
|
|
93
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_document_ordinal
|
|
94
|
+
ON chunks(document_id, ordinal);
|
|
95
|
+
|
|
96
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS chunks_fts USING fts5(
|
|
97
|
+
chunk_id UNINDEXED,
|
|
98
|
+
text,
|
|
99
|
+
normalized_text,
|
|
100
|
+
heading_path,
|
|
101
|
+
tokenize = 'unicode61'
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
CREATE TABLE IF NOT EXISTS embeddings (
|
|
105
|
+
id TEXT PRIMARY KEY,
|
|
106
|
+
chunk_id TEXT NOT NULL REFERENCES chunks(id) ON DELETE CASCADE,
|
|
107
|
+
provider TEXT NOT NULL,
|
|
108
|
+
model TEXT NOT NULL,
|
|
109
|
+
dimensions INTEGER NOT NULL,
|
|
110
|
+
cache_key TEXT NOT NULL,
|
|
111
|
+
vector BLOB,
|
|
112
|
+
metadata_json TEXT NOT NULL DEFAULT '{}',
|
|
113
|
+
created_at TEXT NOT NULL
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_embeddings_cache_key
|
|
117
|
+
ON embeddings(cache_key);
|
|
118
|
+
CREATE INDEX IF NOT EXISTS idx_embeddings_chunk_id
|
|
119
|
+
ON embeddings(chunk_id);
|
|
120
|
+
|
|
121
|
+
CREATE TABLE IF NOT EXISTS runs (
|
|
122
|
+
id TEXT PRIMARY KEY,
|
|
123
|
+
kind TEXT NOT NULL,
|
|
124
|
+
status TEXT NOT NULL,
|
|
125
|
+
started_at TEXT NOT NULL,
|
|
126
|
+
finished_at TEXT,
|
|
127
|
+
stats_json TEXT NOT NULL DEFAULT '{}',
|
|
128
|
+
error_message TEXT
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
CREATE TABLE IF NOT EXISTS parser_artifacts (
|
|
132
|
+
id TEXT PRIMARY KEY,
|
|
133
|
+
source_id TEXT NOT NULL REFERENCES sources(id) ON DELETE CASCADE,
|
|
134
|
+
parser_name TEXT NOT NULL,
|
|
135
|
+
parser_version TEXT NOT NULL,
|
|
136
|
+
kind TEXT NOT NULL,
|
|
137
|
+
payload_json TEXT NOT NULL,
|
|
138
|
+
created_at TEXT NOT NULL
|
|
139
|
+
);
|
|
140
|
+
|
|
141
|
+
CREATE INDEX IF NOT EXISTS idx_parser_artifacts_source_id
|
|
142
|
+
ON parser_artifacts(source_id);
|
|
143
|
+
|
|
144
|
+
CREATE TABLE IF NOT EXISTS conversation_turns (
|
|
145
|
+
id TEXT PRIMARY KEY,
|
|
146
|
+
question TEXT NOT NULL,
|
|
147
|
+
answer_summary TEXT NOT NULL,
|
|
148
|
+
citations_json TEXT NOT NULL DEFAULT '[]',
|
|
149
|
+
pinned_sources_json TEXT NOT NULL DEFAULT '[]',
|
|
150
|
+
created_at TEXT NOT NULL
|
|
151
|
+
);
|
|
152
|
+
|
|
153
|
+
CREATE TABLE IF NOT EXISTS answer_citations (
|
|
154
|
+
id TEXT PRIMARY KEY,
|
|
155
|
+
turn_id TEXT NOT NULL REFERENCES conversation_turns(id) ON DELETE CASCADE,
|
|
156
|
+
chunk_id TEXT REFERENCES chunks(id) ON DELETE SET NULL,
|
|
157
|
+
source_path TEXT NOT NULL,
|
|
158
|
+
locator_json TEXT NOT NULL,
|
|
159
|
+
label TEXT NOT NULL,
|
|
160
|
+
created_at TEXT NOT NULL
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
CREATE INDEX IF NOT EXISTS idx_answer_citations_turn_id
|
|
164
|
+
ON answer_citations(turn_id);
|
|
165
|
+
CREATE INDEX IF NOT EXISTS idx_answer_citations_chunk_id
|
|
166
|
+
ON answer_citations(chunk_id);
|
|
167
|
+
CREATE INDEX IF NOT EXISTS idx_answer_citations_source_path
|
|
168
|
+
ON answer_citations(source_path);
|
|
169
|
+
`;
|
|
170
|
+
//# sourceMappingURL=migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/storage/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,gBAAgB,CAAC;AAGjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAQhC,MAAM,UAAU,YAAY,CAC1B,YAAoB,EACpB,UAA2D,EAAE;IAE7D,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAChE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAwB;IACtD,QAAQ,CAAC,IAAI,CAAC;;;;;GAKb,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7B,QAAQ;aACL,OAAO,CACN,mEAAmE,CACpE;aACA,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACpC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,aAAa;QACb,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QACxC,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACvD,MAAM,KAAK,GAAG,QAAQ;SACnB,OAAO,CACN,oFAAoF,CACrF;SACA,GAAG,EAAE,CAAC;IAET,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ;SACjB,OAAO,CACN,oEAAoE,CACrE;SACA,GAAG,EAAE,CAAC;IAET,OAAO,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAwB,EACxB,QAAuB;IAEvB,OAAO,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4HrB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface AthenaPaths {
|
|
2
|
+
root: string;
|
|
3
|
+
cacheDir: string;
|
|
4
|
+
blobsDir: string;
|
|
5
|
+
databasePath: string;
|
|
6
|
+
modelCacheDir: string;
|
|
7
|
+
}
|
|
8
|
+
export interface CacheState {
|
|
9
|
+
cacheDirExists: boolean;
|
|
10
|
+
databaseExists: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function resolveAthenaPaths(root: string, dbPath?: string): AthenaPaths;
|
|
13
|
+
export declare function ensureDatabaseDirectory(paths: AthenaPaths): Promise<void>;
|
|
14
|
+
export declare function getCacheState(paths: AthenaPaths): CacheState;
|
|
15
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/storage/paths.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAe7E;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAK5D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { mkdir } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
export function resolveAthenaPaths(root, dbPath) {
|
|
5
|
+
const absoluteRoot = path.resolve(root);
|
|
6
|
+
const cacheDir = path.join(absoluteRoot, ".athena");
|
|
7
|
+
const databasePath = dbPath === undefined
|
|
8
|
+
? path.join(cacheDir, "index.sqlite")
|
|
9
|
+
: path.resolve(absoluteRoot, dbPath);
|
|
10
|
+
return {
|
|
11
|
+
root: absoluteRoot,
|
|
12
|
+
cacheDir,
|
|
13
|
+
blobsDir: path.join(cacheDir, "blobs"),
|
|
14
|
+
databasePath,
|
|
15
|
+
modelCacheDir: path.join(cacheDir, "models")
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export async function ensureDatabaseDirectory(paths) {
|
|
19
|
+
await mkdir(path.dirname(paths.databasePath), { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
export function getCacheState(paths) {
|
|
22
|
+
return {
|
|
23
|
+
cacheDirExists: existsSync(paths.cacheDir),
|
|
24
|
+
databaseExists: existsSync(paths.databasePath)
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/storage/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAe7B,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,MAAe;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,YAAY,GAChB,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,QAAQ;QACR,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;QACtC,YAAY;QACZ,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAkB;IAElB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAkB;IAC9C,OAAO;QACL,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC1C,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Database as SqliteDatabase } from "better-sqlite3";
|
|
2
|
+
export declare const requiredTables: readonly ["sources", "documents", "chunks", "chunks_fts", "embeddings", "runs", "parser_artifacts", "conversation_turns", "answer_citations"];
|
|
3
|
+
export declare const requiredIndexes: readonly ["idx_sources_relative_path", "idx_sources_content_hash", "idx_chunks_source_id", "idx_embeddings_cache_key", "idx_answer_citations_turn_id", "idx_answer_citations_chunk_id", "idx_answer_citations_source_path"];
|
|
4
|
+
export interface DatabaseSchemaHealth {
|
|
5
|
+
schemaVersion: number;
|
|
6
|
+
tables: Record<string, boolean>;
|
|
7
|
+
indexes: Record<string, boolean>;
|
|
8
|
+
}
|
|
9
|
+
export declare function inspectSchema(database: SqliteDatabase): DatabaseSchemaHealth;
|
|
10
|
+
export declare function countAvailable(record: Record<string, boolean>): number;
|
|
11
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/storage/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIjE,eAAO,MAAM,cAAc,+IAUjB,CAAC;AAEX,eAAO,MAAM,eAAe,6NAQlB,CAAC;AAEX,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG,oBAAoB,CA2B5E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAEtE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { getSchemaVersion } from "./migrations.js";
|
|
2
|
+
export const requiredTables = [
|
|
3
|
+
"sources",
|
|
4
|
+
"documents",
|
|
5
|
+
"chunks",
|
|
6
|
+
"chunks_fts",
|
|
7
|
+
"embeddings",
|
|
8
|
+
"runs",
|
|
9
|
+
"parser_artifacts",
|
|
10
|
+
"conversation_turns",
|
|
11
|
+
"answer_citations"
|
|
12
|
+
];
|
|
13
|
+
export const requiredIndexes = [
|
|
14
|
+
"idx_sources_relative_path",
|
|
15
|
+
"idx_sources_content_hash",
|
|
16
|
+
"idx_chunks_source_id",
|
|
17
|
+
"idx_embeddings_cache_key",
|
|
18
|
+
"idx_answer_citations_turn_id",
|
|
19
|
+
"idx_answer_citations_chunk_id",
|
|
20
|
+
"idx_answer_citations_source_path"
|
|
21
|
+
];
|
|
22
|
+
export function inspectSchema(database) {
|
|
23
|
+
const existingTables = new Set(database
|
|
24
|
+
.prepare("SELECT name FROM sqlite_master WHERE type IN ('table', 'view')")
|
|
25
|
+
.all()
|
|
26
|
+
.map((row) => row.name));
|
|
27
|
+
const existingIndexes = new Set(database
|
|
28
|
+
.prepare("SELECT name FROM sqlite_master WHERE type = 'index'")
|
|
29
|
+
.all()
|
|
30
|
+
.map((row) => row.name));
|
|
31
|
+
return {
|
|
32
|
+
schemaVersion: getSchemaVersion(database),
|
|
33
|
+
tables: Object.fromEntries(requiredTables.map((table) => [table, existingTables.has(table)])),
|
|
34
|
+
indexes: Object.fromEntries(requiredIndexes.map((index) => [index, existingIndexes.has(index)]))
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function countAvailable(record) {
|
|
38
|
+
return Object.values(record).filter(Boolean).length;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/storage/schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,WAAW;IACX,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,MAAM;IACN,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,2BAA2B;IAC3B,0BAA0B;IAC1B,sBAAsB;IACtB,0BAA0B;IAC1B,8BAA8B;IAC9B,+BAA+B;IAC/B,kCAAkC;CAC1B,CAAC;AAQX,MAAM,UAAU,aAAa,CAAC,QAAwB;IACpD,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,QAAQ;SACL,OAAO,CACN,gEAAgE,CACjE;SACA,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAC1B,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,QAAQ;SACL,OAAO,CACN,qDAAqD,CACtD;SACA,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAC1B,CAAC;IAEF,OAAO;QACL,aAAa,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QACzC,MAAM,EAAE,MAAM,CAAC,WAAW,CACxB,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAClE;QACD,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CACpE;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA+B;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/ui/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-app.d.ts","sourceRoot":"","sources":["../../src/ui/static-app.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,IAAI,MAAM,CA6tBtC"}
|