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.
- package/dist/application/agents/multi-agent-orchestrator.d.ts +1 -0
- package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -1
- package/dist/application/agents/multi-agent-orchestrator.js.map +1 -1
- package/dist/application/services/dependency-container.d.ts +3 -0
- package/dist/application/services/dependency-container.d.ts.map +1 -1
- package/dist/application/services/dependency-container.js +24 -0
- package/dist/application/services/dependency-container.js.map +1 -1
- package/dist/application/use-cases/ask-question-use-case.d.ts +12 -0
- package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -1
- package/dist/application/use-cases/ask-question-use-case.js +129 -9
- package/dist/application/use-cases/ask-question-use-case.js.map +1 -1
- package/dist/application/use-cases/edit-file-use-case.d.ts.map +1 -1
- package/dist/application/use-cases/edit-file-use-case.js +70 -3
- package/dist/application/use-cases/edit-file-use-case.js.map +1 -1
- package/dist/application/use-cases/planning-use-case.d.ts.map +1 -1
- package/dist/application/use-cases/planning-use-case.js +10 -1
- package/dist/application/use-cases/planning-use-case.js.map +1 -1
- package/dist/application/use-cases/react-orchestration-use-case.d.ts.map +1 -1
- package/dist/application/use-cases/react-orchestration-use-case.js +6 -2
- package/dist/application/use-cases/react-orchestration-use-case.js.map +1 -1
- package/dist/domain/services/react-loop.d.ts +8 -0
- package/dist/domain/services/react-loop.d.ts.map +1 -1
- package/dist/domain/services/react-loop.js +82 -6
- package/dist/domain/services/react-loop.js.map +1 -1
- package/dist/formatter.d.ts +2 -2
- package/dist/formatter.d.ts.map +1 -1
- package/dist/formatter.js +30 -17
- package/dist/formatter.js.map +1 -1
- package/dist/index.js +134 -15
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/ai/cohere-ai-service.d.ts +3 -1
- package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -1
- package/dist/infrastructure/ai/cohere-ai-service.js +51 -4
- package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -1
- package/dist/infrastructure/cache/query-result-cache.d.ts +68 -0
- package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -0
- package/dist/infrastructure/cache/query-result-cache.js +138 -0
- package/dist/infrastructure/cache/query-result-cache.js.map +1 -0
- package/dist/infrastructure/cache/security-scan-cache.d.ts +57 -0
- package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -0
- package/dist/infrastructure/cache/security-scan-cache.js +124 -0
- package/dist/infrastructure/cache/security-scan-cache.js.map +1 -0
- package/dist/infrastructure/completion/bash-completion.d.ts +8 -0
- package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -0
- package/dist/infrastructure/completion/bash-completion.js +101 -0
- package/dist/infrastructure/completion/bash-completion.js.map +1 -0
- package/dist/infrastructure/completion/completion-generator.d.ts +42 -0
- package/dist/infrastructure/completion/completion-generator.d.ts.map +1 -0
- package/dist/infrastructure/completion/completion-generator.js +184 -0
- package/dist/infrastructure/completion/completion-generator.js.map +1 -0
- package/dist/infrastructure/completion/fish-completion.d.ts +8 -0
- package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -0
- package/dist/infrastructure/completion/fish-completion.js +65 -0
- package/dist/infrastructure/completion/fish-completion.js.map +1 -0
- package/dist/infrastructure/completion/zsh-completion.d.ts +8 -0
- package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -0
- package/dist/infrastructure/completion/zsh-completion.js +85 -0
- package/dist/infrastructure/completion/zsh-completion.js.map +1 -0
- package/dist/infrastructure/context/context-compressor.d.ts +94 -0
- package/dist/infrastructure/context/context-compressor.d.ts.map +1 -0
- package/dist/infrastructure/context/context-compressor.js +329 -0
- package/dist/infrastructure/context/context-compressor.js.map +1 -0
- package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -1
- package/dist/infrastructure/governance/policy-as-code.js +18 -3
- package/dist/infrastructure/governance/policy-as-code.js.map +1 -1
- package/dist/infrastructure/observability/execution-tracer.d.ts +5 -2
- package/dist/infrastructure/observability/execution-tracer.d.ts.map +1 -1
- package/dist/infrastructure/observability/execution-tracer.js +45 -8
- package/dist/infrastructure/observability/execution-tracer.js.map +1 -1
- package/dist/infrastructure/security/ai-sast-scanner.d.ts +4 -0
- package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +1 -1
- package/dist/infrastructure/security/ai-sast-scanner.js +82 -4
- package/dist/infrastructure/security/ai-sast-scanner.js.map +1 -1
- package/dist/infrastructure/security/enhanced-security-gate.d.ts +2 -0
- package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +1 -1
- package/dist/infrastructure/security/enhanced-security-gate.js +74 -15
- package/dist/infrastructure/security/enhanced-security-gate.js.map +1 -1
- package/dist/infrastructure/storage/plan-repository.d.ts +38 -0
- package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/plan-repository.js +133 -0
- package/dist/infrastructure/storage/plan-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +11 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -1
- package/dist/infrastructure/storage/sqlite-embedding-repository.js +121 -6
- package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -1
- package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +24 -0
- package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -0
- package/dist/infrastructure/ux/contextual-feature-discovery.js +144 -0
- package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -0
- package/dist/infrastructure/ux/expectation-management.d.ts +33 -0
- package/dist/infrastructure/ux/expectation-management.d.ts.map +1 -1
- package/dist/infrastructure/ux/expectation-management.js +138 -4
- package/dist/infrastructure/ux/expectation-management.js.map +1 -1
- package/dist/infrastructure/ux/feature-discovery.d.ts +47 -0
- package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -0
- package/dist/infrastructure/ux/feature-discovery.js +190 -0
- package/dist/infrastructure/ux/feature-discovery.js.map +1 -0
- package/dist/infrastructure/ux/hitl-review-portal.d.ts +47 -0
- package/dist/infrastructure/ux/hitl-review-portal.d.ts.map +1 -0
- package/dist/infrastructure/ux/hitl-review-portal.js +225 -0
- package/dist/infrastructure/ux/hitl-review-portal.js.map +1 -0
- package/dist/infrastructure/ux/progress-indicator.d.ts +54 -0
- package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -0
- package/dist/infrastructure/ux/progress-indicator.js +121 -0
- package/dist/infrastructure/ux/progress-indicator.js.map +1 -0
- package/dist/infrastructure/ux/progressive-disclosure.d.ts.map +1 -1
- package/dist/infrastructure/ux/progressive-disclosure.js +2 -1
- package/dist/infrastructure/ux/progressive-disclosure.js.map +1 -1
- package/dist/infrastructure/ux/review-checkpoint.d.ts +35 -0
- package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -0
- package/dist/infrastructure/ux/review-checkpoint.js +119 -0
- package/dist/infrastructure/ux/review-checkpoint.js.map +1 -0
- package/dist/infrastructure/ux/staged-feature-intro.d.ts +47 -0
- package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -0
- package/dist/infrastructure/ux/staged-feature-intro.js +144 -0
- package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -0
- package/dist/infrastructure/ux/syntax-highlighter.d.ts +21 -0
- package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -0
- package/dist/infrastructure/ux/syntax-highlighter.js +172 -0
- package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -0
- package/dist/infrastructure/xai/cot-visualizer.d.ts +1 -0
- package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -1
- package/dist/infrastructure/xai/cot-visualizer.js +57 -10
- package/dist/infrastructure/xai/cot-visualizer.js.map +1 -1
- package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/ask-command.js +68 -11
- package/dist/presentation/cli/commands/ask-command.js.map +1 -1
- package/dist/presentation/cli/commands/orchestrate-command.d.ts +1 -0
- package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/orchestrate-command.js +35 -1
- package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -1
- package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/plan-command.js +57 -5
- package/dist/presentation/cli/commands/plan-command.js.map +1 -1
- package/dist/presentation/cli/commands/react-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/react-command.js +95 -15
- package/dist/presentation/cli/commands/react-command.js.map +1 -1
- package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/setup-command.js +67 -12
- package/dist/presentation/cli/commands/setup-command.js.map +1 -1
- package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/smart-command.js +136 -18
- package/dist/presentation/cli/commands/smart-command.js.map +1 -1
- package/dist/presentation/cli/commands/trace-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/trace-command.js +9 -5
- package/dist/presentation/cli/commands/trace-command.js.map +1 -1
- package/dist/presentation/cli/commands/undo-command.js +15 -6
- package/dist/presentation/cli/commands/undo-command.js.map +1 -1
- package/dist/presentation/cli/error-display.d.ts +2 -0
- package/dist/presentation/cli/error-display.d.ts.map +1 -1
- package/dist/presentation/cli/error-display.js +177 -2
- package/dist/presentation/cli/error-display.js.map +1 -1
- package/dist/presentation/cli/keyboard-shortcuts.d.ts +27 -0
- package/dist/presentation/cli/keyboard-shortcuts.d.ts.map +1 -0
- package/dist/presentation/cli/keyboard-shortcuts.js +77 -0
- package/dist/presentation/cli/keyboard-shortcuts.js.map +1 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +20 -0
- package/dist/session.js.map +1 -1
- package/dist/utils/version.js +2 -2
- package/dist/verification/backup.d.ts.map +1 -1
- package/dist/verification/backup.js +24 -3
- package/dist/verification/backup.js.map +1 -1
- package/dist/verification/compiler.js +47 -12
- package/dist/verification/compiler.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature Discovery System
|
|
3
|
+
* Shows contextual feature discovery prompts based on user activity
|
|
4
|
+
*/
|
|
5
|
+
export interface OnboardingState {
|
|
6
|
+
onboardingComplete: boolean;
|
|
7
|
+
onboardingDate?: string;
|
|
8
|
+
commandCount: number;
|
|
9
|
+
featuresDiscovered: string[];
|
|
10
|
+
lastDiscoveryShown?: string;
|
|
11
|
+
lastDiscoveryDate?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface FeatureDiscovery {
|
|
14
|
+
id: string;
|
|
15
|
+
trigger: {
|
|
16
|
+
commandCount?: number;
|
|
17
|
+
commands?: string[];
|
|
18
|
+
condition?: (state: OnboardingState) => boolean;
|
|
19
|
+
};
|
|
20
|
+
message: string;
|
|
21
|
+
features: Array<{
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
command: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Track command usage
|
|
29
|
+
*/
|
|
30
|
+
export declare function trackCommand(command: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Check if feature discovery should be shown
|
|
33
|
+
*/
|
|
34
|
+
export declare function shouldShowFeatureDiscovery(command: string): FeatureDiscovery | null;
|
|
35
|
+
/**
|
|
36
|
+
* Mark feature discovery as shown
|
|
37
|
+
*/
|
|
38
|
+
export declare function markFeatureDiscoveryShown(discoveryId: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Check if user is first-time (onboarding not complete)
|
|
41
|
+
*/
|
|
42
|
+
export declare function isFirstTimeUser(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Get command count for analytics
|
|
45
|
+
*/
|
|
46
|
+
export declare function getCommandCount(): number;
|
|
47
|
+
//# sourceMappingURL=feature-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-discovery.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/feature-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE;QACP,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC;KACjD,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzE;AAiHD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAUlD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,IAAI,CA6CzB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAKnE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAGxC"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature Discovery System
|
|
3
|
+
* Shows contextual feature discovery prompts based on user activity
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync, existsSync, writeFileSync, mkdirSync } from 'fs';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
const DISCOVERY_FEATURES = [
|
|
8
|
+
{
|
|
9
|
+
id: 'basic-commands',
|
|
10
|
+
trigger: { commandCount: 3 },
|
|
11
|
+
message: 'You\'ve mastered the basics! Try these next:',
|
|
12
|
+
features: [
|
|
13
|
+
{
|
|
14
|
+
name: 'Multi-agent Orchestration',
|
|
15
|
+
description: 'Plan and execute complex multi-step tasks',
|
|
16
|
+
command: 'codehere orchestrate "your goal"',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'ReAct Reasoning',
|
|
20
|
+
description: 'Debug and solve complex problems step-by-step',
|
|
21
|
+
command: 'codehere react "your problem"',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'Planning',
|
|
25
|
+
description: 'Generate hierarchical plans for large tasks',
|
|
26
|
+
command: 'codehere plan "your goal"',
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: 'advanced-features',
|
|
32
|
+
trigger: { commandCount: 5 },
|
|
33
|
+
message: 'Ready for advanced features? Discover more:',
|
|
34
|
+
features: [
|
|
35
|
+
{
|
|
36
|
+
name: 'Execution Tracing',
|
|
37
|
+
description: 'View and reproduce agent execution traces',
|
|
38
|
+
command: 'codehere trace show <runId>',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'Knowledge Management',
|
|
42
|
+
description: 'Query and manage preserved knowledge',
|
|
43
|
+
command: 'codehere knowledge query "your query"',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'Learning Dashboard',
|
|
47
|
+
description: 'View patterns and insights learned',
|
|
48
|
+
command: 'codehere learning overview',
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'config-management',
|
|
54
|
+
trigger: { commands: ['ask', 'explain', 'edit'] },
|
|
55
|
+
message: 'Customize your experience:',
|
|
56
|
+
features: [
|
|
57
|
+
{
|
|
58
|
+
name: 'Configuration',
|
|
59
|
+
description: 'Manage preferences and settings',
|
|
60
|
+
command: 'codehere config',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'Auto-completion',
|
|
64
|
+
description: 'Install shell completion for faster commands',
|
|
65
|
+
command: 'codehere completion bash',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
/**
|
|
71
|
+
* Get onboarding state from file
|
|
72
|
+
*/
|
|
73
|
+
function getOnboardingState() {
|
|
74
|
+
try {
|
|
75
|
+
const configDir = join(process.cwd(), 'data');
|
|
76
|
+
const onboardingPath = join(configDir, 'onboarding.json');
|
|
77
|
+
if (existsSync(onboardingPath)) {
|
|
78
|
+
const state = JSON.parse(readFileSync(onboardingPath, 'utf-8'));
|
|
79
|
+
return {
|
|
80
|
+
onboardingComplete: state.onboardingComplete || false,
|
|
81
|
+
onboardingDate: state.onboardingDate,
|
|
82
|
+
commandCount: state.commandCount || 0,
|
|
83
|
+
featuresDiscovered: state.featuresDiscovered || [],
|
|
84
|
+
lastDiscoveryShown: state.lastDiscoveryShown,
|
|
85
|
+
lastDiscoveryDate: state.lastDiscoveryDate,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Ignore errors
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
onboardingComplete: false,
|
|
94
|
+
commandCount: 0,
|
|
95
|
+
featuresDiscovered: [],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Save onboarding state
|
|
100
|
+
*/
|
|
101
|
+
function saveOnboardingState(state) {
|
|
102
|
+
try {
|
|
103
|
+
const configDir = join(process.cwd(), 'data');
|
|
104
|
+
if (!existsSync(configDir)) {
|
|
105
|
+
mkdirSync(configDir, { recursive: true });
|
|
106
|
+
}
|
|
107
|
+
const onboardingPath = join(configDir, 'onboarding.json');
|
|
108
|
+
writeFileSync(onboardingPath, JSON.stringify(state, null, 2));
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// Ignore errors - non-critical
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Track command usage
|
|
116
|
+
*/
|
|
117
|
+
export function trackCommand(command) {
|
|
118
|
+
const state = getOnboardingState();
|
|
119
|
+
state.commandCount = (state.commandCount || 0) + 1;
|
|
120
|
+
// Track feature discovery
|
|
121
|
+
if (!state.featuresDiscovered.includes(command)) {
|
|
122
|
+
state.featuresDiscovered.push(command);
|
|
123
|
+
}
|
|
124
|
+
saveOnboardingState(state);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Check if feature discovery should be shown
|
|
128
|
+
*/
|
|
129
|
+
export function shouldShowFeatureDiscovery(command) {
|
|
130
|
+
const state = getOnboardingState();
|
|
131
|
+
// Don't show if onboarding not complete
|
|
132
|
+
if (!state.onboardingComplete) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
// Don't show discovery too frequently (once per day max)
|
|
136
|
+
const lastDate = state.lastDiscoveryDate;
|
|
137
|
+
if (lastDate) {
|
|
138
|
+
const lastShown = new Date(lastDate);
|
|
139
|
+
const now = new Date();
|
|
140
|
+
const daysSince = (now.getTime() - lastShown.getTime()) / (1000 * 60 * 60 * 24);
|
|
141
|
+
if (daysSince < 1) {
|
|
142
|
+
return null; // Already shown today
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Check each discovery feature
|
|
146
|
+
for (const discovery of DISCOVERY_FEATURES) {
|
|
147
|
+
// Skip if already shown
|
|
148
|
+
if (state.lastDiscoveryShown === discovery.id) {
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
const trigger = discovery.trigger;
|
|
152
|
+
// Check command count trigger
|
|
153
|
+
if (trigger.commandCount && state.commandCount >= trigger.commandCount) {
|
|
154
|
+
return discovery;
|
|
155
|
+
}
|
|
156
|
+
// Check commands trigger
|
|
157
|
+
if (trigger.commands && trigger.commands.includes(command)) {
|
|
158
|
+
return discovery;
|
|
159
|
+
}
|
|
160
|
+
// Check custom condition
|
|
161
|
+
if (trigger.condition && trigger.condition(state)) {
|
|
162
|
+
return discovery;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Mark feature discovery as shown
|
|
169
|
+
*/
|
|
170
|
+
export function markFeatureDiscoveryShown(discoveryId) {
|
|
171
|
+
const state = getOnboardingState();
|
|
172
|
+
state.lastDiscoveryShown = discoveryId;
|
|
173
|
+
state.lastDiscoveryDate = new Date().toISOString();
|
|
174
|
+
saveOnboardingState(state);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Check if user is first-time (onboarding not complete)
|
|
178
|
+
*/
|
|
179
|
+
export function isFirstTimeUser() {
|
|
180
|
+
const state = getOnboardingState();
|
|
181
|
+
return !state.onboardingComplete;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get command count for analytics
|
|
185
|
+
*/
|
|
186
|
+
export function getCommandCount() {
|
|
187
|
+
const state = getOnboardingState();
|
|
188
|
+
return state.commandCount || 0;
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=feature-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-discovery.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/feature-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAsB5B,MAAM,kBAAkB,GAAuB;IAC7C;QACE,EAAE,EAAE,gBAAgB;QACpB,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE;QAC5B,OAAO,EAAE,8CAA8C;QACvD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,2BAA2B;gBACjC,WAAW,EAAE,2CAA2C;gBACxD,OAAO,EAAE,kCAAkC;aAC5C;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,+CAA+C;gBAC5D,OAAO,EAAE,+BAA+B;aACzC;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,6CAA6C;gBAC1D,OAAO,EAAE,2BAA2B;aACrC;SACF;KACF;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE;QAC5B,OAAO,EAAE,6CAA6C;QACtD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,2CAA2C;gBACxD,OAAO,EAAE,6BAA6B;aACvC;YACD;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,sCAAsC;gBACnD,OAAO,EAAE,uCAAuC;aACjD;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,4BAA4B;aACtC;SACF;KACF;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE;QACjD,OAAO,EAAE,4BAA4B;QACrC,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,iCAAiC;gBAC9C,OAAO,EAAE,iBAAiB;aAC3B;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,8CAA8C;gBAC3D,OAAO,EAAE,0BAA0B;aACpC;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAE1D,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;YAChE,OAAO;gBACL,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK;gBACrD,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC;gBACrC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,EAAE;gBAClD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;gBAC5C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;aAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;IAED,OAAO;QACL,kBAAkB,EAAE,KAAK;QACzB,YAAY,EAAE,CAAC;QACf,kBAAkB,EAAE,EAAE;KACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAsB;IACjD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC1D,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,KAAK,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAEnD,0BAA0B;IAC1B,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAe;IAEf,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IAEnC,wCAAwC;IACxC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yDAAyD;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACzC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAChF,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,CAAC,sBAAsB;QACrC,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;QAC3C,wBAAwB;QACxB,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,EAAE,EAAE,CAAC;YAC9C,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAElC,8BAA8B;QAC9B,IAAI,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACvE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,yBAAyB;QACzB,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,yBAAyB;QACzB,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IAC3D,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,KAAK,CAAC,kBAAkB,GAAG,WAAW,CAAC;IACvC,KAAK,CAAC,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,OAAO,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infrastructure: Enhanced HITL Review Portal
|
|
3
|
+
* Task 4.1: Centralized review portal for batch approval/rejection
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Display all pending checkpoints
|
|
7
|
+
* - Batch approval/rejection
|
|
8
|
+
* - Risk assessment visualization
|
|
9
|
+
* - Diff preview
|
|
10
|
+
*/
|
|
11
|
+
import { HITLValidation, ReviewCheckpoint, ReviewPriority } from './hitl-validation.js';
|
|
12
|
+
export interface BatchDecision {
|
|
13
|
+
checkpointIds: string[];
|
|
14
|
+
decision: 'approve' | 'reject';
|
|
15
|
+
comment?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Display centralized HITL review portal
|
|
19
|
+
*/
|
|
20
|
+
export declare function displayReviewPortal(hitlValidation: HITLValidation): {
|
|
21
|
+
checkpoints: ReviewCheckpoint[];
|
|
22
|
+
status: {
|
|
23
|
+
total: number;
|
|
24
|
+
pending: number;
|
|
25
|
+
byPriority: Record<ReviewPriority, number>;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Display detailed checkpoint view
|
|
30
|
+
*/
|
|
31
|
+
export declare function displayCheckpointDetails(checkpoint: ReviewCheckpoint): void;
|
|
32
|
+
/**
|
|
33
|
+
* Display batch approval prompt
|
|
34
|
+
*/
|
|
35
|
+
export declare function displayBatchApprovalPrompt(checkpointIds: string[]): void;
|
|
36
|
+
/**
|
|
37
|
+
* Display batch decision summary
|
|
38
|
+
*/
|
|
39
|
+
export declare function displayBatchDecisionSummary(decisions: Array<{
|
|
40
|
+
checkpointId: string;
|
|
41
|
+
decision: 'approve' | 'reject';
|
|
42
|
+
}>): void;
|
|
43
|
+
/**
|
|
44
|
+
* Format checkpoint for batch display
|
|
45
|
+
*/
|
|
46
|
+
export declare function formatCheckpointForBatch(checkpoint: ReviewCheckpoint): string;
|
|
47
|
+
//# sourceMappingURL=hitl-review-portal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hitl-review-portal.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/hitl-review-portal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,cAAc,GAC7B;IACD,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CACxF,CAyCA;AAgCD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAwD3E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAYxE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE,CAAC,GACzE,IAAI,CAgBN;AAwDD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAW7E"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infrastructure: Enhanced HITL Review Portal
|
|
3
|
+
* Task 4.1: Centralized review portal for batch approval/rejection
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Display all pending checkpoints
|
|
7
|
+
* - Batch approval/rejection
|
|
8
|
+
* - Risk assessment visualization
|
|
9
|
+
* - Diff preview
|
|
10
|
+
*/
|
|
11
|
+
import { colors, separator, success, warning, error, info, createTable, createBox, } from '../../ui.js';
|
|
12
|
+
/**
|
|
13
|
+
* Display centralized HITL review portal
|
|
14
|
+
*/
|
|
15
|
+
export function displayReviewPortal(hitlValidation) {
|
|
16
|
+
const status = hitlValidation.getReviewQueueStatus();
|
|
17
|
+
const checkpoints = hitlValidation.getPendingCheckpoints();
|
|
18
|
+
if (checkpoints.length === 0) {
|
|
19
|
+
console.log(colors.green('✓ No pending checkpoints to review'));
|
|
20
|
+
return { checkpoints: [], status };
|
|
21
|
+
}
|
|
22
|
+
// Display portal header
|
|
23
|
+
console.log('');
|
|
24
|
+
console.log(separator('═', 80));
|
|
25
|
+
console.log(colors.bold('⚠️ Human-in-the-Loop Review Portal'));
|
|
26
|
+
console.log(separator('═', 80));
|
|
27
|
+
console.log('');
|
|
28
|
+
// Display queue status
|
|
29
|
+
console.log(colors.bold('Review Queue Status:'));
|
|
30
|
+
console.log(` Total checkpoints: ${status.total}`);
|
|
31
|
+
console.log(` Pending review: ${status.pending}`);
|
|
32
|
+
console.log('');
|
|
33
|
+
// Priority breakdown
|
|
34
|
+
if (status.byPriority.critical > 0) {
|
|
35
|
+
console.log(error(` 🔴 Critical: ${status.byPriority.critical}`));
|
|
36
|
+
}
|
|
37
|
+
if (status.byPriority.high > 0) {
|
|
38
|
+
console.log(warning(` 🟡 High: ${status.byPriority.high}`));
|
|
39
|
+
}
|
|
40
|
+
if (status.byPriority.normal > 0) {
|
|
41
|
+
console.log(info(` 🔵 Normal: ${status.byPriority.normal}`));
|
|
42
|
+
}
|
|
43
|
+
if (status.byPriority.low > 0) {
|
|
44
|
+
console.log(success(` 🟢 Low: ${status.byPriority.low}`));
|
|
45
|
+
}
|
|
46
|
+
console.log('');
|
|
47
|
+
// Display checkpoints summary
|
|
48
|
+
displayCheckpointsSummary(checkpoints);
|
|
49
|
+
return { checkpoints, status };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Display summary table of all checkpoints
|
|
53
|
+
*/
|
|
54
|
+
function displayCheckpointsSummary(checkpoints) {
|
|
55
|
+
const rows = checkpoints.map(checkpoint => {
|
|
56
|
+
const priorityColor = getPriorityColor(checkpoint.priority);
|
|
57
|
+
const riskColor = getRiskColor(checkpoint.context.riskLevel);
|
|
58
|
+
return [
|
|
59
|
+
checkpoint.checkpointId.substring(checkpoint.checkpointId.length - 8),
|
|
60
|
+
checkpoint.operation.substring(0, 30),
|
|
61
|
+
priorityColor(getPriorityLabel(checkpoint.priority)),
|
|
62
|
+
riskColor(checkpoint.context.riskLevel.toUpperCase()),
|
|
63
|
+
`${checkpoint.changes.length} file(s)`,
|
|
64
|
+
checkpoint.context.uncertainty
|
|
65
|
+
? `${(checkpoint.context.uncertainty * 100).toFixed(0)}%`
|
|
66
|
+
: '-',
|
|
67
|
+
];
|
|
68
|
+
});
|
|
69
|
+
const table = createTable(['ID', 'Operation', 'Priority', 'Risk', 'Files', 'Uncertainty'], rows);
|
|
70
|
+
console.log(colors.bold('Pending Checkpoints:'));
|
|
71
|
+
console.log(table.toString());
|
|
72
|
+
console.log('');
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Display detailed checkpoint view
|
|
76
|
+
*/
|
|
77
|
+
export function displayCheckpointDetails(checkpoint) {
|
|
78
|
+
console.log('');
|
|
79
|
+
console.log(separator('═', 80));
|
|
80
|
+
console.log(colors.bold(`Review Checkpoint: ${checkpoint.checkpointId.substring(checkpoint.checkpointId.length - 8)}`));
|
|
81
|
+
console.log(separator('═', 80));
|
|
82
|
+
console.log('');
|
|
83
|
+
// Operation info
|
|
84
|
+
console.log(colors.bold('Operation:'));
|
|
85
|
+
console.log(` ${checkpoint.operation}`);
|
|
86
|
+
console.log('');
|
|
87
|
+
// Priority and risk
|
|
88
|
+
const priorityColor = getPriorityColor(checkpoint.priority);
|
|
89
|
+
const riskColor = getRiskColor(checkpoint.context.riskLevel);
|
|
90
|
+
console.log(colors.bold('Risk Assessment:'));
|
|
91
|
+
console.log(` Priority: ${priorityColor(getPriorityLabel(checkpoint.priority))}`);
|
|
92
|
+
console.log(` Risk Level: ${riskColor(checkpoint.context.riskLevel.toUpperCase())}`);
|
|
93
|
+
if (checkpoint.context.uncertainty) {
|
|
94
|
+
const uncertaintyPercent = (checkpoint.context.uncertainty * 100).toFixed(0);
|
|
95
|
+
const uncertaintyColor = checkpoint.context.uncertainty > 0.7 ? error : warning;
|
|
96
|
+
console.log(` Uncertainty: ${uncertaintyColor(`${uncertaintyPercent}%`)}`);
|
|
97
|
+
}
|
|
98
|
+
console.log('');
|
|
99
|
+
// Changes summary
|
|
100
|
+
console.log(colors.bold(`Changes (${checkpoint.changes.length} file(s)):`));
|
|
101
|
+
checkpoint.changes.forEach((change, idx) => {
|
|
102
|
+
console.log(` ${idx + 1}. ${change.type.toUpperCase()}: ${change.filepath || 'N/A'}`);
|
|
103
|
+
console.log(` ${colors.dim(change.summary)}`);
|
|
104
|
+
if (change.diff) {
|
|
105
|
+
console.log(` ${colors.cyan('View diff with --diff flag')}`);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
console.log('');
|
|
109
|
+
// Context
|
|
110
|
+
console.log(colors.bold('Context:'));
|
|
111
|
+
console.log(` Query: ${colors.cyan(checkpoint.context.query)}`);
|
|
112
|
+
if (checkpoint.context.securityFindings && checkpoint.context.securityFindings.length > 0) {
|
|
113
|
+
console.log(warning(` ⚠️ Security Findings: ${checkpoint.context.securityFindings.length}`));
|
|
114
|
+
}
|
|
115
|
+
if (checkpoint.context.licenseFindings && checkpoint.context.licenseFindings.length > 0) {
|
|
116
|
+
console.log(warning(` ⚠️ License Findings: ${checkpoint.context.licenseFindings.length}`));
|
|
117
|
+
}
|
|
118
|
+
console.log('');
|
|
119
|
+
// Decision options
|
|
120
|
+
console.log(separator('─', 80));
|
|
121
|
+
console.log(colors.bold('Decision Options:'));
|
|
122
|
+
console.log(` [A]pprove [R]eject [S]kip [D]iff [Q]uit`);
|
|
123
|
+
console.log(separator('─', 80));
|
|
124
|
+
console.log('');
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Display batch approval prompt
|
|
128
|
+
*/
|
|
129
|
+
export function displayBatchApprovalPrompt(checkpointIds) {
|
|
130
|
+
console.log('');
|
|
131
|
+
const content = [
|
|
132
|
+
`Batch Review: ${checkpointIds.length} checkpoint(s)`,
|
|
133
|
+
'',
|
|
134
|
+
`You are about to review ${checkpointIds.length} checkpoint(s).`,
|
|
135
|
+
'',
|
|
136
|
+
'Options:',
|
|
137
|
+
` [A]pprove all [R]eject all [I]ndividual review [C]ancel`,
|
|
138
|
+
].join('\n');
|
|
139
|
+
console.log(createBox(content));
|
|
140
|
+
console.log('');
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Display batch decision summary
|
|
144
|
+
*/
|
|
145
|
+
export function displayBatchDecisionSummary(decisions) {
|
|
146
|
+
const approved = decisions.filter(d => d.decision === 'approve').length;
|
|
147
|
+
const rejected = decisions.filter(d => d.decision === 'reject').length;
|
|
148
|
+
console.log('');
|
|
149
|
+
console.log(separator('═', 80));
|
|
150
|
+
console.log(colors.bold('Batch Decision Summary'));
|
|
151
|
+
console.log(separator('═', 80));
|
|
152
|
+
console.log('');
|
|
153
|
+
console.log(`Total reviewed: ${decisions.length}`);
|
|
154
|
+
console.log(success(` ✓ Approved: ${approved}`));
|
|
155
|
+
if (rejected > 0) {
|
|
156
|
+
console.log(error(` ✗ Rejected: ${rejected}`));
|
|
157
|
+
}
|
|
158
|
+
console.log('');
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Helper: Get priority color
|
|
162
|
+
*/
|
|
163
|
+
function getPriorityColor(priority) {
|
|
164
|
+
switch (priority) {
|
|
165
|
+
case 'critical':
|
|
166
|
+
return error;
|
|
167
|
+
case 'high':
|
|
168
|
+
return warning;
|
|
169
|
+
case 'normal':
|
|
170
|
+
return info;
|
|
171
|
+
case 'low':
|
|
172
|
+
return success;
|
|
173
|
+
default:
|
|
174
|
+
return colors.gray;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Helper: Get priority label
|
|
179
|
+
*/
|
|
180
|
+
function getPriorityLabel(priority) {
|
|
181
|
+
switch (priority) {
|
|
182
|
+
case 'critical':
|
|
183
|
+
return 'CRITICAL';
|
|
184
|
+
case 'high':
|
|
185
|
+
return 'HIGH';
|
|
186
|
+
case 'normal':
|
|
187
|
+
return 'NORMAL';
|
|
188
|
+
case 'low':
|
|
189
|
+
return 'LOW';
|
|
190
|
+
default:
|
|
191
|
+
return String(priority).toUpperCase();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Helper: Get risk color
|
|
196
|
+
*/
|
|
197
|
+
function getRiskColor(riskLevel) {
|
|
198
|
+
switch (riskLevel.toLowerCase()) {
|
|
199
|
+
case 'critical':
|
|
200
|
+
return error;
|
|
201
|
+
case 'high':
|
|
202
|
+
return warning;
|
|
203
|
+
case 'medium':
|
|
204
|
+
return info;
|
|
205
|
+
case 'low':
|
|
206
|
+
return success;
|
|
207
|
+
default:
|
|
208
|
+
return colors.gray;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Format checkpoint for batch display
|
|
213
|
+
*/
|
|
214
|
+
export function formatCheckpointForBatch(checkpoint) {
|
|
215
|
+
const priorityColor = getPriorityColor(checkpoint.priority);
|
|
216
|
+
const riskColor = getRiskColor(checkpoint.context.riskLevel);
|
|
217
|
+
return [
|
|
218
|
+
`${checkpoint.checkpointId.substring(checkpoint.checkpointId.length - 8)} |`,
|
|
219
|
+
`${checkpoint.operation.substring(0, 25)} |`,
|
|
220
|
+
`${priorityColor(getPriorityLabel(checkpoint.priority))} |`,
|
|
221
|
+
`${riskColor(checkpoint.context.riskLevel.toUpperCase())} |`,
|
|
222
|
+
`${checkpoint.changes.length} file(s)`,
|
|
223
|
+
].join(' ');
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=hitl-review-portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hitl-review-portal.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/hitl-review-portal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
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
|
+
export interface ProgressOptions {
|
|
11
|
+
total?: number;
|
|
12
|
+
message?: string;
|
|
13
|
+
showPercentage?: boolean;
|
|
14
|
+
showCount?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare class ProgressIndicator {
|
|
17
|
+
private spinner;
|
|
18
|
+
private progressBar;
|
|
19
|
+
private operationStartTime;
|
|
20
|
+
private currentValue;
|
|
21
|
+
/**
|
|
22
|
+
* Start progress indicator
|
|
23
|
+
*/
|
|
24
|
+
start(options?: ProgressOptions): void;
|
|
25
|
+
/**
|
|
26
|
+
* Update progress
|
|
27
|
+
*/
|
|
28
|
+
update(value: number, message?: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Increment progress
|
|
31
|
+
*/
|
|
32
|
+
increment(delta?: number, message?: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Stop progress indicator
|
|
35
|
+
*/
|
|
36
|
+
stop(success?: boolean, finalMessage?: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Get elapsed time
|
|
39
|
+
*/
|
|
40
|
+
getElapsedTime(): number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create progress indicator for embedding search
|
|
44
|
+
*/
|
|
45
|
+
export declare function createEmbeddingSearchProgress(total: number): ProgressIndicator;
|
|
46
|
+
/**
|
|
47
|
+
* Create progress indicator for plan generation
|
|
48
|
+
*/
|
|
49
|
+
export declare function createPlanGenerationProgress(): ProgressIndicator;
|
|
50
|
+
/**
|
|
51
|
+
* Create progress indicator for memory synthesis
|
|
52
|
+
*/
|
|
53
|
+
export declare function createMemorySynthesisProgress(): ProgressIndicator;
|
|
54
|
+
//# sourceMappingURL=progress-indicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-indicator.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/progress-indicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,YAAY,CAAa;IAEjC;;OAEG;IACH,KAAK,CAAC,OAAO,GAAE,eAAoB,GAAG,IAAI;IAmB1C;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAe7C;;OAEG;IACH,SAAS,CAAC,KAAK,GAAE,MAAU,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIpD;;OAEG;IACH,IAAI,CAAC,OAAO,GAAE,OAAc,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAmB1D;;OAEG;IACH,cAAc,IAAI,MAAM;CAGzB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAS9E;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,iBAAiB,CAMhE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,iBAAiB,CAMjE"}
|