@knowledgine/cli 0.1.0 → 0.2.1

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 (123) hide show
  1. package/dist/commands/capture.d.ts +23 -0
  2. package/dist/commands/capture.d.ts.map +1 -0
  3. package/dist/commands/capture.js +237 -0
  4. package/dist/commands/capture.js.map +1 -0
  5. package/dist/commands/demo.d.ts +6 -0
  6. package/dist/commands/demo.d.ts.map +1 -0
  7. package/dist/commands/demo.js +48 -0
  8. package/dist/commands/demo.js.map +1 -0
  9. package/dist/commands/feedback.d.ts +27 -0
  10. package/dist/commands/feedback.d.ts.map +1 -0
  11. package/dist/commands/feedback.js +120 -0
  12. package/dist/commands/feedback.js.map +1 -0
  13. package/dist/commands/ingest.d.ts +9 -0
  14. package/dist/commands/ingest.d.ts.map +1 -0
  15. package/dist/commands/ingest.js +162 -0
  16. package/dist/commands/ingest.js.map +1 -0
  17. package/dist/commands/init.d.ts +2 -0
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +327 -42
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/plugins.d.ts +6 -0
  22. package/dist/commands/plugins.d.ts.map +1 -0
  23. package/dist/commands/plugins.js +41 -0
  24. package/dist/commands/plugins.js.map +1 -0
  25. package/dist/commands/search.d.ts +16 -0
  26. package/dist/commands/search.d.ts.map +1 -0
  27. package/dist/commands/search.js +140 -0
  28. package/dist/commands/search.js.map +1 -0
  29. package/dist/commands/setup.d.ts +57 -0
  30. package/dist/commands/setup.d.ts.map +1 -0
  31. package/dist/commands/setup.js +331 -0
  32. package/dist/commands/setup.js.map +1 -0
  33. package/dist/commands/start.d.ts +1 -0
  34. package/dist/commands/start.d.ts.map +1 -1
  35. package/dist/commands/start.js +98 -24
  36. package/dist/commands/start.js.map +1 -1
  37. package/dist/commands/status.d.ts +5 -0
  38. package/dist/commands/status.d.ts.map +1 -0
  39. package/dist/commands/status.js +149 -0
  40. package/dist/commands/status.js.map +1 -0
  41. package/dist/commands/tool.d.ts +29 -0
  42. package/dist/commands/tool.d.ts.map +1 -0
  43. package/dist/commands/tool.js +247 -0
  44. package/dist/commands/tool.js.map +1 -0
  45. package/dist/commands/upgrade.d.ts +6 -0
  46. package/dist/commands/upgrade.d.ts.map +1 -0
  47. package/dist/commands/upgrade.js +137 -0
  48. package/dist/commands/upgrade.js.map +1 -0
  49. package/dist/index.js +178 -2
  50. package/dist/index.js.map +1 -1
  51. package/dist/lib/demo-manager.d.ts +16 -0
  52. package/dist/lib/demo-manager.d.ts.map +1 -0
  53. package/dist/lib/demo-manager.js +37 -0
  54. package/dist/lib/demo-manager.js.map +1 -0
  55. package/dist/lib/entity-extractor.d.ts +15 -0
  56. package/dist/lib/entity-extractor.d.ts.map +1 -0
  57. package/dist/lib/entity-extractor.js +86 -0
  58. package/dist/lib/entity-extractor.js.map +1 -0
  59. package/dist/lib/formatter.d.ts +7 -0
  60. package/dist/lib/formatter.d.ts.map +1 -0
  61. package/dist/lib/formatter.js +94 -0
  62. package/dist/lib/formatter.js.map +1 -0
  63. package/dist/lib/indexer.d.ts +6 -1
  64. package/dist/lib/indexer.d.ts.map +1 -1
  65. package/dist/lib/indexer.js +4 -1
  66. package/dist/lib/indexer.js.map +1 -1
  67. package/dist/lib/ingest-watcher.d.ts +20 -0
  68. package/dist/lib/ingest-watcher.d.ts.map +1 -0
  69. package/dist/lib/ingest-watcher.js +45 -0
  70. package/dist/lib/ingest-watcher.js.map +1 -0
  71. package/dist/lib/plugin-loader.d.ts +5 -0
  72. package/dist/lib/plugin-loader.d.ts.map +1 -0
  73. package/dist/lib/plugin-loader.js +27 -0
  74. package/dist/lib/plugin-loader.js.map +1 -0
  75. package/dist/lib/progress.d.ts +63 -0
  76. package/dist/lib/progress.d.ts.map +1 -0
  77. package/dist/lib/progress.js +228 -0
  78. package/dist/lib/progress.js.map +1 -0
  79. package/dist/lib/ui/box.d.ts +7 -0
  80. package/dist/lib/ui/box.d.ts.map +1 -0
  81. package/dist/lib/ui/box.js +19 -0
  82. package/dist/lib/ui/box.js.map +1 -0
  83. package/dist/lib/ui/error-formatter.d.ts +8 -0
  84. package/dist/lib/ui/error-formatter.d.ts.map +1 -0
  85. package/dist/lib/ui/error-formatter.js +21 -0
  86. package/dist/lib/ui/error-formatter.js.map +1 -0
  87. package/dist/lib/ui/index.d.ts +7 -0
  88. package/dist/lib/ui/index.d.ts.map +1 -0
  89. package/dist/lib/ui/index.js +7 -0
  90. package/dist/lib/ui/index.js.map +1 -0
  91. package/dist/lib/ui/output.d.ts +2 -0
  92. package/dist/lib/ui/output.d.ts.map +1 -0
  93. package/dist/lib/ui/output.js +4 -0
  94. package/dist/lib/ui/output.js.map +1 -0
  95. package/dist/lib/ui/spinner.d.ts +4 -0
  96. package/dist/lib/ui/spinner.d.ts.map +1 -0
  97. package/dist/lib/ui/spinner.js +5 -0
  98. package/dist/lib/ui/spinner.js.map +1 -0
  99. package/dist/lib/ui/table.d.ts +9 -0
  100. package/dist/lib/ui/table.d.ts.map +1 -0
  101. package/dist/lib/ui/table.js +28 -0
  102. package/dist/lib/ui/table.js.map +1 -0
  103. package/dist/lib/ui/theme.d.ts +21 -0
  104. package/dist/lib/ui/theme.d.ts.map +1 -0
  105. package/dist/lib/ui/theme.js +29 -0
  106. package/dist/lib/ui/theme.js.map +1 -0
  107. package/dist/lib/unknown-command-handler.d.ts +14 -0
  108. package/dist/lib/unknown-command-handler.d.ts.map +1 -0
  109. package/dist/lib/unknown-command-handler.js +25 -0
  110. package/dist/lib/unknown-command-handler.js.map +1 -0
  111. package/dist/lib/url-validator.d.ts +2 -0
  112. package/dist/lib/url-validator.d.ts.map +1 -0
  113. package/dist/lib/url-validator.js +21 -0
  114. package/dist/lib/url-validator.js.map +1 -0
  115. package/fixtures/demo/notes/api-design-decisions.md +84 -0
  116. package/fixtures/demo/notes/auth-debugging.md +60 -0
  117. package/fixtures/demo/notes/ci-cd-pipeline.md +97 -0
  118. package/fixtures/demo/notes/code-review-notes.md +78 -0
  119. package/fixtures/demo/notes/database-optimization.md +81 -0
  120. package/fixtures/demo/notes/docker-troubleshooting.md +80 -0
  121. package/fixtures/demo/notes/react-performance.md +67 -0
  122. package/fixtures/demo/notes/typescript-migration.md +89 -0
  123. package/package.json +13 -4
@@ -0,0 +1,37 @@
1
+ import { fileURLToPath } from "url";
2
+ import { dirname, resolve } from "path";
3
+ import { cpSync, rmSync, existsSync, mkdirSync, readdirSync } from "fs";
4
+ /**
5
+ * Resolve the path to the bundled demo fixture notes.
6
+ * Works from both src/ (development) and dist/ (published package).
7
+ */
8
+ export function getDemoDir() {
9
+ const currentDir = dirname(fileURLToPath(import.meta.url));
10
+ // In dist: dist/lib/demo-manager.js -> package root
11
+ // In src: src/lib/demo-manager.js -> package root
12
+ const packageRoot = resolve(currentDir, "..", "..");
13
+ return resolve(packageRoot, "fixtures", "demo", "notes");
14
+ }
15
+ /**
16
+ * Copy demo fixtures into the target directory.
17
+ * Returns the number of markdown files copied.
18
+ */
19
+ export function copyDemoFixtures(targetDir) {
20
+ const demoDir = getDemoDir();
21
+ if (!existsSync(demoDir)) {
22
+ throw new Error(`Demo fixtures not found at ${demoDir}`);
23
+ }
24
+ mkdirSync(targetDir, { recursive: true });
25
+ cpSync(demoDir, targetDir, { recursive: true });
26
+ return readdirSync(targetDir).filter((f) => f.endsWith(".md")).length;
27
+ }
28
+ /**
29
+ * Remove the demo notes directory.
30
+ * Only removes the notes directory — does NOT touch .knowledgine.
31
+ */
32
+ export function cleanDemo(demoPath) {
33
+ if (existsSync(demoPath)) {
34
+ rmSync(demoPath, { recursive: true });
35
+ }
36
+ }
37
+ //# sourceMappingURL=demo-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-manager.js","sourceRoot":"","sources":["../../src/lib/demo-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,oDAAoD;IACpD,oDAAoD;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { KnowledgeRepository, GraphRepository } from "@knowledgine/core";
2
+ export interface PostIngestSummary {
3
+ totalNotes: number;
4
+ processedNotes: number;
5
+ totalEntities: number;
6
+ totalRelations: number;
7
+ totalPatterns: number;
8
+ errors: number;
9
+ }
10
+ /**
11
+ * 全ノートに対してパターン抽出、エンティティ抽出、関係推論をバッチ実行する。
12
+ * init コマンドから ingest パイプライン経由でノートが保存された後に呼ばれる。
13
+ */
14
+ export declare function postIngestProcessing(repository: KnowledgeRepository, graphRepository: GraphRepository, onProgress?: (current: number, total: number) => void): Promise<PostIngestSummary>;
15
+ //# sourceMappingURL=entity-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-extractor.d.ts","sourceRoot":"","sources":["../../src/lib/entity-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAkBD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,mBAAmB,EAC/B,eAAe,EAAE,eAAe,EAChC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpD,OAAO,CAAC,iBAAiB,CAAC,CAuE5B"}
@@ -0,0 +1,86 @@
1
+ import { KnowledgeRepository, GraphRepository, EntityExtractor, RelationInferrer, PatternExtractor, } from "@knowledgine/core";
2
+ /**
3
+ * Deduplicate patterns by (type, lineNumber, content) key.
4
+ */
5
+ function deduplicatePatterns(patterns) {
6
+ const seen = new Set();
7
+ const result = [];
8
+ for (const p of patterns) {
9
+ const key = JSON.stringify([p.type, p.lineNumber ?? null, p.content]);
10
+ if (!seen.has(key)) {
11
+ seen.add(key);
12
+ result.push(p);
13
+ }
14
+ }
15
+ return result;
16
+ }
17
+ /**
18
+ * 全ノートに対してパターン抽出、エンティティ抽出、関係推論をバッチ実行する。
19
+ * init コマンドから ingest パイプライン経由でノートが保存された後に呼ばれる。
20
+ */
21
+ export async function postIngestProcessing(repository, graphRepository, onProgress) {
22
+ const notes = repository.getAllNotes();
23
+ const patternExtractor = new PatternExtractor();
24
+ const entityExtractor = new EntityExtractor();
25
+ const inferrer = new RelationInferrer();
26
+ let processedNotes = 0;
27
+ let totalEntities = 0;
28
+ let totalRelations = 0;
29
+ let totalPatterns = 0;
30
+ let errors = 0;
31
+ for (const note of notes) {
32
+ try {
33
+ const frontmatter = note.frontmatter_json ? JSON.parse(note.frontmatter_json) : {};
34
+ const now = new Date().toISOString();
35
+ // Pattern extraction
36
+ const dailyPatterns = patternExtractor.extractDailyPatterns(note.content);
37
+ const ticketPatterns = patternExtractor.extractTicketPatterns(note.content);
38
+ const allPatterns = deduplicatePatterns([...dailyPatterns, ...ticketPatterns]);
39
+ repository.savePatterns(note.id, allPatterns);
40
+ totalPatterns += allPatterns.length;
41
+ // Entity extraction
42
+ const extractedEntities = entityExtractor.extract(note.content, frontmatter);
43
+ const entityList = [];
44
+ for (const entity of extractedEntities) {
45
+ const entityId = graphRepository.upsertEntity({
46
+ name: entity.name,
47
+ entityType: entity.entityType,
48
+ createdAt: now,
49
+ });
50
+ graphRepository.linkEntityToNote(entityId, note.id);
51
+ entityList.push({ name: entity.name, entityType: entity.entityType });
52
+ }
53
+ totalEntities += extractedEntities.length;
54
+ // Relation inference
55
+ const inferredRelations = inferrer.infer(entityList, frontmatter);
56
+ for (const rel of inferredRelations) {
57
+ const fromEntity = graphRepository.getEntityByName(rel.fromName, rel.fromType);
58
+ const toEntity = graphRepository.getEntityByName(rel.toName, rel.toType);
59
+ if (fromEntity?.id && toEntity?.id) {
60
+ graphRepository.upsertRelation({
61
+ fromEntityId: fromEntity.id,
62
+ toEntityId: toEntity.id,
63
+ relationType: rel.relationType,
64
+ strength: rel.strength,
65
+ createdAt: now,
66
+ });
67
+ totalRelations++;
68
+ }
69
+ }
70
+ processedNotes++;
71
+ onProgress?.(processedNotes, notes.length);
72
+ }
73
+ catch {
74
+ errors++;
75
+ }
76
+ }
77
+ return {
78
+ totalNotes: notes.length,
79
+ processedNotes,
80
+ totalEntities,
81
+ totalRelations,
82
+ totalPatterns,
83
+ errors,
84
+ };
85
+ }
86
+ //# sourceMappingURL=entity-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-extractor.js","sourceRoot":"","sources":["../../src/lib/entity-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { SearchKnowledgeResult, FindRelatedResult, StatsResult, SearchEntitiesResult } from "@knowledgine/core";
2
+ export type OutputFormat = "json" | "table" | "plain";
3
+ export declare function formatSearchResults(results: SearchKnowledgeResult["results"], format: OutputFormat): string;
4
+ export declare function formatRelatedNotes(result: FindRelatedResult, format: OutputFormat): string;
5
+ export declare function formatStats(stats: StatsResult, format: OutputFormat): string;
6
+ export declare function formatEntities(result: SearchEntitiesResult, format: OutputFormat): string;
7
+ //# sourceMappingURL=formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/lib/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEtD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,EACzC,MAAM,EAAE,YAAY,GACnB,MAAM,CAeR;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAsB1F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAgC5E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAiBzF"}
@@ -0,0 +1,94 @@
1
+ import { createTable, colors, scoreColor } from "./ui/index.js";
2
+ export function formatSearchResults(results, format) {
3
+ if (format === "json") {
4
+ return JSON.stringify(results, null, 2);
5
+ }
6
+ if (format === "plain") {
7
+ return results.map((r) => `[${r.score.toFixed(2)}] ${r.filePath} ${r.title}`).join("\n");
8
+ }
9
+ // table
10
+ if (results.length === 0)
11
+ return "";
12
+ const rows = results.map((r) => [
13
+ scoreColor(r.score)(r.score.toFixed(2)),
14
+ r.title,
15
+ colors.dim(r.filePath),
16
+ ]);
17
+ return createTable({ head: ["Score", "Title", "File"], rows });
18
+ }
19
+ export function formatRelatedNotes(result, format) {
20
+ if (format === "json") {
21
+ return JSON.stringify(result, null, 2);
22
+ }
23
+ if (format === "plain") {
24
+ const lines = [`Note ID: ${result.noteId}`];
25
+ for (const n of result.relatedNotes) {
26
+ lines.push(` [${n.score.toFixed(2)}] ${n.filePath} ${n.title}`);
27
+ }
28
+ return lines.join("\n");
29
+ }
30
+ // table
31
+ const header = `Related notes for noteId=${result.noteId}:`;
32
+ if (result.relatedNotes.length === 0) {
33
+ return `${header}\n (no related notes found)`;
34
+ }
35
+ const rows = result.relatedNotes.map((n) => [
36
+ scoreColor(n.score)(n.score.toFixed(2)),
37
+ n.title,
38
+ colors.dim(n.filePath),
39
+ ]);
40
+ return `${header}\n${createTable({ head: ["Score", "Title", "File"], rows })}`;
41
+ }
42
+ export function formatStats(stats, format) {
43
+ if (format === "json") {
44
+ return JSON.stringify(stats, null, 2);
45
+ }
46
+ if (format === "plain") {
47
+ return [
48
+ `Notes: ${stats.totalNotes}`,
49
+ `Patterns: ${stats.totalPatterns}`,
50
+ `Links: ${stats.totalLinks}`,
51
+ `Pairs: ${stats.totalPairs}`,
52
+ `Embeddings: ${stats.embeddingStatus.available ? "enabled" : "disabled"}`,
53
+ ].join("\n");
54
+ }
55
+ // table
56
+ const rows = [
57
+ ["Total Notes", colors.info(String(stats.totalNotes))],
58
+ ["Total Patterns", colors.info(String(stats.totalPatterns))],
59
+ ["Total Links", colors.info(String(stats.totalLinks))],
60
+ ["Total Pairs", colors.info(String(stats.totalPairs))],
61
+ ["Embeddings Available", colors.info(String(stats.embeddingStatus.available))],
62
+ ];
63
+ if (stats.embeddingStatus.notesWithoutEmbeddings !== null) {
64
+ rows.push([
65
+ "Notes Without Embeddings",
66
+ colors.info(String(stats.embeddingStatus.notesWithoutEmbeddings)),
67
+ ]);
68
+ }
69
+ if (stats.graphStats) {
70
+ rows.push(["Graph Entities", colors.info(String(stats.graphStats.totalEntities))]);
71
+ rows.push(["Graph Relations", colors.info(String(stats.graphStats.totalRelations))]);
72
+ }
73
+ return createTable({ head: ["Metric", "Value"], rows });
74
+ }
75
+ export function formatEntities(result, format) {
76
+ if (format === "json") {
77
+ return JSON.stringify(result, null, 2);
78
+ }
79
+ if (format === "plain") {
80
+ return result.entities
81
+ .map((e) => `[${e.entityType}] ${e.name}${e.description ? " " + e.description : ""}`)
82
+ .join("\n");
83
+ }
84
+ // table
85
+ if (result.entities.length === 0)
86
+ return "";
87
+ const rows = result.entities.map((e) => [
88
+ String(e.id),
89
+ colors.accent(e.entityType),
90
+ e.name,
91
+ ]);
92
+ return createTable({ head: ["ID", "Type", "Name"], rows });
93
+ }
94
+ //# sourceMappingURL=formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/lib/formatter.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,11 @@ export interface IndexFileResult {
13
13
  noteId: number;
14
14
  patternCount: number;
15
15
  }
16
+ /** @deprecated Use IngestEngine with MarkdownPlugin instead */
16
17
  export declare function indexFile(relativePath: string, rootPath: string, fileProcessor: FileProcessor, patternExtractor: PatternExtractor, repository: KnowledgeRepository, graphRepository?: GraphRepository): Promise<number>;
17
- export declare function indexAll(rootPath: string, repository: KnowledgeRepository, graphRepository?: GraphRepository): Promise<IndexSummary>;
18
+ export interface IndexAllOptions {
19
+ onProgress?: (current: number, total: number, filePath: string) => void;
20
+ }
21
+ /** @deprecated Use IngestEngine with MarkdownPlugin instead */
22
+ export declare function indexAll(rootPath: string, repository: KnowledgeRepository, graphRepository?: GraphRepository, options?: IndexAllOptions): Promise<IndexSummary>;
18
23
  //# sourceMappingURL=indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/lib/indexer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EAGnB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAU/E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAWpF;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,SAAS,CAC7B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,mBAAmB,EAC/B,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,MAAM,CAAC,CA+DjB;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,EAC/B,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,YAAY,CAAC,CA2BvB"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/lib/indexer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EAGnB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAU/E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAWpF;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,+DAA+D;AAC/D,wBAAsB,SAAS,CAC7B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,mBAAmB,EAC/B,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,MAAM,CAAC,CA+DjB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE;AAED,+DAA+D;AAC/D,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,EAC/B,eAAe,CAAC,EAAE,eAAe,EACjC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,YAAY,CAAC,CA4BvB"}
@@ -25,6 +25,7 @@ export function deduplicatePatterns(patterns) {
25
25
  }
26
26
  return result;
27
27
  }
28
+ /** @deprecated Use IngestEngine with MarkdownPlugin instead */
28
29
  export async function indexFile(relativePath, rootPath, fileProcessor, patternExtractor, repository, graphRepository) {
29
30
  const absolutePath = join(rootPath, relativePath);
30
31
  const processed = await fileProcessor.processFile(absolutePath);
@@ -80,7 +81,8 @@ export async function indexFile(relativePath, rootPath, fileProcessor, patternEx
80
81
  }
81
82
  return noteId;
82
83
  }
83
- export async function indexAll(rootPath, repository, graphRepository) {
84
+ /** @deprecated Use IngestEngine with MarkdownPlugin instead */
85
+ export async function indexAll(rootPath, repository, graphRepository, options) {
84
86
  const start = Date.now();
85
87
  const fileProcessor = new FileProcessor();
86
88
  const patternExtractor = new PatternExtractor();
@@ -91,6 +93,7 @@ export async function indexAll(rootPath, repository, graphRepository) {
91
93
  try {
92
94
  await indexFile(file, rootPath, fileProcessor, patternExtractor, repository, graphRepository);
93
95
  processedFiles++;
96
+ options?.onProgress?.(processedFiles, files.length, file);
94
97
  }
95
98
  catch (error) {
96
99
  errors.push(`${file}: ${error instanceof Error ? error.message : String(error)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/lib/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/lib/indexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { IngestEngine, IngestSummary, PluginRegistry } from "@knowledgine/ingest";
2
+ export interface IngestWatcherOptions {
3
+ engine: IngestEngine;
4
+ registry: PluginRegistry;
5
+ rootPath: string;
6
+ onComplete?: (summaries: IngestSummary[]) => void;
7
+ onError?: (pluginId: string, error: Error) => void;
8
+ }
9
+ export declare class IngestWatcher {
10
+ private engine;
11
+ private registry;
12
+ private rootPath;
13
+ private onComplete?;
14
+ private onError?;
15
+ private running;
16
+ constructor(options: IngestWatcherOptions);
17
+ runInitialIngest(): Promise<IngestSummary[]>;
18
+ stop(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=ingest-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest-watcher.d.ts","sourceRoot":"","sources":["../../src/lib/ingest-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEvF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACpD;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAC,CAAuC;IAC1D,OAAO,CAAC,OAAO,CAAC,CAA2C;IAC3D,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,oBAAoB;IAQnC,gBAAgB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IA4B5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
@@ -0,0 +1,45 @@
1
+ export class IngestWatcher {
2
+ engine;
3
+ registry;
4
+ rootPath;
5
+ onComplete;
6
+ onError;
7
+ running = false;
8
+ constructor(options) {
9
+ this.engine = options.engine;
10
+ this.registry = options.registry;
11
+ this.rootPath = options.rootPath;
12
+ this.onComplete = options.onComplete;
13
+ this.onError = options.onError;
14
+ }
15
+ async runInitialIngest() {
16
+ this.running = true;
17
+ const summaries = [];
18
+ for (const plugin of this.registry.list()) {
19
+ if (!this.running)
20
+ break;
21
+ try {
22
+ const summary = await this.engine.ingest(plugin.manifest.id, this.rootPath);
23
+ summaries.push(summary);
24
+ }
25
+ catch (error) {
26
+ const err = error instanceof Error ? error : new Error(String(error));
27
+ summaries.push({
28
+ pluginId: plugin.manifest.id,
29
+ processed: 0,
30
+ errors: 1,
31
+ deleted: 0,
32
+ elapsedMs: 0,
33
+ });
34
+ this.onError?.(plugin.manifest.id, err);
35
+ }
36
+ }
37
+ this.running = false;
38
+ this.onComplete?.(summaries);
39
+ return summaries;
40
+ }
41
+ async stop() {
42
+ this.running = false;
43
+ }
44
+ }
45
+ //# sourceMappingURL=ingest-watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest-watcher.js","sourceRoot":"","sources":["../../src/lib/ingest-watcher.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,aAAa;IAChB,MAAM,CAAe;IACrB,QAAQ,CAAiB;IACzB,QAAQ,CAAS;IACjB,UAAU,CAAwC;IAClD,OAAO,CAA4C;IACnD,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,OAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,SAAS,GAAoB,EAAE,CAAC;QAEtC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,MAAM;YAEzB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5E,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtE,SAAS,CAAC,IAAI,CAAC;oBACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;oBAC5B,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,CAAC;oBACV,SAAS,EAAE,CAAC;iBACb,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import { PluginRegistry } from "@knowledgine/ingest";
2
+ import type { PluginConfig, PluginInitResult } from "@knowledgine/ingest";
3
+ export declare function createDefaultRegistry(): PluginRegistry;
4
+ export declare function initializePlugins(registry: PluginRegistry, config?: PluginConfig): Promise<Map<string, PluginInitResult>>;
5
+ //# sourceMappingURL=plugin-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../src/lib/plugin-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAMf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,wBAAgB,qBAAqB,IAAI,cAAc,CAQtD;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAcxC"}
@@ -0,0 +1,27 @@
1
+ import { PluginRegistry, MarkdownPlugin, GitHistoryPlugin, ClaudeSessionsPlugin, GitHubPlugin, ObsidianPlugin, } from "@knowledgine/ingest";
2
+ export function createDefaultRegistry() {
3
+ const registry = new PluginRegistry();
4
+ registry.register(new MarkdownPlugin());
5
+ registry.register(new GitHistoryPlugin());
6
+ registry.register(new ClaudeSessionsPlugin());
7
+ registry.register(new GitHubPlugin());
8
+ registry.register(new ObsidianPlugin());
9
+ return registry;
10
+ }
11
+ export async function initializePlugins(registry, config) {
12
+ const results = new Map();
13
+ for (const plugin of registry.list()) {
14
+ try {
15
+ const result = await plugin.initialize(config);
16
+ results.set(plugin.manifest.id, result);
17
+ }
18
+ catch (error) {
19
+ results.set(plugin.manifest.id, {
20
+ ok: false,
21
+ error: error instanceof Error ? error.message : String(error),
22
+ });
23
+ }
24
+ }
25
+ return results;
26
+ }
27
+ //# sourceMappingURL=plugin-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/lib/plugin-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACf,MAAM,qBAAqB,CAAC;AAG7B,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAwB,EACxB,MAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACpD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAC9B,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Progress display utility for CLI operations.
3
+ * TTY: in-place updates with \r
4
+ * Non-TTY: milestone-only output
5
+ * All output goes to stderr to avoid MCP stdout conflicts.
6
+ */
7
+ export interface Progress {
8
+ update(current: number, detail?: string): void;
9
+ finish(): void;
10
+ }
11
+ /**
12
+ * Step-based progress interface for structured multi-step operations.
13
+ * Tracks named steps with status indicators.
14
+ */
15
+ export interface StepProgress {
16
+ /** Mark the named step as started (pending state). */
17
+ startStep(name: string): void;
18
+ /** Mark the named step as successfully completed. */
19
+ completeStep(name: string): void;
20
+ /** Mark the named step as failed with an optional reason. */
21
+ failStep(name: string, reason?: string): void;
22
+ /** Mark the named step as skipped with an optional reason. */
23
+ skipStep(name: string, reason?: string): void;
24
+ /** Print a warning message associated with the current step. */
25
+ warn(message: string): void;
26
+ /** Finalize and print the overall summary. */
27
+ finish(): void;
28
+ }
29
+ export type StepStatus = "pending" | "running" | "done" | "failed" | "skipped";
30
+ export interface Step {
31
+ name: string;
32
+ status: StepStatus;
33
+ reason?: string;
34
+ }
35
+ export interface SummaryEntry {
36
+ label: string;
37
+ value: string | number;
38
+ }
39
+ export declare function createSummaryReport(title: string, entries: SummaryEntry[]): string;
40
+ export declare function formatDuration(ms: number): string;
41
+ export declare function createProgress(total: number, label: string): Progress;
42
+ /**
43
+ * Create a step-based progress tracker for structured multi-step CLI operations.
44
+ *
45
+ * Each step is printed as it starts/completes to give real-time feedback.
46
+ * Designed to be used with init, upgrade, and other multi-phase commands.
47
+ *
48
+ * @param totalSteps - Expected number of steps (used for summary only)
49
+ * @param title - Optional title printed before the first step
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * const steps = createStepProgress(4, "Initializing knowledgine");
54
+ * steps.startStep("Creating directory");
55
+ * steps.completeStep("Creating directory");
56
+ * steps.startStep("Reading configuration");
57
+ * steps.failStep("Reading configuration", "Permission denied");
58
+ * steps.finish();
59
+ * ```
60
+ */
61
+ export declare function createStepProgress(totalSteps: number, title?: string): StepProgress;
62
+ export { createSpinner, type Ora } from "./ui/spinner.js";
63
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/lib/progress.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,MAAM,IAAI,IAAI,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qDAAqD;IACrD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,gEAAgE;IAChE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,8CAA8C;IAC9C,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/E,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAOlF;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMjD;AA0CD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAmCrE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,CAuHnF;AAGD,OAAO,EAAE,aAAa,EAAE,KAAK,GAAG,EAAE,MAAM,iBAAiB,CAAC"}