@agents-at-scale/ark 0.1.35 → 0.1.36-rc1

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 (223) hide show
  1. package/dist/arkServices.d.ts +42 -0
  2. package/dist/arkServices.js +138 -0
  3. package/dist/arkServices.spec.d.ts +1 -0
  4. package/dist/arkServices.spec.js +24 -0
  5. package/dist/charts/charts.d.ts +5 -0
  6. package/dist/charts/charts.js +6 -0
  7. package/dist/charts/dependencies.d.ts +6 -0
  8. package/dist/charts/dependencies.js +50 -0
  9. package/dist/charts/types.d.ts +40 -0
  10. package/dist/charts/types.js +1 -0
  11. package/dist/commands/agents/index.d.ts +3 -0
  12. package/dist/commands/agents/index.js +65 -0
  13. package/dist/commands/agents/index.spec.d.ts +1 -0
  14. package/dist/commands/agents/index.spec.js +67 -0
  15. package/dist/commands/agents/selector.d.ts +8 -0
  16. package/dist/commands/agents/selector.js +53 -0
  17. package/dist/commands/agents.d.ts +2 -0
  18. package/dist/commands/agents.js +53 -0
  19. package/dist/commands/chat/index.d.ts +3 -0
  20. package/dist/commands/chat/index.js +29 -0
  21. package/dist/commands/chat.d.ts +2 -0
  22. package/dist/commands/chat.js +45 -0
  23. package/dist/commands/cluster/get.d.ts +2 -0
  24. package/dist/commands/cluster/get.js +39 -0
  25. package/dist/commands/cluster/get.spec.d.ts +1 -0
  26. package/dist/commands/cluster/get.spec.js +92 -0
  27. package/dist/commands/cluster/index.d.ts +2 -1
  28. package/dist/commands/cluster/index.js +3 -5
  29. package/dist/commands/cluster/index.spec.d.ts +1 -0
  30. package/dist/commands/cluster/index.spec.js +24 -0
  31. package/dist/commands/completion/index.d.ts +3 -0
  32. package/dist/commands/completion/index.js +230 -0
  33. package/dist/commands/completion/index.spec.d.ts +1 -0
  34. package/dist/commands/completion/index.spec.js +34 -0
  35. package/dist/commands/completion.js +159 -2
  36. package/dist/commands/config/index.d.ts +3 -0
  37. package/dist/commands/config/index.js +42 -0
  38. package/dist/commands/config/index.spec.d.ts +1 -0
  39. package/dist/commands/config/index.spec.js +78 -0
  40. package/dist/commands/config.d.ts +0 -3
  41. package/dist/commands/config.js +38 -321
  42. package/dist/commands/dashboard/index.d.ts +4 -0
  43. package/dist/commands/dashboard/index.js +39 -0
  44. package/dist/commands/dashboard.d.ts +3 -0
  45. package/dist/commands/dashboard.js +39 -0
  46. package/dist/commands/dev/index.d.ts +3 -0
  47. package/dist/commands/dev/index.js +9 -0
  48. package/dist/commands/dev/tool/check.d.ts +2 -0
  49. package/dist/commands/dev/tool/check.js +142 -0
  50. package/dist/commands/dev/tool/clean.d.ts +2 -0
  51. package/dist/commands/dev/tool/clean.js +153 -0
  52. package/dist/commands/dev/tool/generate.d.ts +2 -0
  53. package/dist/commands/dev/tool/generate.js +28 -0
  54. package/dist/commands/dev/tool/index.d.ts +2 -0
  55. package/dist/commands/dev/tool/index.js +14 -0
  56. package/dist/commands/dev/tool/init.d.ts +2 -0
  57. package/dist/commands/dev/tool/init.js +320 -0
  58. package/dist/commands/dev/tool/shared.d.ts +5 -0
  59. package/dist/commands/dev/tool/shared.js +258 -0
  60. package/dist/commands/dev/tool/status.d.ts +2 -0
  61. package/dist/commands/dev/tool/status.js +136 -0
  62. package/dist/commands/dev/tool-generate.spec.d.ts +1 -0
  63. package/dist/commands/dev/tool-generate.spec.js +163 -0
  64. package/dist/commands/dev/tool.d.ts +2 -0
  65. package/dist/commands/dev/tool.js +559 -0
  66. package/dist/commands/dev/tool.spec.d.ts +1 -0
  67. package/dist/commands/dev/tool.spec.js +48 -0
  68. package/dist/commands/docs/index.d.ts +4 -0
  69. package/dist/commands/docs/index.js +18 -0
  70. package/dist/commands/generate/config.js +5 -24
  71. package/dist/commands/generate/generators/mcpserver.d.ts +2 -1
  72. package/dist/commands/generate/generators/mcpserver.js +26 -5
  73. package/dist/commands/generate/generators/project.js +22 -41
  74. package/dist/commands/generate/index.d.ts +2 -1
  75. package/dist/commands/generate/index.js +1 -1
  76. package/dist/commands/install/index.d.ts +8 -0
  77. package/dist/commands/install/index.js +295 -0
  78. package/dist/commands/install/index.spec.d.ts +1 -0
  79. package/dist/commands/install/index.spec.js +143 -0
  80. package/dist/commands/install.d.ts +3 -0
  81. package/dist/commands/install.js +147 -0
  82. package/dist/commands/models/create.d.ts +1 -0
  83. package/dist/commands/models/create.js +213 -0
  84. package/dist/commands/models/create.spec.d.ts +1 -0
  85. package/dist/commands/models/create.spec.js +125 -0
  86. package/dist/commands/models/index.d.ts +3 -0
  87. package/dist/commands/models/index.js +75 -0
  88. package/dist/commands/models/index.spec.d.ts +1 -0
  89. package/dist/commands/models/index.spec.js +96 -0
  90. package/dist/commands/models/selector.d.ts +8 -0
  91. package/dist/commands/models/selector.js +53 -0
  92. package/dist/commands/query/index.d.ts +3 -0
  93. package/dist/commands/query/index.js +24 -0
  94. package/dist/commands/query/index.spec.d.ts +1 -0
  95. package/dist/commands/query/index.spec.js +53 -0
  96. package/dist/commands/routes/index.d.ts +3 -0
  97. package/dist/commands/routes/index.js +93 -0
  98. package/dist/commands/routes.d.ts +2 -0
  99. package/dist/commands/routes.js +101 -0
  100. package/dist/commands/status/index.d.ts +3 -0
  101. package/dist/commands/status/index.js +281 -0
  102. package/dist/commands/status.d.ts +3 -0
  103. package/dist/commands/status.js +33 -0
  104. package/dist/commands/targets/index.d.ts +3 -0
  105. package/dist/commands/targets/index.js +72 -0
  106. package/dist/commands/targets/index.spec.d.ts +1 -0
  107. package/dist/commands/targets/index.spec.js +154 -0
  108. package/dist/commands/targets.d.ts +2 -0
  109. package/dist/commands/targets.js +65 -0
  110. package/dist/commands/teams/index.d.ts +3 -0
  111. package/dist/commands/teams/index.js +64 -0
  112. package/dist/commands/teams/index.spec.d.ts +1 -0
  113. package/dist/commands/teams/index.spec.js +70 -0
  114. package/dist/commands/teams/selector.d.ts +8 -0
  115. package/dist/commands/teams/selector.js +55 -0
  116. package/dist/commands/tools/index.d.ts +3 -0
  117. package/dist/commands/tools/index.js +49 -0
  118. package/dist/commands/tools/index.spec.d.ts +1 -0
  119. package/dist/commands/tools/index.spec.js +70 -0
  120. package/dist/commands/tools/selector.d.ts +8 -0
  121. package/dist/commands/tools/selector.js +53 -0
  122. package/dist/commands/uninstall/index.d.ts +3 -0
  123. package/dist/commands/uninstall/index.js +101 -0
  124. package/dist/commands/uninstall/index.spec.d.ts +1 -0
  125. package/dist/commands/uninstall/index.spec.js +125 -0
  126. package/dist/commands/uninstall.d.ts +2 -0
  127. package/dist/commands/uninstall.js +83 -0
  128. package/dist/components/ChatUI.d.ts +16 -0
  129. package/dist/components/ChatUI.js +801 -0
  130. package/dist/components/StatusView.d.ts +10 -0
  131. package/dist/components/StatusView.js +39 -0
  132. package/dist/components/statusChecker.d.ts +14 -24
  133. package/dist/components/statusChecker.js +295 -129
  134. package/dist/config.d.ts +3 -22
  135. package/dist/config.js +10 -161
  136. package/dist/index.d.ts +1 -1
  137. package/dist/index.js +42 -42
  138. package/dist/lib/arkApiClient.d.ts +53 -0
  139. package/dist/lib/arkApiClient.js +102 -0
  140. package/dist/lib/arkApiProxy.d.ts +9 -0
  141. package/dist/lib/arkApiProxy.js +22 -0
  142. package/dist/lib/arkServiceProxy.d.ts +14 -0
  143. package/dist/lib/arkServiceProxy.js +95 -0
  144. package/dist/lib/arkStatus.d.ts +10 -0
  145. package/dist/lib/arkStatus.js +79 -0
  146. package/dist/lib/arkStatus.spec.d.ts +1 -0
  147. package/dist/lib/arkStatus.spec.js +49 -0
  148. package/dist/lib/chatClient.d.ts +33 -0
  149. package/dist/lib/chatClient.js +93 -0
  150. package/dist/lib/cluster.d.ts +2 -1
  151. package/dist/lib/cluster.js +37 -16
  152. package/dist/lib/cluster.spec.d.ts +1 -0
  153. package/dist/lib/cluster.spec.js +338 -0
  154. package/dist/lib/commandUtils.d.ts +4 -0
  155. package/dist/lib/commandUtils.js +18 -0
  156. package/dist/lib/commandUtils.test.d.ts +1 -0
  157. package/dist/lib/commandUtils.test.js +44 -0
  158. package/dist/lib/commands.d.ts +16 -0
  159. package/dist/lib/commands.js +29 -0
  160. package/dist/lib/commands.spec.d.ts +1 -0
  161. package/dist/lib/commands.spec.js +146 -0
  162. package/dist/lib/config.d.ts +26 -80
  163. package/dist/lib/config.js +70 -205
  164. package/dist/lib/config.spec.d.ts +1 -0
  165. package/dist/lib/config.spec.js +99 -0
  166. package/dist/lib/config.test.d.ts +1 -0
  167. package/dist/lib/config.test.js +93 -0
  168. package/dist/lib/consts.d.ts +0 -1
  169. package/dist/lib/consts.js +0 -2
  170. package/dist/lib/consts.spec.d.ts +1 -0
  171. package/dist/lib/consts.spec.js +15 -0
  172. package/dist/lib/dev/tools/analyzer.d.ts +30 -0
  173. package/dist/lib/dev/tools/analyzer.js +190 -0
  174. package/dist/lib/dev/tools/discover_tools.py +392 -0
  175. package/dist/lib/dev/tools/mcp-types.d.ts +28 -0
  176. package/dist/lib/dev/tools/mcp-types.js +86 -0
  177. package/dist/lib/dev/tools/types.d.ts +50 -0
  178. package/dist/lib/dev/tools/types.js +1 -0
  179. package/dist/lib/errors.js +1 -1
  180. package/dist/lib/errors.spec.d.ts +1 -0
  181. package/dist/lib/errors.spec.js +221 -0
  182. package/dist/lib/exec.d.ts +0 -4
  183. package/dist/lib/exec.js +0 -11
  184. package/dist/lib/executeQuery.d.ts +20 -0
  185. package/dist/lib/executeQuery.js +135 -0
  186. package/dist/lib/executeQuery.spec.d.ts +1 -0
  187. package/dist/lib/executeQuery.spec.js +170 -0
  188. package/dist/lib/nextSteps.d.ts +4 -0
  189. package/dist/lib/nextSteps.js +20 -0
  190. package/dist/lib/nextSteps.spec.d.ts +1 -0
  191. package/dist/lib/nextSteps.spec.js +59 -0
  192. package/dist/lib/output.d.ts +36 -0
  193. package/dist/lib/output.js +89 -0
  194. package/dist/lib/output.spec.d.ts +1 -0
  195. package/dist/lib/output.spec.js +123 -0
  196. package/dist/lib/portUtils.d.ts +8 -0
  197. package/dist/lib/portUtils.js +39 -0
  198. package/dist/lib/queryRunner.d.ts +22 -0
  199. package/dist/lib/queryRunner.js +142 -0
  200. package/dist/lib/startup.d.ts +9 -0
  201. package/dist/lib/startup.js +87 -0
  202. package/dist/lib/startup.spec.d.ts +1 -0
  203. package/dist/lib/startup.spec.js +152 -0
  204. package/dist/lib/types.d.ts +87 -3
  205. package/dist/lib/versions.d.ts +23 -0
  206. package/dist/lib/versions.js +51 -0
  207. package/dist/types/types.d.ts +40 -0
  208. package/dist/types/types.js +1 -0
  209. package/dist/ui/AgentSelector.d.ts +8 -0
  210. package/dist/ui/AgentSelector.js +53 -0
  211. package/dist/ui/MainMenu.d.ts +5 -1
  212. package/dist/ui/MainMenu.js +226 -91
  213. package/dist/ui/ModelSelector.d.ts +8 -0
  214. package/dist/ui/ModelSelector.js +53 -0
  215. package/dist/ui/TeamSelector.d.ts +8 -0
  216. package/dist/ui/TeamSelector.js +55 -0
  217. package/dist/ui/ToolSelector.d.ts +8 -0
  218. package/dist/ui/ToolSelector.js +53 -0
  219. package/dist/ui/statusFormatter.d.ts +22 -7
  220. package/dist/ui/statusFormatter.js +39 -39
  221. package/dist/ui/statusFormatter.spec.d.ts +1 -0
  222. package/dist/ui/statusFormatter.spec.js +58 -0
  223. package/package.json +16 -5
@@ -28,7 +28,7 @@ _ark_completion() {
28
28
 
29
29
  case \${COMP_CWORD} in
30
30
  1)
31
- opts="cluster completion check help"
31
+ opts="agents chat cluster completion config dashboard dev generate install models routes status targets teams tools uninstall help"
32
32
  COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
33
33
  return 0
34
34
  ;;
@@ -49,6 +49,81 @@ _ark_completion() {
49
49
  COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
50
50
  return 0
51
51
  ;;
52
+ targets)
53
+ opts="list ls"
54
+ COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
55
+ return 0
56
+ ;;
57
+ agents)
58
+ opts="list ls"
59
+ COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
60
+ return 0
61
+ ;;
62
+ models)
63
+ opts="list ls create"
64
+ COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
65
+ return 0
66
+ ;;
67
+ teams)
68
+ opts="list ls"
69
+ COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
70
+ return 0
71
+ ;;
72
+ tools)
73
+ opts="list ls"
74
+ COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
75
+ return 0
76
+ ;;
77
+ dev)
78
+ opts="tool"
79
+ COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
80
+ return 0
81
+ ;;
82
+ generate)
83
+ opts="agent marketplace mcp-server project query team"
84
+ COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
85
+ return 0
86
+ ;;
87
+ chat)
88
+ # Dynamically fetch available targets using ark targets list
89
+ local targets
90
+ targets=$(ark targets list 2>/dev/null)
91
+ if [ -z "$targets" ]; then
92
+ # Fallback to common targets if API is not available
93
+ targets="agent/sample-agent agent/math agent/weather model/default"
94
+ fi
95
+ COMPREPLY=( $(compgen -W "\${targets}" -- \${cur}) )
96
+ return 0
97
+ ;;
98
+ esac
99
+ ;;
100
+ 3)
101
+ case \${COMP_WORDS[1]} in
102
+ dev)
103
+ case \${prev} in
104
+ tool)
105
+ opts="check init generate"
106
+ COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
107
+ return 0
108
+ ;;
109
+ esac
110
+ ;;
111
+ esac
112
+ ;;
113
+ 4)
114
+ # Handle path completion for dev tool commands
115
+ case \${COMP_WORDS[1]} in
116
+ dev)
117
+ if [[ \${COMP_WORDS[2]} == "tool" ]]; then
118
+ case \${COMP_WORDS[3]} in
119
+ check|init|generate)
120
+ # Complete with directories
121
+ COMPREPLY=( $(compgen -d -- \${cur}) )
122
+ return 0
123
+ ;;
124
+ esac
125
+ fi
126
+ ;;
52
127
  esac
53
128
  ;;
54
129
  esac
@@ -75,9 +150,22 @@ _ark() {
75
150
  case $state in
76
151
  command)
77
152
  _values 'ark commands' \\
153
+ 'agents[List available agents]' \\
154
+ 'chat[Interactive chat with agents and models]' \\
78
155
  'cluster[Cluster management commands]' \\
79
156
  'completion[Generate shell completion scripts]' \\
80
- 'check[Check system components]' \\
157
+ 'config[Configuration management]' \\
158
+ 'dashboard[Open ARK dashboard]' \\
159
+ 'dev[Development tools for ARK]' \\
160
+ 'generate[Generate ARK resources]' \\
161
+ 'install[Install ARK services]' \\
162
+ 'models[List available models]' \\
163
+ 'routes[List available routes]' \\
164
+ 'status[Check system status]' \\
165
+ 'targets[List available query targets]' \\
166
+ 'teams[List available teams]' \\
167
+ 'tools[List available tools]' \\
168
+ 'uninstall[Uninstall ARK services]' \\
81
169
  'help[Show help information]'
82
170
  ;;
83
171
  subcommand)
@@ -96,6 +184,75 @@ _ark() {
96
184
  _values 'check commands' \\
97
185
  'status[Check system status]'
98
186
  ;;
187
+ targets)
188
+ _values 'targets commands' \\
189
+ 'list[List all available targets]' \\
190
+ 'ls[List all available targets]'
191
+ ;;
192
+ agents)
193
+ _values 'agents commands' \\
194
+ 'list[List all available agents]' \\
195
+ 'ls[List all available agents]'
196
+ ;;
197
+ models)
198
+ _values 'models commands' \\
199
+ 'list[List all available models]' \\
200
+ 'ls[List all available models]' \\
201
+ 'create[Create a new model]'
202
+ ;;
203
+ teams)
204
+ _values 'teams commands' \\
205
+ 'list[List all available teams]' \\
206
+ 'ls[List all available teams]'
207
+ ;;
208
+ tools)
209
+ _values 'tools commands' \\
210
+ 'list[List all available tools]' \\
211
+ 'ls[List all available tools]'
212
+ ;;
213
+ dev)
214
+ _values 'dev commands' \\
215
+ 'tool[MCP tool development utilities]'
216
+ ;;
217
+ generate)
218
+ _values 'generate types' \\
219
+ 'agent[Generate a new agent]' \\
220
+ 'marketplace[Generate marketplace content]' \\
221
+ 'mcp-server[Generate MCP server]' \\
222
+ 'project[Generate a new project]' \\
223
+ 'query[Generate a query]' \\
224
+ 'team[Generate a team]'
225
+ ;;
226
+ chat)
227
+ # Get available targets dynamically
228
+ local -a targets
229
+ targets=($(ark targets list 2>/dev/null))
230
+ if [ \${#targets[@]} -eq 0 ]; then
231
+ targets=('agent/sample-agent' 'agent/math' 'agent/weather' 'model/default')
232
+ fi
233
+ _values 'available targets' \${targets[@]}
234
+ ;;
235
+ esac
236
+ ;;
237
+ args)
238
+ case \$words[2] in
239
+ dev)
240
+ if [[ \$words[3] == "tool" ]]; then
241
+ case \$words[4] in
242
+ check|init|generate)
243
+ # Complete with directories
244
+ _files -/
245
+ ;;
246
+ *)
247
+ _values 'tool commands' \\
248
+ 'check[Check the status of an MCP tool project]' \\
249
+ 'init[Initialize an MCP tool project]' \\
250
+ 'generate[Generate project files from templates]' \\
251
+ 'clean[Remove template-generated files]'
252
+ ;;
253
+ esac
254
+ fi
255
+ ;;
99
256
  esac
100
257
  ;;
101
258
  esac
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ import { type ArkConfig } from '../../lib/config.js';
3
+ export declare function createConfigCommand(_: ArkConfig): Command;
@@ -0,0 +1,42 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { loadConfig, getConfigPaths, formatConfig, } from '../../lib/config.js';
4
+ import fs from 'fs';
5
+ export function createConfigCommand(_) {
6
+ const configCommand = new Command('config');
7
+ configCommand.description('Show current configuration').action(() => {
8
+ const config = loadConfig();
9
+ const paths = getConfigPaths();
10
+ console.log();
11
+ // User config
12
+ if (fs.existsSync(paths.user)) {
13
+ console.log(chalk.green('✓'), chalk.white(paths.user));
14
+ }
15
+ else {
16
+ console.log(chalk.red('✗'), chalk.white(paths.user), chalk.gray(`doesn't exist`));
17
+ }
18
+ // Project config
19
+ if (fs.existsSync(paths.project)) {
20
+ console.log(chalk.green('✓'), chalk.white(paths.project));
21
+ }
22
+ else {
23
+ console.log(chalk.red('✗'), chalk.white(paths.project), chalk.gray(`doesn't exist`));
24
+ }
25
+ // Environment variables
26
+ if (process.env.ARK_CHAT_STREAMING !== undefined) {
27
+ console.log(chalk.green('✓'), chalk.white('ARK_CHAT_STREAMING'), chalk.gray(process.env.ARK_CHAT_STREAMING));
28
+ }
29
+ else {
30
+ console.log(chalk.red('✗'), chalk.white('ARK_CHAT_STREAMING'), chalk.gray('not set'));
31
+ }
32
+ if (process.env.ARK_CHAT_OUTPUT_FORMAT !== undefined) {
33
+ console.log(chalk.green('✓'), chalk.white('ARK_CHAT_OUTPUT_FORMAT'), chalk.gray(process.env.ARK_CHAT_OUTPUT_FORMAT));
34
+ }
35
+ else {
36
+ console.log(chalk.red('✗'), chalk.white('ARK_CHAT_OUTPUT_FORMAT'), chalk.gray('not set'));
37
+ }
38
+ console.log();
39
+ console.log(formatConfig(config));
40
+ });
41
+ return configCommand;
42
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,78 @@
1
+ import { jest } from '@jest/globals';
2
+ import { Command } from 'commander';
3
+ const mockLoadConfig = jest.fn();
4
+ const mockGetConfigPaths = jest.fn();
5
+ const mockFormatConfig = jest.fn();
6
+ jest.unstable_mockModule('../../lib/config.js', () => ({
7
+ loadConfig: mockLoadConfig,
8
+ getConfigPaths: mockGetConfigPaths,
9
+ formatConfig: mockFormatConfig,
10
+ }));
11
+ const mockExistsSync = jest.fn();
12
+ jest.unstable_mockModule('fs', () => ({
13
+ default: {
14
+ existsSync: mockExistsSync,
15
+ },
16
+ existsSync: mockExistsSync,
17
+ }));
18
+ const mockConsoleLog = jest.spyOn(console, 'log').mockImplementation(() => { });
19
+ const { createConfigCommand } = await import('./index.js');
20
+ describe('config command', () => {
21
+ beforeEach(() => {
22
+ jest.clearAllMocks();
23
+ // Reset environment variables
24
+ delete process.env.ARK_CHAT_STREAMING;
25
+ delete process.env.ARK_CHAT_OUTPUT_FORMAT;
26
+ });
27
+ it('creates command with correct structure', () => {
28
+ const command = createConfigCommand({});
29
+ expect(command).toBeInstanceOf(Command);
30
+ expect(command.name()).toBe('config');
31
+ });
32
+ it('displays config paths and environment variables', async () => {
33
+ const mockConfig = { defaultModel: 'test-model' };
34
+ const mockPaths = {
35
+ user: '/home/user/.arkrc.yaml',
36
+ project: '/project/.arkrc.yaml',
37
+ };
38
+ mockLoadConfig.mockReturnValue(mockConfig);
39
+ mockGetConfigPaths.mockReturnValue(mockPaths);
40
+ mockFormatConfig.mockReturnValue('formatted config');
41
+ mockExistsSync.mockReturnValue(true);
42
+ const command = createConfigCommand({});
43
+ await command.parseAsync(['node', 'test']);
44
+ expect(mockLoadConfig).toHaveBeenCalled();
45
+ expect(mockGetConfigPaths).toHaveBeenCalled();
46
+ expect(mockFormatConfig).toHaveBeenCalledWith(mockConfig);
47
+ expect(mockExistsSync).toHaveBeenCalledWith(mockPaths.user);
48
+ expect(mockExistsSync).toHaveBeenCalledWith(mockPaths.project);
49
+ });
50
+ it('shows when config files do not exist', async () => {
51
+ const mockPaths = {
52
+ user: '/home/user/.arkrc.yaml',
53
+ project: '/project/.arkrc.yaml',
54
+ };
55
+ mockLoadConfig.mockReturnValue({});
56
+ mockGetConfigPaths.mockReturnValue(mockPaths);
57
+ mockFormatConfig.mockReturnValue('');
58
+ mockExistsSync.mockReturnValue(false);
59
+ const command = createConfigCommand({});
60
+ await command.parseAsync(['node', 'test']);
61
+ expect(mockExistsSync).toHaveBeenCalledWith(mockPaths.user);
62
+ expect(mockExistsSync).toHaveBeenCalledWith(mockPaths.project);
63
+ // Should show that files don't exist
64
+ expect(mockConsoleLog).toHaveBeenCalled();
65
+ });
66
+ it('displays environment variables when set', async () => {
67
+ process.env.ARK_CHAT_STREAMING = 'true';
68
+ process.env.ARK_CHAT_OUTPUT_FORMAT = 'json';
69
+ mockLoadConfig.mockReturnValue({});
70
+ mockGetConfigPaths.mockReturnValue({ user: '', project: '' });
71
+ mockFormatConfig.mockReturnValue('');
72
+ mockExistsSync.mockReturnValue(false);
73
+ const command = createConfigCommand({});
74
+ await command.parseAsync(['node', 'test']);
75
+ // Should display the environment variables
76
+ expect(mockConsoleLog).toHaveBeenCalled();
77
+ });
78
+ });
@@ -1,5 +1,2 @@
1
- /**
2
- * Configuration management commands for ARK CLI
3
- */
4
1
  import { Command } from 'commander';
5
2
  export declare function createConfigCommand(): Command;