@liendev/core 0.20.1 → 0.22.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 (99) hide show
  1. package/README.md +10 -26
  2. package/dist/config/global-config.d.ts +37 -0
  3. package/dist/config/global-config.d.ts.map +1 -0
  4. package/dist/config/global-config.js +160 -0
  5. package/dist/config/global-config.js.map +1 -0
  6. package/dist/config/merge.js +1 -1
  7. package/dist/config/merge.js.map +1 -1
  8. package/dist/config/schema.d.ts +8 -1
  9. package/dist/config/schema.d.ts.map +1 -1
  10. package/dist/config/schema.js +2 -2
  11. package/dist/config/schema.js.map +1 -1
  12. package/dist/config/service.d.ts +2 -25
  13. package/dist/config/service.d.ts.map +1 -1
  14. package/dist/config/service.js +4 -79
  15. package/dist/config/service.js.map +1 -1
  16. package/dist/constants.d.ts +0 -1
  17. package/dist/constants.d.ts.map +1 -1
  18. package/dist/constants.js +0 -3
  19. package/dist/constants.js.map +1 -1
  20. package/dist/index.d.ts +20 -8
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +25 -9
  23. package/dist/index.js.map +1 -1
  24. package/dist/indexer/ast/chunker.d.ts +2 -0
  25. package/dist/indexer/ast/chunker.d.ts.map +1 -1
  26. package/dist/indexer/ast/chunker.js +13 -7
  27. package/dist/indexer/ast/chunker.js.map +1 -1
  28. package/dist/indexer/change-detector.d.ts +2 -3
  29. package/dist/indexer/change-detector.d.ts.map +1 -1
  30. package/dist/indexer/change-detector.js +19 -34
  31. package/dist/indexer/change-detector.js.map +1 -1
  32. package/dist/indexer/chunk-batch-processor.d.ts +2 -2
  33. package/dist/indexer/chunk-batch-processor.d.ts.map +1 -1
  34. package/dist/indexer/chunk-batch-processor.js.map +1 -1
  35. package/dist/indexer/chunker.d.ts +2 -0
  36. package/dist/indexer/chunker.d.ts.map +1 -1
  37. package/dist/indexer/chunker.js +9 -5
  38. package/dist/indexer/chunker.js.map +1 -1
  39. package/dist/indexer/incremental.d.ts +4 -4
  40. package/dist/indexer/incremental.d.ts.map +1 -1
  41. package/dist/indexer/incremental.js +35 -23
  42. package/dist/indexer/incremental.js.map +1 -1
  43. package/dist/indexer/index.d.ts +3 -1
  44. package/dist/indexer/index.d.ts.map +1 -1
  45. package/dist/indexer/index.js +109 -47
  46. package/dist/indexer/index.js.map +1 -1
  47. package/dist/indexer/json-template-chunker.d.ts +4 -1
  48. package/dist/indexer/json-template-chunker.d.ts.map +1 -1
  49. package/dist/indexer/json-template-chunker.js +3 -1
  50. package/dist/indexer/json-template-chunker.js.map +1 -1
  51. package/dist/indexer/liquid-chunker.d.ts +4 -1
  52. package/dist/indexer/liquid-chunker.d.ts.map +1 -1
  53. package/dist/indexer/liquid-chunker.js +16 -14
  54. package/dist/indexer/liquid-chunker.js.map +1 -1
  55. package/dist/indexer/progress-tracker.d.ts +3 -1
  56. package/dist/indexer/progress-tracker.d.ts.map +1 -1
  57. package/dist/indexer/progress-tracker.js +8 -2
  58. package/dist/indexer/progress-tracker.js.map +1 -1
  59. package/dist/indexer/types.d.ts +22 -0
  60. package/dist/indexer/types.d.ts.map +1 -1
  61. package/dist/insights/complexity-analyzer.d.ts +6 -5
  62. package/dist/insights/complexity-analyzer.d.ts.map +1 -1
  63. package/dist/insights/complexity-analyzer.js +33 -14
  64. package/dist/insights/complexity-analyzer.js.map +1 -1
  65. package/dist/test/helpers/mock-embeddings.d.ts +12 -0
  66. package/dist/test/helpers/mock-embeddings.d.ts.map +1 -0
  67. package/dist/test/helpers/mock-embeddings.js +43 -0
  68. package/dist/test/helpers/mock-embeddings.js.map +1 -0
  69. package/dist/test/helpers/test-db.d.ts +21 -0
  70. package/dist/test/helpers/test-db.d.ts.map +1 -0
  71. package/dist/test/helpers/test-db.js +48 -0
  72. package/dist/test/helpers/test-db.js.map +1 -0
  73. package/dist/vectordb/factory.d.ts +15 -0
  74. package/dist/vectordb/factory.d.ts.map +1 -0
  75. package/dist/vectordb/factory.js +117 -0
  76. package/dist/vectordb/factory.js.map +1 -0
  77. package/dist/vectordb/qdrant-payload-mapper.d.ts +80 -0
  78. package/dist/vectordb/qdrant-payload-mapper.d.ts.map +1 -0
  79. package/dist/vectordb/qdrant-payload-mapper.js +129 -0
  80. package/dist/vectordb/qdrant-payload-mapper.js.map +1 -0
  81. package/dist/vectordb/qdrant.d.ts +201 -0
  82. package/dist/vectordb/qdrant.d.ts.map +1 -0
  83. package/dist/vectordb/qdrant.js +659 -0
  84. package/dist/vectordb/qdrant.js.map +1 -0
  85. package/dist/vectordb/types.d.ts +26 -1
  86. package/dist/vectordb/types.d.ts.map +1 -1
  87. package/package.json +2 -1
  88. package/dist/config/loader.d.ts +0 -12
  89. package/dist/config/loader.d.ts.map +0 -1
  90. package/dist/config/loader.js +0 -46
  91. package/dist/config/loader.js.map +0 -1
  92. package/dist/config/migration-manager.d.ts +0 -46
  93. package/dist/config/migration-manager.d.ts.map +0 -1
  94. package/dist/config/migration-manager.js +0 -119
  95. package/dist/config/migration-manager.js.map +0 -1
  96. package/dist/config/migration.d.ts +0 -20
  97. package/dist/config/migration.d.ts.map +0 -1
  98. package/dist/config/migration.js +0 -155
  99. package/dist/config/migration.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant.js","sourceRoot":"","sources":["../../src/vectordb/qdrant.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,39 @@ import { RelevanceCategory } from './relevance.js';
3
3
  export interface SearchResult {
4
4
  content: string;
5
5
  metadata: ChunkMetadata;
6
+ /**
7
+ * Similarity score from vector search.
8
+ *
9
+ * For semantic search operations, this is the distance metric (e.g., cosine distance)
10
+ * returned by the vector database, where lower values indicate more similar results.
11
+ * For scroll/scan-based operations (e.g. scanWithFilter, scanAll, querySymbols),
12
+ * this is always 0 because no scoring is performed.
13
+ */
6
14
  score: number;
15
+ /**
16
+ * Relevance category derived from the score.
17
+ *
18
+ * For scroll/scan-based operations that do not compute scores, this is
19
+ * always 'not_relevant' to indicate that results are unscored rather than
20
+ * semantically irrelevant.
21
+ */
7
22
  relevance: RelevanceCategory;
8
23
  }
9
24
  export interface VectorDBInterface {
25
+ /** Path to local storage (used for manifest and version files, even with remote backends like Qdrant) */
26
+ readonly dbPath: string;
10
27
  initialize(): Promise<void>;
11
28
  insertBatch(vectors: Float32Array[], metadatas: ChunkMetadata[], contents: string[]): Promise<void>;
12
- search(queryVector: Float32Array, limit?: number): Promise<SearchResult[]>;
29
+ search(queryVector: Float32Array, limit?: number, query?: string): Promise<SearchResult[]>;
13
30
  scanWithFilter(options: {
14
31
  language?: string;
15
32
  pattern?: string;
16
33
  limit?: number;
17
34
  }): Promise<SearchResult[]>;
35
+ scanAll(options?: {
36
+ language?: string;
37
+ pattern?: string;
38
+ }): Promise<SearchResult[]>;
18
39
  querySymbols(options: {
19
40
  language?: string;
20
41
  pattern?: string;
@@ -25,5 +46,9 @@ export interface VectorDBInterface {
25
46
  deleteByFile(filepath: string): Promise<void>;
26
47
  updateFile(filepath: string, vectors: Float32Array[], metadatas: ChunkMetadata[], contents: string[]): Promise<void>;
27
48
  hasData(): Promise<boolean>;
49
+ checkVersion(): Promise<boolean>;
50
+ reconnect(): Promise<void>;
51
+ getCurrentVersion(): number;
52
+ getVersionDate(): string;
28
53
  }
29
54
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vectordb/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpG,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3E,cAAc,CAAC,OAAO,EAAE;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5B,YAAY,CAAC,OAAO,EAAE;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;QAChD,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vectordb/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB;;;;;;;OAOG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,yGAAyG;IACzG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpG,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3F,cAAc,CAAC,OAAO,EAAE;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5B,OAAO,CAAC,OAAO,CAAC,EAAE;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5B,YAAY,CAAC,OAAO,EAAE;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;QAChD,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,iBAAiB,IAAI,MAAM,CAAC;IAC5B,cAAc,IAAI,MAAM,CAAC;CAC1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liendev/core",
3
- "version": "0.20.1",
3
+ "version": "0.22.0",
4
4
  "description": "Core indexing and analysis engine for Lien",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,6 +19,7 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "@lancedb/lancedb": "^0.17.0",
22
+ "@qdrant/js-client-rest": "^1.16.2",
22
23
  "@xenova/transformers": "2.17.0",
23
24
  "collect.js": "^4.36.1",
24
25
  "glob": "10.3.0",
@@ -1,12 +0,0 @@
1
- import { LienConfig } from './schema.js';
2
- /**
3
- * @deprecated Use ConfigService.load() instead. This function is kept for backward compatibility.
4
- * @see ConfigService
5
- */
6
- export declare function loadConfig(rootDir?: string): Promise<LienConfig>;
7
- /**
8
- * @deprecated Use ConfigService.exists() instead. This function is kept for backward compatibility.
9
- * @see ConfigService
10
- */
11
- export declare function configExists(rootDir?: string): Promise<boolean>;
12
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAIxD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAuBrF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQpF"}
@@ -1,46 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import { defaultConfig } from './schema.js';
4
- import { deepMergeConfig } from './merge.js';
5
- import { MigrationManager } from './migration-manager.js';
6
- /**
7
- * @deprecated Use ConfigService.load() instead. This function is kept for backward compatibility.
8
- * @see ConfigService
9
- */
10
- export async function loadConfig(rootDir = process.cwd()) {
11
- const configPath = path.join(rootDir, '.lien.config.json');
12
- try {
13
- const configContent = await fs.readFile(configPath, 'utf-8');
14
- const userConfig = JSON.parse(configContent);
15
- // Check if migration is needed
16
- const migrationManager = new MigrationManager(rootDir);
17
- if (await migrationManager.needsMigration()) {
18
- console.log('🔄 Migrating config from v0.2.0 to v0.3.0...');
19
- return await migrationManager.autoMigrate();
20
- }
21
- // Use the shared merge function for consistency
22
- return deepMergeConfig(defaultConfig, userConfig);
23
- }
24
- catch (error) {
25
- if (error.code === 'ENOENT') {
26
- // Config doesn't exist, return defaults
27
- return defaultConfig;
28
- }
29
- throw error;
30
- }
31
- }
32
- /**
33
- * @deprecated Use ConfigService.exists() instead. This function is kept for backward compatibility.
34
- * @see ConfigService
35
- */
36
- export async function configExists(rootDir = process.cwd()) {
37
- const configPath = path.join(rootDir, '.lien.config.json');
38
- try {
39
- await fs.access(configPath);
40
- return true;
41
- }
42
- catch {
43
- return false;
44
- }
45
- }
46
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAc,aAAa,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB,OAAO,CAAC,GAAG,EAAE;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE7C,+BAA+B;QAC/B,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,MAAM,gBAAgB,CAAC,cAAc,EAAE,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,OAAO,MAAM,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAC9C,CAAC;QAED,gDAAgD;QAChD,OAAO,eAAe,CAAC,aAAa,EAAE,UAAiC,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,wCAAwC;YACxC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAkB,OAAO,CAAC,GAAG,EAAE;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1,46 +0,0 @@
1
- import { LienConfig } from './schema.js';
2
- /**
3
- * Result of a migration operation
4
- */
5
- export interface MigrationResult {
6
- migrated: boolean;
7
- backupPath?: string;
8
- config: LienConfig;
9
- }
10
- /**
11
- * Centralized migration orchestration service
12
- *
13
- * Handles all config migration scenarios:
14
- * - Auto-migration during config loading
15
- * - Interactive upgrade via CLI
16
- * - Migration status checking
17
- */
18
- export declare class MigrationManager {
19
- private readonly rootDir;
20
- private readonly targetVersion;
21
- constructor(rootDir?: string, targetVersion?: string);
22
- /**
23
- * Get the config file path
24
- */
25
- private getConfigPath;
26
- /**
27
- * Check if the current config needs migration
28
- */
29
- needsMigration(): Promise<boolean>;
30
- /**
31
- * Perform silent migration (for auto-migration during load)
32
- * Returns the migrated config without user interaction
33
- */
34
- autoMigrate(): Promise<LienConfig>;
35
- /**
36
- * Perform interactive upgrade (for CLI upgrade command)
37
- * Provides detailed feedback and handles edge cases
38
- */
39
- upgradeInteractive(): Promise<void>;
40
- /**
41
- * Perform migration and return result
42
- * Used when programmatic access to migration result is needed
43
- */
44
- migrate(): Promise<MigrationResult>;
45
- }
46
- //# sourceMappingURL=migration-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration-manager.d.ts","sourceRoot":"","sources":["../../src/config/migration-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAKxD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,OAAO,GAAE,MAAsB,EAC/B,aAAa,GAAE,MAA+B;IAGjE;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAYxC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;IAYxC;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IA+DzC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;CAG1C"}
@@ -1,119 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import chalk from 'chalk';
4
- import { defaultConfig } from './schema.js';
5
- import { needsMigration, migrateConfig, migrateConfigFile } from './migration.js';
6
- import { deepMergeConfig, detectNewFields } from './merge.js';
7
- import { CURRENT_CONFIG_VERSION } from '../constants.js';
8
- /**
9
- * Centralized migration orchestration service
10
- *
11
- * Handles all config migration scenarios:
12
- * - Auto-migration during config loading
13
- * - Interactive upgrade via CLI
14
- * - Migration status checking
15
- */
16
- export class MigrationManager {
17
- rootDir;
18
- targetVersion;
19
- constructor(rootDir = process.cwd(), targetVersion = CURRENT_CONFIG_VERSION) {
20
- this.rootDir = rootDir;
21
- this.targetVersion = targetVersion;
22
- }
23
- /**
24
- * Get the config file path
25
- */
26
- getConfigPath() {
27
- return path.join(this.rootDir, '.lien.config.json');
28
- }
29
- /**
30
- * Check if the current config needs migration
31
- */
32
- async needsMigration() {
33
- try {
34
- const configPath = this.getConfigPath();
35
- const content = await fs.readFile(configPath, 'utf-8');
36
- const config = JSON.parse(content);
37
- return needsMigration(config);
38
- }
39
- catch (error) {
40
- // If config doesn't exist or can't be read, no migration needed
41
- return false;
42
- }
43
- }
44
- /**
45
- * Perform silent migration (for auto-migration during load)
46
- * Returns the migrated config without user interaction
47
- */
48
- async autoMigrate() {
49
- const result = await migrateConfigFile(this.rootDir);
50
- if (result.migrated && result.backupPath) {
51
- const backupFilename = path.basename(result.backupPath);
52
- console.log(`✅ Migration complete! Backup saved as ${backupFilename}`);
53
- console.log('📝 Your config now uses the framework-based structure.');
54
- }
55
- return result.config;
56
- }
57
- /**
58
- * Perform interactive upgrade (for CLI upgrade command)
59
- * Provides detailed feedback and handles edge cases
60
- */
61
- async upgradeInteractive() {
62
- const configPath = this.getConfigPath();
63
- try {
64
- // 1. Read existing config
65
- const existingContent = await fs.readFile(configPath, 'utf-8');
66
- const existingConfig = JSON.parse(existingContent);
67
- // 2. Check if any changes are needed
68
- const migrationNeeded = needsMigration(existingConfig);
69
- const newFields = migrationNeeded ? [] : detectNewFields(existingConfig, defaultConfig);
70
- const hasChanges = migrationNeeded || newFields.length > 0;
71
- if (!hasChanges) {
72
- console.log(chalk.green('✓ Config is already up to date'));
73
- console.log(chalk.dim('No changes needed'));
74
- return;
75
- }
76
- // 3. Backup existing config (only if changes are needed)
77
- const backupPath = `${configPath}.backup`;
78
- await fs.copyFile(configPath, backupPath);
79
- // 4. Perform upgrade
80
- let upgradedConfig;
81
- let migrated = false;
82
- if (migrationNeeded) {
83
- console.log(chalk.blue(`🔄 Migrating config from v0.2.0 to v${this.targetVersion}...`));
84
- upgradedConfig = migrateConfig(existingConfig, this.targetVersion);
85
- migrated = true;
86
- }
87
- else {
88
- // Just merge with defaults for current version configs
89
- upgradedConfig = deepMergeConfig(defaultConfig, existingConfig);
90
- console.log(chalk.dim('\nNew options added:'));
91
- newFields.forEach(field => console.log(chalk.dim(' •'), chalk.bold(field)));
92
- }
93
- // 5. Write upgraded config
94
- await fs.writeFile(configPath, JSON.stringify(upgradedConfig, null, 2) + '\n', 'utf-8');
95
- // 6. Show results
96
- console.log(chalk.green('✓ Config upgraded successfully'));
97
- console.log(chalk.dim('Backup saved to:'), backupPath);
98
- if (migrated) {
99
- console.log(chalk.dim('\n📝 Your config now uses the framework-based structure.'));
100
- }
101
- }
102
- catch (error) {
103
- if (error.code === 'ENOENT') {
104
- console.log(chalk.red('Error: No config file found'));
105
- console.log(chalk.dim('Run'), chalk.bold('lien init'), chalk.dim('to create a config file'));
106
- return;
107
- }
108
- throw error;
109
- }
110
- }
111
- /**
112
- * Perform migration and return result
113
- * Used when programmatic access to migration result is needed
114
- */
115
- async migrate() {
116
- return migrateConfigFile(this.rootDir);
117
- }
118
- }
119
- //# sourceMappingURL=migration-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration-manager.js","sourceRoot":"","sources":["../../src/config/migration-manager.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { LienConfig, LegacyLienConfig } from './schema.js';
2
- /**
3
- * Checks if a config object needs migration from v0.2.0 to v0.3.0
4
- */
5
- export declare function needsMigration(config: any): boolean;
6
- /**
7
- * Migrates a v0.2.0 config to v0.3.0+ format
8
- * @param oldConfig - The old config to migrate
9
- * @param targetVersion - The version to set in the migrated config (defaults to CURRENT_CONFIG_VERSION)
10
- */
11
- export declare function migrateConfig(oldConfig: Partial<LegacyLienConfig | LienConfig>, targetVersion?: string): LienConfig;
12
- /**
13
- * Migrates config file and creates backup
14
- */
15
- export declare function migrateConfigFile(rootDir?: string): Promise<{
16
- migrated: boolean;
17
- backupPath?: string;
18
- config: LienConfig;
19
- }>;
20
- //# sourceMappingURL=migration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/config/migration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoC,MAAM,aAAa,CAAC;AAG7F;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CA+BnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,GAAG,UAAU,CAAC,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,UAAU,CA6EnH;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC;IAChF,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC,CAyCD"}
@@ -1,155 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import { defaultConfig } from './schema.js';
4
- import { CURRENT_CONFIG_VERSION } from '../constants.js';
5
- /**
6
- * Checks if a config object needs migration from v0.2.0 to v0.3.0
7
- */
8
- export function needsMigration(config) {
9
- // Check if config uses old structure:
10
- // - Has 'indexing' field instead of 'core' and 'frameworks'
11
- // - Or has no 'frameworks' field at all
12
- // - Or version is explicitly set to something < 0.3.0
13
- // - Or missing 'chunking' field (v0.13.0)
14
- if (!config) {
15
- return false;
16
- }
17
- // If missing chunking config, needs migration to v0.13.0
18
- if (config.frameworks !== undefined && !config.chunking) {
19
- return true;
20
- }
21
- // If it has frameworks array and chunking, it's already in new format
22
- if (config.frameworks !== undefined && config.chunking !== undefined) {
23
- return false;
24
- }
25
- // If it has 'indexing' field, it's the old format
26
- if (config.indexing !== undefined) {
27
- return true;
28
- }
29
- // If version is explicitly < 0.3.0
30
- if (config.version && config.version.startsWith('0.2')) {
31
- return true;
32
- }
33
- return false;
34
- }
35
- /**
36
- * Migrates a v0.2.0 config to v0.3.0+ format
37
- * @param oldConfig - The old config to migrate
38
- * @param targetVersion - The version to set in the migrated config (defaults to CURRENT_CONFIG_VERSION)
39
- */
40
- export function migrateConfig(oldConfig, targetVersion) {
41
- // Start with default config structure
42
- const newConfig = {
43
- version: targetVersion ?? CURRENT_CONFIG_VERSION,
44
- core: {
45
- chunkSize: oldConfig.indexing?.chunkSize ?? oldConfig.core?.chunkSize ?? defaultConfig.core.chunkSize,
46
- chunkOverlap: oldConfig.indexing?.chunkOverlap ?? oldConfig.core?.chunkOverlap ?? defaultConfig.core.chunkOverlap,
47
- concurrency: oldConfig.indexing?.concurrency ?? oldConfig.core?.concurrency ?? defaultConfig.core.concurrency,
48
- embeddingBatchSize: oldConfig.indexing?.embeddingBatchSize ?? oldConfig.core?.embeddingBatchSize ?? defaultConfig.core.embeddingBatchSize,
49
- },
50
- chunking: {
51
- useAST: oldConfig.chunking?.useAST ?? defaultConfig.chunking.useAST,
52
- astFallback: oldConfig.chunking?.astFallback ?? defaultConfig.chunking.astFallback,
53
- },
54
- mcp: {
55
- port: oldConfig.mcp?.port ?? defaultConfig.mcp.port,
56
- transport: oldConfig.mcp?.transport ?? defaultConfig.mcp.transport,
57
- autoIndexOnFirstRun: oldConfig.mcp?.autoIndexOnFirstRun ?? defaultConfig.mcp.autoIndexOnFirstRun,
58
- },
59
- gitDetection: {
60
- enabled: oldConfig.gitDetection?.enabled ?? defaultConfig.gitDetection.enabled,
61
- pollIntervalMs: oldConfig.gitDetection?.pollIntervalMs ?? defaultConfig.gitDetection.pollIntervalMs,
62
- },
63
- fileWatching: {
64
- enabled: oldConfig.fileWatching?.enabled ?? defaultConfig.fileWatching.enabled,
65
- debounceMs: oldConfig.fileWatching?.debounceMs ?? defaultConfig.fileWatching.debounceMs,
66
- },
67
- frameworks: oldConfig.frameworks ?? [],
68
- };
69
- // Convert old indexing config to a single "generic" framework (only for legacy configs)
70
- if (oldConfig.indexing && newConfig.frameworks.length === 0) {
71
- const genericFramework = {
72
- name: 'generic',
73
- path: '.',
74
- enabled: true,
75
- config: {
76
- include: oldConfig.indexing.include ?? ['**/*.{ts,tsx,js,jsx,py,php,go,rs,java,c,cpp,cs}'],
77
- exclude: oldConfig.indexing.exclude ?? [
78
- '**/node_modules/**',
79
- '**/dist/**',
80
- '**/build/**',
81
- '**/.git/**',
82
- '**/coverage/**',
83
- '**/.next/**',
84
- '**/.nuxt/**',
85
- '**/vendor/**',
86
- ],
87
- },
88
- };
89
- newConfig.frameworks.push(genericFramework);
90
- }
91
- else if (newConfig.frameworks.length === 0) {
92
- // No indexing config and no frameworks present, use defaults for generic framework
93
- const genericFramework = {
94
- name: 'generic',
95
- path: '.',
96
- enabled: true,
97
- config: {
98
- include: ['**/*.{ts,tsx,js,jsx,py,php,go,rs,java,c,cpp,cs}'],
99
- exclude: [
100
- '**/node_modules/**',
101
- '**/dist/**',
102
- '**/build/**',
103
- '**/.git/**',
104
- '**/coverage/**',
105
- '**/.next/**',
106
- '**/.nuxt/**',
107
- '**/vendor/**',
108
- ],
109
- },
110
- };
111
- newConfig.frameworks.push(genericFramework);
112
- }
113
- return newConfig;
114
- }
115
- /**
116
- * Migrates config file and creates backup
117
- */
118
- export async function migrateConfigFile(rootDir = process.cwd()) {
119
- const configPath = path.join(rootDir, '.lien.config.json');
120
- try {
121
- // Read existing config
122
- const configContent = await fs.readFile(configPath, 'utf-8');
123
- const oldConfig = JSON.parse(configContent);
124
- // Check if migration is needed
125
- if (!needsMigration(oldConfig)) {
126
- return {
127
- migrated: false,
128
- config: oldConfig,
129
- };
130
- }
131
- // Perform migration
132
- const newConfig = migrateConfig(oldConfig);
133
- // Create backup
134
- const backupPath = `${configPath}.v0.2.0.backup`;
135
- await fs.copyFile(configPath, backupPath);
136
- // Write migrated config
137
- await fs.writeFile(configPath, JSON.stringify(newConfig, null, 2) + '\n', 'utf-8');
138
- return {
139
- migrated: true,
140
- backupPath,
141
- config: newConfig,
142
- };
143
- }
144
- catch (error) {
145
- // If config doesn't exist, return default
146
- if (error.code === 'ENOENT') {
147
- return {
148
- migrated: false,
149
- config: defaultConfig,
150
- };
151
- }
152
- throw error;
153
- }
154
- }
155
- //# sourceMappingURL=migration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/config/migration.ts"],"names":[],"mappings":"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"}