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,353 @@
1
+ /**
2
+ * Drift Detection Panel
3
+ *
4
+ * Enhanced drift detection with detailed analysis and visualization
5
+ */
6
+ import fs from 'fs';
7
+ import path from 'path';
8
+ import { K0NTEXT_THEME } from '../theme.js';
9
+ import { DatabaseClient } from '../../../../db/client.js';
10
+ /**
11
+ * Drift Detection Panel
12
+ */
13
+ export class DriftDetectionPanel {
14
+ projectRoot;
15
+ constructor(projectRoot) {
16
+ this.projectRoot = projectRoot;
17
+ }
18
+ /**
19
+ * Run complete drift analysis
20
+ */
21
+ async analyze() {
22
+ const [fileDrifts, structureDrift, gitDrift] = await Promise.all([
23
+ this.analyzeFileDates(),
24
+ this.analyzeStructure(),
25
+ this.analyzeGitDiff()
26
+ ]);
27
+ // Determine overall severity
28
+ const severities = [
29
+ this.getDriftSeverity(fileDrifts),
30
+ structureDrift?.severity || 'low',
31
+ gitDrift?.severity || 'low'
32
+ ];
33
+ const overallSeverity = severities.includes('critical')
34
+ ? 'critical'
35
+ : severities.includes('high')
36
+ ? 'high'
37
+ : severities.includes('medium')
38
+ ? 'medium'
39
+ : 'low';
40
+ const summary = this.generateSummary(fileDrifts, structureDrift, gitDrift);
41
+ return {
42
+ fileDrifts,
43
+ structureDrift,
44
+ gitDrift,
45
+ overallSeverity,
46
+ summary
47
+ };
48
+ }
49
+ /**
50
+ * Analyze file date drifts
51
+ */
52
+ async analyzeFileDates() {
53
+ const drifts = [];
54
+ const thresholdDays = 7; // Files not updated in 7 days are considered drifted
55
+ try {
56
+ const db = new DatabaseClient(this.projectRoot);
57
+ const items = db.getAllItems();
58
+ const now = new Date();
59
+ for (const item of items) {
60
+ if (!item.updatedAt)
61
+ continue;
62
+ const lastIndexed = new Date(item.updatedAt);
63
+ const daysSince = Math.floor((now.getTime() - lastIndexed.getTime()) / (1000 * 60 * 60 * 24));
64
+ // Only include items that are drifted (> 7 days old)
65
+ if (daysSince <= thresholdDays)
66
+ continue;
67
+ // Determine file type from item type
68
+ let fileType = 'doc';
69
+ if (item.type === 'code' || item.type === 'command' || item.type === 'commit') {
70
+ fileType = 'code';
71
+ }
72
+ else if (item.type === 'config' || item.type === 'tool_config') {
73
+ fileType = 'config';
74
+ }
75
+ else {
76
+ fileType = 'doc';
77
+ }
78
+ // Determine severity based on days since update
79
+ let severity = 'medium';
80
+ if (daysSince > 30) {
81
+ severity = 'critical';
82
+ }
83
+ else if (daysSince > 14) {
84
+ severity = 'high';
85
+ }
86
+ else {
87
+ severity = 'medium';
88
+ }
89
+ drifts.push({
90
+ filePath: item.filePath || item.id,
91
+ fileType,
92
+ lastModified: lastIndexed,
93
+ lastIndexed,
94
+ daysSince,
95
+ severity
96
+ });
97
+ }
98
+ db.close();
99
+ }
100
+ catch (error) {
101
+ // If database is not available, return empty array
102
+ console.error('Failed to analyze file dates:', error);
103
+ }
104
+ return drifts;
105
+ }
106
+ /**
107
+ * Analyze structure changes
108
+ */
109
+ async analyzeStructure() {
110
+ const addedFiles = [];
111
+ const removedFiles = [];
112
+ // Check for .k0ntext directory
113
+ const k0ntextDir = path.join(this.projectRoot, '.k0ntext');
114
+ if (!fs.existsSync(k0ntextDir)) {
115
+ return null;
116
+ }
117
+ // Could scan for untracked files
118
+ // This is a simplified implementation
119
+ let severity = 'low';
120
+ const totalChanges = addedFiles.length + removedFiles.length;
121
+ if (totalChanges > 50)
122
+ severity = 'critical';
123
+ else if (totalChanges > 20)
124
+ severity = 'high';
125
+ else if (totalChanges > 5)
126
+ severity = 'medium';
127
+ return {
128
+ addedFiles,
129
+ removedFiles,
130
+ severity
131
+ };
132
+ }
133
+ /**
134
+ * Analyze git diff for changes
135
+ */
136
+ async analyzeGitDiff() {
137
+ const gitDir = path.join(this.projectRoot, '.git');
138
+ if (!fs.existsSync(gitDir)) {
139
+ return null;
140
+ }
141
+ // Check for uncommitted changes
142
+ const uncommittedChanges = [];
143
+ try {
144
+ // Use git diff to check for changes
145
+ const { execSync } = require('child_process');
146
+ // Check for modified files
147
+ const modified = execSync('git diff --name-only', {
148
+ cwd: this.projectRoot,
149
+ encoding: 'utf-8',
150
+ stdio: 'pipe'
151
+ });
152
+ if (modified.trim()) {
153
+ uncommittedChanges.push(...modified.trim().split('\n').filter(Boolean));
154
+ }
155
+ // Check for untracked files
156
+ const untracked = execSync('git ls-files --others --exclude-standard', {
157
+ cwd: this.projectRoot,
158
+ encoding: 'utf-8',
159
+ stdio: 'pipe'
160
+ });
161
+ if (untracked.trim()) {
162
+ uncommittedChanges.push(...untracked.trim().split('\n').filter(Boolean));
163
+ }
164
+ // Get commit count
165
+ const commitCountStr = execSync('git rev-list --count HEAD', {
166
+ cwd: this.projectRoot,
167
+ encoding: 'utf-8',
168
+ stdio: 'pipe'
169
+ });
170
+ const commitCount = parseInt(commitCountStr.trim() || '0');
171
+ let severity = 'low';
172
+ const totalChanges = uncommittedChanges.length;
173
+ if (totalChanges > 20)
174
+ severity = 'critical';
175
+ else if (totalChanges > 10)
176
+ severity = 'high';
177
+ else if (totalChanges > 5)
178
+ severity = 'medium';
179
+ return {
180
+ committedChanges: commitCount,
181
+ uncommittedChanges,
182
+ severity
183
+ };
184
+ }
185
+ catch {
186
+ // Git not available or error
187
+ return null;
188
+ }
189
+ }
190
+ /**
191
+ * Get drift severity from file drifts
192
+ */
193
+ getDriftSeverity(drifts) {
194
+ if (drifts.length === 0)
195
+ return 'low';
196
+ const criticalDrifts = drifts.filter(d => d.severity === 'critical').length;
197
+ const highDrifts = drifts.filter(d => d.severity === 'high').length;
198
+ const mediumDrifts = drifts.filter(d => d.severity === 'medium').length;
199
+ if (criticalDrifts > 5)
200
+ return 'critical';
201
+ if (criticalDrifts > 2 || highDrifts > 10)
202
+ return 'high';
203
+ if (mediumDrifts > 10 || highDrifts > 3)
204
+ return 'medium';
205
+ return 'low';
206
+ }
207
+ /**
208
+ * Generate summary text
209
+ */
210
+ generateSummary(fileDrifts, structureDrift, gitDrift) {
211
+ const parts = [];
212
+ const fileCount = fileDrifts.length;
213
+ const structChanges = structureDrift ? structureDrift.addedFiles.length + structureDrift.removedFiles.length : 0;
214
+ const gitChanges = gitDrift ? gitDrift.uncommittedChanges.length : 0;
215
+ if (fileCount === 0 && structChanges === 0 && gitChanges === 0) {
216
+ return 'All context files are up to date with your codebase.';
217
+ }
218
+ if (fileCount > 0) {
219
+ parts.push(`${fileCount} files may be outdated`);
220
+ }
221
+ if (structChanges > 0) {
222
+ parts.push(`${structChanges} structural changes detected`);
223
+ }
224
+ if (gitChanges > 0) {
225
+ parts.push(`${gitChanges} uncommitted changes`);
226
+ }
227
+ return parts.join(', ') || 'No drift detected';
228
+ }
229
+ /**
230
+ * Display drift report
231
+ */
232
+ displayReport(report) {
233
+ const lines = [];
234
+ lines.push('');
235
+ lines.push(K0NTEXT_THEME.header('━━━ Documentation Drift Analysis ━━━'));
236
+ lines.push('');
237
+ // Overall severity
238
+ const severityEmoji = {
239
+ critical: K0NTEXT_THEME.error('🔴 Critical'),
240
+ high: K0NTEXT_THEME.warning('🟠 High'),
241
+ medium: K0NTEXT_THEME.warning('🟡 Medium'),
242
+ low: K0NTEXT_THEME.success('🟢 Good')
243
+ }[report.overallSeverity];
244
+ lines.push(` Overall Status: ${severityEmoji}`);
245
+ lines.push(` Summary: ${report.summary}`);
246
+ lines.push('');
247
+ // File drifts
248
+ if (report.fileDrifts.length > 0) {
249
+ lines.push(K0NTEXT_THEME.header('━━━ File Date Drifts ━──'));
250
+ const bySeverity = this.groupBySeverity(report.fileDrifts);
251
+ for (const [severity, drifts] of Object.entries(bySeverity)) {
252
+ if (drifts.length === 0)
253
+ continue;
254
+ const severityLabel = {
255
+ critical: '🔴 Critical',
256
+ high: '🟠 High',
257
+ medium: '🟡 Medium',
258
+ low: '🟢 Low'
259
+ }[severity];
260
+ lines.push(` ${severityLabel} (${drifts.length} files):`);
261
+ for (const drift of drifts.slice(0, 5)) {
262
+ const icon = this.getFileTypeIcon(drift.fileType);
263
+ const days = drift.daysSince;
264
+ lines.push(` ${icon} ${K0NTEXT_THEME.dim(drift.filePath)}`);
265
+ lines.push(` ${K0NTEXT_THEME.dim(`not updated in ${days} days`)}`);
266
+ }
267
+ if (drifts.length > 5) {
268
+ lines.push(` ${K0NTEXT_THEME.dim(`... and ${drifts.length - 5} more`)}`);
269
+ }
270
+ lines.push('');
271
+ }
272
+ }
273
+ // Structure drifts
274
+ if (report.structureDrift) {
275
+ lines.push(K0NTEXT_THEME.header('━━━ Structure Changes ━──'));
276
+ if (report.structureDrift.addedFiles.length > 0) {
277
+ lines.push(` ${K0NTEXT_THEME.success('+')} New files: ${report.structureDrift.addedFiles.length}`);
278
+ for (const file of report.structureDrift.addedFiles.slice(0, 5)) {
279
+ lines.push(` ${K0NTEXT_THEME.dim(file)}`);
280
+ }
281
+ if (report.structureDrift.addedFiles.length > 5) {
282
+ lines.push(` ${K0NTEXT_THEME.dim('... and more')}`);
283
+ }
284
+ lines.push('');
285
+ }
286
+ if (report.structureDrift.removedFiles.length > 0) {
287
+ lines.push(` ${K0NTEXT_THEME.error('-')} Removed files: ${report.structureDrift.removedFiles.length}`);
288
+ for (const file of report.structureDrift.removedFiles.slice(0, 5)) {
289
+ lines.push(` ${K0NTEXT_THEME.dim(file)}`);
290
+ }
291
+ if (report.structureDrift.removedFiles.length > 5) {
292
+ lines.push(` ${K0NTEXT_THEME.dim('... and more')}`);
293
+ }
294
+ lines.push('');
295
+ }
296
+ }
297
+ // Git drifts
298
+ if (report.gitDrift) {
299
+ lines.push(K0NTEXT_THEME.header('━━━ Git Changes ━──'));
300
+ if (report.gitDrift.uncommittedChanges.length > 0) {
301
+ lines.push(` Uncommitted changes: ${report.gitDrift.uncommittedChanges.length}`);
302
+ for (const file of report.gitDrift.uncommittedChanges.slice(0, 5)) {
303
+ const status = file.includes('(new file)') ? 'new' : 'modified';
304
+ const statusIcon = status === 'new' ? K0NTEXT_THEME.success('+') : K0NTEXT_THEME.warning('~');
305
+ lines.push(` ${statusIcon} ${K0NTEXT_THEME.dim(file)}`);
306
+ }
307
+ if (report.gitDrift.uncommittedChanges.length > 5) {
308
+ lines.push(` ${K0NTEXT_THEME.dim('... and more')}`);
309
+ }
310
+ lines.push('');
311
+ }
312
+ }
313
+ // Recommendations
314
+ lines.push(K0NTEXT_THEME.header('━━━ Recommendations ━━━'));
315
+ if (report.overallSeverity === 'critical' || report.overallSeverity === 'high') {
316
+ lines.push(` ${K0NTEXT_THEME.warning('⚠ Urgent action recommended:')}`);
317
+ lines.push(` ${K0NTEXT_THEME.cyan('•')} Run ${K0NTEXT_THEME.highlight('index')} to update your context`);
318
+ lines.push(` ${K0NTEXT_THEME.cyan('•')} Commit your changes to keep tracking in sync`);
319
+ }
320
+ else if (report.overallSeverity === 'medium') {
321
+ lines.push(` ${K0NTEXT_THEME.info('ℹ Consider updating soon:')}`);
322
+ lines.push(` ${K0NTEXT_THEME.cyan('•')} Run ${K0NTEXT_THEME.highlight('index')} to refresh context`);
323
+ }
324
+ else {
325
+ lines.push(` ${K0NTEXT_THEME.success('✓ Your context is up to date!')}`);
326
+ }
327
+ lines.push('');
328
+ return lines.join('\n');
329
+ }
330
+ /**
331
+ * Group drifts by severity
332
+ */
333
+ groupBySeverity(drifts) {
334
+ return {
335
+ critical: drifts.filter(d => d.severity === 'critical'),
336
+ high: drifts.filter(d => d.severity === 'high'),
337
+ medium: drifts.filter(d => d.severity === 'medium'),
338
+ low: drifts.filter(d => d.severity === 'low')
339
+ };
340
+ }
341
+ /**
342
+ * Get file type icon
343
+ */
344
+ getFileTypeIcon(type) {
345
+ const icons = {
346
+ doc: '📄',
347
+ code: '💻',
348
+ config: '⚙️'
349
+ };
350
+ return icons[type] || '📄';
351
+ }
352
+ }
353
+ //# sourceMappingURL=drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drift.js","sourceRoot":"","sources":["../../../../../src/cli/repl/tui/panels/drift.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Indexing Progress Visualization
3
+ *
4
+ * Real-time progress display for indexing operations
5
+ */
6
+ /**
7
+ * Indexing progress state
8
+ */
9
+ interface IndexingProgress {
10
+ total: number;
11
+ processed: number;
12
+ currentFile?: string;
13
+ stage: 'discovering' | 'indexing_docs' | 'indexing_code' | 'indexing_tools' | 'generating_embeddings' | 'complete';
14
+ startTime: number;
15
+ errors: string[];
16
+ }
17
+ /**
18
+ * Indexing statistics
19
+ */
20
+ interface IndexingStats {
21
+ docsIndexed: number;
22
+ codeIndexed: number;
23
+ configsIndexed: number;
24
+ embeddingsGenerated: number;
25
+ filesSkipped: number;
26
+ duration: number;
27
+ }
28
+ /**
29
+ * Indexing Progress Visualizer
30
+ */
31
+ export declare class IndexingProgressVisualizer {
32
+ private progress;
33
+ private stats;
34
+ private spinner;
35
+ constructor();
36
+ /**
37
+ * Start a new indexing operation
38
+ */
39
+ start(totalFiles: number): void;
40
+ /**
41
+ * Update progress
42
+ */
43
+ update(stage: IndexingProgress['stage'], updates: {
44
+ processed?: number;
45
+ currentFile?: string;
46
+ error?: string;
47
+ }): void;
48
+ /**
49
+ * Render current progress
50
+ */
51
+ private render;
52
+ /**
53
+ * Get stage name
54
+ */
55
+ private getStageName;
56
+ /**
57
+ * Show detailed progress panel
58
+ */
59
+ showDetailedProgress(): void;
60
+ /**
61
+ * Render progress bar
62
+ */
63
+ private renderProgressBar;
64
+ /**
65
+ * Format duration
66
+ */
67
+ private formatDuration;
68
+ /**
69
+ * Complete indexing
70
+ */
71
+ complete(stats: Partial<IndexingStats>): void;
72
+ /**
73
+ * Show final statistics
74
+ */
75
+ showFinalStats(): void;
76
+ /**
77
+ * Cancel indexing
78
+ */
79
+ cancel(): void;
80
+ /**
81
+ * Format a timestamp relative to now
82
+ */
83
+ private formatTimestamp;
84
+ }
85
+ export {};
86
+ //# sourceMappingURL=indexing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing.d.ts","sourceRoot":"","sources":["../../../../../src/cli/repl/tui/panels/indexing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,aAAa,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,UAAU,CAAC;IACnH,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAoB;;IAqBnC;;OAEG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAqB/B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI;IAkBR;;OAEG;IACH,OAAO,CAAC,MAAM;IAuCd;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAiC5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAoB7C;;OAEG;IACH,cAAc,IAAI,IAAI;IAiCtB;;OAEG;IACH,MAAM,IAAI,IAAI;IAUd;;OAEG;IACH,OAAO,CAAC,eAAe;CAaxB"}