@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,57 @@
1
+ /**
2
+ * Installed agents health check
3
+ */
4
+ import { AgentRegistry } from '../../../../agents/registry.js';
5
+ export class AgentsCheck {
6
+ name = 'Installed Agents';
7
+ async run() {
8
+ const details = [];
9
+ let success = true;
10
+ const installedAgents = await AgentRegistry.getInstalledAgents();
11
+ if (installedAgents.length > 0) {
12
+ for (const agent of installedAgents) {
13
+ const version = await agent.getVersion();
14
+ const versionStr = version ? ` (${version})` : '';
15
+ details.push({
16
+ status: 'ok',
17
+ message: `${agent.displayName}${versionStr}`
18
+ });
19
+ }
20
+ }
21
+ else {
22
+ details.push({
23
+ status: 'info',
24
+ message: 'No agents installed (CodeMie Code is built-in)'
25
+ });
26
+ }
27
+ return { name: this.name, success, details };
28
+ }
29
+ async runWithItemDisplay(onStartItem, onDisplayItem) {
30
+ const details = [];
31
+ let success = true;
32
+ const installedAgents = await AgentRegistry.getInstalledAgents();
33
+ if (installedAgents.length > 0) {
34
+ for (const agent of installedAgents) {
35
+ onStartItem(`Checking ${agent.displayName}...`);
36
+ const version = await agent.getVersion();
37
+ const versionStr = version ? ` (${version})` : '';
38
+ const detail = {
39
+ status: 'ok',
40
+ message: `${agent.displayName}${versionStr}`
41
+ };
42
+ details.push(detail);
43
+ onDisplayItem(detail);
44
+ }
45
+ }
46
+ else {
47
+ const detail = {
48
+ status: 'info',
49
+ message: 'No agents installed (CodeMie Code is built-in)'
50
+ };
51
+ details.push(detail);
52
+ onDisplayItem(detail);
53
+ }
54
+ return { name: this.name, success, details };
55
+ }
56
+ }
57
+ //# sourceMappingURL=AgentsCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentsCheck.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/AgentsCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,MAAM,OAAO,WAAW;IACtB,IAAI,GAAG,kBAAkB,CAAC;IAE1B,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,kBAAkB,EAAE,CAAC;QAEjE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,GAAG,KAAK,CAAC,WAAW,GAAG,UAAU,EAAE;iBAC7C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,gDAAgD;aAC1D,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,WAAuC,EACvC,aAAkD;QAElD,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,kBAAkB,EAAE,CAAC;QAEjE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,WAAW,CAAC,YAAY,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,MAAM,MAAM,GAAsB;oBAChC,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,GAAG,KAAK,CAAC,WAAW,GAAG,UAAU,EAAE;iBAC7C,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,aAAa,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAsB;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,gDAAgD;aAC1D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,aAAa,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Node.js version health check
3
+ */
4
+ import { HealthCheck, HealthCheckResult } from '../types.js';
5
+ export declare class NodeVersionCheck implements HealthCheck {
6
+ name: string;
7
+ run(): Promise<HealthCheckResult>;
8
+ }
9
+ //# sourceMappingURL=NodeVersionCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeVersionCheck.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/NodeVersionCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAqB,MAAM,aAAa,CAAC;AAEhF,qBAAa,gBAAiB,YAAW,WAAW;IAClD,IAAI,SAAa;IAEX,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAgCxC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Node.js version health check
3
+ */
4
+ export class NodeVersionCheck {
5
+ name = 'Node.js';
6
+ async run() {
7
+ const details = [];
8
+ let success = true;
9
+ try {
10
+ const nodeVersion = process.version;
11
+ const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0]);
12
+ if (majorVersion >= 18) {
13
+ details.push({
14
+ status: 'ok',
15
+ message: `Version ${nodeVersion}`
16
+ });
17
+ }
18
+ else {
19
+ details.push({
20
+ status: 'warn',
21
+ message: `Version ${nodeVersion}`,
22
+ hint: 'Recommended: >= 18.0.0'
23
+ });
24
+ success = false;
25
+ }
26
+ }
27
+ catch (error) {
28
+ details.push({
29
+ status: 'error',
30
+ message: 'Failed to check version',
31
+ hint: String(error)
32
+ });
33
+ success = false;
34
+ }
35
+ return { name: this.name, success, details };
36
+ }
37
+ }
38
+ //# sourceMappingURL=NodeVersionCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeVersionCheck.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/NodeVersionCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,OAAO,gBAAgB;IAC3B,IAAI,GAAG,SAAS,CAAC;IAEjB,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;YACpC,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAElE,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,WAAW,WAAW,EAAE;iBAClC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,WAAW,WAAW,EAAE;oBACjC,IAAI,EAAE,wBAAwB;iBAC/B,CAAC,CAAC;gBACH,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,yBAAyB;gBAClC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;aACpB,CAAC,CAAC;YACH,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * npm health check
3
+ */
4
+ import { HealthCheck, HealthCheckResult } from '../types.js';
5
+ export declare class NpmCheck implements HealthCheck {
6
+ name: string;
7
+ run(): Promise<HealthCheckResult>;
8
+ }
9
+ //# sourceMappingURL=NpmCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NpmCheck.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/NpmCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAqB,MAAM,aAAa,CAAC;AAEhF,qBAAa,QAAS,YAAW,WAAW;IAC1C,IAAI,SAAS;IAEP,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAqBxC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * npm health check
3
+ */
4
+ import { exec } from '../../../../utils/exec.js';
5
+ export class NpmCheck {
6
+ name = 'npm';
7
+ async run() {
8
+ const details = [];
9
+ let success = true;
10
+ try {
11
+ const result = await exec('npm', ['--version']);
12
+ details.push({
13
+ status: 'ok',
14
+ message: `Version ${result.stdout}`
15
+ });
16
+ }
17
+ catch {
18
+ details.push({
19
+ status: 'error',
20
+ message: 'npm not found',
21
+ hint: 'Install npm from https://nodejs.org'
22
+ });
23
+ success = false;
24
+ }
25
+ return { name: this.name, success, details };
26
+ }
27
+ }
28
+ //# sourceMappingURL=NpmCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NpmCheck.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/NpmCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAGjD,MAAM,OAAO,QAAQ;IACnB,IAAI,GAAG,KAAK,CAAC;IAEb,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,WAAW,MAAM,CAAC,MAAM,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,eAAe;gBACxB,IAAI,EAAE,qCAAqC;aAC5C,CAAC,CAAC;YACH,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Repository & Workflows health check
3
+ */
4
+ import { HealthCheck, HealthCheckResult } from '../types.js';
5
+ export declare class WorkflowsCheck implements HealthCheck {
6
+ name: string;
7
+ run(): Promise<HealthCheckResult>;
8
+ }
9
+ //# sourceMappingURL=WorkflowsCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowsCheck.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/WorkflowsCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAqB,MAAM,aAAa,CAAC;AAEhF,qBAAa,cAAe,YAAW,WAAW;IAChD,IAAI,SAA4B;IAE1B,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAmExC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Repository & Workflows health check
3
+ */
4
+ import { detectVCSProvider, listInstalledWorkflows } from '../../../../workflows/index.js';
5
+ export class WorkflowsCheck {
6
+ name = 'Repository & Workflows';
7
+ async run() {
8
+ const details = [];
9
+ let success = true;
10
+ const vcsDetection = detectVCSProvider();
11
+ if (vcsDetection.isGitRepo) {
12
+ details.push({
13
+ status: 'ok',
14
+ message: 'Git repository detected'
15
+ });
16
+ if (vcsDetection.provider) {
17
+ details.push({
18
+ status: 'ok',
19
+ message: `Provider: ${vcsDetection.provider}`
20
+ });
21
+ if (vcsDetection.remoteUrl) {
22
+ details.push({
23
+ status: 'info',
24
+ message: `Remote: ${vcsDetection.remoteUrl}`
25
+ });
26
+ }
27
+ // List installed workflows
28
+ const installedWorkflows = listInstalledWorkflows(vcsDetection.provider);
29
+ if (installedWorkflows.length > 0) {
30
+ details.push({
31
+ status: 'ok',
32
+ message: `${installedWorkflows.length} workflow(s) installed`
33
+ });
34
+ installedWorkflows.forEach(workflow => {
35
+ const fileName = workflow.split('/').pop();
36
+ details.push({
37
+ status: 'info',
38
+ message: ` • ${fileName}`
39
+ });
40
+ });
41
+ }
42
+ else {
43
+ details.push({
44
+ status: 'info',
45
+ message: 'No workflows installed',
46
+ hint: 'Install workflows with: codemie workflow install <workflow-id>'
47
+ });
48
+ }
49
+ }
50
+ else {
51
+ details.push({
52
+ status: 'warn',
53
+ message: 'VCS provider not detected'
54
+ });
55
+ if (vcsDetection.remoteUrl) {
56
+ details.push({
57
+ status: 'info',
58
+ message: `Remote URL: ${vcsDetection.remoteUrl}`
59
+ });
60
+ }
61
+ }
62
+ }
63
+ else {
64
+ details.push({
65
+ status: 'info',
66
+ message: 'Not a git repository'
67
+ });
68
+ }
69
+ return { name: this.name, success, details };
70
+ }
71
+ }
72
+ //# sourceMappingURL=WorkflowsCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowsCheck.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/WorkflowsCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAG3F,MAAM,OAAO,cAAc;IACzB,IAAI,GAAG,wBAAwB,CAAC;IAEhC,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAC;QAEzC,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,yBAAyB;aACnC,CAAC,CAAC;YAEH,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,aAAa,YAAY,CAAC,QAAQ,EAAE;iBAC9C,CAAC,CAAC;gBAEH,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,WAAW,YAAY,CAAC,SAAS,EAAE;qBAC7C,CAAC,CAAC;gBACL,CAAC;gBAED,2BAA2B;gBAC3B,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACzE,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,IAAI;wBACZ,OAAO,EAAE,GAAG,kBAAkB,CAAC,MAAM,wBAAwB;qBAC9D,CAAC,CAAC;oBACH,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;wBACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBAC3C,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,OAAO,QAAQ,EAAE;yBAC3B,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,wBAAwB;wBACjC,IAAI,EAAE,gEAAgE;qBACvE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,2BAA2B;iBACrC,CAAC,CAAC;gBACH,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,eAAe,YAAY,CAAC,SAAS,EAAE;qBACjD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,sBAAsB;aAChC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Export all health checks
3
+ */
4
+ export { NodeVersionCheck } from './NodeVersionCheck.js';
5
+ export { NpmCheck } from './NpmCheck.js';
6
+ export { AIConfigCheck } from './AIConfigCheck.js';
7
+ export { AgentsCheck } from './AgentsCheck.js';
8
+ export { WorkflowsCheck } from './WorkflowsCheck.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Export all health checks
3
+ */
4
+ export { NodeVersionCheck } from './NodeVersionCheck.js';
5
+ export { NpmCheck } from './NpmCheck.js';
6
+ export { AIConfigCheck } from './AIConfigCheck.js';
7
+ export { AgentsCheck } from './AgentsCheck.js';
8
+ export { WorkflowsCheck } from './WorkflowsCheck.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -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"}