@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.
Files changed (107) hide show
  1. package/dist/config/config-loader.d.ts +22 -2
  2. package/dist/config/config-loader.d.ts.map +1 -1
  3. package/dist/config/config-loader.js +50 -15
  4. package/dist/config/config-loader.js.map +1 -1
  5. package/dist/embedding/model-downloader.d.ts.map +1 -1
  6. package/dist/embedding/model-downloader.js +31 -12
  7. package/dist/embedding/model-downloader.js.map +1 -1
  8. package/dist/extraction/causal-link-detector.d.ts +16 -0
  9. package/dist/extraction/causal-link-detector.d.ts.map +1 -0
  10. package/dist/extraction/causal-link-detector.js +142 -0
  11. package/dist/extraction/causal-link-detector.js.map +1 -0
  12. package/dist/extraction/incremental-extractor.d.ts +21 -0
  13. package/dist/extraction/incremental-extractor.d.ts.map +1 -0
  14. package/dist/extraction/incremental-extractor.js +113 -0
  15. package/dist/extraction/incremental-extractor.js.map +1 -0
  16. package/dist/extraction/psp-detector.d.ts +3 -3
  17. package/dist/extraction/psp-detector.d.ts.map +1 -1
  18. package/dist/extraction/psp-detector.js +51 -3
  19. package/dist/extraction/psp-detector.js.map +1 -1
  20. package/dist/feedback/feedback-learner.d.ts.map +1 -1
  21. package/dist/feedback/feedback-learner.js.map +1 -1
  22. package/dist/feedback/feedback-repository.d.ts.map +1 -1
  23. package/dist/feedback/feedback-repository.js +2 -6
  24. package/dist/feedback/feedback-repository.js.map +1 -1
  25. package/dist/graph/entity-extractor.d.ts +3 -0
  26. package/dist/graph/entity-extractor.d.ts.map +1 -1
  27. package/dist/graph/entity-extractor.js +82 -10
  28. package/dist/graph/entity-extractor.js.map +1 -1
  29. package/dist/graph/graph-repository.d.ts +5 -5
  30. package/dist/graph/graph-repository.d.ts.map +1 -1
  31. package/dist/graph/graph-repository.js +12 -12
  32. package/dist/graph/graph-repository.js.map +1 -1
  33. package/dist/index.d.ts +18 -3
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +28 -3
  36. package/dist/index.js.map +1 -1
  37. package/dist/llm/errors.d.ts +8 -0
  38. package/dist/llm/errors.d.ts.map +1 -0
  39. package/dist/llm/errors.js +11 -0
  40. package/dist/llm/errors.js.map +1 -0
  41. package/dist/llm/index.d.ts +7 -0
  42. package/dist/llm/index.d.ts.map +1 -0
  43. package/dist/llm/index.js +5 -0
  44. package/dist/llm/index.js.map +1 -0
  45. package/dist/llm/ollama-provider.d.ts +13 -0
  46. package/dist/llm/ollama-provider.d.ts.map +1 -0
  47. package/dist/llm/ollama-provider.js +130 -0
  48. package/dist/llm/ollama-provider.js.map +1 -0
  49. package/dist/llm/openai-provider.d.ts +15 -0
  50. package/dist/llm/openai-provider.d.ts.map +1 -0
  51. package/dist/llm/openai-provider.js +143 -0
  52. package/dist/llm/openai-provider.js.map +1 -0
  53. package/dist/llm/provider-factory.d.ts +3 -0
  54. package/dist/llm/provider-factory.d.ts.map +1 -0
  55. package/dist/llm/provider-factory.js +25 -0
  56. package/dist/llm/provider-factory.js.map +1 -0
  57. package/dist/llm/types.d.ts +50 -0
  58. package/dist/llm/types.d.ts.map +1 -0
  59. package/dist/llm/types.js +2 -0
  60. package/dist/llm/types.js.map +1 -0
  61. package/dist/provenance/provenance-repository.d.ts +23 -22
  62. package/dist/provenance/provenance-repository.d.ts.map +1 -1
  63. package/dist/provenance/provenance-repository.js +82 -44
  64. package/dist/provenance/provenance-repository.js.map +1 -1
  65. package/dist/search/hybrid-searcher.js +2 -2
  66. package/dist/search/hybrid-searcher.js.map +1 -1
  67. package/dist/search/knowledge-searcher.d.ts +10 -1
  68. package/dist/search/knowledge-searcher.d.ts.map +1 -1
  69. package/dist/search/knowledge-searcher.js +78 -30
  70. package/dist/search/knowledge-searcher.js.map +1 -1
  71. package/dist/search/reasoning-reranker.d.ts +59 -0
  72. package/dist/search/reasoning-reranker.d.ts.map +1 -0
  73. package/dist/search/reasoning-reranker.js +334 -0
  74. package/dist/search/reasoning-reranker.js.map +1 -0
  75. package/dist/search/semantic-searcher.d.ts.map +1 -1
  76. package/dist/search/semantic-searcher.js +3 -2
  77. package/dist/search/semantic-searcher.js.map +1 -1
  78. package/dist/services/knowledge-service.d.ts +4 -0
  79. package/dist/services/knowledge-service.d.ts.map +1 -1
  80. package/dist/services/knowledge-service.js +9 -2
  81. package/dist/services/knowledge-service.js.map +1 -1
  82. package/dist/storage/database.d.ts.map +1 -1
  83. package/dist/storage/database.js +60 -5
  84. package/dist/storage/database.js.map +1 -1
  85. package/dist/storage/knowledge-repository.d.ts +66 -1
  86. package/dist/storage/knowledge-repository.d.ts.map +1 -1
  87. package/dist/storage/knowledge-repository.js +131 -10
  88. package/dist/storage/knowledge-repository.js.map +1 -1
  89. package/dist/storage/migrations/007_spec_alignment.d.ts +3 -0
  90. package/dist/storage/migrations/007_spec_alignment.d.ts.map +1 -0
  91. package/dist/storage/migrations/007_spec_alignment.js +116 -0
  92. package/dist/storage/migrations/007_spec_alignment.js.map +1 -0
  93. package/dist/storage/migrations/008_knowledge_versioning.d.ts +15 -0
  94. package/dist/storage/migrations/008_knowledge_versioning.d.ts.map +1 -0
  95. package/dist/storage/migrations/008_knowledge_versioning.js +69 -0
  96. package/dist/storage/migrations/008_knowledge_versioning.js.map +1 -0
  97. package/dist/storage/migrations/009_extraction_metadata.d.ts +12 -0
  98. package/dist/storage/migrations/009_extraction_metadata.d.ts.map +1 -0
  99. package/dist/storage/migrations/009_extraction_metadata.js +39 -0
  100. package/dist/storage/migrations/009_extraction_metadata.js.map +1 -0
  101. package/dist/storage/migrator.d.ts +3 -1
  102. package/dist/storage/migrator.d.ts.map +1 -1
  103. package/dist/storage/migrator.js +2 -1
  104. package/dist/storage/migrator.js.map +1 -1
  105. package/dist/types.d.ts +2 -0
  106. package/dist/types.d.ts.map +1 -1
  107. 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":"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"}
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, } from "../errors.js";
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("INSERT INTO note_embeddings_vec(note_id, embedding) VALUES (?, ?)")
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 fallbackStmt = this.db.prepare(`SELECT n.* FROM knowledge_notes n WHERE n.title LIKE ? OR n.content LIKE ? LIMIT ?`);
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,3 @@
1
+ import type { Migration } from "../migrator.js";
2
+ export declare const migration007: Migration;
3
+ //# sourceMappingURL=007_spec_alignment.d.ts.map
@@ -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