@codemieai/code 0.0.7 → 0.0.9
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.
- package/README.md +291 -47
- package/bin/agent-executor.js +6 -4
- package/dist/agents/codemie-code/agent.d.ts.map +1 -1
- package/dist/agents/codemie-code/agent.js +29 -28
- package/dist/agents/codemie-code/agent.js.map +1 -1
- package/dist/agents/codemie-code/config.d.ts.map +1 -1
- package/dist/agents/codemie-code/config.js +4 -3
- package/dist/agents/codemie-code/config.js.map +1 -1
- package/dist/agents/codemie-code/index.d.ts.map +1 -1
- package/dist/agents/codemie-code/index.js +10 -9
- package/dist/agents/codemie-code/index.js.map +1 -1
- package/dist/agents/codemie-code/tools/index.d.ts.map +1 -1
- package/dist/agents/codemie-code/tools/index.js +6 -5
- package/dist/agents/codemie-code/tools/index.js.map +1 -1
- package/dist/agents/codemie-code/ui/todoPanel.js +9 -9
- package/dist/agents/codemie-code/ui/todoPanel.js.map +1 -1
- package/dist/agents/codemie-code/ui.d.ts.map +1 -1
- package/dist/agents/codemie-code/ui.js +34 -33
- package/dist/agents/codemie-code/ui.js.map +1 -1
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +34 -17
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +5 -11
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/plugins/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude.plugin.js +9 -0
- package/dist/agents/plugins/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.d.ts +4 -0
- package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +9 -2
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/agents/plugins/deepagents.plugin.d.ts +21 -0
- package/dist/agents/plugins/deepagents.plugin.d.ts.map +1 -0
- package/dist/agents/plugins/deepagents.plugin.js +101 -0
- package/dist/agents/plugins/deepagents.plugin.js.map +1 -0
- package/dist/agents/registry.d.ts +1 -0
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +5 -2
- package/dist/agents/registry.js.map +1 -1
- package/dist/cli/commands/auth.js +5 -5
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/config.js +21 -21
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts +13 -0
- package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/checks/AIConfigCheck.js +135 -0
- package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -0
- package/dist/cli/commands/doctor/checks/AgentsCheck.d.ts +10 -0
- package/dist/cli/commands/doctor/checks/AgentsCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/checks/AgentsCheck.js +57 -0
- package/dist/cli/commands/doctor/checks/AgentsCheck.js.map +1 -0
- package/dist/cli/commands/doctor/checks/NodeVersionCheck.d.ts +9 -0
- package/dist/cli/commands/doctor/checks/NodeVersionCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/checks/NodeVersionCheck.js +38 -0
- package/dist/cli/commands/doctor/checks/NodeVersionCheck.js.map +1 -0
- package/dist/cli/commands/doctor/checks/NpmCheck.d.ts +9 -0
- package/dist/cli/commands/doctor/checks/NpmCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/checks/NpmCheck.js +28 -0
- package/dist/cli/commands/doctor/checks/NpmCheck.js.map +1 -0
- package/dist/cli/commands/doctor/checks/WorkflowsCheck.d.ts +9 -0
- package/dist/cli/commands/doctor/checks/WorkflowsCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/checks/WorkflowsCheck.js +72 -0
- package/dist/cli/commands/doctor/checks/WorkflowsCheck.js.map +1 -0
- package/dist/cli/commands/doctor/checks/index.d.ts +9 -0
- package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -0
- package/dist/cli/commands/doctor/checks/index.js +9 -0
- package/dist/cli/commands/doctor/checks/index.js.map +1 -0
- package/dist/cli/commands/doctor/formatter.d.ts +53 -0
- package/dist/cli/commands/doctor/formatter.d.ts.map +1 -0
- package/dist/cli/commands/doctor/formatter.js +153 -0
- package/dist/cli/commands/doctor/formatter.js.map +1 -0
- package/dist/cli/commands/{doctor.d.ts → doctor/index.d.ts} +4 -1
- package/dist/cli/commands/doctor/index.d.ts.map +1 -0
- package/dist/cli/commands/doctor/index.js +67 -0
- package/dist/cli/commands/doctor/index.js.map +1 -0
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts +11 -0
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js +192 -0
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js.map +1 -0
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts +12 -0
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.js +12 -0
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.js.map +1 -0
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts +11 -0
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.js +97 -0
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.js.map +1 -0
- package/dist/cli/commands/doctor/providers/index.d.ts +30 -0
- package/dist/cli/commands/doctor/providers/index.d.ts.map +1 -0
- package/dist/cli/commands/doctor/providers/index.js +66 -0
- package/dist/cli/commands/doctor/providers/index.js.map +1 -0
- package/dist/cli/commands/doctor/types.d.ts +59 -0
- package/dist/cli/commands/doctor/types.d.ts.map +1 -0
- package/dist/cli/commands/doctor/types.js +5 -0
- package/dist/cli/commands/doctor/types.js.map +1 -0
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +24 -8
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.js +3 -3
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/profile.js +6 -6
- package/dist/cli/commands/profile.js.map +1 -1
- package/dist/cli/commands/setup.js +51 -38
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/dist/cli/commands/uninstall.js +19 -4
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/commands/workflow.d.ts.map +1 -1
- package/dist/cli/commands/workflow.js +30 -59
- package/dist/cli/commands/workflow.js.map +1 -1
- package/dist/cli/index.js +1 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js +2 -2
- package/dist/env/types.js.map +1 -1
- package/dist/utils/async-tips.js +6 -6
- package/dist/utils/async-tips.js.map +1 -1
- package/dist/utils/codemie-integration-validator.d.ts +3 -2
- package/dist/utils/codemie-integration-validator.d.ts.map +1 -1
- package/dist/utils/codemie-integration-validator.js +38 -11
- package/dist/utils/codemie-integration-validator.js.map +1 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +17 -6
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/credential-store.d.ts.map +1 -1
- package/dist/utils/credential-store.js +55 -24
- package/dist/utils/credential-store.js.map +1 -1
- package/dist/utils/first-time.d.ts +8 -0
- package/dist/utils/first-time.d.ts.map +1 -1
- package/dist/utils/first-time.js +133 -86
- package/dist/utils/first-time.js.map +1 -1
- package/dist/utils/logger.d.ts +19 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +93 -8
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/sso-auth.d.ts.map +1 -1
- package/dist/utils/sso-auth.js +24 -10
- package/dist/utils/sso-auth.js.map +1 -1
- package/dist/utils/sso-gateway.d.ts +28 -0
- package/dist/utils/sso-gateway.d.ts.map +1 -1
- package/dist/utils/sso-gateway.js +201 -46
- package/dist/utils/sso-gateway.js.map +1 -1
- package/dist/utils/tips.js +3 -3
- package/dist/utils/tips.js.map +1 -1
- package/dist/workflows/installer.d.ts.map +1 -1
- package/dist/workflows/installer.js +3 -8
- package/dist/workflows/installer.js.map +1 -1
- package/package.json +9 -3
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/doctor.js +0 -365
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/tools.d.ts +0 -6
- package/dist/cli/commands/tools.d.ts.map +0 -1
- package/dist/cli/commands/tools.js +0 -244
- package/dist/cli/commands/tools.js.map +0 -1
- package/dist/clients/adapters/github.d.ts +0 -17
- package/dist/clients/adapters/github.d.ts.map +0 -1
- package/dist/clients/adapters/github.js +0 -150
- package/dist/clients/adapters/github.js.map +0 -1
- package/dist/clients/adapters/gitlab.d.ts +0 -17
- package/dist/clients/adapters/gitlab.d.ts.map +0 -1
- package/dist/clients/adapters/gitlab.js +0 -147
- package/dist/clients/adapters/gitlab.js.map +0 -1
- package/dist/clients/registry.d.ts +0 -20
- package/dist/clients/registry.d.ts.map +0 -1
- package/dist/clients/registry.js +0 -27
- package/dist/clients/registry.js.map +0 -1
- package/dist/tools/detector.d.ts +0 -33
- package/dist/tools/detector.d.ts.map +0 -1
- package/dist/tools/detector.js +0 -145
- package/dist/tools/detector.js.map +0 -1
- package/dist/tools/index.d.ts +0 -8
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -8
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/manager.d.ts +0 -21
- package/dist/tools/manager.d.ts.map +0 -1
- package/dist/tools/manager.js +0 -104
- package/dist/tools/manager.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -8
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js +0 -36
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/types.d.ts +0 -41
- package/dist/tools/types.d.ts.map +0 -1
- package/dist/tools/types.js +0 -5
- package/dist/tools/types.js.map +0 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health check result formatter
|
|
3
|
+
*/
|
|
4
|
+
import { HealthCheckResult, HealthCheckDetail } from './types.js';
|
|
5
|
+
export declare class HealthCheckFormatter {
|
|
6
|
+
private currentSpinner;
|
|
7
|
+
private checkName;
|
|
8
|
+
/**
|
|
9
|
+
* Display header
|
|
10
|
+
*/
|
|
11
|
+
displayHeader(): void;
|
|
12
|
+
/**
|
|
13
|
+
* Get section header (for item-wise checks)
|
|
14
|
+
*/
|
|
15
|
+
getCheckHeader(name: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Start a check with progress indicator
|
|
18
|
+
*/
|
|
19
|
+
startCheck(name: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Update progress for current check
|
|
22
|
+
*/
|
|
23
|
+
updateProgress(message: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Start checking an individual item
|
|
26
|
+
*/
|
|
27
|
+
startItem(message: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Display a single item result
|
|
30
|
+
*/
|
|
31
|
+
displayItem(detail: HealthCheckDetail): void;
|
|
32
|
+
/**
|
|
33
|
+
* Display a single health check result
|
|
34
|
+
*/
|
|
35
|
+
displayCheck(result: HealthCheckResult): void;
|
|
36
|
+
/**
|
|
37
|
+
* Display check result with header (stops spinner first, then shows header and details)
|
|
38
|
+
*/
|
|
39
|
+
displayCheckWithHeader(result: HealthCheckResult): void;
|
|
40
|
+
/**
|
|
41
|
+
* Display summary
|
|
42
|
+
*/
|
|
43
|
+
displaySummary(results: HealthCheckResult[], showTip?: boolean): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Get icon for status
|
|
46
|
+
*/
|
|
47
|
+
private getIcon;
|
|
48
|
+
/**
|
|
49
|
+
* Get color function for status
|
|
50
|
+
*/
|
|
51
|
+
private getColorFunction;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/doctor/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAgB,MAAM,YAAY,CAAC;AAEhF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,SAAS,CAAc;IAE/B;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIpC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMrC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOhC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAgB5C;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAuB7C;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAuBvD;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB1F;;OAEG;IACH,OAAO,CAAC,OAAO;IAef;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAczB"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health check result formatter
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import ora from 'ora';
|
|
6
|
+
export class HealthCheckFormatter {
|
|
7
|
+
currentSpinner = null;
|
|
8
|
+
checkName = '';
|
|
9
|
+
/**
|
|
10
|
+
* Display header
|
|
11
|
+
*/
|
|
12
|
+
displayHeader() {
|
|
13
|
+
console.log(chalk.bold('\n🔍 CodeMie Code Health Check\n'));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get section header (for item-wise checks)
|
|
17
|
+
*/
|
|
18
|
+
getCheckHeader(name) {
|
|
19
|
+
return chalk.bold(`${name}:`);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Start a check with progress indicator
|
|
23
|
+
*/
|
|
24
|
+
startCheck(name) {
|
|
25
|
+
this.checkName = name;
|
|
26
|
+
this.currentSpinner = ora(`Checking ${name}...`).start();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Update progress for current check
|
|
30
|
+
*/
|
|
31
|
+
updateProgress(message) {
|
|
32
|
+
if (this.currentSpinner) {
|
|
33
|
+
this.currentSpinner.text = `${this.checkName}: ${message}`;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Start checking an individual item
|
|
38
|
+
*/
|
|
39
|
+
startItem(message) {
|
|
40
|
+
if (this.currentSpinner) {
|
|
41
|
+
this.currentSpinner.stop();
|
|
42
|
+
}
|
|
43
|
+
this.currentSpinner = ora(message).start();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Display a single item result
|
|
47
|
+
*/
|
|
48
|
+
displayItem(detail) {
|
|
49
|
+
if (this.currentSpinner) {
|
|
50
|
+
this.currentSpinner.stop();
|
|
51
|
+
this.currentSpinner = null;
|
|
52
|
+
}
|
|
53
|
+
const icon = this.getIcon(detail.status);
|
|
54
|
+
const colorFn = this.getColorFunction(detail.status);
|
|
55
|
+
console.log(` ${icon} ${colorFn(detail.message)}`);
|
|
56
|
+
if (detail.hint) {
|
|
57
|
+
console.log(` ${chalk.white(detail.hint)}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Display a single health check result
|
|
62
|
+
*/
|
|
63
|
+
displayCheck(result) {
|
|
64
|
+
// Stop the spinner if one is running
|
|
65
|
+
if (this.currentSpinner) {
|
|
66
|
+
this.currentSpinner.stop();
|
|
67
|
+
this.currentSpinner = null;
|
|
68
|
+
}
|
|
69
|
+
console.log(chalk.bold(`${result.name}:`));
|
|
70
|
+
for (const detail of result.details) {
|
|
71
|
+
const icon = this.getIcon(detail.status);
|
|
72
|
+
const colorFn = this.getColorFunction(detail.status);
|
|
73
|
+
console.log(` ${icon} ${colorFn(detail.message)}`);
|
|
74
|
+
if (detail.hint) {
|
|
75
|
+
console.log(` ${chalk.white(detail.hint)}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
console.log();
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Display check result with header (stops spinner first, then shows header and details)
|
|
82
|
+
*/
|
|
83
|
+
displayCheckWithHeader(result) {
|
|
84
|
+
// Stop the spinner if one is running
|
|
85
|
+
if (this.currentSpinner) {
|
|
86
|
+
this.currentSpinner.stop();
|
|
87
|
+
this.currentSpinner = null;
|
|
88
|
+
}
|
|
89
|
+
console.log(chalk.bold(`${result.name}:`));
|
|
90
|
+
for (const detail of result.details) {
|
|
91
|
+
const icon = this.getIcon(detail.status);
|
|
92
|
+
const colorFn = this.getColorFunction(detail.status);
|
|
93
|
+
console.log(` ${icon} ${colorFn(detail.message)}`);
|
|
94
|
+
if (detail.hint) {
|
|
95
|
+
console.log(` ${chalk.white(detail.hint)}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
console.log();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Display summary
|
|
102
|
+
*/
|
|
103
|
+
async displaySummary(results, showTip = true) {
|
|
104
|
+
const hasIssues = results.some(r => !r.success);
|
|
105
|
+
if (hasIssues) {
|
|
106
|
+
console.log(chalk.yellow('⚠ Some issues detected. Please resolve them for optimal performance.\n'));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
console.log(chalk.green('✓ All checks passed!\n'));
|
|
111
|
+
// Show tip if requested and not in assistant context
|
|
112
|
+
if (showTip && !process.env.CODEMIE_IN_ASSISTANT) {
|
|
113
|
+
const { tipDisplay } = await import('../../../utils/tips.js');
|
|
114
|
+
tipDisplay.showRandomTip();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get icon for status
|
|
120
|
+
*/
|
|
121
|
+
getIcon(status) {
|
|
122
|
+
switch (status) {
|
|
123
|
+
case 'ok':
|
|
124
|
+
return chalk.green('✓');
|
|
125
|
+
case 'warn':
|
|
126
|
+
return chalk.yellow('⚠');
|
|
127
|
+
case 'error':
|
|
128
|
+
return chalk.red('✗');
|
|
129
|
+
case 'info':
|
|
130
|
+
return chalk.white('○');
|
|
131
|
+
default:
|
|
132
|
+
return '•';
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get color function for status
|
|
137
|
+
*/
|
|
138
|
+
getColorFunction(status) {
|
|
139
|
+
switch (status) {
|
|
140
|
+
case 'ok':
|
|
141
|
+
return chalk.green;
|
|
142
|
+
case 'warn':
|
|
143
|
+
return chalk.yellow;
|
|
144
|
+
case 'error':
|
|
145
|
+
return chalk.red;
|
|
146
|
+
case 'info':
|
|
147
|
+
return chalk.white;
|
|
148
|
+
default:
|
|
149
|
+
return chalk.white;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../../src/cli/commands/doctor/formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/doctor/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,mBAAmB,IAAI,OAAO,CAwE7C"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor command - health check orchestrator
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { HealthCheckFormatter } from './formatter.js';
|
|
6
|
+
import { NodeVersionCheck, NpmCheck, AIConfigCheck, AgentsCheck, WorkflowsCheck } from './checks/index.js';
|
|
7
|
+
import { providerCheckRegistry } from './providers/index.js';
|
|
8
|
+
export function createDoctorCommand() {
|
|
9
|
+
const command = new Command('doctor');
|
|
10
|
+
command
|
|
11
|
+
.description('Check system health and configuration')
|
|
12
|
+
.action(async () => {
|
|
13
|
+
const formatter = new HealthCheckFormatter();
|
|
14
|
+
const results = [];
|
|
15
|
+
// Display header
|
|
16
|
+
formatter.displayHeader();
|
|
17
|
+
// Define standard health checks
|
|
18
|
+
const checks = [
|
|
19
|
+
new NodeVersionCheck(),
|
|
20
|
+
new NpmCheck(),
|
|
21
|
+
new AIConfigCheck(),
|
|
22
|
+
new AgentsCheck(),
|
|
23
|
+
new WorkflowsCheck()
|
|
24
|
+
];
|
|
25
|
+
// Run and display standard checks immediately
|
|
26
|
+
for (const check of checks) {
|
|
27
|
+
// Check if this is an ItemWiseHealthCheck
|
|
28
|
+
const isItemWise = 'runWithItemDisplay' in check;
|
|
29
|
+
if (isItemWise) {
|
|
30
|
+
// Display section header
|
|
31
|
+
console.log(formatter['getCheckHeader'](check.name));
|
|
32
|
+
// Run with item-by-item display
|
|
33
|
+
const result = await check.runWithItemDisplay((itemName) => formatter.startItem(itemName), (detail) => formatter.displayItem(detail));
|
|
34
|
+
results.push(result);
|
|
35
|
+
// Add blank line after section
|
|
36
|
+
console.log();
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
// Regular check with section-level progress
|
|
40
|
+
formatter.startCheck(check.name);
|
|
41
|
+
const result = await check.run((message) => {
|
|
42
|
+
formatter.updateProgress(message);
|
|
43
|
+
});
|
|
44
|
+
results.push(result);
|
|
45
|
+
formatter.displayCheck(result);
|
|
46
|
+
}
|
|
47
|
+
// After AIConfigCheck, immediately run provider-specific checks
|
|
48
|
+
if (check instanceof AIConfigCheck) {
|
|
49
|
+
const config = check.getConfig();
|
|
50
|
+
if (config && config.provider) {
|
|
51
|
+
const providerResults = await providerCheckRegistry.runChecks(config, (checkName) => {
|
|
52
|
+
formatter.startCheck(checkName);
|
|
53
|
+
});
|
|
54
|
+
results.push(...providerResults);
|
|
55
|
+
// Display each provider result immediately with proper header positioning
|
|
56
|
+
for (const result of providerResults) {
|
|
57
|
+
formatter.displayCheckWithHeader(result);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Display summary
|
|
63
|
+
await formatter.displaySummary(results);
|
|
64
|
+
});
|
|
65
|
+
return command;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/doctor/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI-Run SSO provider health check
|
|
3
|
+
*/
|
|
4
|
+
import { CodeMieConfigOptions } from '../../../../utils/config-loader.js';
|
|
5
|
+
import { BaseProviderCheck } from './BaseProviderCheck.js';
|
|
6
|
+
import { HealthCheckResult } from '../types.js';
|
|
7
|
+
export declare class AIRunSSOProviderCheck extends BaseProviderCheck {
|
|
8
|
+
readonly supportedProviders: string[];
|
|
9
|
+
check(config: CodeMieConfigOptions): Promise<HealthCheckResult>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=AIRunSSOProviderCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIRunSSOProviderCheck.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/providers/AIRunSSOProviderCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAO1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAqB,MAAM,aAAa,CAAC;AAEnE,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,QAAQ,CAAC,kBAAkB,WAAkB;IAEvC,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA0LtE"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI-Run SSO provider health check
|
|
3
|
+
*/
|
|
4
|
+
import ora from 'ora';
|
|
5
|
+
import { CodeMieSSO } from '../../../../utils/sso-auth.js';
|
|
6
|
+
import { validateCodeMieConnectivity, fetchCodeMieModelsFromConfig, fetchCodeMieIntegrationsFromConfig } from '../../../../utils/codemie-model-fetcher.js';
|
|
7
|
+
import { BaseProviderCheck } from './BaseProviderCheck.js';
|
|
8
|
+
export class AIRunSSOProviderCheck extends BaseProviderCheck {
|
|
9
|
+
supportedProviders = ['ai-run-sso'];
|
|
10
|
+
async check(config) {
|
|
11
|
+
const details = [];
|
|
12
|
+
let success = true;
|
|
13
|
+
// Check CodeMie URL
|
|
14
|
+
if (config.codeMieUrl) {
|
|
15
|
+
details.push({
|
|
16
|
+
status: 'ok',
|
|
17
|
+
message: `CodeMie URL: ${config.codeMieUrl}`
|
|
18
|
+
});
|
|
19
|
+
// Check connectivity
|
|
20
|
+
const connectivitySpinner = ora('Checking CodeMie server connectivity...').start();
|
|
21
|
+
try {
|
|
22
|
+
await validateCodeMieConnectivity();
|
|
23
|
+
connectivitySpinner.stop();
|
|
24
|
+
details.push({
|
|
25
|
+
status: 'ok',
|
|
26
|
+
message: 'CodeMie server accessible'
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
connectivitySpinner.stop();
|
|
31
|
+
details.push({
|
|
32
|
+
status: 'error',
|
|
33
|
+
message: `Server connectivity failed: ${error instanceof Error ? error.message : String(error)}`
|
|
34
|
+
});
|
|
35
|
+
success = false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
details.push({
|
|
40
|
+
status: 'error',
|
|
41
|
+
message: 'CodeMie URL not configured',
|
|
42
|
+
hint: 'Run: codemie setup'
|
|
43
|
+
});
|
|
44
|
+
success = false;
|
|
45
|
+
}
|
|
46
|
+
// Check SSO credentials
|
|
47
|
+
try {
|
|
48
|
+
const sso = new CodeMieSSO();
|
|
49
|
+
const credentials = await sso.getStoredCredentials();
|
|
50
|
+
if (credentials) {
|
|
51
|
+
details.push({
|
|
52
|
+
status: 'ok',
|
|
53
|
+
message: 'SSO credentials stored'
|
|
54
|
+
});
|
|
55
|
+
// Check expiration
|
|
56
|
+
if (credentials.expiresAt) {
|
|
57
|
+
const expiresIn = Math.max(0, credentials.expiresAt - Date.now());
|
|
58
|
+
if (expiresIn > 0) {
|
|
59
|
+
const hours = Math.floor(expiresIn / (1000 * 60 * 60));
|
|
60
|
+
details.push({
|
|
61
|
+
status: 'ok',
|
|
62
|
+
message: `Session expires in: ${hours} hours`
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
details.push({
|
|
67
|
+
status: 'error',
|
|
68
|
+
message: 'SSO session expired',
|
|
69
|
+
hint: 'Run: codemie auth refresh'
|
|
70
|
+
});
|
|
71
|
+
success = false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Test API access
|
|
75
|
+
const apiSpinner = ora('Testing API access...').start();
|
|
76
|
+
try {
|
|
77
|
+
const models = await fetchCodeMieModelsFromConfig();
|
|
78
|
+
apiSpinner.stop();
|
|
79
|
+
details.push({
|
|
80
|
+
status: 'ok',
|
|
81
|
+
message: `API access working (${models.length} models available)`
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
apiSpinner.stop();
|
|
86
|
+
details.push({
|
|
87
|
+
status: 'error',
|
|
88
|
+
message: `API access error: ${error instanceof Error ? error.message : String(error)}`
|
|
89
|
+
});
|
|
90
|
+
if (error instanceof Error && error.message.includes('expired')) {
|
|
91
|
+
details.push({
|
|
92
|
+
status: 'info',
|
|
93
|
+
message: 'Session expired',
|
|
94
|
+
hint: 'Run: codemie auth refresh'
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
success = false;
|
|
98
|
+
}
|
|
99
|
+
// Check CodeMie integrations (optional)
|
|
100
|
+
if (config.codeMieIntegration) {
|
|
101
|
+
const displayValue = config.codeMieIntegration.alias || config.codeMieIntegration.id || 'unknown';
|
|
102
|
+
details.push({
|
|
103
|
+
status: 'info',
|
|
104
|
+
message: `Integration: ${displayValue}`
|
|
105
|
+
});
|
|
106
|
+
const integrationSpinner = ora('Validating CodeMie integration...').start();
|
|
107
|
+
try {
|
|
108
|
+
const integrations = await fetchCodeMieIntegrationsFromConfig();
|
|
109
|
+
const litellmIntegrations = integrations.filter(i => i.credential_type === 'LiteLLM');
|
|
110
|
+
if (litellmIntegrations.length === 0) {
|
|
111
|
+
integrationSpinner.fail('No LiteLLM integrations found');
|
|
112
|
+
details.push({
|
|
113
|
+
status: 'error',
|
|
114
|
+
message: 'No LiteLLM integrations available',
|
|
115
|
+
hint: 'Contact support to set up LiteLLM integration'
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Use ID for validation if available, otherwise fall back to alias
|
|
120
|
+
const validationKey = config.codeMieIntegration.id ? 'id' : 'alias';
|
|
121
|
+
const validationValue = config.codeMieIntegration.id || config.codeMieIntegration.alias;
|
|
122
|
+
const hasSelectedIntegration = litellmIntegrations.some(i => i[validationKey] === validationValue);
|
|
123
|
+
if (hasSelectedIntegration) {
|
|
124
|
+
const selectedIntegration = litellmIntegrations.find(i => i[validationKey] === validationValue);
|
|
125
|
+
const displayName = selectedIntegration?.project_name
|
|
126
|
+
? `${selectedIntegration.alias} (${selectedIntegration.project_name})`
|
|
127
|
+
: selectedIntegration?.alias || validationValue;
|
|
128
|
+
integrationSpinner.succeed(`Integration validated: ${displayName}`);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
integrationSpinner.fail('Selected integration not found');
|
|
132
|
+
details.push({
|
|
133
|
+
status: 'error',
|
|
134
|
+
message: 'Configured integration not found'
|
|
135
|
+
});
|
|
136
|
+
// Show available integrations
|
|
137
|
+
details.push({
|
|
138
|
+
status: 'info',
|
|
139
|
+
message: 'Available LiteLLM integrations:'
|
|
140
|
+
});
|
|
141
|
+
litellmIntegrations.forEach(integration => {
|
|
142
|
+
const displayName = integration.project_name
|
|
143
|
+
? `${integration.alias} (${integration.project_name})`
|
|
144
|
+
: integration.alias;
|
|
145
|
+
details.push({
|
|
146
|
+
status: 'info',
|
|
147
|
+
message: ` • ${displayName}`
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
details.push({
|
|
151
|
+
status: 'info',
|
|
152
|
+
message: '',
|
|
153
|
+
hint: 'Run: codemie setup to reconfigure'
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
integrationSpinner.fail('Integration validation failed');
|
|
160
|
+
details.push({
|
|
161
|
+
status: 'error',
|
|
162
|
+
message: `Integration error: ${error instanceof Error ? error.message : String(error)}`
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
details.push({
|
|
168
|
+
status: 'info',
|
|
169
|
+
message: 'No integration configured (optional)'
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
details.push({
|
|
175
|
+
status: 'error',
|
|
176
|
+
message: 'SSO credentials not found',
|
|
177
|
+
hint: 'Run: codemie auth login'
|
|
178
|
+
});
|
|
179
|
+
success = false;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
details.push({
|
|
184
|
+
status: 'error',
|
|
185
|
+
message: `Error checking SSO credentials: ${error instanceof Error ? error.message : String(error)}`
|
|
186
|
+
});
|
|
187
|
+
success = false;
|
|
188
|
+
}
|
|
189
|
+
return this.createResult('SSO Configuration', success, details);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=AIRunSSOProviderCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIRunSSOProviderCheck.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/providers/AIRunSSOProviderCheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for provider-specific health checks
|
|
3
|
+
*/
|
|
4
|
+
import { CodeMieConfigOptions } from '../../../../utils/config-loader.js';
|
|
5
|
+
import { ProviderHealthCheck, HealthCheckResult, HealthCheckDetail } from '../types.js';
|
|
6
|
+
export declare abstract class BaseProviderCheck implements ProviderHealthCheck {
|
|
7
|
+
abstract readonly supportedProviders: string[];
|
|
8
|
+
supports(provider: string): boolean;
|
|
9
|
+
abstract check(config: CodeMieConfigOptions): Promise<HealthCheckResult>;
|
|
10
|
+
protected createResult(name: string, success: boolean, details: HealthCheckDetail[]): HealthCheckResult;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=BaseProviderCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseProviderCheck.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/providers/BaseProviderCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExF,8BAAsB,iBAAkB,YAAW,mBAAmB;IACpE,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAE/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAInC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAExE,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,iBAAiB;CAGxG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for provider-specific health checks
|
|
3
|
+
*/
|
|
4
|
+
export class BaseProviderCheck {
|
|
5
|
+
supports(provider) {
|
|
6
|
+
return this.supportedProviders.includes(provider);
|
|
7
|
+
}
|
|
8
|
+
createResult(name, success, details) {
|
|
9
|
+
return { name, success, details };
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=BaseProviderCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseProviderCheck.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/providers/BaseProviderCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,OAAgB,iBAAiB;IAGrC,QAAQ,CAAC,QAAgB;QACvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAIS,YAAY,CAAC,IAAY,EAAE,OAAgB,EAAE,OAA4B;QACjF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard provider health check (OpenAI, Azure, LiteLLM, Gemini, etc.)
|
|
3
|
+
*/
|
|
4
|
+
import { CodeMieConfigOptions } from '../../../../utils/config-loader.js';
|
|
5
|
+
import { BaseProviderCheck } from './BaseProviderCheck.js';
|
|
6
|
+
import { HealthCheckResult } from '../types.js';
|
|
7
|
+
export declare class StandardProviderCheck extends BaseProviderCheck {
|
|
8
|
+
readonly supportedProviders: string[];
|
|
9
|
+
check(config: CodeMieConfigOptions): Promise<HealthCheckResult>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=StandardProviderCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StandardProviderCheck.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/providers/StandardProviderCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAqB,MAAM,aAAa,CAAC;AAEnE,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,QAAQ,CAAC,kBAAkB,WAAqD;IAE1E,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA4FtE"}
|