@brookmind/ai-toolkit 1.2.1 → 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 (46) hide show
  1. package/README.md +8 -12
  2. package/dist/__tests__/index.test.js +4 -3
  3. package/dist/__tests__/index.test.js.map +1 -1
  4. package/dist/__tests__/integration/installer.test.js +64 -39
  5. package/dist/__tests__/integration/installer.test.js.map +1 -1
  6. package/dist/__tests__/services/installers.test.js +52 -24
  7. package/dist/__tests__/services/installers.test.js.map +1 -1
  8. package/dist/__tests__/ui/categorize.test.js +43 -12
  9. package/dist/__tests__/ui/categorize.test.js.map +1 -1
  10. package/dist/__tests__/ui/choices.test.js +78 -35
  11. package/dist/__tests__/ui/choices.test.js.map +1 -1
  12. package/dist/__tests__/ui/display.test.js +20 -24
  13. package/dist/__tests__/ui/display.test.js.map +1 -1
  14. package/dist/__tests__/utils/fs.test.js +166 -7
  15. package/dist/__tests__/utils/fs.test.js.map +1 -1
  16. package/dist/constants.d.ts.map +1 -1
  17. package/dist/constants.js +2 -0
  18. package/dist/constants.js.map +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +24 -29
  21. package/dist/index.js.map +1 -1
  22. package/dist/services/installers.d.ts +1 -1
  23. package/dist/services/installers.d.ts.map +1 -1
  24. package/dist/services/installers.js +21 -14
  25. package/dist/services/installers.js.map +1 -1
  26. package/dist/types.d.ts +15 -0
  27. package/dist/types.d.ts.map +1 -1
  28. package/dist/types.js +28 -1
  29. package/dist/types.js.map +1 -1
  30. package/dist/ui/categorize.d.ts +1 -0
  31. package/dist/ui/categorize.d.ts.map +1 -1
  32. package/dist/ui/categorize.js +15 -3
  33. package/dist/ui/categorize.js.map +1 -1
  34. package/dist/ui/choices.d.ts +1 -0
  35. package/dist/ui/choices.d.ts.map +1 -1
  36. package/dist/ui/choices.js +14 -3
  37. package/dist/ui/choices.js.map +1 -1
  38. package/dist/ui/display.d.ts +1 -2
  39. package/dist/ui/display.d.ts.map +1 -1
  40. package/dist/ui/display.js +11 -16
  41. package/dist/ui/display.js.map +1 -1
  42. package/dist/utils/fs.d.ts +14 -0
  43. package/dist/utils/fs.d.ts.map +1 -1
  44. package/dist/utils/fs.js +72 -2
  45. package/dist/utils/fs.js.map +1 -1
  46. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  import { join } from 'path';
2
2
  import { MCP_DISPLAY_NAMES, OPENCODE_DIR, TOOLS_DIR } from '../constants.js';
3
- import { exists, readJsonConfig } from '../utils/fs.js';
4
- import { getInstalledMcps } from '../services/installers.js';
3
+ import { exists, readMcpConfig } from '../utils/fs.js';
4
+ import { getInstalledMcps, isThemeInstalled } from '../services/installers.js';
5
5
  export async function categorizeAgents(agents) {
6
6
  const result = { new: [], update: [] };
7
7
  for (const agent of agents) {
@@ -45,7 +45,7 @@ export async function categorizeMcps(mcps) {
45
45
  const installedMcps = await getInstalledMcps();
46
46
  const result = { new: [], update: [] };
47
47
  for (const mcp of mcps) {
48
- const mcpConfig = await readJsonConfig(join(TOOLS_DIR, 'mcps', mcp, '.mcp.json'));
48
+ const mcpConfig = await readMcpConfig(join(TOOLS_DIR, 'mcps', mcp, '.mcp.json'));
49
49
  const servers = mcpConfig.mcpServers;
50
50
  const displayName = MCP_DISPLAY_NAMES[mcp] ?? mcp;
51
51
  let isInstalled = false;
@@ -66,4 +66,16 @@ export async function categorizeMcps(mcps) {
66
66
  }
67
67
  return result;
68
68
  }
69
+ export async function categorizeThemes(themes) {
70
+ const result = { new: [], update: [] };
71
+ for (const theme of themes) {
72
+ if (await isThemeInstalled(theme)) {
73
+ result.update.push(theme);
74
+ }
75
+ else {
76
+ result.new.push(theme);
77
+ }
78
+ }
79
+ return result;
80
+ }
69
81
  //# sourceMappingURL=categorize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"categorize.js","sourceRoot":"","sources":["../../src/ui/categorize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"categorize.js","sourceRoot":"","sources":["../../src/ui/categorize.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export declare function buildAgentChoices(agents: string[]): Promise<CheckboxCho
3
3
  export declare function buildSkillChoices(skills: string[]): Promise<CheckboxChoice[]>;
4
4
  export declare function buildCommandChoices(commands: string[]): Promise<CheckboxChoice[]>;
5
5
  export declare function buildMcpChoices(mcps: string[]): Promise<CheckboxChoice[]>;
6
+ export declare function buildThemeChoices(themes: string[]): Promise<CheckboxChoice[]>;
6
7
  //# sourceMappingURL=choices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"choices.d.ts","sourceRoot":"","sources":["../../src/ui/choices.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAUlD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAWnF;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAWnF;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAWvF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA0B/E"}
1
+ {"version":3,"file":"choices.d.ts","sourceRoot":"","sources":["../../src/ui/choices.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAUlD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAWnF;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAWnF;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAWvF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA0B/E;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAUnF"}
@@ -1,8 +1,8 @@
1
1
  import { join } from 'path';
2
2
  import chalk from 'chalk';
3
3
  import { getDescription, MCP_DISPLAY_NAMES, OPENCODE_DIR, TOOLS_DIR } from '../constants.js';
4
- import { exists, readJsonConfig } from '../utils/fs.js';
5
- import { getInstalledMcps } from '../services/installers.js';
4
+ import { exists, readMcpConfig } from '../utils/fs.js';
5
+ import { getInstalledMcps, isThemeInstalled } from '../services/installers.js';
6
6
  function formatChoiceLabel(name, description, isInstalled) {
7
7
  const installedTag = isInstalled ? chalk.yellow(' (installed)') : '';
8
8
  const descText = description ? chalk.dim(` - ${description}`) : '';
@@ -48,7 +48,7 @@ export async function buildMcpChoices(mcps) {
48
48
  const installedMcps = await getInstalledMcps();
49
49
  const choices = [];
50
50
  for (const mcp of mcps) {
51
- const mcpConfig = await readJsonConfig(join(TOOLS_DIR, 'mcps', mcp, '.mcp.json'));
51
+ const mcpConfig = await readMcpConfig(join(TOOLS_DIR, 'mcps', mcp, '.mcp.json'));
52
52
  const servers = mcpConfig.mcpServers;
53
53
  let isInstalled = false;
54
54
  if (servers) {
@@ -67,4 +67,15 @@ export async function buildMcpChoices(mcps) {
67
67
  }
68
68
  return choices;
69
69
  }
70
+ export async function buildThemeChoices(themes) {
71
+ const choices = [];
72
+ for (const theme of themes) {
73
+ const installed = await isThemeInstalled(theme);
74
+ choices.push({
75
+ name: formatChoiceLabel(theme, getDescription(theme), installed),
76
+ value: theme,
77
+ });
78
+ }
79
+ return choices;
80
+ }
70
81
  //# sourceMappingURL=choices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"choices.js","sourceRoot":"","sources":["../../src/ui/choices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"choices.js","sourceRoot":"","sources":["../../src/ui/choices.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import type { CategorizedItems } from '../types.js';
2
2
  export declare function displayHeader(): Promise<void>;
3
3
  export declare function formatCategorized(cat: CategorizedItems): string;
4
- export declare function formatTheme(installThemeChoice: boolean, themeIsUpdate: boolean): string;
5
4
  export declare function showSelectionResult(count: number, label: string): void;
6
5
  export declare function getSeparator(): string;
7
- export declare function displaySummary(agentsCat: CategorizedItems, skillsCat: CategorizedItems, commandsCat: CategorizedItems, mcpsCat: CategorizedItems, installThemeChoice: boolean, themeIsUpdate: boolean): void;
6
+ export declare function displaySummary(agentsCat: CategorizedItems, skillsCat: CategorizedItems, commandsCat: CategorizedItems, mcpsCat: CategorizedItems, themesCat: CategorizedItems): void;
8
7
  //# sourceMappingURL=display.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/ui/display.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBnD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAS/D;AAED,wBAAgB,WAAW,CAAC,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,CAGvF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMtE;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAAE,OAAO,EAC3B,aAAa,EAAE,OAAO,GACrB,IAAI,CAsCN"}
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/ui/display.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBnD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAS/D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMtE;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,gBAAgB,GAC1B,IAAI,CAsCN"}
@@ -2,25 +2,25 @@ import chalk from 'chalk';
2
2
  import boxen from 'boxen';
3
3
  import { join } from 'path';
4
4
  import { ROOT_DIR, UI_PANEL_WIDTH } from '../constants.js';
5
- import { readJsonConfig } from '../utils/fs.js';
5
+ import { readPackageJson } from '../utils/fs.js';
6
6
  import { clearScreen } from '../utils/terminal.js';
7
7
  export async function displayHeader() {
8
- const pkg = await readJsonConfig(join(ROOT_DIR, 'package.json'));
9
- const version = pkg.version;
8
+ const pkg = await readPackageJson(join(ROOT_DIR, 'package.json'));
9
+ const version = pkg.version ?? 'unknown';
10
10
  const logo = [
11
- chalk.cyanBright(' ██████╗██╗ ██╗██╗ ██╗'),
11
+ chalk.cyanBright(' ███████╗██╗ ██╗██╗ ██╗'),
12
12
  chalk.cyanBright(' ██╔════╝██║ ██╔╝██║ ██║'),
13
13
  chalk.cyanBright(' ██║ █████╔╝ ██║ █╗ ██║'),
14
14
  chalk.cyanBright(' ██║ ██╔═██╗ ██║███╗██║'),
15
- chalk.cyanBright(' ╚██████╗██║ ██╗╚███╔███╔╝'),
16
- chalk.cyanBright(' ╚═════╝╚═╝ ╚═╝ ╚══╝╚══╝') + chalk.green(' ●'),
15
+ chalk.cyanBright(' ███████╗██║ ██╗╚███╔███╔╝'),
16
+ chalk.cyanBright(' ╚══════╝╚═╝ ╚═╝ ╚══╝╚══╝') + chalk.green(' ●'),
17
17
  ].join('\n');
18
18
  clearScreen();
19
19
  console.log(boxen(logo, {
20
20
  padding: { top: 1, bottom: 1, left: 16, right: 16 },
21
21
  borderStyle: 'round',
22
22
  borderColor: 'green',
23
- title: chalk.white(`CKW AI Toolkit v${version}`),
23
+ title: chalk.white(`SWE AI Toolkit v${version}`),
24
24
  titleAlignment: 'left',
25
25
  width: UI_PANEL_WIDTH,
26
26
  }));
@@ -36,11 +36,6 @@ export function formatCategorized(cat) {
36
36
  }
37
37
  return parts.length > 0 ? parts.join(' ') : chalk.dim('none');
38
38
  }
39
- export function formatTheme(installThemeChoice, themeIsUpdate) {
40
- if (!installThemeChoice)
41
- return chalk.dim('none');
42
- return themeIsUpdate ? chalk.yellow('↻ claude-vivid') : chalk.green('+ claude-vivid');
43
- }
44
39
  export function showSelectionResult(count, label) {
45
40
  if (count > 0) {
46
41
  console.log(chalk.green(`✓ ${count} ${label} selected`));
@@ -52,17 +47,17 @@ export function showSelectionResult(count, label) {
52
47
  export function getSeparator() {
53
48
  return chalk.dim('─'.repeat(50));
54
49
  }
55
- export function displaySummary(agentsCat, skillsCat, commandsCat, mcpsCat, installThemeChoice, themeIsUpdate) {
50
+ export function displaySummary(agentsCat, skillsCat, commandsCat, mcpsCat, themesCat) {
56
51
  const totalNew = agentsCat.new.length +
57
52
  skillsCat.new.length +
58
53
  commandsCat.new.length +
59
54
  mcpsCat.new.length +
60
- (installThemeChoice && !themeIsUpdate ? 1 : 0);
55
+ themesCat.new.length;
61
56
  const totalUpdate = agentsCat.update.length +
62
57
  skillsCat.update.length +
63
58
  commandsCat.update.length +
64
59
  mcpsCat.update.length +
65
- (installThemeChoice && themeIsUpdate ? 1 : 0);
60
+ themesCat.update.length;
66
61
  const summaryLines = [
67
62
  chalk.dim('(+ new ↻ update)'),
68
63
  '',
@@ -70,7 +65,7 @@ export function displaySummary(agentsCat, skillsCat, commandsCat, mcpsCat, insta
70
65
  `Skills: ${formatCategorized(skillsCat)}`,
71
66
  `Commands: ${formatCategorized(commandsCat)}`,
72
67
  `MCPs: ${formatCategorized(mcpsCat)}`,
73
- `Theme: ${formatTheme(installThemeChoice, themeIsUpdate)}`,
68
+ `Themes: ${formatCategorized(themesCat)}`,
74
69
  '',
75
70
  chalk.white(`Total: ${chalk.green(`${totalNew} new`)}, ${chalk.yellow(`${totalUpdate} updates`)}`),
76
71
  ].join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/ui/display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/ui/display.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,19 @@
1
+ import { type McpConfig, type OpencodeConfig, type PackageJson } from '../types.js';
2
+ export declare class JsonParseError extends Error {
3
+ readonly filePath: string;
4
+ readonly cause: Error;
5
+ constructor(filePath: string, cause: Error);
6
+ }
7
+ export declare class JsonValidationError extends Error {
8
+ readonly filePath: string;
9
+ readonly expectedType: string;
10
+ constructor(filePath: string, expectedType: string);
11
+ }
1
12
  export declare function exists(path: string): Promise<boolean>;
2
13
  export declare function getDirectories(path: string): Promise<string[]>;
3
14
  export declare function getFiles(path: string, extension: string): Promise<string[]>;
15
+ export declare function readOpencodeConfig(path: string): Promise<OpencodeConfig>;
16
+ export declare function readMcpConfig(path: string): Promise<McpConfig>;
17
+ export declare function readPackageJson(path: string): Promise<PackageJson>;
4
18
  export declare function readJsonConfig(path: string): Promise<Record<string, unknown>>;
5
19
  //# sourceMappingURL=fs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAEA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOpE;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASjF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOnF"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,qBAAa,cAAe,SAAQ,KAAK;aAErB,QAAQ,EAAE,MAAM;aAChB,KAAK,EAAE,KAAK;gBADZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK;CAK/B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,QAAQ,EAAE,MAAM;aAChB,YAAY,EAAE,MAAM;gBADpB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM;CAKvC;AAMD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOpE;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASjF;AAiBD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAS9E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CASpE;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CASxE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CASnF"}
package/dist/utils/fs.js CHANGED
@@ -1,4 +1,28 @@
1
1
  import { access, readdir, readFile } from 'fs/promises';
2
+ import { isRecord, isMcpConfig, isOpencodeConfig, isPackageJson, } from '../types.js';
3
+ export class JsonParseError extends Error {
4
+ filePath;
5
+ cause;
6
+ constructor(filePath, cause) {
7
+ super(`Failed to parse JSON at ${filePath}: ${cause.message}`);
8
+ this.filePath = filePath;
9
+ this.cause = cause;
10
+ this.name = 'JsonParseError';
11
+ }
12
+ }
13
+ export class JsonValidationError extends Error {
14
+ filePath;
15
+ expectedType;
16
+ constructor(filePath, expectedType) {
17
+ super(`Invalid JSON structure at ${filePath}: expected ${expectedType}`);
18
+ this.filePath = filePath;
19
+ this.expectedType = expectedType;
20
+ this.name = 'JsonValidationError';
21
+ }
22
+ }
23
+ function isNodeError(error) {
24
+ return error instanceof Error && 'code' in error;
25
+ }
2
26
  export async function exists(path) {
3
27
  try {
4
28
  await access(path);
@@ -28,13 +52,59 @@ export async function getFiles(path, extension) {
28
52
  return [];
29
53
  }
30
54
  }
31
- export async function readJsonConfig(path) {
55
+ async function readAndParseJson(path) {
32
56
  try {
33
57
  const content = await readFile(path, 'utf-8');
34
58
  return JSON.parse(content);
35
59
  }
36
- catch {
60
+ catch (error) {
61
+ if (isNodeError(error) && error.code === 'ENOENT') {
62
+ return null;
63
+ }
64
+ if (error instanceof SyntaxError) {
65
+ throw new JsonParseError(path, error);
66
+ }
67
+ throw error;
68
+ }
69
+ }
70
+ export async function readOpencodeConfig(path) {
71
+ const data = await readAndParseJson(path);
72
+ if (data === null) {
37
73
  return {};
38
74
  }
75
+ if (!isOpencodeConfig(data)) {
76
+ throw new JsonValidationError(path, 'OpencodeConfig');
77
+ }
78
+ return data;
79
+ }
80
+ export async function readMcpConfig(path) {
81
+ const data = await readAndParseJson(path);
82
+ if (data === null) {
83
+ return {};
84
+ }
85
+ if (!isMcpConfig(data)) {
86
+ throw new JsonValidationError(path, 'McpConfig');
87
+ }
88
+ return data;
89
+ }
90
+ export async function readPackageJson(path) {
91
+ const data = await readAndParseJson(path);
92
+ if (data === null) {
93
+ return {};
94
+ }
95
+ if (!isPackageJson(data)) {
96
+ throw new JsonValidationError(path, 'PackageJson');
97
+ }
98
+ return data;
99
+ }
100
+ export async function readJsonConfig(path) {
101
+ const data = await readAndParseJson(path);
102
+ if (data === null) {
103
+ return {};
104
+ }
105
+ if (!isRecord(data)) {
106
+ throw new JsonValidationError(path, 'Record<string, unknown>');
107
+ }
108
+ return data;
39
109
  }
40
110
  //# sourceMappingURL=fs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,SAAiB;IAC5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@brookmind/ai-toolkit",
3
- "version": "1.2.1",
4
- "description": "AI Toolkit installer for OpenCode - agents, skills, MCPs, and themes",
3
+ "version": "1.2.2",
4
+ "description": "SWE AI Toolkit - agents, skills, commands, MCPs, and themes for AI coding assistants",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",