@knowledgine/core 0.2.0 → 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/dist/config/config-loader.d.ts +22 -2
- package/dist/config/config-loader.d.ts.map +1 -1
- package/dist/config/config-loader.js +50 -15
- package/dist/config/config-loader.js.map +1 -1
- package/dist/embedding/model-downloader.d.ts.map +1 -1
- package/dist/embedding/model-downloader.js +31 -12
- package/dist/embedding/model-downloader.js.map +1 -1
- package/dist/extraction/causal-link-detector.d.ts +16 -0
- package/dist/extraction/causal-link-detector.d.ts.map +1 -0
- package/dist/extraction/causal-link-detector.js +142 -0
- package/dist/extraction/causal-link-detector.js.map +1 -0
- package/dist/extraction/incremental-extractor.d.ts +21 -0
- package/dist/extraction/incremental-extractor.d.ts.map +1 -0
- package/dist/extraction/incremental-extractor.js +113 -0
- package/dist/extraction/incremental-extractor.js.map +1 -0
- package/dist/extraction/psp-detector.d.ts +3 -3
- package/dist/extraction/psp-detector.d.ts.map +1 -1
- package/dist/extraction/psp-detector.js +51 -3
- package/dist/extraction/psp-detector.js.map +1 -1
- package/dist/feedback/feedback-learner.d.ts.map +1 -1
- package/dist/feedback/feedback-learner.js.map +1 -1
- package/dist/feedback/feedback-repository.d.ts.map +1 -1
- package/dist/feedback/feedback-repository.js +2 -6
- package/dist/feedback/feedback-repository.js.map +1 -1
- package/dist/graph/entity-extractor.d.ts +3 -0
- package/dist/graph/entity-extractor.d.ts.map +1 -1
- package/dist/graph/entity-extractor.js +82 -10
- package/dist/graph/entity-extractor.js.map +1 -1
- package/dist/graph/graph-repository.d.ts +5 -5
- package/dist/graph/graph-repository.d.ts.map +1 -1
- package/dist/graph/graph-repository.js +12 -12
- package/dist/graph/graph-repository.js.map +1 -1
- package/dist/index.d.ts +18 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -3
- package/dist/index.js.map +1 -1
- package/dist/llm/errors.d.ts +8 -0
- package/dist/llm/errors.d.ts.map +1 -0
- package/dist/llm/errors.js +11 -0
- package/dist/llm/errors.js.map +1 -0
- package/dist/llm/index.d.ts +7 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +5 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/ollama-provider.d.ts +13 -0
- package/dist/llm/ollama-provider.d.ts.map +1 -0
- package/dist/llm/ollama-provider.js +130 -0
- package/dist/llm/ollama-provider.js.map +1 -0
- package/dist/llm/openai-provider.d.ts +15 -0
- package/dist/llm/openai-provider.d.ts.map +1 -0
- package/dist/llm/openai-provider.js +143 -0
- package/dist/llm/openai-provider.js.map +1 -0
- package/dist/llm/provider-factory.d.ts +3 -0
- package/dist/llm/provider-factory.d.ts.map +1 -0
- package/dist/llm/provider-factory.js +25 -0
- package/dist/llm/provider-factory.js.map +1 -0
- package/dist/llm/types.d.ts +50 -0
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/llm/types.js +2 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/provenance/provenance-repository.d.ts +23 -22
- package/dist/provenance/provenance-repository.d.ts.map +1 -1
- package/dist/provenance/provenance-repository.js +82 -44
- package/dist/provenance/provenance-repository.js.map +1 -1
- package/dist/search/hybrid-searcher.js +2 -2
- package/dist/search/hybrid-searcher.js.map +1 -1
- package/dist/search/knowledge-searcher.d.ts +10 -1
- package/dist/search/knowledge-searcher.d.ts.map +1 -1
- package/dist/search/knowledge-searcher.js +78 -30
- package/dist/search/knowledge-searcher.js.map +1 -1
- package/dist/search/reasoning-reranker.d.ts +59 -0
- package/dist/search/reasoning-reranker.d.ts.map +1 -0
- package/dist/search/reasoning-reranker.js +334 -0
- package/dist/search/reasoning-reranker.js.map +1 -0
- package/dist/search/semantic-searcher.d.ts.map +1 -1
- package/dist/search/semantic-searcher.js +3 -2
- package/dist/search/semantic-searcher.js.map +1 -1
- package/dist/services/knowledge-service.d.ts +4 -0
- package/dist/services/knowledge-service.d.ts.map +1 -1
- package/dist/services/knowledge-service.js +9 -2
- package/dist/services/knowledge-service.js.map +1 -1
- package/dist/storage/database.d.ts.map +1 -1
- package/dist/storage/database.js +60 -5
- package/dist/storage/database.js.map +1 -1
- package/dist/storage/knowledge-repository.d.ts +66 -1
- package/dist/storage/knowledge-repository.d.ts.map +1 -1
- package/dist/storage/knowledge-repository.js +131 -10
- package/dist/storage/knowledge-repository.js.map +1 -1
- package/dist/storage/migrations/007_spec_alignment.d.ts +3 -0
- package/dist/storage/migrations/007_spec_alignment.d.ts.map +1 -0
- package/dist/storage/migrations/007_spec_alignment.js +116 -0
- package/dist/storage/migrations/007_spec_alignment.js.map +1 -0
- package/dist/storage/migrations/008_knowledge_versioning.d.ts +15 -0
- package/dist/storage/migrations/008_knowledge_versioning.d.ts.map +1 -0
- package/dist/storage/migrations/008_knowledge_versioning.js +69 -0
- package/dist/storage/migrations/008_knowledge_versioning.js.map +1 -0
- package/dist/storage/migrations/009_extraction_metadata.d.ts +12 -0
- package/dist/storage/migrations/009_extraction_metadata.d.ts.map +1 -0
- package/dist/storage/migrations/009_extraction_metadata.js +39 -0
- package/dist/storage/migrations/009_extraction_metadata.js.map +1 -0
- package/dist/storage/migrator.d.ts +3 -1
- package/dist/storage/migrator.d.ts.map +1 -1
- package/dist/storage/migrator.js +2 -1
- package/dist/storage/migrator.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -9,6 +9,10 @@ export interface KnowledgeNote {
|
|
|
9
9
|
created_at: string;
|
|
10
10
|
updated_at: string | null;
|
|
11
11
|
content_hash: string | null;
|
|
12
|
+
valid_from: string | null;
|
|
13
|
+
deprecated: 0 | 1 | null;
|
|
14
|
+
extracted_at: string | null;
|
|
15
|
+
code_location_json: string | null;
|
|
12
16
|
}
|
|
13
17
|
export interface ExtractedPatternRow {
|
|
14
18
|
id: number;
|
|
@@ -69,6 +73,11 @@ export declare class KnowledgeRepository {
|
|
|
69
73
|
totalPairs: number;
|
|
70
74
|
patternsByType: Record<string, number>;
|
|
71
75
|
};
|
|
76
|
+
/**
|
|
77
|
+
* コードファイルパスで code_location_json を持つノートを検索する
|
|
78
|
+
* path パラメータを含む code_location_json が NULL でないノートを返す
|
|
79
|
+
*/
|
|
80
|
+
searchByCodeLocation(path: string): KnowledgeNote[];
|
|
72
81
|
/**
|
|
73
82
|
* ノートの埋め込みベクトルを保存する(upsert)
|
|
74
83
|
*/
|
|
@@ -84,7 +93,7 @@ export declare class KnowledgeRepository {
|
|
|
84
93
|
/**
|
|
85
94
|
* FTS5 rank付きでノートを検索する
|
|
86
95
|
*/
|
|
87
|
-
searchNotesWithRank(query: string, limit?: number): Array<{
|
|
96
|
+
searchNotesWithRank(query: string, limit?: number, includeDeprecated?: boolean): Array<{
|
|
88
97
|
note: KnowledgeNote;
|
|
89
98
|
rank: number;
|
|
90
99
|
}>;
|
|
@@ -96,6 +105,62 @@ export declare class KnowledgeRepository {
|
|
|
96
105
|
* content_hashが変更されて埋め込みが古くなったノートを取得する
|
|
97
106
|
*/
|
|
98
107
|
getNotesWithStaleEmbeddings(): KnowledgeNote[];
|
|
108
|
+
/**
|
|
109
|
+
* 指定プレフィックスで始まる file_path を持つノートを取得する
|
|
110
|
+
*/
|
|
111
|
+
getNotesWithPrefix(prefix: string, limit?: number): KnowledgeNote[];
|
|
112
|
+
/**
|
|
113
|
+
* 全ノートを取得する
|
|
114
|
+
*/
|
|
115
|
+
getAllNotes(): KnowledgeNote[];
|
|
116
|
+
/**
|
|
117
|
+
* 特定のソースプラグインで作成されたノートを取得する
|
|
118
|
+
* frontmatter_json 内の source_plugin フィールドで絞り込む
|
|
119
|
+
*/
|
|
120
|
+
getNotesBySourcePlugin(pluginId: string): KnowledgeNote[];
|
|
121
|
+
/**
|
|
122
|
+
* 指定IDリストのノートを一括削除する
|
|
123
|
+
*/
|
|
124
|
+
deleteNotesByIds(ids: number[]): number;
|
|
125
|
+
/**
|
|
126
|
+
* ノートの extracted_at タイムスタンプを更新する
|
|
127
|
+
*/
|
|
128
|
+
updateExtractedAt(noteId: number): void;
|
|
129
|
+
/**
|
|
130
|
+
* sourceUri プレフィックスでノートを取得する
|
|
131
|
+
* file_path が sourceUri として使われている(normalizer.ts の仕様)
|
|
132
|
+
*/
|
|
133
|
+
getNotesBySourceUriPrefix(prefix: string): KnowledgeNote[];
|
|
134
|
+
/**
|
|
135
|
+
* 既存リンクチェック後に note_links へ INSERT する(冪等)
|
|
136
|
+
* 同じ source/target ペアが既に存在する場合は false を返す
|
|
137
|
+
*/
|
|
138
|
+
saveNoteLinkIfNotExists(sourceNoteId: number, targetNoteId: number, linkType: string, similarity?: number): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* 指定ノートに関するリンクをすべて取得する(source または target)
|
|
141
|
+
*/
|
|
142
|
+
getLinksForNote(noteId: number): Array<{
|
|
143
|
+
id: number;
|
|
144
|
+
sourceNoteId: number;
|
|
145
|
+
targetNoteId: number;
|
|
146
|
+
linkType: string;
|
|
147
|
+
similarity: number | null;
|
|
148
|
+
createdAt: string;
|
|
149
|
+
}>;
|
|
150
|
+
/**
|
|
151
|
+
* サジェスト結果へのフィードバックを保存する
|
|
152
|
+
*/
|
|
153
|
+
saveSuggestFeedback(noteId: number, query: string, isUseful: boolean, context?: string): number;
|
|
154
|
+
/**
|
|
155
|
+
* 特定ノートのサジェストフィードバック一覧を取得する(新しい順)
|
|
156
|
+
*/
|
|
157
|
+
getSuggestFeedbackForNote(noteId: number): Array<{
|
|
158
|
+
id: number;
|
|
159
|
+
query: string;
|
|
160
|
+
isUseful: boolean;
|
|
161
|
+
context: string | null;
|
|
162
|
+
createdAt: string;
|
|
163
|
+
}>;
|
|
99
164
|
close(): void;
|
|
100
165
|
}
|
|
101
166
|
//# sourceMappingURL=knowledge-repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-repository.d.ts","sourceRoot":"","sources":["../../src/storage/knowledge-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"knowledge-repository.d.ts","sourceRoot":"","sources":["../../src/storage/knowledge-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValidationError, DatabaseError, KnowledgeNotFoundError
|
|
1
|
+
import { ValidationError, DatabaseError, KnowledgeNotFoundError } from "../errors.js";
|
|
2
2
|
import { createHash } from "crypto";
|
|
3
3
|
export class KnowledgeRepository {
|
|
4
4
|
db;
|
|
@@ -28,6 +28,7 @@ export class KnowledgeRepository {
|
|
|
28
28
|
const frontmatterJson = data.frontmatter && Object.keys(data.frontmatter).length > 0
|
|
29
29
|
? JSON.stringify(data.frontmatter)
|
|
30
30
|
: null;
|
|
31
|
+
const codeLocationJson = data.codeLocationJson ?? null;
|
|
31
32
|
if (existing) {
|
|
32
33
|
// Skip update if content hasn't changed
|
|
33
34
|
if (existing.content_hash === contentHash) {
|
|
@@ -36,20 +37,20 @@ export class KnowledgeRepository {
|
|
|
36
37
|
const stmt = this.db.prepare(`
|
|
37
38
|
UPDATE knowledge_notes
|
|
38
39
|
SET title = ?, content = ?, frontmatter_json = ?,
|
|
39
|
-
updated_at = ?, content_hash = ?
|
|
40
|
+
updated_at = ?, content_hash = ?, code_location_json = ?
|
|
40
41
|
WHERE id = ?
|
|
41
42
|
`);
|
|
42
|
-
stmt.run(data.title, data.content, frontmatterJson, now, contentHash, existing.id);
|
|
43
|
+
stmt.run(data.title, data.content, frontmatterJson, now, contentHash, codeLocationJson, existing.id);
|
|
43
44
|
return existing.id;
|
|
44
45
|
}
|
|
45
46
|
else {
|
|
46
47
|
const stmt = this.db.prepare(`
|
|
47
48
|
INSERT INTO knowledge_notes (
|
|
48
49
|
file_path, title, content, frontmatter_json,
|
|
49
|
-
created_at, updated_at, content_hash
|
|
50
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
50
|
+
created_at, updated_at, content_hash, code_location_json
|
|
51
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
51
52
|
`);
|
|
52
|
-
const info = stmt.run(data.filePath, data.title, data.content, frontmatterJson, data.createdAt || now, now, contentHash);
|
|
53
|
+
const info = stmt.run(data.filePath, data.title, data.content, frontmatterJson, data.createdAt || now, now, contentHash, codeLocationJson);
|
|
53
54
|
return Number(info.lastInsertRowid);
|
|
54
55
|
}
|
|
55
56
|
}
|
|
@@ -239,6 +240,19 @@ export class KnowledgeRepository {
|
|
|
239
240
|
}
|
|
240
241
|
return { totalNotes, totalPatterns, totalLinks, totalPairs, patternsByType };
|
|
241
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* コードファイルパスで code_location_json を持つノートを検索する
|
|
245
|
+
* path パラメータを含む code_location_json が NULL でないノートを返す
|
|
246
|
+
*/
|
|
247
|
+
searchByCodeLocation(path) {
|
|
248
|
+
const stmt = this.db.prepare(`
|
|
249
|
+
SELECT * FROM knowledge_notes
|
|
250
|
+
WHERE code_location_json IS NOT NULL
|
|
251
|
+
AND code_location_json LIKE ?
|
|
252
|
+
ORDER BY created_at DESC
|
|
253
|
+
`);
|
|
254
|
+
return stmt.all(`%${path}%`);
|
|
255
|
+
}
|
|
242
256
|
/**
|
|
243
257
|
* ノートの埋め込みベクトルを保存する(upsert)
|
|
244
258
|
*/
|
|
@@ -260,9 +274,11 @@ export class KnowledgeRepository {
|
|
|
260
274
|
// note_embeddings_vec (vec0) が存在する場合は手動で同期
|
|
261
275
|
// vec0 は ON CONFLICT をサポートしないため DELETE + INSERT を使う
|
|
262
276
|
try {
|
|
263
|
-
this.db.prepare("DELETE FROM note_embeddings_vec WHERE note_id = ?").run(noteId);
|
|
264
277
|
this.db
|
|
265
|
-
.prepare("
|
|
278
|
+
.prepare("DELETE FROM note_embeddings_vec WHERE note_id = CAST(? AS INTEGER)")
|
|
279
|
+
.run(noteId);
|
|
280
|
+
this.db
|
|
281
|
+
.prepare("INSERT INTO note_embeddings_vec(note_id, embedding) VALUES (CAST(? AS INTEGER), ?)")
|
|
266
282
|
.run(noteId, embBuf);
|
|
267
283
|
}
|
|
268
284
|
catch {
|
|
@@ -299,13 +315,15 @@ export class KnowledgeRepository {
|
|
|
299
315
|
/**
|
|
300
316
|
* FTS5 rank付きでノートを検索する
|
|
301
317
|
*/
|
|
302
|
-
searchNotesWithRank(query, limit = 50) {
|
|
318
|
+
searchNotesWithRank(query, limit = 50, includeDeprecated = false) {
|
|
319
|
+
const deprecatedFilter = includeDeprecated ? "" : "AND n.deprecated = 0";
|
|
303
320
|
try {
|
|
304
321
|
const stmt = this.db.prepare(`
|
|
305
322
|
SELECT n.*, fts.rank
|
|
306
323
|
FROM knowledge_notes n
|
|
307
324
|
JOIN knowledge_notes_fts fts ON n.id = fts.rowid
|
|
308
325
|
WHERE knowledge_notes_fts MATCH ?
|
|
326
|
+
${deprecatedFilter}
|
|
309
327
|
ORDER BY rank
|
|
310
328
|
LIMIT ?
|
|
311
329
|
`);
|
|
@@ -314,7 +332,8 @@ export class KnowledgeRepository {
|
|
|
314
332
|
}
|
|
315
333
|
catch {
|
|
316
334
|
// FTS5失敗時はLIKEフォールバック(不正なクエリ構文への耐性)
|
|
317
|
-
const
|
|
335
|
+
const deprecatedClause = includeDeprecated ? "" : "AND n.deprecated = 0";
|
|
336
|
+
const fallbackStmt = this.db.prepare(`SELECT n.* FROM knowledge_notes n WHERE (n.title LIKE ? OR n.content LIKE ?) ${deprecatedClause} LIMIT ?`);
|
|
318
337
|
const fallbackRows = fallbackStmt.all(`%${query}%`, `%${query}%`, limit);
|
|
319
338
|
return fallbackRows.map((row) => ({ note: row, rank: 0 }));
|
|
320
339
|
}
|
|
@@ -341,6 +360,108 @@ export class KnowledgeRepository {
|
|
|
341
360
|
`);
|
|
342
361
|
return stmt.all();
|
|
343
362
|
}
|
|
363
|
+
/**
|
|
364
|
+
* 指定プレフィックスで始まる file_path を持つノートを取得する
|
|
365
|
+
*/
|
|
366
|
+
getNotesWithPrefix(prefix, limit = 100) {
|
|
367
|
+
const stmt = this.db.prepare("SELECT * FROM knowledge_notes WHERE file_path LIKE ? ORDER BY created_at DESC LIMIT ?");
|
|
368
|
+
return stmt.all(`${prefix}%`, limit);
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* 全ノートを取得する
|
|
372
|
+
*/
|
|
373
|
+
getAllNotes() {
|
|
374
|
+
const stmt = this.db.prepare("SELECT * FROM knowledge_notes");
|
|
375
|
+
return stmt.all();
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* 特定のソースプラグインで作成されたノートを取得する
|
|
379
|
+
* frontmatter_json 内の source_plugin フィールドで絞り込む
|
|
380
|
+
*/
|
|
381
|
+
getNotesBySourcePlugin(pluginId) {
|
|
382
|
+
const stmt = this.db.prepare(`SELECT * FROM knowledge_notes WHERE frontmatter_json LIKE ?`);
|
|
383
|
+
return stmt.all(`%"source_plugin":"${pluginId}"%`);
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* 指定IDリストのノートを一括削除する
|
|
387
|
+
*/
|
|
388
|
+
deleteNotesByIds(ids) {
|
|
389
|
+
if (ids.length === 0)
|
|
390
|
+
return 0;
|
|
391
|
+
const placeholders = ids.map(() => "?").join(",");
|
|
392
|
+
const stmt = this.db.prepare(`DELETE FROM knowledge_notes WHERE id IN (${placeholders})`);
|
|
393
|
+
const info = stmt.run(...ids);
|
|
394
|
+
return info.changes;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* ノートの extracted_at タイムスタンプを更新する
|
|
398
|
+
*/
|
|
399
|
+
updateExtractedAt(noteId) {
|
|
400
|
+
const now = new Date().toISOString();
|
|
401
|
+
this.db.prepare("UPDATE knowledge_notes SET extracted_at = ? WHERE id = ?").run(now, noteId);
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* sourceUri プレフィックスでノートを取得する
|
|
405
|
+
* file_path が sourceUri として使われている(normalizer.ts の仕様)
|
|
406
|
+
*/
|
|
407
|
+
getNotesBySourceUriPrefix(prefix) {
|
|
408
|
+
const stmt = this.db.prepare("SELECT * FROM knowledge_notes WHERE file_path LIKE ? ORDER BY created_at ASC");
|
|
409
|
+
return stmt.all(`${prefix}%`);
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* 既存リンクチェック後に note_links へ INSERT する(冪等)
|
|
413
|
+
* 同じ source/target ペアが既に存在する場合は false を返す
|
|
414
|
+
*/
|
|
415
|
+
saveNoteLinkIfNotExists(sourceNoteId, targetNoteId, linkType, similarity) {
|
|
416
|
+
const existing = this.db
|
|
417
|
+
.prepare("SELECT id FROM note_links WHERE source_note_id = ? AND target_note_id = ?")
|
|
418
|
+
.get(sourceNoteId, targetNoteId);
|
|
419
|
+
if (existing)
|
|
420
|
+
return false;
|
|
421
|
+
const now = new Date().toISOString();
|
|
422
|
+
this.db
|
|
423
|
+
.prepare("INSERT INTO note_links (source_note_id, target_note_id, link_type, similarity, created_at) VALUES (?, ?, ?, ?, ?)")
|
|
424
|
+
.run(sourceNoteId, targetNoteId, linkType, similarity ?? null, now);
|
|
425
|
+
return true;
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* 指定ノートに関するリンクをすべて取得する(source または target)
|
|
429
|
+
*/
|
|
430
|
+
getLinksForNote(noteId) {
|
|
431
|
+
const stmt = this.db.prepare(`
|
|
432
|
+
SELECT id, source_note_id as sourceNoteId, target_note_id as targetNoteId,
|
|
433
|
+
link_type as linkType, similarity, created_at as createdAt
|
|
434
|
+
FROM note_links
|
|
435
|
+
WHERE source_note_id = ? OR target_note_id = ?
|
|
436
|
+
ORDER BY created_at DESC
|
|
437
|
+
`);
|
|
438
|
+
return stmt.all(noteId, noteId);
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* サジェスト結果へのフィードバックを保存する
|
|
442
|
+
*/
|
|
443
|
+
saveSuggestFeedback(noteId, query, isUseful, context) {
|
|
444
|
+
const now = new Date().toISOString();
|
|
445
|
+
const stmt = this.db.prepare(`
|
|
446
|
+
INSERT INTO suggest_feedback (note_id, query, is_useful, context, created_at)
|
|
447
|
+
VALUES (?, ?, ?, ?, ?)
|
|
448
|
+
`);
|
|
449
|
+
const info = stmt.run(noteId, query, isUseful ? 1 : 0, context ?? null, now);
|
|
450
|
+
return Number(info.lastInsertRowid);
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* 特定ノートのサジェストフィードバック一覧を取得する(新しい順)
|
|
454
|
+
*/
|
|
455
|
+
getSuggestFeedbackForNote(noteId) {
|
|
456
|
+
const stmt = this.db.prepare(`
|
|
457
|
+
SELECT id, query, is_useful as isUseful, context, created_at as createdAt
|
|
458
|
+
FROM suggest_feedback
|
|
459
|
+
WHERE note_id = ?
|
|
460
|
+
ORDER BY id DESC
|
|
461
|
+
`);
|
|
462
|
+
const rows = stmt.all(noteId);
|
|
463
|
+
return rows.map((row) => ({ ...row, isUseful: row.isUseful === 1 }));
|
|
464
|
+
}
|
|
344
465
|
close() {
|
|
345
466
|
this.db.close();
|
|
346
467
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-repository.js","sourceRoot":"","sources":["../../src/storage/knowledge-repository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"knowledge-repository.js","sourceRoot":"","sources":["../../src/storage/knowledge-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"007_spec_alignment.d.ts","sourceRoot":"","sources":["../../../src/storage/migrations/007_spec_alignment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA6GhD,eAAO,MAAM,YAAY,EAAE,SAS1B,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
const SPEC_ALIGNMENT_SQL = `
|
|
2
|
+
-- ① bi-temporal カラム改名 (relations)
|
|
3
|
+
ALTER TABLE relations RENAME COLUMN valid_from TO valid_at;
|
|
4
|
+
ALTER TABLE relations RENAME COLUMN valid_to TO invalid_at;
|
|
5
|
+
ALTER TABLE relations RENAME COLUMN superseded_at TO superseded_by;
|
|
6
|
+
ALTER TABLE relations ADD COLUMN expired_at TEXT;
|
|
7
|
+
ALTER TABLE relations ADD COLUMN source_event_id TEXT;
|
|
8
|
+
|
|
9
|
+
-- bi-temporal カラム改名 (observations)
|
|
10
|
+
ALTER TABLE observations RENAME COLUMN valid_from TO valid_at;
|
|
11
|
+
ALTER TABLE observations RENAME COLUMN valid_to TO invalid_at;
|
|
12
|
+
ALTER TABLE observations RENAME COLUMN superseded_at TO superseded_by;
|
|
13
|
+
ALTER TABLE observations ADD COLUMN expired_at TEXT;
|
|
14
|
+
ALTER TABLE observations ADD COLUMN source_event_id TEXT;
|
|
15
|
+
|
|
16
|
+
-- VIEW 再作成
|
|
17
|
+
DROP VIEW IF EXISTS active_relations;
|
|
18
|
+
DROP VIEW IF EXISTS active_observations;
|
|
19
|
+
CREATE VIEW active_relations AS
|
|
20
|
+
SELECT * FROM relations WHERE (invalid_at IS NULL) AND (expired_at IS NULL);
|
|
21
|
+
CREATE VIEW active_observations AS
|
|
22
|
+
SELECT * FROM observations WHERE (invalid_at IS NULL) AND (expired_at IS NULL);
|
|
23
|
+
|
|
24
|
+
-- インデックス再作成
|
|
25
|
+
DROP INDEX IF EXISTS idx_relations_valid_to;
|
|
26
|
+
DROP INDEX IF EXISTS idx_relations_superseded;
|
|
27
|
+
DROP INDEX IF EXISTS idx_observations_valid_to;
|
|
28
|
+
DROP INDEX IF EXISTS idx_observations_superseded;
|
|
29
|
+
CREATE INDEX idx_relations_invalid_at ON relations(invalid_at);
|
|
30
|
+
CREATE INDEX idx_relations_superseded_by ON relations(superseded_by);
|
|
31
|
+
CREATE INDEX idx_observations_invalid_at ON observations(invalid_at);
|
|
32
|
+
CREATE INDEX idx_observations_superseded_by ON observations(superseded_by);
|
|
33
|
+
|
|
34
|
+
-- ② memory_entries scope
|
|
35
|
+
ALTER TABLE memory_entries ADD COLUMN scope TEXT DEFAULT 'project';
|
|
36
|
+
|
|
37
|
+
-- ③ provenance_links (新規)
|
|
38
|
+
CREATE TABLE provenance_links (
|
|
39
|
+
id TEXT PRIMARY KEY,
|
|
40
|
+
from_entity_uri TEXT NOT NULL,
|
|
41
|
+
to_entity_uri TEXT NOT NULL,
|
|
42
|
+
relation TEXT NOT NULL,
|
|
43
|
+
created_at TEXT NOT NULL
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
-- ④ provenance テーブル再構築
|
|
47
|
+
CREATE TABLE provenance_new (
|
|
48
|
+
id TEXT PRIMARY KEY,
|
|
49
|
+
entity_uri TEXT NOT NULL,
|
|
50
|
+
activity_type TEXT NOT NULL,
|
|
51
|
+
agent TEXT,
|
|
52
|
+
source_uri TEXT,
|
|
53
|
+
generated_at TEXT NOT NULL,
|
|
54
|
+
metadata TEXT
|
|
55
|
+
);
|
|
56
|
+
INSERT INTO provenance_new (id, entity_uri, activity_type, agent, source_uri, generated_at, metadata)
|
|
57
|
+
SELECT CAST(id AS TEXT), entity_uri, activity_type, agent,
|
|
58
|
+
COALESCE(input_uris, ''), started_at, metadata_json
|
|
59
|
+
FROM provenance;
|
|
60
|
+
DROP TABLE provenance;
|
|
61
|
+
ALTER TABLE provenance_new RENAME TO provenance;
|
|
62
|
+
CREATE INDEX idx_provenance_entity ON provenance(entity_uri);
|
|
63
|
+
CREATE INDEX idx_provenance_activity ON provenance(activity_type);
|
|
64
|
+
|
|
65
|
+
-- ⑤ file_timeline 再構築
|
|
66
|
+
CREATE TABLE file_timeline_new (
|
|
67
|
+
file_path TEXT NOT NULL,
|
|
68
|
+
event_id TEXT NOT NULL,
|
|
69
|
+
changed_at TEXT NOT NULL,
|
|
70
|
+
change_type TEXT NOT NULL
|
|
71
|
+
);
|
|
72
|
+
INSERT INTO file_timeline_new (file_path, event_id, changed_at, change_type)
|
|
73
|
+
SELECT file_path, CAST(COALESCE(event_id, '') AS TEXT), occurred_at, event_type
|
|
74
|
+
FROM file_timeline;
|
|
75
|
+
DROP TABLE file_timeline;
|
|
76
|
+
ALTER TABLE file_timeline_new RENAME TO file_timeline;
|
|
77
|
+
CREATE INDEX idx_file_timeline_path ON file_timeline(file_path);
|
|
78
|
+
CREATE INDEX idx_file_timeline_changed ON file_timeline(changed_at);
|
|
79
|
+
|
|
80
|
+
-- ⑥ snapshots 再構築
|
|
81
|
+
CREATE TABLE snapshots_new (
|
|
82
|
+
id TEXT PRIMARY KEY,
|
|
83
|
+
snapshot_at TEXT NOT NULL,
|
|
84
|
+
entity_count INTEGER,
|
|
85
|
+
event_count INTEGER,
|
|
86
|
+
metadata TEXT
|
|
87
|
+
);
|
|
88
|
+
INSERT INTO snapshots_new (id, snapshot_at, entity_count, event_count, metadata)
|
|
89
|
+
SELECT CAST(id AS TEXT), snapshot_at, entity_count, event_count, metadata_json
|
|
90
|
+
FROM snapshots;
|
|
91
|
+
DROP TABLE snapshots;
|
|
92
|
+
ALTER TABLE snapshots_new RENAME TO snapshots;
|
|
93
|
+
`;
|
|
94
|
+
const SPEC_ALIGNMENT_DOWN_SQL = `
|
|
95
|
+
-- provenance_links 削除
|
|
96
|
+
DROP TABLE IF EXISTS provenance_links;
|
|
97
|
+
|
|
98
|
+
-- VIEWの再作成(元の条件)
|
|
99
|
+
DROP VIEW IF EXISTS active_relations;
|
|
100
|
+
DROP VIEW IF EXISTS active_observations;
|
|
101
|
+
CREATE VIEW active_relations AS
|
|
102
|
+
SELECT * FROM relations WHERE invalid_at IS NULL AND superseded_by IS NULL;
|
|
103
|
+
CREATE VIEW active_observations AS
|
|
104
|
+
SELECT * FROM observations WHERE invalid_at IS NULL AND superseded_by IS NULL;
|
|
105
|
+
`;
|
|
106
|
+
export const migration007 = {
|
|
107
|
+
version: 9,
|
|
108
|
+
name: "spec_alignment",
|
|
109
|
+
up: (db) => {
|
|
110
|
+
db.exec(SPEC_ALIGNMENT_SQL);
|
|
111
|
+
},
|
|
112
|
+
down: (db) => {
|
|
113
|
+
db.exec(SPEC_ALIGNMENT_DOWN_SQL);
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=007_spec_alignment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"007_spec_alignment.js","sourceRoot":"","sources":["../../../src/storage/migrations/007_spec_alignment.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4F1B,CAAC;AAEF,MAAM,uBAAuB,GAAG;;;;;;;;;;;CAW/B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,gBAAgB;IACtB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;QACT,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QACX,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACnC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Migration } from "../migrator.js";
|
|
2
|
+
/**
|
|
3
|
+
* Migration 008: Knowledge Versioning
|
|
4
|
+
*
|
|
5
|
+
* Adds versioning and deprecation support to knowledge tables:
|
|
6
|
+
* - knowledge_notes: version tracking, supersedes (FK), valid_from, deprecated flag
|
|
7
|
+
* - extracted_patterns: deprecated flag
|
|
8
|
+
* - problem_solution_pairs: version tracking, supersedes, deprecated flag
|
|
9
|
+
*
|
|
10
|
+
* Naming note:
|
|
11
|
+
* - knowledge_notes uses `valid_from` (start point) vs graph's `valid_at` (point in time)
|
|
12
|
+
* - knowledge_notes uses `supersedes` (INTEGER FK) vs graph's `superseded_by` (TEXT, legacy)
|
|
13
|
+
*/
|
|
14
|
+
export declare const migration008: Migration;
|
|
15
|
+
//# sourceMappingURL=008_knowledge_versioning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"008_knowledge_versioning.d.ts","sourceRoot":"","sources":["../../../src/storage/migrations/008_knowledge_versioning.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,SA8D1B,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 008: Knowledge Versioning
|
|
3
|
+
*
|
|
4
|
+
* Adds versioning and deprecation support to knowledge tables:
|
|
5
|
+
* - knowledge_notes: version tracking, supersedes (FK), valid_from, deprecated flag
|
|
6
|
+
* - extracted_patterns: deprecated flag
|
|
7
|
+
* - problem_solution_pairs: version tracking, supersedes, deprecated flag
|
|
8
|
+
*
|
|
9
|
+
* Naming note:
|
|
10
|
+
* - knowledge_notes uses `valid_from` (start point) vs graph's `valid_at` (point in time)
|
|
11
|
+
* - knowledge_notes uses `supersedes` (INTEGER FK) vs graph's `superseded_by` (TEXT, legacy)
|
|
12
|
+
*/
|
|
13
|
+
export const migration008 = {
|
|
14
|
+
version: 10,
|
|
15
|
+
name: "knowledge_versioning",
|
|
16
|
+
up: (db) => {
|
|
17
|
+
// ① knowledge_notes: versioning and deprecation columns
|
|
18
|
+
db.exec(`
|
|
19
|
+
ALTER TABLE knowledge_notes ADD COLUMN version INTEGER DEFAULT 1;
|
|
20
|
+
ALTER TABLE knowledge_notes ADD COLUMN supersedes INTEGER REFERENCES knowledge_notes(id) ON DELETE SET NULL;
|
|
21
|
+
ALTER TABLE knowledge_notes ADD COLUMN valid_from TEXT;
|
|
22
|
+
ALTER TABLE knowledge_notes ADD COLUMN deprecated INTEGER DEFAULT 0 CHECK(deprecated IN (0, 1));
|
|
23
|
+
ALTER TABLE knowledge_notes ADD COLUMN deprecation_reason TEXT;
|
|
24
|
+
`);
|
|
25
|
+
// ② extracted_patterns: deprecation columns
|
|
26
|
+
db.exec(`
|
|
27
|
+
ALTER TABLE extracted_patterns ADD COLUMN deprecated INTEGER DEFAULT 0 CHECK(deprecated IN (0, 1));
|
|
28
|
+
ALTER TABLE extracted_patterns ADD COLUMN deprecation_reason TEXT;
|
|
29
|
+
`);
|
|
30
|
+
// ③ problem_solution_pairs: versioning and deprecation columns
|
|
31
|
+
// NOTE: supersedes is TEXT here — PSPs benefit from free-form references (not self-FK)
|
|
32
|
+
db.exec(`
|
|
33
|
+
ALTER TABLE problem_solution_pairs ADD COLUMN version INTEGER DEFAULT 1;
|
|
34
|
+
ALTER TABLE problem_solution_pairs ADD COLUMN supersedes TEXT;
|
|
35
|
+
ALTER TABLE problem_solution_pairs ADD COLUMN deprecated INTEGER DEFAULT 0 CHECK(deprecated IN (0, 1));
|
|
36
|
+
ALTER TABLE problem_solution_pairs ADD COLUMN deprecation_reason TEXT;
|
|
37
|
+
`);
|
|
38
|
+
// ④ Backfill valid_from with created_at for existing data (same pattern as 005b_bitemporal)
|
|
39
|
+
db.exec(`
|
|
40
|
+
UPDATE knowledge_notes SET valid_from = created_at WHERE valid_from IS NULL;
|
|
41
|
+
`);
|
|
42
|
+
// ⑤ Indexes for common query patterns
|
|
43
|
+
db.exec(`
|
|
44
|
+
CREATE INDEX idx_knowledge_notes_deprecated ON knowledge_notes(deprecated);
|
|
45
|
+
CREATE INDEX idx_knowledge_notes_valid_from ON knowledge_notes(valid_from);
|
|
46
|
+
CREATE INDEX idx_ps_pairs_deprecated ON problem_solution_pairs(deprecated);
|
|
47
|
+
`);
|
|
48
|
+
// ⑥ Views (same pattern as active_relations / active_observations)
|
|
49
|
+
db.exec(`
|
|
50
|
+
CREATE VIEW active_knowledge_notes AS
|
|
51
|
+
SELECT * FROM knowledge_notes WHERE deprecated = 0;
|
|
52
|
+
|
|
53
|
+
CREATE VIEW active_problem_solution_pairs AS
|
|
54
|
+
SELECT * FROM problem_solution_pairs WHERE deprecated = 0;
|
|
55
|
+
`);
|
|
56
|
+
},
|
|
57
|
+
down: (db) => {
|
|
58
|
+
// Drop views and indexes only. Columns are kept (same pattern as 005a_events_layer)
|
|
59
|
+
// to avoid FTS5 trigger and FK constraint complications with table recreation.
|
|
60
|
+
db.exec(`
|
|
61
|
+
DROP VIEW IF EXISTS active_knowledge_notes;
|
|
62
|
+
DROP VIEW IF EXISTS active_problem_solution_pairs;
|
|
63
|
+
DROP INDEX IF EXISTS idx_knowledge_notes_deprecated;
|
|
64
|
+
DROP INDEX IF EXISTS idx_knowledge_notes_valid_from;
|
|
65
|
+
DROP INDEX IF EXISTS idx_ps_pairs_deprecated;
|
|
66
|
+
`);
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=008_knowledge_versioning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"008_knowledge_versioning.js","sourceRoot":"","sources":["../../../src/storage/migrations/008_knowledge_versioning.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,sBAAsB;IAE5B,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,wDAAwD;QACxD,EAAE,CAAC,IAAI,CAAC;;;;;;KAMP,CAAC,CAAC;QAEH,4CAA4C;QAC5C,EAAE,CAAC,IAAI,CAAC;;;KAGP,CAAC,CAAC;QAEH,+DAA+D;QAC/D,uFAAuF;QACvF,EAAE,CAAC,IAAI,CAAC;;;;;KAKP,CAAC,CAAC;QAEH,4FAA4F;QAC5F,EAAE,CAAC,IAAI,CAAC;;KAEP,CAAC,CAAC;QAEH,sCAAsC;QACtC,EAAE,CAAC,IAAI,CAAC;;;;KAIP,CAAC,CAAC;QAEH,mEAAmE;QACnE,EAAE,CAAC,IAAI,CAAC;;;;;;KAMP,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC9B,oFAAoF;QACpF,+EAA+E;QAC/E,EAAE,CAAC,IAAI,CAAC;;;;;;KAMP,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Migration } from "../migrator.js";
|
|
2
|
+
/**
|
|
3
|
+
* Migration 009: Extraction Metadata
|
|
4
|
+
*
|
|
5
|
+
* Adds extraction metadata columns to knowledge_notes:
|
|
6
|
+
* - code_location_json: JSON blob for code location info (file, line, etc.)
|
|
7
|
+
* - extracted_at: timestamp when the note was extracted
|
|
8
|
+
*
|
|
9
|
+
* Also adds suggest_feedback table for recording user feedback on suggestions.
|
|
10
|
+
*/
|
|
11
|
+
export declare const migration009: Migration;
|
|
12
|
+
//# sourceMappingURL=009_extraction_metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"009_extraction_metadata.d.ts","sourceRoot":"","sources":["../../../src/storage/migrations/009_extraction_metadata.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,SA+B1B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 009: Extraction Metadata
|
|
3
|
+
*
|
|
4
|
+
* Adds extraction metadata columns to knowledge_notes:
|
|
5
|
+
* - code_location_json: JSON blob for code location info (file, line, etc.)
|
|
6
|
+
* - extracted_at: timestamp when the note was extracted
|
|
7
|
+
*
|
|
8
|
+
* Also adds suggest_feedback table for recording user feedback on suggestions.
|
|
9
|
+
*/
|
|
10
|
+
export const migration009 = {
|
|
11
|
+
version: 11,
|
|
12
|
+
name: "extraction_metadata",
|
|
13
|
+
up: (db) => {
|
|
14
|
+
// ① knowledge_notes: extraction metadata columns
|
|
15
|
+
db.exec(`
|
|
16
|
+
ALTER TABLE knowledge_notes ADD COLUMN code_location_json TEXT;
|
|
17
|
+
ALTER TABLE knowledge_notes ADD COLUMN extracted_at TEXT;
|
|
18
|
+
`);
|
|
19
|
+
// ② suggest_feedback: user feedback on suggestions
|
|
20
|
+
db.exec(`
|
|
21
|
+
CREATE TABLE IF NOT EXISTS suggest_feedback (
|
|
22
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
23
|
+
note_id INTEGER NOT NULL,
|
|
24
|
+
query TEXT NOT NULL,
|
|
25
|
+
is_useful INTEGER NOT NULL,
|
|
26
|
+
context TEXT,
|
|
27
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
28
|
+
FOREIGN KEY (note_id) REFERENCES knowledge_notes(id)
|
|
29
|
+
);
|
|
30
|
+
`);
|
|
31
|
+
},
|
|
32
|
+
down: (db) => {
|
|
33
|
+
// Drop suggest_feedback table
|
|
34
|
+
db.exec(`DROP TABLE IF EXISTS suggest_feedback;`);
|
|
35
|
+
// Columns cannot be dropped in SQLite without recreating the table.
|
|
36
|
+
// Same pattern as other migrations: keep columns to avoid FK/FTS complications.
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=009_extraction_metadata.js.map
|