@brookmind/ai-toolkit 1.2.0 → 1.2.2

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 (71) hide show
  1. package/README.md +8 -12
  2. package/dist/__tests__/constants.test.d.ts +2 -0
  3. package/dist/__tests__/constants.test.d.ts.map +1 -0
  4. package/dist/__tests__/constants.test.js +102 -0
  5. package/dist/__tests__/constants.test.js.map +1 -0
  6. package/dist/__tests__/index.test.js +6 -105
  7. package/dist/__tests__/index.test.js.map +1 -1
  8. package/dist/__tests__/integration/installer.test.d.ts +2 -0
  9. package/dist/__tests__/integration/installer.test.d.ts.map +1 -0
  10. package/dist/__tests__/integration/installer.test.js +450 -0
  11. package/dist/__tests__/integration/installer.test.js.map +1 -0
  12. package/dist/__tests__/services/installers.test.d.ts +2 -0
  13. package/dist/__tests__/services/installers.test.d.ts.map +1 -0
  14. package/dist/__tests__/services/installers.test.js +250 -0
  15. package/dist/__tests__/services/installers.test.js.map +1 -0
  16. package/dist/__tests__/services/opencode.test.d.ts +2 -0
  17. package/dist/__tests__/services/opencode.test.d.ts.map +1 -0
  18. package/dist/__tests__/services/opencode.test.js +120 -0
  19. package/dist/__tests__/services/opencode.test.js.map +1 -0
  20. package/dist/__tests__/ui/categorize.test.d.ts +2 -0
  21. package/dist/__tests__/ui/categorize.test.d.ts.map +1 -0
  22. package/dist/__tests__/ui/categorize.test.js +225 -0
  23. package/dist/__tests__/ui/categorize.test.js.map +1 -0
  24. package/dist/__tests__/ui/choices.test.d.ts +2 -0
  25. package/dist/__tests__/ui/choices.test.d.ts.map +1 -0
  26. package/dist/__tests__/ui/choices.test.js +223 -0
  27. package/dist/__tests__/ui/choices.test.js.map +1 -0
  28. package/dist/__tests__/ui/display.test.d.ts +2 -0
  29. package/dist/__tests__/ui/display.test.d.ts.map +1 -0
  30. package/dist/__tests__/ui/display.test.js +138 -0
  31. package/dist/__tests__/ui/display.test.js.map +1 -0
  32. package/dist/__tests__/utils/fs.test.d.ts +2 -0
  33. package/dist/__tests__/utils/fs.test.d.ts.map +1 -0
  34. package/dist/__tests__/utils/fs.test.js +301 -0
  35. package/dist/__tests__/utils/fs.test.js.map +1 -0
  36. package/dist/__tests__/utils/terminal.test.d.ts +2 -0
  37. package/dist/__tests__/utils/terminal.test.d.ts.map +1 -0
  38. package/dist/__tests__/utils/terminal.test.js +97 -0
  39. package/dist/__tests__/utils/terminal.test.js.map +1 -0
  40. package/dist/constants.d.ts +1 -0
  41. package/dist/constants.d.ts.map +1 -1
  42. package/dist/constants.js +3 -0
  43. package/dist/constants.js.map +1 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +24 -29
  46. package/dist/index.js.map +1 -1
  47. package/dist/services/installers.d.ts +1 -1
  48. package/dist/services/installers.d.ts.map +1 -1
  49. package/dist/services/installers.js +21 -14
  50. package/dist/services/installers.js.map +1 -1
  51. package/dist/types.d.ts +15 -0
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/types.js +28 -1
  54. package/dist/types.js.map +1 -1
  55. package/dist/ui/categorize.d.ts +1 -0
  56. package/dist/ui/categorize.d.ts.map +1 -1
  57. package/dist/ui/categorize.js +15 -3
  58. package/dist/ui/categorize.js.map +1 -1
  59. package/dist/ui/choices.d.ts +1 -0
  60. package/dist/ui/choices.d.ts.map +1 -1
  61. package/dist/ui/choices.js +14 -3
  62. package/dist/ui/choices.js.map +1 -1
  63. package/dist/ui/display.d.ts +1 -2
  64. package/dist/ui/display.d.ts.map +1 -1
  65. package/dist/ui/display.js +14 -17
  66. package/dist/ui/display.js.map +1 -1
  67. package/dist/utils/fs.d.ts +14 -0
  68. package/dist/utils/fs.d.ts.map +1 -1
  69. package/dist/utils/fs.js +72 -2
  70. package/dist/utils/fs.js.map +1 -1
  71. package/package.json +4 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categorize.test.js","sourceRoot":"","sources":["../../../src/__tests__/ui/categorize.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=choices.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"choices.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/ui/choices.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,223 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
+ import { buildAgentChoices, buildSkillChoices, buildCommandChoices, buildMcpChoices, buildThemeChoices, } from '../../ui/choices.js';
3
+ vi.mock('../../utils/fs.js', () => ({
4
+ exists: vi.fn(),
5
+ readMcpConfig: vi.fn(),
6
+ }));
7
+ vi.mock('../../services/installers.js', () => ({
8
+ getInstalledMcps: vi.fn(),
9
+ isThemeInstalled: vi.fn(),
10
+ }));
11
+ vi.mock('../../constants.js', async (importOriginal) => {
12
+ const original = await importOriginal();
13
+ return {
14
+ ...original,
15
+ getDescription: vi.fn((name) => {
16
+ const descriptions = {
17
+ 'test-agent': 'Test agent description',
18
+ 'test-skill': 'Test skill description',
19
+ 'test-command': 'Test command description',
20
+ 'test-mcp': 'Test MCP description',
21
+ 'test-theme': 'Test theme description',
22
+ };
23
+ return descriptions[name] ?? null;
24
+ }),
25
+ MCP_DISPLAY_NAMES: {
26
+ 'pg-aiguide': 'postgres-mcp',
27
+ },
28
+ OPENCODE_DIR: '/fake/opencode',
29
+ TOOLS_DIR: '/fake/tools',
30
+ };
31
+ });
32
+ describe('ui/choices', () => {
33
+ let mockExists;
34
+ let mockReadMcpConfig;
35
+ let mockGetInstalledMcps;
36
+ let mockIsThemeInstalled;
37
+ beforeEach(async () => {
38
+ vi.resetAllMocks();
39
+ const fsModule = await import('../../utils/fs.js');
40
+ mockExists = fsModule.exists;
41
+ mockReadMcpConfig = fsModule.readMcpConfig;
42
+ const installersModule = await import('../../services/installers.js');
43
+ mockGetInstalledMcps = installersModule.getInstalledMcps;
44
+ mockIsThemeInstalled = installersModule.isThemeInstalled;
45
+ mockExists.mockResolvedValue(false);
46
+ mockReadMcpConfig.mockResolvedValue({});
47
+ mockGetInstalledMcps.mockResolvedValue(new Set());
48
+ mockIsThemeInstalled.mockResolvedValue(false);
49
+ });
50
+ afterEach(() => {
51
+ vi.clearAllMocks();
52
+ });
53
+ describe('buildAgentChoices', () => {
54
+ it('should return empty array for empty agents', async () => {
55
+ const result = await buildAgentChoices([]);
56
+ expect(result).toEqual([]);
57
+ });
58
+ it('should build choices for new agents', async () => {
59
+ mockExists.mockResolvedValue(false);
60
+ const result = await buildAgentChoices(['test-agent']);
61
+ expect(result).toHaveLength(1);
62
+ const first = result[0];
63
+ expect(first).toBeDefined();
64
+ expect(first?.value).toBe('test-agent');
65
+ expect(first?.name).toContain('test-agent');
66
+ expect(first?.name).toContain('Test agent description');
67
+ expect(first?.name).not.toContain('(installed)');
68
+ });
69
+ it('should mark installed agents', async () => {
70
+ mockExists.mockResolvedValue(true);
71
+ const result = await buildAgentChoices(['test-agent']);
72
+ const first = result[0];
73
+ expect(first?.name).toContain('(installed)');
74
+ });
75
+ it('should build choices for multiple agents', async () => {
76
+ mockExists.mockResolvedValueOnce(false).mockResolvedValueOnce(true);
77
+ const result = await buildAgentChoices(['agent1', 'agent2']);
78
+ expect(result).toHaveLength(2);
79
+ expect(result[0]?.value).toBe('agent1');
80
+ expect(result[1]?.value).toBe('agent2');
81
+ });
82
+ it('should handle agents without description', async () => {
83
+ mockExists.mockResolvedValue(false);
84
+ const result = await buildAgentChoices(['unknown-agent']);
85
+ const first = result[0];
86
+ expect(first?.value).toBe('unknown-agent');
87
+ expect(first?.name).toContain('unknown-agent');
88
+ });
89
+ });
90
+ describe('buildSkillChoices', () => {
91
+ it('should return empty array for empty skills', async () => {
92
+ const result = await buildSkillChoices([]);
93
+ expect(result).toEqual([]);
94
+ });
95
+ it('should build choices for new skills', async () => {
96
+ mockExists.mockResolvedValue(false);
97
+ const result = await buildSkillChoices(['test-skill']);
98
+ expect(result).toHaveLength(1);
99
+ const first = result[0];
100
+ expect(first?.value).toBe('test-skill');
101
+ expect(first?.name).toContain('test-skill');
102
+ expect(first?.name).toContain('Test skill description');
103
+ });
104
+ it('should mark installed skills', async () => {
105
+ mockExists.mockResolvedValue(true);
106
+ const result = await buildSkillChoices(['test-skill']);
107
+ const first = result[0];
108
+ expect(first?.name).toContain('(installed)');
109
+ });
110
+ it('should build choices for multiple skills', async () => {
111
+ mockExists.mockResolvedValueOnce(false).mockResolvedValueOnce(true);
112
+ const result = await buildSkillChoices(['skill1', 'skill2']);
113
+ expect(result).toHaveLength(2);
114
+ });
115
+ });
116
+ describe('buildCommandChoices', () => {
117
+ it('should return empty array for empty commands', async () => {
118
+ const result = await buildCommandChoices([]);
119
+ expect(result).toEqual([]);
120
+ });
121
+ it('should build choices for new commands', async () => {
122
+ mockExists.mockResolvedValue(false);
123
+ const result = await buildCommandChoices(['test-command']);
124
+ expect(result).toHaveLength(1);
125
+ const first = result[0];
126
+ expect(first?.value).toBe('test-command');
127
+ expect(first?.name).toContain('test-command');
128
+ expect(first?.name).toContain('Test command description');
129
+ });
130
+ it('should mark installed commands', async () => {
131
+ mockExists.mockResolvedValue(true);
132
+ const result = await buildCommandChoices(['test-command']);
133
+ const first = result[0];
134
+ expect(first?.name).toContain('(installed)');
135
+ });
136
+ it('should build choices for multiple commands', async () => {
137
+ mockExists.mockResolvedValueOnce(true).mockResolvedValueOnce(false);
138
+ const result = await buildCommandChoices(['cmd1', 'cmd2']);
139
+ expect(result).toHaveLength(2);
140
+ expect(result[0]?.name).toContain('(installed)');
141
+ expect(result[1]?.name).not.toContain('(installed)');
142
+ });
143
+ });
144
+ describe('buildMcpChoices', () => {
145
+ it('should return empty array for empty mcps', async () => {
146
+ const result = await buildMcpChoices([]);
147
+ expect(result).toEqual([]);
148
+ });
149
+ it('should build choices for new mcps', async () => {
150
+ mockGetInstalledMcps.mockResolvedValue(new Set());
151
+ mockReadMcpConfig.mockResolvedValue({
152
+ mcpServers: { 'test-server': {} },
153
+ });
154
+ const result = await buildMcpChoices(['test-mcp']);
155
+ expect(result).toHaveLength(1);
156
+ const first = result[0];
157
+ expect(first?.value).toBe('test-mcp');
158
+ expect(first?.name).toContain('test-mcp');
159
+ });
160
+ it('should mark installed mcps based on server names', async () => {
161
+ mockGetInstalledMcps.mockResolvedValue(new Set(['test-server']));
162
+ mockReadMcpConfig.mockResolvedValue({
163
+ mcpServers: { 'test-server': {} },
164
+ });
165
+ const result = await buildMcpChoices(['test-mcp']);
166
+ const first = result[0];
167
+ expect(first?.name).toContain('(installed)');
168
+ });
169
+ it('should use display name from MCP_DISPLAY_NAMES', async () => {
170
+ mockGetInstalledMcps.mockResolvedValue(new Set());
171
+ mockReadMcpConfig.mockResolvedValue({
172
+ mcpServers: { 'pg-server': {} },
173
+ });
174
+ const result = await buildMcpChoices(['pg-aiguide']);
175
+ const first = result[0];
176
+ expect(first?.name).toContain('postgres-mcp');
177
+ expect(first?.value).toBe('pg-aiguide');
178
+ });
179
+ it('should handle mcps without servers', async () => {
180
+ mockGetInstalledMcps.mockResolvedValue(new Set());
181
+ mockReadMcpConfig.mockResolvedValue({});
182
+ const result = await buildMcpChoices(['test-mcp']);
183
+ expect(result).toHaveLength(1);
184
+ const first = result[0];
185
+ expect(first?.name).not.toContain('(installed)');
186
+ });
187
+ it('should build choices for multiple mcps', async () => {
188
+ mockGetInstalledMcps.mockResolvedValue(new Set(['server1']));
189
+ mockReadMcpConfig
190
+ .mockResolvedValueOnce({ mcpServers: { server1: {} } })
191
+ .mockResolvedValueOnce({ mcpServers: { server2: {} } });
192
+ const result = await buildMcpChoices(['mcp1', 'mcp2']);
193
+ expect(result).toHaveLength(2);
194
+ });
195
+ });
196
+ describe('buildThemeChoices', () => {
197
+ it('should return empty array for empty themes', async () => {
198
+ const result = await buildThemeChoices([]);
199
+ expect(result).toEqual([]);
200
+ });
201
+ it('should build choices for new themes', async () => {
202
+ mockIsThemeInstalled.mockResolvedValue(false);
203
+ const result = await buildThemeChoices(['test-theme']);
204
+ expect(result).toHaveLength(1);
205
+ const first = result[0];
206
+ expect(first?.value).toBe('test-theme');
207
+ expect(first?.name).toContain('test-theme');
208
+ expect(first?.name).toContain('Test theme description');
209
+ });
210
+ it('should mark installed themes', async () => {
211
+ mockIsThemeInstalled.mockResolvedValue(true);
212
+ const result = await buildThemeChoices(['test-theme']);
213
+ const first = result[0];
214
+ expect(first?.name).toContain('(installed)');
215
+ });
216
+ it('should build choices for multiple themes', async () => {
217
+ mockIsThemeInstalled.mockResolvedValueOnce(true).mockResolvedValueOnce(false);
218
+ const result = await buildThemeChoices(['theme1', 'theme2']);
219
+ expect(result).toHaveLength(2);
220
+ });
221
+ });
222
+ });
223
+ //# sourceMappingURL=choices.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"choices.test.js","sourceRoot":"","sources":["../../../src/__tests__/ui/choices.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=display.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/ui/display.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,138 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
+ import { displayHeader, formatCategorized, showSelectionResult, getSeparator, displaySummary, } from '../../ui/display.js';
3
+ vi.mock('../../utils/fs.js', () => ({
4
+ readPackageJson: vi.fn(),
5
+ }));
6
+ vi.mock('../../utils/terminal.js', () => ({
7
+ clearScreen: vi.fn(),
8
+ }));
9
+ describe('ui/display', () => {
10
+ let mockReadPackageJson;
11
+ let mockClearScreen;
12
+ let consoleLogSpy;
13
+ beforeEach(async () => {
14
+ vi.resetAllMocks();
15
+ const fsModule = await import('../../utils/fs.js');
16
+ mockReadPackageJson = fsModule.readPackageJson;
17
+ const terminalModule = await import('../../utils/terminal.js');
18
+ mockClearScreen = terminalModule.clearScreen;
19
+ consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => undefined);
20
+ mockReadPackageJson.mockResolvedValue({ version: '1.0.0' });
21
+ });
22
+ afterEach(() => {
23
+ consoleLogSpy.mockRestore();
24
+ vi.clearAllMocks();
25
+ });
26
+ describe('displayHeader', () => {
27
+ it('should read package.json and display header', async () => {
28
+ await displayHeader();
29
+ expect(mockReadPackageJson).toHaveBeenCalled();
30
+ expect(mockClearScreen).toHaveBeenCalled();
31
+ expect(consoleLogSpy).toHaveBeenCalled();
32
+ });
33
+ it('should call clearScreen', async () => {
34
+ await displayHeader();
35
+ expect(mockClearScreen).toHaveBeenCalled();
36
+ });
37
+ it('should display logo', async () => {
38
+ await displayHeader();
39
+ expect(consoleLogSpy).toHaveBeenCalled();
40
+ });
41
+ it('should use "unknown" version when package.json has no version', async () => {
42
+ mockReadPackageJson.mockResolvedValue({});
43
+ await displayHeader();
44
+ expect(consoleLogSpy).toHaveBeenCalled();
45
+ const calls = consoleLogSpy.mock.calls.map((c) => String(c[0])).join('\n');
46
+ expect(calls).toContain('unknown');
47
+ });
48
+ });
49
+ describe('formatCategorized', () => {
50
+ it('should return "none" for empty categorized items', () => {
51
+ const cat = { new: [], update: [] };
52
+ const result = formatCategorized(cat);
53
+ expect(result).toContain('none');
54
+ });
55
+ it('should format only new items', () => {
56
+ const cat = { new: ['item1', 'item2'], update: [] };
57
+ const result = formatCategorized(cat);
58
+ expect(result).toContain('+ item1, item2');
59
+ });
60
+ it('should format only update items', () => {
61
+ const cat = { new: [], update: ['item1', 'item2'] };
62
+ const result = formatCategorized(cat);
63
+ expect(result).toContain('↻ item1, item2');
64
+ });
65
+ it('should format mixed new and update items', () => {
66
+ const cat = { new: ['new1'], update: ['upd1'] };
67
+ const result = formatCategorized(cat);
68
+ expect(result).toContain('+ new1');
69
+ expect(result).toContain('↻ upd1');
70
+ });
71
+ it('should join items with comma and space', () => {
72
+ const cat = { new: ['a', 'b', 'c'], update: [] };
73
+ const result = formatCategorized(cat);
74
+ expect(result).toContain('a, b, c');
75
+ });
76
+ });
77
+ describe('showSelectionResult', () => {
78
+ it('should show checkmark for count > 0', () => {
79
+ showSelectionResult(3, 'agents');
80
+ expect(consoleLogSpy).toHaveBeenCalled();
81
+ const call = consoleLogSpy.mock.calls[0][0];
82
+ expect(call).toContain('✓');
83
+ expect(call).toContain('3 agents selected');
84
+ });
85
+ it('should show dim message for count = 0', () => {
86
+ showSelectionResult(0, 'skills');
87
+ expect(consoleLogSpy).toHaveBeenCalled();
88
+ const call = consoleLogSpy.mock.calls[0][0];
89
+ expect(call).toContain('No skills selected');
90
+ });
91
+ it('should use singular/plural label as provided', () => {
92
+ showSelectionResult(1, 'item');
93
+ expect(consoleLogSpy).toHaveBeenCalled();
94
+ const call = consoleLogSpy.mock.calls[0][0];
95
+ expect(call).toContain('1 item selected');
96
+ });
97
+ });
98
+ describe('getSeparator', () => {
99
+ it('should return separator line', () => {
100
+ const result = getSeparator();
101
+ expect(result).toContain('─'.repeat(50));
102
+ });
103
+ it('should return consistent length', () => {
104
+ const result1 = getSeparator();
105
+ const result2 = getSeparator();
106
+ expect(result1).toBe(result2);
107
+ });
108
+ });
109
+ describe('displaySummary', () => {
110
+ it('should display summary with all categories', () => {
111
+ const agents = { new: ['a1'], update: [] };
112
+ const skills = { new: [], update: ['s1'] };
113
+ const commands = { new: ['c1'], update: ['c2'] };
114
+ const mcps = { new: [], update: [] };
115
+ const themes = { new: ['theme1'], update: [] };
116
+ displaySummary(agents, skills, commands, mcps, themes);
117
+ expect(consoleLogSpy).toHaveBeenCalled();
118
+ });
119
+ it('should display summary box', () => {
120
+ const empty = { new: [], update: [] };
121
+ displaySummary(empty, empty, empty, empty, empty);
122
+ expect(consoleLogSpy).toHaveBeenCalled();
123
+ });
124
+ it('should include all category labels', () => {
125
+ const empty = { new: [], update: [] };
126
+ const themes = { new: ['theme1'], update: [] };
127
+ displaySummary(empty, empty, empty, empty, themes);
128
+ expect(consoleLogSpy).toHaveBeenCalled();
129
+ });
130
+ it('should count theme update in totalUpdate', () => {
131
+ const empty = { new: [], update: [] };
132
+ const themes = { new: [], update: ['theme1'] };
133
+ displaySummary(empty, empty, empty, empty, themes);
134
+ expect(consoleLogSpy).toHaveBeenCalled();
135
+ });
136
+ });
137
+ });
138
+ //# sourceMappingURL=display.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.test.js","sourceRoot":"","sources":["../../../src/__tests__/ui/display.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fs.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/fs.test.ts"],"names":[],"mappings":""}