@codemieai/code 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +265 -47
  2. package/bin/agent-executor.js +6 -4
  3. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  4. package/dist/agents/codemie-code/agent.js +29 -28
  5. package/dist/agents/codemie-code/agent.js.map +1 -1
  6. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  7. package/dist/agents/codemie-code/config.js +4 -3
  8. package/dist/agents/codemie-code/config.js.map +1 -1
  9. package/dist/agents/codemie-code/index.d.ts.map +1 -1
  10. package/dist/agents/codemie-code/index.js +10 -9
  11. package/dist/agents/codemie-code/index.js.map +1 -1
  12. package/dist/agents/codemie-code/tools/index.d.ts.map +1 -1
  13. package/dist/agents/codemie-code/tools/index.js +6 -5
  14. package/dist/agents/codemie-code/tools/index.js.map +1 -1
  15. package/dist/agents/codemie-code/ui/todoPanel.js +9 -9
  16. package/dist/agents/codemie-code/ui/todoPanel.js.map +1 -1
  17. package/dist/agents/codemie-code/ui.d.ts.map +1 -1
  18. package/dist/agents/codemie-code/ui.js +34 -33
  19. package/dist/agents/codemie-code/ui.js.map +1 -1
  20. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  21. package/dist/agents/core/AgentCLI.js +31 -16
  22. package/dist/agents/core/AgentCLI.js.map +1 -1
  23. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  24. package/dist/agents/core/BaseAgentAdapter.js +5 -11
  25. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  26. package/dist/agents/plugins/claude.plugin.d.ts.map +1 -1
  27. package/dist/agents/plugins/claude.plugin.js +9 -0
  28. package/dist/agents/plugins/claude.plugin.js.map +1 -1
  29. package/dist/agents/plugins/codemie-code.plugin.d.ts +4 -0
  30. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
  31. package/dist/agents/plugins/codemie-code.plugin.js +9 -2
  32. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  33. package/dist/agents/registry.d.ts +1 -0
  34. package/dist/agents/registry.d.ts.map +1 -1
  35. package/dist/agents/registry.js +3 -2
  36. package/dist/agents/registry.js.map +1 -1
  37. package/dist/cli/commands/auth.js +5 -5
  38. package/dist/cli/commands/auth.js.map +1 -1
  39. package/dist/cli/commands/config.js +21 -21
  40. package/dist/cli/commands/config.js.map +1 -1
  41. package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts +13 -0
  42. package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts.map +1 -0
  43. package/dist/cli/commands/doctor/checks/AIConfigCheck.js +135 -0
  44. package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -0
  45. package/dist/cli/commands/doctor/checks/AgentsCheck.d.ts +10 -0
  46. package/dist/cli/commands/doctor/checks/AgentsCheck.d.ts.map +1 -0
  47. package/dist/cli/commands/doctor/checks/AgentsCheck.js +57 -0
  48. package/dist/cli/commands/doctor/checks/AgentsCheck.js.map +1 -0
  49. package/dist/cli/commands/doctor/checks/NodeVersionCheck.d.ts +9 -0
  50. package/dist/cli/commands/doctor/checks/NodeVersionCheck.d.ts.map +1 -0
  51. package/dist/cli/commands/doctor/checks/NodeVersionCheck.js +38 -0
  52. package/dist/cli/commands/doctor/checks/NodeVersionCheck.js.map +1 -0
  53. package/dist/cli/commands/doctor/checks/NpmCheck.d.ts +9 -0
  54. package/dist/cli/commands/doctor/checks/NpmCheck.d.ts.map +1 -0
  55. package/dist/cli/commands/doctor/checks/NpmCheck.js +28 -0
  56. package/dist/cli/commands/doctor/checks/NpmCheck.js.map +1 -0
  57. package/dist/cli/commands/doctor/checks/WorkflowsCheck.d.ts +9 -0
  58. package/dist/cli/commands/doctor/checks/WorkflowsCheck.d.ts.map +1 -0
  59. package/dist/cli/commands/doctor/checks/WorkflowsCheck.js +72 -0
  60. package/dist/cli/commands/doctor/checks/WorkflowsCheck.js.map +1 -0
  61. package/dist/cli/commands/doctor/checks/index.d.ts +9 -0
  62. package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -0
  63. package/dist/cli/commands/doctor/checks/index.js +9 -0
  64. package/dist/cli/commands/doctor/checks/index.js.map +1 -0
  65. package/dist/cli/commands/doctor/formatter.d.ts +53 -0
  66. package/dist/cli/commands/doctor/formatter.d.ts.map +1 -0
  67. package/dist/cli/commands/doctor/formatter.js +153 -0
  68. package/dist/cli/commands/doctor/formatter.js.map +1 -0
  69. package/dist/cli/commands/{doctor.d.ts → doctor/index.d.ts} +4 -1
  70. package/dist/cli/commands/doctor/index.d.ts.map +1 -0
  71. package/dist/cli/commands/doctor/index.js +67 -0
  72. package/dist/cli/commands/doctor/index.js.map +1 -0
  73. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts +11 -0
  74. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts.map +1 -0
  75. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js +192 -0
  76. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js.map +1 -0
  77. package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts +12 -0
  78. package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts.map +1 -0
  79. package/dist/cli/commands/doctor/providers/BaseProviderCheck.js +12 -0
  80. package/dist/cli/commands/doctor/providers/BaseProviderCheck.js.map +1 -0
  81. package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts +11 -0
  82. package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts.map +1 -0
  83. package/dist/cli/commands/doctor/providers/StandardProviderCheck.js +97 -0
  84. package/dist/cli/commands/doctor/providers/StandardProviderCheck.js.map +1 -0
  85. package/dist/cli/commands/doctor/providers/index.d.ts +30 -0
  86. package/dist/cli/commands/doctor/providers/index.d.ts.map +1 -0
  87. package/dist/cli/commands/doctor/providers/index.js +66 -0
  88. package/dist/cli/commands/doctor/providers/index.js.map +1 -0
  89. package/dist/cli/commands/doctor/types.d.ts +59 -0
  90. package/dist/cli/commands/doctor/types.d.ts.map +1 -0
  91. package/dist/cli/commands/doctor/types.js +5 -0
  92. package/dist/cli/commands/doctor/types.js.map +1 -0
  93. package/dist/cli/commands/install.d.ts.map +1 -1
  94. package/dist/cli/commands/install.js +24 -8
  95. package/dist/cli/commands/install.js.map +1 -1
  96. package/dist/cli/commands/list.js +3 -3
  97. package/dist/cli/commands/list.js.map +1 -1
  98. package/dist/cli/commands/profile.js +6 -6
  99. package/dist/cli/commands/profile.js.map +1 -1
  100. package/dist/cli/commands/setup.js +51 -38
  101. package/dist/cli/commands/setup.js.map +1 -1
  102. package/dist/cli/commands/uninstall.d.ts.map +1 -1
  103. package/dist/cli/commands/uninstall.js +19 -4
  104. package/dist/cli/commands/uninstall.js.map +1 -1
  105. package/dist/cli/commands/workflow.d.ts.map +1 -1
  106. package/dist/cli/commands/workflow.js +30 -59
  107. package/dist/cli/commands/workflow.js.map +1 -1
  108. package/dist/cli/index.js +1 -3
  109. package/dist/cli/index.js.map +1 -1
  110. package/dist/env/types.d.ts.map +1 -1
  111. package/dist/env/types.js +2 -2
  112. package/dist/env/types.js.map +1 -1
  113. package/dist/utils/async-tips.js +6 -6
  114. package/dist/utils/async-tips.js.map +1 -1
  115. package/dist/utils/codemie-integration-validator.d.ts +3 -2
  116. package/dist/utils/codemie-integration-validator.d.ts.map +1 -1
  117. package/dist/utils/codemie-integration-validator.js +38 -11
  118. package/dist/utils/codemie-integration-validator.js.map +1 -1
  119. package/dist/utils/config-loader.d.ts.map +1 -1
  120. package/dist/utils/config-loader.js +17 -6
  121. package/dist/utils/config-loader.js.map +1 -1
  122. package/dist/utils/credential-store.d.ts.map +1 -1
  123. package/dist/utils/credential-store.js +55 -24
  124. package/dist/utils/credential-store.js.map +1 -1
  125. package/dist/utils/first-time.d.ts +8 -0
  126. package/dist/utils/first-time.d.ts.map +1 -1
  127. package/dist/utils/first-time.js +133 -86
  128. package/dist/utils/first-time.js.map +1 -1
  129. package/dist/utils/logger.d.ts +19 -1
  130. package/dist/utils/logger.d.ts.map +1 -1
  131. package/dist/utils/logger.js +93 -8
  132. package/dist/utils/logger.js.map +1 -1
  133. package/dist/utils/sso-auth.d.ts.map +1 -1
  134. package/dist/utils/sso-auth.js +24 -10
  135. package/dist/utils/sso-auth.js.map +1 -1
  136. package/dist/utils/sso-gateway.d.ts +28 -0
  137. package/dist/utils/sso-gateway.d.ts.map +1 -1
  138. package/dist/utils/sso-gateway.js +197 -46
  139. package/dist/utils/sso-gateway.js.map +1 -1
  140. package/dist/utils/tips.js +3 -3
  141. package/dist/utils/tips.js.map +1 -1
  142. package/dist/workflows/installer.d.ts.map +1 -1
  143. package/dist/workflows/installer.js +3 -8
  144. package/dist/workflows/installer.js.map +1 -1
  145. package/package.json +6 -2
  146. package/dist/cli/commands/doctor.d.ts.map +0 -1
  147. package/dist/cli/commands/doctor.js +0 -365
  148. package/dist/cli/commands/doctor.js.map +0 -1
  149. package/dist/cli/commands/tools.d.ts +0 -6
  150. package/dist/cli/commands/tools.d.ts.map +0 -1
  151. package/dist/cli/commands/tools.js +0 -244
  152. package/dist/cli/commands/tools.js.map +0 -1
  153. package/dist/clients/adapters/github.d.ts +0 -17
  154. package/dist/clients/adapters/github.d.ts.map +0 -1
  155. package/dist/clients/adapters/github.js +0 -150
  156. package/dist/clients/adapters/github.js.map +0 -1
  157. package/dist/clients/adapters/gitlab.d.ts +0 -17
  158. package/dist/clients/adapters/gitlab.d.ts.map +0 -1
  159. package/dist/clients/adapters/gitlab.js +0 -147
  160. package/dist/clients/adapters/gitlab.js.map +0 -1
  161. package/dist/clients/registry.d.ts +0 -20
  162. package/dist/clients/registry.d.ts.map +0 -1
  163. package/dist/clients/registry.js +0 -27
  164. package/dist/clients/registry.js.map +0 -1
  165. package/dist/tools/detector.d.ts +0 -33
  166. package/dist/tools/detector.d.ts.map +0 -1
  167. package/dist/tools/detector.js +0 -145
  168. package/dist/tools/detector.js.map +0 -1
  169. package/dist/tools/index.d.ts +0 -8
  170. package/dist/tools/index.d.ts.map +0 -1
  171. package/dist/tools/index.js +0 -8
  172. package/dist/tools/index.js.map +0 -1
  173. package/dist/tools/manager.d.ts +0 -21
  174. package/dist/tools/manager.d.ts.map +0 -1
  175. package/dist/tools/manager.js +0 -104
  176. package/dist/tools/manager.js.map +0 -1
  177. package/dist/tools/registry.d.ts +0 -8
  178. package/dist/tools/registry.d.ts.map +0 -1
  179. package/dist/tools/registry.js +0 -36
  180. package/dist/tools/registry.js.map +0 -1
  181. package/dist/tools/types.d.ts +0 -41
  182. package/dist/tools/types.d.ts.map +0 -1
  183. package/dist/tools/types.js +0 -5
  184. package/dist/tools/types.js.map +0 -1
@@ -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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Standard provider health check (OpenAI, Azure, LiteLLM, Gemini, etc.)
3
+ */
4
+ import ora from 'ora';
5
+ import { checkProviderHealth } from '../../../../utils/health-checker.js';
6
+ import { fetchAvailableModels } from '../../../../utils/model-fetcher.js';
7
+ import { BaseProviderCheck } from './BaseProviderCheck.js';
8
+ export class StandardProviderCheck extends BaseProviderCheck {
9
+ supportedProviders = ['openai', 'azure', 'litellm', 'gemini', 'codex'];
10
+ async check(config) {
11
+ const details = [];
12
+ let success = true;
13
+ // Test connectivity
14
+ if (config.baseUrl && config.apiKey && config.model) {
15
+ const healthSpinner = ora('Validating credentials and endpoint...').start();
16
+ try {
17
+ const startTime = Date.now();
18
+ const result = await checkProviderHealth(config.baseUrl, config.apiKey);
19
+ const duration = Date.now() - startTime;
20
+ if (!result.success) {
21
+ throw new Error(result.message);
22
+ }
23
+ healthSpinner.succeed('Credentials validated');
24
+ details.push({
25
+ status: 'ok',
26
+ message: `Response time: ${duration}ms`
27
+ });
28
+ details.push({
29
+ status: 'info',
30
+ message: `Status: ${result.message}`
31
+ });
32
+ }
33
+ catch (error) {
34
+ const errorMessage = error instanceof Error ? error.message : String(error);
35
+ healthSpinner.fail('Connection test failed');
36
+ details.push({
37
+ status: 'error',
38
+ message: `Connection error: ${errorMessage}`
39
+ });
40
+ success = false;
41
+ }
42
+ // Fetch and verify models (skip for Bedrock)
43
+ if (config.provider !== 'bedrock') {
44
+ const modelsSpinner = ora('Fetching available models...').start();
45
+ try {
46
+ const availableModels = await fetchAvailableModels({
47
+ provider: config.provider,
48
+ baseUrl: config.baseUrl,
49
+ apiKey: config.apiKey,
50
+ model: config.model,
51
+ timeout: config.timeout || 300
52
+ });
53
+ if (availableModels.length > 0) {
54
+ modelsSpinner.succeed(`Found ${availableModels.length} available models`);
55
+ // Check if configured model exists
56
+ const configuredModel = config.model;
57
+ const modelExists = availableModels.includes(configuredModel);
58
+ if (modelExists) {
59
+ details.push({
60
+ status: 'ok',
61
+ message: `Configured model '${configuredModel}' is available`
62
+ });
63
+ }
64
+ else {
65
+ details.push({
66
+ status: 'warn',
67
+ message: `Configured model '${configuredModel}' not found in available models`
68
+ });
69
+ details.push({
70
+ status: 'info',
71
+ message: `Available models: ${availableModels.slice(0, 5).join(', ')}${availableModels.length > 5 ? '...' : ''}`
72
+ });
73
+ success = false;
74
+ }
75
+ }
76
+ else {
77
+ modelsSpinner.warn('Could not fetch models from provider');
78
+ details.push({
79
+ status: 'info',
80
+ message: `Using configured model: ${config.model}`
81
+ });
82
+ }
83
+ }
84
+ catch (error) {
85
+ const errorMessage = error instanceof Error ? error.message : String(error);
86
+ modelsSpinner.warn('Model verification skipped');
87
+ details.push({
88
+ status: 'info',
89
+ message: `Model verification error: ${errorMessage}`
90
+ });
91
+ }
92
+ }
93
+ }
94
+ return this.createResult('Connectivity Test', success, details);
95
+ }
96
+ }
97
+ //# sourceMappingURL=StandardProviderCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StandardProviderCheck.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/providers/StandardProviderCheck.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Provider health checks registry
3
+ */
4
+ import { CodeMieConfigOptions } from '../../../../utils/config-loader.js';
5
+ import { ProviderHealthCheck, HealthCheckResult } from '../types.js';
6
+ export { BaseProviderCheck } from './BaseProviderCheck.js';
7
+ export { AIRunSSOProviderCheck } from './AIRunSSOProviderCheck.js';
8
+ export { StandardProviderCheck } from './StandardProviderCheck.js';
9
+ /**
10
+ * Registry of all provider-specific health checks
11
+ */
12
+ declare class ProviderCheckRegistry {
13
+ private checks;
14
+ /**
15
+ * Get applicable checks for a given provider
16
+ */
17
+ getChecksForProvider(provider: string): ProviderHealthCheck[];
18
+ /**
19
+ * Run all applicable provider checks
20
+ * @param config Configuration to check
21
+ * @param onProgress Optional callback called before each check starts
22
+ */
23
+ runChecks(config: CodeMieConfigOptions, onProgress?: (checkName: string) => void): Promise<HealthCheckResult[]>;
24
+ /**
25
+ * Register a custom provider check
26
+ */
27
+ register(check: ProviderHealthCheck): void;
28
+ }
29
+ export declare const providerCheckRegistry: ProviderCheckRegistry;
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;GAEG;AACH,cAAM,qBAAqB;IACzB,OAAO,CAAC,MAAM,CAGZ;IAEF;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,EAAE;IAI7D;;;;OAIG;IACG,SAAS,CACb,MAAM,EAAE,oBAAoB,EAC5B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GACvC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAiC/B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;CAG3C;AAGD,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Provider health checks registry
3
+ */
4
+ import { AIRunSSOProviderCheck } from './AIRunSSOProviderCheck.js';
5
+ import { StandardProviderCheck } from './StandardProviderCheck.js';
6
+ export { BaseProviderCheck } from './BaseProviderCheck.js';
7
+ export { AIRunSSOProviderCheck } from './AIRunSSOProviderCheck.js';
8
+ export { StandardProviderCheck } from './StandardProviderCheck.js';
9
+ /**
10
+ * Registry of all provider-specific health checks
11
+ */
12
+ class ProviderCheckRegistry {
13
+ checks = [
14
+ new AIRunSSOProviderCheck(),
15
+ new StandardProviderCheck()
16
+ ];
17
+ /**
18
+ * Get applicable checks for a given provider
19
+ */
20
+ getChecksForProvider(provider) {
21
+ return this.checks.filter(check => check.supports(provider));
22
+ }
23
+ /**
24
+ * Run all applicable provider checks
25
+ * @param config Configuration to check
26
+ * @param onProgress Optional callback called before each check starts
27
+ */
28
+ async runChecks(config, onProgress) {
29
+ if (!config.provider) {
30
+ return [];
31
+ }
32
+ const applicableChecks = this.getChecksForProvider(config.provider);
33
+ const results = [];
34
+ for (const check of applicableChecks) {
35
+ try {
36
+ // Notify progress if callback provided
37
+ if (onProgress) {
38
+ onProgress('Provider');
39
+ }
40
+ const result = await check.check(config);
41
+ results.push(result);
42
+ }
43
+ catch (error) {
44
+ // If a check throws an error, capture it
45
+ results.push({
46
+ name: 'Provider Check Error',
47
+ success: false,
48
+ details: [{
49
+ status: 'error',
50
+ message: `Check failed: ${error instanceof Error ? error.message : String(error)}`
51
+ }]
52
+ });
53
+ }
54
+ }
55
+ return results;
56
+ }
57
+ /**
58
+ * Register a custom provider check
59
+ */
60
+ register(check) {
61
+ this.checks.push(check);
62
+ }
63
+ }
64
+ // Export singleton instance
65
+ export const providerCheckRegistry = new ProviderCheckRegistry();
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;GAEG;AACH,MAAM,qBAAqB;IACjB,MAAM,GAA0B;QACtC,IAAI,qBAAqB,EAAE;QAC3B,IAAI,qBAAqB,EAAE;KAC5B,CAAC;IAEF;;OAEG;IACH,oBAAoB,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CACb,MAA4B,EAC5B,UAAwC;QAExC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpE,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,uCAAuC;gBACvC,IAAI,UAAU,EAAE,CAAC;oBACf,UAAU,CAAC,UAAU,CAAC,CAAC;gBACzB,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,yCAAyC;gBACzC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,CAAC;4BACR,MAAM,EAAE,OAAO;4BACf,OAAO,EAAE,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;yBACnF,CAAC;iBACH,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAA0B;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Health check types and interfaces
3
+ */
4
+ import { CodeMieConfigOptions } from '../../../utils/config-loader.js';
5
+ /**
6
+ * Status of a health check item
7
+ */
8
+ export type HealthStatus = 'ok' | 'warn' | 'error' | 'info';
9
+ /**
10
+ * Individual health check detail
11
+ */
12
+ export interface HealthCheckDetail {
13
+ status: HealthStatus;
14
+ message: string;
15
+ hint?: string;
16
+ }
17
+ /**
18
+ * Result of a health check
19
+ */
20
+ export interface HealthCheckResult {
21
+ name: string;
22
+ success: boolean;
23
+ details: HealthCheckDetail[];
24
+ }
25
+ /**
26
+ * Progress callback for individual items
27
+ */
28
+ export type ProgressCallback = (message: string) => void;
29
+ /**
30
+ * Item display callback for showing items one by one
31
+ */
32
+ export type ItemDisplayCallback = (itemName: string, result: HealthCheckDetail) => void;
33
+ /**
34
+ * Base interface for all health checks
35
+ */
36
+ export interface HealthCheck {
37
+ name: string;
38
+ run(onProgress?: ProgressCallback): Promise<HealthCheckResult>;
39
+ }
40
+ /**
41
+ * Health check that supports item-by-item display
42
+ */
43
+ export interface ItemWiseHealthCheck extends HealthCheck {
44
+ runWithItemDisplay(onStartItem: (itemName: string) => void, onDisplayItem: (detail: HealthCheckDetail) => void): Promise<HealthCheckResult>;
45
+ }
46
+ /**
47
+ * Provider-specific health check
48
+ */
49
+ export interface ProviderHealthCheck {
50
+ /**
51
+ * Check if this provider check supports the given provider
52
+ */
53
+ supports(provider: string): boolean;
54
+ /**
55
+ * Run provider-specific health checks
56
+ */
57
+ check(config: CodeMieConfigOptions): Promise<HealthCheckResult>;
58
+ }
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/doctor/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,kBAAkB,CAChB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,aAAa,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GACjD,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAEpC;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACjE"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Health check types and interfaces
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/cli/commands/doctor/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,oBAAoB,IAAI,OAAO,CA6E9C"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,oBAAoB,IAAI,OAAO,CA+F9C"}
@@ -1,8 +1,7 @@
1
1
  import { Command } from 'commander';
2
2
  import { AgentRegistry } from '../../agents/registry.js';
3
- import { logger } from '../../utils/logger.js';
4
3
  import { asyncTipDisplay } from '../../utils/async-tips.js';
5
- import { AgentInstallationError } from '../../utils/errors.js';
4
+ import { AgentInstallationError, getErrorMessage } from '../../utils/errors.js';
6
5
  import ora from 'ora';
7
6
  import chalk from 'chalk';
8
7
  export function createInstallCommand() {
@@ -21,11 +20,11 @@ export function createInstallCommand() {
21
20
  const installed = await agent.isInstalled();
22
21
  const status = installed ? chalk.green('✓ installed') : chalk.yellow('○ not installed');
23
22
  const version = installed ? await agent.getVersion() : null;
24
- const versionStr = version ? chalk.gray(` (${version})`) : '';
23
+ const versionStr = version ? chalk.white(` (${version})`) : '';
25
24
  console.log(chalk.bold(` ${agent.displayName}`) + versionStr);
26
25
  console.log(` Command: ${chalk.cyan(`codemie install ${agent.name}`)}`);
27
26
  console.log(` Status: ${status}`);
28
- console.log(` ${chalk.gray(agent.description)}`);
27
+ console.log(` ${chalk.white(agent.description)}`);
29
28
  console.log();
30
29
  }
31
30
  console.log(chalk.cyan('💡 Tip:') + ' Run ' + chalk.blueBright('codemie install <agent>') + ' to install an agent');
@@ -38,7 +37,7 @@ export function createInstallCommand() {
38
37
  }
39
38
  // Check if already installed
40
39
  if (await agent.isInstalled()) {
41
- logger.info(`${agent.displayName} is already installed`);
40
+ console.log(chalk.blueBright(`${agent.displayName} is already installed`));
42
41
  return;
43
42
  }
44
43
  const spinner = ora(`Installing ${agent.displayName}...`).start();
@@ -52,8 +51,10 @@ export function createInstallCommand() {
52
51
  // Show how to run the newly installed agent
53
52
  console.log();
54
53
  console.log(chalk.cyan('💡 Next steps:'));
55
- console.log(chalk.white(` Interactive mode:`), chalk.blueBright(`codemie-${agentName}`));
56
- console.log(chalk.white(` Single task:`), chalk.blueBright(`codemie-${agentName} --task "your task"`));
54
+ // Handle special case where agent name already includes 'codemie-' prefix
55
+ const command = agent.name.startsWith('codemie-') ? agent.name : `codemie-${agent.name}`;
56
+ console.log(chalk.white(` Interactive mode:`), chalk.blueBright(command));
57
+ console.log(chalk.white(` Single task:`), chalk.blueBright(`${command} --task "your task"`));
57
58
  console.log();
58
59
  }
59
60
  catch (error) {
@@ -62,7 +63,22 @@ export function createInstallCommand() {
62
63
  }
63
64
  }
64
65
  catch (error) {
65
- logger.error('Installation failed:', error);
66
+ // Handle AgentInstallationError with helpful suggestions
67
+ if (error instanceof AgentInstallationError) {
68
+ console.error(chalk.red(`✗ ${getErrorMessage(error)}`));
69
+ console.log();
70
+ console.log(chalk.cyan('💡 Available agents:'));
71
+ const allAgents = AgentRegistry.getAllAgents();
72
+ for (const agent of allAgents) {
73
+ console.log(chalk.white(` • ${agent.name}`));
74
+ }
75
+ console.log();
76
+ console.log(chalk.cyan('💡 Tip:') + ' Run ' + chalk.blueBright('codemie install') + ' to see all agents');
77
+ console.log();
78
+ process.exit(1);
79
+ }
80
+ // For other errors, show simple message
81
+ console.error(chalk.red(`✗ Installation failed: ${getErrorMessage(error)}`));
66
82
  process.exit(1);
67
83
  }
68
84
  });
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}