k0ntext 3.2.0 → 3.3.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 (44) hide show
  1. package/dist/cli/commands/batch-index.d.ts +9 -5
  2. package/dist/cli/commands/batch-index.d.ts.map +1 -1
  3. package/dist/cli/commands/batch-index.js +2 -2
  4. package/dist/cli/commands/batch-index.js.map +1 -1
  5. package/dist/cli/index.js +28 -2
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/repl/core/parser.d.ts +84 -0
  8. package/dist/cli/repl/core/parser.d.ts.map +1 -0
  9. package/dist/cli/repl/core/parser.js +309 -0
  10. package/dist/cli/repl/core/parser.js.map +1 -0
  11. package/dist/cli/repl/core/session.d.ts +124 -0
  12. package/dist/cli/repl/core/session.d.ts.map +1 -0
  13. package/dist/cli/repl/core/session.js +196 -0
  14. package/dist/cli/repl/core/session.js.map +1 -0
  15. package/dist/cli/repl/index.d.ts +56 -0
  16. package/dist/cli/repl/index.d.ts.map +1 -0
  17. package/dist/cli/repl/index.js +468 -0
  18. package/dist/cli/repl/index.js.map +1 -0
  19. package/dist/cli/repl/init/wizard.d.ts +61 -0
  20. package/dist/cli/repl/init/wizard.d.ts.map +1 -0
  21. package/dist/cli/repl/init/wizard.js +245 -0
  22. package/dist/cli/repl/init/wizard.js.map +1 -0
  23. package/dist/cli/repl/tui/theme.d.ts +109 -0
  24. package/dist/cli/repl/tui/theme.d.ts.map +1 -0
  25. package/dist/cli/repl/tui/theme.js +225 -0
  26. package/dist/cli/repl/tui/theme.js.map +1 -0
  27. package/dist/cli/repl/update/checker.d.ts +64 -0
  28. package/dist/cli/repl/update/checker.d.ts.map +1 -0
  29. package/dist/cli/repl/update/checker.js +166 -0
  30. package/dist/cli/repl/update/checker.js.map +1 -0
  31. package/dist/db/client.d.ts +1 -0
  32. package/dist/db/client.d.ts.map +1 -1
  33. package/dist/db/client.js +2 -1
  34. package/dist/db/client.js.map +1 -1
  35. package/package.json +4 -1
  36. package/src/cli/commands/batch-index.ts +13 -8
  37. package/src/cli/index.ts +28 -2
  38. package/src/cli/repl/core/parser.ts +373 -0
  39. package/src/cli/repl/core/session.ts +269 -0
  40. package/src/cli/repl/index.ts +554 -0
  41. package/src/cli/repl/init/wizard.ts +300 -0
  42. package/src/cli/repl/tui/theme.ts +276 -0
  43. package/src/cli/repl/update/checker.ts +209 -0
  44. package/src/db/client.ts +9 -7
@@ -0,0 +1,245 @@
1
+ /**
2
+ * Init Wizard
3
+ *
4
+ * Interactive wizard for initializing k0ntext configuration
5
+ */
6
+ import { input, confirm, select, checkbox } from '@inquirer/prompts';
7
+ import { K0NTEXT_THEME } from '../tui/theme.js';
8
+ /**
9
+ * Project type options
10
+ */
11
+ const PROJECT_TYPES = [
12
+ { value: 'monorepo', name: 'Monorepo', description: 'Multiple packages/services in one repository' },
13
+ { value: 'webapp', name: 'Web Application', description: 'Frontend web application (React, Vue, etc.)' },
14
+ { value: 'api', name: 'API/Backend', description: 'Backend API service' },
15
+ { value: 'library', name: 'Library/Package', description: 'Reusable library or npm package' },
16
+ { value: 'cli', name: 'CLI Tool', description: 'Command-line interface tool' },
17
+ { value: 'unknown', name: 'Other', description: 'Other type of project' }
18
+ ];
19
+ /**
20
+ * AI tool options
21
+ */
22
+ const AI_TOOLS = [
23
+ { name: 'Claude Code', value: 'claude', description: 'Anthropic Claude with advanced reasoning' },
24
+ { name: 'GitHub Copilot', value: 'copilot', description: 'GitHub AI-powered code completion' },
25
+ { name: 'Cline', value: 'cline', description: 'Autonomous coding agent' },
26
+ { name: 'Cursor', value: 'cursor', description: 'AI code editor with integrated AI' },
27
+ { name: 'Windsurf', value: 'windsurf', description: 'AI-powered IDE with code understanding' },
28
+ { name: 'Aider', value: 'aider', description: 'AI pair programming in terminal' },
29
+ { name: 'Continue', value: 'continue', description: 'Open source AI autopilot' }
30
+ ];
31
+ /**
32
+ * Feature options
33
+ */
34
+ const FEATURES = [
35
+ { name: 'šŸ“Š Statistics & Analytics', value: 'stats', description: 'Track code metrics and context usage' },
36
+ { name: 'šŸ” Semantic Search', value: 'search', description: 'AI-powered code search with embeddings' },
37
+ { name: 'šŸ“ Auto Documentation', value: 'docs', description: 'Generate documentation from code' },
38
+ { name: 'šŸ”„ Drift Detection', value: 'drift', description: 'Detect when docs are out of sync with code' },
39
+ { name: 'šŸŽÆ Workflow Tracking', value: 'workflows', description: 'Track RPI workflows and tasks' },
40
+ { name: 'šŸ¤– MCP Integration', value: 'mcp', description: 'Model Context Protocol server' }
41
+ ];
42
+ /**
43
+ * Init Wizard
44
+ */
45
+ export class InitWizard {
46
+ projectRoot;
47
+ hasExistingKey;
48
+ constructor(projectRoot) {
49
+ this.projectRoot = projectRoot;
50
+ this.hasExistingKey = !!process.env.OPENROUTER_API_KEY;
51
+ }
52
+ /**
53
+ * Run the complete wizard
54
+ */
55
+ async run() {
56
+ this.showWelcome();
57
+ // Step 1: API Key
58
+ const apiKey = await this.stepApiKey();
59
+ if (!apiKey) {
60
+ console.log(K0NTEXT_THEME.warning('\n⚠ Initialization cancelled.'));
61
+ return null;
62
+ }
63
+ // Step 2: Project Type
64
+ const projectType = await this.stepProjectType();
65
+ // Step 3: AI Tools
66
+ const aiTools = await this.stepAITools();
67
+ // Step 4: Features
68
+ const features = await this.stepFeatures();
69
+ // Step 5: Embeddings
70
+ const generateEmbeddings = await this.stepEmbeddings();
71
+ // Show summary
72
+ const config = {
73
+ apiKey,
74
+ projectType,
75
+ aiTools,
76
+ features,
77
+ generateEmbeddings
78
+ };
79
+ const confirmed = await this.showSummary(config);
80
+ if (!confirmed) {
81
+ console.log(K0NTEXT_THEME.warning('\n⚠ Initialization cancelled.'));
82
+ return null;
83
+ }
84
+ return config;
85
+ }
86
+ /**
87
+ * Show welcome message
88
+ */
89
+ showWelcome() {
90
+ console.log('');
91
+ console.log(K0NTEXT_THEME.box('K0NTEXT INITIALIZATION', `
92
+ Welcome to K0ntext! This wizard will help you set up
93
+ AI context engineering for your project.
94
+
95
+ You'll be asked a few questions to configure K0ntext
96
+ for your specific needs.
97
+ `.trim(), 'primary'));
98
+ console.log('');
99
+ }
100
+ /**
101
+ * Step 1: API Key
102
+ */
103
+ async stepApiKey() {
104
+ console.log('');
105
+ console.log(K0NTEXT_THEME.header('\n━━━ Step 1/5: OpenRouter API Key ━━━'));
106
+ if (this.hasExistingKey) {
107
+ console.log(K0NTEXT_THEME.success('\nāœ“ API key detected in OPENROUTER_API_KEY environment variable'));
108
+ const useExisting = await confirm({
109
+ message: 'Use existing API key?',
110
+ default: true
111
+ });
112
+ if (useExisting) {
113
+ return process.env.OPENROUTER_API_KEY;
114
+ }
115
+ }
116
+ console.log('');
117
+ console.log(K0NTEXT_THEME.info('OpenRouter API key enables intelligent analysis and embeddings.'));
118
+ console.log(K0NTEXT_THEME.dim('Get your key at: https://openrouter.ai/keys'));
119
+ const apiKey = await input({
120
+ message: 'Enter your OpenRouter API key (or press Enter to skip):',
121
+ validate: (value) => {
122
+ if (!value)
123
+ return true; // Allow skipping
124
+ if (value.startsWith('sk-or-v1-'))
125
+ return true;
126
+ return 'Invalid API key format. Should start with "sk-or-v1-"';
127
+ }
128
+ });
129
+ if (!apiKey) {
130
+ const skipAnyway = await confirm({
131
+ message: 'Skip API key? You can add it later with "k0ntext config set apiKey"',
132
+ default: false
133
+ });
134
+ if (!skipAnyway) {
135
+ return null; // User wants to cancel
136
+ }
137
+ }
138
+ return apiKey || '';
139
+ }
140
+ /**
141
+ * Step 2: Project Type
142
+ */
143
+ async stepProjectType() {
144
+ console.log('');
145
+ console.log(K0NTEXT_THEME.header('\n━━━ Step 2/5: Project Type ━━━'));
146
+ console.log('');
147
+ const projectType = await select({
148
+ message: 'What type of project is this?',
149
+ choices: PROJECT_TYPES.map((t) => ({
150
+ name: `${t.name} - ${K0NTEXT_THEME.dim(t.description)}`,
151
+ value: t.value,
152
+ description: t.description
153
+ }))
154
+ });
155
+ return projectType;
156
+ }
157
+ /**
158
+ * Step 3: AI Tools
159
+ */
160
+ async stepAITools() {
161
+ console.log('');
162
+ console.log(K0NTEXT_THEME.header('\n━━━ Step 3/5: AI Tools ━━━'));
163
+ console.log('');
164
+ console.log(K0NTEXT_THEME.info('Select the AI coding assistants you want to configure:'));
165
+ const tools = await checkbox({
166
+ message: 'Select AI tools (use space to select, enter to continue):',
167
+ choices: AI_TOOLS.map((t) => ({
168
+ name: `${t.name} - ${K0NTEXT_THEME.dim(t.description)}`,
169
+ value: t.value,
170
+ checked: t.value === 'claude' // Default to Claude
171
+ }))
172
+ });
173
+ return tools.length > 0 ? tools : ['claude']; // Default to claude if none selected
174
+ }
175
+ /**
176
+ * Step 4: Features
177
+ */
178
+ async stepFeatures() {
179
+ console.log('');
180
+ console.log(K0NTEXT_THEME.header('\n━━━ Step 4/5: Features ━━━'));
181
+ console.log('');
182
+ console.log(K0NTEXT_THEME.info('Select the features you want to enable:'));
183
+ const features = await checkbox({
184
+ message: 'Select features (use space to select, enter to continue):',
185
+ choices: FEATURES.map((f) => ({
186
+ name: `${f.name} - ${K0NTEXT_THEME.dim(f.description)}`,
187
+ value: f.value,
188
+ checked: ['stats', 'search', 'mcp'].includes(f.value) // Default to core features
189
+ }))
190
+ });
191
+ return features.length > 0 ? features : ['stats', 'mcp'];
192
+ }
193
+ /**
194
+ * Step 5: Embeddings
195
+ */
196
+ async stepEmbeddings() {
197
+ console.log('');
198
+ console.log(K0NTEXT_THEME.header('\n━━━ Step 5/5: Embeddings ━━━'));
199
+ console.log('');
200
+ console.log(K0NTEXT_THEME.info('Generate semantic embeddings for AI-powered search?'));
201
+ console.log(K0NTEXT_THEME.dim('This will take a few minutes but greatly improves search quality.'));
202
+ const generate = await confirm({
203
+ message: 'Generate embeddings now?',
204
+ default: false
205
+ });
206
+ return generate;
207
+ }
208
+ /**
209
+ * Show summary and confirm
210
+ */
211
+ async showSummary(config) {
212
+ console.log('');
213
+ console.log(K0NTEXT_THEME.header('\n━━━ Configuration Summary ━━━'));
214
+ console.log('');
215
+ const typeInfo = PROJECT_TYPES.find(t => t.value === config.projectType);
216
+ console.log(` ${K0NTEXT_THEME.primary('Project Type:')} ${typeInfo?.name || config.projectType}`);
217
+ console.log(` ${K0NTEXT_THEME.primary('API Key:')} ${config.apiKey ? 'āœ“ Configured' : 'ā—‹ Skipped'}`);
218
+ console.log(` ${K0NTEXT_THEME.primary('AI Tools:')} ${config.aiTools.map(t => K0NTEXT_THEME.highlight(t)).join(', ')}`);
219
+ console.log(` ${K0NTEXT_THEME.primary('Features:')} ${config.features.map(f => {
220
+ const feat = FEATURES.find(ff => ff.value === f);
221
+ return feat?.name.split(' ')[0] || f;
222
+ }).join(', ')}`);
223
+ console.log(` ${K0NTEXT_THEME.primary('Embeddings:')} ${config.generateEmbeddings ? 'āœ“ Yes' : 'ā—‹ Later'}`);
224
+ console.log('');
225
+ return await confirm({
226
+ message: 'Initialize K0ntext with these settings?',
227
+ default: true
228
+ });
229
+ }
230
+ /**
231
+ * Show success message
232
+ */
233
+ showSuccess(config) {
234
+ console.log('');
235
+ console.log(K0NTEXT_THEME.success('\nāœ“ K0ntext initialized successfully!'));
236
+ console.log('');
237
+ console.log(K0NTEXT_THEME.header('Next Steps:'));
238
+ console.log(` ${K0NTEXT_THEME.cyan('•')} Type ${K0NTEXT_THEME.highlight('stats')} to view database statistics`);
239
+ console.log(` ${K0NTEXT_THEME.cyan('•')} Type ${K0NTEXT_THEME.highlight('index')} to index your codebase`);
240
+ console.log(` ${K0NTEXT_THEME.cyan('•')} Type ${K0NTEXT_THEME.highlight('search <query>')} to search your code`);
241
+ console.log(` ${K0NTEXT_THEME.cyan('•')} Type ${K0NTEXT_THEME.highlight('help')} for all available commands`);
242
+ console.log('');
243
+ }
244
+ }
245
+ //# sourceMappingURL=wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../../src/cli/repl/init/wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * K0ntext Theme System
3
+ *
4
+ * Orange gradient with purple/pink/cyan accents for modern CLI experience
5
+ */
6
+ /**
7
+ * Terminal capabilities
8
+ */
9
+ interface TerminalCapabilities {
10
+ isTTY: boolean;
11
+ supportsColor: boolean;
12
+ supports256: boolean;
13
+ supportsUnicode: boolean;
14
+ }
15
+ /**
16
+ * K0ntext color theme
17
+ */
18
+ export declare const K0NTEXT_THEME: {
19
+ readonly primary: import("chalk").ChalkInstance;
20
+ readonly primaryLight: import("chalk").ChalkInstance;
21
+ readonly primaryDark: import("chalk").ChalkInstance;
22
+ readonly header: import("chalk").ChalkInstance;
23
+ readonly headerLight: import("chalk").ChalkInstance;
24
+ readonly highlight: import("chalk").ChalkInstance;
25
+ readonly highlightLight: import("chalk").ChalkInstance;
26
+ readonly status: import("chalk").ChalkInstance;
27
+ readonly statusLight: import("chalk").ChalkInstance;
28
+ readonly cyan: import("chalk").ChalkInstance;
29
+ readonly success: import("chalk").ChalkInstance;
30
+ readonly warning: import("chalk").ChalkInstance;
31
+ readonly error: import("chalk").ChalkInstance;
32
+ readonly info: import("chalk").ChalkInstance;
33
+ readonly muted: import("chalk").ChalkInstance;
34
+ readonly dim: import("chalk").ChalkInstance;
35
+ readonly bgPrimary: import("chalk").ChalkInstance;
36
+ readonly bgHeader: import("chalk").ChalkInstance;
37
+ readonly bgHighlight: import("chalk").ChalkInstance;
38
+ readonly bgStatus: import("chalk").ChalkInstance;
39
+ /**
40
+ * Detect terminal capabilities
41
+ */
42
+ readonly detectCapabilities: () => TerminalCapabilities;
43
+ /**
44
+ * Get gradient string for logo/banner
45
+ */
46
+ readonly gradientText: (text: string) => string;
47
+ /**
48
+ * Get border characters based on terminal capabilities
49
+ */
50
+ readonly getBorders: () => {
51
+ topLeft: string;
52
+ topRight: string;
53
+ bottomLeft: string;
54
+ bottomRight: string;
55
+ horizontal: string;
56
+ vertical: string;
57
+ leftT: string;
58
+ rightT: string;
59
+ topT: string;
60
+ bottomT: string;
61
+ cross: string;
62
+ };
63
+ /**
64
+ * Create a styled box with text
65
+ */
66
+ readonly box: (title: string, content: string, borderColor?: string) => string;
67
+ /**
68
+ * Create progress bar
69
+ */
70
+ readonly progressBar: (current: number, total: number, width?: number) => string;
71
+ /**
72
+ * Format file size with color
73
+ */
74
+ readonly formatFileSize: (bytes: number) => string;
75
+ /**
76
+ * Format timestamp with color
77
+ */
78
+ readonly formatTimestamp: (date: Date) => string;
79
+ };
80
+ /**
81
+ * Terminal utility functions
82
+ */
83
+ export declare const terminal: {
84
+ /**
85
+ * Clear screen
86
+ */
87
+ clear(): void;
88
+ /**
89
+ * Move cursor to position
90
+ */
91
+ moveTo(x: number, y: number): void;
92
+ /**
93
+ * Hide cursor
94
+ */
95
+ hideCursor(): void;
96
+ /**
97
+ * Show cursor
98
+ */
99
+ showCursor(): void;
100
+ /**
101
+ * Get terminal dimensions
102
+ */
103
+ getSize(): {
104
+ width: number;
105
+ height: number;
106
+ };
107
+ };
108
+ export {};
109
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../src/cli/repl/tui/theme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,UAAU,oBAAoB;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAOD;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;IAmCxB;;OAEG;uCACmB,oBAAoB;IAU1C;;OAEG;kCACgB,MAAM,KAAG,MAAM;IAqBlC;;OAEG;;;;;;;;;;;;;;IAoCH;;OAEG;0BACQ,MAAM,WAAW,MAAM,2BAA4B,MAAM;IA0CpE;;OAEG;oCACkB,MAAM,SAAS,MAAM,qBAAe,MAAM;IAY/D;;OAEG;qCACmB,MAAM,KAAG,MAAM;IAgBrC;;OAEG;qCACmB,IAAI,KAAG,MAAM;CAc3B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB;;OAEG;aACM,IAAI;IAIb;;OAEG;cACO,MAAM,KAAK,MAAM,GAAG,IAAI;IAIlC;;OAEG;kBACW,IAAI;IAIlB;;OAEG;kBACW,IAAI;IAIlB;;OAEG;eACQ;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAM7C,CAAC"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * K0ntext Theme System
3
+ *
4
+ * Orange gradient with purple/pink/cyan accents for modern CLI experience
5
+ */
6
+ import chalk from 'chalk';
7
+ /**
8
+ * K0ntext color theme
9
+ */
10
+ export const K0NTEXT_THEME = {
11
+ // Orange gradient for primary elements
12
+ primary: chalk.hex('#F97316'), // Orange-500
13
+ primaryLight: chalk.hex('#FB923C'), // Orange-400
14
+ primaryDark: chalk.hex('#EA580C'), // Orange-600
15
+ // Purple accents for headers
16
+ header: chalk.hex('#8B5CF6'), // Purple-500
17
+ headerLight: chalk.hex('#A78BFA'), // Purple-400
18
+ // Pink for highlights
19
+ highlight: chalk.hex('#EC4899'), // Pink-500
20
+ highlightLight: chalk.hex('#F472B6'), // Pink-400
21
+ // Cyan for status
22
+ status: chalk.hex('#06B6D4'), // Cyan-500
23
+ statusLight: chalk.hex('#22D3EE'), // Cyan-400
24
+ cyan: chalk.hex('#06B6D4'), // Alias for cyan
25
+ // Semantic colors
26
+ success: chalk.green,
27
+ warning: chalk.yellow,
28
+ error: chalk.red,
29
+ info: chalk.blue,
30
+ // Neutrals
31
+ muted: chalk.gray,
32
+ dim: chalk.dim,
33
+ // Background colors
34
+ bgPrimary: chalk.bgHex('#F97316'),
35
+ bgHeader: chalk.bgHex('#8B5CF6'),
36
+ bgHighlight: chalk.bgHex('#EC4899'),
37
+ bgStatus: chalk.bgHex('#06B6D4'),
38
+ /**
39
+ * Detect terminal capabilities
40
+ */
41
+ detectCapabilities() {
42
+ const isTTY = process.stdout.isTTY;
43
+ const supportsColor = chalk.level > 0 && !process.env.NO_COLOR;
44
+ const supports256 = chalk.level >= 2;
45
+ const supportsUnicode = process.platform !== 'win32' ||
46
+ (process.env.TERM?.includes('xterm') || process.env.WT_SESSION);
47
+ return { isTTY: !!isTTY, supportsColor: !!supportsColor, supports256: !!supports256, supportsUnicode: !!supportsUnicode };
48
+ },
49
+ /**
50
+ * Get gradient string for logo/banner
51
+ */
52
+ gradientText(text) {
53
+ const { supports256 } = this.detectCapabilities();
54
+ if (!supports256 || process.env.NO_COLOR) {
55
+ return this.primary(text);
56
+ }
57
+ // Create gradient effect using ANSI colors
58
+ const colors = ['#F97316', '#FBBF24', '#F472B6', '#8B5CF6', '#06B6D4'];
59
+ let result = '';
60
+ const chunkSize = Math.ceil(text.length / colors.length);
61
+ for (let i = 0; i < text.length; i++) {
62
+ const colorIndex = Math.floor(i / chunkSize) % colors.length;
63
+ const color = colors[colorIndex];
64
+ result += chalk.hex(color)(text[i]);
65
+ }
66
+ return result;
67
+ },
68
+ /**
69
+ * Get border characters based on terminal capabilities
70
+ */
71
+ getBorders() {
72
+ const { supportsUnicode } = this.detectCapabilities();
73
+ if (supportsUnicode) {
74
+ return {
75
+ topLeft: 'ā•”',
76
+ topRight: 'ā•—',
77
+ bottomLeft: 'ā•š',
78
+ bottomRight: 'ā•',
79
+ horizontal: '═',
80
+ vertical: 'ā•‘',
81
+ leftT: 'ā• ',
82
+ rightT: 'ā•£',
83
+ topT: '╦',
84
+ bottomT: 'ā•©',
85
+ cross: '╬'
86
+ };
87
+ }
88
+ // ASCII fallback
89
+ return {
90
+ topLeft: '+',
91
+ topRight: '+',
92
+ bottomLeft: '+',
93
+ bottomRight: '+',
94
+ horizontal: '-',
95
+ vertical: '|',
96
+ leftT: '+',
97
+ rightT: '+',
98
+ topT: '+',
99
+ bottomT: '+',
100
+ cross: '+'
101
+ };
102
+ },
103
+ /**
104
+ * Create a styled box with text
105
+ */
106
+ box(title, content, borderColor = 'primary') {
107
+ const borders = this.getBorders();
108
+ // Get color function based on borderColor
109
+ let colorFn;
110
+ switch (borderColor) {
111
+ case 'primary':
112
+ colorFn = this.primary;
113
+ break;
114
+ case 'header':
115
+ colorFn = this.header;
116
+ break;
117
+ case 'highlight':
118
+ colorFn = this.highlight;
119
+ break;
120
+ case 'status':
121
+ colorFn = this.status;
122
+ break;
123
+ case 'success':
124
+ colorFn = this.success;
125
+ break;
126
+ default:
127
+ colorFn = this.primary;
128
+ }
129
+ const lines = content.split('\n');
130
+ const maxLength = Math.max(title.length, ...lines.map(l => l.length));
131
+ let result = '';
132
+ result += colorFn(borders.topLeft + borders.horizontal.repeat(maxLength + 2) + borders.topRight) + '\n';
133
+ result += colorFn(borders.vertical) + ' ' + this.primary(title.padEnd(maxLength)) + ' ' + colorFn(borders.vertical) + '\n';
134
+ result += colorFn(borders.leftT + borders.horizontal.repeat(maxLength + 2) + borders.rightT) + '\n';
135
+ for (const line of lines) {
136
+ result += colorFn(borders.vertical) + ' ' + line.padEnd(maxLength) + ' ' + colorFn(borders.vertical) + '\n';
137
+ }
138
+ result += colorFn(borders.bottomLeft + borders.horizontal.repeat(maxLength + 2) + borders.bottomRight);
139
+ return result;
140
+ },
141
+ /**
142
+ * Create progress bar
143
+ */
144
+ progressBar(current, total, width = 20) {
145
+ const percentage = Math.min(100, Math.max(0, (current / total) * 100));
146
+ const filled = Math.floor((percentage / 100) * width);
147
+ const empty = width - filled;
148
+ const filledBar = this.primary('ā–ˆ'.repeat(filled));
149
+ const emptyBar = this.dim('ā–‘'.repeat(empty));
150
+ const percentageText = ` ${Math.round(percentage)}%`;
151
+ return `${filledBar}${emptyBar}${percentageText}`;
152
+ },
153
+ /**
154
+ * Format file size with color
155
+ */
156
+ formatFileSize(bytes) {
157
+ const units = ['B', 'KB', 'MB', 'GB'];
158
+ let size = bytes;
159
+ let unitIndex = 0;
160
+ while (size >= 1024 && unitIndex < units.length - 1) {
161
+ size /= 1024;
162
+ unitIndex++;
163
+ }
164
+ const rounded = Math.round(size * 10) / 10;
165
+ const colorFn = unitIndex < 2 ? this.success : this.warning;
166
+ return colorFn(`${rounded}${units[unitIndex]}`);
167
+ },
168
+ /**
169
+ * Format timestamp with color
170
+ */
171
+ formatTimestamp(date) {
172
+ const now = new Date();
173
+ const diff = now.getTime() - date.getTime();
174
+ const seconds = Math.floor(diff / 1000);
175
+ const minutes = Math.floor(seconds / 60);
176
+ const hours = Math.floor(minutes / 60);
177
+ const days = Math.floor(hours / 24);
178
+ if (seconds < 60)
179
+ return this.success(`${seconds}s ago`);
180
+ if (minutes < 60)
181
+ return this.status(`${minutes}m ago`);
182
+ if (hours < 24)
183
+ return this.header(`${hours}h ago`);
184
+ return this.headerLight(`${days}d ago`);
185
+ }
186
+ };
187
+ /**
188
+ * Terminal utility functions
189
+ */
190
+ export const terminal = {
191
+ /**
192
+ * Clear screen
193
+ */
194
+ clear() {
195
+ console.clear();
196
+ },
197
+ /**
198
+ * Move cursor to position
199
+ */
200
+ moveTo(x, y) {
201
+ process.stdout.write(`\x1b[${y};${x}H`);
202
+ },
203
+ /**
204
+ * Hide cursor
205
+ */
206
+ hideCursor() {
207
+ process.stdout.write('\x1b[?25l');
208
+ },
209
+ /**
210
+ * Show cursor
211
+ */
212
+ showCursor() {
213
+ process.stdout.write('\x1b[?25h');
214
+ },
215
+ /**
216
+ * Get terminal dimensions
217
+ */
218
+ getSize() {
219
+ return {
220
+ width: process.stdout.columns || 80,
221
+ height: process.stdout.rows || 24
222
+ };
223
+ }
224
+ };
225
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../../src/cli/repl/tui/theme.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Update Checker
3
+ *
4
+ * Checks for new versions of k0ntext and notifies users
5
+ */
6
+ /**
7
+ * Version comparison result
8
+ */
9
+ export interface VersionCheckResult {
10
+ current: string;
11
+ latest: string;
12
+ hasUpdate: boolean;
13
+ type: 'major' | 'minor' | 'patch' | 'none';
14
+ }
15
+ /**
16
+ * Update notification options
17
+ */
18
+ export interface UpdateNotificationOptions {
19
+ showIfCurrent: boolean;
20
+ checkInterval: number;
21
+ }
22
+ /**
23
+ * Update Checker
24
+ */
25
+ export declare class UpdateChecker {
26
+ private currentVersion;
27
+ private lastCheck;
28
+ private cachedResult;
29
+ private checkInterval;
30
+ constructor(currentVersion: string, checkInterval?: number);
31
+ /**
32
+ * Check for updates (with caching)
33
+ */
34
+ check(force?: boolean): Promise<VersionCheckResult>;
35
+ /**
36
+ * Fetch latest version from npm registry
37
+ */
38
+ private fetchLatestVersion;
39
+ /**
40
+ * Check if current version needs update
41
+ */
42
+ private needsUpdate;
43
+ /**
44
+ * Get update type
45
+ */
46
+ private getUpdateType;
47
+ /**
48
+ * Get type emoji
49
+ */
50
+ private getTypeEmoji;
51
+ /**
52
+ * Format update notification
53
+ */
54
+ formatNotification(result: VersionCheckResult): string;
55
+ /**
56
+ * Show notification if update available
57
+ */
58
+ showNotification(options?: UpdateNotificationOptions): Promise<void>;
59
+ /**
60
+ * Check and prompt for update
61
+ */
62
+ checkAndPrompt(): Promise<boolean>;
63
+ }
64
+ //# sourceMappingURL=checker.d.ts.map