@agents-at-scale/ark 0.1.53 → 0.1.56

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 (141) hide show
  1. package/dist/arkServices.js +14 -0
  2. package/dist/commands/completion/index.js +9 -6
  3. package/dist/commands/export/index.js +6 -5
  4. package/dist/commands/generate/generators/agent.js +2 -0
  5. package/dist/commands/generate/generators/marketplace.js +2 -0
  6. package/dist/commands/generate/generators/mcpserver.js +2 -0
  7. package/dist/commands/generate/generators/project.js +9 -2
  8. package/dist/commands/generate/generators/query.js +2 -0
  9. package/dist/commands/generate/generators/team.js +2 -1
  10. package/dist/commands/generate/templateDiscovery.js +1 -0
  11. package/dist/commands/generate/templateEngine.js +1 -3
  12. package/dist/commands/import/index.js +1 -1
  13. package/dist/commands/install/index.js +35 -31
  14. package/dist/commands/marketplace/index.js +18 -3
  15. package/dist/commands/models/create.js +1 -0
  16. package/dist/commands/models/kubernetes/manifest-builder.js +49 -10
  17. package/dist/commands/models/providers/anthropic.d.ts +15 -0
  18. package/dist/commands/models/providers/anthropic.js +72 -0
  19. package/dist/commands/models/providers/azure.d.ts +10 -7
  20. package/dist/commands/models/providers/azure.js +83 -21
  21. package/dist/commands/models/providers/factory.js +3 -0
  22. package/dist/commands/models/providers/index.d.ts +3 -4
  23. package/dist/commands/models/providers/index.js +1 -0
  24. package/dist/commands/uninstall/index.js +9 -3
  25. package/dist/components/ChatUI.js +21 -33
  26. package/dist/components/statusChecker.js +3 -3
  27. package/dist/index.js +0 -2
  28. package/dist/lib/arkApiClient.d.ts +14 -4
  29. package/dist/lib/arkApiClient.js +61 -42
  30. package/dist/lib/arkApiProxy.js +1 -0
  31. package/dist/lib/arkServiceProxy.js +5 -1
  32. package/dist/lib/chatClient.d.ts +4 -6
  33. package/dist/lib/chatClient.js +138 -95
  34. package/dist/lib/config.js +8 -3
  35. package/dist/lib/errors.d.ts +0 -1
  36. package/dist/lib/errors.js +3 -1
  37. package/dist/lib/marketplaceFetcher.d.ts +1 -0
  38. package/dist/lib/marketplaceFetcher.js +17 -0
  39. package/dist/lib/types.d.ts +0 -38
  40. package/dist/marketplaceServices.d.ts +6 -1
  41. package/dist/marketplaceServices.js +19 -3
  42. package/dist/types/arkService.d.ts +1 -0
  43. package/dist/types/marketplace.d.ts +1 -1
  44. package/dist/ui/asyncOperations/connectingToArk.js +2 -2
  45. package/package.json +19 -13
  46. package/templates/marketplace/marketplace.json.example +2 -2
  47. package/templates/tool/uv.lock +794 -95
  48. package/dist/arkServices.spec.d.ts +0 -1
  49. package/dist/arkServices.spec.js +0 -138
  50. package/dist/commands/agents/index.spec.d.ts +0 -1
  51. package/dist/commands/agents/index.spec.js +0 -67
  52. package/dist/commands/cluster/get.spec.d.ts +0 -1
  53. package/dist/commands/cluster/get.spec.js +0 -92
  54. package/dist/commands/cluster/index.spec.d.ts +0 -1
  55. package/dist/commands/cluster/index.spec.js +0 -24
  56. package/dist/commands/completion/index.spec.d.ts +0 -1
  57. package/dist/commands/completion/index.spec.js +0 -34
  58. package/dist/commands/config/index.spec.d.ts +0 -1
  59. package/dist/commands/config/index.spec.js +0 -78
  60. package/dist/commands/evaluation/index.d.ts +0 -3
  61. package/dist/commands/evaluation/index.js +0 -60
  62. package/dist/commands/evaluation/index.spec.d.ts +0 -1
  63. package/dist/commands/evaluation/index.spec.js +0 -161
  64. package/dist/commands/export/index.spec.d.ts +0 -1
  65. package/dist/commands/export/index.spec.js +0 -145
  66. package/dist/commands/import/index.spec.d.ts +0 -1
  67. package/dist/commands/import/index.spec.js +0 -46
  68. package/dist/commands/install/index.spec.d.ts +0 -1
  69. package/dist/commands/install/index.spec.js +0 -286
  70. package/dist/commands/marketplace/index.spec.d.ts +0 -1
  71. package/dist/commands/marketplace/index.spec.js +0 -88
  72. package/dist/commands/memory/index.spec.d.ts +0 -1
  73. package/dist/commands/memory/index.spec.js +0 -124
  74. package/dist/commands/models/create.spec.d.ts +0 -1
  75. package/dist/commands/models/create.spec.js +0 -167
  76. package/dist/commands/models/index.spec.d.ts +0 -1
  77. package/dist/commands/models/index.spec.js +0 -96
  78. package/dist/commands/models/providers/azure.spec.d.ts +0 -1
  79. package/dist/commands/models/providers/azure.spec.js +0 -232
  80. package/dist/commands/models/providers/bedrock.spec.d.ts +0 -1
  81. package/dist/commands/models/providers/bedrock.spec.js +0 -241
  82. package/dist/commands/models/providers/openai.spec.d.ts +0 -1
  83. package/dist/commands/models/providers/openai.spec.js +0 -180
  84. package/dist/commands/queries/delete.spec.d.ts +0 -1
  85. package/dist/commands/queries/delete.spec.js +0 -74
  86. package/dist/commands/queries/index.spec.d.ts +0 -1
  87. package/dist/commands/queries/index.spec.js +0 -167
  88. package/dist/commands/queries/list.spec.d.ts +0 -1
  89. package/dist/commands/queries/list.spec.js +0 -170
  90. package/dist/commands/queries/validation.spec.d.ts +0 -1
  91. package/dist/commands/queries/validation.spec.js +0 -27
  92. package/dist/commands/query/index.spec.d.ts +0 -1
  93. package/dist/commands/query/index.spec.js +0 -104
  94. package/dist/commands/targets/index.spec.d.ts +0 -1
  95. package/dist/commands/targets/index.spec.js +0 -154
  96. package/dist/commands/teams/index.spec.d.ts +0 -1
  97. package/dist/commands/teams/index.spec.js +0 -70
  98. package/dist/commands/tools/index.spec.d.ts +0 -1
  99. package/dist/commands/tools/index.spec.js +0 -70
  100. package/dist/commands/uninstall/index.spec.d.ts +0 -1
  101. package/dist/commands/uninstall/index.spec.js +0 -125
  102. package/dist/lib/arkServiceProxy.spec.d.ts +0 -1
  103. package/dist/lib/arkServiceProxy.spec.js +0 -100
  104. package/dist/lib/arkStatus.spec.d.ts +0 -1
  105. package/dist/lib/arkStatus.spec.js +0 -49
  106. package/dist/lib/chatClient.spec.d.ts +0 -1
  107. package/dist/lib/chatClient.spec.js +0 -108
  108. package/dist/lib/cluster.spec.d.ts +0 -1
  109. package/dist/lib/cluster.spec.js +0 -338
  110. package/dist/lib/commands.spec.d.ts +0 -1
  111. package/dist/lib/commands.spec.js +0 -146
  112. package/dist/lib/config.spec.d.ts +0 -1
  113. package/dist/lib/config.spec.js +0 -202
  114. package/dist/lib/duration.spec.d.ts +0 -1
  115. package/dist/lib/duration.spec.js +0 -13
  116. package/dist/lib/errors.spec.d.ts +0 -1
  117. package/dist/lib/errors.spec.js +0 -221
  118. package/dist/lib/executeEvaluation.d.ts +0 -16
  119. package/dist/lib/executeEvaluation.js +0 -155
  120. package/dist/lib/executeQuery.spec.d.ts +0 -1
  121. package/dist/lib/executeQuery.spec.js +0 -325
  122. package/dist/lib/kubectl.spec.d.ts +0 -1
  123. package/dist/lib/kubectl.spec.js +0 -192
  124. package/dist/lib/marketplaceFetcher.spec.d.ts +0 -1
  125. package/dist/lib/marketplaceFetcher.spec.js +0 -225
  126. package/dist/lib/nextSteps.spec.d.ts +0 -1
  127. package/dist/lib/nextSteps.spec.js +0 -59
  128. package/dist/lib/output.spec.d.ts +0 -1
  129. package/dist/lib/output.spec.js +0 -123
  130. package/dist/lib/startup.spec.d.ts +0 -1
  131. package/dist/lib/startup.spec.js +0 -152
  132. package/dist/lib/stdin.spec.d.ts +0 -1
  133. package/dist/lib/stdin.spec.js +0 -82
  134. package/dist/lib/timeout.spec.d.ts +0 -1
  135. package/dist/lib/timeout.spec.js +0 -14
  136. package/dist/lib/waitForReady.spec.d.ts +0 -1
  137. package/dist/lib/waitForReady.spec.js +0 -104
  138. package/dist/marketplaceServices.spec.d.ts +0 -1
  139. package/dist/marketplaceServices.spec.js +0 -74
  140. package/dist/ui/statusFormatter.spec.d.ts +0 -1
  141. package/dist/ui/statusFormatter.spec.js +0 -58
@@ -1 +0,0 @@
1
- export {};
@@ -1,104 +0,0 @@
1
- import { describe, it, expect, jest, beforeEach } from '@jest/globals';
2
- jest.unstable_mockModule('execa', () => ({
3
- execa: jest.fn(),
4
- }));
5
- const { execa } = await import('execa');
6
- const { waitForDeploymentReady, waitForServicesReady } = await import('./waitForReady.js');
7
- const mockedExeca = execa;
8
- describe('waitForDeploymentReady', () => {
9
- beforeEach(() => {
10
- jest.clearAllMocks();
11
- });
12
- it('returns true when deployment is ready', async () => {
13
- mockedExeca.mockResolvedValueOnce({
14
- stdout: 'deployment.apps/ark-controller condition met',
15
- stderr: '',
16
- exitCode: 0,
17
- });
18
- const result = await waitForDeploymentReady('ark-controller', 'ark-system', 30);
19
- expect(result).toBe(true);
20
- expect(mockedExeca).toHaveBeenCalledWith('kubectl', [
21
- 'wait',
22
- '--for=condition=available',
23
- 'deployment/ark-controller',
24
- '-n',
25
- 'ark-system',
26
- '--timeout=30s',
27
- ], { timeout: 30000 });
28
- });
29
- it('returns false on error', async () => {
30
- mockedExeca.mockRejectedValueOnce(new Error('kubectl error'));
31
- const result = await waitForDeploymentReady('ark-api', 'default', 10);
32
- expect(result).toBe(false);
33
- });
34
- });
35
- describe('waitForServicesReady', () => {
36
- beforeEach(() => {
37
- jest.clearAllMocks();
38
- });
39
- const service1 = {
40
- name: 'ark-controller',
41
- helmReleaseName: 'ark-controller',
42
- description: 'Core controller',
43
- enabled: true,
44
- category: 'core',
45
- namespace: 'ark-system',
46
- k8sDeploymentName: 'ark-controller',
47
- };
48
- const service2 = {
49
- name: 'ark-api',
50
- helmReleaseName: 'ark-api',
51
- description: 'API service',
52
- enabled: true,
53
- category: 'service',
54
- namespace: 'default',
55
- k8sDeploymentName: 'ark-api',
56
- };
57
- it('returns true when all services are ready', async () => {
58
- mockedExeca.mockResolvedValue({
59
- stdout: 'condition met',
60
- stderr: '',
61
- exitCode: 0,
62
- });
63
- const result = await waitForServicesReady([service1, service2], 30);
64
- expect(result).toBe(true);
65
- expect(mockedExeca).toHaveBeenCalledTimes(2);
66
- });
67
- it('returns false when any service fails', async () => {
68
- mockedExeca
69
- .mockResolvedValueOnce({ stdout: 'ok', stderr: '', exitCode: 0 })
70
- .mockRejectedValueOnce(new Error('timeout'));
71
- const result = await waitForServicesReady([service1, service2], 30);
72
- expect(result).toBe(false);
73
- });
74
- it('calls progress callback', async () => {
75
- mockedExeca.mockResolvedValue({
76
- stdout: 'ok',
77
- stderr: '',
78
- exitCode: 0,
79
- });
80
- const onProgress = jest.fn();
81
- await waitForServicesReady([service1], 30, onProgress);
82
- expect(onProgress).toHaveBeenCalledWith({
83
- serviceName: 'ark-controller',
84
- ready: true,
85
- });
86
- });
87
- it('skips services without deployment info', async () => {
88
- const incompleteService = {
89
- name: 'incomplete',
90
- helmReleaseName: 'incomplete',
91
- description: 'No deployment info',
92
- enabled: true,
93
- category: 'service',
94
- };
95
- mockedExeca.mockResolvedValue({
96
- stdout: 'ok',
97
- stderr: '',
98
- exitCode: 0,
99
- });
100
- const result = await waitForServicesReady([service1, incompleteService], 30);
101
- expect(result).toBe(true);
102
- expect(mockedExeca).toHaveBeenCalledTimes(1);
103
- });
104
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,74 +0,0 @@
1
- import { jest } from '@jest/globals';
2
- const mockGetMarketplaceServicesFromManifest = jest.fn();
3
- const mockGetMarketplaceAgentsFromManifest = jest.fn();
4
- const mockFetchMarketplaceManifest = jest.fn();
5
- jest.unstable_mockModule('./lib/marketplaceFetcher.js', () => ({
6
- getMarketplaceServicesFromManifest: mockGetMarketplaceServicesFromManifest,
7
- getMarketplaceAgentsFromManifest: mockGetMarketplaceAgentsFromManifest,
8
- fetchMarketplaceManifest: mockFetchMarketplaceManifest,
9
- }));
10
- const { getAllMarketplaceServices, getAllMarketplaceAgents, getMarketplaceItem, } = await import('./marketplaceServices.js');
11
- describe('marketplaceServices', () => {
12
- beforeEach(() => {
13
- jest.clearAllMocks();
14
- mockGetMarketplaceServicesFromManifest.mockClear();
15
- });
16
- describe('getAllMarketplaceServices', () => {
17
- it('returns manifest services when available', async () => {
18
- const mockServices = {
19
- 'new-service': {
20
- name: 'new-service',
21
- helmReleaseName: 'new-service',
22
- description: 'New service',
23
- enabled: true,
24
- category: 'marketplace',
25
- namespace: 'new-ns',
26
- },
27
- };
28
- mockGetMarketplaceServicesFromManifest.mockResolvedValue(mockServices);
29
- const result = await getAllMarketplaceServices();
30
- expect(result).toEqual(mockServices);
31
- expect(mockGetMarketplaceServicesFromManifest).toHaveBeenCalled();
32
- });
33
- it('returns null when manifest unavailable', async () => {
34
- mockGetMarketplaceServicesFromManifest.mockResolvedValue(null);
35
- const result = await getAllMarketplaceServices();
36
- expect(result).toBeNull();
37
- });
38
- });
39
- describe('getMarketplaceItem', () => {
40
- it('returns service by path from manifest', async () => {
41
- const mockServices = {
42
- 'test-service': {
43
- name: 'test-service',
44
- helmReleaseName: 'test-service',
45
- description: 'Test',
46
- enabled: true,
47
- category: 'marketplace',
48
- },
49
- };
50
- mockGetMarketplaceServicesFromManifest.mockResolvedValue(mockServices);
51
- const result = await getMarketplaceItem('marketplace/services/test-service');
52
- expect(result).toEqual(mockServices['test-service']);
53
- });
54
- it('returns undefined for non-existent service', async () => {
55
- const mockServices = {
56
- 'test-service': {
57
- name: 'test-service',
58
- helmReleaseName: 'test-service',
59
- description: 'Test',
60
- enabled: true,
61
- category: 'marketplace',
62
- },
63
- };
64
- mockGetMarketplaceServicesFromManifest.mockResolvedValue(mockServices);
65
- const result = await getMarketplaceItem('marketplace/services/non-existent');
66
- expect(result).toBeUndefined();
67
- });
68
- it('returns null when marketplace unavailable', async () => {
69
- mockGetMarketplaceServicesFromManifest.mockResolvedValue(null);
70
- const result = await getMarketplaceItem('marketplace/services/phoenix');
71
- expect(result).toBeNull();
72
- });
73
- });
74
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,58 +0,0 @@
1
- import { describe, it, expect, jest, beforeEach, afterEach } from '@jest/globals';
2
- import { StatusFormatter } from './statusFormatter.js';
3
- describe('StatusFormatter', () => {
4
- let consoleLogSpy;
5
- beforeEach(() => {
6
- consoleLogSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
7
- });
8
- afterEach(() => {
9
- jest.restoreAllMocks();
10
- });
11
- it('prints sections', () => {
12
- const sections = [
13
- {
14
- title: 'Test Section',
15
- lines: [{ icon: '✓', status: 'ok', name: 'test' }],
16
- },
17
- ];
18
- StatusFormatter.printSections(sections);
19
- expect(consoleLogSpy).toHaveBeenCalled();
20
- const calls = consoleLogSpy.mock.calls.map((c) => c[0]);
21
- expect(calls.some((c) => c?.includes('Test Section'))).toBe(true);
22
- expect(calls.some((c) => c?.includes('✓ ok'))).toBe(true);
23
- });
24
- it('prints line with details', () => {
25
- const sections = [
26
- {
27
- title: 'Test',
28
- lines: [{ icon: '✓', status: 'ok', name: 'test', details: 'v1.0.0' }],
29
- },
30
- ];
31
- StatusFormatter.printSections(sections);
32
- const calls = consoleLogSpy.mock.calls.map((c) => c[0]);
33
- expect(calls.some((c) => c?.includes('v1.0.0'))).toBe(true);
34
- });
35
- it('prints subtext', () => {
36
- const sections = [
37
- {
38
- title: 'Test',
39
- lines: [
40
- { icon: '✗', status: 'error', name: 'test', subtext: 'Try again' },
41
- ],
42
- },
43
- ];
44
- StatusFormatter.printSections(sections);
45
- const calls = consoleLogSpy.mock.calls.map((c) => c[0]);
46
- expect(calls.some((c) => c?.includes('Try again'))).toBe(true);
47
- });
48
- it('adds spacing between sections', () => {
49
- const sections = [
50
- { title: 'First', lines: [] },
51
- { title: 'Second', lines: [] },
52
- ];
53
- StatusFormatter.printSections(sections);
54
- const calls = consoleLogSpy.mock.calls;
55
- // Should have blank lines for spacing
56
- expect(calls.filter((c) => c.length === 0).length).toBeGreaterThan(0);
57
- });
58
- });