k0ntext 3.3.0 → 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.
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k0ntext",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "Unified AI Context Engineering - Intelligent context for Claude, Copilot, Cline, and more with OpenRouter-powered initialization",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",