k0ntext 3.2.1 → 3.3.1

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 (60) hide show
  1. package/README.md +15 -0
  2. package/dist/cli/index.js +28 -2
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/cli/repl/core/parser.d.ts +84 -0
  5. package/dist/cli/repl/core/parser.d.ts.map +1 -0
  6. package/dist/cli/repl/core/parser.js +309 -0
  7. package/dist/cli/repl/core/parser.js.map +1 -0
  8. package/dist/cli/repl/core/session.d.ts +124 -0
  9. package/dist/cli/repl/core/session.d.ts.map +1 -0
  10. package/dist/cli/repl/core/session.js +196 -0
  11. package/dist/cli/repl/core/session.js.map +1 -0
  12. package/dist/cli/repl/index.d.ts +59 -0
  13. package/dist/cli/repl/index.d.ts.map +1 -0
  14. package/dist/cli/repl/index.js +474 -0
  15. package/dist/cli/repl/index.js.map +1 -0
  16. package/dist/cli/repl/init/wizard.d.ts +61 -0
  17. package/dist/cli/repl/init/wizard.d.ts.map +1 -0
  18. package/dist/cli/repl/init/wizard.js +245 -0
  19. package/dist/cli/repl/init/wizard.js.map +1 -0
  20. package/dist/cli/repl/tui/panels/config.d.ts +71 -0
  21. package/dist/cli/repl/tui/panels/config.d.ts.map +1 -0
  22. package/dist/cli/repl/tui/panels/config.js +392 -0
  23. package/dist/cli/repl/tui/panels/config.js.map +1 -0
  24. package/dist/cli/repl/tui/panels/drift.d.ts +95 -0
  25. package/dist/cli/repl/tui/panels/drift.d.ts.map +1 -0
  26. package/dist/cli/repl/tui/panels/drift.js +353 -0
  27. package/dist/cli/repl/tui/panels/drift.js.map +1 -0
  28. package/dist/cli/repl/tui/panels/indexing.d.ts +86 -0
  29. package/dist/cli/repl/tui/panels/indexing.d.ts.map +1 -0
  30. package/dist/cli/repl/tui/panels/indexing.js +254 -0
  31. package/dist/cli/repl/tui/panels/indexing.js.map +1 -0
  32. package/dist/cli/repl/tui/panels/search.d.ts +66 -0
  33. package/dist/cli/repl/tui/panels/search.d.ts.map +1 -0
  34. package/dist/cli/repl/tui/panels/search.js +215 -0
  35. package/dist/cli/repl/tui/panels/search.js.map +1 -0
  36. package/dist/cli/repl/tui/theme.d.ts +109 -0
  37. package/dist/cli/repl/tui/theme.d.ts.map +1 -0
  38. package/dist/cli/repl/tui/theme.js +225 -0
  39. package/dist/cli/repl/tui/theme.js.map +1 -0
  40. package/dist/cli/repl/update/checker.d.ts +64 -0
  41. package/dist/cli/repl/update/checker.d.ts.map +1 -0
  42. package/dist/cli/repl/update/checker.js +166 -0
  43. package/dist/cli/repl/update/checker.js.map +1 -0
  44. package/dist/db/client.d.ts +1 -0
  45. package/dist/db/client.d.ts.map +1 -1
  46. package/dist/db/client.js +2 -1
  47. package/dist/db/client.js.map +1 -1
  48. package/package.json +4 -1
  49. package/src/cli/index.ts +28 -2
  50. package/src/cli/repl/core/parser.ts +373 -0
  51. package/src/cli/repl/core/session.ts +269 -0
  52. package/src/cli/repl/index.ts +557 -0
  53. package/src/cli/repl/init/wizard.ts +300 -0
  54. package/src/cli/repl/tui/panels/config.ts +457 -0
  55. package/src/cli/repl/tui/panels/drift.ts +458 -0
  56. package/src/cli/repl/tui/panels/indexing.ts +324 -0
  57. package/src/cli/repl/tui/panels/search.ts +272 -0
  58. package/src/cli/repl/tui/theme.ts +276 -0
  59. package/src/cli/repl/update/checker.ts +209 -0
  60. package/src/db/client.ts +9 -7
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Indexing Progress Visualization
3
+ *
4
+ * Real-time progress display for indexing operations
5
+ */
6
+ import { K0NTEXT_THEME } from '../theme.js';
7
+ import ora from 'ora';
8
+ /**
9
+ * Indexing Progress Visualizer
10
+ */
11
+ export class IndexingProgressVisualizer {
12
+ progress;
13
+ stats;
14
+ spinner = null;
15
+ constructor() {
16
+ this.progress = {
17
+ total: 0,
18
+ processed: 0,
19
+ stage: 'discovering',
20
+ startTime: Date.now(),
21
+ errors: []
22
+ };
23
+ this.stats = {
24
+ docsIndexed: 0,
25
+ codeIndexed: 0,
26
+ configsIndexed: 0,
27
+ embeddingsGenerated: 0,
28
+ filesSkipped: 0,
29
+ duration: 0
30
+ };
31
+ }
32
+ /**
33
+ * Start a new indexing operation
34
+ */
35
+ start(totalFiles) {
36
+ this.progress = {
37
+ total: totalFiles,
38
+ processed: 0,
39
+ stage: 'discovering',
40
+ startTime: Date.now(),
41
+ errors: []
42
+ };
43
+ this.stats = {
44
+ docsIndexed: 0,
45
+ codeIndexed: 0,
46
+ configsIndexed: 0,
47
+ embeddingsGenerated: 0,
48
+ filesSkipped: 0,
49
+ duration: 0
50
+ };
51
+ this.spinner = ora('Preparing to index...').start();
52
+ }
53
+ /**
54
+ * Update progress
55
+ */
56
+ update(stage, updates) {
57
+ this.progress.stage = stage;
58
+ if (updates.processed !== undefined) {
59
+ this.progress.processed = updates.processed;
60
+ }
61
+ if (updates.currentFile) {
62
+ this.progress.currentFile = updates.currentFile;
63
+ }
64
+ if (updates.error) {
65
+ this.progress.errors.push(updates.error);
66
+ }
67
+ this.render();
68
+ }
69
+ /**
70
+ * Render current progress
71
+ */
72
+ render() {
73
+ if (!this.spinner)
74
+ return;
75
+ const percentage = Math.min(100, Math.round((this.progress.processed / this.progress.total) * 100));
76
+ const elapsed = Date.now() - this.progress.startTime;
77
+ const eta = this.progress.processed > 0
78
+ ? (elapsed / this.progress.processed) * (this.progress.total - this.progress.processed)
79
+ : 0;
80
+ // Update spinner text
81
+ const stageEmoji = {
82
+ discovering: '🔍',
83
+ indexing_docs: '📄',
84
+ indexing_code: '💻',
85
+ indexing_tools: '⚙️',
86
+ generating_embeddings: '🧠',
87
+ complete: '✓'
88
+ }[this.progress.stage];
89
+ let spinnerText = `${stageEmoji} ${this.getStageName(this.progress.stage)}: ${percentage}%`;
90
+ if (this.progress.currentFile) {
91
+ const fileName = this.progress.currentFile.split('/').pop();
92
+ spinnerText += ` (${K0NTEXT_THEME.dim(fileName.slice(0, 30))}${this.progress.currentFile.length > 30 ? '...' : ''})`;
93
+ }
94
+ if (eta > 1000) {
95
+ const etaText = this.formatDuration(eta);
96
+ spinnerText += ` ${K0NTEXT_THEME.dim(`ETA: ${etaText}`)}`;
97
+ }
98
+ this.spinner.text = spinnerText;
99
+ // Show detailed progress on intervals
100
+ if (this.progress.processed % 50 === 0 || this.progress.stage === 'complete') {
101
+ this.showDetailedProgress();
102
+ }
103
+ }
104
+ /**
105
+ * Get stage name
106
+ */
107
+ getStageName(stage) {
108
+ const names = {
109
+ discovering: 'Discovering files',
110
+ indexing_docs: 'Indexing documents',
111
+ indexing_code: 'Indexing code',
112
+ indexing_tools: 'Indexing configs',
113
+ generating_embeddings: 'Generating embeddings',
114
+ complete: 'Complete'
115
+ };
116
+ return names[stage];
117
+ }
118
+ /**
119
+ * Show detailed progress panel
120
+ */
121
+ showDetailedProgress() {
122
+ const lines = [];
123
+ lines.push('');
124
+ lines.push(K0NTEXT_THEME.header('━━━ Indexing Progress ━━━'));
125
+ // Progress bar
126
+ lines.push(` Progress: ${this.renderProgressBar()}`);
127
+ lines.push(` Stage: ${this.getStageName(this.progress.stage)}`);
128
+ lines.push('');
129
+ // Stats
130
+ lines.push(K0NTEXT_THEME.header('━━━ Statistics ━──'));
131
+ lines.push(` Documents Indexed: ${K0NTEXT_THEME.cyan(this.stats.docsIndexed.toString())}`);
132
+ lines.push(` Code Files Indexed: ${K0NTEXT_THEME.cyan(this.stats.codeIndexed.toString())}`);
133
+ lines.push(` Configs Indexed: ${K0NTEXT_THEME.cyan(this.stats.configsIndexed.toString())}`);
134
+ lines.push(` Embeddings: ${K0NTEXT_THEME.cyan(this.stats.embeddingsGenerated.toString())}`);
135
+ lines.push(` Files Skipped: ${this.stats.filesSkipped > 0 ? K0NTEXT_THEME.warning(this.stats.filesSkipped.toString()) : K0NTEXT_THEME.dim('0')}`);
136
+ lines.push('');
137
+ // Errors
138
+ if (this.progress.errors.length > 0) {
139
+ lines.push(K0NTEXT_THEME.header('━━━ Errors ━──'));
140
+ for (const error of this.progress.errors.slice(-5)) {
141
+ lines.push(` ${K0NTEXT_THEME.error('✖')} ${error}`);
142
+ }
143
+ lines.push('');
144
+ }
145
+ // Clear and render
146
+ console.log(lines.join('\n'));
147
+ }
148
+ /**
149
+ * Render progress bar
150
+ */
151
+ renderProgressBar() {
152
+ const percentage = Math.min(100, Math.round((this.progress.processed / this.progress.total) * 100));
153
+ const width = 30;
154
+ const filled = Math.floor((percentage / 100) * width);
155
+ const bar = K0NTEXT_THEME.primary('█'.repeat(filled)) + K0NTEXT_THEME.dim('░'.repeat(width - filled));
156
+ const pct = K0NTEXT_THEME.primary(`${percentage.toString().padStart(3)}%`);
157
+ const counts = `${this.progress.processed}/${this.progress.total}`;
158
+ return `${bar} ${pct} (${K0NTEXT_THEME.dim(counts)})`;
159
+ }
160
+ /**
161
+ * Format duration
162
+ */
163
+ formatDuration(ms) {
164
+ const seconds = Math.floor(ms / 1000);
165
+ const minutes = Math.floor(seconds / 60);
166
+ const hours = Math.floor(minutes / 60);
167
+ if (hours > 0) {
168
+ return `${hours}h ${minutes % 60}m`;
169
+ }
170
+ else if (minutes > 0) {
171
+ return `${minutes}m ${seconds % 60}s`;
172
+ }
173
+ else {
174
+ return `${seconds}s`;
175
+ }
176
+ }
177
+ /**
178
+ * Complete indexing
179
+ */
180
+ complete(stats) {
181
+ this.progress.stage = 'complete';
182
+ this.progress.processed = this.progress.total;
183
+ this.stats = {
184
+ docsIndexed: stats.docsIndexed || 0,
185
+ codeIndexed: stats.codeIndexed || 0,
186
+ configsIndexed: stats.configsIndexed || 0,
187
+ embeddingsGenerated: stats.embeddingsGenerated || 0,
188
+ filesSkipped: stats.filesSkipped || 0,
189
+ duration: Date.now() - this.progress.startTime
190
+ };
191
+ if (this.spinner) {
192
+ this.spinner.succeed('Indexing complete!');
193
+ }
194
+ this.showFinalStats();
195
+ }
196
+ /**
197
+ * Show final statistics
198
+ */
199
+ showFinalStats() {
200
+ const lines = [];
201
+ lines.push('');
202
+ lines.push(K0NTEXT_THEME.success('━━━ Indexing Complete ━━━'));
203
+ lines.push('');
204
+ lines.push(` ${K0NTEXT_THEME.header('Files Processed:')}`);
205
+ lines.push(` Documents: ${K0NTEXT_THEME.cyan(this.stats.docsIndexed.toString())}`);
206
+ lines.push(` Code Files: ${K0NTEXT_THEME.cyan(this.stats.codeIndexed.toString())}`);
207
+ lines.push(` Configs: ${K0NTEXT_THEME.cyan(this.stats.configsIndexed.toString())}`);
208
+ lines.push(` Total: ${K0NTEXT_THEME.primary((this.stats.docsIndexed + this.stats.codeIndexed + this.stats.configsIndexed).toString())}`);
209
+ lines.push('');
210
+ if (this.stats.embeddingsGenerated > 0) {
211
+ lines.push(` ${K0NTEXT_THEME.header('Embeddings:')}`);
212
+ lines.push(` Generated: ${K0NTEXT_THEME.cyan(this.stats.embeddingsGenerated.toString())}`);
213
+ lines.push('');
214
+ }
215
+ if (this.stats.filesSkipped > 0) {
216
+ lines.push(` ${K0NTEXT_THEME.warning('⚠ Files Skipped:')}`);
217
+ lines.push(` ${this.stats.filesSkipped} files hit limit (use --max-files to increase)`);
218
+ lines.push('');
219
+ }
220
+ lines.push(` ${K0NTEXT_THEME.header('Time:')}`);
221
+ lines.push(` Duration: ${K0NTEXT_THEME.formatTimestamp(new Date(Date.now() - this.stats.duration))}`);
222
+ lines.push('');
223
+ console.log(lines.join('\n'));
224
+ }
225
+ /**
226
+ * Cancel indexing
227
+ */
228
+ cancel() {
229
+ if (this.spinner) {
230
+ this.spinner.warn('Indexing cancelled');
231
+ }
232
+ console.log('');
233
+ console.log(K0NTEXT_THEME.info('Indexing was cancelled.'));
234
+ console.log(K0NTEXT_THEME.dim('Partial results may have been saved.'));
235
+ }
236
+ /**
237
+ * Format a timestamp relative to now
238
+ */
239
+ formatTimestamp(ms) {
240
+ const seconds = Math.floor(ms / 1000);
241
+ const minutes = Math.floor(seconds / 60);
242
+ const hours = Math.floor(minutes / 60);
243
+ if (hours > 0) {
244
+ return `${hours}h ${minutes % 60}m ${seconds % 60}s ago`;
245
+ }
246
+ else if (minutes > 0) {
247
+ return `${minutes}m ${seconds % 60}s ago`;
248
+ }
249
+ else {
250
+ return `${seconds}s ago`;
251
+ }
252
+ }
253
+ }
254
+ //# sourceMappingURL=indexing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing.js","sourceRoot":"","sources":["../../../../../src/cli/repl/tui/panels/indexing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Advanced Search Panel
3
+ *
4
+ * Enhanced search with filtering, sorting, and detailed results
5
+ */
6
+ import type { ContextItem } from '../../../../db/client.js';
7
+ import type { ContextType } from '../../../../db/schema.js';
8
+ /**
9
+ * Search filter options
10
+ */
11
+ export interface SearchFilters {
12
+ type?: ContextType;
13
+ sortBy?: 'relevance' | 'name' | 'date' | 'size';
14
+ sortOrder?: 'asc' | 'desc';
15
+ limit?: number;
16
+ }
17
+ /**
18
+ * Enhanced search result with metadata
19
+ */
20
+ export interface EnhancedSearchResult {
21
+ item: ContextItem;
22
+ score?: number;
23
+ highlights: string[];
24
+ }
25
+ /**
26
+ * Advanced Search Panel
27
+ */
28
+ export declare class AdvancedSearchPanel {
29
+ /**
30
+ * Display advanced search results with formatting
31
+ */
32
+ displayResults(results: EnhancedSearchResult[], query: string, filters: SearchFilters): string;
33
+ /**
34
+ * Get emoji for context type
35
+ */
36
+ private getTypeEmoji;
37
+ /**
38
+ * Get content preview with highlighted query terms
39
+ */
40
+ private getContentPreview;
41
+ /**
42
+ * Escape special regex characters
43
+ */
44
+ private escapeRegex;
45
+ /**
46
+ * Format metadata for display
47
+ */
48
+ private formatMetadata;
49
+ /**
50
+ * Sort results by various criteria
51
+ */
52
+ sortResults(results: EnhancedSearchResult[], sortBy: 'relevance' | 'name' | 'date' | 'size', order: 'asc' | 'desc'): EnhancedSearchResult[];
53
+ /**
54
+ * Filter results by type
55
+ */
56
+ filterByType(results: EnhancedSearchResult[], type: ContextType): EnhancedSearchResult[];
57
+ /**
58
+ * Parse search flags from command arguments
59
+ */
60
+ parseSearchFlags(args: string[]): SearchFilters;
61
+ /**
62
+ * Show search help
63
+ */
64
+ showSearchHelp(): string;
65
+ }
66
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../../src/cli/repl/tui/panels/search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAChD,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM;IAqE9F;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,oBAAoB,EAAE;IA2B3I;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,oBAAoB,EAAE;IAIxF;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa;IA6B/C;;OAEG;IACH,cAAc,IAAI,MAAM;CA4BzB"}
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Advanced Search Panel
3
+ *
4
+ * Enhanced search with filtering, sorting, and detailed results
5
+ */
6
+ import { K0NTEXT_THEME } from '../theme.js';
7
+ /**
8
+ * Advanced Search Panel
9
+ */
10
+ export class AdvancedSearchPanel {
11
+ /**
12
+ * Display advanced search results with formatting
13
+ */
14
+ displayResults(results, query, filters) {
15
+ const lines = [];
16
+ // Header with query and filters
17
+ lines.push('');
18
+ lines.push(K0NTEXT_THEME.header(`━━━ Search Results: "${query}" ━━━`));
19
+ if (filters.type) {
20
+ lines.push(` ${K0NTEXT_THEME.dim('Filter:')} ${K0NTEXT_THEME.cyan(filters.type)}`);
21
+ }
22
+ if (filters.sortBy) {
23
+ lines.push(` ${K0NTEXT_THEME.dim('Sorted by:')} ${K0NTEXT_THEME.cyan(filters.sortBy)} ${K0NTEXT_THEME.dim('(')}${filters.sortOrder}${K0NTEXT_THEME.dim(')')}`);
24
+ }
25
+ lines.push(` ${K0NTEXT_THEME.dim('Found:')} ${K0NTEXT_THEME.highlight(results.length.toString())} results`);
26
+ lines.push('');
27
+ // Type legend
28
+ lines.push(K0NTEXT_THEME.dim('Types: 📄=doc 💻=code ⚙️=config 📋=workflow 🤖=agent 🔧=command'));
29
+ lines.push('');
30
+ // Display results
31
+ for (let i = 0; i < Math.min(results.length, filters.limit || 20); i++) {
32
+ const { item, score, highlights } = results[i];
33
+ // Type emoji
34
+ const typeEmoji = this.getTypeEmoji(item.type);
35
+ const relevance = score !== undefined ? ` ${K0NTEXT_THEME.dim(`(${Math.round(score * 100)}%)`)}` : '';
36
+ lines.push(`${K0NTEXT_THEME.primary(`${i + 1}.`)} ${typeEmoji} ${K0NTEXT_THEME.highlight(item.name)}${relevance}`);
37
+ if (item.filePath) {
38
+ lines.push(` ${K0NTEXT_THEME.dim(item.filePath)}`);
39
+ }
40
+ // Show content preview
41
+ if (item.content) {
42
+ const preview = this.getContentPreview(item.content, query);
43
+ if (preview) {
44
+ lines.push(` ${K0NTEXT_THEME.dim(preview)}`);
45
+ }
46
+ }
47
+ // Show metadata
48
+ if (item.metadata) {
49
+ const meta = this.formatMetadata(item.metadata);
50
+ if (meta) {
51
+ lines.push(` ${K0NTEXT_THEME.dim(meta)}`);
52
+ }
53
+ }
54
+ lines.push('');
55
+ }
56
+ if (results.length > (filters.limit || 20)) {
57
+ const remaining = results.length - (filters.limit || 20);
58
+ lines.push(K0NTEXT_THEME.dim(` ... and ${remaining} more results`));
59
+ lines.push('');
60
+ }
61
+ // Search tips
62
+ lines.push(K0NTEXT_THEME.header('━━━ Search Tips ━━━'));
63
+ lines.push(` ${K0NTEXT_THEME.cyan('•')} Use ${K0NTEXT_THEME.highlight('search <query> --type <type>')} to filter`);
64
+ lines.push(` ${K0NTEXT_THEME.cyan('•')} Use ${K0NTEXT_THEME.highlight('search <query> --sort <field>')} to sort`);
65
+ lines.push(` ${K0NTEXT_THEME.cyan('•')} Use ${K0NTEXT_THEME.highlight('search <query> --limit <n>')} for more results`);
66
+ lines.push('');
67
+ return lines.join('\n');
68
+ }
69
+ /**
70
+ * Get emoji for context type
71
+ */
72
+ getTypeEmoji(type) {
73
+ const emojis = {
74
+ doc: '📄',
75
+ code: '💻',
76
+ tool_config: '⚙️',
77
+ workflow: '📋',
78
+ agent: '🤖',
79
+ command: '🔧',
80
+ commit: '📝',
81
+ knowledge: '🧠',
82
+ config: '⚙️'
83
+ };
84
+ return emojis[type] || '📄';
85
+ }
86
+ /**
87
+ * Get content preview with highlighted query terms
88
+ */
89
+ getContentPreview(content, query) {
90
+ const maxLength = 100;
91
+ const preview = content.slice(0, maxLength);
92
+ // Highlight query terms
93
+ const terms = query.toLowerCase().split(/\s+/).filter(t => t.length > 2);
94
+ let highlighted = preview;
95
+ for (const term of terms) {
96
+ const regex = new RegExp(`(${this.escapeRegex(term)})`, 'gi');
97
+ highlighted = highlighted.replace(regex, K0NTEXT_THEME.highlight('$1'));
98
+ }
99
+ return highlighted + (content.length > maxLength ? '...' : '');
100
+ }
101
+ /**
102
+ * Escape special regex characters
103
+ */
104
+ escapeRegex(string) {
105
+ return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
106
+ }
107
+ /**
108
+ * Format metadata for display
109
+ */
110
+ formatMetadata(metadata) {
111
+ const parts = [];
112
+ if (metadata.size !== undefined) {
113
+ parts.push(K0NTEXT_THEME.formatFileSize(Number(metadata.size)));
114
+ }
115
+ if (metadata.module) {
116
+ parts.push(`module:${metadata.module}`);
117
+ }
118
+ if (metadata.tool) {
119
+ parts.push(`tool:${metadata.tool}`);
120
+ }
121
+ return parts.length > 0 ? parts.join(' • ') : null;
122
+ }
123
+ /**
124
+ * Sort results by various criteria
125
+ */
126
+ sortResults(results, sortBy, order) {
127
+ return results.sort((a, b) => {
128
+ let comparison = 0;
129
+ switch (sortBy) {
130
+ case 'relevance':
131
+ comparison = (b.score || 0) - (a.score || 0);
132
+ break;
133
+ case 'name':
134
+ comparison = a.item.name.localeCompare(b.item.name);
135
+ break;
136
+ case 'date':
137
+ const aDate = a.item.updatedAt ? new Date(a.item.updatedAt).getTime() : 0;
138
+ const bDate = b.item.updatedAt ? new Date(b.item.updatedAt).getTime() : 0;
139
+ comparison = bDate - aDate;
140
+ break;
141
+ case 'size':
142
+ const aSize = a.item.metadata?.size || 0;
143
+ const bSize = b.item.metadata?.size || 0;
144
+ comparison = Number(bSize) - Number(aSize);
145
+ break;
146
+ }
147
+ return order === 'desc' ? -comparison : comparison;
148
+ });
149
+ }
150
+ /**
151
+ * Filter results by type
152
+ */
153
+ filterByType(results, type) {
154
+ return results.filter(r => r.item.type === type);
155
+ }
156
+ /**
157
+ * Parse search flags from command arguments
158
+ */
159
+ parseSearchFlags(args) {
160
+ const filters = {};
161
+ for (let i = 0; i < args.length; i++) {
162
+ const arg = args[i];
163
+ switch (arg) {
164
+ case '--type':
165
+ case '-t':
166
+ filters.type = (args[++i] || 'all');
167
+ break;
168
+ case '--sort':
169
+ case '-s':
170
+ filters.sortBy = (args[++i] || 'relevance');
171
+ break;
172
+ case '--order':
173
+ case '-o':
174
+ filters.sortOrder = (args[++i] || 'desc');
175
+ break;
176
+ case '--limit':
177
+ case '-l':
178
+ filters.limit = Number(args[++i]) || 20;
179
+ break;
180
+ }
181
+ }
182
+ return filters;
183
+ }
184
+ /**
185
+ * Show search help
186
+ */
187
+ showSearchHelp() {
188
+ const lines = [
189
+ '',
190
+ K0NTEXT_THEME.header('━━━ Advanced Search Help ━━━'),
191
+ '',
192
+ ' Usage:',
193
+ ' search <query> [options]',
194
+ '',
195
+ ' Options:',
196
+ ' --type, -t <type> Filter by type (doc, code, tool_config, workflow, agent, command)',
197
+ ' --sort, -s <field> Sort by (relevance, name, date, size)',
198
+ ' --order, -o <dir> Sort order (asc, desc)',
199
+ ' --limit, -l <n> Max results (default: 20)',
200
+ '',
201
+ ' Examples:',
202
+ ' search auth --type code',
203
+ ' search "user login" --sort date --order desc',
204
+ ' search config --limit 50',
205
+ '',
206
+ ' Shortcuts:',
207
+ ' s <query> Alias for search',
208
+ ' f <query> Search and filter',
209
+ ' ? Show this help',
210
+ ''
211
+ ];
212
+ return lines.join('\n');
213
+ }
214
+ }
215
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../../src/cli/repl/tui/panels/search.ts"],"names":[],"mappings":"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"}