@knowledgine/cli 0.0.1 → 0.1.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.
@@ -1,5 +1,6 @@
1
1
  export interface InitOptions {
2
2
  path?: string;
3
+ skipEmbeddings?: boolean;
3
4
  }
4
5
  export declare function initCommand(options: InitOptions): Promise<void>;
5
6
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BrE"}
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,19 +1,21 @@
1
1
  import { resolve } from "path";
2
2
  import { mkdirSync } from "fs";
3
- import { defineConfig, createDatabase, Migrator, KnowledgeRepository, ALL_MIGRATIONS, } from "@knowledgine/core";
3
+ import { defineConfig, createDatabase, Migrator, KnowledgeRepository, GraphRepository, ALL_MIGRATIONS, OnnxEmbeddingProvider, ModelManager, } from "@knowledgine/core";
4
4
  import { indexAll } from "../lib/indexer.js";
5
5
  export async function initCommand(options) {
6
6
  const rootPath = resolve(options.path ?? process.cwd());
7
7
  // Create .knowledgine directory
8
8
  const knowledgineDir = resolve(rootPath, ".knowledgine");
9
9
  mkdirSync(knowledgineDir, { recursive: true });
10
- // Initialize database
10
+ // Initialize database (sqlite-vec loaded inside createDatabase)
11
11
  const config = defineConfig({ rootPath });
12
- const db = createDatabase(config.dbPath);
12
+ const db = createDatabase(config.dbPath, { enableVec: true });
13
13
  new Migrator(db, ALL_MIGRATIONS).migrate();
14
14
  const repository = new KnowledgeRepository(db);
15
- // Index all markdown files
16
- const summary = await indexAll(rootPath, repository);
15
+ const graphRepository = new GraphRepository(db);
16
+ // Index all markdown files (with entity extraction)
17
+ console.error("Indexing markdown files...");
18
+ const summary = await indexAll(rootPath, repository, graphRepository);
17
19
  // Display summary (stderr to avoid MCP stdout conflicts)
18
20
  console.error(`Indexing complete:`);
19
21
  console.error(` Files: ${summary.processedFiles}/${summary.totalFiles}`);
@@ -25,6 +27,37 @@ export async function initCommand(options) {
25
27
  console.error(` - ${err}`);
26
28
  }
27
29
  }
30
+ // Generate embeddings if not skipped
31
+ if (!options.skipEmbeddings) {
32
+ const modelManager = new ModelManager();
33
+ if (modelManager.isModelAvailable()) {
34
+ console.error("Generating embeddings...");
35
+ const embeddingProvider = new OnnxEmbeddingProvider(undefined, modelManager);
36
+ const notesWithout = repository.getNotesWithoutEmbeddings();
37
+ let generated = 0;
38
+ let failed = 0;
39
+ for (const note of notesWithout) {
40
+ try {
41
+ const embedding = await embeddingProvider.embed(note.content);
42
+ repository.saveEmbedding(note.id, embedding, config.embedding.modelName);
43
+ generated++;
44
+ if (generated % 10 === 0) {
45
+ console.error(` Embeddings: ${generated}/${notesWithout.length}`);
46
+ }
47
+ }
48
+ catch {
49
+ failed++;
50
+ }
51
+ }
52
+ console.error(` Embeddings: ${generated} generated, ${failed} failed`);
53
+ }
54
+ else {
55
+ console.error("Skipping embeddings: model not found. Run: node scripts/download-model.js");
56
+ }
57
+ }
58
+ else {
59
+ console.error("Skipping embeddings (--skip-embeddings flag set).");
60
+ }
28
61
  db.close();
29
62
  }
30
63
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAM7C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAExD,gCAAgC;IAChC,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACzD,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,sBAAsB;IACtB,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAE/C,2BAA2B;IAC3B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAErD,yDAAyD;IACzD,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,EAAE,CAAC,KAAK,EAAE,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EvE"}
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,25 +1,40 @@
1
1
  import { resolve } from "path";
2
2
  import { mkdirSync } from "fs";
3
3
  import { watch } from "chokidar";
4
- import { defineConfig, createDatabase, Migrator, KnowledgeRepository, FileProcessor, PatternExtractor, ALL_MIGRATIONS, } from "@knowledgine/core";
4
+ import { defineConfig, createDatabase, Migrator, KnowledgeRepository, GraphRepository, 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
11
+ // Initialize database + migrations (sqlite-vec loaded inside createDatabase)
12
12
  const config = defineConfig({ rootPath });
13
- const db = createDatabase(config.dbPath);
13
+ const db = createDatabase(config.dbPath, { enableVec: true });
14
14
  new Migrator(db, ALL_MIGRATIONS).migrate();
15
15
  const repository = new KnowledgeRepository(db);
16
+ const graphRepository = new GraphRepository(db);
16
17
  // Warn if no notes indexed (H-8)
17
18
  const stats = repository.getStats();
18
19
  if (stats.totalNotes === 0) {
19
20
  console.error("Warning: No notes indexed. Run `knowledgine init` first.");
20
21
  }
22
+ // Initialize embedding provider if model is available
23
+ let embeddingProvider;
24
+ const modelManager = new ModelManager();
25
+ if (modelManager.isModelAvailable()) {
26
+ embeddingProvider = new OnnxEmbeddingProvider(undefined, modelManager);
27
+ }
28
+ 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
+ }
35
+ }
21
36
  // Start MCP server via stdio
22
- const server = createKnowledgineMcpServer(repository, rootPath);
37
+ const server = createKnowledgineMcpServer(repository, rootPath, embeddingProvider, graphRepository);
23
38
  const transport = new StdioServerTransport();
24
39
  await server.connect(transport);
25
40
  console.error("MCP server started on stdio");
@@ -34,7 +49,14 @@ export async function startCommand(options) {
34
49
  });
35
50
  watcher.on("add", async (filePath) => {
36
51
  try {
37
- await indexFile(filePath, rootPath, fileProcessor, patternExtractor, repository);
52
+ const noteId = await indexFile(filePath, rootPath, fileProcessor, patternExtractor, repository, graphRepository);
53
+ if (embeddingProvider) {
54
+ const note = repository.getNoteById(noteId);
55
+ if (note) {
56
+ const embedding = await embeddingProvider.embed(note.content);
57
+ repository.saveEmbedding(noteId, embedding, config.embedding.modelName);
58
+ }
59
+ }
38
60
  console.error(`Indexed: ${filePath}`);
39
61
  }
40
62
  catch (error) {
@@ -43,7 +65,14 @@ export async function startCommand(options) {
43
65
  });
44
66
  watcher.on("change", async (filePath) => {
45
67
  try {
46
- await indexFile(filePath, rootPath, fileProcessor, patternExtractor, repository);
68
+ const noteId = await indexFile(filePath, rootPath, fileProcessor, patternExtractor, repository, graphRepository);
69
+ if (embeddingProvider) {
70
+ const note = repository.getNoteById(noteId);
71
+ if (note) {
72
+ const embedding = await embeddingProvider.embed(note.content);
73
+ repository.saveEmbedding(noteId, embedding, config.embedding.modelName);
74
+ }
75
+ }
47
76
  console.error(`Re-indexed: ${filePath}`);
48
77
  }
49
78
  catch (error) {
@@ -62,6 +91,9 @@ export async function startCommand(options) {
62
91
  // Graceful shutdown
63
92
  const shutdown = async () => {
64
93
  console.error("Shutting down...");
94
+ if (embeddingProvider) {
95
+ await embeddingProvider.close();
96
+ }
65
97
  await watcher.close();
66
98
  db.close();
67
99
  process.exit(0);
@@ -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,4 +1,4 @@
1
- import { FileProcessor, PatternExtractor, KnowledgeRepository } from "@knowledgine/core";
1
+ import { FileProcessor, PatternExtractor, KnowledgeRepository, GraphRepository } from "@knowledgine/core";
2
2
  import type { ExtractedPattern } from "@knowledgine/core";
3
3
  export interface IndexSummary {
4
4
  totalFiles: number;
@@ -9,6 +9,10 @@ export interface IndexSummary {
9
9
  }
10
10
  export declare function discoverMarkdownFiles(rootPath: string): Promise<string[]>;
11
11
  export declare function deduplicatePatterns(patterns: ExtractedPattern[]): ExtractedPattern[];
12
- export declare function indexFile(relativePath: string, rootPath: string, fileProcessor: FileProcessor, patternExtractor: PatternExtractor, repository: KnowledgeRepository): Promise<number>;
13
- export declare function indexAll(rootPath: string, repository: KnowledgeRepository): Promise<IndexSummary>;
12
+ export interface IndexFileResult {
13
+ noteId: number;
14
+ patternCount: number;
15
+ }
16
+ 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>;
14
18
  //# sourceMappingURL=indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/lib/indexer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzF,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,wBAAsB,SAAS,CAC7B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAAC,YAAY,CAAC,CAiCvB"}
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,6 +1,6 @@
1
1
  import { readdir } from "fs/promises";
2
2
  import { join, extname } from "path";
3
- import { FileProcessor, PatternExtractor, KnowledgeRepository } from "@knowledgine/core";
3
+ import { FileProcessor, PatternExtractor, KnowledgeRepository, EntityExtractor, RelationInferrer, GraphRepository, } from "@knowledgine/core";
4
4
  export async function discoverMarkdownFiles(rootPath) {
5
5
  const entries = await readdir(rootPath, { recursive: true });
6
6
  return entries
@@ -25,7 +25,7 @@ export function deduplicatePatterns(patterns) {
25
25
  }
26
26
  return result;
27
27
  }
28
- export async function indexFile(relativePath, rootPath, fileProcessor, patternExtractor, repository) {
28
+ export async function indexFile(relativePath, rootPath, fileProcessor, patternExtractor, repository, graphRepository) {
29
29
  const absolutePath = join(rootPath, relativePath);
30
30
  const processed = await fileProcessor.processFile(absolutePath);
31
31
  const title = fileProcessor.extractTitle(processed.content, relativePath);
@@ -40,26 +40,63 @@ export async function indexFile(relativePath, rootPath, fileProcessor, patternEx
40
40
  const ticketPatterns = patternExtractor.extractTicketPatterns(processed.content);
41
41
  const allPatterns = deduplicatePatterns([...dailyPatterns, ...ticketPatterns]);
42
42
  repository.savePatterns(noteId, allPatterns);
43
- return allPatterns.length;
43
+ // エンティティ抽出・関係推論(graphRepositoryが提供された場合)
44
+ if (graphRepository) {
45
+ try {
46
+ const extractor = new EntityExtractor();
47
+ const inferrer = new RelationInferrer();
48
+ const extractedEntities = extractor.extract(processed.content, processed.frontmatter);
49
+ const now = new Date().toISOString();
50
+ // エンティティを登録してnoteにリンク
51
+ const entityList = [];
52
+ for (const entity of extractedEntities) {
53
+ const entityId = graphRepository.upsertEntity({
54
+ name: entity.name,
55
+ entityType: entity.entityType,
56
+ createdAt: now,
57
+ });
58
+ graphRepository.linkEntityToNote(entityId, noteId);
59
+ entityList.push({ name: entity.name, entityType: entity.entityType });
60
+ }
61
+ // 関係推論と登録
62
+ const inferredRelations = inferrer.infer(entityList, processed.frontmatter);
63
+ for (const rel of inferredRelations) {
64
+ const fromEntity = graphRepository.getEntityByName(rel.fromName, rel.fromType);
65
+ const toEntity = graphRepository.getEntityByName(rel.toName, rel.toType);
66
+ if (fromEntity?.id && toEntity?.id) {
67
+ graphRepository.upsertRelation({
68
+ fromEntityId: fromEntity.id,
69
+ toEntityId: toEntity.id,
70
+ relationType: rel.relationType,
71
+ strength: rel.strength,
72
+ createdAt: now,
73
+ });
74
+ }
75
+ }
76
+ }
77
+ catch {
78
+ // エンティティ抽出の失敗はファイルインデックスをブロックしない
79
+ }
80
+ }
81
+ return noteId;
44
82
  }
45
- export async function indexAll(rootPath, repository) {
83
+ export async function indexAll(rootPath, repository, graphRepository) {
46
84
  const start = Date.now();
47
85
  const fileProcessor = new FileProcessor();
48
86
  const patternExtractor = new PatternExtractor();
49
87
  const errors = [];
50
88
  const files = await discoverMarkdownFiles(rootPath);
51
89
  let processedFiles = 0;
52
- let totalPatterns = 0;
53
90
  for (const file of files) {
54
91
  try {
55
- const patternCount = await indexFile(file, rootPath, fileProcessor, patternExtractor, repository);
92
+ await indexFile(file, rootPath, fileProcessor, patternExtractor, repository, graphRepository);
56
93
  processedFiles++;
57
- totalPatterns += patternCount;
58
94
  }
59
95
  catch (error) {
60
96
  errors.push(`${file}: ${error instanceof Error ? error.message : String(error)}`);
61
97
  }
62
98
  }
99
+ const totalPatterns = repository.getStats().totalPatterns;
63
100
  return {
64
101
  totalFiles: files.length,
65
102
  processedFiles,
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knowledgine/cli",
3
- "version": "0.0.1",
3
+ "version": "0.1.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -16,19 +16,23 @@
16
16
  "dependencies": {
17
17
  "chokidar": "^5.0.0",
18
18
  "commander": "^14.0.3",
19
- "@knowledgine/core": "0.0.1",
20
- "@knowledgine/mcp-server": "0.0.1"
19
+ "@knowledgine/core": "0.1.0",
20
+ "@knowledgine/mcp-server": "0.1.0"
21
21
  },
22
22
  "files": [
23
23
  "dist"
24
24
  ],
25
25
  "description": "CLI for indexing markdown files and serving MCP knowledge tools",
26
+ "mcpName": "io.github.3062-in-zamud/knowledgine",
26
27
  "keywords": [
27
28
  "knowledgine",
28
- "cli",
29
29
  "mcp",
30
+ "model-context-protocol",
30
31
  "knowledge",
31
- "indexer"
32
+ "markdown",
33
+ "search",
34
+ "cli",
35
+ "developer-tools"
32
36
  ],
33
37
  "license": "MIT",
34
38
  "repository": {