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,474 @@
1
+ /**
2
+ * K0ntext REPL Shell
3
+ *
4
+ * Interactive shell for managing k0ntext context
5
+ */
6
+ import readline from 'readline';
7
+ import { REPLSessionManager } from './core/session.js';
8
+ import { REPLCommandParser } from './core/parser.js';
9
+ import { InitWizard } from './init/wizard.js';
10
+ import { UpdateChecker } from './update/checker.js';
11
+ import { K0NTEXT_THEME } from './tui/theme.js';
12
+ import { createIntelligentAnalyzer } from '../../analyzer/intelligent-analyzer.js';
13
+ import { DatabaseClient } from '../../db/client.js';
14
+ import { AdvancedSearchPanel } from './tui/panels/search.js';
15
+ import { ConfigPanel } from './tui/panels/config.js';
16
+ import { IndexingProgressVisualizer } from './tui/panels/indexing.js';
17
+ import { DriftDetectionPanel } from './tui/panels/drift.js';
18
+ /**
19
+ * K0ntext REPL Shell
20
+ */
21
+ export class REPLShell {
22
+ session;
23
+ parser;
24
+ updateChecker;
25
+ projectRoot;
26
+ version;
27
+ readline;
28
+ isActive = false;
29
+ noTUI;
30
+ // Enhanced panels
31
+ searchPanel;
32
+ configPanel;
33
+ driftPanel;
34
+ constructor(options) {
35
+ this.projectRoot = options.projectRoot;
36
+ this.version = options.version;
37
+ this.noTUI = options.noTUI || false;
38
+ this.session = new REPLSessionManager(this.projectRoot);
39
+ this.parser = new REPLCommandParser();
40
+ this.updateChecker = new UpdateChecker(options.version);
41
+ // Initialize enhanced panels
42
+ this.searchPanel = new AdvancedSearchPanel();
43
+ this.configPanel = new ConfigPanel(this.projectRoot, { ...this.session.getState().config });
44
+ this.driftPanel = new DriftDetectionPanel(this.projectRoot);
45
+ // Create readline interface
46
+ this.readline = readline.createInterface({
47
+ input: process.stdin,
48
+ output: process.stdout,
49
+ prompt: this.getPrompt()
50
+ });
51
+ this.setupEventHandlers();
52
+ this.registerCommands();
53
+ }
54
+ /**
55
+ * Get the command prompt
56
+ */
57
+ getPrompt() {
58
+ const isInit = this.session.isInitialized();
59
+ const symbol = isInit ? '█' : '?';
60
+ return K0NTEXT_THEME.primary(`k0ntext${symbol} `);
61
+ }
62
+ /**
63
+ * Setup event handlers
64
+ */
65
+ setupEventHandlers() {
66
+ this.readline.on('line', async (input) => {
67
+ if (!this.isActive)
68
+ return;
69
+ const trimmed = input.trim();
70
+ if (!trimmed) {
71
+ this.readline.prompt();
72
+ return;
73
+ }
74
+ // Handle exit commands
75
+ if (trimmed.toLowerCase() === 'exit' || trimmed.toLowerCase() === 'quit') {
76
+ await this.stop();
77
+ return;
78
+ }
79
+ // Parse and execute command
80
+ const parsed = this.parser.parse(trimmed);
81
+ if (parsed) {
82
+ const startTime = Date.now();
83
+ const result = await this.parser.execute(parsed);
84
+ const duration = Date.now() - startTime;
85
+ this.session.addCommand(trimmed, result.output, duration);
86
+ if (result.output) {
87
+ console.log('');
88
+ console.log(result.output);
89
+ }
90
+ if (result.error) {
91
+ console.log('');
92
+ console.log(K0NTEXT_THEME.error(`✖ ${result.error}`));
93
+ }
94
+ }
95
+ else {
96
+ console.log(K0NTEXT_THEME.warning('\n⚠ Invalid command. Type "help" for available commands.'));
97
+ }
98
+ this.readline.prompt();
99
+ });
100
+ this.readline.on('SIGINT', async () => {
101
+ console.log('');
102
+ console.log(K0NTEXT_THEME.warning('\n⚠ Use "exit" to quit the REPL.'));
103
+ this.readline.prompt();
104
+ });
105
+ this.readline.on('close', async () => {
106
+ await this.stop();
107
+ });
108
+ }
109
+ /**
110
+ * Register REPL-specific commands
111
+ */
112
+ registerCommands() {
113
+ // Stats command
114
+ this.parser.registerCommand({
115
+ name: 'stats',
116
+ description: 'Show database and session statistics',
117
+ usage: 'stats',
118
+ examples: ['stats'],
119
+ handler: async () => {
120
+ const db = new DatabaseClient(this.projectRoot);
121
+ const dbStats = db.getStats();
122
+ const sessionStats = this.session.getStats();
123
+ const duration = this.session.getDuration();
124
+ const output = [
125
+ '',
126
+ K0NTEXT_THEME.header('━━━ Database Statistics ━━━'),
127
+ ` ${K0NTEXT_THEME.cyan('•')} Context Items: ${dbStats.items}`,
128
+ ` ${K0NTEXT_THEME.cyan('•')} Relations: ${dbStats.relations}`,
129
+ ` ${K0NTEXT_THEME.cyan('•')} Git Commits: ${dbStats.commits}`,
130
+ ` ${K0NTEXT_THEME.cyan('•')} Embeddings: ${dbStats.embeddings}`,
131
+ ` ${K0NTEXT_THEME.cyan('•')} Tool Configs: ${dbStats.toolConfigs}`,
132
+ ` ${K0NTEXT_THEME.cyan('•')} Database Path: ${dbStats.path || '.k0ntext.db'}`,
133
+ '',
134
+ K0NTEXT_THEME.header('━━━ Session Statistics ━━━'),
135
+ ` ${K0NTEXT_THEME.cyan('•')} Duration: ${duration.human}`,
136
+ ` ${K0NTEXT_THEME.cyan('•')} Commands Run: ${sessionStats.commandsExecuted}`,
137
+ ` ${K0NTEXT_THEME.cyan('•')} Searches: ${sessionStats.searchesPerformed}`,
138
+ ` ${K0NTEXT_THEME.cyan('•')} Files Indexed: ${sessionStats.filesIndexed}`,
139
+ ` ${K0NTEXT_THEME.cyan('•')} Embeddings: ${sessionStats.embeddingsGenerated}`,
140
+ ''
141
+ ];
142
+ db.close();
143
+ return { success: true, output: output.join('\n') };
144
+ }
145
+ });
146
+ // Index command
147
+ this.parser.registerCommand({
148
+ name: 'index',
149
+ description: 'Index codebase into database',
150
+ usage: 'index [options]',
151
+ examples: ['index', 'index --code', 'index --all'],
152
+ handler: async (args, flags) => {
153
+ const analyzer = createIntelligentAnalyzer(this.projectRoot);
154
+ const db = new DatabaseClient(this.projectRoot);
155
+ const visualizer = new IndexingProgressVisualizer();
156
+ let indexedCount = 0;
157
+ let docsCount = 0;
158
+ let codeIndexedCount = 0;
159
+ let toolsIndexedCount = 0;
160
+ try {
161
+ const [docs, code, tools] = await Promise.all([
162
+ analyzer.discoverDocs(),
163
+ analyzer.discoverCode(),
164
+ analyzer.discoverToolConfigs()
165
+ ]);
166
+ docsCount = docs.length;
167
+ const codeCount = Math.min(code.length, 500); // Limit for now
168
+ const toolsCount = tools.length;
169
+ const totalFiles = docsCount + codeCount + toolsCount;
170
+ visualizer.start(totalFiles);
171
+ // Index docs
172
+ for (const doc of docs) {
173
+ const content = require('fs').readFileSync(doc.path, 'utf-8').slice(0, 50000);
174
+ db.upsertItem({
175
+ type: 'doc',
176
+ name: require('path').basename(doc.relativePath),
177
+ content,
178
+ filePath: doc.relativePath,
179
+ metadata: { size: doc.size }
180
+ });
181
+ indexedCount++;
182
+ docsCount++;
183
+ visualizer.update('indexing_docs', { processed: indexedCount, currentFile: doc.relativePath });
184
+ }
185
+ // Index code
186
+ for (const codeFile of code.slice(0, 500)) {
187
+ const content = require('fs').existsSync(codeFile.path)
188
+ ? require('fs').readFileSync(codeFile.path, 'utf-8').slice(0, 20000)
189
+ : '';
190
+ if (content) {
191
+ db.upsertItem({
192
+ type: 'code',
193
+ name: require('path').basename(codeFile.relativePath),
194
+ content,
195
+ filePath: codeFile.relativePath,
196
+ metadata: { size: codeFile.size }
197
+ });
198
+ indexedCount++;
199
+ codeIndexedCount++;
200
+ }
201
+ visualizer.update('indexing_code', { processed: indexedCount, currentFile: codeFile.relativePath });
202
+ }
203
+ // Index tools
204
+ for (const tool of tools) {
205
+ const content = require('fs').existsSync(tool.path)
206
+ ? require('fs').readFileSync(tool.path, 'utf-8').slice(0, 50000)
207
+ : '';
208
+ if (content) {
209
+ db.upsertItem({
210
+ type: 'tool_config',
211
+ name: `${tool.tool}:${require('path').basename(tool.relativePath)}`,
212
+ content,
213
+ filePath: tool.relativePath,
214
+ metadata: { tool: tool.tool, size: tool.size }
215
+ });
216
+ indexedCount++;
217
+ toolsIndexedCount++;
218
+ }
219
+ visualizer.update('indexing_tools', { processed: indexedCount, currentFile: tool.relativePath });
220
+ }
221
+ this.session.updateStats({
222
+ filesIndexed: this.session.getStats().filesIndexed + indexedCount
223
+ });
224
+ visualizer.complete({ docsIndexed: docsCount, codeIndexed: codeIndexedCount, configsIndexed: toolsIndexedCount });
225
+ db.close();
226
+ return { success: true, output: '' };
227
+ }
228
+ catch (error) {
229
+ visualizer.cancel();
230
+ db.close();
231
+ return {
232
+ success: false,
233
+ error: error instanceof Error ? error.message : String(error)
234
+ };
235
+ }
236
+ }
237
+ });
238
+ // Search command - Enhanced
239
+ this.parser.registerCommand({
240
+ name: 'search',
241
+ description: 'Search indexed content with advanced options',
242
+ usage: 'search <query> [options]',
243
+ examples: [
244
+ 'search auth',
245
+ 'search "user login"',
246
+ 'search config --type code',
247
+ 'search auth --sort date --limit 20'
248
+ ],
249
+ handler: async (args, flags) => {
250
+ const query = args.join(' ');
251
+ if (!query) {
252
+ return {
253
+ success: false,
254
+ error: 'Please provide a search query'
255
+ };
256
+ }
257
+ const db = new DatabaseClient(this.projectRoot);
258
+ const results = db.searchText(query);
259
+ this.session.updateStats({
260
+ searchesPerformed: this.session.getStats().searchesPerformed + 1
261
+ });
262
+ // Parse search flags
263
+ const filters = this.searchPanel.parseSearchFlags(args);
264
+ // Apply filters
265
+ let filteredResults = results.map(r => ({ item: r, score: 0.5, highlights: [] }));
266
+ if (filters.type) {
267
+ filteredResults = this.searchPanel.filterByType(filteredResults, filters.type);
268
+ }
269
+ if (filters.sortBy) {
270
+ filteredResults = this.searchPanel.sortResults(filteredResults, filters.sortBy, filters.sortOrder || 'desc');
271
+ }
272
+ // Display results
273
+ const output = this.searchPanel.displayResults(filteredResults, query, filters);
274
+ db.close();
275
+ return { success: true, output };
276
+ }
277
+ });
278
+ // Init command (re-run wizard)
279
+ this.parser.registerCommand({
280
+ name: 'init',
281
+ description: 'Re-run initialization wizard',
282
+ usage: 'init',
283
+ examples: ['init'],
284
+ handler: async () => {
285
+ const wizard = new InitWizard(this.projectRoot);
286
+ const config = await wizard.run();
287
+ if (config) {
288
+ this.session.setInitialized(config.apiKey, config.projectType);
289
+ this.session.updateConfig({
290
+ apiKey: config.apiKey,
291
+ projectType: config.projectType,
292
+ aiTools: config.aiTools,
293
+ features: config.features
294
+ });
295
+ wizard.showSuccess(config);
296
+ }
297
+ return { success: true };
298
+ }
299
+ });
300
+ // Update command
301
+ this.parser.registerCommand({
302
+ name: 'update',
303
+ description: 'Check for k0ntext updates',
304
+ usage: 'update',
305
+ examples: ['update'],
306
+ handler: async () => {
307
+ const hasUpdate = await this.updateChecker.checkAndPrompt();
308
+ return {
309
+ success: true,
310
+ output: hasUpdate ? '' : K0NTEXT_THEME.success('\n✓ Already on latest version')
311
+ };
312
+ }
313
+ });
314
+ // Drift command
315
+ this.parser.registerCommand({
316
+ name: 'drift',
317
+ description: 'Check for documentation drift',
318
+ usage: 'drift',
319
+ examples: ['drift'],
320
+ handler: async () => {
321
+ const report = await this.driftPanel.analyze();
322
+ const output = this.driftPanel.displayReport(report);
323
+ return { success: true, output };
324
+ }
325
+ });
326
+ // Config command - Enhanced
327
+ this.parser.registerCommand({
328
+ name: 'config',
329
+ description: 'View or set configuration',
330
+ usage: 'config [get|set|list|edit|validate] [key] [value]',
331
+ examples: ['config list', 'config get projectType', 'config set projectType webapp', 'config edit', 'config validate'],
332
+ handler: async (args) => {
333
+ const action = args[0] || 'list';
334
+ if (action === 'edit') {
335
+ // Interactive configuration editor
336
+ const category = args[1]; // Optional category filter
337
+ await this.configPanel.interactiveConfig(category);
338
+ return { success: true, output: '' };
339
+ }
340
+ if (action === 'validate') {
341
+ const validation = this.configPanel.validateConfig();
342
+ const output = [
343
+ '',
344
+ K0NTEXT_THEME.header('━━━ Configuration Validation ━━━'),
345
+ ''
346
+ ];
347
+ if (validation.valid) {
348
+ output.push(K0NTEXT_THEME.success('✓ Configuration is valid'));
349
+ }
350
+ else {
351
+ output.push(K0NTEXT_THEME.error('✗ Configuration errors found:'));
352
+ for (const error of validation.errors) {
353
+ output.push(` ${K0NTEXT_THEME.error('•')} ${error}`);
354
+ }
355
+ }
356
+ if (validation.warnings.length > 0) {
357
+ output.push('');
358
+ output.push(K0NTEXT_THEME.warning('⚠ Warnings:'));
359
+ for (const warning of validation.warnings) {
360
+ output.push(` ${K0NTEXT_THEME.warning('•')} ${warning}`);
361
+ }
362
+ }
363
+ output.push('');
364
+ return { success: validation.valid, output: output.join('\n') };
365
+ }
366
+ if (action === 'list') {
367
+ return { success: true, output: this.configPanel.displayConfig() };
368
+ }
369
+ if (action === 'get') {
370
+ const key = args[1];
371
+ if (!key)
372
+ return { success: false, error: 'Please specify a key' };
373
+ const value = this.configPanel.getValue(key);
374
+ const formatted = this.configPanel.formatValue(value, {
375
+ name: key,
376
+ type: 'string',
377
+ description: '',
378
+ defaultValue: ''
379
+ });
380
+ return { success: true, output: `${key}: ${formatted}` };
381
+ }
382
+ if (action === 'set') {
383
+ const key = args[1];
384
+ const value = args.slice(2).join(' ');
385
+ if (!key || !value)
386
+ return { success: false, error: 'Usage: config set <key> <value>' };
387
+ this.session.updateConfig({ [key]: value });
388
+ await this.configPanel.saveConfig();
389
+ return { success: true, output: K0NTEXT_THEME.success(`✓ Set ${key} = ${value}`) };
390
+ }
391
+ return { success: false, error: 'Unknown action. Use: list, get, set, edit, or validate' };
392
+ }
393
+ });
394
+ }
395
+ /**
396
+ * Start the REPL
397
+ */
398
+ async start() {
399
+ this.isActive = true;
400
+ // Show banner
401
+ this.showBanner();
402
+ // Check for updates
403
+ if (this.session.getState().config.autoUpdate) {
404
+ await this.updateChecker.showNotification({ showIfCurrent: false, checkInterval: 24 * 60 * 60 * 1000 });
405
+ }
406
+ // Check if initialized
407
+ if (!this.session.isInitialized()) {
408
+ console.log('');
409
+ console.log(K0NTEXT_THEME.info('🔧 First-time setup detected. Running initialization wizard...\n'));
410
+ const wizard = new InitWizard(this.projectRoot);
411
+ const config = await wizard.run();
412
+ if (config) {
413
+ this.session.setInitialized(config.apiKey, config.projectType);
414
+ this.session.updateConfig({
415
+ apiKey: config.apiKey,
416
+ projectType: config.projectType,
417
+ aiTools: config.aiTools,
418
+ features: config.features
419
+ });
420
+ wizard.showSuccess(config);
421
+ }
422
+ else {
423
+ console.log(K0NTEXT_THEME.info('\n✓ Skipping initialization. You can run "init" later.\n'));
424
+ }
425
+ }
426
+ // Show project stats if initialized
427
+ if (this.session.isInitialized()) {
428
+ const analyzer = createIntelligentAnalyzer(this.projectRoot);
429
+ const analysis = await analyzer.analyze();
430
+ console.log('');
431
+ console.log(K0NTEXT_THEME.header('━━━ Project Overview ━━━'));
432
+ console.log(` ${K0NTEXT_THEME.primary('Type:')} ${this.session.getState().config.projectType}`);
433
+ console.log(` ${K0NTEXT_THEME.primary('Docs:')} ${analysis.existingContext.files.filter(f => f.type === 'doc').length}`);
434
+ console.log(` ${K0NTEXT_THEME.primary('Code:')} ${analysis.existingContext.files.filter(f => f.type === 'code').length}`);
435
+ console.log(` ${K0NTEXT_THEME.primary('Tech:')} ${analysis.techStack.languages.slice(0, 3).join(', ')}`);
436
+ }
437
+ console.log('');
438
+ console.log(K0NTEXT_THEME.dim('Type "help" for available commands, "exit" to quit.'));
439
+ // Start readline
440
+ this.readline.prompt();
441
+ }
442
+ /**
443
+ * Stop the REPL
444
+ */
445
+ async stop() {
446
+ this.isActive = false;
447
+ this.session.end();
448
+ this.readline.close();
449
+ console.log('');
450
+ console.log(K0NTEXT_THEME.success('✓ Session saved. Goodbye!'));
451
+ }
452
+ /**
453
+ * Show welcome banner
454
+ */
455
+ showBanner() {
456
+ const { supportsColor } = K0NTEXT_THEME.detectCapabilities();
457
+ if (!supportsColor) {
458
+ console.log(`\n K0ntext v${this.version}\n`);
459
+ return;
460
+ }
461
+ console.log('');
462
+ console.log(K0NTEXT_THEME.box(`K0NTEXT v${this.version}`, `${K0NTEXT_THEME.dim('Interactive shell for AI context engineering')}
463
+ ${K0NTEXT_THEME.dim('Type "help" for commands, "exit" to quit')}`, 'primary'));
464
+ console.log('');
465
+ }
466
+ }
467
+ /**
468
+ * Create and start a REPL shell
469
+ */
470
+ export async function startREPL(projectRoot = process.cwd(), version, noTUI = false) {
471
+ const shell = new REPLShell({ projectRoot, version, noTUI });
472
+ await shell.start();
473
+ }
474
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/repl/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Init Wizard
3
+ *
4
+ * Interactive wizard for initializing k0ntext configuration
5
+ */
6
+ import { ProjectType } from '../core/session.js';
7
+ /**
8
+ * Wizard configuration result
9
+ */
10
+ export interface WizardConfig {
11
+ apiKey: string;
12
+ projectType: ProjectType;
13
+ aiTools: string[];
14
+ features: string[];
15
+ generateEmbeddings: boolean;
16
+ }
17
+ /**
18
+ * Init Wizard
19
+ */
20
+ export declare class InitWizard {
21
+ private projectRoot;
22
+ private hasExistingKey;
23
+ constructor(projectRoot: string);
24
+ /**
25
+ * Run the complete wizard
26
+ */
27
+ run(): Promise<WizardConfig | null>;
28
+ /**
29
+ * Show welcome message
30
+ */
31
+ private showWelcome;
32
+ /**
33
+ * Step 1: API Key
34
+ */
35
+ private stepApiKey;
36
+ /**
37
+ * Step 2: Project Type
38
+ */
39
+ private stepProjectType;
40
+ /**
41
+ * Step 3: AI Tools
42
+ */
43
+ private stepAITools;
44
+ /**
45
+ * Step 4: Features
46
+ */
47
+ private stepFeatures;
48
+ /**
49
+ * Step 5: Embeddings
50
+ */
51
+ private stepEmbeddings;
52
+ /**
53
+ * Show summary and confirm
54
+ */
55
+ private showSummary;
56
+ /**
57
+ * Show success message
58
+ */
59
+ showSuccess(config: WizardConfig): void;
60
+ }
61
+ //# sourceMappingURL=wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../../../src/cli/repl/init/wizard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAuCD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAU;gBAEpB,WAAW,EAAE,MAAM;IAK/B;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAwCzC;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;YACW,UAAU;IA2CxB;;OAEG;YACW,eAAe;IAiB7B;;OAEG;YACW,WAAW;IAkBzB;;OAEG;YACW,YAAY;IAkB1B;;OAEG;YACW,cAAc;IAe5B;;OAEG;YACW,WAAW;IAsBzB;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;CAYxC"}