@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.
Files changed (188) hide show
  1. package/README.md +291 -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 +34 -17
  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/plugins/deepagents.plugin.d.ts +21 -0
  34. package/dist/agents/plugins/deepagents.plugin.d.ts.map +1 -0
  35. package/dist/agents/plugins/deepagents.plugin.js +101 -0
  36. package/dist/agents/plugins/deepagents.plugin.js.map +1 -0
  37. package/dist/agents/registry.d.ts +1 -0
  38. package/dist/agents/registry.d.ts.map +1 -1
  39. package/dist/agents/registry.js +5 -2
  40. package/dist/agents/registry.js.map +1 -1
  41. package/dist/cli/commands/auth.js +5 -5
  42. package/dist/cli/commands/auth.js.map +1 -1
  43. package/dist/cli/commands/config.js +21 -21
  44. package/dist/cli/commands/config.js.map +1 -1
  45. package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts +13 -0
  46. package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts.map +1 -0
  47. package/dist/cli/commands/doctor/checks/AIConfigCheck.js +135 -0
  48. package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -0
  49. package/dist/cli/commands/doctor/checks/AgentsCheck.d.ts +10 -0
  50. package/dist/cli/commands/doctor/checks/AgentsCheck.d.ts.map +1 -0
  51. package/dist/cli/commands/doctor/checks/AgentsCheck.js +57 -0
  52. package/dist/cli/commands/doctor/checks/AgentsCheck.js.map +1 -0
  53. package/dist/cli/commands/doctor/checks/NodeVersionCheck.d.ts +9 -0
  54. package/dist/cli/commands/doctor/checks/NodeVersionCheck.d.ts.map +1 -0
  55. package/dist/cli/commands/doctor/checks/NodeVersionCheck.js +38 -0
  56. package/dist/cli/commands/doctor/checks/NodeVersionCheck.js.map +1 -0
  57. package/dist/cli/commands/doctor/checks/NpmCheck.d.ts +9 -0
  58. package/dist/cli/commands/doctor/checks/NpmCheck.d.ts.map +1 -0
  59. package/dist/cli/commands/doctor/checks/NpmCheck.js +28 -0
  60. package/dist/cli/commands/doctor/checks/NpmCheck.js.map +1 -0
  61. package/dist/cli/commands/doctor/checks/WorkflowsCheck.d.ts +9 -0
  62. package/dist/cli/commands/doctor/checks/WorkflowsCheck.d.ts.map +1 -0
  63. package/dist/cli/commands/doctor/checks/WorkflowsCheck.js +72 -0
  64. package/dist/cli/commands/doctor/checks/WorkflowsCheck.js.map +1 -0
  65. package/dist/cli/commands/doctor/checks/index.d.ts +9 -0
  66. package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -0
  67. package/dist/cli/commands/doctor/checks/index.js +9 -0
  68. package/dist/cli/commands/doctor/checks/index.js.map +1 -0
  69. package/dist/cli/commands/doctor/formatter.d.ts +53 -0
  70. package/dist/cli/commands/doctor/formatter.d.ts.map +1 -0
  71. package/dist/cli/commands/doctor/formatter.js +153 -0
  72. package/dist/cli/commands/doctor/formatter.js.map +1 -0
  73. package/dist/cli/commands/{doctor.d.ts → doctor/index.d.ts} +4 -1
  74. package/dist/cli/commands/doctor/index.d.ts.map +1 -0
  75. package/dist/cli/commands/doctor/index.js +67 -0
  76. package/dist/cli/commands/doctor/index.js.map +1 -0
  77. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts +11 -0
  78. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts.map +1 -0
  79. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js +192 -0
  80. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js.map +1 -0
  81. package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts +12 -0
  82. package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts.map +1 -0
  83. package/dist/cli/commands/doctor/providers/BaseProviderCheck.js +12 -0
  84. package/dist/cli/commands/doctor/providers/BaseProviderCheck.js.map +1 -0
  85. package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts +11 -0
  86. package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts.map +1 -0
  87. package/dist/cli/commands/doctor/providers/StandardProviderCheck.js +97 -0
  88. package/dist/cli/commands/doctor/providers/StandardProviderCheck.js.map +1 -0
  89. package/dist/cli/commands/doctor/providers/index.d.ts +30 -0
  90. package/dist/cli/commands/doctor/providers/index.d.ts.map +1 -0
  91. package/dist/cli/commands/doctor/providers/index.js +66 -0
  92. package/dist/cli/commands/doctor/providers/index.js.map +1 -0
  93. package/dist/cli/commands/doctor/types.d.ts +59 -0
  94. package/dist/cli/commands/doctor/types.d.ts.map +1 -0
  95. package/dist/cli/commands/doctor/types.js +5 -0
  96. package/dist/cli/commands/doctor/types.js.map +1 -0
  97. package/dist/cli/commands/install.d.ts.map +1 -1
  98. package/dist/cli/commands/install.js +24 -8
  99. package/dist/cli/commands/install.js.map +1 -1
  100. package/dist/cli/commands/list.js +3 -3
  101. package/dist/cli/commands/list.js.map +1 -1
  102. package/dist/cli/commands/profile.js +6 -6
  103. package/dist/cli/commands/profile.js.map +1 -1
  104. package/dist/cli/commands/setup.js +51 -38
  105. package/dist/cli/commands/setup.js.map +1 -1
  106. package/dist/cli/commands/uninstall.d.ts.map +1 -1
  107. package/dist/cli/commands/uninstall.js +19 -4
  108. package/dist/cli/commands/uninstall.js.map +1 -1
  109. package/dist/cli/commands/workflow.d.ts.map +1 -1
  110. package/dist/cli/commands/workflow.js +30 -59
  111. package/dist/cli/commands/workflow.js.map +1 -1
  112. package/dist/cli/index.js +1 -3
  113. package/dist/cli/index.js.map +1 -1
  114. package/dist/env/types.d.ts.map +1 -1
  115. package/dist/env/types.js +2 -2
  116. package/dist/env/types.js.map +1 -1
  117. package/dist/utils/async-tips.js +6 -6
  118. package/dist/utils/async-tips.js.map +1 -1
  119. package/dist/utils/codemie-integration-validator.d.ts +3 -2
  120. package/dist/utils/codemie-integration-validator.d.ts.map +1 -1
  121. package/dist/utils/codemie-integration-validator.js +38 -11
  122. package/dist/utils/codemie-integration-validator.js.map +1 -1
  123. package/dist/utils/config-loader.d.ts.map +1 -1
  124. package/dist/utils/config-loader.js +17 -6
  125. package/dist/utils/config-loader.js.map +1 -1
  126. package/dist/utils/credential-store.d.ts.map +1 -1
  127. package/dist/utils/credential-store.js +55 -24
  128. package/dist/utils/credential-store.js.map +1 -1
  129. package/dist/utils/first-time.d.ts +8 -0
  130. package/dist/utils/first-time.d.ts.map +1 -1
  131. package/dist/utils/first-time.js +133 -86
  132. package/dist/utils/first-time.js.map +1 -1
  133. package/dist/utils/logger.d.ts +19 -1
  134. package/dist/utils/logger.d.ts.map +1 -1
  135. package/dist/utils/logger.js +93 -8
  136. package/dist/utils/logger.js.map +1 -1
  137. package/dist/utils/sso-auth.d.ts.map +1 -1
  138. package/dist/utils/sso-auth.js +24 -10
  139. package/dist/utils/sso-auth.js.map +1 -1
  140. package/dist/utils/sso-gateway.d.ts +28 -0
  141. package/dist/utils/sso-gateway.d.ts.map +1 -1
  142. package/dist/utils/sso-gateway.js +201 -46
  143. package/dist/utils/sso-gateway.js.map +1 -1
  144. package/dist/utils/tips.js +3 -3
  145. package/dist/utils/tips.js.map +1 -1
  146. package/dist/workflows/installer.d.ts.map +1 -1
  147. package/dist/workflows/installer.js +3 -8
  148. package/dist/workflows/installer.js.map +1 -1
  149. package/package.json +9 -3
  150. package/dist/cli/commands/doctor.d.ts.map +0 -1
  151. package/dist/cli/commands/doctor.js +0 -365
  152. package/dist/cli/commands/doctor.js.map +0 -1
  153. package/dist/cli/commands/tools.d.ts +0 -6
  154. package/dist/cli/commands/tools.d.ts.map +0 -1
  155. package/dist/cli/commands/tools.js +0 -244
  156. package/dist/cli/commands/tools.js.map +0 -1
  157. package/dist/clients/adapters/github.d.ts +0 -17
  158. package/dist/clients/adapters/github.d.ts.map +0 -1
  159. package/dist/clients/adapters/github.js +0 -150
  160. package/dist/clients/adapters/github.js.map +0 -1
  161. package/dist/clients/adapters/gitlab.d.ts +0 -17
  162. package/dist/clients/adapters/gitlab.d.ts.map +0 -1
  163. package/dist/clients/adapters/gitlab.js +0 -147
  164. package/dist/clients/adapters/gitlab.js.map +0 -1
  165. package/dist/clients/registry.d.ts +0 -20
  166. package/dist/clients/registry.d.ts.map +0 -1
  167. package/dist/clients/registry.js +0 -27
  168. package/dist/clients/registry.js.map +0 -1
  169. package/dist/tools/detector.d.ts +0 -33
  170. package/dist/tools/detector.d.ts.map +0 -1
  171. package/dist/tools/detector.js +0 -145
  172. package/dist/tools/detector.js.map +0 -1
  173. package/dist/tools/index.d.ts +0 -8
  174. package/dist/tools/index.d.ts.map +0 -1
  175. package/dist/tools/index.js +0 -8
  176. package/dist/tools/index.js.map +0 -1
  177. package/dist/tools/manager.d.ts +0 -21
  178. package/dist/tools/manager.d.ts.map +0 -1
  179. package/dist/tools/manager.js +0 -104
  180. package/dist/tools/manager.js.map +0 -1
  181. package/dist/tools/registry.d.ts +0 -8
  182. package/dist/tools/registry.d.ts.map +0 -1
  183. package/dist/tools/registry.js +0 -36
  184. package/dist/tools/registry.js.map +0 -1
  185. package/dist/tools/types.d.ts +0 -41
  186. package/dist/tools/types.d.ts.map +0 -1
  187. package/dist/tools/types.js +0 -5
  188. 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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"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Doctor command - health check orchestrator
3
+ */
1
4
  import { Command } from 'commander';
2
5
  export declare function createDoctorCommand(): Command;
3
- //# sourceMappingURL=doctor.d.ts.map
6
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}