@knowledgine/cli 0.4.1 → 0.5.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.
@@ -2,7 +2,7 @@ import { Command } from "commander";
2
2
  import { existsSync } from "fs";
3
3
  import { resolve } from "path";
4
4
  import { serve } from "@hono/node-server";
5
- import { loadConfig, resolveDefaultPath, createDatabase, Migrator, ALL_MIGRATIONS, KnowledgeRepository, GraphRepository, KnowledgeService, VERSION, } from "@knowledgine/core";
5
+ import { loadConfig, resolveDefaultPath, createDatabase, loadSqliteVecExtension, Migrator, ALL_MIGRATIONS, KnowledgeRepository, GraphRepository, KnowledgeService, OnnxEmbeddingProvider, ModelManager, DEFAULT_MODEL_NAME, VERSION, checkSemanticReadiness, } from "@knowledgine/core";
6
6
  import { createRestApp } from "@knowledgine/mcp-server";
7
7
  export function registerServeCommand(program) {
8
8
  program
@@ -27,11 +27,31 @@ async function serveAction(options) {
27
27
  new Migrator(db, ALL_MIGRATIONS).migrate();
28
28
  const repository = new KnowledgeRepository(db);
29
29
  const graphRepository = new GraphRepository(db);
30
- const service = new KnowledgeService({ repository, rootPath, graphRepository });
30
+ // Auto-detect model for backward compatibility (without mutating config)
31
+ const modelManager = new ModelManager();
32
+ const autoDetected = !config.embedding?.enabled && modelManager.isModelAvailable(config.embedding?.modelName);
33
+ const effectiveConfig = autoDetected
34
+ ? { ...config, embedding: { ...config.embedding, enabled: true } }
35
+ : config;
36
+ // Initialize embedding provider based on actual semantic readiness
37
+ const semanticReadiness = checkSemanticReadiness(effectiveConfig, modelManager, repository);
38
+ let embeddingProvider;
39
+ if (semanticReadiness.ready) {
40
+ // Load sqlite-vec when semantic search is effectively enabled (config or auto-detected)
41
+ await loadSqliteVecExtension(db);
42
+ embeddingProvider = new OnnxEmbeddingProvider(DEFAULT_MODEL_NAME, modelManager);
43
+ }
44
+ const service = new KnowledgeService({
45
+ repository,
46
+ rootPath,
47
+ graphRepository,
48
+ embeddingProvider,
49
+ });
31
50
  const app = createRestApp(service, VERSION);
32
51
  const port = parseInt(options.port ?? "3456", 10);
33
52
  const hostname = options.host ?? "127.0.0.1";
34
53
  const stats = service.getStats();
54
+ const searchMode = embeddingProvider ? "semantic + FTS5" : "FTS5 only";
35
55
  const server = serve({
36
56
  fetch: app.fetch,
37
57
  port,
@@ -40,10 +60,14 @@ async function serveAction(options) {
40
60
  console.error(`knowledgine REST API server running`);
41
61
  console.error(` URL: http://${hostname}:${port}`);
42
62
  console.error(` Notes: ${stats.totalNotes} indexed`);
63
+ console.error(` Search: ${searchMode}`);
43
64
  });
44
65
  // Graceful shutdown
45
- const shutdown = () => {
66
+ const shutdown = async () => {
46
67
  console.error("\nShutting down...");
68
+ if (embeddingProvider) {
69
+ await embeddingProvider.close();
70
+ }
47
71
  server.close();
48
72
  db.close();
49
73
  process.exit(0);
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export interface StartOptions {
2
2
  path?: string;
3
3
  ingest?: boolean;
4
+ watch?: boolean;
4
5
  }
5
6
  export declare function startCommand(options: StartOptions): Promise<void>;
6
7
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAuBA,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,CAqOvE"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgRvE"}
@@ -1,7 +1,7 @@
1
1
  import { resolve } from "path";
2
2
  import { mkdirSync } from "fs";
3
3
  import { watch } from "chokidar";
4
- import { loadConfig, resolveDefaultPath, createDatabase, loadSqliteVecExtension, Migrator, KnowledgeRepository, GraphRepository, FeedbackRepository, FileProcessor, PatternExtractor, ALL_MIGRATIONS, OnnxEmbeddingProvider, ModelManager, DEFAULT_MODEL_NAME, } from "@knowledgine/core";
4
+ import { loadConfig, resolveDefaultPath, createDatabase, loadSqliteVecExtension, Migrator, KnowledgeRepository, GraphRepository, FeedbackRepository, FileProcessor, PatternExtractor, ALL_MIGRATIONS, OnnxEmbeddingProvider, ModelManager, DEFAULT_MODEL_NAME, checkSemanticReadiness, } from "@knowledgine/core";
5
5
  import { createKnowledgineMcpServer, StdioServerTransport } from "@knowledgine/mcp-server";
6
6
  import { indexFile } from "../lib/indexer.js";
7
7
  import { createBox, colors, symbols } from "../lib/ui/index.js";
@@ -11,18 +11,16 @@ export async function startCommand(options) {
11
11
  mkdirSync(resolve(rootPath, ".knowledgine"), { recursive: true });
12
12
  // Load config (respects .knowledginerc.json and env vars)
13
13
  const config = loadConfig(rootPath);
14
- // Auto-detect model for backward compatibility
15
- if (!config.embedding.enabled) {
16
- const modelManager = new ModelManager();
17
- if (modelManager.isModelAvailable(config.embedding.modelName)) {
18
- config.embedding.enabled = true;
19
- console.error(`${symbols.success} ${colors.success("Semantic search enabled (model detected)")}`);
20
- }
14
+ // Auto-detect model for backward compatibility (without mutating config)
15
+ const modelManager = new ModelManager();
16
+ const autoDetected = !config.embedding.enabled && modelManager.isModelAvailable(config.embedding.modelName);
17
+ if (autoDetected) {
18
+ console.error(`${symbols.success} ${colors.success("Semantic search enabled (model detected)")}`);
21
19
  }
22
20
  // Initialize database
23
21
  const db = createDatabase(config.dbPath);
24
- // Load sqlite-vec if semantic search is enabled
25
- if (config.embedding.enabled) {
22
+ // Load sqlite-vec if semantic search is enabled (or auto-detected)
23
+ if (config.embedding.enabled || autoDetected) {
26
24
  await loadSqliteVecExtension(db);
27
25
  }
28
26
  new Migrator(db, ALL_MIGRATIONS).migrate();
@@ -34,21 +32,35 @@ export async function startCommand(options) {
34
32
  if (stats.totalNotes === 0) {
35
33
  console.error(`${symbols.warning} ${colors.warning("No notes indexed. Run `knowledgine init` first.")}`);
36
34
  }
37
- // Initialize embedding provider if model is available and semantic is enabled
35
+ // Initialize embedding provider based on semantic readiness
36
+ // Use effective config that accounts for auto-detection (without mutating original config)
37
+ const effectiveConfig = autoDetected
38
+ ? { ...config, embedding: { ...config.embedding, enabled: true } }
39
+ : config;
38
40
  let embeddingProvider;
39
- if (config.embedding.enabled) {
40
- const modelManager = new ModelManager();
41
- if (modelManager.isModelAvailable()) {
42
- embeddingProvider = new OnnxEmbeddingProvider(DEFAULT_MODEL_NAME, modelManager);
43
- }
44
- else {
45
- // Warn if notes exist but no embeddings
46
- const notesWithout = repository.getNotesWithoutEmbeddings();
47
- if (notesWithout.length > 0) {
48
- console.error(`${symbols.warning} ${colors.warning(`${notesWithout.length} notes have no embeddings. ` +
41
+ const semanticReadiness = checkSemanticReadiness(effectiveConfig, modelManager, repository);
42
+ if (semanticReadiness.ready) {
43
+ embeddingProvider = new OnnxEmbeddingProvider(DEFAULT_MODEL_NAME, modelManager);
44
+ // ONNX セッションをウォームアップして初回 semantic 検索のレイテンシスパイクを防止
45
+ embeddingProvider.embed("warmup").catch(() => {
46
+ // ウォームアップ失敗は無視(MCP 起動を妨げない)
47
+ });
48
+ }
49
+ else if (semanticReadiness.configEnabled) {
50
+ if (!semanticReadiness.modelAvailable) {
51
+ // Config enabled but model not downloaded
52
+ const notesWithoutCount = repository.getNotesWithoutEmbeddingIds().length;
53
+ if (notesWithoutCount > 0) {
54
+ console.error(`${symbols.warning} ${colors.warning(`${notesWithoutCount} notes have no embeddings. ` +
49
55
  "Semantic search unavailable. Run 'knowledgine upgrade --semantic' to download the model and generate embeddings.")}`);
50
56
  }
51
57
  }
58
+ else if (semanticReadiness.embeddingsCount === 0 && semanticReadiness.totalNotes > 0) {
59
+ // Model available but embeddings not yet generated
60
+ const notesWithoutCount = repository.getNotesWithoutEmbeddingIds().length;
61
+ console.error(`${symbols.warning} ${colors.warning(`${notesWithoutCount} notes have no embeddings. ` +
62
+ "Semantic search unavailable. Run 'knowledgine upgrade --semantic' to download the model and generate embeddings.")}`);
63
+ }
52
64
  }
53
65
  else {
54
66
  console.error(`${symbols.info} ${colors.info("Running with FTS5 full-text search only")}`);
@@ -64,7 +76,7 @@ export async function startCommand(options) {
64
76
  });
65
77
  const transport = new StdioServerTransport();
66
78
  await server.connect(transport);
67
- const searchMode = config.embedding.enabled ? "semantic + FTS5" : "FTS5 full-text search";
79
+ const searchMode = semanticReadiness.ready ? "semantic + FTS5" : "FTS5 full-text search";
68
80
  console.error(createBox([
69
81
  `${symbols.info} Path: ${rootPath}`,
70
82
  `${symbols.info} Notes: ${stats.totalNotes} indexed`,
@@ -109,53 +121,73 @@ export async function startCommand(options) {
109
121
  // File watcher for auto-reindexing
110
122
  const fileProcessor = new FileProcessor();
111
123
  const patternExtractor = new PatternExtractor();
112
- const watcher = watch("**/*.md", {
113
- cwd: rootPath,
114
- ignored: [/node_modules/, /\.knowledgine/],
115
- persistent: true,
116
- ignoreInitial: true,
117
- });
118
- watcher.on("add", async (filePath) => {
119
- try {
120
- const noteId = await indexFile(filePath, rootPath, fileProcessor, patternExtractor, repository, graphRepository);
121
- if (embeddingProvider) {
122
- const note = repository.getNoteById(noteId);
123
- if (note) {
124
- const embedding = await embeddingProvider.embed(note.content);
125
- repository.saveEmbedding(noteId, embedding, config.embedding.modelName);
124
+ let watcher;
125
+ if (options.watch !== false) {
126
+ watcher = watch("**/*.md", {
127
+ cwd: rootPath,
128
+ ignored: [/node_modules/, /\.knowledgine/, /\.git/, /dist/],
129
+ persistent: true,
130
+ ignoreInitial: true,
131
+ });
132
+ watcher.on("error", (err) => {
133
+ const nodeErr = err;
134
+ if (nodeErr.code === "EMFILE" || nodeErr.code === "ENOSPC") {
135
+ console.error(`${symbols.error} ${colors.error("File watcher limit reached. Use --no-watch to disable.")}`);
136
+ console.error(` Or increase the limit: ulimit -n 4096`);
137
+ // Gracefully close the watcher to prevent further EMFILE cascading
138
+ watcher?.close().catch(() => { });
139
+ watcher = undefined;
140
+ console.error(`${symbols.info} ${colors.info("File watcher stopped. MCP server continues without auto-reindexing.")}`);
141
+ }
142
+ else {
143
+ console.error(`${symbols.error} ${colors.error(`File watcher error: ${nodeErr.message ?? String(err)}`)}`);
144
+ }
145
+ });
146
+ watcher.on("add", async (filePath) => {
147
+ try {
148
+ const noteId = await indexFile(filePath, rootPath, fileProcessor, patternExtractor, repository, graphRepository);
149
+ if (embeddingProvider) {
150
+ const note = repository.getNoteById(noteId);
151
+ if (note) {
152
+ const embedding = await embeddingProvider.embed(note.content);
153
+ repository.saveEmbedding(noteId, embedding, config.embedding.modelName);
154
+ }
126
155
  }
156
+ console.error(`${symbols.arrow} ${colors.info(`Indexed: ${filePath}`)}`);
127
157
  }
128
- console.error(`${symbols.arrow} ${colors.info(`Indexed: ${filePath}`)}`);
129
- }
130
- catch (error) {
131
- console.error(`${symbols.error} ${colors.error(`Error indexing ${filePath}: ${error instanceof Error ? error.message : error}`)}`);
132
- }
133
- });
134
- watcher.on("change", async (filePath) => {
135
- try {
136
- const noteId = await indexFile(filePath, rootPath, fileProcessor, patternExtractor, repository, graphRepository);
137
- if (embeddingProvider) {
138
- const note = repository.getNoteById(noteId);
139
- if (note) {
140
- const embedding = await embeddingProvider.embed(note.content);
141
- repository.saveEmbedding(noteId, embedding, config.embedding.modelName);
158
+ catch (error) {
159
+ console.error(`${symbols.error} ${colors.error(`Error indexing ${filePath}: ${error instanceof Error ? error.message : error}`)}`);
160
+ }
161
+ });
162
+ watcher.on("change", async (filePath) => {
163
+ try {
164
+ const noteId = await indexFile(filePath, rootPath, fileProcessor, patternExtractor, repository, graphRepository);
165
+ if (embeddingProvider) {
166
+ const note = repository.getNoteById(noteId);
167
+ if (note) {
168
+ const embedding = await embeddingProvider.embed(note.content);
169
+ repository.saveEmbedding(noteId, embedding, config.embedding.modelName);
170
+ }
142
171
  }
172
+ console.error(`${symbols.arrow} ${colors.info(`Re-indexed: ${filePath}`)}`);
143
173
  }
144
- console.error(`${symbols.arrow} ${colors.info(`Re-indexed: ${filePath}`)}`);
145
- }
146
- catch (error) {
147
- console.error(`${symbols.error} ${colors.error(`Error re-indexing ${filePath}: ${error instanceof Error ? error.message : error}`)}`);
148
- }
149
- });
150
- watcher.on("unlink", (filePath) => {
151
- try {
152
- repository.deleteNoteByPath(filePath);
153
- console.error(`${symbols.arrow} ${colors.info(`Removed: ${filePath}`)}`);
154
- }
155
- catch (error) {
156
- console.error(`${symbols.error} ${colors.error(`Error removing ${filePath}: ${error instanceof Error ? error.message : error}`)}`);
157
- }
158
- });
174
+ catch (error) {
175
+ console.error(`${symbols.error} ${colors.error(`Error re-indexing ${filePath}: ${error instanceof Error ? error.message : error}`)}`);
176
+ }
177
+ });
178
+ watcher.on("unlink", (filePath) => {
179
+ try {
180
+ repository.deleteNoteByPath(filePath);
181
+ console.error(`${symbols.arrow} ${colors.info(`Removed: ${filePath}`)}`);
182
+ }
183
+ catch (error) {
184
+ console.error(`${symbols.error} ${colors.error(`Error removing ${filePath}: ${error instanceof Error ? error.message : error}`)}`);
185
+ }
186
+ });
187
+ }
188
+ else {
189
+ console.error(`${symbols.info} ${colors.info("File watcher disabled (--no-watch)")}`);
190
+ }
159
191
  // Graceful shutdown
160
192
  const shutdown = async () => {
161
193
  console.error("Shutting down...");
@@ -168,7 +200,9 @@ export async function startCommand(options) {
168
200
  if (embeddingProvider) {
169
201
  await embeddingProvider.close();
170
202
  }
171
- await watcher.close();
203
+ if (watcher) {
204
+ await watcher.close();
205
+ }
172
206
  db.close();
173
207
  process.exit(0);
174
208
  };
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA2BD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2IzE"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA2BD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA8IzE"}
@@ -1,6 +1,6 @@
1
1
  import { resolve } from "path";
2
2
  import { existsSync, statSync, readFileSync } from "fs";
3
- import { loadConfig, resolveDefaultPath, createDatabase, Migrator, KnowledgeRepository, ALL_MIGRATIONS, ModelManager, } from "@knowledgine/core";
3
+ import { loadConfig, resolveDefaultPath, createDatabase, Migrator, KnowledgeRepository, ALL_MIGRATIONS, ModelManager, checkSemanticReadiness, } from "@knowledgine/core";
4
4
  import { createBox, colors, symbols } from "../lib/ui/index.js";
5
5
  import { getConfigPath, TARGETS, PROJECT_CONFIG_SUPPORT } from "./setup.js";
6
6
  import * as TOML from "smol-toml";
@@ -49,10 +49,12 @@ export async function statusCommand(options) {
49
49
  }
50
50
  const dbStat = statSync(dbPath);
51
51
  const sizeStr = formatBytes(dbStat.size);
52
+ const config = loadConfig(rootPath);
52
53
  // Open DB and get stats
53
54
  let totalNotes = 0;
54
55
  let totalPatterns = 0;
55
- let notesWithoutEmbeddings = 0;
56
+ let notesBySource = {};
57
+ let readiness;
56
58
  try {
57
59
  const db = createDatabase(dbPath);
58
60
  new Migrator(db, ALL_MIGRATIONS).migrate();
@@ -60,7 +62,9 @@ export async function statusCommand(options) {
60
62
  const stats = repository.getStats();
61
63
  totalNotes = stats.totalNotes;
62
64
  totalPatterns = stats.totalPatterns;
63
- notesWithoutEmbeddings = repository.getNotesWithoutEmbeddings().length;
65
+ notesBySource = stats.notesBySource;
66
+ const modelManager = new ModelManager();
67
+ readiness = checkSemanticReadiness(config, modelManager, repository);
64
68
  db.close();
65
69
  }
66
70
  catch (error) {
@@ -68,13 +72,9 @@ export async function statusCommand(options) {
68
72
  console.error("");
69
73
  return;
70
74
  }
71
- const embeddingsGenerated = totalNotes - notesWithoutEmbeddings;
72
- // Model check
73
- const modelManager = new ModelManager();
74
- const modelAvailable = modelManager.isModelAvailable();
75
- // Semantic search mode
76
- const config = loadConfig(rootPath);
77
- const semanticMode = config.embedding.enabled || modelAvailable;
75
+ // readiness is always set if we reach here (no early return from catch)
76
+ const { modelAvailable, embeddingsCount: embeddingsGenerated } = readiness;
77
+ const semanticMode = readiness.ready;
78
78
  // MCP config checks — check all supported targets (global + project level)
79
79
  const configuredTools = [];
80
80
  for (const t of TARGETS) {
@@ -100,11 +100,7 @@ export async function statusCommand(options) {
100
100
  }
101
101
  // Overall status
102
102
  const isReady = totalNotes > 0;
103
- const statusLabel = isReady
104
- ? semanticMode
105
- ? "Ready (semantic + FTS5)"
106
- : "Ready (FTS5 only)"
107
- : "Not initialized";
103
+ const statusLabel = readiness.label;
108
104
  // Build content
109
105
  const modelLine = modelAvailable
110
106
  ? `${symbols.success} all-MiniLM-L6-v2 (available)`
@@ -123,10 +119,14 @@ export async function statusCommand(options) {
123
119
  const mcpLine = configuredTools.length > 0
124
120
  ? `${symbols.success} ${colors.success(configuredTools.join(", "))}`
125
121
  : colors.hint("none configured");
122
+ // Build source breakdown lines
123
+ const sourceEntries = Object.entries(notesBySource).sort(([, a], [, b]) => b - a);
124
+ const sourceLines = sourceEntries.map(([source, count]) => ` ${colors.dim(source.padEnd(16))}${count}`);
126
125
  const contentParts = [
127
126
  `${colors.bold("Database")}`,
128
127
  ` ${pad("Path:")}${dbPath} (${sizeStr})`,
129
128
  ` ${pad("Notes:")}${colors.info(String(totalNotes))} indexed`,
129
+ ...(sourceEntries.length > 1 ? sourceLines : []),
130
130
  ` ${pad("Patterns:")}${colors.info(String(totalPatterns))} extracted`,
131
131
  ` ${pad("Embeddings:")}${colors.info(`${embeddingsGenerated}/${totalNotes}`)} generated`,
132
132
  "",
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiK3E"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA+K3E"}
@@ -3,9 +3,6 @@ import { existsSync } from "fs";
3
3
  import { loadConfig, writeRcConfig, resolveDefaultPath, createDatabase, loadSqliteVecExtension, Migrator, KnowledgeRepository, ALL_MIGRATIONS, OnnxEmbeddingProvider, ModelManager, DEFAULT_MODEL_NAME, downloadModel, } from "@knowledgine/core";
4
4
  import { createProgress } from "../lib/progress.js";
5
5
  import { colors, symbols, createBox } from "../lib/ui/index.js";
6
- function sanitizeForLog(value) {
7
- return value.replace(/[\r\n]+/g, " ");
8
- }
9
6
  export async function upgradeCommand(options) {
10
7
  const rootPath = resolveDefaultPath(options.path);
11
8
  if (!options.semantic) {
@@ -87,9 +84,8 @@ export async function upgradeCommand(options) {
87
84
  });
88
85
  console.error(`${symbols.success} ${colors.success("Model download complete.")}`);
89
86
  }
90
- catch (error) {
91
- const message = sanitizeForLog(error instanceof Error ? error.message : String(error));
92
- console.error(colors.error(`\nModel download failed: ${message}`));
87
+ catch {
88
+ console.error(colors.error("\nModel download failed. Check your network connection and try again."));
93
89
  console.error(colors.error("Semantic search upgrade aborted."));
94
90
  db.close();
95
91
  process.exitCode = 1;
@@ -101,25 +97,36 @@ export async function upgradeCommand(options) {
101
97
  }
102
98
  // Generate embeddings for notes that don't have them
103
99
  const embeddingProvider = new OnnxEmbeddingProvider(DEFAULT_MODEL_NAME, modelManager);
104
- const notesWithout = repository.getNotesWithoutEmbeddings();
105
- if (notesWithout.length > 0) {
100
+ const noteIds = repository.getNotesWithoutEmbeddingIds();
101
+ if (noteIds.length > 0) {
106
102
  // Warm up the ONNX session (first call is slow due to model loading)
107
103
  console.error(colors.info("\nLoading embedding model..."));
108
104
  await embeddingProvider.embed("warmup");
109
105
  console.error("");
110
- const embProgress = createProgress(notesWithout.length, "Generating embeddings");
106
+ const BATCH_SIZE = 20;
107
+ const embProgress = createProgress(noteIds.length, "Generating embeddings");
111
108
  let generated = 0;
112
109
  let failed = 0;
113
- for (const note of notesWithout) {
110
+ for (let i = 0; i < noteIds.length; i += BATCH_SIZE) {
111
+ const batchIds = noteIds.slice(i, i + BATCH_SIZE);
112
+ const noteRows = repository.getNotesByIds(batchIds);
113
+ // getNotesByIds の返り順は不定なので id→note Map で安全にマッピング
114
+ const noteMap = new Map(noteRows.map((n) => [n.id, n]));
115
+ const orderedNotes = batchIds.map((id) => noteMap.get(id)).filter((n) => n != null);
114
116
  try {
115
- const embedding = await embeddingProvider.embed(note.content);
116
- repository.saveEmbedding(note.id, embedding, config.embedding.modelName);
117
- generated++;
118
- embProgress.update(generated);
117
+ const embeddings = await embeddingProvider.embedBatch(orderedNotes.map((n) => n.content));
118
+ const result = repository.saveEmbeddingBatch(orderedNotes.map((n, j) => ({
119
+ noteId: n.id,
120
+ embedding: embeddings[j],
121
+ modelName: config.embedding.modelName,
122
+ })));
123
+ generated += result.saved;
124
+ failed += result.failed;
119
125
  }
120
126
  catch {
121
- failed++;
127
+ failed += orderedNotes.length;
122
128
  }
129
+ embProgress.update(generated + failed > noteIds.length ? noteIds.length : generated + failed);
123
130
  }
124
131
  embProgress.finish();
125
132
  console.error(` ${symbols.success} ${colors.success(`Generated: ${generated}`)}, Failed: ${failed}`);
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}