@echoes-io/mcp-server 6.0.0 → 6.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.
package/README.md CHANGED
@@ -83,7 +83,8 @@ Configure in your MCP client (e.g., Claude Desktop, Kiro):
83
83
  |----------|----------|---------|-------------|
84
84
  | `GEMINI_API_KEY` | Yes | - | API key for Gemini entity extraction |
85
85
  | `ECHOES_GEMINI_MODEL` | No | `gemini-2.5-flash` | Gemini model for extraction |
86
- | `ECHOES_EMBEDDING_MODEL` | No | `Xenova/multilingual-e5-small` | HuggingFace embedding model |
86
+ | `ECHOES_EMBEDDING_MODEL` | No | `Xenova/e5-small-v2` | HuggingFace embedding model |
87
+ | `ECHOES_EMBEDDING_DTYPE` | No | `fp32` | Quantization level: `fp32`, `fp16`, `q8`, `q4` |
87
88
  | `HF_TOKEN` | No | - | HuggingFace token for gated models |
88
89
 
89
90
  ## Available Tools
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAYtD,eAAO,MAAM,OAAO,qBAGa,CAAC"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AActD,eAAO,MAAM,OAAO,qBAGa,CAAC"}
package/cli/program.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { Command } from '@commander-js/extra-typings';
2
2
  import { DEFAULT_DB_PATH } from '../lib/constants.js';
3
+ import { runIndexTasks } from '../lib/indexer/tasks.js';
3
4
  import { startServer } from '../lib/server.js';
4
- import { index, indexConfig } from '../lib/tools/index.js';
5
+ import { indexConfig } from '../lib/tools/index.js';
6
+ import { list, listConfig } from '../lib/tools/list.js';
5
7
  import { search, searchConfig } from '../lib/tools/search.js';
6
8
  import { stats, statsConfig } from '../lib/tools/stats.js';
7
9
  import { wordsCount, wordsCountConfig } from '../lib/tools/words-count.js';
@@ -66,23 +68,23 @@ program
66
68
  program
67
69
  .command(indexConfig.name)
68
70
  .description(indexConfig.description)
69
- .argument('<contentPath>', indexConfig.arguments.contentPath)
71
+ .argument('[contentPath]', indexConfig.arguments.contentPath, './content')
70
72
  .option('--db <path>', 'Database path', DEFAULT_DB_PATH)
71
73
  .option('--arc <name>', indexConfig.arguments.arc)
72
74
  .option('--force', indexConfig.arguments.force)
73
75
  .action(async (contentPath, { db, arc, force }) => {
74
76
  try {
75
- console.log('šŸ” Indexing timeline...\n');
76
- const result = await index({ contentPath, arc, force, dbPath: db });
77
- console.log('āœ… Indexing complete\n');
78
- console.log(` šŸ“– Indexed: ${result.indexed}`);
79
- console.log(` ā­ļø Skipped: ${result.skipped}`);
80
- console.log(` šŸ—‘ļø Deleted: ${result.deleted}`);
81
- console.log(` šŸ‘¤ Entities: ${result.entities}`);
77
+ // Use default renderer for CLI (shows progress bar)
78
+ const result = await runIndexTasks({ contentPath, arc, force, dbPath: db });
79
+ console.log('\nšŸ“Š Summary');
80
+ console.log(` šŸ“– Indexed: ${result.indexed} chapters`);
81
+ console.log(` ā­ļø Skipped: ${result.skipped} chapters`);
82
+ console.log(` šŸ—‘ļø Deleted: ${result.deleted} chapters`);
83
+ console.log(` šŸ‘¤ Entities: ${result.entities}`);
82
84
  console.log(` šŸ”— Relations: ${result.relations}`);
83
85
  }
84
86
  catch (error) {
85
- console.error(`āŒ Error: ${error.message}`);
87
+ console.error(`\nāŒ Error: ${error.message}`);
86
88
  process.exit(1);
87
89
  }
88
90
  });
@@ -139,6 +141,54 @@ program
139
141
  process.exit(1);
140
142
  }
141
143
  });
144
+ program
145
+ .command(listConfig.name)
146
+ .description(listConfig.description)
147
+ .argument('<type>', listConfig.arguments.type)
148
+ .option('--db <path>', 'Database path', DEFAULT_DB_PATH)
149
+ .option('--arc <name>', listConfig.arguments.arc)
150
+ .option('--entity-type <type>', listConfig.arguments.entityType)
151
+ .option('--relation-type <type>', listConfig.arguments.relationType)
152
+ .action(async (type, { db, arc, entityType, relationType }) => {
153
+ try {
154
+ const result = await list({
155
+ type: type,
156
+ arc,
157
+ entityType: entityType,
158
+ relationType: relationType,
159
+ dbPath: db,
160
+ });
161
+ if (result.type === 'entities') {
162
+ console.log(`šŸ‘¤ Found ${result.results.length} entities\n`);
163
+ for (const e of result.results) {
164
+ console.log(`${e.name} (${e.type})`);
165
+ console.log(` ${e.description}`);
166
+ /* c8 ignore start */
167
+ if (Array.isArray(e.aliases) && e.aliases.length > 0) {
168
+ console.log(` Aliases: ${e.aliases.join(', ')}`);
169
+ }
170
+ /* c8 ignore stop */
171
+ console.log(` Chapters: ${e.chapter_count}`);
172
+ console.log('');
173
+ }
174
+ }
175
+ else {
176
+ console.log(`šŸ”— Found ${result.results.length} relations\n`);
177
+ for (const r of result.results) {
178
+ const source = r.source_entity.split(':').pop();
179
+ const target = r.target_entity.split(':').pop();
180
+ console.log(`${source} → ${r.type} → ${target}`);
181
+ console.log(` ${r.description}`);
182
+ console.log(` Chapters: ${r.chapters.length}`);
183
+ console.log('');
184
+ }
185
+ }
186
+ }
187
+ catch (error) {
188
+ console.error(`āŒ Error: ${error.message}`);
189
+ process.exit(1);
190
+ }
191
+ });
142
192
  /* c8 ignore start */
143
193
  program
144
194
  .command('serve')
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["program.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  export declare const DEFAULT_EMBEDDING_MODEL = "Xenova/e5-small-v2";
5
5
  export declare const TEST_EMBEDDING_MODEL = "Xenova/e5-small-v2";
6
+ export declare const SCHEMA_VERSION = 1;
6
7
  export declare const DEFAULT_GEMINI_MODEL = "gemini-2.5-flash";
7
- export declare const DEFAULT_DB_PATH = "db";
8
+ export declare const DEFAULT_DB_PATH = "./db";
8
9
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAG5D,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAGzD,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAGvD,eAAO,MAAM,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAG5D,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAGzD,eAAO,MAAM,cAAc,IAAI,CAAC;AAGhC,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAGvD,eAAO,MAAM,eAAe,SAAS,CAAC"}
package/lib/constants.js CHANGED
@@ -5,8 +5,10 @@
5
5
  export const DEFAULT_EMBEDDING_MODEL = 'Xenova/e5-small-v2';
6
6
  // Test embedding model (same as default for consistency)
7
7
  export const TEST_EMBEDDING_MODEL = 'Xenova/e5-small-v2';
8
+ // Schema version - bump this when database schema changes require re-indexing
9
+ export const SCHEMA_VERSION = 1;
8
10
  // Default Gemini model
9
11
  export const DEFAULT_GEMINI_MODEL = 'gemini-2.5-flash';
10
12
  // Default database path
11
- export const DEFAULT_DB_PATH = 'db';
13
+ export const DEFAULT_DB_PATH = './db';
12
14
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAE5D,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAEzD,uBAAuB;AACvB,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEvD,wBAAwB;AACxB,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAE5D,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAEzD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,uBAAuB;AACvB,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEvD,wBAAwB;AACxB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC"}
@@ -2,13 +2,15 @@ import { type Connection } from '@lancedb/lancedb';
2
2
  import { type ChapterRecord, type EntityRecord, type RelationRecord } from './schemas.js';
3
3
  export declare class Database {
4
4
  readonly dbPath: string;
5
+ private readonly force;
5
6
  private db;
6
7
  private tables;
7
8
  private migrationChecked;
8
9
  private metadata;
10
+ private _embeddingDim;
9
11
  private tableConfigs;
10
12
  private get metadataPath();
11
- constructor(dbPath: string);
13
+ constructor(dbPath: string, force?: boolean);
12
14
  private getMetadata;
13
15
  private getTableConfigs;
14
16
  get embeddingModel(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,kBAAkB,CAAC;AAMxE,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,YAAY,EACjB,KAAK,cAAc,EAEpB,MAAM,cAAc,CAAC;AActB,qBAAa,QAAQ;aAeS,MAAM,EAAE,MAAM;IAd1C,OAAO,CAAC,EAAE,CAA2B;IACrC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,YAAY,CAIJ;IAEhB,OAAO,KAAK,YAAY,GAEvB;gBAE2B,MAAM,EAAE,MAAM;YAE5B,WAAW;YAeX,eAAe;IAc7B,IAAI,cAAc,IAAI,MAAM,CAG3B;IAED,IAAI,YAAY,IAAI,MAAM,CAGzB;YAEa,aAAa;YAKb,cAAc;IAgD5B,OAAO,CAAC,YAAY;IAQd,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;YAKtB,QAAQ;YAeR,MAAM;IAWd,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3D,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAgBnD,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAahD,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBvD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAgBvF,cAAc,CAClB,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC;IAmBpB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAmBjE,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAmB1E,KAAK,IAAI,IAAI;CAId"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,kBAAkB,CAAC;AAKxE,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,YAAY,EACjB,KAAK,cAAc,EAEpB,MAAM,cAAc,CAAC;AAatB,qBAAa,QAAQ;aAiBD,MAAM,EAAE,MAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAjBxB,OAAO,CAAC,EAAE,CAA2B;IACrC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAIJ;IAEhB,OAAO,KAAK,YAAY,GAEvB;gBAGiB,MAAM,EAAE,MAAM,EACb,KAAK,UAAQ;YAGlB,WAAW;YAcX,eAAe;IAc7B,IAAI,cAAc,IAAI,MAAM,CAG3B;IAED,IAAI,YAAY,IAAI,MAAM,CAGzB;YAEa,aAAa;YAKb,cAAc;IAwD5B,OAAO,CAAC,YAAY;IAQd,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;YAKtB,QAAQ;YAeR,MAAM;IAWd,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3D,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAgBnD,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAahD,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBvD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAgBvF,cAAc,CAClB,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC;IAmBpB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAmBjE,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAmB1E,KAAK,IAAI,IAAI;CAId"}
@@ -1,41 +1,43 @@
1
1
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { connect } from '@lancedb/lancedb';
4
+ import { SCHEMA_VERSION } from '../constants.js';
4
5
  import { getEmbeddingDimension, getEmbeddingModel } from '../indexer/embeddings.js';
5
- import { getPackageConfig } from '../utils.js';
6
6
  import { createChapterSchema, createEntitySchema, RelationSchema, } from './schemas.js';
7
7
  export class Database {
8
8
  dbPath;
9
+ force;
9
10
  db = null;
10
11
  tables = new Map();
11
12
  migrationChecked = false;
12
13
  metadata = null;
14
+ _embeddingDim = null;
13
15
  tableConfigs = null;
14
16
  get metadataPath() {
15
17
  return join(this.dbPath, 'metadata.json');
16
18
  }
17
- constructor(dbPath) {
19
+ constructor(dbPath, force = false) {
18
20
  this.dbPath = dbPath;
21
+ this.force = force;
19
22
  }
20
23
  async getMetadata() {
21
24
  if (this.metadata)
22
25
  return this.metadata;
23
26
  const model = getEmbeddingModel();
24
- const dim = await getEmbeddingDimension(model);
27
+ this._embeddingDim = await getEmbeddingDimension(model);
25
28
  this.metadata = {
26
- version: getPackageConfig().version,
29
+ schemaVersion: SCHEMA_VERSION,
27
30
  embeddingModel: model,
28
- embeddingDim: dim,
29
31
  };
30
32
  return this.metadata;
31
33
  }
32
34
  async getTableConfigs() {
33
35
  if (this.tableConfigs)
34
36
  return this.tableConfigs;
35
- const metadata = await this.getMetadata();
37
+ await this.getMetadata();
36
38
  this.tableConfigs = {
37
- chapters: { name: 'chapters', schema: createChapterSchema(metadata.embeddingDim) },
38
- entities: { name: 'entities', schema: createEntitySchema(metadata.embeddingDim) },
39
+ chapters: { name: 'chapters', schema: createChapterSchema(this._embeddingDim) },
40
+ entities: { name: 'entities', schema: createEntitySchema(this._embeddingDim) },
39
41
  relations: { name: 'relations', schema: RelationSchema },
40
42
  };
41
43
  return this.tableConfigs;
@@ -46,9 +48,9 @@ export class Database {
46
48
  return this.metadata.embeddingModel;
47
49
  }
48
50
  get embeddingDim() {
49
- if (!this.metadata)
51
+ if (!this._embeddingDim)
50
52
  throw new Error('Database not connected');
51
- return this.metadata.embeddingDim;
53
+ return this._embeddingDim;
52
54
  }
53
55
  async getConnection() {
54
56
  this.db ??= await connect(this.dbPath);
@@ -66,18 +68,19 @@ export class Database {
66
68
  try {
67
69
  const stored = JSON.parse(readFileSync(this.metadataPath, 'utf-8'));
68
70
  const reasons = [];
69
- if (stored.version !== current.version) {
70
- reasons.push(`version ${stored.version} → ${current.version}`);
71
+ if ((stored.schemaVersion ?? 0) < current.schemaVersion) {
72
+ reasons.push(`schema version ${stored.schemaVersion ?? 0} → ${current.schemaVersion}`);
71
73
  }
72
74
  if (stored.embeddingModel !== current.embeddingModel) {
73
- reasons.push(`model ${stored.embeddingModel} → ${current.embeddingModel}`);
74
- }
75
- if (stored.embeddingDim !== current.embeddingDim) {
76
- reasons.push(`dimension ${stored.embeddingDim} → ${current.embeddingDim}`);
75
+ reasons.push(`embedding model ${stored.embeddingModel} → ${current.embeddingModel}`);
77
76
  }
78
77
  if (reasons.length > 0) {
79
- console.log(`šŸ”„ Database config changed: ${reasons.join(', ')}`);
80
- console.log('šŸ—‘ļø Removing old database for re-indexing...');
78
+ if (!this.force) {
79
+ throw new Error(`Database migration required: ${reasons.join(', ')}\n` +
80
+ 'This requires re-indexing all content. Use --force to confirm and reset the database.');
81
+ }
82
+ console.log(`šŸ”„ Database migration: ${reasons.join(', ')}`);
83
+ console.log('šŸ—‘ļø Resetting database for re-indexing...');
81
84
  const db = await this.getConnection();
82
85
  const existingTables = await db.tableNames();
83
86
  const configs = await this.getTableConfigs();
@@ -91,7 +94,11 @@ export class Database {
91
94
  console.log('āœ… Database ready for re-indexing');
92
95
  }
93
96
  }
94
- catch {
97
+ catch (error) {
98
+ // Re-throw migration errors, only ignore JSON parse errors
99
+ if (error instanceof Error && error.message.includes('Database migration required')) {
100
+ throw error;
101
+ }
95
102
  this.saveMetadata();
96
103
  }
97
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
+ type DType = 'fp32' | 'fp16' | 'q8' | 'q4';
1
2
  export declare function getEmbeddingModel(): string;
3
+ export declare function getEmbeddingDtype(): DType;
2
4
  export declare function getEmbeddingDimension(model?: string): Promise<number>;
3
- export declare function generateEmbedding(text: string, model?: string): Promise<number[]>;
4
- export declare function generateEmbeddings(texts: string[], model?: string): Promise<number[][]>;
5
+ export declare function preloadModel(model?: string, dtype?: DType): Promise<void>;
6
+ export declare function generateEmbedding(text: string, model?: string, dtype?: DType): Promise<number[]>;
7
+ export declare function generateEmbeddings(texts: string[], model?: string, dtype?: DType): Promise<number[][]>;
5
8
  export declare function resetExtractor(): void;
9
+ export {};
6
10
  //# sourceMappingURL=embeddings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["embeddings.ts"],"names":[],"mappings":"AAaA,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAsB,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU3E;AAkBD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKvF;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAU7F;AAED,wBAAgB,cAAc,IAAI,IAAI,CAIrC"}
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["embeddings.ts"],"names":[],"mappings":"AASA,KAAK,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAO3C,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,iBAAiB,IAAI,KAAK,CAEzC;AAED,wBAAsB,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU3E;AAmBD,wBAAsB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/E;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAMnB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAWrB;AAED,wBAAgB,cAAc,IAAI,IAAI,CAKrC"}
@@ -2,10 +2,14 @@ import { AutoConfig, pipeline, } from '@huggingface/transformers';
2
2
  import { DEFAULT_EMBEDDING_MODEL } from '../constants.js';
3
3
  let extractor = null;
4
4
  let currentModel = null;
5
+ let currentDtype = null;
5
6
  let cachedDimension = null;
6
7
  export function getEmbeddingModel() {
7
8
  return process.env.ECHOES_EMBEDDING_MODEL ?? DEFAULT_EMBEDDING_MODEL;
8
9
  }
10
+ export function getEmbeddingDtype() {
11
+ return process.env.ECHOES_EMBEDDING_DTYPE ?? 'fp32';
12
+ }
9
13
  export async function getEmbeddingDimension(model) {
10
14
  const m = model ?? getEmbeddingModel();
11
15
  if (cachedDimension && currentModel === m) {
@@ -15,29 +19,37 @@ export async function getEmbeddingDimension(model) {
15
19
  // @ts-expect-error hidden_size exists on transformer configs
16
20
  return config.hidden_size;
17
21
  }
18
- async function getExtractor(model) {
19
- if (extractor && currentModel === model) {
22
+ async function getExtractor(model, dtype) {
23
+ if (extractor && currentModel === model && currentDtype === dtype) {
20
24
  return extractor;
21
25
  }
22
- extractor = await pipeline('feature-extraction', model);
26
+ extractor = await pipeline('feature-extraction', model, { dtype });
23
27
  currentModel = model;
28
+ currentDtype = dtype;
24
29
  // Cache dimension when loading model
25
30
  const config = await AutoConfig.from_pretrained(model);
26
31
  // @ts-expect-error hidden_size exists on transformer configs
27
32
  cachedDimension = config.hidden_size;
28
33
  return extractor;
29
34
  }
30
- export async function generateEmbedding(text, model) {
35
+ export async function preloadModel(model, dtype) {
36
+ const m = model ?? getEmbeddingModel();
37
+ const d = dtype ?? getEmbeddingDtype();
38
+ await getExtractor(m, d);
39
+ }
40
+ export async function generateEmbedding(text, model, dtype) {
31
41
  const m = model ?? getEmbeddingModel();
32
- const ext = await getExtractor(m);
42
+ const d = dtype ?? getEmbeddingDtype();
43
+ const ext = await getExtractor(m, d);
33
44
  const output = (await ext(text, { pooling: 'mean', normalize: true }));
34
45
  return Array.from(output.data);
35
46
  }
36
- export async function generateEmbeddings(texts, model) {
47
+ export async function generateEmbeddings(texts, model, dtype) {
37
48
  if (texts.length === 0)
38
49
  return [];
39
50
  const m = model ?? getEmbeddingModel();
40
- const ext = await getExtractor(m);
51
+ const d = dtype ?? getEmbeddingDtype();
52
+ const ext = await getExtractor(m, d);
41
53
  const output = (await ext(texts, { pooling: 'mean', normalize: true }));
42
54
  const data = output.data;
43
55
  const dim = output.dims[1];
@@ -46,6 +58,7 @@ export async function generateEmbeddings(texts, model) {
46
58
  export function resetExtractor() {
47
59
  extractor = null;
48
60
  currentModel = null;
61
+ currentDtype = null;
49
62
  cachedDimension = null;
50
63
  }
51
64
  //# sourceMappingURL=embeddings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,QAAQ,GAET,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,IAAI,SAAS,GAAqC,IAAI,CAAC;AACvD,IAAI,YAAY,GAAkB,IAAI,CAAC;AACvC,IAAI,eAAe,GAAkB,IAAI,CAAC;AAE1C,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,uBAAuB,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAAc;IACxD,MAAM,CAAC,GAAG,KAAK,IAAI,iBAAiB,EAAE,CAAC;IAEvC,IAAI,eAAe,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnD,6DAA6D;IAC7D,OAAO,MAAM,CAAC,WAAqB,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAAa;IACvC,IAAI,SAAS,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACxD,YAAY,GAAG,KAAK,CAAC;IAErB,qCAAqC;IACrC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACvD,6DAA6D;IAC7D,eAAe,GAAG,MAAM,CAAC,WAAqB,CAAC;IAE/C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAAc;IAClE,MAAM,CAAC,GAAG,KAAK,IAAI,iBAAiB,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAW,CAAC;IACjF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAoB,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAe,EAAE,KAAc;IACtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,CAAC,GAAG,KAAK,IAAI,iBAAiB,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAW,CAAC;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAoB,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,SAAS,GAAG,IAAI,CAAC;IACjB,YAAY,GAAG,IAAI,CAAC;IACpB,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["embeddings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { Database } from '../database/index.js';
2
+ import type { EntityRecord, RelationRecord, ScannedChapter } from '../database/schemas.js';
3
+ export interface IndexTasksInput {
4
+ contentPath: string;
5
+ arc?: string;
6
+ force?: boolean;
7
+ dbPath: string;
8
+ }
9
+ export interface IndexTasksContext {
10
+ contentPath: string;
11
+ arc?: string;
12
+ force: boolean;
13
+ dbPath: string;
14
+ db: Database;
15
+ scanned: ScannedChapter[];
16
+ toIndex: ScannedChapter[];
17
+ toDelete: string[];
18
+ entities: Map<string, EntityRecord>;
19
+ relations: Map<string, RelationRecord>;
20
+ processedCount: number;
21
+ }
22
+ export interface IndexTasksOutput {
23
+ indexed: number;
24
+ skipped: number;
25
+ deleted: number;
26
+ entities: number;
27
+ relations: number;
28
+ }
29
+ export declare function formatProgressBar(current: number, total: number, width?: number): string;
30
+ export declare function formatEta(startTime: number, current: number, total: number): string;
31
+ export declare function runIndexTasks(input: IndexTasksInput, silent?: boolean): Promise<IndexTasksOutput>;
32
+ //# sourceMappingURL=tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["tasks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAEV,YAAY,EACZ,cAAc,EACd,cAAc,EACf,MAAM,wBAAwB,CAAC;AAKhC,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAEhC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IAEf,EAAE,EAAE,QAAQ,CAAC;IACb,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,CAKpF;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUnF;AAwKD,wBAAsB,aAAa,CACjC,KAAK,EAAE,eAAe,EACtB,MAAM,UAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC,CAsE3B"}
@@ -0,0 +1,235 @@
1
+ import { Listr, PRESET_TIMER } from 'listr2';
2
+ import { Database } from '../database/index.js';
3
+ import { generateEmbedding, preloadModel } from './embeddings.js';
4
+ import { extractEntities } from './extractor.js';
5
+ import { scanTimeline } from './scanner.js';
6
+ // Progress bar helpers
7
+ export function formatProgressBar(current, total, width = 30) {
8
+ const pct = total > 0 ? current / total : 0;
9
+ const filled = Math.round(pct * width);
10
+ const bar = 'ā–ˆ'.repeat(filled) + 'ā–‘'.repeat(width - filled);
11
+ return `[${bar}] ${current}/${total} (${Math.round(pct * 100)}%)`;
12
+ }
13
+ export function formatEta(startTime, current, total) {
14
+ if (current === 0)
15
+ return 'calculating...';
16
+ const elapsed = Date.now() - startTime;
17
+ const msPerItem = elapsed / current;
18
+ const remaining = msPerItem * (total - current);
19
+ const minutes = Math.ceil(remaining / 60000);
20
+ if (minutes > 60) {
21
+ return `${Math.floor(minutes / 60)}h ${minutes % 60}m`;
22
+ }
23
+ return `${minutes}m`;
24
+ }
25
+ function createTasks() {
26
+ return [
27
+ {
28
+ title: 'Loading embedding model',
29
+ task: async (ctx, task) => {
30
+ task.title = `Loading embedding model (${ctx.db.embeddingModel})`;
31
+ await preloadModel(ctx.db.embeddingModel);
32
+ },
33
+ },
34
+ {
35
+ title: 'Scanning filesystem',
36
+ task: async (ctx, task) => {
37
+ const { chapters } = scanTimeline(ctx.contentPath, ctx.arc);
38
+ ctx.scanned = chapters;
39
+ const existingHashes = await ctx.db.getChapterHashes();
40
+ ctx.toIndex = chapters.filter((ch) => ctx.force || existingHashes.get(ch.file_path) !== ch.file_hash);
41
+ const currentPaths = new Set(chapters.map((c) => c.file_path));
42
+ ctx.toDelete = [...existingHashes.keys()].filter((p) => !currentPaths.has(p));
43
+ task.title = `Scanning filesystem (${chapters.length} chapters, ${ctx.toIndex.length} to index)`;
44
+ },
45
+ },
46
+ {
47
+ title: 'Processing chapters',
48
+ skip: (ctx) => ctx.toIndex.length === 0,
49
+ task: async (ctx, task) => {
50
+ const startTime = Date.now();
51
+ for (let i = 0; i < ctx.toIndex.length; i++) {
52
+ const chapter = ctx.toIndex[i];
53
+ const bar = formatProgressBar(i + 1, ctx.toIndex.length);
54
+ const eta = formatEta(startTime, i + 1, ctx.toIndex.length);
55
+ // Embedding phase
56
+ task.output =
57
+ `${bar} | ETA: ${eta}\n` +
58
+ `${chapter.id} - Generating embedding...\n` +
59
+ `šŸ‘¤ ${ctx.entities.size} entities | šŸ”— ${ctx.relations.size} relations`;
60
+ const vector = await generateEmbedding(chapter.content, ctx.db.embeddingModel);
61
+ // Extraction phase
62
+ task.output =
63
+ `${bar} | ETA: ${eta}\n` +
64
+ `${chapter.id} - Extracting entities...\n` +
65
+ `šŸ‘¤ ${ctx.entities.size} entities | šŸ”— ${ctx.relations.size} relations`;
66
+ const { entities, relations } = await extractEntities(chapter.content);
67
+ // Build and save chapter record
68
+ const chapterRecord = {
69
+ ...chapter,
70
+ vector,
71
+ entities: entities.map((e) => `${chapter.arc}:${e.type}:${e.name}`),
72
+ indexed_at: Date.now(),
73
+ };
74
+ await ctx.db.upsertChapters([chapterRecord]);
75
+ ctx.processedCount++;
76
+ // Aggregate entities
77
+ for (const entity of entities) {
78
+ const entityId = `${chapter.arc}:${entity.type}:${entity.name}`;
79
+ const existing = ctx.entities.get(entityId);
80
+ if (existing) {
81
+ existing.chapters.push(chapter.id);
82
+ existing.chapter_count++;
83
+ for (const alias of entity.aliases) {
84
+ if (!existing.aliases.includes(alias)) {
85
+ existing.aliases.push(alias);
86
+ }
87
+ }
88
+ }
89
+ else {
90
+ ctx.entities.set(entityId, {
91
+ id: entityId,
92
+ arc: chapter.arc,
93
+ name: entity.name,
94
+ type: entity.type,
95
+ description: entity.description,
96
+ aliases: entity.aliases,
97
+ vector: [],
98
+ chapters: [chapter.id],
99
+ chapter_count: 1,
100
+ first_appearance: chapter.id,
101
+ indexed_at: Date.now(),
102
+ });
103
+ }
104
+ }
105
+ // Aggregate relations
106
+ for (const relation of relations) {
107
+ const relationId = `${chapter.arc}:${relation.source}:${relation.type}:${relation.target}`;
108
+ const existing = ctx.relations.get(relationId);
109
+ if (existing) {
110
+ if (!existing.chapters.includes(chapter.id)) {
111
+ existing.chapters.push(chapter.id);
112
+ }
113
+ }
114
+ else {
115
+ ctx.relations.set(relationId, {
116
+ id: relationId,
117
+ arc: chapter.arc,
118
+ source_entity: `${chapter.arc}:CHARACTER:${relation.source}`,
119
+ target_entity: `${chapter.arc}:CHARACTER:${relation.target}`,
120
+ type: relation.type,
121
+ description: relation.description,
122
+ weight: 0.5,
123
+ chapters: [chapter.id],
124
+ indexed_at: Date.now(),
125
+ });
126
+ }
127
+ }
128
+ }
129
+ task.title = `Processing chapters (${ctx.toIndex.length} chapters)`;
130
+ task.output = `šŸ‘¤ ${ctx.entities.size} entities | šŸ”— ${ctx.relations.size} relations`;
131
+ },
132
+ },
133
+ {
134
+ title: 'Generating entity embeddings',
135
+ skip: (ctx) => ctx.entities.size === 0,
136
+ task: async (ctx, task) => {
137
+ const entities = [...ctx.entities.values()];
138
+ const startTime = Date.now();
139
+ for (let i = 0; i < entities.length; i++) {
140
+ const entity = entities[i];
141
+ const bar = formatProgressBar(i + 1, entities.length);
142
+ const eta = formatEta(startTime, i + 1, entities.length);
143
+ task.output = `${bar} | ETA: ${eta}\n${entity.name}`;
144
+ entity.vector = await generateEmbedding(`${entity.name}: ${entity.description}`, ctx.db.embeddingModel);
145
+ }
146
+ task.title = `Generating entity embeddings (${entities.length} entities)`;
147
+ },
148
+ },
149
+ {
150
+ title: 'Saving to database',
151
+ skip: (ctx) => ctx.entities.size === 0 && ctx.relations.size === 0 && ctx.toDelete.length === 0,
152
+ task: async (ctx, task) => {
153
+ if (ctx.entities.size > 0) {
154
+ await ctx.db.upsertEntities([...ctx.entities.values()]);
155
+ }
156
+ if (ctx.relations.size > 0) {
157
+ await ctx.db.upsertRelations([...ctx.relations.values()]);
158
+ }
159
+ if (ctx.toDelete.length > 0) {
160
+ await ctx.db.deleteChaptersByPaths(ctx.toDelete);
161
+ }
162
+ task.title = `Saving to database (${ctx.entities.size} entities, ${ctx.relations.size} relations)`;
163
+ },
164
+ },
165
+ ];
166
+ }
167
+ export async function runIndexTasks(input, silent = false) {
168
+ // Initialize database before creating tasks
169
+ const db = new Database(input.dbPath, input.force);
170
+ await db.connect();
171
+ const baseCtx = {
172
+ ...input,
173
+ force: input.force ?? false,
174
+ db,
175
+ scanned: [],
176
+ toIndex: [],
177
+ toDelete: [],
178
+ entities: new Map(),
179
+ relations: new Map(),
180
+ processedCount: 0,
181
+ };
182
+ const tasks = silent
183
+ ? new Listr(createTasks(), {
184
+ concurrent: false,
185
+ renderer: 'silent',
186
+ ctx: baseCtx,
187
+ })
188
+ : new Listr(createTasks(), {
189
+ concurrent: false,
190
+ renderer: 'default',
191
+ rendererOptions: {
192
+ collapseSubtasks: false,
193
+ timer: PRESET_TIMER,
194
+ },
195
+ ctx: baseCtx,
196
+ });
197
+ // Handle SIGINT for graceful shutdown
198
+ /* c8 ignore start */
199
+ let cancelled = false;
200
+ const sigintHandler = () => {
201
+ cancelled = true;
202
+ };
203
+ process.on('SIGINT', sigintHandler);
204
+ /* c8 ignore stop */
205
+ try {
206
+ const ctx = await tasks.run();
207
+ return {
208
+ indexed: ctx.toIndex.length,
209
+ skipped: ctx.scanned.length - ctx.toIndex.length,
210
+ deleted: ctx.toDelete.length,
211
+ entities: ctx.entities.size,
212
+ relations: ctx.relations.size,
213
+ };
214
+ }
215
+ catch (error) {
216
+ /* c8 ignore start */
217
+ if (cancelled) {
218
+ // Return partial results on cancellation
219
+ return {
220
+ indexed: baseCtx.processedCount,
221
+ skipped: baseCtx.scanned.length - baseCtx.toIndex.length,
222
+ deleted: 0,
223
+ entities: baseCtx.entities.size,
224
+ relations: baseCtx.relations.size,
225
+ };
226
+ }
227
+ /* c8 ignore stop */
228
+ throw error;
229
+ }
230
+ finally {
231
+ process.off('SIGINT', sigintHandler);
232
+ db.close();
233
+ }
234
+ }
235
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["tasks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAMxF,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAGpD;AAED,wBAAgB,YAAY,IAAI,SAAS,CAoFxC;AAGD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWpE,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAMxF,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAGpD;AAED,wBAAgB,YAAY,IAAI,SAAS,CAmGxC;AAGD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjD"}
package/lib/server.js CHANGED
@@ -2,6 +2,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { getPrompt, PROMPTS } from './prompts/index.js';
4
4
  import { index, indexConfig, indexSchema } from './tools/index.js';
5
+ import { list, listConfig, listSchema } from './tools/list.js';
5
6
  import { search, searchConfig, searchSchema } from './tools/search.js';
6
7
  import { stats, statsConfig, statsSchema } from './tools/stats.js';
7
8
  import { wordsCount, wordsCountConfig, wordsCountSchema } from './tools/words-count.js';
@@ -62,6 +63,17 @@ export function createServer() {
62
63
  return formatError(err);
63
64
  }
64
65
  });
66
+ server.registerTool(listConfig.name, {
67
+ description: listConfig.description,
68
+ inputSchema: listSchema,
69
+ }, async (args) => {
70
+ try {
71
+ return success(await list(args));
72
+ }
73
+ catch (err) {
74
+ return formatError(err);
75
+ }
76
+ });
65
77
  /* v8 ignore stop */
66
78
  // Register prompts
67
79
  for (const prompt of PROMPTS) {
package/lib/server.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import z from 'zod';
2
+ import { type IndexTasksOutput } from '../indexer/tasks.js';
2
3
  import type { ToolConfig } from '../types.js';
3
4
  export declare const indexConfig: ToolConfig;
4
5
  export declare const indexSchema: z.ZodObject<{
@@ -8,12 +9,6 @@ export declare const indexSchema: z.ZodObject<{
8
9
  dbPath: z.ZodDefault<z.ZodString>;
9
10
  }, z.z.core.$strip>;
10
11
  export type IndexInput = z.infer<typeof indexSchema>;
11
- export interface IndexOutput {
12
- indexed: number;
13
- skipped: number;
14
- deleted: number;
15
- entities: number;
16
- relations: number;
17
- }
12
+ export type IndexOutput = IndexTasksOutput;
18
13
  export declare function index(input: IndexInput): Promise<IndexOutput>;
19
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAQpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,WAAW,EAAE,UASzB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;mBAKtB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA8HnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,WAAW,EAAE,UASzB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;mBAKtB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACrD,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAE3C,wBAAsB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAKnE"}
@@ -1,9 +1,6 @@
1
1
  import z from 'zod';
2
2
  import { DEFAULT_DB_PATH } from '../constants.js';
3
- import { Database } from '../database/index.js';
4
- import { generateEmbedding } from '../indexer/embeddings.js';
5
- import { extractEntities } from '../indexer/extractor.js';
6
- import { scanTimeline } from '../indexer/scanner.js';
3
+ import { runIndexTasks } from '../indexer/tasks.js';
7
4
  export const indexConfig = {
8
5
  name: 'index',
9
6
  description: 'Index timeline content into the database for semantic search.',
@@ -21,108 +18,8 @@ export const indexSchema = z.object({
21
18
  dbPath: z.string().default(DEFAULT_DB_PATH).describe(indexConfig.arguments.dbPath),
22
19
  });
23
20
  export async function index(input) {
24
- const { contentPath, arc, force = false, dbPath } = indexSchema.parse(input);
25
- const db = new Database(dbPath);
26
- await db.connect();
27
- // 1. Scan filesystem
28
- const { chapters: scanned } = scanTimeline(contentPath, arc);
29
- // 2. Get existing hashes for incremental indexing
30
- const existingHashes = await db.getChapterHashes();
31
- // 3. Determine what needs indexing
32
- const toIndex = scanned.filter((ch) => force || existingHashes.get(ch.file_path) !== ch.file_hash);
33
- const skipped = scanned.length - toIndex.length;
34
- // 4. Collect all entities and relations
35
- const allEntities = new Map();
36
- const allRelations = new Map();
37
- // 5. Process chapters
38
- for (const chapter of toIndex) {
39
- // Generate embedding
40
- const vector = await generateEmbedding(chapter.content, db.embeddingModel);
41
- // Extract entities and relations
42
- const { entities, relations } = await extractEntities(chapter.content);
43
- // Build chapter record
44
- const chapterRecord = {
45
- ...chapter,
46
- vector,
47
- entities: entities.map((e) => `${chapter.arc}:${e.type}:${e.name}`),
48
- indexed_at: Date.now(),
49
- };
50
- await db.upsertChapters([chapterRecord]);
51
- // Aggregate entities
52
- for (const entity of entities) {
53
- const entityId = `${chapter.arc}:${entity.type}:${entity.name}`;
54
- const existing = allEntities.get(entityId);
55
- if (existing) {
56
- existing.chapters.push(chapter.id);
57
- existing.chapter_count++;
58
- // Merge aliases
59
- for (const alias of entity.aliases) {
60
- if (!existing.aliases.includes(alias)) {
61
- existing.aliases.push(alias);
62
- }
63
- }
64
- }
65
- else {
66
- allEntities.set(entityId, {
67
- id: entityId,
68
- arc: chapter.arc,
69
- name: entity.name,
70
- type: entity.type,
71
- description: entity.description,
72
- aliases: entity.aliases,
73
- vector: [], // Will be filled later
74
- chapters: [chapter.id],
75
- chapter_count: 1,
76
- first_appearance: chapter.id,
77
- indexed_at: Date.now(),
78
- });
79
- }
80
- }
81
- // Aggregate relations
82
- for (const relation of relations) {
83
- const relationId = `${chapter.arc}:${relation.source}:${relation.type}:${relation.target}`;
84
- const existing = allRelations.get(relationId);
85
- if (existing) {
86
- if (!existing.chapters.includes(chapter.id)) {
87
- existing.chapters.push(chapter.id);
88
- }
89
- }
90
- else {
91
- allRelations.set(relationId, {
92
- id: relationId,
93
- arc: chapter.arc,
94
- source_entity: `${chapter.arc}:CHARACTER:${relation.source}`,
95
- target_entity: `${chapter.arc}:CHARACTER:${relation.target}`,
96
- type: relation.type,
97
- description: relation.description,
98
- weight: 0.5,
99
- chapters: [chapter.id],
100
- indexed_at: Date.now(),
101
- });
102
- }
103
- }
104
- }
105
- // 6. Generate embeddings for entities and save
106
- for (const entity of allEntities.values()) {
107
- entity.vector = await generateEmbedding(`${entity.name}: ${entity.description}`, db.embeddingModel);
108
- }
109
- if (allEntities.size > 0) {
110
- await db.upsertEntities([...allEntities.values()]);
111
- }
112
- if (allRelations.size > 0) {
113
- await db.upsertRelations([...allRelations.values()]);
114
- }
115
- // 7. Delete removed chapters
116
- const currentPaths = new Set(scanned.map((c) => c.file_path));
117
- const toDelete = [...existingHashes.keys()].filter((p) => !currentPaths.has(p));
118
- await db.deleteChaptersByPaths(toDelete);
119
- db.close();
120
- return {
121
- indexed: toIndex.length,
122
- skipped,
123
- deleted: toDelete.length,
124
- entities: allEntities.size,
125
- relations: allRelations.size,
126
- };
21
+ const parsed = indexSchema.parse(input);
22
+ // Use silent renderer for MCP (no stdout output)
23
+ return runIndexTasks(parsed, true);
127
24
  }
128
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAyB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG3E,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,+DAA+D;IAC5E,SAAS,EAAE;QACT,WAAW,EAAE,gCAAgC;QAC7C,GAAG,EAAE,gCAAgC;QACrC,KAAK,EAAE,oCAAoC;QAC3C,MAAM,EAAE,2BAA2B,eAAe,IAAI;KACvD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC;IACnE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;IAC9D,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC;IACnE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;CACnF,CAAC,CAAC;AAKH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,KAAiB;IAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAExC,iDAAiD;IACjD,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,61 @@
1
+ import z from 'zod';
2
+ import type { ToolConfig } from '../types.js';
3
+ export declare const listConfig: ToolConfig;
4
+ export declare const listSchema: z.ZodObject<{
5
+ type: z.ZodEnum<{
6
+ entities: "entities";
7
+ relations: "relations";
8
+ }>;
9
+ arc: z.ZodOptional<z.ZodString>;
10
+ entityType: z.ZodOptional<z.ZodEnum<{
11
+ CHARACTER: "CHARACTER";
12
+ LOCATION: "LOCATION";
13
+ EVENT: "EVENT";
14
+ OBJECT: "OBJECT";
15
+ EMOTION: "EMOTION";
16
+ }>>;
17
+ relationType: z.ZodOptional<z.ZodEnum<{
18
+ LOVES: "LOVES";
19
+ HATES: "HATES";
20
+ KNOWS: "KNOWS";
21
+ RELATED_TO: "RELATED_TO";
22
+ FRIENDS_WITH: "FRIENDS_WITH";
23
+ ENEMIES_WITH: "ENEMIES_WITH";
24
+ LOCATED_IN: "LOCATED_IN";
25
+ LIVES_IN: "LIVES_IN";
26
+ TRAVELS_TO: "TRAVELS_TO";
27
+ HAPPENS_BEFORE: "HAPPENS_BEFORE";
28
+ HAPPENS_AFTER: "HAPPENS_AFTER";
29
+ CAUSES: "CAUSES";
30
+ OWNS: "OWNS";
31
+ USES: "USES";
32
+ SEEKS: "SEEKS";
33
+ }>>;
34
+ dbPath: z.ZodDefault<z.ZodString>;
35
+ }, z.z.core.$strip>;
36
+ export type ListInput = z.infer<typeof listSchema>;
37
+ export type ListOutput = {
38
+ type: 'entities';
39
+ results: EntityResult[];
40
+ } | {
41
+ type: 'relations';
42
+ results: RelationResult[];
43
+ };
44
+ export interface EntityResult {
45
+ id: string;
46
+ name: string;
47
+ type: string;
48
+ description: string;
49
+ aliases: string[];
50
+ chapter_count: number;
51
+ }
52
+ export interface RelationResult {
53
+ id: string;
54
+ source_entity: string;
55
+ target_entity: string;
56
+ type: string;
57
+ description: string;
58
+ chapters: string[];
59
+ }
60
+ export declare function list(input: ListInput): Promise<ListOutput>;
61
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["list.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAKpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,UAAU,EAAE,UAUxB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAMrB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAqChE"}
@@ -0,0 +1,59 @@
1
+ import z from 'zod';
2
+ import { DEFAULT_DB_PATH } from '../constants.js';
3
+ import { Database } from '../database/index.js';
4
+ import { ENTITY_TYPES, RELATION_TYPES } from '../database/schemas.js';
5
+ export const listConfig = {
6
+ name: 'list',
7
+ description: 'List all entities or relations from the database.',
8
+ arguments: {
9
+ type: 'What to list: "entities" or "relations".',
10
+ arc: 'Filter by arc name (optional).',
11
+ entityType: 'Filter entities by type (optional).',
12
+ relationType: 'Filter relations by type (optional).',
13
+ dbPath: `Database path (default: ${DEFAULT_DB_PATH}).`,
14
+ },
15
+ };
16
+ export const listSchema = z.object({
17
+ type: z.enum(['entities', 'relations']).describe(listConfig.arguments.type),
18
+ arc: z.string().optional().describe(listConfig.arguments.arc),
19
+ entityType: z.enum(ENTITY_TYPES).optional().describe(listConfig.arguments.entityType),
20
+ relationType: z.enum(RELATION_TYPES).optional().describe(listConfig.arguments.relationType),
21
+ dbPath: z.string().default(DEFAULT_DB_PATH).describe(listConfig.arguments.dbPath),
22
+ });
23
+ export async function list(input) {
24
+ const { type, arc, entityType, relationType, dbPath } = listSchema.parse(input);
25
+ const db = new Database(dbPath);
26
+ await db.connect();
27
+ try {
28
+ if (type === 'entities') {
29
+ const entities = await db.getEntities(arc, entityType);
30
+ return {
31
+ type: 'entities',
32
+ results: entities.map((e) => ({
33
+ id: e.id,
34
+ name: e.name,
35
+ type: e.type,
36
+ description: e.description,
37
+ aliases: e.aliases,
38
+ chapter_count: e.chapter_count,
39
+ })),
40
+ };
41
+ }
42
+ const relations = await db.getRelations(arc, relationType);
43
+ return {
44
+ type: 'relations',
45
+ results: relations.map((r) => ({
46
+ id: r.id,
47
+ source_entity: r.source_entity,
48
+ target_entity: r.target_entity,
49
+ type: r.type,
50
+ description: r.description,
51
+ chapters: r.chapters,
52
+ })),
53
+ };
54
+ }
55
+ finally {
56
+ db.close();
57
+ }
58
+ }
59
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["list.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@echoes-io/mcp-server",
3
- "version": "6.0.0",
3
+ "version": "6.2.0",
4
4
  "description": "šŸ“š Model Context Protocol server for AI-powered storytelling with Narrative Knowledge Graph - extract characters, locations, relationships and search your stories semantically.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -95,6 +95,7 @@
95
95
  "apache-arrow": "^18.1.0",
96
96
  "commander": "^14.0.2",
97
97
  "gray-matter": "^4.0.3",
98
+ "listr2": "^9.0.5",
98
99
  "remove-markdown": "^0.6.2",
99
100
  "zod": "^4.2.1"
100
101
  }