codehere 0.2.0 → 0.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.

Potentially problematic release.


This version of codehere might be problematic. Click here for more details.

Files changed (166) hide show
  1. package/dist/application/agents/multi-agent-orchestrator.d.ts +1 -0
  2. package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -1
  3. package/dist/application/agents/multi-agent-orchestrator.js.map +1 -1
  4. package/dist/application/services/dependency-container.d.ts +3 -0
  5. package/dist/application/services/dependency-container.d.ts.map +1 -1
  6. package/dist/application/services/dependency-container.js +24 -0
  7. package/dist/application/services/dependency-container.js.map +1 -1
  8. package/dist/application/use-cases/ask-question-use-case.d.ts +12 -0
  9. package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -1
  10. package/dist/application/use-cases/ask-question-use-case.js +129 -9
  11. package/dist/application/use-cases/ask-question-use-case.js.map +1 -1
  12. package/dist/application/use-cases/edit-file-use-case.d.ts.map +1 -1
  13. package/dist/application/use-cases/edit-file-use-case.js +70 -3
  14. package/dist/application/use-cases/edit-file-use-case.js.map +1 -1
  15. package/dist/application/use-cases/planning-use-case.d.ts.map +1 -1
  16. package/dist/application/use-cases/planning-use-case.js +10 -1
  17. package/dist/application/use-cases/planning-use-case.js.map +1 -1
  18. package/dist/application/use-cases/react-orchestration-use-case.d.ts.map +1 -1
  19. package/dist/application/use-cases/react-orchestration-use-case.js +6 -2
  20. package/dist/application/use-cases/react-orchestration-use-case.js.map +1 -1
  21. package/dist/domain/services/react-loop.d.ts +8 -0
  22. package/dist/domain/services/react-loop.d.ts.map +1 -1
  23. package/dist/domain/services/react-loop.js +82 -6
  24. package/dist/domain/services/react-loop.js.map +1 -1
  25. package/dist/formatter.d.ts +2 -2
  26. package/dist/formatter.d.ts.map +1 -1
  27. package/dist/formatter.js +30 -17
  28. package/dist/formatter.js.map +1 -1
  29. package/dist/index.js +134 -15
  30. package/dist/index.js.map +1 -1
  31. package/dist/infrastructure/ai/cohere-ai-service.d.ts +3 -1
  32. package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -1
  33. package/dist/infrastructure/ai/cohere-ai-service.js +51 -4
  34. package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -1
  35. package/dist/infrastructure/cache/query-result-cache.d.ts +68 -0
  36. package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -0
  37. package/dist/infrastructure/cache/query-result-cache.js +138 -0
  38. package/dist/infrastructure/cache/query-result-cache.js.map +1 -0
  39. package/dist/infrastructure/cache/security-scan-cache.d.ts +57 -0
  40. package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -0
  41. package/dist/infrastructure/cache/security-scan-cache.js +124 -0
  42. package/dist/infrastructure/cache/security-scan-cache.js.map +1 -0
  43. package/dist/infrastructure/completion/bash-completion.d.ts +8 -0
  44. package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -0
  45. package/dist/infrastructure/completion/bash-completion.js +101 -0
  46. package/dist/infrastructure/completion/bash-completion.js.map +1 -0
  47. package/dist/infrastructure/completion/completion-generator.d.ts +42 -0
  48. package/dist/infrastructure/completion/completion-generator.d.ts.map +1 -0
  49. package/dist/infrastructure/completion/completion-generator.js +184 -0
  50. package/dist/infrastructure/completion/completion-generator.js.map +1 -0
  51. package/dist/infrastructure/completion/fish-completion.d.ts +8 -0
  52. package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -0
  53. package/dist/infrastructure/completion/fish-completion.js +65 -0
  54. package/dist/infrastructure/completion/fish-completion.js.map +1 -0
  55. package/dist/infrastructure/completion/zsh-completion.d.ts +8 -0
  56. package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -0
  57. package/dist/infrastructure/completion/zsh-completion.js +85 -0
  58. package/dist/infrastructure/completion/zsh-completion.js.map +1 -0
  59. package/dist/infrastructure/context/context-compressor.d.ts +94 -0
  60. package/dist/infrastructure/context/context-compressor.d.ts.map +1 -0
  61. package/dist/infrastructure/context/context-compressor.js +329 -0
  62. package/dist/infrastructure/context/context-compressor.js.map +1 -0
  63. package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -1
  64. package/dist/infrastructure/governance/policy-as-code.js +18 -3
  65. package/dist/infrastructure/governance/policy-as-code.js.map +1 -1
  66. package/dist/infrastructure/observability/execution-tracer.d.ts +5 -2
  67. package/dist/infrastructure/observability/execution-tracer.d.ts.map +1 -1
  68. package/dist/infrastructure/observability/execution-tracer.js +45 -8
  69. package/dist/infrastructure/observability/execution-tracer.js.map +1 -1
  70. package/dist/infrastructure/security/ai-sast-scanner.d.ts +4 -0
  71. package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +1 -1
  72. package/dist/infrastructure/security/ai-sast-scanner.js +82 -4
  73. package/dist/infrastructure/security/ai-sast-scanner.js.map +1 -1
  74. package/dist/infrastructure/security/enhanced-security-gate.d.ts +2 -0
  75. package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +1 -1
  76. package/dist/infrastructure/security/enhanced-security-gate.js +74 -15
  77. package/dist/infrastructure/security/enhanced-security-gate.js.map +1 -1
  78. package/dist/infrastructure/storage/plan-repository.d.ts +38 -0
  79. package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -0
  80. package/dist/infrastructure/storage/plan-repository.js +133 -0
  81. package/dist/infrastructure/storage/plan-repository.js.map +1 -0
  82. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +11 -0
  83. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -1
  84. package/dist/infrastructure/storage/sqlite-embedding-repository.js +121 -6
  85. package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -1
  86. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +24 -0
  87. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -0
  88. package/dist/infrastructure/ux/contextual-feature-discovery.js +144 -0
  89. package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -0
  90. package/dist/infrastructure/ux/expectation-management.d.ts +33 -0
  91. package/dist/infrastructure/ux/expectation-management.d.ts.map +1 -1
  92. package/dist/infrastructure/ux/expectation-management.js +138 -4
  93. package/dist/infrastructure/ux/expectation-management.js.map +1 -1
  94. package/dist/infrastructure/ux/feature-discovery.d.ts +47 -0
  95. package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -0
  96. package/dist/infrastructure/ux/feature-discovery.js +190 -0
  97. package/dist/infrastructure/ux/feature-discovery.js.map +1 -0
  98. package/dist/infrastructure/ux/hitl-review-portal.d.ts +47 -0
  99. package/dist/infrastructure/ux/hitl-review-portal.d.ts.map +1 -0
  100. package/dist/infrastructure/ux/hitl-review-portal.js +225 -0
  101. package/dist/infrastructure/ux/hitl-review-portal.js.map +1 -0
  102. package/dist/infrastructure/ux/progress-indicator.d.ts +54 -0
  103. package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -0
  104. package/dist/infrastructure/ux/progress-indicator.js +121 -0
  105. package/dist/infrastructure/ux/progress-indicator.js.map +1 -0
  106. package/dist/infrastructure/ux/progressive-disclosure.d.ts.map +1 -1
  107. package/dist/infrastructure/ux/progressive-disclosure.js +2 -1
  108. package/dist/infrastructure/ux/progressive-disclosure.js.map +1 -1
  109. package/dist/infrastructure/ux/review-checkpoint.d.ts +35 -0
  110. package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -0
  111. package/dist/infrastructure/ux/review-checkpoint.js +119 -0
  112. package/dist/infrastructure/ux/review-checkpoint.js.map +1 -0
  113. package/dist/infrastructure/ux/staged-feature-intro.d.ts +47 -0
  114. package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -0
  115. package/dist/infrastructure/ux/staged-feature-intro.js +144 -0
  116. package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -0
  117. package/dist/infrastructure/ux/syntax-highlighter.d.ts +21 -0
  118. package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -0
  119. package/dist/infrastructure/ux/syntax-highlighter.js +172 -0
  120. package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -0
  121. package/dist/infrastructure/xai/cot-visualizer.d.ts +1 -0
  122. package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -1
  123. package/dist/infrastructure/xai/cot-visualizer.js +57 -10
  124. package/dist/infrastructure/xai/cot-visualizer.js.map +1 -1
  125. package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -1
  126. package/dist/presentation/cli/commands/ask-command.js +68 -11
  127. package/dist/presentation/cli/commands/ask-command.js.map +1 -1
  128. package/dist/presentation/cli/commands/orchestrate-command.d.ts +1 -0
  129. package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -1
  130. package/dist/presentation/cli/commands/orchestrate-command.js +35 -1
  131. package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -1
  132. package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -1
  133. package/dist/presentation/cli/commands/plan-command.js +57 -5
  134. package/dist/presentation/cli/commands/plan-command.js.map +1 -1
  135. package/dist/presentation/cli/commands/react-command.d.ts.map +1 -1
  136. package/dist/presentation/cli/commands/react-command.js +95 -15
  137. package/dist/presentation/cli/commands/react-command.js.map +1 -1
  138. package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -1
  139. package/dist/presentation/cli/commands/setup-command.js +67 -12
  140. package/dist/presentation/cli/commands/setup-command.js.map +1 -1
  141. package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -1
  142. package/dist/presentation/cli/commands/smart-command.js +136 -18
  143. package/dist/presentation/cli/commands/smart-command.js.map +1 -1
  144. package/dist/presentation/cli/commands/trace-command.d.ts.map +1 -1
  145. package/dist/presentation/cli/commands/trace-command.js +9 -5
  146. package/dist/presentation/cli/commands/trace-command.js.map +1 -1
  147. package/dist/presentation/cli/commands/undo-command.js +15 -6
  148. package/dist/presentation/cli/commands/undo-command.js.map +1 -1
  149. package/dist/presentation/cli/error-display.d.ts +2 -0
  150. package/dist/presentation/cli/error-display.d.ts.map +1 -1
  151. package/dist/presentation/cli/error-display.js +177 -2
  152. package/dist/presentation/cli/error-display.js.map +1 -1
  153. package/dist/presentation/cli/keyboard-shortcuts.d.ts +27 -0
  154. package/dist/presentation/cli/keyboard-shortcuts.d.ts.map +1 -0
  155. package/dist/presentation/cli/keyboard-shortcuts.js +77 -0
  156. package/dist/presentation/cli/keyboard-shortcuts.js.map +1 -0
  157. package/dist/session.d.ts.map +1 -1
  158. package/dist/session.js +20 -0
  159. package/dist/session.js.map +1 -1
  160. package/dist/utils/version.js +2 -2
  161. package/dist/verification/backup.d.ts.map +1 -1
  162. package/dist/verification/backup.js +24 -3
  163. package/dist/verification/backup.js.map +1 -1
  164. package/dist/verification/compiler.js +47 -12
  165. package/dist/verification/compiler.js.map +1 -1
  166. package/package.json +1 -1
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Progress Indicator Utilities
3
+ * Provides progress indicators for long-running operations
4
+ *
5
+ * Features:
6
+ * - Progress bars for operations with known total
7
+ * - Spinners for operations with unknown duration
8
+ * - Context-aware progress messages
9
+ */
10
+ import { createSpinner, createProgressBar, colors } from '../../ui.js';
11
+ export class ProgressIndicator {
12
+ spinner = null;
13
+ progressBar = null;
14
+ operationStartTime = 0;
15
+ currentValue = 0;
16
+ /**
17
+ * Start progress indicator
18
+ */
19
+ start(options = {}) {
20
+ this.operationStartTime = Date.now();
21
+ this.currentValue = 0;
22
+ if (options.total && options.total > 0) {
23
+ // Use progress bar for operations with known total
24
+ const format = options.message
25
+ ? `${colors.dim(options.message)} |{bar}| ${colors.cyan('{percentage}%')} | {value}/{total}`
26
+ : undefined;
27
+ this.progressBar = createProgressBar(options.total, format);
28
+ this.progressBar.start(options.total, 0);
29
+ }
30
+ else {
31
+ // Use spinner for operations with unknown duration
32
+ const message = options.message || 'Processing...';
33
+ this.spinner = createSpinner(message);
34
+ this.spinner.start();
35
+ }
36
+ }
37
+ /**
38
+ * Update progress
39
+ */
40
+ update(value, message) {
41
+ this.currentValue = value;
42
+ if (this.progressBar) {
43
+ this.progressBar.update(value);
44
+ if (message) {
45
+ // Update progress bar format with new message
46
+ // Note: cli-progress doesn't support dynamic message updates easily
47
+ // So we'll just update the value
48
+ }
49
+ }
50
+ else if (this.spinner && message) {
51
+ this.spinner.text = colors.dim(message);
52
+ }
53
+ }
54
+ /**
55
+ * Increment progress
56
+ */
57
+ increment(delta = 1, message) {
58
+ this.update(this.currentValue + delta, message);
59
+ }
60
+ /**
61
+ * Stop progress indicator
62
+ */
63
+ stop(success = true, finalMessage) {
64
+ const duration = ((Date.now() - this.operationStartTime) / 1000).toFixed(2);
65
+ if (this.progressBar) {
66
+ this.progressBar.stop();
67
+ this.progressBar = null;
68
+ if (finalMessage) {
69
+ console.log(colors.dim(` ${finalMessage} (${duration}s)`));
70
+ }
71
+ }
72
+ else if (this.spinner) {
73
+ this.spinner.stop();
74
+ this.spinner = null;
75
+ if (finalMessage) {
76
+ const icon = success ? colors.green('✓') : colors.red('✗');
77
+ console.log(`${icon} ${finalMessage} (${duration}s)`);
78
+ }
79
+ }
80
+ }
81
+ /**
82
+ * Get elapsed time
83
+ */
84
+ getElapsedTime() {
85
+ return Date.now() - this.operationStartTime;
86
+ }
87
+ }
88
+ /**
89
+ * Create progress indicator for embedding search
90
+ */
91
+ export function createEmbeddingSearchProgress(total) {
92
+ const indicator = new ProgressIndicator();
93
+ indicator.start({
94
+ total,
95
+ message: 'Searching codebase',
96
+ showPercentage: true,
97
+ showCount: true,
98
+ });
99
+ return indicator;
100
+ }
101
+ /**
102
+ * Create progress indicator for plan generation
103
+ */
104
+ export function createPlanGenerationProgress() {
105
+ const indicator = new ProgressIndicator();
106
+ indicator.start({
107
+ message: 'Generating plan',
108
+ });
109
+ return indicator;
110
+ }
111
+ /**
112
+ * Create progress indicator for memory synthesis
113
+ */
114
+ export function createMemorySynthesisProgress() {
115
+ const indicator = new ProgressIndicator();
116
+ indicator.start({
117
+ message: 'Synthesizing memories',
118
+ });
119
+ return indicator;
120
+ }
121
+ //# sourceMappingURL=progress-indicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-indicator.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/progress-indicator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"progressive-disclosure.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/progressive-disclosure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;AAEnF,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,aAAa,EAAE,SAAS,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,YAAY,CAAuC;;IAM3D;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAItD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAe3C;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;QACpD,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,SAAS,CAAC;KAC5B;IAoCD;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,EAAE;IAqB9D;;OAEG;IACH,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,sBAAsB,EAAE;IAQrF;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ9D;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAa3D;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAMpD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQxC,OAAO,CAAC,yBAAyB;IA4EjC,OAAO,CAAC,qBAAqB;CAe9B"}
1
+ {"version":3,"file":"progressive-disclosure.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/progressive-disclosure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;AAEnF,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,aAAa,EAAE,SAAS,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,YAAY,CAAuC;;IAM3D;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAItD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAe3C;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;QACpD,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,SAAS,CAAC;KAC5B;IAoCD;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,EAAE;IAsB9D;;OAEG;IACH,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,sBAAsB,EAAE;IAQrF;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ9D;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAa3D;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAMpD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQxC,OAAO,CAAC,yBAAyB;IA4EjC,OAAO,CAAC,qBAAqB;CAe9B"}
@@ -82,7 +82,8 @@ export class ProgressiveDisclosure {
82
82
  getAvailableFeatures(userId) {
83
83
  const profile = this.getUserProfile(userId);
84
84
  const available = [];
85
- for (const feature of this.featureRegistry.values()) {
85
+ const features = Array.from(this.featureRegistry.values());
86
+ for (const feature of features) {
86
87
  const { show } = this.shouldShowFeature(userId, feature.featureId);
87
88
  if (show) {
88
89
  available.push(feature);
@@ -1 +1 @@
1
- {"version":3,"file":"progressive-disclosure.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/progressive-disclosure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyBH;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACxB,eAAe,GAAwC,IAAI,GAAG,EAAE,CAAC;IACjE,YAAY,GAA6B,IAAI,GAAG,EAAE,CAAC;IAE3D;QACE,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAA+B;QAC7C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,MAAc;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE;gBAC5B,MAAM;gBACN,KAAK,EAAE,UAAU;gBACjB,kBAAkB,EAAE,EAAE;gBACtB,YAAY,EAAE,IAAI,GAAG,EAAE;gBACvB,kBAAkB,EAAE,KAAK;gBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAc,EAAE,SAAiB;QAKjD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QACtD,CAAC;QAED,iCAAiC;QACjC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnD,OAAO;wBACL,IAAI,EAAE,KAAK;wBACX,MAAM,EAAE,sBAAsB,QAAQ,SAAS;qBAChD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,UAAU,GAAgB,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnF,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAErE,IAAI,cAAc,GAAG,kBAAkB,EAAE,CAAC;YACxC,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,YAAY,OAAO,CAAC,aAAa,mBAAmB,OAAO,CAAC,KAAK,GAAG;gBAC5E,cAAc,EAAE,OAAO,CAAC,aAAa;aACtC,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAc;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,SAAS,GAA6B,EAAE,CAAC;QAE/C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,IAAI,EAAE,CAAC;gBACT,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7B,sDAAsD;YACtD,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,MAAM,KAAK,MAAM;gBAAE,OAAO,MAAM,GAAG,MAAM,CAAC;YAC9C,OAAO,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,MAAc,EAAE,QAAgB,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAE9F,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,MAAc,EAAE,SAAiB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc,EAAE,SAAiB;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEjC,6BAA6B;QAC7B,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE9C,8BAA8B;QAC9B,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAc,EAAE,KAAgB;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,kBAAkB;IAEV,yBAAyB;QAC/B,4BAA4B;QAC5B,IAAI,CAAC,eAAe,CAAC;YACnB,SAAS,EAAE,cAAc;YACzB,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,OAAO;YACnB,aAAa,EAAE,UAAU;YACzB,WAAW,EAAE,8DAA8D;SAC5E,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC;YACnB,SAAS,EAAE,WAAW;YACtB,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,OAAO;YACnB,aAAa,EAAE,UAAU;YACzB,WAAW,EAAE,wDAAwD;SACtE,CAAC,CAAC;QAEH,mCAAmC;QACnC,IAAI,CAAC,eAAe,CAAC;YACnB,SAAS,EAAE,iBAAiB;YAC5B,WAAW,EAAE,oBAAoB;YACjC,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,cAAc;YAC7B,WAAW,EAAE,2CAA2C;YACxD,aAAa,EAAE,CAAC,WAAW,CAAC;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC;YACnB,SAAS,EAAE,aAAa;YACxB,WAAW,EAAE,yBAAyB;YACtC,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,cAAc;YAC7B,WAAW,EAAE,+CAA+C;YAC5D,aAAa,EAAE,CAAC,cAAc,CAAC;SAChC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,CAAC,eAAe,CAAC;YACnB,SAAS,EAAE,qBAAqB;YAChC,WAAW,EAAE,qBAAqB;YAClC,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,UAAU;YACzB,WAAW,EAAE,0CAA0C;YACvD,aAAa,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC;YACnB,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,uBAAuB;YACpC,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,UAAU;YACzB,WAAW,EAAE,yCAAyC;YACtD,aAAa,EAAE,CAAC,qBAAqB,CAAC;SACvC,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,CAAC,eAAe,CAAC;YACnB,SAAS,EAAE,mBAAmB;YAC9B,WAAW,EAAE,mBAAmB;YAChC,UAAU,EAAE,cAAc;YAC1B,aAAa,EAAE,QAAQ;YACvB,WAAW,EAAE,sDAAsD;YACnE,aAAa,EAAE,CAAC,qBAAqB,CAAC;SACvC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC;YACnB,SAAS,EAAE,qBAAqB;YAChC,WAAW,EAAE,qBAAqB;YAClC,UAAU,EAAE,cAAc;YAC1B,aAAa,EAAE,QAAQ;YACvB,WAAW,EAAE,wCAAwC;YACrD,aAAa,EAAE,CAAC,UAAU,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,MAAc;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;QAErD,oBAAoB;QACpB,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,IAAI,kBAAkB,IAAI,CAAC,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;YAChF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,KAAK,cAAc,IAAI,kBAAkB,IAAI,CAAC,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;YAC3F,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,IAAI,kBAAkB,IAAI,EAAE,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;YACzF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"progressive-disclosure.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/progressive-disclosure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Review Checkpoint UI
3
+ * Shows summary before applying edits - Task 5.1
4
+ */
5
+ export interface EditSummary {
6
+ filepath: string;
7
+ linesAdded: number;
8
+ linesRemoved: number;
9
+ linesChanged: number;
10
+ diff?: string;
11
+ }
12
+ export interface ReviewCheckpointInfo {
13
+ filesToModify: EditSummary[];
14
+ securityScanPassed: boolean;
15
+ compilationValid: boolean;
16
+ riskLevel: 'low' | 'medium' | 'high' | 'critical';
17
+ uncertainty?: number;
18
+ }
19
+ /**
20
+ * Display review checkpoint before applying edits
21
+ */
22
+ export declare function displayReviewCheckpoint(info: ReviewCheckpointInfo): void;
23
+ /**
24
+ * Calculate diff summary from old and new content
25
+ */
26
+ export declare function calculateDiffSummary(oldContent: string, newContent: string): {
27
+ linesAdded: number;
28
+ linesRemoved: number;
29
+ linesChanged: number;
30
+ };
31
+ /**
32
+ * Format edit summary for display
33
+ */
34
+ export declare function formatEditSummary(summary: EditSummary): string;
35
+ //# sourceMappingURL=review-checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-checkpoint.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/review-checkpoint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAyExE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAwCpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAc9D"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Review Checkpoint UI
3
+ * Shows summary before applying edits - Task 5.1
4
+ */
5
+ import { colors, separator, newline, success, warning, error, createTable, } from '../../ui.js';
6
+ /**
7
+ * Display review checkpoint before applying edits
8
+ */
9
+ export function displayReviewCheckpoint(info) {
10
+ newline();
11
+ console.log(separator('═', 80));
12
+ console.log(colors.bold('📝 Review Changes'));
13
+ console.log(separator('═', 80));
14
+ newline();
15
+ // Files summary
16
+ console.log(colors.bold(`Files to modify: ${info.filesToModify.length}`));
17
+ newline();
18
+ // File details table
19
+ const fileRows = info.filesToModify.map(file => [
20
+ file.filepath,
21
+ `${file.linesAdded} added, ${file.linesRemoved} removed`,
22
+ file.linesChanged > 0 ? `${file.linesChanged} changed` : '-',
23
+ ]);
24
+ const fileTable = createTable(['File', 'Changes', 'Modified Lines'], fileRows);
25
+ console.log(fileTable.toString());
26
+ newline();
27
+ // Status indicators
28
+ console.log(colors.bold('Status:'));
29
+ const statusRows = [
30
+ [
31
+ 'Security Scan',
32
+ info.securityScanPassed ? success('✓ Passed') : error('✗ Failed'),
33
+ ],
34
+ [
35
+ 'Compilation',
36
+ info.compilationValid ? success('✓ Valid') : error('✗ Invalid'),
37
+ ],
38
+ ];
39
+ const statusTable = createTable(['Check', 'Status'], statusRows);
40
+ console.log(statusTable.toString());
41
+ newline();
42
+ // Risk level indicator
43
+ const riskColors = {
44
+ low: colors.green,
45
+ medium: colors.yellow,
46
+ high: colors.yellow,
47
+ critical: colors.red,
48
+ };
49
+ const riskLabels = {
50
+ low: 'Low Risk',
51
+ medium: 'Medium Risk',
52
+ high: 'High Risk',
53
+ critical: 'Critical Risk',
54
+ };
55
+ console.log(colors.bold('Risk Level: ') +
56
+ riskColors[info.riskLevel](riskLabels[info.riskLevel]));
57
+ if (info.uncertainty && info.uncertainty > 0.5) {
58
+ const percent = (info.uncertainty * 100).toFixed(0);
59
+ console.log(warning(`⚠️ Uncertainty: ${percent}% - Please verify output carefully`));
60
+ }
61
+ newline();
62
+ console.log(separator('═', 80));
63
+ newline();
64
+ }
65
+ /**
66
+ * Calculate diff summary from old and new content
67
+ */
68
+ export function calculateDiffSummary(oldContent, newContent) {
69
+ const oldLines = oldContent.split('\n');
70
+ const newLines = newContent.split('\n');
71
+ let linesAdded = 0;
72
+ let linesRemoved = 0;
73
+ let linesChanged = 0;
74
+ // Simple line-based diff calculation
75
+ const oldSet = new Set(oldLines);
76
+ const newSet = new Set(newLines);
77
+ // Count added lines (in new but not in old)
78
+ for (const line of newLines) {
79
+ if (!oldSet.has(line)) {
80
+ linesAdded++;
81
+ }
82
+ }
83
+ // Count removed lines (in old but not in new)
84
+ for (const line of oldLines) {
85
+ if (!newSet.has(line)) {
86
+ linesRemoved++;
87
+ }
88
+ }
89
+ // Changed lines = lines that exist in both but at different positions
90
+ // Simplified: count lines that are in both but position differs
91
+ const minLength = Math.min(oldLines.length, newLines.length);
92
+ for (let i = 0; i < minLength; i++) {
93
+ if (oldLines[i] !== newLines[i] && oldSet.has(newLines[i])) {
94
+ linesChanged++;
95
+ }
96
+ }
97
+ return {
98
+ linesAdded,
99
+ linesRemoved,
100
+ linesChanged,
101
+ };
102
+ }
103
+ /**
104
+ * Format edit summary for display
105
+ */
106
+ export function formatEditSummary(summary) {
107
+ const changes = [];
108
+ if (summary.linesAdded > 0) {
109
+ changes.push(`${summary.linesAdded} added`);
110
+ }
111
+ if (summary.linesRemoved > 0) {
112
+ changes.push(`${summary.linesRemoved} removed`);
113
+ }
114
+ if (summary.linesChanged > 0) {
115
+ changes.push(`${summary.linesChanged} changed`);
116
+ }
117
+ return changes.length > 0 ? changes.join(', ') : 'No changes';
118
+ }
119
+ //# sourceMappingURL=review-checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-checkpoint.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/review-checkpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Infrastructure: Staged Feature Introduction
3
+ *
4
+ * UI utilities for Progressive Disclosure integration in CLI commands
5
+ * Task 2.3: Show feature levels and gate features based on user experience
6
+ */
7
+ import { ProgressiveDisclosure, type UserLevel, type FeatureCapability } from './progressive-disclosure.js';
8
+ /**
9
+ * Display feature level indicator
10
+ */
11
+ export declare function displayFeatureLevel(capability: FeatureCapability): string;
12
+ /**
13
+ * Display user level indicator
14
+ */
15
+ export declare function displayUserLevel(level: UserLevel): string;
16
+ /**
17
+ * Display feature gating message when feature is not available
18
+ */
19
+ export declare function displayFeatureGatingMessage(featureId: string, featureName: string, reason: string, suggestedLevel?: UserLevel, currentLevel?: UserLevel): void;
20
+ /**
21
+ * Display feature availability message
22
+ */
23
+ export declare function displayFeatureAvailability(featureName: string, capability: FeatureCapability, userLevel: UserLevel): void;
24
+ /**
25
+ * Display upgrade notification when user levels up
26
+ */
27
+ export declare function displayLevelUpNotification(oldLevel: UserLevel, newLevel: UserLevel, newFeatures: Array<{
28
+ name: string;
29
+ capability: FeatureCapability;
30
+ }>): void;
31
+ /**
32
+ * Check if feature is available and show appropriate message
33
+ */
34
+ export declare function checkFeatureAccess(progressiveDisclosure: ProgressiveDisclosure, userId: string, featureId: string): {
35
+ available: boolean;
36
+ shouldContinue: boolean;
37
+ };
38
+ /**
39
+ * Get features summary for user
40
+ */
41
+ export declare function getFeaturesSummary(progressiveDisclosure: ProgressiveDisclosure, userId: string): {
42
+ userLevel: UserLevel;
43
+ totalFeatures: number;
44
+ availableFeatures: number;
45
+ nextLevelFeatures: number;
46
+ };
47
+ //# sourceMappingURL=staged-feature-intro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staged-feature-intro.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/staged-feature-intro.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,qBAAqB,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE5G;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,GAAG,MAAM,CAmBzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAUzD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,SAAS,EAC1B,YAAY,CAAC,EAAE,SAAS,GACvB,IAAI,CAuBN;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,SAAS,GACnB,IAAI,CAQN;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,WAAW,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAA;CAAE,CAAC,GAClE,IAAI,CAqBN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,qBAAqB,EAAE,qBAAqB,EAC5C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CAkCjD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,qBAAqB,EAAE,qBAAqB,EAC5C,MAAM,EAAE,MAAM,GACb;IACD,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAuBA"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Infrastructure: Staged Feature Introduction
3
+ *
4
+ * UI utilities for Progressive Disclosure integration in CLI commands
5
+ * Task 2.3: Show feature levels and gate features based on user experience
6
+ */
7
+ import { colors, separator } from '../../ui.js';
8
+ /**
9
+ * Display feature level indicator
10
+ */
11
+ export function displayFeatureLevel(capability) {
12
+ const levelColors = {
13
+ basic: colors.green,
14
+ standard: colors.blue,
15
+ advanced: colors.yellow,
16
+ experimental: colors.magenta,
17
+ };
18
+ const levelLabels = {
19
+ basic: 'Basic',
20
+ standard: 'Standard',
21
+ advanced: 'Advanced',
22
+ experimental: 'Experimental',
23
+ };
24
+ const colorFn = levelColors[capability] || colors.gray;
25
+ const label = levelLabels[capability] || capability;
26
+ return colorFn(`[${label}]`);
27
+ }
28
+ /**
29
+ * Display user level indicator
30
+ */
31
+ export function displayUserLevel(level) {
32
+ const levelColors = {
33
+ beginner: colors.cyan,
34
+ intermediate: colors.blue,
35
+ advanced: colors.yellow,
36
+ expert: colors.magenta,
37
+ };
38
+ const colorFn = levelColors[level] || colors.gray;
39
+ return colorFn(level.charAt(0).toUpperCase() + level.slice(1));
40
+ }
41
+ /**
42
+ * Display feature gating message when feature is not available
43
+ */
44
+ export function displayFeatureGatingMessage(featureId, featureName, reason, suggestedLevel, currentLevel) {
45
+ console.log('');
46
+ console.log(separator('═', 80));
47
+ console.log(colors.yellow(`⚠️ Feature Unavailable: ${featureName}`));
48
+ console.log(separator('═', 80));
49
+ console.log('');
50
+ console.log(colors.dim(`Reason: ${reason}`));
51
+ if (suggestedLevel && currentLevel) {
52
+ console.log('');
53
+ console.log(colors.bold('Upgrade Path:'));
54
+ console.log(` Current Level: ${displayUserLevel(currentLevel)}`);
55
+ console.log(` Required Level: ${displayUserLevel(suggestedLevel)}`);
56
+ console.log('');
57
+ console.log(colors.dim('Keep using Codehere to unlock more features!'));
58
+ console.log(colors.dim(` • Use basic features to progress to intermediate`));
59
+ console.log(colors.dim(` • Explore new capabilities to advance your level`));
60
+ }
61
+ console.log('');
62
+ console.log(separator('═', 80));
63
+ console.log('');
64
+ }
65
+ /**
66
+ * Display feature availability message
67
+ */
68
+ export function displayFeatureAvailability(featureName, capability, userLevel) {
69
+ const levelBadge = displayFeatureLevel(capability);
70
+ const userBadge = displayUserLevel(userLevel);
71
+ // Only show for non-basic features to reduce noise
72
+ if (capability !== 'basic') {
73
+ console.log(colors.dim(`${levelBadge} Feature: ${featureName} (${userBadge} level)`));
74
+ }
75
+ }
76
+ /**
77
+ * Display upgrade notification when user levels up
78
+ */
79
+ export function displayLevelUpNotification(oldLevel, newLevel, newFeatures) {
80
+ console.log('');
81
+ console.log(separator('═', 80));
82
+ console.log(colors.green(`🎉 Level Up! You're now ${displayUserLevel(newLevel)}`));
83
+ console.log(separator('═', 80));
84
+ console.log('');
85
+ if (newFeatures.length > 0) {
86
+ console.log(colors.bold('New Features Unlocked:'));
87
+ console.log('');
88
+ newFeatures.forEach(feature => {
89
+ const badge = displayFeatureLevel(feature.capability);
90
+ console.log(` ${badge} ${feature.name}`);
91
+ });
92
+ console.log('');
93
+ }
94
+ console.log(colors.dim('Keep exploring to unlock even more advanced capabilities!'));
95
+ console.log('');
96
+ console.log(separator('═', 80));
97
+ console.log('');
98
+ }
99
+ /**
100
+ * Check if feature is available and show appropriate message
101
+ */
102
+ export function checkFeatureAccess(progressiveDisclosure, userId, featureId) {
103
+ const check = progressiveDisclosure.shouldShowFeature(userId, featureId);
104
+ if (!check.show) {
105
+ const profile = progressiveDisclosure.getUserProfile(userId);
106
+ // Get feature from available features to find name
107
+ const availableFeatures = progressiveDisclosure.getAvailableFeatures(userId);
108
+ const allFeatures = [...availableFeatures];
109
+ const unavailableFeatures = progressiveDisclosure.getNextSuggestedFeatures(userId, 100);
110
+ const feature = [...allFeatures, ...unavailableFeatures].find(f => f.featureId === featureId);
111
+ if (feature) {
112
+ displayFeatureGatingMessage(featureId, feature.featureName, check.reason || 'Feature not available', check.suggestedLevel, profile.level);
113
+ }
114
+ else {
115
+ // Fallback if feature not found
116
+ displayFeatureGatingMessage(featureId, featureId.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase()), check.reason || 'Feature not available', check.suggestedLevel, profile.level);
117
+ }
118
+ return { available: false, shouldContinue: false };
119
+ }
120
+ return { available: true, shouldContinue: true };
121
+ }
122
+ /**
123
+ * Get features summary for user
124
+ */
125
+ export function getFeaturesSummary(progressiveDisclosure, userId) {
126
+ const profile = progressiveDisclosure.getUserProfile(userId);
127
+ const available = progressiveDisclosure.getAvailableFeatures(userId);
128
+ const allFeatures = Array.from(progressiveDisclosure.featureRegistry?.values() || []);
129
+ // Count features for next level
130
+ const levelOrder = ['beginner', 'intermediate', 'advanced', 'expert'];
131
+ const currentIndex = levelOrder.indexOf(profile.level);
132
+ const nextLevel = currentIndex < levelOrder.length - 1 ? levelOrder[currentIndex + 1] : null;
133
+ let nextLevelFeatures = 0;
134
+ if (nextLevel) {
135
+ nextLevelFeatures = allFeatures.filter((f) => f.requiredLevel === nextLevel).length;
136
+ }
137
+ return {
138
+ userLevel: profile.level,
139
+ totalFeatures: allFeatures.length,
140
+ availableFeatures: available.length,
141
+ nextLevelFeatures,
142
+ };
143
+ }
144
+ //# sourceMappingURL=staged-feature-intro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staged-feature-intro.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/staged-feature-intro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Syntax Highlighter for Terminal
3
+ * Provides basic syntax highlighting for code snippets using chalk
4
+ *
5
+ * Lightweight implementation - no heavy dependencies
6
+ * Supports: TypeScript, JavaScript, Python, JSON, YAML, Markdown, Shell
7
+ */
8
+ export type SupportedLanguage = 'typescript' | 'javascript' | 'python' | 'json' | 'yaml' | 'markdown' | 'shell' | 'bash' | 'text';
9
+ /**
10
+ * Detect language from file extension
11
+ */
12
+ export declare function detectLanguage(filepath: string): SupportedLanguage;
13
+ /**
14
+ * Highlight code based on language
15
+ */
16
+ export declare function highlightCode(code: string, language?: SupportedLanguage | string): string;
17
+ /**
18
+ * Format code block with syntax highlighting
19
+ */
20
+ export declare function formatCodeBlockWithHighlight(code: string, language?: string, filepath?: string): string;
21
+ //# sourceMappingURL=syntax-highlighter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntax-highlighter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/syntax-highlighter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,MAAM,GACN,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,CAAC;AAEX;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAoBlE;AAsKD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAsCzF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAyBR"}