@knowledgine/cli 0.1.0 → 0.2.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 (87) hide show
  1. package/dist/commands/capture.d.ts +10 -0
  2. package/dist/commands/capture.d.ts.map +1 -0
  3. package/dist/commands/capture.js +132 -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 +44 -0
  8. package/dist/commands/demo.js.map +1 -0
  9. package/dist/commands/feedback.d.ts +18 -0
  10. package/dist/commands/feedback.d.ts.map +1 -0
  11. package/dist/commands/feedback.js +79 -0
  12. package/dist/commands/feedback.js.map +1 -0
  13. package/dist/commands/ingest.d.ts +8 -0
  14. package/dist/commands/ingest.d.ts.map +1 -0
  15. package/dist/commands/ingest.js +98 -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 +294 -37
  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 +40 -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 +117 -0
  28. package/dist/commands/search.js.map +1 -0
  29. package/dist/commands/setup.d.ts +14 -0
  30. package/dist/commands/setup.d.ts.map +1 -0
  31. package/dist/commands/setup.js +167 -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 +82 -15
  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 +121 -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 +91 -0
  48. package/dist/commands/upgrade.js.map +1 -0
  49. package/dist/index.js +144 -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/formatter.d.ts +7 -0
  56. package/dist/lib/formatter.d.ts.map +1 -0
  57. package/dist/lib/formatter.js +91 -0
  58. package/dist/lib/formatter.js.map +1 -0
  59. package/dist/lib/indexer.d.ts +4 -1
  60. package/dist/lib/indexer.d.ts.map +1 -1
  61. package/dist/lib/indexer.js +2 -1
  62. package/dist/lib/indexer.js.map +1 -1
  63. package/dist/lib/ingest-watcher.d.ts +20 -0
  64. package/dist/lib/ingest-watcher.d.ts.map +1 -0
  65. package/dist/lib/ingest-watcher.js +44 -0
  66. package/dist/lib/ingest-watcher.js.map +1 -0
  67. package/dist/lib/plugin-loader.d.ts +5 -0
  68. package/dist/lib/plugin-loader.d.ts.map +1 -0
  69. package/dist/lib/plugin-loader.js +27 -0
  70. package/dist/lib/plugin-loader.js.map +1 -0
  71. package/dist/lib/progress.d.ts +57 -0
  72. package/dist/lib/progress.d.ts.map +1 -0
  73. package/dist/lib/progress.js +191 -0
  74. package/dist/lib/progress.js.map +1 -0
  75. package/dist/lib/url-validator.d.ts +2 -0
  76. package/dist/lib/url-validator.d.ts.map +1 -0
  77. package/dist/lib/url-validator.js +17 -0
  78. package/dist/lib/url-validator.js.map +1 -0
  79. package/fixtures/demo/notes/api-design-decisions.md +79 -0
  80. package/fixtures/demo/notes/auth-debugging.md +52 -0
  81. package/fixtures/demo/notes/ci-cd-pipeline.md +90 -0
  82. package/fixtures/demo/notes/code-review-notes.md +71 -0
  83. package/fixtures/demo/notes/database-optimization.md +73 -0
  84. package/fixtures/demo/notes/docker-troubleshooting.md +74 -0
  85. package/fixtures/demo/notes/react-performance.md +66 -0
  86. package/fixtures/demo/notes/typescript-migration.md +80 -0
  87. package/package.json +6 -4
@@ -0,0 +1,10 @@
1
+ export interface CaptureCommandOptions {
2
+ url?: string;
3
+ file?: string;
4
+ tags?: string;
5
+ title?: string;
6
+ path?: string;
7
+ format?: string;
8
+ }
9
+ export declare function captureCommand(text: string | undefined, options: CaptureCommandOptions): Promise<void>;
10
+ //# sourceMappingURL=capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqHf"}
@@ -0,0 +1,132 @@
1
+ import { resolve } from "path";
2
+ import { existsSync, readFileSync } from "fs";
3
+ import { loadConfig, createDatabase, Migrator, KnowledgeRepository, ALL_MIGRATIONS, } from "@knowledgine/core";
4
+ import { EventWriter, sanitizeContent } from "@knowledgine/ingest";
5
+ import { validateCaptureUrl } from "../lib/url-validator.js";
6
+ async function readStdin() {
7
+ return new Promise((resolve, reject) => {
8
+ const chunks = [];
9
+ process.stdin.on("data", (chunk) => chunks.push(chunk));
10
+ process.stdin.on("end", () => resolve(Buffer.concat(chunks).toString("utf-8")));
11
+ process.stdin.on("error", reject);
12
+ });
13
+ }
14
+ export async function captureCommand(text, options) {
15
+ // 1. DB初期化
16
+ const rootPath = options.path ? resolve(options.path) : resolve(process.cwd());
17
+ const knowledgineDir = resolve(rootPath, ".knowledgine");
18
+ if (!existsSync(knowledgineDir)) {
19
+ console.error("Error: Knowledge base not initialized.\n Run: knowledgine init --path <dir>");
20
+ process.exitCode = 1;
21
+ return;
22
+ }
23
+ // 2. 入力ソース判定(排他)
24
+ let content;
25
+ let sourceUri;
26
+ let sourceType;
27
+ if (text) {
28
+ content = text;
29
+ sourceUri = "capture://text";
30
+ sourceType = "text";
31
+ }
32
+ else if (options.url) {
33
+ try {
34
+ const parsed = validateCaptureUrl(options.url);
35
+ const response = await fetch(parsed.href);
36
+ if (!response.ok) {
37
+ console.error(`Error: Failed to fetch URL: ${response.status} ${response.statusText}`);
38
+ process.exitCode = 1;
39
+ return;
40
+ }
41
+ content = await response.text();
42
+ sourceUri = parsed.href;
43
+ sourceType = "url";
44
+ }
45
+ catch (error) {
46
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
47
+ process.exitCode = 1;
48
+ return;
49
+ }
50
+ }
51
+ else if (options.file) {
52
+ const filePath = resolve(options.file);
53
+ if (!existsSync(filePath)) {
54
+ console.error(`Error: File not found: ${filePath}`);
55
+ process.exitCode = 1;
56
+ return;
57
+ }
58
+ content = readFileSync(filePath, "utf-8");
59
+ sourceUri = `file://${filePath}`;
60
+ sourceType = "file";
61
+ }
62
+ else if (!process.stdin.isTTY) {
63
+ content = await readStdin();
64
+ if (!content.trim()) {
65
+ console.error("Error: No input provided. Provide text, --url, --file, or pipe via stdin.");
66
+ process.exitCode = 1;
67
+ return;
68
+ }
69
+ sourceUri = "capture://stdin";
70
+ sourceType = "stdin";
71
+ }
72
+ else {
73
+ console.error("Error: No input provided. Provide text, --url, --file, or pipe via stdin.");
74
+ process.exitCode = 1;
75
+ return;
76
+ }
77
+ // 3. タイトルとタグ
78
+ const title = options.title || content.slice(0, 50).replace(/\n/g, " ").trim();
79
+ const tags = options.tags ? options.tags.split(",").map((t) => t.trim()).filter(Boolean) : [];
80
+ // 4. NormalizedEvent構築
81
+ const event = {
82
+ sourceUri,
83
+ eventType: "capture",
84
+ title,
85
+ content: sanitizeContent(content),
86
+ timestamp: new Date(),
87
+ metadata: {
88
+ sourcePlugin: "capture",
89
+ sourceId: `capture-${Date.now()}`,
90
+ tags: tags.length > 0 ? tags : undefined,
91
+ },
92
+ };
93
+ // 5. DB書き込み
94
+ const config = loadConfig(rootPath);
95
+ const db = createDatabase(config.dbPath);
96
+ try {
97
+ new Migrator(db, ALL_MIGRATIONS).migrate();
98
+ const repository = new KnowledgeRepository(db);
99
+ const writer = new EventWriter(db, repository);
100
+ const result = writer.writeEvent(event);
101
+ // 6. 出力
102
+ const format = options.format ?? "plain";
103
+ if (format === "json") {
104
+ console.log(JSON.stringify({
105
+ ok: true,
106
+ command: "capture",
107
+ result: {
108
+ id: result.id,
109
+ title,
110
+ tags,
111
+ sourceUri,
112
+ },
113
+ }));
114
+ }
115
+ else {
116
+ console.error(`Captured (id: ${result.id})`);
117
+ console.error(` Title: ${title}`);
118
+ if (tags.length > 0) {
119
+ console.error(` Tags: ${tags.join(", ")}`);
120
+ }
121
+ console.error(` Source: ${sourceType} (manual)`);
122
+ }
123
+ }
124
+ catch (error) {
125
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
126
+ process.exitCode = 1;
127
+ }
128
+ finally {
129
+ db.close();
130
+ }
131
+ }
132
+ //# sourceMappingURL=capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface DemoOptions {
2
+ clean?: boolean;
3
+ }
4
+ export declare function getDemoNotesPath(basePath?: string): string;
5
+ export declare function demoCommand(options: DemoOptions): Promise<void>;
6
+ //# sourceMappingURL=demo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCrE"}
@@ -0,0 +1,44 @@
1
+ import { resolve } from "path";
2
+ import { existsSync } from "fs";
3
+ import { cleanDemo, getDemoDir } from "../lib/demo-manager.js";
4
+ const DEMO_NOTES_DIR = "knowledgine-demo-notes";
5
+ export function getDemoNotesPath(basePath) {
6
+ return resolve(basePath ?? process.cwd(), DEMO_NOTES_DIR);
7
+ }
8
+ export async function demoCommand(options) {
9
+ if (options.clean) {
10
+ const demoPath = getDemoNotesPath();
11
+ if (!existsSync(demoPath)) {
12
+ console.error("No demo files found to clean.");
13
+ return;
14
+ }
15
+ cleanDemo(demoPath);
16
+ console.error("Demo files cleaned successfully.");
17
+ return;
18
+ }
19
+ // Show demo usage information
20
+ const demoDir = getDemoDir();
21
+ const hasDemoFixtures = existsSync(demoDir);
22
+ console.error("knowledgine demo mode");
23
+ console.error("");
24
+ if (!hasDemoFixtures) {
25
+ console.error("Error: Demo fixtures not found. Reinstall the package.");
26
+ return;
27
+ }
28
+ console.error("Try knowledgine with sample developer notes:");
29
+ console.error("");
30
+ console.error(" 1. knowledgine init --demo Set up demo environment");
31
+ console.error(' 2. knowledgine search "auth" --demo Search demo notes');
32
+ console.error(" 3. knowledgine demo --clean Remove demo files");
33
+ console.error("");
34
+ console.error("The demo includes 8 sample notes covering:");
35
+ console.error(" - Authentication debugging (JWT)");
36
+ console.error(" - React performance optimization");
37
+ console.error(" - Docker networking troubleshooting");
38
+ console.error(" - REST API design decisions");
39
+ console.error(" - TypeScript migration learnings");
40
+ console.error(" - Database query optimization");
41
+ console.error(" - CI/CD pipeline setup");
42
+ console.error(" - Code review guidelines");
43
+ }
44
+ //# sourceMappingURL=demo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAM/D,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,OAAO,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IACxE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACvD,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjD,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface FeedbackListOptions {
2
+ status?: string;
3
+ path?: string;
4
+ }
5
+ export declare function feedbackListCommand(options: FeedbackListOptions): Promise<void>;
6
+ export interface FeedbackApplyOptions {
7
+ path?: string;
8
+ }
9
+ export declare function feedbackApplyCommand(idStr: string, options: FeedbackApplyOptions): Promise<void>;
10
+ export interface FeedbackDismissOptions {
11
+ path?: string;
12
+ }
13
+ export declare function feedbackDismissCommand(idStr: string, options: FeedbackDismissOptions): Promise<void>;
14
+ export interface FeedbackStatsOptions {
15
+ path?: string;
16
+ }
17
+ export declare function feedbackStatsCommand(options: FeedbackStatsOptions): Promise<void>;
18
+ //# sourceMappingURL=feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/commands/feedback.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBrF;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUvF"}
@@ -0,0 +1,79 @@
1
+ import { resolve } from "path";
2
+ import { loadConfig, createDatabase, Migrator, ALL_MIGRATIONS, FeedbackRepository, FeedbackLearner, } from "@knowledgine/core";
3
+ function createFeedbackDeps(rootPath) {
4
+ const config = loadConfig(rootPath);
5
+ const db = createDatabase(config.dbPath);
6
+ new Migrator(db, ALL_MIGRATIONS).migrate();
7
+ const feedbackRepository = new FeedbackRepository(db);
8
+ const rulesPath = resolve(rootPath, ".knowledgine", "extraction-rules.json");
9
+ const feedbackLearner = new FeedbackLearner(feedbackRepository, rulesPath);
10
+ return { feedbackRepository, feedbackLearner };
11
+ }
12
+ export async function feedbackListCommand(options) {
13
+ const rootPath = resolve(options.path ?? process.cwd());
14
+ const { feedbackRepository } = createFeedbackDeps(rootPath);
15
+ const records = feedbackRepository.list({ status: options.status });
16
+ if (records.length === 0) {
17
+ console.log("No feedback records found.");
18
+ return;
19
+ }
20
+ console.log(`Found ${records.length} feedback record(s):\n`);
21
+ for (const r of records) {
22
+ console.log(` [#${r.id}] ${r.errorType} | entity="${r.entityName}" | status=${r.status}`);
23
+ if (r.entityType)
24
+ console.log(` type: ${r.entityType}`);
25
+ if (r.correctType)
26
+ console.log(` correct_type: ${r.correctType}`);
27
+ if (r.details)
28
+ console.log(` details: ${r.details}`);
29
+ console.log(` created: ${r.createdAt}`);
30
+ console.log();
31
+ }
32
+ }
33
+ export async function feedbackApplyCommand(idStr, options) {
34
+ const rootPath = resolve(options.path ?? process.cwd());
35
+ const { feedbackLearner } = createFeedbackDeps(rootPath);
36
+ const id = parseInt(idStr, 10);
37
+ if (isNaN(id) || id <= 0) {
38
+ console.error(`Invalid feedback ID: ${idStr}`);
39
+ process.exitCode = 1;
40
+ return;
41
+ }
42
+ try {
43
+ feedbackLearner.applyFeedback(id);
44
+ console.log(`Feedback #${id} applied successfully. Extraction rules updated.`);
45
+ }
46
+ catch (error) {
47
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
48
+ process.exitCode = 1;
49
+ }
50
+ }
51
+ export async function feedbackDismissCommand(idStr, options) {
52
+ const rootPath = resolve(options.path ?? process.cwd());
53
+ const { feedbackRepository } = createFeedbackDeps(rootPath);
54
+ const id = parseInt(idStr, 10);
55
+ if (isNaN(id) || id <= 0) {
56
+ console.error(`Invalid feedback ID: ${idStr}`);
57
+ process.exitCode = 1;
58
+ return;
59
+ }
60
+ try {
61
+ feedbackRepository.updateStatus(id, "dismissed");
62
+ console.log(`Feedback #${id} dismissed.`);
63
+ }
64
+ catch (error) {
65
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
66
+ process.exitCode = 1;
67
+ }
68
+ }
69
+ export async function feedbackStatsCommand(options) {
70
+ const rootPath = resolve(options.path ?? process.cwd());
71
+ const { feedbackRepository } = createFeedbackDeps(rootPath);
72
+ const stats = feedbackRepository.getStats();
73
+ console.log("Feedback Statistics:");
74
+ console.log(` Total: ${stats.total}`);
75
+ console.log(` Pending: ${stats.pending}`);
76
+ console.log(` Applied: ${stats.applied}`);
77
+ console.log(` Dismissed: ${stats.dismissed}`);
78
+ }
79
+ //# sourceMappingURL=feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/commands/feedback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface IngestOptions {
2
+ source?: string;
3
+ path?: string;
4
+ full?: boolean;
5
+ all?: boolean;
6
+ }
7
+ export declare function ingestCommand(options: IngestOptions): Promise<void>;
8
+ //# sourceMappingURL=ingest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/commands/ingest.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA+GzE"}
@@ -0,0 +1,98 @@
1
+ import { resolve } from "path";
2
+ import { mkdirSync } from "fs";
3
+ import { defineConfig, createDatabase, Migrator, KnowledgeRepository, ALL_MIGRATIONS, } from "@knowledgine/core";
4
+ import { IngestEngine } from "@knowledgine/ingest";
5
+ import { createDefaultRegistry, initializePlugins } from "../lib/plugin-loader.js";
6
+ import { createProgress, formatDuration } from "../lib/progress.js";
7
+ export async function ingestCommand(options) {
8
+ // Validate mutually exclusive options
9
+ if (options.source && options.all) {
10
+ console.error("Error: --source and --all cannot be used together");
11
+ process.exitCode = 1;
12
+ return;
13
+ }
14
+ if (!options.source && !options.all) {
15
+ console.error("Error: Specify --source <pluginId> or --all");
16
+ console.error("Usage: knowledgine ingest --source <id> --path <dir>");
17
+ console.error(" knowledgine ingest --all --path <dir>");
18
+ process.exitCode = 1;
19
+ return;
20
+ }
21
+ const rootPath = resolve(options.path ?? process.cwd());
22
+ // Initialize database (same pattern as init.ts)
23
+ const knowledgineDir = resolve(rootPath, ".knowledgine");
24
+ mkdirSync(knowledgineDir, { recursive: true });
25
+ const config = defineConfig({ rootPath });
26
+ const db = createDatabase(config.dbPath, { enableVec: true });
27
+ new Migrator(db, ALL_MIGRATIONS).migrate();
28
+ const repository = new KnowledgeRepository(db);
29
+ // Setup plugin registry
30
+ const registry = createDefaultRegistry();
31
+ const initResults = await initializePlugins(registry);
32
+ // Check for specific plugin
33
+ if (options.source) {
34
+ if (!registry.has(options.source)) {
35
+ console.error(`Error: Plugin "${options.source}" is not registered.`);
36
+ console.error(`Available plugins: ${registry.list().map((p) => p.manifest.id).join(", ")}`);
37
+ process.exitCode = 1;
38
+ db.close();
39
+ return;
40
+ }
41
+ const initResult = initResults.get(options.source);
42
+ if (initResult && !initResult.ok) {
43
+ console.error(`Error: Plugin "${options.source}" failed to initialize: ${initResult.error}`);
44
+ process.exitCode = 1;
45
+ db.close();
46
+ return;
47
+ }
48
+ }
49
+ // Run ingest
50
+ const engine = new IngestEngine(registry, db, repository);
51
+ const startTime = Date.now();
52
+ try {
53
+ if (options.all) {
54
+ const plugins = registry.list();
55
+ const progress = createProgress(plugins.length, "Ingesting");
56
+ let completed = 0;
57
+ for (const plugin of plugins) {
58
+ const initResult = initResults.get(plugin.manifest.id);
59
+ if (initResult && !initResult.ok) {
60
+ console.error(`Warning: Skipping "${plugin.manifest.id}" (init failed: ${initResult.error})`);
61
+ completed++;
62
+ progress.update(completed, plugin.manifest.id);
63
+ continue;
64
+ }
65
+ try {
66
+ const summary = await engine.ingest(plugin.manifest.id, rootPath, {
67
+ full: options.full,
68
+ });
69
+ completed++;
70
+ progress.update(completed, plugin.manifest.id);
71
+ console.error(` ${plugin.manifest.id}: ${summary.processed} events (${summary.errors} errors, ${formatDuration(summary.elapsedMs)})`);
72
+ }
73
+ catch (error) {
74
+ completed++;
75
+ progress.update(completed, plugin.manifest.id);
76
+ console.error(` ${plugin.manifest.id}: failed - ${error instanceof Error ? error.message : String(error)}`);
77
+ }
78
+ }
79
+ progress.finish();
80
+ }
81
+ else {
82
+ const summary = await engine.ingest(options.source, rootPath, {
83
+ full: options.full,
84
+ });
85
+ console.error(`Ingest complete (${formatDuration(summary.elapsedMs)}): ${summary.processed} events, ${summary.errors} errors`);
86
+ }
87
+ }
88
+ catch (error) {
89
+ console.error(`Ingest failed: ${error instanceof Error ? error.message : String(error)}`);
90
+ process.exitCode = 1;
91
+ }
92
+ finally {
93
+ const elapsed = formatDuration(Date.now() - startTime);
94
+ console.error(`Total elapsed: ${elapsed}`);
95
+ db.close();
96
+ }
97
+ }
98
+ //# sourceMappingURL=ingest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/commands/ingest.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  export interface InitOptions {
2
2
  path?: string;
3
+ semantic?: boolean;
3
4
  skipEmbeddings?: boolean;
5
+ demo?: boolean;
4
6
  }
5
7
  export declare function initCommand(options: InitOptions): Promise<void>;
6
8
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DrE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAqED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmSrE"}