k0ntext 3.5.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/analyzer/intelligent-analyzer.d.ts +7 -0
  2. package/dist/analyzer/intelligent-analyzer.d.ts.map +1 -1
  3. package/dist/analyzer/intelligent-analyzer.js +46 -1
  4. package/dist/analyzer/intelligent-analyzer.js.map +1 -1
  5. package/dist/cli/commands/embeddings-refresh.d.ts +11 -0
  6. package/dist/cli/commands/embeddings-refresh.d.ts.map +1 -0
  7. package/dist/cli/commands/embeddings-refresh.js +117 -0
  8. package/dist/cli/commands/embeddings-refresh.js.map +1 -0
  9. package/dist/cli/commands/migrate.d.ts +11 -0
  10. package/dist/cli/commands/migrate.d.ts.map +1 -0
  11. package/dist/cli/commands/migrate.js +203 -0
  12. package/dist/cli/commands/migrate.js.map +1 -0
  13. package/dist/cli/index.js +70 -0
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/cli/repl/init/wizard.d.ts.map +1 -1
  16. package/dist/cli/repl/init/wizard.js +12 -4
  17. package/dist/cli/repl/init/wizard.js.map +1 -1
  18. package/dist/cli/utils/db-backup-manager.d.ts +55 -0
  19. package/dist/cli/utils/db-backup-manager.d.ts.map +1 -0
  20. package/dist/cli/utils/db-backup-manager.js +115 -0
  21. package/dist/cli/utils/db-backup-manager.js.map +1 -0
  22. package/dist/db/client.d.ts +15 -2
  23. package/dist/db/client.d.ts.map +1 -1
  24. package/dist/db/client.js +61 -12
  25. package/dist/db/client.js.map +1 -1
  26. package/dist/db/migrations/files/0014_add_schema_migrations_table.d.ts +14 -0
  27. package/dist/db/migrations/files/0014_add_schema_migrations_table.d.ts.map +1 -0
  28. package/dist/db/migrations/files/0014_add_schema_migrations_table.js +25 -0
  29. package/dist/db/migrations/files/0014_add_schema_migrations_table.js.map +1 -0
  30. package/dist/db/migrations/index.d.ts +9 -0
  31. package/dist/db/migrations/index.d.ts.map +1 -0
  32. package/dist/db/migrations/index.js +9 -0
  33. package/dist/db/migrations/index.js.map +1 -0
  34. package/dist/db/migrations/loader.d.ts +27 -0
  35. package/dist/db/migrations/loader.d.ts.map +1 -0
  36. package/dist/db/migrations/loader.js +106 -0
  37. package/dist/db/migrations/loader.js.map +1 -0
  38. package/dist/db/migrations/runner.d.ts +56 -0
  39. package/dist/db/migrations/runner.d.ts.map +1 -0
  40. package/dist/db/migrations/runner.js +266 -0
  41. package/dist/db/migrations/runner.js.map +1 -0
  42. package/dist/db/migrations/types.d.ts +71 -0
  43. package/dist/db/migrations/types.d.ts.map +1 -0
  44. package/dist/db/migrations/types.js +7 -0
  45. package/dist/db/migrations/types.js.map +1 -0
  46. package/dist/db/schema.d.ts +1 -1
  47. package/dist/db/schema.js +1 -1
  48. package/dist/embeddings/openrouter.d.ts.map +1 -1
  49. package/dist/embeddings/openrouter.js +8 -3
  50. package/dist/embeddings/openrouter.js.map +1 -1
  51. package/dist/utils/chunking.d.ts +38 -0
  52. package/dist/utils/chunking.d.ts.map +1 -0
  53. package/dist/utils/chunking.js +133 -0
  54. package/dist/utils/chunking.js.map +1 -0
  55. package/dist/utils/encoding.d.ts +24 -0
  56. package/dist/utils/encoding.d.ts.map +1 -0
  57. package/dist/utils/encoding.js +32 -0
  58. package/dist/utils/encoding.js.map +1 -0
  59. package/dist/utils/index.d.ts +8 -0
  60. package/dist/utils/index.d.ts.map +1 -0
  61. package/dist/utils/index.js +8 -0
  62. package/dist/utils/index.js.map +1 -0
  63. package/docs/plans/2026-02-09-v3.7.0-database-fixes-and-improvements.md +900 -0
  64. package/package.json +1 -1
  65. package/src/analyzer/intelligent-analyzer.ts +58 -1
  66. package/src/cli/commands/embeddings-refresh.ts +138 -0
  67. package/src/cli/commands/migrate.ts +239 -0
  68. package/src/cli/index.ts +79 -0
  69. package/src/cli/repl/init/wizard.ts +12 -4
  70. package/src/cli/utils/db-backup-manager.ts +146 -0
  71. package/src/db/client.ts +67 -17
  72. package/src/db/migrations/files/0014_add_schema_migrations_table.sql +19 -0
  73. package/src/db/migrations/files/0014_add_schema_migrations_table.ts +30 -0
  74. package/src/db/migrations/files/0015_add_sync_state_version_tracking.sql +18 -0
  75. package/src/db/migrations/index.ts +9 -0
  76. package/src/db/migrations/loader.ts +129 -0
  77. package/src/db/migrations/runner.ts +316 -0
  78. package/src/db/migrations/types.ts +71 -0
  79. package/src/db/schema.ts +1 -1
  80. package/src/embeddings/openrouter.ts +10 -4
  81. package/src/utils/chunking.ts +152 -0
  82. package/src/utils/encoding.ts +33 -0
  83. package/src/utils/index.ts +8 -0
@@ -0,0 +1,266 @@
1
+ /**
2
+ * Migration Runner
3
+ *
4
+ * Core execution engine for database migrations.
5
+ */
6
+ import path from 'path';
7
+ import fs from 'fs/promises';
8
+ import { discoverMigrations, loadMigration } from './loader.js';
9
+ /**
10
+ * Migration runner class
11
+ */
12
+ export class MigrationRunner {
13
+ db;
14
+ projectRoot;
15
+ constructor(db, projectRoot) {
16
+ this.db = db;
17
+ this.projectRoot = projectRoot;
18
+ }
19
+ /**
20
+ * Get current migration status
21
+ */
22
+ async getStatus() {
23
+ // Get target version from SCHEMA_VERSION constant
24
+ const { SCHEMA_VERSION } = await import('../schema.js');
25
+ // Get applied migrations from schema_migrations table (if exists)
26
+ const applied = [];
27
+ let currentVersion = null;
28
+ try {
29
+ const rawDb = this.getDb();
30
+ // Check if schema_migrations table exists
31
+ const tableExists = rawDb.prepare(`
32
+ SELECT name FROM sqlite_master
33
+ WHERE type='table' AND name='schema_migrations'
34
+ `).get();
35
+ if (tableExists) {
36
+ const rows = rawDb.prepare(`
37
+ SELECT version, applied_at FROM schema_migrations
38
+ ORDER BY applied_at DESC
39
+ `).all();
40
+ applied.push(...rows.map(r => ({ version: r.version, appliedAt: r.applied_at })));
41
+ // Get latest version
42
+ if (rows.length > 0) {
43
+ currentVersion = rows[0].version;
44
+ }
45
+ }
46
+ else {
47
+ // Fall back to legacy schema_version table
48
+ const row = rawDb.prepare('SELECT version FROM schema_version LIMIT 1').get();
49
+ if (row) {
50
+ currentVersion = row.version;
51
+ applied.push({ version: row.version, appliedAt: new Date().toISOString() });
52
+ }
53
+ }
54
+ }
55
+ catch {
56
+ // Database might not exist yet
57
+ }
58
+ // Discover all migrations
59
+ const allMigrations = await discoverMigrations();
60
+ // Filter pending migrations
61
+ const appliedVersions = new Set(applied.map(a => a.version));
62
+ const pending = allMigrations.filter(m => !appliedVersions.has(m.version));
63
+ return {
64
+ currentVersion,
65
+ targetVersion: SCHEMA_VERSION,
66
+ pending,
67
+ applied,
68
+ needsMigration: pending.length > 0
69
+ };
70
+ }
71
+ /**
72
+ * Run pending migrations
73
+ */
74
+ async migrate(options = {}) {
75
+ const status = await this.getStatus();
76
+ const results = [];
77
+ if (!status.needsMigration) {
78
+ return results;
79
+ }
80
+ // Validate dependencies
81
+ await this.validateDependencies(status.pending, options.force);
82
+ // Create backup if requested
83
+ if (options.backup !== false) {
84
+ await this.createBackup();
85
+ }
86
+ // Run migrations in order
87
+ for (let i = 0; i < status.pending.length; i++) {
88
+ const migration = status.pending[i];
89
+ // Progress callback
90
+ options.onProgress?.(i + 1, status.pending.length, migration);
91
+ const result = await this.applyMigration(migration, options);
92
+ results.push(result);
93
+ if (!result.success && !options.force) {
94
+ // Stop on first error unless forced
95
+ break;
96
+ }
97
+ }
98
+ return results;
99
+ }
100
+ /**
101
+ * Validate migration dependencies
102
+ */
103
+ async validateDependencies(migrations, force) {
104
+ const status = await this.getStatus();
105
+ const appliedVersions = new Set(status.applied.map(a => a.version));
106
+ for (const migration of migrations) {
107
+ for (const dep of migration.dependencies) {
108
+ if (!appliedVersions.has(dep)) {
109
+ const msg = `Migration ${migration.version} depends on ${dep}, which is not applied`;
110
+ if (force) {
111
+ console.warn(`Warning: ${msg}`);
112
+ }
113
+ else {
114
+ throw new Error(msg);
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+ /**
121
+ * Apply a single migration
122
+ */
123
+ async applyMigration(migration, options) {
124
+ const startTime = Date.now();
125
+ try {
126
+ if (options.dryRun) {
127
+ return {
128
+ version: migration.version,
129
+ success: true,
130
+ durationMs: Date.now() - startTime
131
+ };
132
+ }
133
+ const rawDb = this.getDb();
134
+ // Begin transaction
135
+ rawDb.exec('BEGIN TRANSACTION');
136
+ try {
137
+ // Apply SQL
138
+ const sql = await fs.readFile(migration.sqlPath, 'utf-8');
139
+ rawDb.exec(sql);
140
+ // Run TypeScript up() if exists
141
+ if (migration.tsPath) {
142
+ const { up } = await loadMigration(migration.tsPath);
143
+ await up(this.db);
144
+ }
145
+ // Record migration
146
+ this.recordMigration(migration, true, Date.now() - startTime);
147
+ // Update schema_version
148
+ this.updateSchemaVersion(migration.version);
149
+ rawDb.exec('COMMIT');
150
+ return {
151
+ version: migration.version,
152
+ success: true,
153
+ durationMs: Date.now() - startTime
154
+ };
155
+ }
156
+ catch (error) {
157
+ rawDb.exec('ROLLBACK');
158
+ throw error;
159
+ }
160
+ }
161
+ catch (error) {
162
+ // Record failed migration
163
+ if (!options.dryRun) {
164
+ this.recordMigration(migration, false, Date.now() - startTime, error instanceof Error ? error.message : String(error));
165
+ }
166
+ return {
167
+ version: migration.version,
168
+ success: false,
169
+ durationMs: Date.now() - startTime,
170
+ error: error instanceof Error ? error.message : String(error)
171
+ };
172
+ }
173
+ }
174
+ /**
175
+ * Record migration in schema_migrations table
176
+ */
177
+ recordMigration(migration, success, durationMs, error) {
178
+ const rawDb = this.getDb();
179
+ // Create schema_migrations table if not exists (for initial migration)
180
+ rawDb.exec(`
181
+ CREATE TABLE IF NOT EXISTS schema_migrations (
182
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
183
+ version TEXT NOT NULL UNIQUE,
184
+ description TEXT,
185
+ applied_at TEXT NOT NULL DEFAULT (datetime('now')),
186
+ checksum TEXT NOT NULL,
187
+ duration_ms INTEGER,
188
+ success INTEGER DEFAULT 1
189
+ )
190
+ `);
191
+ rawDb.prepare(`
192
+ INSERT OR REPLACE INTO schema_migrations
193
+ (version, description, checksum, duration_ms, success)
194
+ VALUES (?, ?, ?, ?, ?)
195
+ `).run(migration.version, migration.description, migration.checksum, durationMs, success ? 1 : 0);
196
+ }
197
+ /**
198
+ * Update legacy schema_version table
199
+ */
200
+ updateSchemaVersion(version) {
201
+ const rawDb = this.getDb();
202
+ rawDb.prepare(`
203
+ INSERT OR REPLACE INTO schema_version (version, applied_at)
204
+ VALUES (?, datetime('now'))
205
+ `).run(version);
206
+ }
207
+ /**
208
+ * Create backup before migration
209
+ */
210
+ async createBackup() {
211
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
212
+ const backupName = `.k0ntext.db.pre-${timestamp}.bak`;
213
+ const backupPath = path.join(this.projectRoot, '.k0ntext', 'backups', backupName);
214
+ // Ensure backup directory exists
215
+ await fs.mkdir(path.dirname(backupPath), { recursive: true });
216
+ // Use existing backup method from DatabaseClient
217
+ this.db.backup(backupPath);
218
+ // Keep only last 5 migration backups
219
+ await this.cleanupOldBackups();
220
+ }
221
+ /**
222
+ * Clean up old migration backups (keep last 5)
223
+ */
224
+ async cleanupOldBackups() {
225
+ const backupDir = path.join(this.projectRoot, '.k0ntext', 'backups');
226
+ try {
227
+ const files = await fs.readdir(backupDir);
228
+ const migrationBackups = files
229
+ .filter(f => f.includes('.pre-') && f.endsWith('.bak'))
230
+ .sort()
231
+ .reverse();
232
+ // Keep last 5
233
+ const toDelete = migrationBackups.slice(5);
234
+ for (const file of toDelete) {
235
+ await fs.unlink(path.join(backupDir, file));
236
+ }
237
+ }
238
+ catch {
239
+ // Ignore cleanup errors
240
+ }
241
+ }
242
+ /**
243
+ * Get migration backups
244
+ */
245
+ async getMigrationBackups() {
246
+ const backupDir = path.join(this.projectRoot, '.k0ntext', 'backups');
247
+ try {
248
+ const files = await fs.readdir(backupDir);
249
+ return files
250
+ .filter(f => f.includes('.pre-') && f.endsWith('.bak'))
251
+ .sort()
252
+ .reverse();
253
+ }
254
+ catch {
255
+ return [];
256
+ }
257
+ }
258
+ /**
259
+ * Get raw database instance
260
+ */
261
+ getDb() {
262
+ // Access the internal better-sqlite3 database
263
+ return this.db.db;
264
+ }
265
+ }
266
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/db/migrations/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Migration System Types
3
+ *
4
+ * Type definitions for the database migration system.
5
+ */
6
+ /**
7
+ * Migration metadata
8
+ */
9
+ export interface Migration {
10
+ /** Schema version (e.g., '1.4.0') */
11
+ version: string;
12
+ /** Human-readable description */
13
+ description: string;
14
+ /** Whether this is a breaking change */
15
+ breaks: boolean;
16
+ /** Required previous versions */
17
+ dependencies: string[];
18
+ /** SQL file path */
19
+ sqlPath: string;
20
+ /** TypeScript file path (optional) */
21
+ tsPath?: string;
22
+ /** Computed checksum */
23
+ checksum: string;
24
+ }
25
+ /**
26
+ * Migration result
27
+ */
28
+ export interface MigrationResult {
29
+ /** Migration version */
30
+ version: string;
31
+ /** Whether successful */
32
+ success: boolean;
33
+ /** Duration in milliseconds */
34
+ durationMs: number;
35
+ /** Error message if failed */
36
+ error?: string;
37
+ }
38
+ /**
39
+ * Migration status
40
+ */
41
+ export interface MigrationStatus {
42
+ /** Current schema version in database */
43
+ currentVersion: string | null;
44
+ /** Target schema version (from SCHEMA_VERSION constant) */
45
+ targetVersion: string;
46
+ /** Pending migrations */
47
+ pending: Migration[];
48
+ /** Applied migrations */
49
+ applied: Array<{
50
+ version: string;
51
+ appliedAt: string;
52
+ }>;
53
+ /** Whether migration is needed */
54
+ needsMigration: boolean;
55
+ }
56
+ /**
57
+ * Migration runner options
58
+ */
59
+ export interface MigrationOptions {
60
+ /** Dry run - don't apply changes */
61
+ dryRun?: boolean;
62
+ /** Force migration even if validation fails */
63
+ force?: boolean;
64
+ /** Create backup before migration */
65
+ backup?: boolean;
66
+ /** Batch size for progress reporting */
67
+ batchSize?: number;
68
+ /** Callback for progress updates */
69
+ onProgress?: (current: number, total: number, migration: Migration) => void;
70
+ }
71
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,iCAAiC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,yBAAyB;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,kCAAkC;IAClC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CAC7E"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Migration System Types
3
+ *
4
+ * Type definitions for the database migration system.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/db/migrations/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -4,7 +4,7 @@
4
4
  * SQLite + sqlite-vec schema for AI context storage.
5
5
  * Supports vector embeddings, knowledge graph, and sync state.
6
6
  */
7
- export declare const SCHEMA_VERSION = "1.3.0";
7
+ export declare const SCHEMA_VERSION = "1.5.0";
8
8
  /**
9
9
  * Core database schema SQL
10
10
  */
package/dist/db/schema.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * SQLite + sqlite-vec schema for AI context storage.
5
5
  * Supports vector embeddings, knowledge graph, and sync state.
6
6
  */
7
- export const SCHEMA_VERSION = '1.3.0';
7
+ export const SCHEMA_VERSION = '1.5.0';
8
8
  /**
9
9
  * Core database schema SQL
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/embeddings/openrouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/embeddings/openrouter.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { createHash } from 'crypto';
8
8
  import { K0NTEXT_MODELS, MODEL_CONFIG, getPrimaryChatModel, getEmbeddingModel } from '../config/models.js';
9
+ import { stripBOM } from '../utils/encoding.js';
9
10
  /**
10
11
  * OpenRouter API endpoints
11
12
  */
@@ -114,7 +115,8 @@ export class OpenRouterClient {
114
115
  if (!config.apiKey) {
115
116
  throw new Error('OPENROUTER_API_KEY is required');
116
117
  }
117
- this.apiKey = config.apiKey;
118
+ // Strip UTF-8 BOM if present (Windows editors sometimes add this to .env files)
119
+ this.apiKey = stripBOM(config.apiKey);
118
120
  this.embeddingModel = config.embeddingModel || DEFAULT_EMBEDDING_MODEL;
119
121
  this.chatModel = config.chatModel || DEFAULT_CHAT_MODEL;
120
122
  this.siteUrl = config.siteUrl || 'https://github.com/SireJeff/claude-context-engineering-template';
@@ -445,8 +447,10 @@ export function createOpenRouterClient() {
445
447
  throw new Error('OPENROUTER_API_KEY environment variable is required.\n' +
446
448
  'Get your API key at: https://openrouter.ai/keys');
447
449
  }
450
+ // Strip UTF-8 BOM from API key (Windows editors sometimes add this to .env files)
451
+ const cleanApiKey = stripBOM(apiKey);
448
452
  return new OpenRouterClient({
449
- apiKey,
453
+ apiKey: cleanApiKey,
450
454
  // Use centralized models from config, allow env override for testing
451
455
  embeddingModel: process.env.OPENROUTER_EMBEDDING_MODEL || getEmbeddingModel(),
452
456
  chatModel: process.env.OPENROUTER_CHAT_MODEL || getPrimaryChatModel()
@@ -456,7 +460,8 @@ export function createOpenRouterClient() {
456
460
  * Check if OpenRouter API key is available
457
461
  */
458
462
  export function hasOpenRouterKey() {
459
- return !!process.env.OPENROUTER_API_KEY;
463
+ const apiKey = process.env.OPENROUTER_API_KEY;
464
+ return !!apiKey && stripBOM(apiKey).length > 0;
460
465
  }
461
466
  /**
462
467
  * Re-export model configuration for convenience
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/embeddings/openrouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/embeddings/openrouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Text Chunking Utility
3
+ *
4
+ * Splits large texts into chunks suitable for embedding generation.
5
+ * Handles token limits, word boundaries, and overlap for context preservation.
6
+ */
7
+ /**
8
+ * Estimate token count for text.
9
+ *
10
+ * Uses a simple heuristic: ~4 characters per token for English text.
11
+ * This is approximate but works well for our use case.
12
+ *
13
+ * @param text - Text to estimate tokens for
14
+ * @returns Estimated token count
15
+ */
16
+ export declare function estimateTokens(text: string): number;
17
+ /**
18
+ * Split text into chunks that fit within max tokens.
19
+ *
20
+ * Tries to break at word boundaries when possible.
21
+ * Adds overlap between chunks to preserve context.
22
+ *
23
+ * @param text - Text to chunk
24
+ * @param maxTokens - Maximum tokens per chunk (default: 8000 for OpenRouter)
25
+ * @param overlapTokens - Number of tokens to overlap between chunks (default: 0)
26
+ * @returns Array of text chunks
27
+ */
28
+ export declare function chunkText(text: string, maxTokens?: number, overlapTokens?: number): string[];
29
+ /**
30
+ * Chunk text specifically for embedding generation.
31
+ *
32
+ * Uses 8000 token limit (OpenRouter's limit for text-embedding-3-small).
33
+ *
34
+ * @param text - Text to chunk
35
+ * @returns Array of text chunks suitable for embeddings
36
+ */
37
+ export declare function chunkForEmbedding(text: string): string[];
38
+ //# sourceMappingURL=chunking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunking.d.ts","sourceRoot":"","sources":["../../src/utils/chunking.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAa,EACxB,aAAa,GAAE,MAAU,GACxB,MAAM,EAAE,CAgGV;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD"}