@brookmind/ai-toolkit 1.1.7 → 1.2.0

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 (113) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +42 -14
  3. package/dist/__tests__/index.test.d.ts +2 -0
  4. package/dist/__tests__/index.test.d.ts.map +1 -0
  5. package/dist/__tests__/index.test.js +214 -0
  6. package/dist/__tests__/index.test.js.map +1 -0
  7. package/dist/constants.d.ts +10 -0
  8. package/dist/constants.d.ts.map +1 -0
  9. package/dist/constants.js +39 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +49 -332
  14. package/dist/index.js.map +1 -1
  15. package/dist/services/installers.d.ts +8 -0
  16. package/dist/services/installers.d.ts.map +1 -0
  17. package/dist/services/installers.js +79 -0
  18. package/dist/services/installers.js.map +1 -0
  19. package/dist/services/opencode.d.ts +3 -0
  20. package/dist/services/opencode.d.ts.map +1 -0
  21. package/dist/services/opencode.js +33 -0
  22. package/dist/services/opencode.js.map +1 -0
  23. package/dist/types.d.ts +10 -0
  24. package/dist/types.d.ts.map +1 -0
  25. package/dist/types.js +2 -0
  26. package/dist/types.js.map +1 -0
  27. package/dist/ui/categorize.d.ts +6 -0
  28. package/dist/ui/categorize.d.ts.map +1 -0
  29. package/dist/ui/categorize.js +69 -0
  30. package/dist/ui/categorize.js.map +1 -0
  31. package/dist/ui/choices.d.ts +6 -0
  32. package/dist/ui/choices.d.ts.map +1 -0
  33. package/dist/ui/choices.js +70 -0
  34. package/dist/ui/choices.js.map +1 -0
  35. package/dist/ui/display.d.ts +8 -0
  36. package/dist/ui/display.d.ts.map +1 -0
  37. package/dist/ui/display.js +84 -0
  38. package/dist/ui/display.js.map +1 -0
  39. package/dist/utils/fs.d.ts +5 -0
  40. package/dist/utils/fs.d.ts.map +1 -0
  41. package/dist/utils/fs.js +40 -0
  42. package/dist/utils/fs.js.map +1 -0
  43. package/dist/utils/terminal.d.ts +5 -0
  44. package/dist/utils/terminal.d.ts.map +1 -0
  45. package/dist/utils/terminal.js +18 -0
  46. package/dist/utils/terminal.js.map +1 -0
  47. package/package.json +27 -5
  48. package/agents/code-reviewer.md +0 -35
  49. package/agents/code-simplifier.md +0 -52
  50. package/commands/create-pr-description.md +0 -102
  51. package/commands/create-pr.md +0 -76
  52. package/commands/create-react-tests.md +0 -207
  53. package/mcps/context7/.mcp.json +0 -13
  54. package/mcps/expo-mcp/.mcp.json +0 -13
  55. package/mcps/figma-mcp/.mcp.json +0 -10
  56. package/skills/github-cli/SKILL.md +0 -125
  57. package/skills/pdf-processing-pro/FORMS.md +0 -610
  58. package/skills/pdf-processing-pro/OCR.md +0 -137
  59. package/skills/pdf-processing-pro/SKILL.md +0 -296
  60. package/skills/pdf-processing-pro/TABLES.md +0 -626
  61. package/skills/pdf-processing-pro/scripts/analyze_form.py +0 -307
  62. package/skills/react-best-practices/AGENTS.md +0 -915
  63. package/skills/react-best-practices/README.md +0 -127
  64. package/skills/react-best-practices/SKILL.md +0 -110
  65. package/skills/react-best-practices/metadata.json +0 -14
  66. package/skills/react-best-practices/rules/_sections.md +0 -41
  67. package/skills/react-best-practices/rules/_template.md +0 -28
  68. package/skills/react-best-practices/rules/advanced-event-handler-refs.md +0 -80
  69. package/skills/react-best-practices/rules/advanced-use-latest.md +0 -76
  70. package/skills/react-best-practices/rules/async-defer-await.md +0 -80
  71. package/skills/react-best-practices/rules/async-dependencies.md +0 -36
  72. package/skills/react-best-practices/rules/async-parallel.md +0 -28
  73. package/skills/react-best-practices/rules/async-suspense-boundaries.md +0 -100
  74. package/skills/react-best-practices/rules/bundle-barrel-imports.md +0 -42
  75. package/skills/react-best-practices/rules/bundle-conditional.md +0 -106
  76. package/skills/react-best-practices/rules/bundle-preload.md +0 -44
  77. package/skills/react-best-practices/rules/client-event-listeners.md +0 -131
  78. package/skills/react-best-practices/rules/client-swr-dedup.md +0 -133
  79. package/skills/react-best-practices/rules/js-batch-dom-css.md +0 -82
  80. package/skills/react-best-practices/rules/js-cache-function-results.md +0 -80
  81. package/skills/react-best-practices/rules/js-cache-property-access.md +0 -28
  82. package/skills/react-best-practices/rules/js-cache-storage.md +0 -70
  83. package/skills/react-best-practices/rules/js-combine-iterations.md +0 -32
  84. package/skills/react-best-practices/rules/js-early-exit.md +0 -50
  85. package/skills/react-best-practices/rules/js-hoist-regexp.md +0 -45
  86. package/skills/react-best-practices/rules/js-index-maps.md +0 -37
  87. package/skills/react-best-practices/rules/js-length-check-first.md +0 -49
  88. package/skills/react-best-practices/rules/js-min-max-loop.md +0 -82
  89. package/skills/react-best-practices/rules/js-set-map-lookups.md +0 -24
  90. package/skills/react-best-practices/rules/js-tosorted-immutable.md +0 -57
  91. package/skills/react-best-practices/rules/rendering-activity.md +0 -90
  92. package/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  93. package/skills/react-best-practices/rules/rendering-conditional-render.md +0 -40
  94. package/skills/react-best-practices/rules/rendering-content-visibility.md +0 -38
  95. package/skills/react-best-practices/rules/rendering-hoist-jsx.md +0 -65
  96. package/skills/react-best-practices/rules/rendering-svg-precision.md +0 -28
  97. package/skills/react-best-practices/rules/rerender-defer-reads.md +0 -39
  98. package/skills/react-best-practices/rules/rerender-dependencies.md +0 -45
  99. package/skills/react-best-practices/rules/rerender-derived-state.md +0 -29
  100. package/skills/react-best-practices/rules/rerender-functional-setstate.md +0 -74
  101. package/skills/react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  102. package/skills/react-best-practices/rules/rerender-memo.md +0 -85
  103. package/skills/react-best-practices/rules/rerender-transitions.md +0 -40
  104. package/skills/skill-creator/LICENSE.txt +0 -202
  105. package/skills/skill-creator/SKILL.md +0 -209
  106. package/skills/skill-creator/scripts/init_skill.py +0 -303
  107. package/skills/skill-creator/scripts/package_skill.py +0 -110
  108. package/skills/skill-creator/scripts/quick_validate.py +0 -65
  109. package/skills/spring-boot-development/EXAMPLES.md +0 -2346
  110. package/skills/spring-boot-development/README.md +0 -595
  111. package/skills/spring-boot-development/SKILL.md +0 -1519
  112. package/themes/README.md +0 -68
  113. package/themes/claude-vivid.json +0 -72
package/dist/index.js CHANGED
@@ -1,253 +1,27 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import { select } from 'inquirer-select-pro';
3
3
  import chalk from 'chalk';
4
- import boxen from 'boxen';
5
4
  import ora from 'ora';
6
- import { access, cp, mkdir, readdir, readFile, writeFile } from 'fs/promises';
7
- import { exec } from 'child_process';
8
- import { promisify } from 'util';
9
- import { homedir } from 'os';
10
- import { dirname, join } from 'path';
11
- import { fileURLToPath } from 'url';
12
- const execAsync = promisify(exec);
13
- const __dirname = dirname(fileURLToPath(import.meta.url));
14
- const ROOT_DIR = join(__dirname, '..');
15
- const HOME_DIR = homedir();
16
- const OPENCODE_DIR = join(HOME_DIR, '.config', 'opencode');
17
- const OPENCODE_CONFIG = join(OPENCODE_DIR, 'opencode.json');
18
- const MCP_DISPLAY_NAMES = {
19
- 'pg-aiguide': 'postgres-mcp',
20
- };
21
- async function exists(path) {
22
- try {
23
- await access(path);
24
- return true;
25
- }
26
- catch {
27
- return false;
28
- }
29
- }
30
- async function isOpenCodeInstalled() {
31
- try {
32
- await execAsync('which opencode');
33
- return true;
34
- }
35
- catch {
36
- return await exists(OPENCODE_DIR);
37
- }
38
- }
39
- async function installOpenCode() {
40
- const spinner = ora('Installing OpenCode...').start();
41
- try {
42
- await execAsync('curl -fsSL https://opencode.ai/install | bash', {
43
- shell: '/bin/bash',
44
- });
45
- spinner.succeed('OpenCode installed successfully!');
46
- console.log(chalk.cyan('\n Next Steps:'));
47
- console.log(' OpenCode has been installed. You may need to restart your terminal or run:');
48
- console.log(' source ~/.bashrc (or ~/.zshrc)\n');
49
- }
50
- catch (error) {
51
- spinner.fail('Installation failed');
52
- throw new Error(`Failed to install OpenCode: ${error instanceof Error ? error.message : String(error)}`);
53
- }
54
- }
55
- async function getDirectories(path) {
56
- try {
57
- const entries = await readdir(path, { withFileTypes: true });
58
- return entries.filter(e => e.isDirectory()).map(e => e.name);
59
- }
60
- catch {
61
- return [];
62
- }
63
- }
64
- async function getFiles(path, extension) {
65
- try {
66
- const entries = await readdir(path, { withFileTypes: true });
67
- return entries
68
- .filter(e => e.isFile() && e.name.endsWith(extension))
69
- .map(e => e.name.replace(extension, ''));
70
- }
71
- catch {
72
- return [];
73
- }
74
- }
75
- async function getInstalledMcps() {
76
- try {
77
- const content = await readFile(OPENCODE_CONFIG, 'utf-8');
78
- const config = JSON.parse(content);
79
- const mcpSection = config.mcp;
80
- return mcpSection ? new Set(Object.keys(mcpSection)) : new Set();
81
- }
82
- catch {
83
- return new Set();
84
- }
85
- }
86
- async function readJsonConfig(path) {
87
- try {
88
- const content = await readFile(path, 'utf-8');
89
- return JSON.parse(content);
90
- }
91
- catch {
92
- return {};
93
- }
94
- }
95
- async function isThemeInstalled(themeName) {
96
- const themePath = join(OPENCODE_DIR, 'themes', `${themeName}.json`);
97
- return await exists(themePath);
98
- }
99
- function formatInstalledLabel(name, isInstalled) {
100
- return isInstalled ? `${name} ${chalk.yellow('(installed)')}` : name;
101
- }
102
- async function categorizeAgents(agents) {
103
- const result = { new: [], update: [] };
104
- for (const agent of agents) {
105
- const agentPath = join(OPENCODE_DIR, 'agent', `${agent}.md`);
106
- if (await exists(agentPath)) {
107
- result.update.push(agent);
108
- }
109
- else {
110
- result.new.push(agent);
111
- }
112
- }
113
- return result;
114
- }
115
- async function categorizeSkills(skills) {
116
- const result = { new: [], update: [] };
117
- for (const skill of skills) {
118
- const skillPath = join(OPENCODE_DIR, 'skill', skill);
119
- if (await exists(skillPath)) {
120
- result.update.push(skill);
121
- }
122
- else {
123
- result.new.push(skill);
124
- }
125
- }
126
- return result;
127
- }
128
- async function categorizeCommands(commands) {
129
- const result = { new: [], update: [] };
130
- for (const command of commands) {
131
- const commandPath = join(OPENCODE_DIR, 'command', `${command}.md`);
132
- if (await exists(commandPath)) {
133
- result.update.push(command);
134
- }
135
- else {
136
- result.new.push(command);
137
- }
138
- }
139
- return result;
140
- }
141
- async function categorizeMcps(mcps) {
142
- const installedMcps = await getInstalledMcps();
143
- const result = { new: [], update: [] };
144
- for (const mcp of mcps) {
145
- const mcpConfig = await readJsonConfig(join(ROOT_DIR, 'mcps', mcp, '.mcp.json'));
146
- const servers = mcpConfig.mcpServers;
147
- const displayName = MCP_DISPLAY_NAMES[mcp] ?? mcp;
148
- let isInstalled = false;
149
- if (servers) {
150
- for (const serverName of Object.keys(servers)) {
151
- if (installedMcps.has(serverName)) {
152
- isInstalled = true;
153
- break;
154
- }
155
- }
156
- }
157
- if (isInstalled) {
158
- result.update.push(displayName);
159
- }
160
- else {
161
- result.new.push(displayName);
162
- }
163
- }
164
- return result;
165
- }
166
- async function buildAgentChoices(agents) {
167
- const choices = [];
168
- for (const agent of agents) {
169
- const agentPath = join(OPENCODE_DIR, 'agent', `${agent}.md`);
170
- const isInstalled = await exists(agentPath);
171
- choices.push({
172
- name: formatInstalledLabel(agent, isInstalled),
173
- value: agent,
174
- });
175
- }
176
- return choices;
177
- }
178
- async function buildSkillChoices(skills) {
179
- const choices = [];
180
- for (const skill of skills) {
181
- const skillPath = join(OPENCODE_DIR, 'skill', skill);
182
- const isInstalled = await exists(skillPath);
183
- choices.push({
184
- name: formatInstalledLabel(skill, isInstalled),
185
- value: skill,
186
- });
187
- }
188
- return choices;
189
- }
190
- async function buildCommandChoices(commands) {
191
- const choices = [];
192
- for (const command of commands) {
193
- const commandPath = join(OPENCODE_DIR, 'command', `${command}.md`);
194
- const isInstalled = await exists(commandPath);
195
- choices.push({
196
- name: formatInstalledLabel(command, isInstalled),
197
- value: command,
198
- });
199
- }
200
- return choices;
201
- }
202
- async function buildMcpChoices(mcps) {
203
- const installedMcps = await getInstalledMcps();
204
- const choices = [];
205
- for (const mcp of mcps) {
206
- const mcpConfig = await readJsonConfig(join(ROOT_DIR, 'mcps', mcp, '.mcp.json'));
207
- const servers = mcpConfig.mcpServers;
208
- let isInstalled = false;
209
- if (servers) {
210
- for (const serverName of Object.keys(servers)) {
211
- if (installedMcps.has(serverName)) {
212
- isInstalled = true;
213
- break;
214
- }
215
- }
216
- }
217
- const displayName = MCP_DISPLAY_NAMES[mcp] ?? mcp;
218
- choices.push({
219
- name: formatInstalledLabel(displayName, isInstalled),
220
- value: mcp,
221
- });
222
- }
223
- return choices;
224
- }
5
+ import { join } from 'path';
6
+ import { TOOLS_DIR } from './constants.js';
7
+ import { getDirectories, getFiles } from './utils/fs.js';
8
+ import { handleResize, resetScrollRegion, setupScrollRegion } from './utils/terminal.js';
9
+ import { isOpenCodeInstalled, installOpenCode } from './services/opencode.js';
10
+ import { installAgents, installCommands, installMcps, installSkills, installTheme, isThemeInstalled, } from './services/installers.js';
11
+ import { buildAgentChoices, buildCommandChoices, buildMcpChoices, buildSkillChoices, } from './ui/choices.js';
12
+ import { categorizeAgents, categorizeCommands, categorizeMcps, categorizeSkills, } from './ui/categorize.js';
13
+ import { displayHeader, displaySummary, getSeparator, showSelectionResult } from './ui/display.js';
14
+ // Re-export for testing
15
+ export { BOTTOM_PADDING } from './constants.js';
16
+ export { setupScrollRegion, resetScrollRegion, handleResize } from './utils/terminal.js';
225
17
  function handleExit() {
18
+ resetScrollRegion();
226
19
  console.log(chalk.red('\n\nInstallation cancelled.'));
227
20
  process.exit(0);
228
21
  }
229
- async function displayHeader() {
230
- const pkg = await readJsonConfig(join(ROOT_DIR, 'package.json'));
231
- const version = pkg.version;
232
- const logo = [
233
- chalk.cyanBright(' ██████╗██╗ ██╗██╗ ██╗'),
234
- chalk.cyanBright(' ██╔════╝██║ ██╔╝██║ ██║'),
235
- chalk.cyanBright(' ██║ █████╔╝ ██║ █╗ ██║'),
236
- chalk.cyanBright(' ██║ ██╔═██╗ ██║███╗██║'),
237
- chalk.cyanBright(' ╚██████╗██║ ██╗╚███╔███╔╝'),
238
- chalk.cyanBright(' ╚═════╝╚═╝ ╚═╝ ╚══╝╚══╝') + chalk.green(' ●'),
239
- ].join('\n');
240
- console.clear();
241
- console.log(boxen(logo, {
242
- padding: { top: 1, bottom: 1, left: 16, right: 16 },
243
- borderStyle: 'round',
244
- borderColor: 'cyan',
245
- title: `CKW AI Toolkit v${version}`,
246
- titleAlignment: 'left',
247
- }));
248
- console.log();
249
- }
250
22
  export async function run() {
23
+ setupScrollRegion();
24
+ process.stdout.on('resize', handleResize);
251
25
  try {
252
26
  await runInstaller();
253
27
  }
@@ -260,6 +34,10 @@ export async function run() {
260
34
  throw error;
261
35
  }
262
36
  }
37
+ finally {
38
+ process.stdout.off('resize', handleResize);
39
+ resetScrollRegion();
40
+ }
263
41
  }
264
42
  async function runInstaller() {
265
43
  await displayHeader();
@@ -292,16 +70,19 @@ async function runInstaller() {
292
70
  process.exit(0);
293
71
  }
294
72
  }
295
- const agents = await getFiles(join(ROOT_DIR, 'agents'), '.md');
296
- const skills = await getDirectories(join(ROOT_DIR, 'skills'));
297
- const commands = await getFiles(join(ROOT_DIR, 'commands'), '.md');
298
- const mcps = await getDirectories(join(ROOT_DIR, 'mcps'));
73
+ const agents = await getFiles(join(TOOLS_DIR, 'agents'), '.md');
74
+ const skills = await getDirectories(join(TOOLS_DIR, 'skills'));
75
+ const commands = await getFiles(join(TOOLS_DIR, 'commands'), '.md');
76
+ const mcps = await getDirectories(join(TOOLS_DIR, 'mcps'));
299
77
  const selectTheme = {
300
78
  style: {
301
79
  renderSelectedOptions: () => '',
302
80
  },
303
81
  };
82
+ const selectInstructions = () => chalk.dim('(tab: select/unselect, enter: continue, ctrl+c: exit)');
83
+ const separator = getSeparator();
304
84
  // Step 2: Agents
85
+ console.log(separator);
305
86
  console.log(chalk.cyan('Step 2/7: Agents'));
306
87
  const selectedAgents = agents.length > 0
307
88
  ? await select({
@@ -309,42 +90,54 @@ async function runInstaller() {
309
90
  options: await buildAgentChoices(agents),
310
91
  multiple: true,
311
92
  theme: selectTheme,
93
+ instructions: selectInstructions,
312
94
  })
313
95
  : [];
96
+ showSelectionResult(selectedAgents.length, 'agents');
314
97
  // Step 3: Skills
315
- console.log(chalk.cyan('\nStep 3/7: Skills'));
98
+ console.log(`\n${separator}`);
99
+ console.log(chalk.cyan('Step 3/7: Skills'));
316
100
  const selectedSkills = skills.length > 0
317
101
  ? await select({
318
102
  message: 'Select skills:',
319
103
  options: await buildSkillChoices(skills),
320
104
  multiple: true,
321
105
  theme: selectTheme,
106
+ instructions: selectInstructions,
322
107
  })
323
108
  : [];
109
+ showSelectionResult(selectedSkills.length, 'skills');
324
110
  // Step 4: Commands
325
- console.log(chalk.cyan('\nStep 4/7: Commands'));
111
+ console.log(`\n${separator}`);
112
+ console.log(chalk.cyan('Step 4/7: Commands'));
326
113
  const selectedCommands = commands.length > 0
327
114
  ? await select({
328
115
  message: 'Select commands:',
329
116
  options: await buildCommandChoices(commands),
330
117
  multiple: true,
331
118
  theme: selectTheme,
119
+ instructions: selectInstructions,
332
120
  })
333
121
  : [];
122
+ showSelectionResult(selectedCommands.length, 'commands');
334
123
  // Step 5: MCPs
335
- console.log(chalk.cyan('\nStep 5/7: MCPs'));
124
+ console.log(`\n${separator}`);
125
+ console.log(chalk.cyan('Step 5/7: MCPs'));
336
126
  const selectedMcps = mcps.length > 0
337
127
  ? await select({
338
128
  message: 'Select MCPs:',
339
129
  options: await buildMcpChoices(mcps),
340
130
  multiple: true,
341
131
  theme: selectTheme,
132
+ instructions: selectInstructions,
342
133
  })
343
134
  : [];
135
+ showSelectionResult(selectedMcps.length, 'MCPs');
344
136
  // Step 6: Theme
345
137
  let installThemeChoice = isNewInstallation;
346
138
  if (!isNewInstallation) {
347
- console.log(chalk.cyan('\nStep 6/7: Theme'));
139
+ console.log(`\n${separator}`);
140
+ console.log(chalk.cyan('Step 6/7: Theme'));
348
141
  const themeInstalled = await isThemeInstalled('claude-vivid');
349
142
  if (themeInstalled) {
350
143
  console.log(chalk.green('✓ claude-vivid theme is already installed\n'));
@@ -358,7 +151,8 @@ async function runInstaller() {
358
151
  }
359
152
  }
360
153
  else {
361
- console.log(chalk.cyan('\nStep 6/7: Theme'));
154
+ console.log(`\n${separator}`);
155
+ console.log(chalk.cyan('Step 6/7: Theme'));
362
156
  console.log(chalk.green('✓ claude-vivid theme will be installed automatically\n'));
363
157
  }
364
158
  // Check if anything was selected
@@ -372,37 +166,16 @@ async function runInstaller() {
372
166
  process.exit(0);
373
167
  }
374
168
  // Step 7: Confirm
375
- console.log(chalk.cyan('\nStep 7/7: Confirm'));
169
+ console.log(`\n${separator}`);
170
+ console.log(chalk.cyan('Step 7/7: Confirm'));
376
171
  // Categorize selections
377
172
  const agentsCat = await categorizeAgents(selectedAgents);
378
173
  const skillsCat = await categorizeSkills(selectedSkills);
379
174
  const commandsCat = await categorizeCommands(selectedCommands);
380
175
  const mcpsCat = await categorizeMcps(selectedMcps);
381
- const themeIsUpdate = installThemeChoice && await isThemeInstalled('claude-vivid');
382
- const formatCategorized = (cat) => {
383
- const parts = [];
384
- if (cat.new.length > 0) {
385
- parts.push(chalk.green(`+ ${cat.new.join(', ')}`));
386
- }
387
- if (cat.update.length > 0) {
388
- parts.push(chalk.yellow(`↻ ${cat.update.join(', ')}`));
389
- }
390
- return parts.length > 0 ? parts.join(' ') : chalk.dim('none');
391
- };
392
- const formatTheme = () => {
393
- if (!installThemeChoice)
394
- return chalk.dim('none');
395
- return themeIsUpdate
396
- ? chalk.yellow('↻ claude-vivid')
397
- : chalk.green('+ claude-vivid');
398
- };
399
- console.log(chalk.white('\n Summary:'));
400
- console.log(chalk.dim(' (+ new ↻ update)\n'));
401
- console.log(` Agents: ${formatCategorized(agentsCat)}`);
402
- console.log(` Skills: ${formatCategorized(skillsCat)}`);
403
- console.log(` Commands: ${formatCategorized(commandsCat)}`);
404
- console.log(` MCPs: ${formatCategorized(mcpsCat)}`);
405
- console.log(` Theme: ${formatTheme()}\n`);
176
+ const themeIsUpdate = installThemeChoice && (await isThemeInstalled('claude-vivid'));
177
+ displaySummary(agentsCat, skillsCat, commandsCat, mcpsCat, installThemeChoice, themeIsUpdate);
178
+ console.log();
406
179
  const confirmInstall = await confirm({ message: 'Proceed with installation?' });
407
180
  if (!confirmInstall) {
408
181
  console.log(chalk.red('\nInstallation cancelled.'));
@@ -432,60 +205,4 @@ async function runInstaller() {
432
205
  }
433
206
  console.log(chalk.green('\nDone! Your tools are ready.'));
434
207
  }
435
- async function installAgents(agents) {
436
- if (agents.length === 0)
437
- return;
438
- const agentDir = join(OPENCODE_DIR, 'agent');
439
- await mkdir(agentDir, { recursive: true });
440
- for (const agent of agents) {
441
- await cp(join(ROOT_DIR, 'agents', `${agent}.md`), join(agentDir, `${agent}.md`));
442
- }
443
- }
444
- async function installSkills(skills) {
445
- if (skills.length === 0)
446
- return;
447
- const skillDir = join(OPENCODE_DIR, 'skill');
448
- await mkdir(skillDir, { recursive: true });
449
- for (const skill of skills) {
450
- await cp(join(ROOT_DIR, 'skills', skill), join(skillDir, skill), { recursive: true, force: true });
451
- }
452
- }
453
- async function installCommands(commands) {
454
- if (commands.length === 0)
455
- return;
456
- const commandDir = join(OPENCODE_DIR, 'command');
457
- await mkdir(commandDir, { recursive: true });
458
- for (const command of commands) {
459
- await cp(join(ROOT_DIR, 'commands', `${command}.md`), join(commandDir, `${command}.md`));
460
- }
461
- }
462
- async function installMcps(mcps) {
463
- if (mcps.length === 0)
464
- return;
465
- const config = await readJsonConfig(OPENCODE_CONFIG);
466
- if (!config.mcp) {
467
- config.mcp = {};
468
- }
469
- const mcpSection = config.mcp;
470
- for (const mcp of mcps) {
471
- const mcpConfig = await readJsonConfig(join(ROOT_DIR, 'mcps', mcp, '.mcp.json'));
472
- const servers = mcpConfig.mcpServers;
473
- if (servers) {
474
- Object.assign(mcpSection, servers);
475
- }
476
- }
477
- await writeFile(OPENCODE_CONFIG, JSON.stringify(config, null, 2));
478
- }
479
- async function installTheme() {
480
- const themesDir = join(OPENCODE_DIR, 'themes');
481
- await mkdir(themesDir, { recursive: true });
482
- const themeSource = join(ROOT_DIR, 'themes', 'claude-vivid.json');
483
- const themeExists = await exists(themeSource);
484
- if (themeExists) {
485
- await cp(themeSource, join(themesDir, 'claude-vivid.json'));
486
- const config = await readJsonConfig(OPENCODE_CONFIG);
487
- config.theme = 'claude-vivid';
488
- await writeFile(OPENCODE_CONFIG, JSON.stringify(config, null, 2));
489
- }
490
- }
491
208
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function installAgents(agents: string[]): Promise<void>;
2
+ export declare function installSkills(skills: string[]): Promise<void>;
3
+ export declare function installCommands(commands: string[]): Promise<void>;
4
+ export declare function installMcps(mcps: string[]): Promise<void>;
5
+ export declare function installTheme(): Promise<void>;
6
+ export declare function isThemeInstalled(themeName: string): Promise<boolean>;
7
+ export declare function getInstalledMcps(): Promise<Set<string>>;
8
+ //# sourceMappingURL=installers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installers.d.ts","sourceRoot":"","sources":["../../src/services/installers.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CASnE;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnE;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CASvE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB/D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAclD;AAED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1E;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAS7D"}
@@ -0,0 +1,79 @@
1
+ import { cp, mkdir, readFile, writeFile } from 'fs/promises';
2
+ import { join } from 'path';
3
+ import { OPENCODE_CONFIG, OPENCODE_DIR, TOOLS_DIR } from '../constants.js';
4
+ import { exists, readJsonConfig } from '../utils/fs.js';
5
+ export async function installAgents(agents) {
6
+ if (agents.length === 0)
7
+ return;
8
+ const agentDir = join(OPENCODE_DIR, 'agent');
9
+ await mkdir(agentDir, { recursive: true });
10
+ for (const agent of agents) {
11
+ await cp(join(TOOLS_DIR, 'agents', `${agent}.md`), join(agentDir, `${agent}.md`));
12
+ }
13
+ }
14
+ export async function installSkills(skills) {
15
+ if (skills.length === 0)
16
+ return;
17
+ const skillDir = join(OPENCODE_DIR, 'skill');
18
+ await mkdir(skillDir, { recursive: true });
19
+ for (const skill of skills) {
20
+ await cp(join(TOOLS_DIR, 'skills', skill), join(skillDir, skill), {
21
+ recursive: true,
22
+ force: true,
23
+ });
24
+ }
25
+ }
26
+ export async function installCommands(commands) {
27
+ if (commands.length === 0)
28
+ return;
29
+ const commandDir = join(OPENCODE_DIR, 'command');
30
+ await mkdir(commandDir, { recursive: true });
31
+ for (const command of commands) {
32
+ await cp(join(TOOLS_DIR, 'commands', `${command}.md`), join(commandDir, `${command}.md`));
33
+ }
34
+ }
35
+ export async function installMcps(mcps) {
36
+ if (mcps.length === 0)
37
+ return;
38
+ const config = await readJsonConfig(OPENCODE_CONFIG);
39
+ if (!config.mcp) {
40
+ config.mcp = {};
41
+ }
42
+ const mcpSection = config.mcp;
43
+ for (const mcp of mcps) {
44
+ const mcpConfig = await readJsonConfig(join(TOOLS_DIR, 'mcps', mcp, '.mcp.json'));
45
+ const servers = mcpConfig.mcpServers;
46
+ if (servers) {
47
+ Object.assign(mcpSection, servers);
48
+ }
49
+ }
50
+ await writeFile(OPENCODE_CONFIG, JSON.stringify(config, null, 2));
51
+ }
52
+ export async function installTheme() {
53
+ const themesDir = join(OPENCODE_DIR, 'themes');
54
+ await mkdir(themesDir, { recursive: true });
55
+ const themeSource = join(TOOLS_DIR, 'themes', 'claude-vivid.json');
56
+ const themeExists = await exists(themeSource);
57
+ if (themeExists) {
58
+ await cp(themeSource, join(themesDir, 'claude-vivid.json'));
59
+ const config = await readJsonConfig(OPENCODE_CONFIG);
60
+ config.theme = 'claude-vivid';
61
+ await writeFile(OPENCODE_CONFIG, JSON.stringify(config, null, 2));
62
+ }
63
+ }
64
+ export async function isThemeInstalled(themeName) {
65
+ const themePath = join(OPENCODE_DIR, 'themes', `${themeName}.json`);
66
+ return await exists(themePath);
67
+ }
68
+ export async function getInstalledMcps() {
69
+ try {
70
+ const content = await readFile(OPENCODE_CONFIG, 'utf-8');
71
+ const config = JSON.parse(content);
72
+ const mcpSection = config.mcp;
73
+ return mcpSection ? new Set(Object.keys(mcpSection)) : new Set();
74
+ }
75
+ catch {
76
+ return new Set();
77
+ }
78
+ }
79
+ //# sourceMappingURL=installers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installers.js","sourceRoot":"","sources":["../../src/services/installers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function isOpenCodeInstalled(): Promise<boolean>;
2
+ export declare function installOpenCode(): Promise<void>;
3
+ //# sourceMappingURL=opencode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/services/opencode.ts"],"names":[],"mappings":"AASA,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO5D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBrD"}