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,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,71 @@
1
+ /**
2
+ * Configuration UI Panel
3
+ *
4
+ * Visual configuration management for k0ntext settings
5
+ */
6
+ /**
7
+ * Config key definition
8
+ */
9
+ interface ConfigKey {
10
+ name: string;
11
+ type: 'string' | 'number' | 'boolean' | 'array';
12
+ description: string;
13
+ options?: string[];
14
+ validate?: (value: string) => boolean | string;
15
+ defaultValue?: unknown;
16
+ }
17
+ /**
18
+ * Configuration UI Panel
19
+ */
20
+ export declare class ConfigPanel {
21
+ private projectRoot;
22
+ private configPath;
23
+ private sessionConfig;
24
+ constructor(projectRoot: string, sessionConfig: Record<string, unknown>);
25
+ /**
26
+ * Display current configuration
27
+ */
28
+ displayConfig(): string;
29
+ /**
30
+ * Interactive configuration editor
31
+ */
32
+ interactiveConfig(category?: string): Promise<void>;
33
+ /**
34
+ * Select a category to edit
35
+ */
36
+ private selectCategory;
37
+ /**
38
+ * Prompt user for a configuration value
39
+ */
40
+ private promptForKey;
41
+ /**
42
+ * Get a configuration value
43
+ */
44
+ getValue(name: string): unknown;
45
+ /**
46
+ * Set a configuration value
47
+ */
48
+ setValue(name: string, value: unknown): void;
49
+ /**
50
+ * Save configuration to file
51
+ */
52
+ saveConfig(): Promise<void>;
53
+ /**
54
+ * Format a value for display
55
+ */
56
+ formatValue(value: unknown, key: ConfigKey): string;
57
+ /**
58
+ * Show configuration help
59
+ */
60
+ showConfigHelp(): string;
61
+ /**
62
+ * Validate configuration
63
+ */
64
+ validateConfig(): {
65
+ valid: boolean;
66
+ errors: string[];
67
+ warnings: string[];
68
+ };
69
+ }
70
+ export {};
71
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/cli/repl/tui/panels/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH;;GAEG;AACH,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA6GD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA0B;gBAEnC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMvE;;OAEG;IACH,aAAa,IAAI,MAAM;IA4BvB;;OAEG;IACG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BzD;;OAEG;YACW,cAAc;IAoB5B;;OAEG;YACW,YAAY;IA+D1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA4B/B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK5C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM;IAwBnD;;OAEG;IACH,cAAc,IAAI,MAAM;IAyBxB;;OAEG;IACH,cAAc,IAAI;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;CA6B3E"}