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
@@ -97,8 +97,15 @@ export declare class IntelligentAnalyzer {
97
97
  generateEmbeddings(files: DiscoveredFile[]): Promise<Map<string, number[]>>;
98
98
  /**
99
99
  * Generate embedding for a single text string (e.g., search query)
100
+ *
101
+ * Automatically chunks large texts (>8K tokens) to fit within API limits.
102
+ * For chunked texts, returns the average of all chunk embeddings.
100
103
  */
101
104
  embedText(text: string): Promise<number[]>;
105
+ /**
106
+ * Average multiple embeddings into a single vector
107
+ */
108
+ private averageEmbeddings;
102
109
  /**
103
110
  * Set up file watcher for automatic re-indexing
104
111
  */
@@ -1 +1 @@
1
- {"version":3,"file":"intelligent-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/intelligent-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;IACH,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QACX,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAwBD;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM;IAa/B;;OAEG;IACH,0BAA0B,IAAI,OAAO;IAIrC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAsB/C;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA8CtD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA8B/C;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IA0DxC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgF5B;;OAEG;YACW,0BAA0B;IAkIxC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA8B5B;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAiCjF;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOhD;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI;CA+B5E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAElF"}
1
+ {"version":3,"file":"intelligent-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/intelligent-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;IACH,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QACX,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAwBD;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM;IAa/B;;OAEG;IACH,0BAA0B,IAAI,OAAO;IAIrC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAsB/C;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA8CtD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA8B/C;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IA0DxC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgF5B;;OAEG;YACW,0BAA0B;IAkIxC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA8B5B;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAiCjF;;;;;OAKG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA+BhD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI;CA+B5E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAElF"}
@@ -9,6 +9,7 @@ import path from 'path';
9
9
  import { glob } from 'glob';
10
10
  import { createOpenRouterClient, hasOpenRouterKey } from '../embeddings/openrouter.js';
11
11
  import { AI_TOOLS, AI_TOOL_FOLDERS } from '../db/schema.js';
12
+ import { estimateTokens, chunkForEmbedding } from '../utils/chunking.js';
12
13
  /**
13
14
  * Default ignore patterns
14
15
  */
@@ -489,12 +490,56 @@ Return ONLY valid JSON, no markdown formatting.
489
490
  }
490
491
  /**
491
492
  * Generate embedding for a single text string (e.g., search query)
493
+ *
494
+ * Automatically chunks large texts (>8K tokens) to fit within API limits.
495
+ * For chunked texts, returns the average of all chunk embeddings.
492
496
  */
493
497
  async embedText(text) {
494
498
  if (!this.client) {
495
499
  throw new Error('OpenRouter client not available for embeddings');
496
500
  }
497
- return this.client.embed(text);
501
+ // Check if text needs chunking (8K token limit for OpenRouter)
502
+ const tokenEstimate = estimateTokens(text);
503
+ if (tokenEstimate <= 8000) {
504
+ // Text is small enough, embed directly
505
+ return this.client.embed(text);
506
+ }
507
+ // Text is too large, chunk it and embed each chunk
508
+ const chunks = chunkForEmbedding(text);
509
+ if (chunks.length === 1) {
510
+ return this.client.embed(chunks[0]);
511
+ }
512
+ // Embed all chunks
513
+ const embeddings = [];
514
+ for (const chunk of chunks) {
515
+ const embedding = await this.client.embed(chunk);
516
+ embeddings.push(embedding);
517
+ }
518
+ // Return the average embedding across all chunks
519
+ return this.averageEmbeddings(embeddings);
520
+ }
521
+ /**
522
+ * Average multiple embeddings into a single vector
523
+ */
524
+ averageEmbeddings(embeddings) {
525
+ if (embeddings.length === 0) {
526
+ throw new Error('Cannot average empty embeddings array');
527
+ }
528
+ if (embeddings.length === 1) {
529
+ return embeddings[0];
530
+ }
531
+ const dimension = embeddings[0].length;
532
+ const averaged = new Array(dimension).fill(0);
533
+ for (const embedding of embeddings) {
534
+ for (let i = 0; i < dimension; i++) {
535
+ averaged[i] += embedding[i];
536
+ }
537
+ }
538
+ // Divide by count to get average
539
+ for (let i = 0; i < dimension; i++) {
540
+ averaged[i] /= embeddings.length;
541
+ }
542
+ return averaged;
498
543
  }
499
544
  /**
500
545
  * Set up file watcher for automatic re-indexing
@@ -1 +1 @@
1
- {"version":3,"file":"intelligent-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/intelligent-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intelligent-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/intelligent-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Embeddings Refresh Command
3
+ *
4
+ * Regenerate embeddings with optional dimension validation.
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Embeddings refresh command
9
+ */
10
+ export declare const embeddingsRefreshCommand: Command;
11
+ //# sourceMappingURL=embeddings-refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings-refresh.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/embeddings-refresh.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC;;GAEG;AACH,eAAO,MAAM,wBAAwB,SAuHjC,CAAC"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Embeddings Refresh Command
3
+ *
4
+ * Regenerate embeddings with optional dimension validation.
5
+ */
6
+ import { Command } from 'commander';
7
+ import chalk from 'chalk';
8
+ import ora from 'ora';
9
+ import { confirm } from '@inquirer/prompts';
10
+ import { createIntelligentAnalyzer } from '../../analyzer/intelligent-analyzer.js';
11
+ import { hasOpenRouterKey } from '../../embeddings/openrouter.js';
12
+ import { DatabaseClient } from '../../db/client.js';
13
+ import { estimateTokens } from '../../utils/chunking.js';
14
+ /**
15
+ * Embeddings refresh command
16
+ */
17
+ export const embeddingsRefreshCommand = new Command('embeddings:refresh')
18
+ .description('Regenerate embeddings for all indexed content')
19
+ .option('--force', 'Force refresh even if dimensions change')
20
+ .option('--batch-size <n>', 'Process in batches', '50')
21
+ .option('-v, --verbose', 'Show detailed output')
22
+ .action(async (options) => {
23
+ const spinner = ora();
24
+ try {
25
+ // Check for OpenRouter API key
26
+ if (!hasOpenRouterKey()) {
27
+ spinner.fail('OPENROUTER_API_KEY not found');
28
+ console.log(chalk.yellow(' Set OPENROUTER_API_KEY for embeddings generation'));
29
+ console.log(chalk.dim(' Get your key at: https://openrouter.ai/keys\n'));
30
+ process.exit(1);
31
+ }
32
+ const db = await DatabaseClient.create(process.cwd());
33
+ const analyzer = createIntelligentAnalyzer(process.cwd());
34
+ spinner.start('Checking embeddings status...');
35
+ const rawDb = db.getRawDb();
36
+ // Check if embeddings table exists and has data
37
+ const tableExists = rawDb.prepare(`
38
+ SELECT name FROM sqlite_master WHERE type='table' AND name='embeddings'
39
+ `).get();
40
+ let currentDimension = 0;
41
+ if (tableExists) {
42
+ const embedding = rawDb.prepare('SELECT embedding FROM embeddings LIMIT 1').get();
43
+ if (embedding) {
44
+ currentDimension = embedding.embedding.length / 4; // Float32Array
45
+ }
46
+ }
47
+ const expectedDimension = 1536; // OpenRouter text-embedding-3-small
48
+ if (currentDimension > 0 && currentDimension !== expectedDimension && !options.force) {
49
+ spinner.fail('Embedding dimension mismatch');
50
+ console.log(chalk.red(` Current: ${currentDimension}, Expected: ${expectedDimension}`));
51
+ console.log(chalk.dim('\nUse --force to override (requires full re-index)\n'));
52
+ db.close();
53
+ process.exit(1);
54
+ }
55
+ // Get all items
56
+ spinner.text = 'Fetching items...';
57
+ const items = db.getAllItems();
58
+ if (items.length === 0) {
59
+ spinner.succeed('No items to index');
60
+ db.close();
61
+ return;
62
+ }
63
+ spinner.stop();
64
+ console.log('');
65
+ console.log(chalk.bold('Embeddings Refresh:'));
66
+ console.log(` Items to process: ${chalk.cyan(items.length.toString())}`);
67
+ console.log(` Batch size: ${chalk.cyan(options.batchSize)}`);
68
+ console.log('');
69
+ const confirmed = await confirm({
70
+ message: 'Refresh all embeddings?',
71
+ default: true
72
+ });
73
+ if (!confirmed) {
74
+ console.log(chalk.dim('\nRefresh cancelled.\n'));
75
+ db.close();
76
+ return;
77
+ }
78
+ spinner.start('Refreshing embeddings...');
79
+ // Process in batches
80
+ const batchSize = parseInt(options.batchSize, 10);
81
+ let processed = 0;
82
+ for (let i = 0; i < items.length; i += batchSize) {
83
+ const batch = items.slice(i, i + batchSize);
84
+ const batchNum = Math.floor(i / batchSize) + 1;
85
+ const totalBatches = Math.ceil(items.length / batchSize);
86
+ for (const item of batch) {
87
+ if (options.verbose) {
88
+ spinner.stop();
89
+ const tokenEstimate = estimateTokens(item.content);
90
+ const chunkInfo = tokenEstimate > 8000 ? chalk.yellow(` (${Math.ceil(tokenEstimate / 8000)} chunks)`) : '';
91
+ console.log(chalk.dim(` Embedding: ${item.name}${chunkInfo}`));
92
+ spinner.start();
93
+ }
94
+ // Generate and store embedding
95
+ try {
96
+ const embedding = await analyzer.embedText(item.content);
97
+ db.storeEmbedding(item.id, embedding);
98
+ processed++;
99
+ }
100
+ catch (error) {
101
+ if (options.verbose) {
102
+ console.log(chalk.yellow(` Warning: Failed to embed ${item.name}`));
103
+ }
104
+ }
105
+ }
106
+ spinner.text = `Processing batch ${batchNum}/${totalBatches} (${processed}/${items.length})...`;
107
+ }
108
+ spinner.succeed(chalk.green(`Refreshed ${processed} embeddings`));
109
+ db.close();
110
+ }
111
+ catch (error) {
112
+ spinner.fail('Embedding refresh failed');
113
+ console.error(chalk.red(`\nError: ${error instanceof Error ? error.message : error}`));
114
+ process.exit(1);
115
+ }
116
+ });
117
+ //# sourceMappingURL=embeddings-refresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings-refresh.js","sourceRoot":"","sources":["../../../src/cli/commands/embeddings-refresh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Migrate Command
3
+ *
4
+ * Database schema migration command with interactive prompts.
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Main migrate command
9
+ */
10
+ export declare const migrateCommand: Command;
11
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC;;GAEG;AACH,eAAO,MAAM,cAAc,SA4NvB,CAAC"}
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Migrate Command
3
+ *
4
+ * Database schema migration command with interactive prompts.
5
+ */
6
+ import { Command } from 'commander';
7
+ import path from 'path';
8
+ import fs from 'fs/promises';
9
+ import chalk from 'chalk';
10
+ import ora from 'ora';
11
+ import { confirm, select } from '@inquirer/prompts';
12
+ import { DatabaseClient } from '../../db/client.js';
13
+ import { MigrationRunner } from '../../db/migrations/index.js';
14
+ /**
15
+ * Main migrate command
16
+ */
17
+ export const migrateCommand = new Command('migrate')
18
+ .description('Manage database schema migrations')
19
+ .action(() => {
20
+ // Default action: show help if no subcommand specified
21
+ console.log('\nAvailable subcommands:\n');
22
+ console.log(' k0ntext migrate status Show migration status');
23
+ console.log(' k0ntext migrate up Apply pending migrations');
24
+ console.log(' k0ntext migrate rollback Rollback to a previous backup\n');
25
+ console.log('Run "k0ntext migrate <subcommand> --help" for more information.\n');
26
+ })
27
+ // Status subcommand
28
+ .command('status')
29
+ .description('Show migration status')
30
+ .action(async () => {
31
+ const spinner = ora();
32
+ try {
33
+ const db = await DatabaseClient.create(process.cwd());
34
+ const runner = new MigrationRunner(db, process.cwd());
35
+ const status = await runner.getStatus();
36
+ spinner.stop();
37
+ console.log(chalk.bold('\nMigration Status:\n'));
38
+ console.log(` Current: ${chalk.cyan(status.currentVersion || 'none')}`);
39
+ console.log(` Target: ${chalk.cyan(status.targetVersion)}`);
40
+ console.log(` Pending: ${chalk.yellow(status.pending.length)} migration(s)\n`);
41
+ if (status.pending.length > 0) {
42
+ console.log(chalk.bold('Pending Migrations:'));
43
+ for (const migration of status.pending) {
44
+ const breaks = migration.breaks ? chalk.red(' [breaking]') : '';
45
+ console.log(` ${chalk.cyan(migration.version)}: ${migration.description}${breaks}`);
46
+ }
47
+ console.log('');
48
+ }
49
+ if (status.applied.length > 0) {
50
+ console.log(chalk.bold('Applied Migrations:'));
51
+ for (const applied of status.applied.slice(0, 5)) {
52
+ console.log(chalk.dim(` ${applied.version} (${applied.appliedAt})`));
53
+ }
54
+ if (status.applied.length > 5) {
55
+ console.log(chalk.dim(` ... and ${status.applied.length - 5} more`));
56
+ }
57
+ console.log('');
58
+ }
59
+ db.close();
60
+ }
61
+ catch (error) {
62
+ spinner.fail('Status check failed');
63
+ console.error(chalk.red(`\nError: ${error instanceof Error ? error.message : error}`));
64
+ process.exit(1);
65
+ }
66
+ })
67
+ // Up subcommand
68
+ .command('up')
69
+ .description('Apply pending migrations')
70
+ .option('--dry-run', 'Show what would be done')
71
+ .option('--force', 'Apply even if validation fails')
72
+ .option('--no-backup', 'Skip creating backup')
73
+ .action(async (options) => {
74
+ const spinner = ora();
75
+ try {
76
+ const db = await DatabaseClient.create(process.cwd());
77
+ const runner = new MigrationRunner(db, process.cwd());
78
+ const status = await runner.getStatus();
79
+ if (!status.needsMigration) {
80
+ spinner.succeed('Database is up to date');
81
+ db.close();
82
+ return;
83
+ }
84
+ // Check for breaking changes
85
+ const breaking = status.pending.filter(m => m.breaks);
86
+ if (breaking.length > 0 && !options.force) {
87
+ console.log(chalk.yellow(`\n⚠ ${breaking.length} breaking change(s) detected:\n`));
88
+ for (const m of breaking) {
89
+ console.log(chalk.red(` ${m.version}: ${m.description}`));
90
+ }
91
+ console.log();
92
+ const shouldContinue = await confirm({
93
+ message: 'Continue with breaking changes?',
94
+ default: false
95
+ });
96
+ if (!shouldContinue) {
97
+ console.log(chalk.dim('\nMigration cancelled.\n'));
98
+ db.close();
99
+ return;
100
+ }
101
+ }
102
+ // Summary
103
+ console.log(chalk.bold(`\nApplying ${status.pending.length} migration(s):\n`));
104
+ for (const migration of status.pending) {
105
+ console.log(chalk.dim(` ${migration.version}: ${migration.description}`));
106
+ }
107
+ console.log();
108
+ const confirmed = options.dryRun || await confirm({
109
+ message: 'Proceed?',
110
+ default: true
111
+ });
112
+ if (!confirmed) {
113
+ console.log(chalk.dim('\nMigration cancelled.\n'));
114
+ db.close();
115
+ return;
116
+ }
117
+ spinner.start('Applying migrations...');
118
+ const results = await runner.migrate({
119
+ dryRun: options.dryRun,
120
+ force: options.force,
121
+ backup: options.backup !== false,
122
+ onProgress: (current, total, migration) => {
123
+ spinner.text = `Applying ${current}/${total}: ${migration.description}`;
124
+ }
125
+ });
126
+ spinner.stop();
127
+ // Show results
128
+ const successful = results.filter(r => r.success);
129
+ const failed = results.filter(r => !r.success);
130
+ if (successful.length > 0) {
131
+ console.log(chalk.green(`\n✓ Applied ${successful.length} migration(s)`));
132
+ }
133
+ if (failed.length > 0) {
134
+ console.log(chalk.red(`\n✖ ${failed.length} migration(s) failed:\n`));
135
+ for (const result of failed) {
136
+ console.log(chalk.red(` ${result.version}: ${result.error}`));
137
+ }
138
+ console.log(chalk.dim(`\nRollback using: k0ntext migrate rollback`));
139
+ }
140
+ db.close();
141
+ }
142
+ catch (error) {
143
+ spinner.fail('Migration failed');
144
+ console.error(chalk.red(`\nError: ${error instanceof Error ? error.message : error}`));
145
+ process.exit(1);
146
+ }
147
+ })
148
+ // Rollback subcommand
149
+ .command('rollback')
150
+ .description('Rollback to a previous backup')
151
+ .option('--backup <path>', 'Specific backup to restore')
152
+ .action(async (options) => {
153
+ const spinner = ora();
154
+ const projectRoot = process.cwd();
155
+ try {
156
+ const db = await DatabaseClient.create(projectRoot);
157
+ const runner = new MigrationRunner(db, projectRoot);
158
+ const backups = await runner.getMigrationBackups();
159
+ if (backups.length === 0) {
160
+ console.log(chalk.yellow('\nNo migration backups found.\n'));
161
+ db.close();
162
+ return;
163
+ }
164
+ let selectedBackup;
165
+ if (options.backup) {
166
+ selectedBackup = options.backup;
167
+ }
168
+ else {
169
+ spinner.stop();
170
+ selectedBackup = await select({
171
+ message: 'Select backup to restore:',
172
+ choices: backups.map(b => ({
173
+ name: b.replace('.k0ntext.db.pre-', '').replace('.bak', ''),
174
+ value: b
175
+ }))
176
+ });
177
+ }
178
+ const confirmed = await confirm({
179
+ message: 'This will replace your current database. Continue?',
180
+ default: false
181
+ });
182
+ if (!confirmed) {
183
+ console.log(chalk.dim('\nRollback cancelled.\n'));
184
+ db.close();
185
+ return;
186
+ }
187
+ spinner.start('Restoring backup...');
188
+ // Close database first
189
+ db.close();
190
+ // Restore from backup
191
+ const backupPath = path.join(projectRoot, '.k0ntext', 'backups', selectedBackup);
192
+ const dbPath = path.join(projectRoot, '.k0ntext.db');
193
+ await fs.copyFile(backupPath, dbPath);
194
+ spinner.succeed(chalk.green('Database restored from backup'));
195
+ console.log(chalk.dim(`\nBackup: ${selectedBackup}\n`));
196
+ }
197
+ catch (error) {
198
+ spinner.fail('Rollback failed');
199
+ console.error(chalk.red(`\nError: ${error instanceof Error ? error.message : error}`));
200
+ process.exit(1);
201
+ }
202
+ });
203
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/cli/commands/migrate.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -29,6 +29,8 @@ import { batchIndexCommand } from './commands/batch-index.js';
29
29
  import { versionCheckCommand } from './commands/version-check.js';
30
30
  import { restoreCommand } from './commands/restore.js';
31
31
  import { syncTemplatesCommand, templateStatusCommand } from './commands/sync-templates.js';
32
+ import { migrateCommand } from './commands/migrate.js';
33
+ import { embeddingsRefreshCommand } from './commands/embeddings-refresh.js';
32
34
  const __filename = fileURLToPath(import.meta.url);
33
35
  const __dirname = path.dirname(__filename);
34
36
  // Read package.json for version
@@ -214,6 +216,71 @@ function createProgram() {
214
216
  }
215
217
  }
216
218
  }
219
+ // Check for database migrations
220
+ spinner.start('Checking database migrations...');
221
+ try {
222
+ const { MigrationRunner } = await import('../db/migrations/index.js');
223
+ const { DatabaseClient: DBClientClass } = await import('../db/client.js');
224
+ const db = await DBClientClass.create(targetDir);
225
+ const runner = new MigrationRunner(db, targetDir);
226
+ const migrationStatus = await runner.getStatus();
227
+ if (migrationStatus.needsMigration) {
228
+ spinner.stop();
229
+ console.log('');
230
+ console.log(chalk.yellow(`⚠ Database schema updates available: ${migrationStatus.currentVersion || 'none'} → ${migrationStatus.targetVersion}`));
231
+ console.log('');
232
+ console.log(chalk.bold('Pending migrations:'));
233
+ for (const migration of migrationStatus.pending) {
234
+ const breaks = migration.breaks ? chalk.red(' [breaking]') : '';
235
+ console.log(chalk.dim(` • ${migration.version}: ${migration.description}${breaks}`));
236
+ }
237
+ console.log('');
238
+ const { confirm } = await import('@inquirer/prompts');
239
+ const shouldMigrate = await confirm({
240
+ message: 'Apply database migrations now?',
241
+ default: true
242
+ });
243
+ if (shouldMigrate) {
244
+ spinner.start('Applying migrations...');
245
+ const migrationResults = await runner.migrate({
246
+ backup: true,
247
+ onProgress: (current, total, migration) => {
248
+ spinner.text = `Applying ${current}/${total}: ${migration.description}`;
249
+ }
250
+ });
251
+ const successful = migrationResults.filter(r => r.success).length;
252
+ const failed = migrationResults.filter(r => !r.success).length;
253
+ if (failed === 0) {
254
+ spinner.succeed(chalk.green(`Applied ${successful} migration(s)`));
255
+ }
256
+ else {
257
+ spinner.warn(chalk.yellow(`Applied ${successful} migration(s), ${failed} failed`));
258
+ if (options.verbose) {
259
+ for (const result of migrationResults) {
260
+ if (!result.success) {
261
+ console.log(chalk.red(` ✗ ${result.version}: ${result.error}`));
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }
267
+ else {
268
+ spinner.start('Continuing...');
269
+ spinner.succeed('Database migrations skipped');
270
+ console.log(chalk.dim('\n Run: k0ntext migrate up\n'));
271
+ }
272
+ }
273
+ else {
274
+ spinner.succeed('Database schema up to date');
275
+ }
276
+ db.close();
277
+ }
278
+ catch (error) {
279
+ spinner.warn(`Database migration check failed: ${error instanceof Error ? error.message : error}`);
280
+ if (options.verbose) {
281
+ console.warn(chalk.dim(` ${error instanceof Error ? error.stack : error}`));
282
+ }
283
+ }
217
284
  // Check for outdated context files
218
285
  if (options.versionCheck !== false) {
219
286
  spinner.start('Checking context file versions...');
@@ -341,6 +408,9 @@ function createProgram() {
341
408
  // ==================== Template Sync Commands ====================
342
409
  program.addCommand(syncTemplatesCommand);
343
410
  program.addCommand(templateStatusCommand);
411
+ // ==================== Migration Commands ====================
412
+ program.addCommand(migrateCommand);
413
+ program.addCommand(embeddingsRefreshCommand);
344
414
  // ==================== Index Command ====================
345
415
  program
346
416
  .command('index')