@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,167 @@
1
+ import { resolve, join } from "path";
2
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync } from "fs";
3
+ import { homedir } from "os";
4
+ import { createInterface } from "readline";
5
+ function getClaudeDesktopConfigPath() {
6
+ switch (process.platform) {
7
+ case "darwin":
8
+ return join(homedir(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
9
+ case "linux":
10
+ return join(homedir(), ".config", "claude", "claude_desktop_config.json");
11
+ case "win32":
12
+ return join(process.env["APPDATA"] ?? join(homedir(), "AppData", "Roaming"), "Claude", "claude_desktop_config.json");
13
+ default:
14
+ return join(homedir(), ".config", "claude", "claude_desktop_config.json");
15
+ }
16
+ }
17
+ function getCursorConfigPath() {
18
+ return join(homedir(), ".cursor", "mcp.json");
19
+ }
20
+ function getConfigPath(target) {
21
+ switch (target) {
22
+ case "claude-desktop":
23
+ return getClaudeDesktopConfigPath();
24
+ case "cursor":
25
+ return getCursorConfigPath();
26
+ default:
27
+ throw new Error(`Unknown target: ${target}. Supported: claude-desktop, cursor`);
28
+ }
29
+ }
30
+ function getTargetLabel(target) {
31
+ switch (target) {
32
+ case "claude-desktop":
33
+ return "Claude Desktop";
34
+ case "cursor":
35
+ return "Cursor";
36
+ default:
37
+ return target;
38
+ }
39
+ }
40
+ function buildMcpConfig(rootPath) {
41
+ return {
42
+ command: "npx",
43
+ args: ["-y", "@knowledgine/cli", "start", "--path", rootPath],
44
+ };
45
+ }
46
+ function readExistingConfig(configPath) {
47
+ if (!existsSync(configPath)) {
48
+ return {};
49
+ }
50
+ const raw = readFileSync(configPath, "utf-8");
51
+ try {
52
+ return JSON.parse(raw);
53
+ }
54
+ catch {
55
+ throw new Error(`Failed to parse existing config: ${configPath}\n` +
56
+ `The file contains invalid JSON. Fix it manually or remove it before running setup.`);
57
+ }
58
+ }
59
+ function mergeConfig(existing, rootPath) {
60
+ const serverConfig = buildMcpConfig(rootPath);
61
+ return {
62
+ ...existing,
63
+ mcpServers: {
64
+ ...(existing.mcpServers ?? {}),
65
+ knowledgine: serverConfig,
66
+ },
67
+ };
68
+ }
69
+ function getDefaultIO() {
70
+ return {
71
+ input: process.stdin,
72
+ output: process.stderr,
73
+ isTTY: process.stderr.isTTY ?? false,
74
+ };
75
+ }
76
+ async function promptTarget(io) {
77
+ const targets = [
78
+ { value: "claude-desktop", label: "Claude Desktop" },
79
+ { value: "cursor", label: "Cursor" },
80
+ ];
81
+ return new Promise((resolvePrompt, reject) => {
82
+ const rl = createInterface({
83
+ input: io.input,
84
+ output: io.output,
85
+ });
86
+ io.output.write("Select target AI tool:\n");
87
+ for (let i = 0; i < targets.length; i++) {
88
+ io.output.write(` ${i + 1}) ${targets[i].label}\n`);
89
+ }
90
+ rl.question("Enter number (1-2): ", (answer) => {
91
+ rl.close();
92
+ const idx = parseInt(answer, 10) - 1;
93
+ if (idx >= 0 && idx < targets.length) {
94
+ resolvePrompt(targets[idx].value);
95
+ }
96
+ else {
97
+ reject(new Error("Invalid selection. Run with --target to specify directly."));
98
+ }
99
+ });
100
+ });
101
+ }
102
+ export async function setupCommand(options, io) {
103
+ const rootPath = resolve(options.path ?? process.cwd());
104
+ const setupIO = io ?? getDefaultIO();
105
+ // Check initialization
106
+ const knowledgineDir = resolve(rootPath, ".knowledgine");
107
+ if (!existsSync(knowledgineDir)) {
108
+ console.error(`Error: Not initialized. Run 'knowledgine init --path ${rootPath}' first.`);
109
+ process.exitCode = 1;
110
+ return;
111
+ }
112
+ // Determine target
113
+ let target = options.target;
114
+ if (!target) {
115
+ if (!setupIO.isTTY) {
116
+ console.error("Error: --target is required in non-interactive mode.");
117
+ console.error(" Supported targets: claude-desktop, cursor");
118
+ process.exitCode = 1;
119
+ return;
120
+ }
121
+ target = await promptTarget(setupIO);
122
+ }
123
+ const configPath = getConfigPath(target);
124
+ const targetLabel = getTargetLabel(target);
125
+ const shouldWrite = options.write === true;
126
+ // Read existing config (may throw on invalid JSON)
127
+ let existingConfig;
128
+ try {
129
+ existingConfig = readExistingConfig(configPath);
130
+ }
131
+ catch (error) {
132
+ console.error(error instanceof Error ? error.message : String(error));
133
+ process.exitCode = 1;
134
+ return;
135
+ }
136
+ const mergedConfig = mergeConfig(existingConfig, rootPath);
137
+ const configJson = JSON.stringify(mergedConfig, null, 2);
138
+ console.error(`\nMCP configuration for ${targetLabel}:`);
139
+ console.error(` Config: ${configPath}`);
140
+ console.error("");
141
+ console.error(configJson);
142
+ console.error("");
143
+ if (!shouldWrite) {
144
+ console.error(`To apply: Run with --write flag, then restart ${targetLabel}.`);
145
+ console.error(` knowledgine setup --target ${target} --path ${rootPath} --write`);
146
+ console.error("");
147
+ console.error("Run 'knowledgine status' to verify your setup.");
148
+ return;
149
+ }
150
+ // Write config
151
+ const configDir = resolve(configPath, "..");
152
+ if (!existsSync(configDir)) {
153
+ mkdirSync(configDir, { recursive: true });
154
+ }
155
+ // Backup existing file
156
+ if (existsSync(configPath)) {
157
+ const backupPath = configPath + ".bak";
158
+ copyFileSync(configPath, backupPath);
159
+ console.error(`Backup created: ${backupPath}`);
160
+ }
161
+ writeFileSync(configPath, configJson + "\n", "utf-8");
162
+ console.error(`Config written: ${configPath}`);
163
+ console.error("");
164
+ console.error(`Restart ${targetLabel} to activate knowledgine.`);
165
+ console.error("Run 'knowledgine status' to verify your setup.");
166
+ }
167
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export interface StartOptions {
2
2
  path?: string;
3
+ ingest?: boolean;
3
4
  }
4
5
  export declare function startCommand(options: StartOptions): Promise<void>;
5
6
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgIvE"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgNvE"}
@@ -1,43 +1,104 @@
1
1
  import { resolve } from "path";
2
2
  import { mkdirSync } from "fs";
3
3
  import { watch } from "chokidar";
4
- import { defineConfig, createDatabase, Migrator, KnowledgeRepository, GraphRepository, FileProcessor, PatternExtractor, ALL_MIGRATIONS, OnnxEmbeddingProvider, ModelManager, } from "@knowledgine/core";
4
+ import { loadConfig, createDatabase, loadSqliteVecExtension, Migrator, KnowledgeRepository, GraphRepository, FeedbackRepository, FileProcessor, PatternExtractor, ALL_MIGRATIONS, OnnxEmbeddingProvider, ModelManager, } from "@knowledgine/core";
5
5
  import { createKnowledgineMcpServer, StdioServerTransport } from "@knowledgine/mcp-server";
6
6
  import { indexFile } from "../lib/indexer.js";
7
7
  export async function startCommand(options) {
8
8
  const rootPath = resolve(options.path ?? process.cwd());
9
9
  // Ensure .knowledgine directory exists
10
10
  mkdirSync(resolve(rootPath, ".knowledgine"), { recursive: true });
11
- // Initialize database + migrations (sqlite-vec loaded inside createDatabase)
12
- const config = defineConfig({ rootPath });
13
- const db = createDatabase(config.dbPath, { enableVec: true });
11
+ // Load config (respects .knowledginerc.json and env vars)
12
+ const config = loadConfig(rootPath);
13
+ // Auto-detect model for backward compatibility
14
+ if (!config.embedding.enabled) {
15
+ const modelManager = new ModelManager();
16
+ if (modelManager.isModelAvailable(config.embedding.modelName)) {
17
+ config.embedding.enabled = true;
18
+ console.error("[knowledgine] Semantic search enabled (model detected)");
19
+ }
20
+ }
21
+ // Initialize database
22
+ const db = createDatabase(config.dbPath);
23
+ // Load sqlite-vec if semantic search is enabled
24
+ if (config.embedding.enabled) {
25
+ await loadSqliteVecExtension(db);
26
+ }
14
27
  new Migrator(db, ALL_MIGRATIONS).migrate();
15
28
  const repository = new KnowledgeRepository(db);
16
29
  const graphRepository = new GraphRepository(db);
30
+ const feedbackRepository = new FeedbackRepository(db);
17
31
  // Warn if no notes indexed (H-8)
18
32
  const stats = repository.getStats();
19
33
  if (stats.totalNotes === 0) {
20
34
  console.error("Warning: No notes indexed. Run `knowledgine init` first.");
21
35
  }
22
- // Initialize embedding provider if model is available
36
+ // Initialize embedding provider if model is available and semantic is enabled
23
37
  let embeddingProvider;
24
- const modelManager = new ModelManager();
25
- if (modelManager.isModelAvailable()) {
26
- embeddingProvider = new OnnxEmbeddingProvider(undefined, modelManager);
38
+ if (config.embedding.enabled) {
39
+ const modelManager = new ModelManager();
40
+ if (modelManager.isModelAvailable()) {
41
+ embeddingProvider = new OnnxEmbeddingProvider(undefined, modelManager);
42
+ }
43
+ else {
44
+ // Warn if notes exist but no embeddings
45
+ const notesWithout = repository.getNotesWithoutEmbeddings();
46
+ if (notesWithout.length > 0) {
47
+ console.error(`Warning: ${notesWithout.length} notes have no embeddings. ` +
48
+ "Semantic search unavailable. Run 'knowledgine upgrade --semantic' to download the model and generate embeddings.");
49
+ }
50
+ }
27
51
  }
28
52
  else {
29
- // Warn if notes exist but no embeddings
30
- const notesWithout = repository.getNotesWithoutEmbeddings();
31
- if (notesWithout.length > 0) {
32
- console.error(`Warning: ${notesWithout.length} notes have no embeddings. ` +
33
- "Semantic search unavailable. Run: node scripts/download-model.js");
34
- }
53
+ console.error("[knowledgine] Running with FTS5 full-text search only");
35
54
  }
36
55
  // Start MCP server via stdio
37
- const server = createKnowledgineMcpServer(repository, rootPath, embeddingProvider, graphRepository);
56
+ const server = createKnowledgineMcpServer({
57
+ repository,
58
+ rootPath,
59
+ embeddingProvider,
60
+ graphRepository,
61
+ feedbackRepository,
62
+ db,
63
+ });
38
64
  const transport = new StdioServerTransport();
39
65
  await server.connect(transport);
40
66
  console.error("MCP server started on stdio");
67
+ // IngestEngine integration (only when --ingest flag is set)
68
+ let ingestWatcher;
69
+ let ingestRegistry;
70
+ if (options.ingest) {
71
+ const { createDefaultRegistry, initializePlugins } = await import("../lib/plugin-loader.js");
72
+ const { IngestEngine } = await import("@knowledgine/ingest");
73
+ const { IngestWatcher } = await import("../lib/ingest-watcher.js");
74
+ ingestRegistry = createDefaultRegistry();
75
+ const initResults = await initializePlugins(ingestRegistry);
76
+ // Warn about failed plugins but continue
77
+ for (const [pluginId, result] of initResults) {
78
+ if (!result.ok) {
79
+ console.error(`Warning: Plugin "${pluginId}" failed to initialize: ${result.error}`);
80
+ }
81
+ }
82
+ const engine = new IngestEngine(ingestRegistry, db, repository);
83
+ ingestWatcher = new IngestWatcher({
84
+ engine,
85
+ registry: ingestRegistry,
86
+ rootPath,
87
+ onComplete: (summaries) => {
88
+ const total = summaries.reduce((acc, s) => acc + s.processed, 0);
89
+ const errors = summaries.reduce((acc, s) => acc + s.errors, 0);
90
+ console.error(`Ingest complete: ${total} events processed, ${errors} errors`);
91
+ },
92
+ onError: (pluginId, error) => {
93
+ console.error(`Ingest error (${pluginId}): ${error.message}`);
94
+ },
95
+ });
96
+ // Run initial ingest in background (don't block MCP responses)
97
+ ingestWatcher.runInitialIngest().catch((error) => {
98
+ console.error(`Initial ingest failed: ${error instanceof Error ? error.message : String(error)}`);
99
+ });
100
+ console.error("IngestEngine started (background ingestion)");
101
+ }
41
102
  // File watcher for auto-reindexing
42
103
  const fileProcessor = new FileProcessor();
43
104
  const patternExtractor = new PatternExtractor();
@@ -91,6 +152,12 @@ export async function startCommand(options) {
91
152
  // Graceful shutdown
92
153
  const shutdown = async () => {
93
154
  console.error("Shutting down...");
155
+ if (ingestWatcher) {
156
+ await ingestWatcher.stop();
157
+ }
158
+ if (ingestRegistry) {
159
+ await ingestRegistry.disposeAll();
160
+ }
94
161
  if (embeddingProvider) {
95
162
  await embeddingProvider.close();
96
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface StatusOptions {
2
+ path?: string;
3
+ }
4
+ export declare function statusCommand(options: StatusOptions): Promise<void>;
5
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA0CD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FzE"}
@@ -0,0 +1,121 @@
1
+ import { resolve, join } from "path";
2
+ import { existsSync, statSync, readFileSync } from "fs";
3
+ import { homedir } from "os";
4
+ import { loadConfig, createDatabase, Migrator, KnowledgeRepository, ALL_MIGRATIONS, ModelManager, } from "@knowledgine/core";
5
+ function formatBytes(bytes) {
6
+ if (bytes < 1024)
7
+ return `${bytes} B`;
8
+ if (bytes < 1024 * 1024)
9
+ return `${(bytes / 1024).toFixed(1)} KB`;
10
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
11
+ }
12
+ function getClaudeDesktopConfigPath() {
13
+ switch (process.platform) {
14
+ case "darwin":
15
+ return join(homedir(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
16
+ case "linux":
17
+ return join(homedir(), ".config", "claude", "claude_desktop_config.json");
18
+ case "win32":
19
+ return join(process.env["APPDATA"] ?? join(homedir(), "AppData", "Roaming"), "Claude", "claude_desktop_config.json");
20
+ default:
21
+ return join(homedir(), ".config", "claude", "claude_desktop_config.json");
22
+ }
23
+ }
24
+ function getCursorConfigPath() {
25
+ return join(homedir(), ".cursor", "mcp.json");
26
+ }
27
+ function checkMcpConfig(configPath) {
28
+ if (!existsSync(configPath))
29
+ return false;
30
+ try {
31
+ const raw = readFileSync(configPath, "utf-8");
32
+ const config = JSON.parse(raw);
33
+ return config.mcpServers != null && "knowledgine" in config.mcpServers;
34
+ }
35
+ catch {
36
+ return false;
37
+ }
38
+ }
39
+ export async function statusCommand(options) {
40
+ const rootPath = resolve(options.path ?? process.cwd());
41
+ const knowledgineDir = resolve(rootPath, ".knowledgine");
42
+ const dbPath = resolve(knowledgineDir, "index.sqlite");
43
+ console.error("");
44
+ // Database check
45
+ if (!existsSync(knowledgineDir) || !existsSync(dbPath)) {
46
+ console.error(" Status: Not initialized");
47
+ console.error(` Run 'knowledgine init --path ${rootPath}' to get started.`);
48
+ console.error("");
49
+ return;
50
+ }
51
+ const dbStat = statSync(dbPath);
52
+ console.error(` Database: ${dbPath} (${formatBytes(dbStat.size)})`);
53
+ // Open DB and get stats
54
+ let totalNotes = 0;
55
+ let totalPatterns = 0;
56
+ let notesWithoutEmbeddings = 0;
57
+ try {
58
+ const db = createDatabase(dbPath);
59
+ new Migrator(db, ALL_MIGRATIONS).migrate();
60
+ const repository = new KnowledgeRepository(db);
61
+ const stats = repository.getStats();
62
+ totalNotes = stats.totalNotes;
63
+ totalPatterns = stats.totalPatterns;
64
+ notesWithoutEmbeddings = repository.getNotesWithoutEmbeddings().length;
65
+ db.close();
66
+ }
67
+ catch (error) {
68
+ console.error(` Error reading database: ${error instanceof Error ? error.message : String(error)}`);
69
+ console.error("");
70
+ return;
71
+ }
72
+ const embeddingsGenerated = totalNotes - notesWithoutEmbeddings;
73
+ console.error(` Notes: ${totalNotes} indexed`);
74
+ console.error(` Patterns: ${totalPatterns} extracted`);
75
+ console.error(` Embeddings: ${embeddingsGenerated}/${totalNotes} generated`);
76
+ // Model check
77
+ const modelManager = new ModelManager();
78
+ const modelAvailable = modelManager.isModelAvailable();
79
+ console.error(` Model: all-MiniLM-L6-v2 (${modelAvailable ? "available" : "not found"})`);
80
+ // Semantic search mode
81
+ const config = loadConfig(rootPath);
82
+ const semanticMode = config.embedding.enabled || modelAvailable;
83
+ console.error(` Search mode: ${semanticMode ? "semantic + FTS5" : "FTS5 only"}`);
84
+ // MCP config checks
85
+ const targets = [
86
+ {
87
+ name: "Claude Desktop",
88
+ configured: checkMcpConfig(getClaudeDesktopConfigPath()),
89
+ configPath: getClaudeDesktopConfigPath(),
90
+ },
91
+ {
92
+ name: "Cursor",
93
+ configured: checkMcpConfig(getCursorConfigPath()),
94
+ configPath: getCursorConfigPath(),
95
+ },
96
+ ];
97
+ console.error(" MCP Config:");
98
+ for (const t of targets) {
99
+ const status = t.configured ? "configured" : "not configured";
100
+ console.error(` ${t.name}: ${status}`);
101
+ }
102
+ // Overall status
103
+ const isReady = totalNotes > 0;
104
+ const statusLabel = isReady
105
+ ? semanticMode
106
+ ? "Ready (semantic + FTS5)"
107
+ : "Ready (FTS5 only)"
108
+ : "Not initialized";
109
+ console.error(` Status: ${statusLabel}`);
110
+ if (!semanticMode && totalNotes > 0) {
111
+ console.error("");
112
+ console.error(" Hint: Run 'knowledgine upgrade --semantic' to enable semantic search.");
113
+ }
114
+ const unconfigured = targets.filter((t) => !t.configured);
115
+ if (unconfigured.length > 0 && totalNotes > 0) {
116
+ console.error("");
117
+ console.error(" Hint: Run 'knowledgine setup' to configure your AI tool.");
118
+ }
119
+ console.error("");
120
+ }
121
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { Command } from "commander";
2
+ export interface ToolSearchOptions {
3
+ path?: string;
4
+ limit?: string;
5
+ mode?: string;
6
+ format?: string;
7
+ }
8
+ export declare function toolSearchCommand(query: string, options: ToolSearchOptions): Promise<void>;
9
+ export interface ToolRelatedOptions {
10
+ path?: string;
11
+ id?: string;
12
+ file?: string;
13
+ limit?: string;
14
+ format?: string;
15
+ }
16
+ export declare function toolRelatedCommand(options: ToolRelatedOptions): Promise<void>;
17
+ export interface ToolStatsOptions {
18
+ path?: string;
19
+ format?: string;
20
+ }
21
+ export declare function toolStatsCommand(options: ToolStatsOptions): Promise<void>;
22
+ export interface ToolEntitiesOptions {
23
+ path?: string;
24
+ limit?: string;
25
+ format?: string;
26
+ }
27
+ export declare function toolEntitiesCommand(query: string, options: ToolEntitiesOptions): Promise<void>;
28
+ export declare function registerToolCommands(program: Command): void;
29
+ //# sourceMappingURL=tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/commands/tool.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCzC,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDnF;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC/E;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoC3D"}