skill-creator 0.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +157 -19
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +268 -262
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/addContent.d.ts +5 -0
  6. package/dist/commands/addContent.d.ts.map +1 -0
  7. package/dist/commands/addContent.js +74 -0
  8. package/dist/commands/addContent.js.map +1 -0
  9. package/dist/commands/buildIndex.d.ts +5 -0
  10. package/dist/commands/buildIndex.d.ts.map +1 -0
  11. package/dist/commands/buildIndex.js +17 -0
  12. package/dist/commands/buildIndex.js.map +1 -0
  13. package/dist/commands/downloadContext7.d.ts +5 -0
  14. package/dist/commands/downloadContext7.d.ts.map +1 -0
  15. package/dist/commands/downloadContext7.js +62 -0
  16. package/dist/commands/downloadContext7.js.map +1 -0
  17. package/dist/commands/init.d.ts +5 -0
  18. package/dist/commands/init.d.ts.map +1 -0
  19. package/dist/commands/init.js +89 -0
  20. package/dist/commands/init.js.map +1 -0
  21. package/dist/commands/listContent.d.ts +5 -0
  22. package/dist/commands/listContent.d.ts.map +1 -0
  23. package/dist/commands/listContent.js +35 -0
  24. package/dist/commands/listContent.js.map +1 -0
  25. package/dist/commands/searchContent.d.ts +5 -0
  26. package/dist/commands/searchContent.d.ts.map +1 -0
  27. package/dist/commands/searchContent.js +98 -0
  28. package/dist/commands/searchContent.js.map +1 -0
  29. package/dist/commands/shared.d.ts +23 -0
  30. package/dist/commands/shared.d.ts.map +1 -0
  31. package/dist/commands/shared.js +92 -0
  32. package/dist/commands/shared.js.map +1 -0
  33. package/dist/core/autoSearchAdapter.d.ts +42 -0
  34. package/dist/core/autoSearchAdapter.d.ts.map +1 -0
  35. package/dist/core/autoSearchAdapter.js +116 -0
  36. package/dist/core/autoSearchAdapter.js.map +1 -0
  37. package/dist/core/chromaSearch.d.ts +2 -2
  38. package/dist/core/chromaSearch.d.ts.map +1 -1
  39. package/dist/core/chromaSearch.js +11 -9
  40. package/dist/core/chromaSearch.js.map +1 -1
  41. package/dist/core/chromaSearchAdapter.d.ts +86 -0
  42. package/dist/core/chromaSearchAdapter.d.ts.map +1 -0
  43. package/dist/core/chromaSearchAdapter.js +477 -0
  44. package/dist/core/chromaSearchAdapter.js.map +1 -0
  45. package/dist/core/chromaServerManager.d.ts +64 -0
  46. package/dist/core/chromaServerManager.d.ts.map +1 -0
  47. package/dist/core/chromaServerManager.js +186 -0
  48. package/dist/core/chromaServerManager.js.map +1 -0
  49. package/dist/core/contentManager.d.ts +1 -0
  50. package/dist/core/contentManager.d.ts.map +1 -1
  51. package/dist/core/contentManager.js +75 -21
  52. package/dist/core/contentManager.js.map +1 -1
  53. package/dist/core/fuzzySearchAdapter.d.ts +33 -0
  54. package/dist/core/fuzzySearchAdapter.d.ts.map +1 -0
  55. package/dist/core/fuzzySearchAdapter.js +185 -0
  56. package/dist/core/fuzzySearchAdapter.js.map +1 -0
  57. package/dist/core/portUtils.d.ts +51 -0
  58. package/dist/core/portUtils.d.ts.map +1 -0
  59. package/dist/core/portUtils.js +120 -0
  60. package/dist/core/portUtils.js.map +1 -0
  61. package/dist/core/runScript.d.ts +1 -1
  62. package/dist/core/runScript.d.ts.map +1 -1
  63. package/dist/core/runScript.js +27 -210
  64. package/dist/core/runScript.js.map +1 -1
  65. package/dist/core/searchAdapter.d.ts +48 -0
  66. package/dist/core/searchAdapter.d.ts.map +1 -0
  67. package/dist/core/searchAdapter.js +6 -0
  68. package/dist/core/searchAdapter.js.map +1 -0
  69. package/dist/core/searchEngineFactory.d.ts +30 -0
  70. package/dist/core/searchEngineFactory.d.ts.map +1 -0
  71. package/dist/core/searchEngineFactory.js +41 -0
  72. package/dist/core/searchEngineFactory.js.map +1 -0
  73. package/dist/core/skillCreator.d.ts +2 -4
  74. package/dist/core/skillCreator.d.ts.map +1 -1
  75. package/dist/core/skillCreator.js +46 -195
  76. package/dist/core/skillCreator.js.map +1 -1
  77. package/dist/core/templateManager.d.ts +2 -1
  78. package/dist/core/templateManager.d.ts.map +1 -1
  79. package/dist/core/templateManager.js +19 -13
  80. package/dist/core/templateManager.js.map +1 -1
  81. package/dist/core/unifiedSearch.d.ts +57 -11
  82. package/dist/core/unifiedSearch.d.ts.map +1 -1
  83. package/dist/core/unifiedSearch.js +88 -29
  84. package/dist/core/unifiedSearch.js.map +1 -1
  85. package/dist/index.d.ts +4 -1
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +3 -1
  88. package/dist/index.js.map +1 -1
  89. package/dist/search_format/enhancedFormatter.d.ts +109 -0
  90. package/dist/search_format/enhancedFormatter.d.ts.map +1 -0
  91. package/dist/search_format/enhancedFormatter.js +262 -0
  92. package/dist/search_format/enhancedFormatter.js.map +1 -0
  93. package/dist/search_format/index.d.ts +10 -0
  94. package/dist/search_format/index.d.ts.map +1 -0
  95. package/dist/search_format/index.js +22 -0
  96. package/dist/search_format/index.js.map +1 -0
  97. package/dist/search_format/listFormatter.d.ts +16 -0
  98. package/dist/search_format/listFormatter.d.ts.map +1 -0
  99. package/dist/search_format/listFormatter.js +51 -0
  100. package/dist/search_format/listFormatter.js.map +1 -0
  101. package/dist/search_format/types.d.ts +69 -0
  102. package/dist/search_format/types.d.ts.map +1 -0
  103. package/dist/search_format/types.js +5 -0
  104. package/dist/search_format/types.js.map +1 -0
  105. package/dist/types/index.d.ts +6 -1
  106. package/dist/types/index.d.ts.map +1 -1
  107. package/dist/utils/package.d.ts +17 -0
  108. package/dist/utils/package.d.ts.map +1 -1
  109. package/dist/utils/package.js +51 -14
  110. package/dist/utils/package.js.map +1 -1
  111. package/package.json +9 -8
  112. package/templates/SKILL.md +193 -0
  113. package/templates/SKILL.zh-CN.md +193 -0
  114. package/templates/skill-creator.md +68 -154
  115. package/templates/skill-creator.zh-CN.md +98 -0
  116. package/dist/core/searchEngine.d.ts +0 -25
  117. package/dist/core/searchEngine.d.ts.map +0 -1
  118. package/dist/core/searchEngine.js +0 -198
  119. package/dist/core/searchEngine.js.map +0 -1
  120. package/dist/core/simpleSearch.d.ts +0 -21
  121. package/dist/core/simpleSearch.d.ts.map +0 -1
  122. package/dist/core/simpleSearch.js +0 -113
  123. package/dist/core/simpleSearch.js.map +0 -1
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Shared utilities for commands
3
+ */
4
+ import { join } from 'node:path';
5
+ import { existsSync } from 'node:fs';
6
+ import { Config } from '../utils/config.js';
7
+ /**
8
+ * Load skill configuration from current directory
9
+ */
10
+ export function loadSkillConfig() {
11
+ const configPath = join(process.cwd(), 'config.json');
12
+ if (!existsSync(configPath)) {
13
+ console.error('❌ config.json not found. Are you in a skill directory?');
14
+ process.exit(1);
15
+ }
16
+ return Config.load(configPath);
17
+ }
18
+ /**
19
+ * Parse command line arguments
20
+ */
21
+ export function parseArgs(args, definitions) {
22
+ const result = {};
23
+ for (let i = 0; i < args.length; i++) {
24
+ const arg = args[i];
25
+ if (arg.startsWith('--')) {
26
+ const key = arg.slice(2);
27
+ const def = definitions.find((d) => d.name === key || d.alias === key);
28
+ if (def) {
29
+ if (def.type === 'boolean') {
30
+ result[key] = true;
31
+ }
32
+ else if (i + 1 < args.length) {
33
+ const value = args[++i];
34
+ result[key] = def.type === 'number' ? Number(value) : value;
35
+ }
36
+ }
37
+ }
38
+ else if (arg.startsWith('-')) {
39
+ const key = arg.slice(1);
40
+ const def = definitions.find((d) => d.alias === key);
41
+ if (def) {
42
+ if (def.type === 'boolean') {
43
+ result[def.name] = true;
44
+ }
45
+ else if (i + 1 < args.length) {
46
+ const value = args[++i];
47
+ result[def.name] = def.type === 'number' ? Number(value) : value;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ // Check for required arguments
53
+ for (const def of definitions) {
54
+ if (def.required && !(def.name in result)) {
55
+ console.error(`❌ Required argument --${def.name} is missing`);
56
+ process.exit(1);
57
+ }
58
+ }
59
+ // Apply defaults
60
+ for (const def of definitions) {
61
+ if (!(def.name in result) && def.default !== undefined) {
62
+ result[def.name] = def.default;
63
+ }
64
+ }
65
+ return result;
66
+ }
67
+ /**
68
+ * Create search engine instance
69
+ */
70
+ export async function createSearchEngine(config, searchMode = 'auto', useFormatting = true) {
71
+ const { UnifiedSearchEngine } = await import('../core/unifiedSearch.js');
72
+ return new UnifiedSearchEngine({
73
+ mode: searchMode,
74
+ skillDir: join(process.cwd(), 'assets'),
75
+ referencesDir: join(process.cwd(), 'assets', 'references'),
76
+ config,
77
+ skillPath: process.cwd(),
78
+ format: useFormatting ? 'enhanced' : undefined,
79
+ adapterOptions: {
80
+ enableChromaFallback: true,
81
+ chromaStartupTimeout: 15000,
82
+ qualityThreshold: 0.3,
83
+ },
84
+ formatting: {
85
+ maxPreviewLength: 200,
86
+ showFullContentThreshold: 0.8,
87
+ minScoreForPreview: 0.3,
88
+ showLineNumbers: true,
89
+ },
90
+ });
91
+ }
92
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Auto Search Adapter
3
+ * Intelligently selects and switches between search engines based on query characteristics
4
+ * and search quality evaluation
5
+ */
6
+ import type { SearchEngine, SearchResult, SearchOptions } from './searchAdapter.js';
7
+ export interface AutoSearchOptions {
8
+ /** Skill directory for ChromaDB */
9
+ skillDir: string;
10
+ /** ChromaDB collection name */
11
+ collectionName: string;
12
+ /** Enable ChromaDB fallback on failure */
13
+ enableChromaFallback?: boolean;
14
+ /** ChromaDB startup timeout in milliseconds */
15
+ chromaStartupTimeout?: number;
16
+ /** Quality threshold for switching engines */
17
+ qualityThreshold?: number;
18
+ }
19
+ /**
20
+ * Auto Search Adapter
21
+ * Implements intelligent search engine selection and automatic switching
22
+ */
23
+ export declare class AutoSearchAdapter implements SearchEngine {
24
+ private fuzzyAdapter;
25
+ private chromaAdapter;
26
+ private options;
27
+ constructor(options: AutoSearchOptions);
28
+ private getChromaAdapter;
29
+ buildIndex(referencesDir: string): Promise<void>;
30
+ search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
31
+ /**
32
+ * Evaluate search result quality
33
+ */
34
+ private evaluateSearchQuality;
35
+ isBuilt(): boolean;
36
+ getStats(): Promise<{
37
+ totalDocuments: number;
38
+ }>;
39
+ searchByPriority(query: string, topK?: number): Promise<SearchResult[]>;
40
+ clearIndex(): void;
41
+ }
42
+ //# sourceMappingURL=autoSearchAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoSearchAdapter.d.ts","sourceRoot":"","sources":["../../src/core/autoSearchAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAInF,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,0CAA0C;IAC1C,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,+CAA+C;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,OAAO,CAAmB;gBAEtB,OAAO,EAAE,iBAAiB;YAOxB,gBAAgB;IAYxB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAoCjF;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4C7B,OAAO,IAAI,OAAO;IAIZ,QAAQ,IAAI,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIhF,UAAU,IAAI,IAAI;CAMnB"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Auto Search Adapter
3
+ * Intelligently selects and switches between search engines based on query characteristics
4
+ * and search quality evaluation
5
+ */
6
+ import { FuzzySearchAdapter } from './fuzzySearchAdapter.js';
7
+ import { ChromaSearchAdapter } from './chromaSearchAdapter.js';
8
+ /**
9
+ * Auto Search Adapter
10
+ * Implements intelligent search engine selection and automatic switching
11
+ */
12
+ export class AutoSearchAdapter {
13
+ fuzzyAdapter;
14
+ chromaAdapter = null;
15
+ options;
16
+ constructor(options) {
17
+ this.options = options;
18
+ this.fuzzyAdapter = new FuzzySearchAdapter();
19
+ // ChromaDB adapter created on-demand for better performance
20
+ }
21
+ async getChromaAdapter() {
22
+ if (!this.chromaAdapter) {
23
+ this.chromaAdapter = new ChromaSearchAdapter({
24
+ skillDir: this.options.skillDir,
25
+ collectionName: this.options.collectionName,
26
+ startupTimeout: this.options.chromaStartupTimeout || 15000,
27
+ enableFallback: this.options.enableChromaFallback || true,
28
+ });
29
+ }
30
+ return this.chromaAdapter;
31
+ }
32
+ async buildIndex(referencesDir) {
33
+ // Always build fuzzy index (fast and reliable)
34
+ await this.fuzzyAdapter.buildIndex(referencesDir);
35
+ // Build ChromaDB index only if needed (on-demand)
36
+ // This prevents unnecessary ChromaDB startup for simple searches
37
+ }
38
+ async search(query, options = {}) {
39
+ const { topK = 5, where } = options;
40
+ const qualityThreshold = this.options.qualityThreshold || 0.3;
41
+ console.log('🤖 Auto Mode: Starting with Fuzzy search...');
42
+ // Always start with fuzzy search (fast, reliable, no external dependencies)
43
+ const fuzzyResults = await this.fuzzyAdapter.search(query, { topK, where });
44
+ // Evaluate search quality
45
+ const quality = this.evaluateSearchQuality(fuzzyResults, query);
46
+ console.log(`📊 Fuzzy search quality: ${quality.score.toFixed(2)} (${quality.reason})`);
47
+ // If fuzzy search quality is good, return results
48
+ if (quality.score >= qualityThreshold) {
49
+ console.log('✅ Fuzzy search quality satisfactory, returning results');
50
+ return fuzzyResults;
51
+ }
52
+ // Try ChromaDB for better semantic understanding
53
+ console.log('🔄 Fuzzy search quality below threshold, trying ChromaDB...');
54
+ try {
55
+ const chromaAdapter = await this.getChromaAdapter();
56
+ const chromaResults = await chromaAdapter.search(query, { topK, where });
57
+ console.log(`✅ ChromaDB search completed, found ${chromaResults.length} results`);
58
+ return chromaResults;
59
+ }
60
+ catch (error) {
61
+ console.log(`❌ ChromaDB search failed, returning fuzzy results:`, error instanceof Error ? error.message : String(error));
62
+ return fuzzyResults;
63
+ }
64
+ }
65
+ /**
66
+ * Evaluate search result quality
67
+ */
68
+ evaluateSearchQuality(results, query) {
69
+ if (results.length === 0) {
70
+ return { score: 0, reason: 'No results found' };
71
+ }
72
+ // Quick win: check for exact matches
73
+ const topResult = results[0];
74
+ const queryLower = query.toLowerCase();
75
+ if (topResult.title.toLowerCase().includes(queryLower)) {
76
+ return { score: 1.0, reason: 'Exact title match found' };
77
+ }
78
+ // Check score distribution
79
+ const scores = results.map((r) => r.score);
80
+ const maxScore = Math.max(...scores);
81
+ const avgScore = scores.reduce((sum, score) => sum + score, 0) / scores.length;
82
+ // High score threshold
83
+ if (maxScore >= 0.8) {
84
+ return { score: maxScore, reason: 'High quality matches found' };
85
+ }
86
+ // Multiple decent results
87
+ if (results.length >= 3 && avgScore >= 0.5) {
88
+ return { score: avgScore, reason: 'Multiple decent quality results' };
89
+ }
90
+ // Low quality indicators
91
+ if (maxScore < 0.3) {
92
+ return { score: maxScore, reason: 'Low quality matches only' };
93
+ }
94
+ if (results.length < 2) {
95
+ return { score: maxScore * 0.8, reason: 'Too few results' };
96
+ }
97
+ // Default: return average score
98
+ return { score: avgScore, reason: 'Average quality results' };
99
+ }
100
+ isBuilt() {
101
+ return this.fuzzyAdapter.isBuilt();
102
+ }
103
+ async getStats() {
104
+ return this.fuzzyAdapter.getStats();
105
+ }
106
+ async searchByPriority(query, topK = 5) {
107
+ return this.search(query, { topK });
108
+ }
109
+ clearIndex() {
110
+ this.fuzzyAdapter.clearIndex();
111
+ if (this.chromaAdapter) {
112
+ this.chromaAdapter.clearIndex();
113
+ }
114
+ }
115
+ }
116
+ //# sourceMappingURL=autoSearchAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoSearchAdapter.js","sourceRoot":"","sources":["../../src/core/autoSearchAdapter.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,9 @@ export interface ChromaSearchOptions {
7
7
  collectionName: string;
8
8
  }
9
9
  export declare class ChromaSearchEngine {
10
- private db;
10
+ private db?;
11
11
  private options;
12
- private embeddingFunction;
12
+ private embeddingFunction?;
13
13
  constructor(options: ChromaSearchOptions);
14
14
  initialize(): Promise<void>;
15
15
  buildIndex(referencesDir: string, hashFile: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"chromaSearch.d.ts","sourceRoot":"","sources":["../../src/core/chromaSearch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,iBAAiB,CAAwC;gBAErD,OAAO,EAAE,mBAAmB;IAIlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+FlE,MAAM,CACV,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,MAAU,EAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC;IAoCpB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAY1E,QAAQ,IAAI,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;YAiBvC,kBAAkB;IAOhC,OAAO,CAAC,iBAAiB;CA2B1B"}
1
+ {"version":3,"file":"chromaSearch.d.ts","sourceRoot":"","sources":["../../src/core/chromaSearch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,EAAE,CAAC,CAAc;IACzB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,iBAAiB,CAAC,CAA0B;gBAExC,OAAO,EAAE,mBAAmB;IAIlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+FlE,MAAM,CACV,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,MAAU,EAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC;IAoCpB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAU1E,QAAQ,IAAI,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;YAiBvC,kBAAkB;IAOhC,OAAO,CAAC,iBAAiB;CA2B1B"}
@@ -6,9 +6,9 @@ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
6
6
  import { glob } from 'glob';
7
7
  import { createHash } from 'node:crypto';
8
8
  export class ChromaSearchEngine {
9
- db = null;
9
+ db;
10
10
  options;
11
- embeddingFunction = null;
11
+ embeddingFunction;
12
12
  constructor(options) {
13
13
  this.options = options;
14
14
  }
@@ -25,7 +25,7 @@ export class ChromaSearchEngine {
25
25
  this.embeddingFunction = new DefaultEmbeddingFunction();
26
26
  }
27
27
  async buildIndex(referencesDir, hashFile) {
28
- if (!await this.initializeIfNeeded()) {
28
+ if (!(await this.initializeIfNeeded())) {
29
29
  return;
30
30
  }
31
31
  // Get all markdown files
@@ -35,7 +35,7 @@ export class ChromaSearchEngine {
35
35
  return;
36
36
  }
37
37
  // Calculate current hash
38
- const fileContents = files.map(file => {
38
+ const fileContents = files.map((file) => {
39
39
  const content = readFileSync(join(referencesDir, file), 'utf-8');
40
40
  return `${file}:${content}`;
41
41
  });
@@ -59,7 +59,7 @@ export class ChromaSearchEngine {
59
59
  embeddingFunction: this.embeddingFunction,
60
60
  });
61
61
  // Clear existing data
62
- await collection.delete();
62
+ await collection.delete({});
63
63
  }
64
64
  catch {
65
65
  collection = await this.db.createCollection({
@@ -105,7 +105,7 @@ export class ChromaSearchEngine {
105
105
  console.log(`✅ Indexed ${documents.length} sections from ${files.length} files`);
106
106
  }
107
107
  async search(query, topK = 5, where) {
108
- if (!await this.initializeIfNeeded()) {
108
+ if (!(await this.initializeIfNeeded())) {
109
109
  return [];
110
110
  }
111
111
  let collection;
@@ -139,11 +139,13 @@ export class ChromaSearchEngine {
139
139
  async searchByPriority(query, topK = 5) {
140
140
  // First try user content, then context7
141
141
  const userResults = await this.search(query, topK, { source: 'user' });
142
- const contextResults = await this.search(query, topK - userResults.length, { source: 'context7' });
142
+ const contextResults = await this.search(query, topK - userResults.length, {
143
+ source: 'context7',
144
+ });
143
145
  return [...userResults, ...contextResults].slice(0, topK);
144
146
  }
145
147
  async getStats() {
146
- if (!await this.initializeIfNeeded()) {
148
+ if (!(await this.initializeIfNeeded())) {
147
149
  return { totalDocuments: 0 };
148
150
  }
149
151
  try {
@@ -186,7 +188,7 @@ export class ChromaSearchEngine {
186
188
  if (currentSection.content.trim()) {
187
189
  sections.push(currentSection);
188
190
  }
189
- return sections.filter(s => s.content.trim().length > 50);
191
+ return sections.filter((s) => s.content.trim().length > 50);
190
192
  }
191
193
  }
192
194
  //# sourceMappingURL=chromaSearch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chromaSearch.js","sourceRoot":"","sources":["../../src/core/chromaSearch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAa,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAQxC,MAAM,OAAO,kBAAkB;IACrB,EAAE,GAAe,IAAI,CAAA;IACrB,OAAO,CAAqB;IAC5B,iBAAiB,GAAoC,IAAI,CAAA;IAEjE,YAAY,OAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAA;QACjD,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAA;QAE/E,6DAA6D;QAC7D,+DAA+D;QAC/D,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;QACrE,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC;YACzB,IAAI,EAAE,uBAAuB;SAC9B,CAAC,CAAA;QAEF,4DAA4D;QAC5D,IAAI,CAAC,iBAAiB,GAAG,IAAI,wBAAwB,EAAE,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,aAAqB,EAAE,QAAgB;QACtD,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACrC,OAAM;QACR,CAAC;QAED,yBAAyB;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAA;QAE3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;YACpD,OAAM;QACR,CAAC;QAED,yBAAyB;QACzB,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;YAChE,OAAO,GAAG,IAAI,IAAI,OAAO,EAAE,CAAA;QAC7B,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC9B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACjC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEnC,8BAA8B;QAC9B,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAChD,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;gBAClC,OAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,MAAM,eAAe,CAAC,CAAA;QAEpD,2BAA2B;QAC3B,IAAI,UAAU,CAAA;QACd,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,IAAI,CAAC,EAAG,CAAC,aAAa,CAAC;gBACxC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;gBACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAC,CAAA;YACF,sBAAsB;YACtB,MAAM,UAAU,CAAC,MAAM,EAAE,CAAA;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,MAAM,IAAI,CAAC,EAAG,CAAC,gBAAgB,CAAC;gBAC3C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;gBACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAC,CAAA;QACJ,CAAC;QAED,4BAA4B;QAC5B,MAAM,SAAS,GAAa,EAAE,CAAA;QAC9B,MAAM,SAAS,GAAU,EAAE,CAAA;QAC3B,MAAM,GAAG,GAAa,EAAE,CAAA;QAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAE/B,MAAM,MAAM,GAAwB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAA;gBACpF,SAAS,CAAC,IAAI,CAAC;oBACb,MAAM;oBACN,SAAS,EAAE,IAAI;oBACf,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBACrC,CAAC,CAAA;gBAEF,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,MAAM,SAAS,GAAG,GAAG,CAAA;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAA;YAC/C,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAA;YACvD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAA;YAE3C,MAAM,UAAU,CAAC,GAAG,CAAC;gBACnB,GAAG,EAAE,OAAO;gBACZ,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,aAAa;aACzB,CAAC,CAAA;QACJ,CAAC;QAED,YAAY;QACZ,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QAEpC,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAC,MAAM,kBAAkB,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,OAAe,CAAC,EAChB,KAA2B;QAE3B,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACrC,OAAO,EAAE,CAAA;QACX,CAAC;QAED,IAAI,UAAU,CAAA;QACd,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,IAAI,CAAC,EAAG,CAAC,aAAa,CAAC;gBACxC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;gBACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC;YACrC,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,QAAQ,EAAE,IAAI;YACd,KAAK;SACN,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;YACrD,EAAE;YACF,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,UAAU;YACzD,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;YAC5C,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YACzC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,SAAS;YAC1D,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE;YACzD,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;SAC9C,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,OAAe,CAAC;QACpD,wCAAwC;QACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACtE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CACtC,KAAK,EACL,IAAI,GAAG,WAAW,CAAC,MAAM,EACzB,EAAE,MAAM,EAAE,UAAU,EAAE,CACvB,CAAA;QAED,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACrC,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,CAAA;QAC9B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAG,CAAC,aAAa,CAAC;gBAC9C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;gBACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;YACtC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,CAAA;QAC9B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACzB,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;IAClB,CAAC;IAEO,iBAAiB,CAAC,OAAe;QACvC,MAAM,QAAQ,GAA8C,EAAE,CAAA;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,cAAc,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAEpD,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;oBAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAA;gBACtC,CAAC;gBACD,cAAc,GAAG;oBACf,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;oBACtB,OAAO,EAAE,EAAE;iBACZ,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;YACvC,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"chromaSearch.js","sourceRoot":"","sources":["../../src/core/chromaSearch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * ChromaDB Search Adapter
3
+ * Implements on-demand ChromaDB search with automatic fallback to fuzzy search
4
+ */
5
+ import { ChromaClient } from 'chromadb';
6
+ import type { SearchEngine, SearchResult, SearchOptions } from './searchAdapter.js';
7
+ export interface ChromaSearchOptions {
8
+ /** 技能目录路径 */
9
+ skillDir: string;
10
+ /** ChromaDB 集合名称 */
11
+ collectionName: string;
12
+ /** 启动超时时间(毫秒) */
13
+ startupTimeout?: number;
14
+ /** 是否启用自动回退 */
15
+ enableFallback?: boolean;
16
+ }
17
+ export interface ChromaPreparedResult {
18
+ /** ChromaDB 客户端 */
19
+ client: ChromaClient;
20
+ /** 服务器信息 */
21
+ serverInfo: {
22
+ port: number;
23
+ dataPath: string;
24
+ };
25
+ /** 是否需要自动关闭服务器 */
26
+ shouldAutoShutdown: boolean;
27
+ }
28
+ /**
29
+ * ChromaDB Search Adapter
30
+ * 支持按需启动、自动回退和优雅关闭
31
+ */
32
+ export declare class ChromaSearchAdapter implements SearchEngine {
33
+ private fuzzyAdapter;
34
+ private serverManager;
35
+ private options;
36
+ private isIndexBuilt;
37
+ private embeddingFunction;
38
+ constructor(options: ChromaSearchOptions);
39
+ /**
40
+ * 统一准备ChromaDB环境
41
+ * 封装服务器启动、客户端创建和配置的通用逻辑
42
+ */
43
+ private prepareChromadb;
44
+ /**
45
+ * 安全关闭ChromaDB服务器
46
+ */
47
+ private safeShutdownServer;
48
+ search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
49
+ /**
50
+ * 计算当前文件的hash映射 {filename: hash}
51
+ */
52
+ private calculateFileHashes;
53
+ /**
54
+ * 加载之前的文件hash缓存
55
+ */
56
+ private loadFileHashCache;
57
+ /**
58
+ * 保存文件hash缓存
59
+ */
60
+ private saveFileHashCache;
61
+ /**
62
+ * 分析文件变化
63
+ */
64
+ private analyzeFileChanges;
65
+ /**
66
+ * 获取或创建集合
67
+ */
68
+ private getOrCreateCollection;
69
+ /**
70
+ * 处理文件变化
71
+ */
72
+ private processFileChanges;
73
+ buildIndex(referencesDir: string): Promise<void>;
74
+ clearIndex(): Promise<void>;
75
+ isBuilt(): boolean;
76
+ getStats(): Promise<{
77
+ totalDocuments: number;
78
+ }>;
79
+ /**
80
+ * 获取运行中的服务器状态
81
+ */
82
+ getServerStatus(): {
83
+ isRunning: boolean;
84
+ };
85
+ }
86
+ //# sourceMappingURL=chromaSearchAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromaSearchAdapter.d.ts","sourceRoot":"","sources":["../../src/core/chromaSearchAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAInF,MAAM,WAAW,mBAAmB;IAClC,aAAa;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,oBAAoB;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,YAAY;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,kBAAkB;IAClB,kBAAkB,EAAE,OAAO,CAAA;CAC5B;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,YAAY;IACtD,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,iBAAiB,CAA0B;gBAEvC,OAAO,EAAE,mBAAmB;IAOxC;;;OAGG;YACW,eAAe;IAsD7B;;OAEG;YACW,kBAAkB;IAmB1B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAmHjF;;OAEG;YACW,mBAAmB;IAsBjC;;OAEG;YACW,iBAAiB;IA2B/B;;OAEG;YACW,iBAAiB;IAe/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;YACW,qBAAqB;IAiBnC;;OAEG;YACW,kBAAkB;IAmF1B,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDhD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BjC,OAAO,IAAI,OAAO;IAIZ,QAAQ,IAAI,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IA0BrD;;OAEG;IACH,eAAe,IAAI;QACjB,SAAS,EAAE,OAAO,CAAA;KACnB;CAOF"}