@pella-labs/pinakes 0.1.10 → 0.3.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 +20 -20
- package/dist/cli/audit.d.ts +5 -3
- package/dist/cli/audit.d.ts.map +1 -1
- package/dist/cli/audit.js +3 -24
- package/dist/cli/audit.js.map +1 -1
- package/dist/cli/contradiction-cli.d.ts +12 -0
- package/dist/cli/contradiction-cli.d.ts.map +1 -0
- package/dist/cli/contradiction-cli.js +35 -0
- package/dist/cli/contradiction-cli.js.map +1 -0
- package/dist/cli/contradiction.d.ts +59 -0
- package/dist/cli/contradiction.d.ts.map +1 -0
- package/dist/cli/contradiction.js +172 -0
- package/dist/cli/contradiction.js.map +1 -0
- package/dist/cli/export.d.ts +1 -1
- package/dist/cli/export.d.ts.map +1 -1
- package/dist/cli/export.js +7 -28
- package/dist/cli/export.js.map +1 -1
- package/dist/cli/import.d.ts +2 -2
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +5 -26
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/index.js +39 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/purge.d.ts +2 -2
- package/dist/cli/purge.d.ts.map +1 -1
- package/dist/cli/purge.js +2 -23
- package/dist/cli/purge.js.map +1 -1
- package/dist/cli/rebuild.d.ts +8 -6
- package/dist/cli/rebuild.d.ts.map +1 -1
- package/dist/cli/rebuild.js +9 -31
- package/dist/cli/rebuild.js.map +1 -1
- package/dist/cli/serve.d.ts +9 -7
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +71 -41
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/status.d.ts +7 -5
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +10 -29
- package/dist/cli/status.js.map +1 -1
- package/dist/db/client.d.ts +4 -4
- package/dist/db/client.js +3 -3
- package/dist/db/client.js.map +1 -1
- package/dist/db/migrations/migrations/0002_rename_kg_to_pinakes.sql +49 -0
- package/dist/db/migrations/migrations/meta/0002_snapshot.json +504 -0
- package/dist/db/migrations/migrations/meta/_journal.json +7 -0
- package/dist/db/repository.js +5 -5
- package/dist/db/repository.js.map +1 -1
- package/dist/db/schema.d.ts +84 -84
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +49 -49
- package/dist/db/schema.js.map +1 -1
- package/dist/db/types.d.ts +2 -2
- package/dist/db/types.js +1 -1
- package/dist/gaps/detector.d.ts +5 -5
- package/dist/gaps/detector.js +15 -15
- package/dist/gaps/detector.js.map +1 -1
- package/dist/ingest/chokidar.js +1 -1
- package/dist/ingest/ingester.d.ts +9 -4
- package/dist/ingest/ingester.d.ts.map +1 -1
- package/dist/ingest/ingester.js +82 -17
- package/dist/ingest/ingester.js.map +1 -1
- package/dist/ingest/manifest.d.ts +5 -3
- package/dist/ingest/manifest.d.ts.map +1 -1
- package/dist/ingest/manifest.js +23 -14
- package/dist/ingest/manifest.js.map +1 -1
- package/dist/ingest/parse/chunk.js +1 -1
- package/dist/ingest/parse/markdown.d.ts +2 -2
- package/dist/ingest/queue.d.ts +1 -1
- package/dist/ingest/queue.js +1 -1
- package/dist/ingest/source.d.ts +2 -2
- package/dist/ingest/source.d.ts.map +1 -1
- package/dist/ingest/source.js +1 -1
- package/dist/llm/provider.d.ts +70 -0
- package/dist/llm/provider.d.ts.map +1 -0
- package/dist/llm/provider.js +235 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/mcp/envelope.d.ts +1 -1
- package/dist/mcp/tools/execute.d.ts +7 -7
- package/dist/mcp/tools/execute.d.ts.map +1 -1
- package/dist/mcp/tools/execute.js +41 -59
- package/dist/mcp/tools/execute.js.map +1 -1
- package/dist/mcp/tools/search.d.ts +13 -8
- package/dist/mcp/tools/search.d.ts.map +1 -1
- package/dist/mcp/tools/search.js +53 -28
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/observability/audit.d.ts +2 -2
- package/dist/observability/audit.js +3 -3
- package/dist/observability/audit.js.map +1 -1
- package/dist/observability/logger.js +4 -4
- package/dist/observability/logger.js.map +1 -1
- package/dist/observability/metrics.js +1 -1
- package/dist/observability/metrics.js.map +1 -1
- package/dist/paths.d.ts +61 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +106 -0
- package/dist/paths.js.map +1 -0
- package/dist/retrieval/dedup.d.ts +25 -0
- package/dist/retrieval/dedup.d.ts.map +1 -0
- package/dist/retrieval/dedup.js +97 -0
- package/dist/retrieval/dedup.js.map +1 -0
- package/dist/retrieval/embedder.d.ts +9 -9
- package/dist/retrieval/embedder.d.ts.map +1 -1
- package/dist/retrieval/embedder.js +17 -17
- package/dist/retrieval/embedder.js.map +1 -1
- package/dist/retrieval/expand.d.ts +18 -0
- package/dist/retrieval/expand.d.ts.map +1 -0
- package/dist/retrieval/expand.js +89 -0
- package/dist/retrieval/expand.js.map +1 -0
- package/dist/retrieval/fts.d.ts +3 -3
- package/dist/retrieval/fts.js +8 -8
- package/dist/retrieval/graph.d.ts +47 -0
- package/dist/retrieval/graph.d.ts.map +1 -0
- package/dist/retrieval/graph.js +144 -0
- package/dist/retrieval/graph.js.map +1 -0
- package/dist/retrieval/hybrid.d.ts +10 -0
- package/dist/retrieval/hybrid.d.ts.map +1 -1
- package/dist/retrieval/hybrid.js +57 -2
- package/dist/retrieval/hybrid.js.map +1 -1
- package/dist/retrieval/vec.d.ts +2 -2
- package/dist/retrieval/vec.js +3 -3
- package/dist/sandbox/bindings/install.d.ts +5 -5
- package/dist/sandbox/bindings/install.d.ts.map +1 -1
- package/dist/sandbox/bindings/install.js +3 -3
- package/dist/sandbox/bindings/install.js.map +1 -1
- package/dist/sandbox/bindings/kg.d.ts.map +1 -1
- package/dist/sandbox/bindings/kg.js +10 -0
- package/dist/sandbox/bindings/kg.js.map +1 -1
- package/dist/sandbox/bindings/pinakes.d.ts +29 -0
- package/dist/sandbox/bindings/pinakes.d.ts.map +1 -0
- package/dist/sandbox/bindings/pinakes.js +333 -0
- package/dist/sandbox/bindings/pinakes.js.map +1 -0
- package/dist/sandbox/bindings/write.d.ts +1 -1
- package/dist/sandbox/bindings/write.d.ts.map +1 -1
- package/dist/sandbox/bindings/write.js +9 -9
- package/dist/sandbox/bindings/write.js.map +1 -1
- package/dist/sandbox/executor.d.ts +3 -3
- package/dist/sandbox/executor.js +6 -6
- package/dist/sandbox/executor.js.map +1 -1
- package/dist/sandbox/helpers.d.ts +1 -1
- package/dist/sandbox/helpers.d.ts.map +1 -1
- package/dist/sandbox/helpers.js +2 -2
- package/dist/sandbox/vendored-codemode.d.ts +1 -1
- package/dist/sandbox/vendored-codemode.js +1 -1
- package/dist/server.js +15 -6
- package/dist/server.js.map +1 -1
- package/package.json +22 -27
package/dist/db/schema.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Pinakes Drizzle schema (presearch.md §2.3, CLAUDE.md §Database Rules).
|
|
3
3
|
*
|
|
4
|
-
* 8 logical tables + `
|
|
5
|
-
* virtual tables (`
|
|
4
|
+
* 8 logical tables + `pinakes_meta` for schema versioning. Two of the eight are
|
|
5
|
+
* virtual tables (`pinakes_chunks_fts`, `pinakes_chunks_vec`) that drizzle-kit can't
|
|
6
6
|
* model — they're created via raw SQL appended to the initial migration in
|
|
7
7
|
* src/db/migrations. The drizzle code below covers the 7 regular tables
|
|
8
|
-
* plus
|
|
8
|
+
* plus pinakes_meta.
|
|
9
9
|
*
|
|
10
10
|
* Invariants this schema MUST preserve:
|
|
11
11
|
*
|
|
12
|
-
* - `
|
|
12
|
+
* - `pinakes_nodes.id` is `sha1(scope + ':' + source_uri + ':' + section_path)`,
|
|
13
13
|
* set by the ingester (NOT auto-generated). Re-ingesting the same
|
|
14
14
|
* markdown produces identical ids — Phase 2's idempotent upsert relies
|
|
15
15
|
* on this. The DB never sees the hashing logic; it just stores the value
|
|
16
16
|
* and enforces uniqueness via the PK.
|
|
17
17
|
*
|
|
18
|
-
* - `
|
|
18
|
+
* - `pinakes_chunks.id` is `sha1(node_id + ':' + chunk_index)`, same idea.
|
|
19
19
|
*
|
|
20
20
|
* - `chunk_sha = sha1(chunk_text)` is the LOAD-BEARING field for the
|
|
21
21
|
* per-chunk skip-unchanged optimization (CLAUDE.md §Database Rules #3,
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
* ~50ms = 3s of blocking work that competes with the active coding LLM
|
|
26
26
|
* for Ollama. Do not remove this column.
|
|
27
27
|
*
|
|
28
|
-
* - `last_accessed_at` on `
|
|
28
|
+
* - `last_accessed_at` on `pinakes_nodes` exists for the Phase 5 personal-KG
|
|
29
29
|
* LRU eviction (Loop 6.5 A2). Phase 2 just stamps it on insert/update.
|
|
30
30
|
*
|
|
31
|
-
* - `source_sha` on `
|
|
31
|
+
* - `source_sha` on `pinakes_nodes` is the file-level hash; staleness detection
|
|
32
32
|
* on the query path compares this against the current on-disk hash.
|
|
33
33
|
*
|
|
34
34
|
* - All FK relationships use `ON DELETE CASCADE` so deleting a node cleans
|
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
* (in the worst case for sqlite-vec breaking changes) drop + rebuild the
|
|
46
46
|
* vec virtual table from markdown.
|
|
47
47
|
*/
|
|
48
|
-
export declare const
|
|
49
|
-
name: "
|
|
48
|
+
export declare const pinakesMeta: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
49
|
+
name: "pinakes_meta";
|
|
50
50
|
schema: undefined;
|
|
51
51
|
columns: {
|
|
52
52
|
key: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
53
53
|
name: "key";
|
|
54
|
-
tableName: "
|
|
54
|
+
tableName: "pinakes_meta";
|
|
55
55
|
dataType: "string";
|
|
56
56
|
columnType: "SQLiteText";
|
|
57
57
|
data: string;
|
|
@@ -70,7 +70,7 @@ export declare const kgMeta: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
|
|
|
70
70
|
}>;
|
|
71
71
|
value: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
72
72
|
name: "value";
|
|
73
|
-
tableName: "
|
|
73
|
+
tableName: "pinakes_meta";
|
|
74
74
|
dataType: "string";
|
|
75
75
|
columnType: "SQLiteText";
|
|
76
76
|
data: string;
|
|
@@ -103,17 +103,17 @@ export declare const kgMeta: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
|
|
|
103
103
|
* Empty string for top-of-file content above any heading.
|
|
104
104
|
*
|
|
105
105
|
* `content` stores the full section markdown (heading + body). Chunks are
|
|
106
|
-
* derived from this and stored separately in
|
|
107
|
-
* `
|
|
106
|
+
* derived from this and stored separately in pinakes_chunks. We keep both because
|
|
107
|
+
* `pinakes_execute` callers may want the whole section (`pinakes.get(node_id)`) instead
|
|
108
108
|
* of paragraph-sized chunks.
|
|
109
109
|
*/
|
|
110
|
-
export declare const
|
|
111
|
-
name: "
|
|
110
|
+
export declare const pinakesNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
111
|
+
name: "pinakes_nodes";
|
|
112
112
|
schema: undefined;
|
|
113
113
|
columns: {
|
|
114
114
|
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
115
115
|
name: "id";
|
|
116
|
-
tableName: "
|
|
116
|
+
tableName: "pinakes_nodes";
|
|
117
117
|
dataType: "string";
|
|
118
118
|
columnType: "SQLiteText";
|
|
119
119
|
data: string;
|
|
@@ -132,7 +132,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
132
132
|
}>;
|
|
133
133
|
scope: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
134
134
|
name: "scope";
|
|
135
|
-
tableName: "
|
|
135
|
+
tableName: "pinakes_nodes";
|
|
136
136
|
dataType: "string";
|
|
137
137
|
columnType: "SQLiteText";
|
|
138
138
|
data: string;
|
|
@@ -151,7 +151,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
151
151
|
}>;
|
|
152
152
|
sourceUri: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
153
153
|
name: "source_uri";
|
|
154
|
-
tableName: "
|
|
154
|
+
tableName: "pinakes_nodes";
|
|
155
155
|
dataType: "string";
|
|
156
156
|
columnType: "SQLiteText";
|
|
157
157
|
data: string;
|
|
@@ -170,7 +170,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
170
170
|
}>;
|
|
171
171
|
sectionPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
172
172
|
name: "section_path";
|
|
173
|
-
tableName: "
|
|
173
|
+
tableName: "pinakes_nodes";
|
|
174
174
|
dataType: "string";
|
|
175
175
|
columnType: "SQLiteText";
|
|
176
176
|
data: string;
|
|
@@ -189,7 +189,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
189
189
|
}>;
|
|
190
190
|
kind: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
191
191
|
name: "kind";
|
|
192
|
-
tableName: "
|
|
192
|
+
tableName: "pinakes_nodes";
|
|
193
193
|
dataType: "string";
|
|
194
194
|
columnType: "SQLiteText";
|
|
195
195
|
data: string;
|
|
@@ -208,7 +208,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
208
208
|
}>;
|
|
209
209
|
title: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
210
210
|
name: "title";
|
|
211
|
-
tableName: "
|
|
211
|
+
tableName: "pinakes_nodes";
|
|
212
212
|
dataType: "string";
|
|
213
213
|
columnType: "SQLiteText";
|
|
214
214
|
data: string;
|
|
@@ -227,7 +227,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
227
227
|
}>;
|
|
228
228
|
content: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
229
229
|
name: "content";
|
|
230
|
-
tableName: "
|
|
230
|
+
tableName: "pinakes_nodes";
|
|
231
231
|
dataType: "string";
|
|
232
232
|
columnType: "SQLiteText";
|
|
233
233
|
data: string;
|
|
@@ -246,7 +246,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
246
246
|
}>;
|
|
247
247
|
sourceSha: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
248
248
|
name: "source_sha";
|
|
249
|
-
tableName: "
|
|
249
|
+
tableName: "pinakes_nodes";
|
|
250
250
|
dataType: "string";
|
|
251
251
|
columnType: "SQLiteText";
|
|
252
252
|
data: string;
|
|
@@ -265,7 +265,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
265
265
|
}>;
|
|
266
266
|
tokenCount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
267
267
|
name: "token_count";
|
|
268
|
-
tableName: "
|
|
268
|
+
tableName: "pinakes_nodes";
|
|
269
269
|
dataType: "number";
|
|
270
270
|
columnType: "SQLiteInteger";
|
|
271
271
|
data: number;
|
|
@@ -282,7 +282,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
282
282
|
}, {}, {}>;
|
|
283
283
|
confidence: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
284
284
|
name: "confidence";
|
|
285
|
-
tableName: "
|
|
285
|
+
tableName: "pinakes_nodes";
|
|
286
286
|
dataType: "string";
|
|
287
287
|
columnType: "SQLiteText";
|
|
288
288
|
data: string;
|
|
@@ -301,7 +301,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
301
301
|
}>;
|
|
302
302
|
createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
303
303
|
name: "created_at";
|
|
304
|
-
tableName: "
|
|
304
|
+
tableName: "pinakes_nodes";
|
|
305
305
|
dataType: "number";
|
|
306
306
|
columnType: "SQLiteInteger";
|
|
307
307
|
data: number;
|
|
@@ -318,7 +318,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
318
318
|
}, {}, {}>;
|
|
319
319
|
updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
320
320
|
name: "updated_at";
|
|
321
|
-
tableName: "
|
|
321
|
+
tableName: "pinakes_nodes";
|
|
322
322
|
dataType: "number";
|
|
323
323
|
columnType: "SQLiteInteger";
|
|
324
324
|
data: number;
|
|
@@ -335,7 +335,7 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
335
335
|
}, {}, {}>;
|
|
336
336
|
lastAccessedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
337
337
|
name: "last_accessed_at";
|
|
338
|
-
tableName: "
|
|
338
|
+
tableName: "pinakes_nodes";
|
|
339
339
|
dataType: "number";
|
|
340
340
|
columnType: "SQLiteInteger";
|
|
341
341
|
data: number;
|
|
@@ -362,13 +362,13 @@ export declare const kgNodes: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
362
362
|
* markdown parsing. The table exists now so the migration is complete and
|
|
363
363
|
* Phase 4 doesn't have to add it as a separate migration.
|
|
364
364
|
*/
|
|
365
|
-
export declare const
|
|
366
|
-
name: "
|
|
365
|
+
export declare const pinakesEdges: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
366
|
+
name: "pinakes_edges";
|
|
367
367
|
schema: undefined;
|
|
368
368
|
columns: {
|
|
369
369
|
srcId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
370
370
|
name: "src_id";
|
|
371
|
-
tableName: "
|
|
371
|
+
tableName: "pinakes_edges";
|
|
372
372
|
dataType: "string";
|
|
373
373
|
columnType: "SQLiteText";
|
|
374
374
|
data: string;
|
|
@@ -387,7 +387,7 @@ export declare const kgEdges: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
387
387
|
}>;
|
|
388
388
|
dstId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
389
389
|
name: "dst_id";
|
|
390
|
-
tableName: "
|
|
390
|
+
tableName: "pinakes_edges";
|
|
391
391
|
dataType: "string";
|
|
392
392
|
columnType: "SQLiteText";
|
|
393
393
|
data: string;
|
|
@@ -406,7 +406,7 @@ export declare const kgEdges: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
406
406
|
}>;
|
|
407
407
|
edgeKind: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
408
408
|
name: "edge_kind";
|
|
409
|
-
tableName: "
|
|
409
|
+
tableName: "pinakes_edges";
|
|
410
410
|
dataType: "string";
|
|
411
411
|
columnType: "SQLiteText";
|
|
412
412
|
data: string;
|
|
@@ -433,8 +433,8 @@ export declare const kgEdges: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
433
433
|
*
|
|
434
434
|
* The implicit SQLite `rowid` (auto-assigned for tables without
|
|
435
435
|
* INTEGER PRIMARY KEY) is what FTS5 and sqlite-vec join on:
|
|
436
|
-
* - `
|
|
437
|
-
* - `
|
|
436
|
+
* - `pinakes_chunks_fts` is `content='pinakes_chunks', content_rowid='rowid'`
|
|
437
|
+
* - `pinakes_chunks_vec.rowid` matches `pinakes_chunks.rowid`
|
|
438
438
|
*
|
|
439
439
|
* `chunk_sha = sha1(text)` is the per-chunk skip-unchanged key. On a
|
|
440
440
|
* file rewrite, the ingester compares each new chunk's chunk_sha against
|
|
@@ -443,13 +443,13 @@ export declare const kgEdges: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
443
443
|
* re-embedded. This is the load-bearing optimization for Pharos's
|
|
444
444
|
* whole-file-rewrite-per-turn pattern (CLAUDE.md §Database Rules #3).
|
|
445
445
|
*/
|
|
446
|
-
export declare const
|
|
447
|
-
name: "
|
|
446
|
+
export declare const pinakesChunks: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
447
|
+
name: "pinakes_chunks";
|
|
448
448
|
schema: undefined;
|
|
449
449
|
columns: {
|
|
450
450
|
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
451
451
|
name: "id";
|
|
452
|
-
tableName: "
|
|
452
|
+
tableName: "pinakes_chunks";
|
|
453
453
|
dataType: "string";
|
|
454
454
|
columnType: "SQLiteText";
|
|
455
455
|
data: string;
|
|
@@ -468,7 +468,7 @@ export declare const kgChunks: import("drizzle-orm/sqlite-core").SQLiteTableWith
|
|
|
468
468
|
}>;
|
|
469
469
|
nodeId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
470
470
|
name: "node_id";
|
|
471
|
-
tableName: "
|
|
471
|
+
tableName: "pinakes_chunks";
|
|
472
472
|
dataType: "string";
|
|
473
473
|
columnType: "SQLiteText";
|
|
474
474
|
data: string;
|
|
@@ -487,7 +487,7 @@ export declare const kgChunks: import("drizzle-orm/sqlite-core").SQLiteTableWith
|
|
|
487
487
|
}>;
|
|
488
488
|
chunkIndex: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
489
489
|
name: "chunk_index";
|
|
490
|
-
tableName: "
|
|
490
|
+
tableName: "pinakes_chunks";
|
|
491
491
|
dataType: "number";
|
|
492
492
|
columnType: "SQLiteInteger";
|
|
493
493
|
data: number;
|
|
@@ -504,7 +504,7 @@ export declare const kgChunks: import("drizzle-orm/sqlite-core").SQLiteTableWith
|
|
|
504
504
|
}, {}, {}>;
|
|
505
505
|
text: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
506
506
|
name: "text";
|
|
507
|
-
tableName: "
|
|
507
|
+
tableName: "pinakes_chunks";
|
|
508
508
|
dataType: "string";
|
|
509
509
|
columnType: "SQLiteText";
|
|
510
510
|
data: string;
|
|
@@ -523,7 +523,7 @@ export declare const kgChunks: import("drizzle-orm/sqlite-core").SQLiteTableWith
|
|
|
523
523
|
}>;
|
|
524
524
|
chunkSha: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
525
525
|
name: "chunk_sha";
|
|
526
|
-
tableName: "
|
|
526
|
+
tableName: "pinakes_chunks";
|
|
527
527
|
dataType: "string";
|
|
528
528
|
columnType: "SQLiteText";
|
|
529
529
|
data: string;
|
|
@@ -542,7 +542,7 @@ export declare const kgChunks: import("drizzle-orm/sqlite-core").SQLiteTableWith
|
|
|
542
542
|
}>;
|
|
543
543
|
tokenCount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
544
544
|
name: "token_count";
|
|
545
|
-
tableName: "
|
|
545
|
+
tableName: "pinakes_chunks";
|
|
546
546
|
dataType: "number";
|
|
547
547
|
columnType: "SQLiteInteger";
|
|
548
548
|
data: number;
|
|
@@ -559,7 +559,7 @@ export declare const kgChunks: import("drizzle-orm/sqlite-core").SQLiteTableWith
|
|
|
559
559
|
}, {}, {}>;
|
|
560
560
|
createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
561
561
|
name: "created_at";
|
|
562
|
-
tableName: "
|
|
562
|
+
tableName: "pinakes_chunks";
|
|
563
563
|
dataType: "number";
|
|
564
564
|
columnType: "SQLiteInteger";
|
|
565
565
|
data: number;
|
|
@@ -584,15 +584,15 @@ export declare const kgChunks: import("drizzle-orm/sqlite-core").SQLiteTableWith
|
|
|
584
584
|
* - `'rebuild:start' | 'rebuild:done'` — full-rebuild markers
|
|
585
585
|
*
|
|
586
586
|
* `payload` is opaque JSON shaped per `kind`. The reader is the LLM via
|
|
587
|
-
* `
|
|
587
|
+
* `pinakes.log.recent(n, opts)` in Phase 4+; Phase 2 just appends.
|
|
588
588
|
*/
|
|
589
|
-
export declare const
|
|
590
|
-
name: "
|
|
589
|
+
export declare const pinakesLog: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
590
|
+
name: "pinakes_log";
|
|
591
591
|
schema: undefined;
|
|
592
592
|
columns: {
|
|
593
593
|
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
594
594
|
name: "id";
|
|
595
|
-
tableName: "
|
|
595
|
+
tableName: "pinakes_log";
|
|
596
596
|
dataType: "number";
|
|
597
597
|
columnType: "SQLiteInteger";
|
|
598
598
|
data: number;
|
|
@@ -609,7 +609,7 @@ export declare const kgLog: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
609
609
|
}, {}, {}>;
|
|
610
610
|
ts: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
611
611
|
name: "ts";
|
|
612
|
-
tableName: "
|
|
612
|
+
tableName: "pinakes_log";
|
|
613
613
|
dataType: "number";
|
|
614
614
|
columnType: "SQLiteInteger";
|
|
615
615
|
data: number;
|
|
@@ -626,7 +626,7 @@ export declare const kgLog: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
626
626
|
}, {}, {}>;
|
|
627
627
|
scope: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
628
628
|
name: "scope";
|
|
629
|
-
tableName: "
|
|
629
|
+
tableName: "pinakes_log";
|
|
630
630
|
dataType: "string";
|
|
631
631
|
columnType: "SQLiteText";
|
|
632
632
|
data: string;
|
|
@@ -645,7 +645,7 @@ export declare const kgLog: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
645
645
|
}>;
|
|
646
646
|
kind: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
647
647
|
name: "kind";
|
|
648
|
-
tableName: "
|
|
648
|
+
tableName: "pinakes_log";
|
|
649
649
|
dataType: "string";
|
|
650
650
|
columnType: "SQLiteText";
|
|
651
651
|
data: string;
|
|
@@ -664,7 +664,7 @@ export declare const kgLog: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
664
664
|
}>;
|
|
665
665
|
sourceUri: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
666
666
|
name: "source_uri";
|
|
667
|
-
tableName: "
|
|
667
|
+
tableName: "pinakes_log";
|
|
668
668
|
dataType: "string";
|
|
669
669
|
columnType: "SQLiteText";
|
|
670
670
|
data: string;
|
|
@@ -683,7 +683,7 @@ export declare const kgLog: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
683
683
|
}>;
|
|
684
684
|
payload: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
685
685
|
name: "payload";
|
|
686
|
-
tableName: "
|
|
686
|
+
tableName: "pinakes_log";
|
|
687
687
|
dataType: "string";
|
|
688
688
|
columnType: "SQLiteText";
|
|
689
689
|
data: string;
|
|
@@ -711,13 +711,13 @@ export declare const kgLog: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
711
711
|
* multiple turns. `resolved_at` is set when a gap is closed (either by
|
|
712
712
|
* the LLM writing about the topic or by a manual dismissal).
|
|
713
713
|
*/
|
|
714
|
-
export declare const
|
|
715
|
-
name: "
|
|
714
|
+
export declare const pinakesGaps: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
715
|
+
name: "pinakes_gaps";
|
|
716
716
|
schema: undefined;
|
|
717
717
|
columns: {
|
|
718
718
|
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
719
719
|
name: "id";
|
|
720
|
-
tableName: "
|
|
720
|
+
tableName: "pinakes_gaps";
|
|
721
721
|
dataType: "number";
|
|
722
722
|
columnType: "SQLiteInteger";
|
|
723
723
|
data: number;
|
|
@@ -734,7 +734,7 @@ export declare const kgGaps: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
|
|
|
734
734
|
}, {}, {}>;
|
|
735
735
|
scope: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
736
736
|
name: "scope";
|
|
737
|
-
tableName: "
|
|
737
|
+
tableName: "pinakes_gaps";
|
|
738
738
|
dataType: "string";
|
|
739
739
|
columnType: "SQLiteText";
|
|
740
740
|
data: string;
|
|
@@ -753,7 +753,7 @@ export declare const kgGaps: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
|
|
|
753
753
|
}>;
|
|
754
754
|
topic: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
755
755
|
name: "topic";
|
|
756
|
-
tableName: "
|
|
756
|
+
tableName: "pinakes_gaps";
|
|
757
757
|
dataType: "string";
|
|
758
758
|
columnType: "SQLiteText";
|
|
759
759
|
data: string;
|
|
@@ -772,7 +772,7 @@ export declare const kgGaps: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
|
|
|
772
772
|
}>;
|
|
773
773
|
firstSeenAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
774
774
|
name: "first_seen_at";
|
|
775
|
-
tableName: "
|
|
775
|
+
tableName: "pinakes_gaps";
|
|
776
776
|
dataType: "number";
|
|
777
777
|
columnType: "SQLiteInteger";
|
|
778
778
|
data: number;
|
|
@@ -789,7 +789,7 @@ export declare const kgGaps: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
|
|
|
789
789
|
}, {}, {}>;
|
|
790
790
|
mentionsCount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
791
791
|
name: "mentions_count";
|
|
792
|
-
tableName: "
|
|
792
|
+
tableName: "pinakes_gaps";
|
|
793
793
|
dataType: "number";
|
|
794
794
|
columnType: "SQLiteInteger";
|
|
795
795
|
data: number;
|
|
@@ -806,7 +806,7 @@ export declare const kgGaps: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
|
|
|
806
806
|
}, {}, {}>;
|
|
807
807
|
resolvedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
808
808
|
name: "resolved_at";
|
|
809
|
-
tableName: "
|
|
809
|
+
tableName: "pinakes_gaps";
|
|
810
810
|
dataType: "number";
|
|
811
811
|
columnType: "SQLiteInteger";
|
|
812
812
|
data: number;
|
|
@@ -830,18 +830,18 @@ export declare const kgGaps: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
|
|
|
830
830
|
* (CLAUDE.md §Security #7). Phase 2 creates the table.
|
|
831
831
|
*
|
|
832
832
|
* NB: per CLAUDE.md §Security #7, the JSONL mirror path differs by scope —
|
|
833
|
-
* project rows mirror to
|
|
834
|
-
*
|
|
835
|
-
* Personal-scope audit rows go to a separate
|
|
833
|
+
* project rows mirror to `~/.pinakes/projects/<mangled>/audit.jsonl`,
|
|
834
|
+
* personal/both rows mirror to `~/.pinakes/audit.jsonl`.
|
|
835
|
+
* Personal-scope audit rows go to a separate pinakes_audit table in the personal
|
|
836
836
|
* DB, never the project DB. This split is enforced at the app layer.
|
|
837
837
|
*/
|
|
838
|
-
export declare const
|
|
839
|
-
name: "
|
|
838
|
+
export declare const pinakesAudit: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
839
|
+
name: "pinakes_audit";
|
|
840
840
|
schema: undefined;
|
|
841
841
|
columns: {
|
|
842
842
|
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
843
843
|
name: "id";
|
|
844
|
-
tableName: "
|
|
844
|
+
tableName: "pinakes_audit";
|
|
845
845
|
dataType: "number";
|
|
846
846
|
columnType: "SQLiteInteger";
|
|
847
847
|
data: number;
|
|
@@ -858,7 +858,7 @@ export declare const kgAudit: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
858
858
|
}, {}, {}>;
|
|
859
859
|
ts: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
860
860
|
name: "ts";
|
|
861
|
-
tableName: "
|
|
861
|
+
tableName: "pinakes_audit";
|
|
862
862
|
dataType: "number";
|
|
863
863
|
columnType: "SQLiteInteger";
|
|
864
864
|
data: number;
|
|
@@ -875,7 +875,7 @@ export declare const kgAudit: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
875
875
|
}, {}, {}>;
|
|
876
876
|
toolName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
877
877
|
name: "tool_name";
|
|
878
|
-
tableName: "
|
|
878
|
+
tableName: "pinakes_audit";
|
|
879
879
|
dataType: "string";
|
|
880
880
|
columnType: "SQLiteText";
|
|
881
881
|
data: string;
|
|
@@ -894,7 +894,7 @@ export declare const kgAudit: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
894
894
|
}>;
|
|
895
895
|
scopeRequested: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
896
896
|
name: "scope_requested";
|
|
897
|
-
tableName: "
|
|
897
|
+
tableName: "pinakes_audit";
|
|
898
898
|
dataType: "string";
|
|
899
899
|
columnType: "SQLiteText";
|
|
900
900
|
data: string;
|
|
@@ -913,7 +913,7 @@ export declare const kgAudit: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
913
913
|
}>;
|
|
914
914
|
callerCtx: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
915
915
|
name: "caller_ctx";
|
|
916
|
-
tableName: "
|
|
916
|
+
tableName: "pinakes_audit";
|
|
917
917
|
dataType: "string";
|
|
918
918
|
columnType: "SQLiteText";
|
|
919
919
|
data: string;
|
|
@@ -932,7 +932,7 @@ export declare const kgAudit: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
932
932
|
}>;
|
|
933
933
|
responseTokens: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
934
934
|
name: "response_tokens";
|
|
935
|
-
tableName: "
|
|
935
|
+
tableName: "pinakes_audit";
|
|
936
936
|
dataType: "number";
|
|
937
937
|
columnType: "SQLiteInteger";
|
|
938
938
|
data: number;
|
|
@@ -949,7 +949,7 @@ export declare const kgAudit: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
949
949
|
}, {}, {}>;
|
|
950
950
|
error: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
951
951
|
name: "error";
|
|
952
|
-
tableName: "
|
|
952
|
+
tableName: "pinakes_audit";
|
|
953
953
|
dataType: "string";
|
|
954
954
|
columnType: "SQLiteText";
|
|
955
955
|
data: string;
|
|
@@ -969,22 +969,22 @@ export declare const kgAudit: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
969
969
|
};
|
|
970
970
|
dialect: "sqlite";
|
|
971
971
|
}>;
|
|
972
|
-
export type
|
|
973
|
-
export type
|
|
974
|
-
export type
|
|
975
|
-
export type
|
|
976
|
-
export type
|
|
977
|
-
export type
|
|
978
|
-
export type
|
|
979
|
-
export type
|
|
972
|
+
export type PinakesNode = typeof pinakesNodes.$inferSelect;
|
|
973
|
+
export type NewPinakesNode = typeof pinakesNodes.$inferInsert;
|
|
974
|
+
export type PinakesChunk = typeof pinakesChunks.$inferSelect;
|
|
975
|
+
export type NewPinakesChunk = typeof pinakesChunks.$inferInsert;
|
|
976
|
+
export type PinakesEdge = typeof pinakesEdges.$inferSelect;
|
|
977
|
+
export type NewPinakesEdge = typeof pinakesEdges.$inferInsert;
|
|
978
|
+
export type PinakesLogRow = typeof pinakesLog.$inferSelect;
|
|
979
|
+
export type NewPinakesLogRow = typeof pinakesLog.$inferInsert;
|
|
980
980
|
/**
|
|
981
981
|
* The list of all schema-managed tables, useful for the schema test that
|
|
982
982
|
* verifies the migration creates every expected table.
|
|
983
983
|
*/
|
|
984
|
-
export declare const
|
|
984
|
+
export declare const PINAKES_TABLES: readonly ["pinakes_meta", "pinakes_nodes", "pinakes_edges", "pinakes_chunks", "pinakes_log", "pinakes_gaps", "pinakes_audit"];
|
|
985
985
|
/**
|
|
986
986
|
* The two virtual tables created via raw SQL in the migration (drizzle-kit
|
|
987
987
|
* doesn't emit virtual table DDL). Schema test verifies they exist.
|
|
988
988
|
*/
|
|
989
|
-
export declare const
|
|
989
|
+
export declare const PINAKES_VIRTUAL_TABLES: readonly ["pinakes_chunks_fts", "pinakes_chunks_vec"];
|
|
990
990
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAMH;;;;;;;;GAQG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAMH;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGtB,CAAC;AAOH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCxB,CAAC;AAOF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBxB,CAAC;AAMF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBzB,CAAC;AAMF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBtB,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOtB,CAAC;AAMH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvB,CAAC;AAMH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,OAAO,UAAU,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,OAAO,UAAU,CAAC,YAAY,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,cAAc,+HAQjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB,uDAAwD,CAAC"}
|