@agents-at-scale/ark 0.1.35-rc2 → 0.1.35

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 (215) hide show
  1. package/dist/commands/cluster/index.d.ts +1 -2
  2. package/dist/commands/cluster/index.js +5 -3
  3. package/dist/commands/completion.js +2 -159
  4. package/dist/commands/config.d.ts +3 -0
  5. package/dist/commands/config.js +321 -38
  6. package/dist/commands/generate/config.js +24 -5
  7. package/dist/commands/generate/generators/agent.js +2 -2
  8. package/dist/commands/generate/generators/mcpserver.d.ts +1 -2
  9. package/dist/commands/generate/generators/mcpserver.js +5 -26
  10. package/dist/commands/generate/generators/project.js +41 -22
  11. package/dist/commands/generate/generators/team.js +2 -2
  12. package/dist/commands/generate/index.d.ts +1 -2
  13. package/dist/commands/generate/index.js +1 -1
  14. package/dist/components/statusChecker.d.ts +23 -13
  15. package/dist/components/statusChecker.js +129 -295
  16. package/dist/config.d.ts +22 -3
  17. package/dist/config.js +161 -10
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.js +42 -44
  20. package/dist/lib/cluster.d.ts +1 -2
  21. package/dist/lib/cluster.js +16 -37
  22. package/dist/lib/config.d.ts +80 -28
  23. package/dist/lib/config.js +205 -70
  24. package/dist/lib/consts.d.ts +1 -0
  25. package/dist/lib/consts.js +2 -0
  26. package/dist/lib/errors.js +1 -1
  27. package/dist/lib/exec.d.ts +4 -0
  28. package/dist/lib/exec.js +11 -0
  29. package/dist/lib/types.d.ts +3 -17
  30. package/dist/ui/MainMenu.d.ts +1 -5
  31. package/dist/ui/MainMenu.js +91 -222
  32. package/dist/ui/statusFormatter.d.ts +7 -22
  33. package/dist/ui/statusFormatter.js +39 -39
  34. package/package.json +5 -17
  35. package/dist/arkServices.d.ts +0 -42
  36. package/dist/arkServices.js +0 -138
  37. package/dist/arkServices.spec.d.ts +0 -1
  38. package/dist/arkServices.spec.js +0 -24
  39. package/dist/charts/charts.d.ts +0 -5
  40. package/dist/charts/charts.js +0 -6
  41. package/dist/charts/dependencies.d.ts +0 -6
  42. package/dist/charts/dependencies.js +0 -50
  43. package/dist/charts/types.d.ts +0 -40
  44. package/dist/charts/types.js +0 -1
  45. package/dist/commands/agents/index.d.ts +0 -3
  46. package/dist/commands/agents/index.js +0 -51
  47. package/dist/commands/agents/index.spec.d.ts +0 -1
  48. package/dist/commands/agents/index.spec.js +0 -67
  49. package/dist/commands/agents/selector.d.ts +0 -8
  50. package/dist/commands/agents/selector.js +0 -53
  51. package/dist/commands/agents.d.ts +0 -2
  52. package/dist/commands/agents.js +0 -53
  53. package/dist/commands/chat/index.d.ts +0 -3
  54. package/dist/commands/chat/index.js +0 -29
  55. package/dist/commands/chat.d.ts +0 -2
  56. package/dist/commands/chat.js +0 -45
  57. package/dist/commands/cluster/get.d.ts +0 -2
  58. package/dist/commands/cluster/get.js +0 -39
  59. package/dist/commands/cluster/get.spec.d.ts +0 -1
  60. package/dist/commands/cluster/get.spec.js +0 -92
  61. package/dist/commands/cluster/index.spec.d.ts +0 -1
  62. package/dist/commands/cluster/index.spec.js +0 -24
  63. package/dist/commands/completion/index.d.ts +0 -3
  64. package/dist/commands/completion/index.js +0 -290
  65. package/dist/commands/completion/index.spec.d.ts +0 -1
  66. package/dist/commands/completion/index.spec.js +0 -34
  67. package/dist/commands/config/index.d.ts +0 -3
  68. package/dist/commands/config/index.js +0 -42
  69. package/dist/commands/config/index.spec.d.ts +0 -1
  70. package/dist/commands/config/index.spec.js +0 -78
  71. package/dist/commands/dashboard/index.d.ts +0 -4
  72. package/dist/commands/dashboard/index.js +0 -39
  73. package/dist/commands/dashboard.d.ts +0 -3
  74. package/dist/commands/dashboard.js +0 -39
  75. package/dist/commands/dev/index.d.ts +0 -3
  76. package/dist/commands/dev/index.js +0 -9
  77. package/dist/commands/dev/tool/check.d.ts +0 -2
  78. package/dist/commands/dev/tool/check.js +0 -142
  79. package/dist/commands/dev/tool/clean.d.ts +0 -2
  80. package/dist/commands/dev/tool/clean.js +0 -153
  81. package/dist/commands/dev/tool/generate.d.ts +0 -2
  82. package/dist/commands/dev/tool/generate.js +0 -28
  83. package/dist/commands/dev/tool/index.d.ts +0 -2
  84. package/dist/commands/dev/tool/index.js +0 -14
  85. package/dist/commands/dev/tool/init.d.ts +0 -2
  86. package/dist/commands/dev/tool/init.js +0 -320
  87. package/dist/commands/dev/tool/shared.d.ts +0 -5
  88. package/dist/commands/dev/tool/shared.js +0 -256
  89. package/dist/commands/dev/tool/status.d.ts +0 -2
  90. package/dist/commands/dev/tool/status.js +0 -136
  91. package/dist/commands/dev/tool-generate.spec.d.ts +0 -1
  92. package/dist/commands/dev/tool-generate.spec.js +0 -163
  93. package/dist/commands/dev/tool.d.ts +0 -2
  94. package/dist/commands/dev/tool.js +0 -559
  95. package/dist/commands/dev/tool.spec.d.ts +0 -1
  96. package/dist/commands/dev/tool.spec.js +0 -48
  97. package/dist/commands/docs/index.d.ts +0 -4
  98. package/dist/commands/docs/index.js +0 -18
  99. package/dist/commands/install/index.d.ts +0 -8
  100. package/dist/commands/install/index.js +0 -300
  101. package/dist/commands/install/index.spec.d.ts +0 -1
  102. package/dist/commands/install/index.spec.js +0 -143
  103. package/dist/commands/install.d.ts +0 -3
  104. package/dist/commands/install.js +0 -147
  105. package/dist/commands/models/create.d.ts +0 -1
  106. package/dist/commands/models/create.js +0 -213
  107. package/dist/commands/models/create.spec.d.ts +0 -1
  108. package/dist/commands/models/create.spec.js +0 -125
  109. package/dist/commands/models/index.d.ts +0 -3
  110. package/dist/commands/models/index.js +0 -60
  111. package/dist/commands/models/index.spec.d.ts +0 -1
  112. package/dist/commands/models/index.spec.js +0 -76
  113. package/dist/commands/models/selector.d.ts +0 -8
  114. package/dist/commands/models/selector.js +0 -53
  115. package/dist/commands/query/index.d.ts +0 -3
  116. package/dist/commands/query/index.js +0 -131
  117. package/dist/commands/routes/index.d.ts +0 -3
  118. package/dist/commands/routes/index.js +0 -93
  119. package/dist/commands/routes.d.ts +0 -2
  120. package/dist/commands/routes.js +0 -101
  121. package/dist/commands/status/index.d.ts +0 -4
  122. package/dist/commands/status/index.js +0 -262
  123. package/dist/commands/status.d.ts +0 -3
  124. package/dist/commands/status.js +0 -33
  125. package/dist/commands/targets/index.d.ts +0 -3
  126. package/dist/commands/targets/index.js +0 -65
  127. package/dist/commands/targets/index.spec.d.ts +0 -1
  128. package/dist/commands/targets/index.spec.js +0 -105
  129. package/dist/commands/targets.d.ts +0 -2
  130. package/dist/commands/targets.js +0 -65
  131. package/dist/commands/teams/index.d.ts +0 -3
  132. package/dist/commands/teams/index.js +0 -49
  133. package/dist/commands/teams/index.spec.d.ts +0 -1
  134. package/dist/commands/teams/index.spec.js +0 -70
  135. package/dist/commands/teams/selector.d.ts +0 -8
  136. package/dist/commands/teams/selector.js +0 -55
  137. package/dist/commands/tools/index.d.ts +0 -3
  138. package/dist/commands/tools/index.js +0 -49
  139. package/dist/commands/tools/index.spec.d.ts +0 -1
  140. package/dist/commands/tools/index.spec.js +0 -70
  141. package/dist/commands/tools/selector.d.ts +0 -8
  142. package/dist/commands/tools/selector.js +0 -53
  143. package/dist/commands/uninstall/index.d.ts +0 -3
  144. package/dist/commands/uninstall/index.js +0 -106
  145. package/dist/commands/uninstall/index.spec.d.ts +0 -1
  146. package/dist/commands/uninstall/index.spec.js +0 -125
  147. package/dist/commands/uninstall.d.ts +0 -2
  148. package/dist/commands/uninstall.js +0 -83
  149. package/dist/components/ChatUI.d.ts +0 -16
  150. package/dist/components/ChatUI.js +0 -801
  151. package/dist/components/StatusView.d.ts +0 -10
  152. package/dist/components/StatusView.js +0 -39
  153. package/dist/lib/arkApiClient.d.ts +0 -53
  154. package/dist/lib/arkApiClient.js +0 -102
  155. package/dist/lib/arkApiProxy.d.ts +0 -9
  156. package/dist/lib/arkApiProxy.js +0 -22
  157. package/dist/lib/arkServiceProxy.d.ts +0 -14
  158. package/dist/lib/arkServiceProxy.js +0 -95
  159. package/dist/lib/arkStatus.d.ts +0 -10
  160. package/dist/lib/arkStatus.js +0 -79
  161. package/dist/lib/arkStatus.spec.d.ts +0 -1
  162. package/dist/lib/arkStatus.spec.js +0 -49
  163. package/dist/lib/chatClient.d.ts +0 -33
  164. package/dist/lib/chatClient.js +0 -99
  165. package/dist/lib/cluster.spec.d.ts +0 -1
  166. package/dist/lib/cluster.spec.js +0 -338
  167. package/dist/lib/commandUtils.d.ts +0 -4
  168. package/dist/lib/commandUtils.js +0 -18
  169. package/dist/lib/commandUtils.test.d.ts +0 -1
  170. package/dist/lib/commandUtils.test.js +0 -44
  171. package/dist/lib/commands.d.ts +0 -16
  172. package/dist/lib/commands.js +0 -29
  173. package/dist/lib/commands.spec.d.ts +0 -1
  174. package/dist/lib/commands.spec.js +0 -146
  175. package/dist/lib/config.spec.d.ts +0 -1
  176. package/dist/lib/config.spec.js +0 -99
  177. package/dist/lib/config.test.d.ts +0 -1
  178. package/dist/lib/config.test.js +0 -93
  179. package/dist/lib/consts.spec.d.ts +0 -1
  180. package/dist/lib/consts.spec.js +0 -15
  181. package/dist/lib/dev/tools/analyzer.d.ts +0 -30
  182. package/dist/lib/dev/tools/analyzer.js +0 -190
  183. package/dist/lib/dev/tools/discover_tools.py +0 -392
  184. package/dist/lib/dev/tools/mcp-types.d.ts +0 -28
  185. package/dist/lib/dev/tools/mcp-types.js +0 -86
  186. package/dist/lib/dev/tools/types.d.ts +0 -50
  187. package/dist/lib/dev/tools/types.js +0 -1
  188. package/dist/lib/errors.spec.d.ts +0 -1
  189. package/dist/lib/errors.spec.js +0 -221
  190. package/dist/lib/nextSteps.d.ts +0 -4
  191. package/dist/lib/nextSteps.js +0 -20
  192. package/dist/lib/nextSteps.spec.d.ts +0 -1
  193. package/dist/lib/nextSteps.spec.js +0 -59
  194. package/dist/lib/output.d.ts +0 -36
  195. package/dist/lib/output.js +0 -89
  196. package/dist/lib/output.spec.d.ts +0 -1
  197. package/dist/lib/output.spec.js +0 -123
  198. package/dist/lib/portUtils.d.ts +0 -8
  199. package/dist/lib/portUtils.js +0 -39
  200. package/dist/lib/startup.d.ts +0 -9
  201. package/dist/lib/startup.js +0 -93
  202. package/dist/lib/startup.spec.d.ts +0 -1
  203. package/dist/lib/startup.spec.js +0 -168
  204. package/dist/types/types.d.ts +0 -40
  205. package/dist/types/types.js +0 -1
  206. package/dist/ui/AgentSelector.d.ts +0 -8
  207. package/dist/ui/AgentSelector.js +0 -53
  208. package/dist/ui/ModelSelector.d.ts +0 -8
  209. package/dist/ui/ModelSelector.js +0 -53
  210. package/dist/ui/TeamSelector.d.ts +0 -8
  211. package/dist/ui/TeamSelector.js +0 -55
  212. package/dist/ui/ToolSelector.d.ts +0 -8
  213. package/dist/ui/ToolSelector.js +0 -53
  214. package/dist/ui/statusFormatter.spec.d.ts +0 -1
  215. package/dist/ui/statusFormatter.spec.js +0 -58
@@ -1,106 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import { execute } from '../../lib/commands.js';
4
- import inquirer from 'inquirer';
5
- import { showNoClusterError } from '../../lib/startup.js';
6
- import output from '../../lib/output.js';
7
- import { getInstallableServices } from '../../arkServices.js';
8
- async function uninstallService(service, verbose = false) {
9
- const helmArgs = ['uninstall', service.helmReleaseName, '--ignore-not-found'];
10
- // Only add namespace flag if service has explicit namespace
11
- if (service.namespace) {
12
- helmArgs.push('--namespace', service.namespace);
13
- }
14
- await execute('helm', helmArgs, { stdio: 'inherit' }, { verbose });
15
- }
16
- async function uninstallArk(config, serviceName, options = {}) {
17
- // Check cluster connectivity from config
18
- if (!config.clusterInfo) {
19
- showNoClusterError();
20
- process.exit(1);
21
- }
22
- const clusterInfo = config.clusterInfo;
23
- // Show cluster info
24
- output.success(`connected to cluster: ${chalk.bold(clusterInfo.context)}`);
25
- output.info(`type: ${clusterInfo.type}`);
26
- output.info(`namespace: ${clusterInfo.namespace}`);
27
- if (clusterInfo.ip) {
28
- output.info(`ip: ${clusterInfo.ip}`);
29
- }
30
- console.log(); // Add blank line after cluster info
31
- // If a specific service is requested, uninstall only that service
32
- if (serviceName) {
33
- const services = getInstallableServices();
34
- const service = Object.values(services).find((s) => s.name === serviceName);
35
- if (!service) {
36
- output.error(`service '${serviceName}' not found`);
37
- output.info('available services:');
38
- for (const s of Object.values(services)) {
39
- output.info(` ${s.name}`);
40
- }
41
- process.exit(1);
42
- }
43
- output.info(`uninstalling ${service.name}...`);
44
- try {
45
- await uninstallService(service, options.verbose);
46
- output.success(`${service.name} uninstalled successfully`);
47
- }
48
- catch (error) {
49
- output.error(`failed to uninstall ${service.name}`);
50
- console.error(error);
51
- process.exit(1);
52
- }
53
- return;
54
- }
55
- // Get installable services and iterate through them in reverse order for clean uninstall
56
- const services = getInstallableServices();
57
- const serviceEntries = Object.entries(services).reverse();
58
- for (const [, service] of serviceEntries) {
59
- let shouldUninstall = false;
60
- try {
61
- // Ask for confirmation
62
- shouldUninstall =
63
- options.yes ||
64
- (await inquirer.prompt([
65
- {
66
- type: 'confirm',
67
- name: 'shouldUninstall',
68
- message: `uninstall ${chalk.bold(service.name)}? ${service.description ? chalk.gray(`(${service.description.toLowerCase()})`) : ''}`,
69
- default: true,
70
- },
71
- ])).shouldUninstall;
72
- }
73
- catch (error) {
74
- // Handle Ctrl-C gracefully
75
- if (error && error.name === 'ExitPromptError') {
76
- console.log('\nUninstallation cancelled');
77
- process.exit(130); // Standard exit code for SIGINT
78
- }
79
- throw error;
80
- }
81
- if (!shouldUninstall) {
82
- output.warning(`skipping ${service.name}`);
83
- continue;
84
- }
85
- try {
86
- await uninstallService(service, options.verbose);
87
- console.log(); // Add blank line after command output
88
- }
89
- catch {
90
- // Continue with remaining charts on error
91
- console.log(); // Add blank line after error output
92
- }
93
- }
94
- }
95
- export function createUninstallCommand(config) {
96
- const command = new Command('uninstall');
97
- command
98
- .description('Uninstall ARK components using Helm')
99
- .argument('[service]', 'specific service to uninstall, or all if omitted')
100
- .option('-y, --yes', 'automatically confirm all uninstallations')
101
- .option('-v, --verbose', 'show commands being executed')
102
- .action(async (service, options) => {
103
- await uninstallArk(config, service, options);
104
- });
105
- return command;
106
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,125 +0,0 @@
1
- import { jest } from '@jest/globals';
2
- import { Command } from 'commander';
3
- const mockExeca = jest.fn(() => Promise.resolve());
4
- jest.unstable_mockModule('execa', () => ({
5
- execa: mockExeca,
6
- }));
7
- const mockGetClusterInfo = jest.fn();
8
- jest.unstable_mockModule('../../lib/cluster.js', () => ({
9
- getClusterInfo: mockGetClusterInfo,
10
- }));
11
- const mockGetInstallableServices = jest.fn();
12
- const mockArkServices = {};
13
- jest.unstable_mockModule('../../arkServices.js', () => ({
14
- getInstallableServices: mockGetInstallableServices,
15
- arkServices: mockArkServices,
16
- }));
17
- const mockOutput = {
18
- error: jest.fn(),
19
- info: jest.fn(),
20
- success: jest.fn(),
21
- warning: jest.fn(),
22
- };
23
- jest.unstable_mockModule('../../lib/output.js', () => ({
24
- default: mockOutput,
25
- }));
26
- const mockExit = jest.spyOn(process, 'exit').mockImplementation((() => {
27
- throw new Error('process.exit called');
28
- }));
29
- jest.spyOn(console, 'log').mockImplementation(() => { });
30
- jest.spyOn(console, 'error').mockImplementation(() => { });
31
- const { createUninstallCommand } = await import('./index.js');
32
- describe('uninstall command', () => {
33
- const mockConfig = {
34
- clusterInfo: {
35
- context: 'test-cluster',
36
- type: 'minikube',
37
- namespace: 'default',
38
- },
39
- };
40
- beforeEach(() => {
41
- jest.clearAllMocks();
42
- mockGetClusterInfo.mockResolvedValue({
43
- context: 'test-cluster',
44
- type: 'minikube',
45
- namespace: 'default',
46
- });
47
- });
48
- it('creates command with correct structure', () => {
49
- const command = createUninstallCommand(mockConfig);
50
- expect(command).toBeInstanceOf(Command);
51
- expect(command.name()).toBe('uninstall');
52
- });
53
- it('uninstalls single service with correct helm parameters', async () => {
54
- const mockService = {
55
- name: 'ark-api',
56
- helmReleaseName: 'ark-api',
57
- namespace: 'ark-system',
58
- };
59
- mockGetInstallableServices.mockReturnValue({
60
- 'ark-api': mockService,
61
- });
62
- const command = createUninstallCommand(mockConfig);
63
- await command.parseAsync(['node', 'test', 'ark-api']);
64
- expect(mockExeca).toHaveBeenCalledWith('helm', [
65
- 'uninstall',
66
- 'ark-api',
67
- '--ignore-not-found',
68
- '--namespace',
69
- 'ark-system',
70
- ], {
71
- stdio: 'inherit',
72
- });
73
- expect(mockOutput.success).toHaveBeenCalledWith('ark-api uninstalled successfully');
74
- });
75
- it('shows error when service not found', async () => {
76
- mockGetInstallableServices.mockReturnValue({
77
- 'ark-api': { name: 'ark-api' },
78
- 'ark-controller': { name: 'ark-controller' },
79
- });
80
- const command = createUninstallCommand(mockConfig);
81
- await expect(command.parseAsync(['node', 'test', 'invalid-service'])).rejects.toThrow('process.exit called');
82
- expect(mockOutput.error).toHaveBeenCalledWith("service 'invalid-service' not found");
83
- expect(mockOutput.info).toHaveBeenCalledWith('available services:');
84
- expect(mockOutput.info).toHaveBeenCalledWith(' ark-api');
85
- expect(mockOutput.info).toHaveBeenCalledWith(' ark-controller');
86
- expect(mockExit).toHaveBeenCalledWith(1);
87
- });
88
- it('handles service without namespace (uses current context)', async () => {
89
- const mockService = {
90
- name: 'ark-dashboard',
91
- helmReleaseName: 'ark-dashboard',
92
- // namespace is undefined - should use current context
93
- };
94
- mockGetInstallableServices.mockReturnValue({
95
- 'ark-dashboard': mockService,
96
- });
97
- const command = createUninstallCommand(mockConfig);
98
- await command.parseAsync(['node', 'test', 'ark-dashboard']);
99
- // Should NOT include --namespace flag
100
- expect(mockExeca).toHaveBeenCalledWith('helm', ['uninstall', 'ark-dashboard', '--ignore-not-found'], {
101
- stdio: 'inherit',
102
- });
103
- });
104
- it('handles helm uninstall error gracefully', async () => {
105
- const mockService = {
106
- name: 'ark-api',
107
- helmReleaseName: 'ark-api',
108
- namespace: 'ark-system',
109
- };
110
- mockGetInstallableServices.mockReturnValue({
111
- 'ark-api': mockService,
112
- });
113
- mockExeca.mockRejectedValue(new Error('helm failed'));
114
- const command = createUninstallCommand(mockConfig);
115
- await expect(command.parseAsync(['node', 'test', 'ark-api'])).rejects.toThrow('process.exit called');
116
- expect(mockOutput.error).toHaveBeenCalledWith('failed to uninstall ark-api');
117
- expect(mockExit).toHaveBeenCalledWith(1);
118
- });
119
- it('exits when cluster not connected', async () => {
120
- mockGetClusterInfo.mockResolvedValue({ error: true });
121
- const command = createUninstallCommand({});
122
- await expect(command.parseAsync(['node', 'test', 'ark-api'])).rejects.toThrow('process.exit called');
123
- expect(mockExit).toHaveBeenCalledWith(1);
124
- });
125
- });
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createUninstallCommand(): Command;
@@ -1,83 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import { execa } from 'execa';
4
- import inquirer from 'inquirer';
5
- import { isCommandAvailable } from '../lib/commandUtils.js';
6
- import { getClusterInfo } from '../lib/cluster.js';
7
- import output from '../lib/output.js';
8
- import { getInstallableServices } from '../arkServices.js';
9
- async function uninstallArk() {
10
- // Check if helm is installed
11
- const helmInstalled = await isCommandAvailable('helm');
12
- if (!helmInstalled) {
13
- output.error('helm is not installed. please install helm first:');
14
- output.info('https://helm.sh/docs/intro/install/');
15
- process.exit(1);
16
- }
17
- // Check if kubectl is installed
18
- const kubectlInstalled = await isCommandAvailable('kubectl');
19
- if (!kubectlInstalled) {
20
- output.error('kubectl is not installed. please install kubectl first:');
21
- output.info('https://kubernetes.io/docs/tasks/tools/');
22
- process.exit(1);
23
- }
24
- // Check cluster connectivity
25
- const clusterInfo = await getClusterInfo();
26
- if (clusterInfo.error) {
27
- output.error('no kubernetes cluster detected');
28
- output.info('please ensure you have a running cluster and kubectl is configured.');
29
- process.exit(1);
30
- }
31
- // Show cluster info
32
- output.success(`connected to cluster: ${chalk.bold(clusterInfo.context)}`);
33
- output.info(`type: ${clusterInfo.type}`);
34
- output.info(`namespace: ${clusterInfo.namespace}`);
35
- if (clusterInfo.ip) {
36
- output.info(`ip: ${clusterInfo.ip}`);
37
- }
38
- console.log(); // Add blank line after cluster info
39
- // Get installable services and iterate through them in reverse order for clean uninstall
40
- const services = getInstallableServices();
41
- const serviceEntries = Object.entries(services).reverse();
42
- for (const [, service] of serviceEntries) {
43
- // Ask for confirmation
44
- const { shouldUninstall } = await inquirer.prompt([
45
- {
46
- type: 'confirm',
47
- name: 'shouldUninstall',
48
- message: `uninstall ${chalk.bold(service.name)}? ${service.description ? chalk.gray(`(${service.description.toLowerCase()})`) : ''}`,
49
- default: true,
50
- },
51
- ]);
52
- if (!shouldUninstall) {
53
- output.warning(`skipping ${service.name}`);
54
- continue;
55
- }
56
- try {
57
- // Uninstall the release
58
- await execa('helm', [
59
- 'uninstall',
60
- service.helmReleaseName,
61
- '--namespace',
62
- service.namespace,
63
- '--ignore-not-found',
64
- ], {
65
- stdio: 'inherit',
66
- });
67
- console.log(); // Add blank line after command output
68
- }
69
- catch {
70
- // Continue with remaining charts on error
71
- console.log(); // Add blank line after error output
72
- }
73
- }
74
- }
75
- export function createUninstallCommand() {
76
- const command = new Command('uninstall');
77
- command
78
- .description('Uninstall ARK components using Helm')
79
- .action(async () => {
80
- await uninstallArk();
81
- });
82
- return command;
83
- }
@@ -1,16 +0,0 @@
1
- import * as React from 'react';
2
- import { ArkApiClient } from '../lib/arkApiClient.js';
3
- import { ArkApiProxy } from '../lib/arkApiProxy.js';
4
- interface ChatUIProps {
5
- initialTargetId?: string;
6
- arkApiClient: ArkApiClient;
7
- arkApiProxy: ArkApiProxy;
8
- config?: {
9
- chat?: {
10
- streaming?: boolean;
11
- outputFormat?: 'text' | 'markdown';
12
- };
13
- };
14
- }
15
- declare const ChatUI: React.FC<ChatUIProps>;
16
- export default ChatUI;