@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.
- package/dist/agents/index.d.ts +7 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +4 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/observer-agent.d.ts +31 -0
- package/dist/agents/observer-agent.d.ts.map +1 -0
- package/dist/agents/observer-agent.js +164 -0
- package/dist/agents/observer-agent.js.map +1 -0
- package/dist/agents/reflector-agent.d.ts +66 -0
- package/dist/agents/reflector-agent.d.ts.map +1 -0
- package/dist/agents/reflector-agent.js +420 -0
- package/dist/agents/reflector-agent.js.map +1 -0
- package/dist/agents/types.d.ts +47 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/agents/vector-classification-rules.d.ts +14 -0
- package/dist/agents/vector-classification-rules.d.ts.map +1 -0
- package/dist/agents/vector-classification-rules.js +229 -0
- package/dist/agents/vector-classification-rules.js.map +1 -0
- package/dist/config/config-loader.d.ts +13 -0
- package/dist/config/config-loader.d.ts.map +1 -1
- package/dist/config/config-loader.js +19 -11
- package/dist/config/config-loader.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/graph/entity-extractor.d.ts +1 -0
- package/dist/graph/entity-extractor.d.ts.map +1 -1
- package/dist/graph/entity-extractor.js +36 -2
- package/dist/graph/entity-extractor.js.map +1 -1
- package/dist/graph/graph-repository.d.ts +37 -5
- package/dist/graph/graph-repository.d.ts.map +1 -1
- package/dist/graph/graph-repository.js +68 -12
- package/dist/graph/graph-repository.js.map +1 -1
- package/dist/graph/temporal-query.d.ts +69 -0
- package/dist/graph/temporal-query.d.ts.map +1 -0
- package/dist/graph/temporal-query.js +172 -0
- package/dist/graph/temporal-query.js.map +1 -0
- package/dist/index.d.ts +29 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -0
- 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/knowledge-searcher.d.ts +12 -1
- package/dist/search/knowledge-searcher.d.ts.map +1 -1
- package/dist/search/knowledge-searcher.js +93 -31
- package/dist/search/knowledge-searcher.js.map +1 -1
- package/dist/search/query-classifier.d.ts +17 -0
- package/dist/search/query-classifier.d.ts.map +1 -0
- package/dist/search/query-classifier.js +63 -0
- package/dist/search/query-classifier.js.map +1 -0
- package/dist/search/query-orchestrator.d.ts +39 -0
- package/dist/search/query-orchestrator.d.ts.map +1 -0
- package/dist/search/query-orchestrator.js +239 -0
- package/dist/search/query-orchestrator.js.map +1 -0
- 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/services/knowledge-service.d.ts +6 -0
- package/dist/services/knowledge-service.d.ts.map +1 -1
- package/dist/services/knowledge-service.js +7 -2
- package/dist/services/knowledge-service.js.map +1 -1
- package/dist/storage/database.d.ts.map +1 -1
- package/dist/storage/database.js +46 -6
- package/dist/storage/database.js.map +1 -1
- package/dist/storage/knowledge-repository.d.ts +65 -1
- package/dist/storage/knowledge-repository.d.ts.map +1 -1
- package/dist/storage/knowledge-repository.js +163 -9
- 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/migrations/010_memory_protocol.d.ts +12 -0
- package/dist/storage/migrations/010_memory_protocol.d.ts.map +1 -0
- package/dist/storage/migrations/010_memory_protocol.js +26 -0
- package/dist/storage/migrations/010_memory_protocol.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 +2 -2
|
@@ -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;AAInE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
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
|
|
320
|
-
const
|
|
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":"AAEA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAiCpC,MAAM,OAAO,mBAAmB;IACV;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAErC,WAAW,CAAC,OAAe;QACjC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAEO,gBAAgB,CAAC,IAAmB;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvF,MAAM,IAAI,eAAe,CACvB,UAAU,EACV,IAAI,CAAC,QAAQ,EACb,sDAAsD,CACvD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9E,MAAM,IAAI,eAAe,CACvB,OAAO,EACP,IAAI,CAAC,KAAK,EACV,kDAAkD,CACnD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,eAAe,CACvB,SAAS,EACT,IAAI,CAAC,OAAO,EACZ,0CAA0C,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAmB;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,eAAe,GACnB,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC;gBAC1D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC;YAEX,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC;YAEvD,IAAI,QAAQ,EAAE,CAAC;gBACb,wCAAwC;gBACxC,IAAI,QAAQ,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;oBAC1C,OAAO,QAAQ,CAAC,EAAE,CAAC;gBACrB,CAAC;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;SAK5B,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,EACZ,eAAe,EACf,GAAG,EACH,WAAW,EACX,gBAAgB,EAChB,QAAQ,CAAC,EAAE,CACZ,CAAC;gBACF,OAAO,QAAQ,CAAC,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;SAK5B,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CACnB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,EACZ,eAAe,EACf,IAAI,CAAC,SAAS,IAAI,GAAG,EACrB,GAAG,EACH,WAAW,EACX,gBAAgB,CACjB,CAAC;gBACF,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,eAAe;gBAAE,MAAM,KAAK,CAAC;YAClD,MAAM,IAAI,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,WAAW,CAAC,EAAU;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAA8B,CAAC;IACnD,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAA8B,CAAC;IACzD,CAAC;IAED,kBAAkB,CAAC,EAAU;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,sBAAsB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,QAAgB;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,KAAK,GAAG,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;OAO5B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAoB,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,4EAA4E,CAC7E,CAAC;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,KAAK,CAAoB,CAAC;QACxE,CAAC;IACH,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;YAChF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,QAA4B;QACvD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,mCAAmC,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,2BAA2B,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;YACvF,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;OAKlC,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,UAAU,CAAC,GAAG,CACZ,MAAM,EACN,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,OAAO,IAAI,IAAI,EACvB,OAAO,CAAC,UAAU,IAAI,IAAI,EAC1B,GAAG,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,eAAe;gBAAE,MAAM,KAAK,CAAC;YAClD,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,MAAc;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,yEAAyE,CAC1E,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAA0B,CAAC;IACnD,CAAC;IAED,wBAAwB,CACtB,KAIE;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAI5B,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,aAAa,CACX,KAKE;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAI5B,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,YAAY,CAAC,MAAc;QAKzB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAI5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAIpB,CAAC;IACL,CAAC;IAED,+BAA+B,CAAC,MAAc;QAQ5C,qFAAqF;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;KAW5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAO5B,CAAC;IACL,CAAC;IAED,wBAAwB,CAAC,MAAc,EAAE,IAAc,EAAE,KAAa;QACpE,oDAAoD;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;6BAEJ,UAAU;;KAElC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,CAAoB,CAAC;IAC/D,CAAC;IAED,wBAAwB,CAAC,MAAc,EAAE,QAAkB,EAAE,KAAa;QACxE,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;6BAEJ,UAAU;;KAElC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,CAAoB,CAAC;IAC/D,CAAC;IAED,wBAAwB,CACtB,MAAc,EACd,SAAiB,EACjB,IAAY,EACZ,KAAa;QAEb,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;KAM5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAoB,CAAC;IAChF,CAAC;IAED,QAAQ;QAON,MAAM,UAAU,GACd,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,EACrE,CAAC,KAAK,CAAC;QACR,MAAM,aAAa,GACjB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,EACxE,CAAC,KAAK,CAAC;QACR,MAAM,UAAU,GACd,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAChE,CAAC,KAAK,CAAC;QACR,MAAM,UAAU,GACd,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,EAG5E,CAAC,KAAK,CAAC;QAER,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,OAAO,CACN,sFAAsF,CACvF;aACA,GAAG,EAAoD,CAAC;QAE3D,MAAM,cAAc,GAA2B,EAAE,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QAC/C,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,IAAY;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;KAK5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAoB,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAc,EAAE,SAAuB,EAAE,SAAiB;QACtE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAE7C,+BAA+B;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;OAQlC,CAAC,CAAC;YACH,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAEtE,2CAA2C;YAC3C,oDAAoD;YACpD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE;qBACJ,OAAO,CAAC,oEAAoE,CAAC;qBAC7E,GAAG,CAAC,MAAM,CAAC,CAAC;gBACf,IAAI,CAAC,EAAE;qBACJ,OAAO,CACN,oFAAoF,CACrF;qBACA,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,wDAAwD;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,aAAa;gBAAE,MAAM,KAAK,CAAC;YAChD,MAAM,IAAI,aAAa,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,cAAc,CACZ,SAAuB,EACvB,QAAgB,EAAE;QAElB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;OAM5B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAiD,CAAC;QAC9E,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;YACxC,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB,CACjB,KAAa,EACb,QAAgB,EAAE,EAClB,oBAA6B,KAAK,EAClC,QAAiB,EACjB,MAAe;QAEf,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACzE,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;UAKzB,gBAAgB;UAChB,cAAc;UACd,YAAY;;;OAGf,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,UAAU,EAAE,KAAK,CAA4C,CAAC;YAC9F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;YACpC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;YACzE,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAClC,gFAAgF,gBAAgB,IAAI,cAAc,IAAI,YAAY,UAAU,CAC7I,CAAC;YACF,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CACnC,IAAI,KAAK,GAAG,EACZ,IAAI,KAAK,GAAG,EACZ,GAAG,UAAU,EACb,KAAK,CACqC,CAAC;YAC7C,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAoB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,yBAAyB;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,EAAqB,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,2BAA2B;QACzB,2DAA2D;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAI5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,EAAqB,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc,EAAE,QAAgB,GAAG;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,uFAAuF,CACxF,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,EAAE,KAAK,CAAoB,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,GAAG,EAAqB,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,QAAgB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,QAAQ,IAAI,CAAoB,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,GAAa;QAC5B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4CAA4C,YAAY,GAAG,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAc;QAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/F,CAAC;IAED;;;OAGG;IACH,yBAAyB,CAAC,MAAc;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,8EAA8E,CAC/E,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAoB,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,uBAAuB,CACrB,YAAoB,EACpB,YAAoB,EACpB,QAAgB,EAChB,UAAmB;QAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,OAAO,CAAC,2EAA2E,CAAC;aACpF,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEnC,IAAI,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE3B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,mHAAmH,CACpH;aACA,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAc;QAQ5B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;KAM5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAO5B,CAAC;IACL,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,MAAc,EAAE,KAAa,EAAE,QAAiB,EAAE,OAAgB;QACpF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,MAAc;QAOtC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;KAK5B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAM1B,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAc,EAAE,MAAc;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,gFAAgF,CAAC;aACzF,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAc;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,mFAAmF,CAAC;aAC5F,GAAG,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,MAAc,EAAE,IAA4B;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE9D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,cAAc,GAAG,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;QACjD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW;YACtC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;YAClC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE9C,0CAA0C;QAC1C,MAAM,aAAa,GAAG,GAAG,QAAQ,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QAE7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAChD,kBAAkB;YAClB,IAAI,CAAC,EAAE;iBACJ,OAAO,CAAC,gFAAgF,CAAC;iBACzF,GAAG,CAAC,yBAAyB,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;YAEtD,iBAAiB;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;OAM5B,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CACnB,aAAa,EACb,KAAK,EACL,OAAO,EACP,eAAe,EACf,QAAQ,CAAC,UAAU,EACnB,GAAG,EACH,WAAW,EACX,UAAU,EACV,MAAM,EACN,GAAG,CACJ,CAAC;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -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"}
|