@knowledgine/core 0.2.1 → 0.4.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 (130) hide show
  1. package/dist/agents/index.d.ts +7 -0
  2. package/dist/agents/index.d.ts.map +1 -0
  3. package/dist/agents/index.js +4 -0
  4. package/dist/agents/index.js.map +1 -0
  5. package/dist/agents/observer-agent.d.ts +31 -0
  6. package/dist/agents/observer-agent.d.ts.map +1 -0
  7. package/dist/agents/observer-agent.js +164 -0
  8. package/dist/agents/observer-agent.js.map +1 -0
  9. package/dist/agents/reflector-agent.d.ts +66 -0
  10. package/dist/agents/reflector-agent.d.ts.map +1 -0
  11. package/dist/agents/reflector-agent.js +420 -0
  12. package/dist/agents/reflector-agent.js.map +1 -0
  13. package/dist/agents/types.d.ts +47 -0
  14. package/dist/agents/types.d.ts.map +1 -0
  15. package/dist/agents/types.js +2 -0
  16. package/dist/agents/types.js.map +1 -0
  17. package/dist/agents/vector-classification-rules.d.ts +14 -0
  18. package/dist/agents/vector-classification-rules.d.ts.map +1 -0
  19. package/dist/agents/vector-classification-rules.js +229 -0
  20. package/dist/agents/vector-classification-rules.js.map +1 -0
  21. package/dist/config/config-loader.d.ts +13 -0
  22. package/dist/config/config-loader.d.ts.map +1 -1
  23. package/dist/config/config-loader.js +19 -11
  24. package/dist/config/config-loader.js.map +1 -1
  25. package/dist/extraction/causal-link-detector.d.ts +16 -0
  26. package/dist/extraction/causal-link-detector.d.ts.map +1 -0
  27. package/dist/extraction/causal-link-detector.js +142 -0
  28. package/dist/extraction/causal-link-detector.js.map +1 -0
  29. package/dist/extraction/incremental-extractor.d.ts +21 -0
  30. package/dist/extraction/incremental-extractor.d.ts.map +1 -0
  31. package/dist/extraction/incremental-extractor.js +113 -0
  32. package/dist/extraction/incremental-extractor.js.map +1 -0
  33. package/dist/extraction/psp-detector.d.ts +3 -3
  34. package/dist/extraction/psp-detector.d.ts.map +1 -1
  35. package/dist/extraction/psp-detector.js +51 -3
  36. package/dist/extraction/psp-detector.js.map +1 -1
  37. package/dist/graph/entity-extractor.d.ts +1 -0
  38. package/dist/graph/entity-extractor.d.ts.map +1 -1
  39. package/dist/graph/entity-extractor.js +36 -2
  40. package/dist/graph/entity-extractor.js.map +1 -1
  41. package/dist/graph/graph-repository.d.ts +37 -5
  42. package/dist/graph/graph-repository.d.ts.map +1 -1
  43. package/dist/graph/graph-repository.js +68 -12
  44. package/dist/graph/graph-repository.js.map +1 -1
  45. package/dist/graph/temporal-query.d.ts +69 -0
  46. package/dist/graph/temporal-query.d.ts.map +1 -0
  47. package/dist/graph/temporal-query.js +172 -0
  48. package/dist/graph/temporal-query.js.map +1 -0
  49. package/dist/index.d.ts +29 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +25 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/llm/errors.d.ts +8 -0
  54. package/dist/llm/errors.d.ts.map +1 -0
  55. package/dist/llm/errors.js +11 -0
  56. package/dist/llm/errors.js.map +1 -0
  57. package/dist/llm/index.d.ts +7 -0
  58. package/dist/llm/index.d.ts.map +1 -0
  59. package/dist/llm/index.js +5 -0
  60. package/dist/llm/index.js.map +1 -0
  61. package/dist/llm/ollama-provider.d.ts +13 -0
  62. package/dist/llm/ollama-provider.d.ts.map +1 -0
  63. package/dist/llm/ollama-provider.js +130 -0
  64. package/dist/llm/ollama-provider.js.map +1 -0
  65. package/dist/llm/openai-provider.d.ts +15 -0
  66. package/dist/llm/openai-provider.d.ts.map +1 -0
  67. package/dist/llm/openai-provider.js +143 -0
  68. package/dist/llm/openai-provider.js.map +1 -0
  69. package/dist/llm/provider-factory.d.ts +3 -0
  70. package/dist/llm/provider-factory.d.ts.map +1 -0
  71. package/dist/llm/provider-factory.js +25 -0
  72. package/dist/llm/provider-factory.js.map +1 -0
  73. package/dist/llm/types.d.ts +50 -0
  74. package/dist/llm/types.d.ts.map +1 -0
  75. package/dist/llm/types.js +2 -0
  76. package/dist/llm/types.js.map +1 -0
  77. package/dist/provenance/provenance-repository.d.ts +23 -22
  78. package/dist/provenance/provenance-repository.d.ts.map +1 -1
  79. package/dist/provenance/provenance-repository.js +82 -44
  80. package/dist/provenance/provenance-repository.js.map +1 -1
  81. package/dist/search/knowledge-searcher.d.ts +12 -1
  82. package/dist/search/knowledge-searcher.d.ts.map +1 -1
  83. package/dist/search/knowledge-searcher.js +93 -31
  84. package/dist/search/knowledge-searcher.js.map +1 -1
  85. package/dist/search/query-classifier.d.ts +17 -0
  86. package/dist/search/query-classifier.d.ts.map +1 -0
  87. package/dist/search/query-classifier.js +63 -0
  88. package/dist/search/query-classifier.js.map +1 -0
  89. package/dist/search/query-orchestrator.d.ts +39 -0
  90. package/dist/search/query-orchestrator.d.ts.map +1 -0
  91. package/dist/search/query-orchestrator.js +239 -0
  92. package/dist/search/query-orchestrator.js.map +1 -0
  93. package/dist/search/reasoning-reranker.d.ts +59 -0
  94. package/dist/search/reasoning-reranker.d.ts.map +1 -0
  95. package/dist/search/reasoning-reranker.js +334 -0
  96. package/dist/search/reasoning-reranker.js.map +1 -0
  97. package/dist/services/knowledge-service.d.ts +6 -0
  98. package/dist/services/knowledge-service.d.ts.map +1 -1
  99. package/dist/services/knowledge-service.js +7 -2
  100. package/dist/services/knowledge-service.js.map +1 -1
  101. package/dist/storage/database.d.ts.map +1 -1
  102. package/dist/storage/database.js +46 -6
  103. package/dist/storage/database.js.map +1 -1
  104. package/dist/storage/knowledge-repository.d.ts +65 -1
  105. package/dist/storage/knowledge-repository.d.ts.map +1 -1
  106. package/dist/storage/knowledge-repository.js +163 -9
  107. package/dist/storage/knowledge-repository.js.map +1 -1
  108. package/dist/storage/migrations/007_spec_alignment.d.ts +3 -0
  109. package/dist/storage/migrations/007_spec_alignment.d.ts.map +1 -0
  110. package/dist/storage/migrations/007_spec_alignment.js +116 -0
  111. package/dist/storage/migrations/007_spec_alignment.js.map +1 -0
  112. package/dist/storage/migrations/008_knowledge_versioning.d.ts +15 -0
  113. package/dist/storage/migrations/008_knowledge_versioning.d.ts.map +1 -0
  114. package/dist/storage/migrations/008_knowledge_versioning.js +69 -0
  115. package/dist/storage/migrations/008_knowledge_versioning.js.map +1 -0
  116. package/dist/storage/migrations/009_extraction_metadata.d.ts +12 -0
  117. package/dist/storage/migrations/009_extraction_metadata.d.ts.map +1 -0
  118. package/dist/storage/migrations/009_extraction_metadata.js +39 -0
  119. package/dist/storage/migrations/009_extraction_metadata.js.map +1 -0
  120. package/dist/storage/migrations/010_memory_protocol.d.ts +12 -0
  121. package/dist/storage/migrations/010_memory_protocol.d.ts.map +1 -0
  122. package/dist/storage/migrations/010_memory_protocol.js +26 -0
  123. package/dist/storage/migrations/010_memory_protocol.js.map +1 -0
  124. package/dist/storage/migrator.d.ts +3 -1
  125. package/dist/storage/migrator.d.ts.map +1 -1
  126. package/dist/storage/migrator.js +2 -1
  127. package/dist/storage/migrator.js.map +1 -1
  128. package/dist/types.d.ts +2 -0
  129. package/dist/types.d.ts.map +1 -1
  130. package/package.json +2 -2
@@ -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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"}
@@ -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
  */
@@ -301,23 +315,35 @@ export class KnowledgeRepository {
301
315
  /**
302
316
  * FTS5 rank付きでノートを検索する
303
317
  */
304
- searchNotesWithRank(query, limit = 50) {
318
+ searchNotesWithRank(query, limit = 50, includeDeprecated = false, dateFrom, dateTo) {
319
+ const deprecatedFilter = includeDeprecated ? "" : "AND n.deprecated = 0";
320
+ const dateFromFilter = dateFrom ? "AND n.created_at >= ?" : "";
321
+ const dateToFilter = dateTo ? "AND n.created_at <= ?" : "";
322
+ const dateParams = [];
323
+ if (dateFrom)
324
+ dateParams.push(dateFrom);
325
+ if (dateTo)
326
+ dateParams.push(dateTo);
305
327
  try {
306
328
  const stmt = this.db.prepare(`
307
329
  SELECT n.*, fts.rank
308
330
  FROM knowledge_notes n
309
331
  JOIN knowledge_notes_fts fts ON n.id = fts.rowid
310
332
  WHERE knowledge_notes_fts MATCH ?
333
+ ${deprecatedFilter}
334
+ ${dateFromFilter}
335
+ ${dateToFilter}
311
336
  ORDER BY rank
312
337
  LIMIT ?
313
338
  `);
314
- const rows = stmt.all(query, limit);
339
+ const rows = stmt.all(query, ...dateParams, limit);
315
340
  return rows.map(({ rank, ...note }) => ({ note: note, rank }));
316
341
  }
317
342
  catch {
318
343
  // FTS5失敗時はLIKEフォールバック(不正なクエリ構文への耐性)
319
- const fallbackStmt = this.db.prepare(`SELECT n.* FROM knowledge_notes n WHERE n.title LIKE ? OR n.content LIKE ? LIMIT ?`);
320
- const fallbackRows = fallbackStmt.all(`%${query}%`, `%${query}%`, limit);
344
+ const deprecatedClause = includeDeprecated ? "" : "AND n.deprecated = 0";
345
+ const fallbackStmt = this.db.prepare(`SELECT n.* FROM knowledge_notes n WHERE (n.title LIKE ? OR n.content LIKE ?) ${deprecatedClause} ${dateFromFilter} ${dateToFilter} LIMIT ?`);
346
+ const fallbackRows = fallbackStmt.all(`%${query}%`, `%${query}%`, ...dateParams, limit);
321
347
  return fallbackRows.map((row) => ({ note: row, rank: 0 }));
322
348
  }
323
349
  }
@@ -376,6 +402,134 @@ export class KnowledgeRepository {
376
402
  const info = stmt.run(...ids);
377
403
  return info.changes;
378
404
  }
405
+ /**
406
+ * ノートの extracted_at タイムスタンプを更新する
407
+ */
408
+ updateExtractedAt(noteId) {
409
+ const now = new Date().toISOString();
410
+ this.db.prepare("UPDATE knowledge_notes SET extracted_at = ? WHERE id = ?").run(now, noteId);
411
+ }
412
+ /**
413
+ * sourceUri プレフィックスでノートを取得する
414
+ * file_path が sourceUri として使われている(normalizer.ts の仕様)
415
+ */
416
+ getNotesBySourceUriPrefix(prefix) {
417
+ const stmt = this.db.prepare("SELECT * FROM knowledge_notes WHERE file_path LIKE ? ORDER BY created_at ASC");
418
+ return stmt.all(`${prefix}%`);
419
+ }
420
+ /**
421
+ * 既存リンクチェック後に note_links へ INSERT する(冪等)
422
+ * 同じ source/target ペアが既に存在する場合は false を返す
423
+ */
424
+ saveNoteLinkIfNotExists(sourceNoteId, targetNoteId, linkType, similarity) {
425
+ const existing = this.db
426
+ .prepare("SELECT id FROM note_links WHERE source_note_id = ? AND target_note_id = ?")
427
+ .get(sourceNoteId, targetNoteId);
428
+ if (existing)
429
+ return false;
430
+ const now = new Date().toISOString();
431
+ this.db
432
+ .prepare("INSERT INTO note_links (source_note_id, target_note_id, link_type, similarity, created_at) VALUES (?, ?, ?, ?, ?)")
433
+ .run(sourceNoteId, targetNoteId, linkType, similarity ?? null, now);
434
+ return true;
435
+ }
436
+ /**
437
+ * 指定ノートに関するリンクをすべて取得する(source または target)
438
+ */
439
+ getLinksForNote(noteId) {
440
+ const stmt = this.db.prepare(`
441
+ SELECT id, source_note_id as sourceNoteId, target_note_id as targetNoteId,
442
+ link_type as linkType, similarity, created_at as createdAt
443
+ FROM note_links
444
+ WHERE source_note_id = ? OR target_note_id = ?
445
+ ORDER BY created_at DESC
446
+ `);
447
+ return stmt.all(noteId, noteId);
448
+ }
449
+ /**
450
+ * サジェスト結果へのフィードバックを保存する
451
+ */
452
+ saveSuggestFeedback(noteId, query, isUseful, context) {
453
+ const now = new Date().toISOString();
454
+ const stmt = this.db.prepare(`
455
+ INSERT INTO suggest_feedback (note_id, query, is_useful, context, created_at)
456
+ VALUES (?, ?, ?, ?, ?)
457
+ `);
458
+ const info = stmt.run(noteId, query, isUseful ? 1 : 0, context ?? null, now);
459
+ return Number(info.lastInsertRowid);
460
+ }
461
+ /**
462
+ * 特定ノートのサジェストフィードバック一覧を取得する(新しい順)
463
+ */
464
+ getSuggestFeedbackForNote(noteId) {
465
+ const stmt = this.db.prepare(`
466
+ SELECT id, query, is_useful as isUseful, context, created_at as createdAt
467
+ FROM suggest_feedback
468
+ WHERE note_id = ?
469
+ ORDER BY id DESC
470
+ `);
471
+ const rows = stmt.all(noteId);
472
+ return rows.map((row) => ({ ...row, isUseful: row.isUseful === 1 }));
473
+ }
474
+ /**
475
+ * ノートを deprecated にマークする
476
+ */
477
+ deprecateNote(noteId, reason) {
478
+ const note = this.getNoteById(noteId);
479
+ if (!note)
480
+ throw new KnowledgeNotFoundError(noteId, "id");
481
+ this.db
482
+ .prepare("UPDATE knowledge_notes SET deprecated = 1, deprecation_reason = ? WHERE id = ?")
483
+ .run(reason, noteId);
484
+ }
485
+ /**
486
+ * ノートの deprecated フラグを解除する
487
+ */
488
+ undeprecateNote(noteId) {
489
+ const note = this.getNoteById(noteId);
490
+ if (!note)
491
+ throw new KnowledgeNotFoundError(noteId, "id");
492
+ this.db
493
+ .prepare("UPDATE knowledge_notes SET deprecated = 0, deprecation_reason = NULL WHERE id = ?")
494
+ .run(noteId);
495
+ }
496
+ /**
497
+ * 既存ノートの新バージョンを作成する
498
+ * 旧ノートは deprecated にマークされ、新ノートが supersedes で旧ノートを参照する
499
+ */
500
+ createNewVersion(noteId, data) {
501
+ const existing = this.getNoteById(noteId);
502
+ if (!existing)
503
+ throw new KnowledgeNotFoundError(noteId, "id");
504
+ const now = new Date().toISOString();
505
+ const currentVersion = existing.version ?? 1;
506
+ const newVersion = currentVersion + 1;
507
+ const title = data.title ?? existing.title;
508
+ const content = data.content ?? existing.content;
509
+ const frontmatterJson = data.frontmatter
510
+ ? JSON.stringify(data.frontmatter)
511
+ : existing.frontmatter_json;
512
+ const contentHash = this.computeHash(content);
513
+ // file_path に UNIQUE 制約があるため、バージョン付きパスを生成
514
+ const versionedPath = `${existing.file_path}#v${newVersion}`;
515
+ const createNewVersion = this.db.transaction(() => {
516
+ // deprecated にマーク
517
+ this.db
518
+ .prepare("UPDATE knowledge_notes SET deprecated = 1, deprecation_reason = ? WHERE id = ?")
519
+ .run(`Superseded by version ${newVersion}`, noteId);
520
+ // 新バージョンを INSERT
521
+ const stmt = this.db.prepare(`
522
+ INSERT INTO knowledge_notes (
523
+ file_path, title, content, frontmatter_json,
524
+ created_at, updated_at, content_hash,
525
+ version, supersedes, valid_from, deprecated
526
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0)
527
+ `);
528
+ const info = stmt.run(versionedPath, title, content, frontmatterJson, existing.created_at, now, contentHash, newVersion, noteId, now);
529
+ return Number(info.lastInsertRowid);
530
+ });
531
+ return createNewVersion();
532
+ }
379
533
  close() {
380
534
  this.db.close();
381
535
  }
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"009_extraction_metadata.js","sourceRoot":"","sources":["../../../src/storage/migrations/009_extraction_metadata.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,qBAAqB;IAE3B,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,iDAAiD;QACjD,EAAE,CAAC,IAAI,CAAC;;;KAGP,CAAC,CAAC;QAEH,mDAAmD;QACnD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;KAUP,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC9B,8BAA8B;QAC9B,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAClD,oEAAoE;QACpE,gFAAgF;IAClF,CAAC;CACF,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Migration } from "../migrator.js";
2
+ /**
3
+ * Migration 010: Memory Protocol
4
+ *
5
+ * Adds MCP Memory Protocol fields to memory_entries:
6
+ * - tags_json: JSON array of string tags
7
+ * - deleted: soft-delete flag (0=active, 1=deleted)
8
+ * - deleted_at: timestamp of soft-delete
9
+ * - delete_reason: reason provided at soft-delete
10
+ */
11
+ export declare const migration010: Migration;
12
+ //# sourceMappingURL=010_memory_protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"010_memory_protocol.d.ts","sourceRoot":"","sources":["../../../src/storage/migrations/010_memory_protocol.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,SAiB1B,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Migration 010: Memory Protocol
3
+ *
4
+ * Adds MCP Memory Protocol fields to memory_entries:
5
+ * - tags_json: JSON array of string tags
6
+ * - deleted: soft-delete flag (0=active, 1=deleted)
7
+ * - deleted_at: timestamp of soft-delete
8
+ * - delete_reason: reason provided at soft-delete
9
+ */
10
+ export const migration010 = {
11
+ version: 12,
12
+ name: "010_memory_protocol",
13
+ up(db) {
14
+ db.exec(`ALTER TABLE memory_entries ADD COLUMN tags_json TEXT DEFAULT NULL;`);
15
+ db.exec(`ALTER TABLE memory_entries ADD COLUMN deleted INTEGER DEFAULT 0;`);
16
+ db.exec(`ALTER TABLE memory_entries ADD COLUMN deleted_at TEXT DEFAULT NULL;`);
17
+ db.exec(`ALTER TABLE memory_entries ADD COLUMN delete_reason TEXT DEFAULT NULL;`);
18
+ db.exec(`ALTER TABLE memory_entries ADD COLUMN version INTEGER DEFAULT 1;`);
19
+ db.exec(`ALTER TABLE memory_entries ADD COLUMN supersedes_memory_id INTEGER DEFAULT NULL;`);
20
+ },
21
+ down(_db) {
22
+ // Columns cannot be dropped in SQLite without recreating the table.
23
+ // Same pattern as other migrations: keep columns to avoid FK/FTS complications.
24
+ },
25
+ };
26
+ //# sourceMappingURL=010_memory_protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"010_memory_protocol.js","sourceRoot":"","sources":["../../../src/storage/migrations/010_memory_protocol.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,qBAAqB;IAE3B,EAAE,CAAC,EAAqB;QACtB,EAAE,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QAC9E,EAAE,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC5E,EAAE,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QAC/E,EAAE,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QAClF,EAAE,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC5E,EAAE,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,CAAC,GAAsB;QACzB,oEAAoE;QACpE,gFAAgF;IAClF,CAAC;CACF,CAAC"}