suzi-cli 0.1.5 → 0.1.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6H5D"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgDpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2H5D"}
@@ -5,11 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerSkillsCommand = registerSkillsCommand;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
- const fs_1 = __importDefault(require("fs"));
9
- const path_1 = __importDefault(require("path"));
10
- const os_1 = __importDefault(require("os"));
11
8
  const ui_1 = require("../utils/ui");
12
9
  const suzi_guide_1 = require("../lib/suzi-guide");
10
+ const skills_1 = require("../lib/skills");
13
11
  // ─────────────────────────────────────────────────────────────
14
12
  // Skill: suzi-guide
15
13
  // ─────────────────────────────────────────────────────────────
@@ -40,7 +38,7 @@ const SKILLS = [
40
38
  function registerSkillsCommand(program) {
41
39
  const skills = program
42
40
  .command('skills')
43
- .description('Manage Claude Code skills for Suzi');
41
+ .description('Manage Claude Code and Codex skills for Suzi');
44
42
  // suzi skills — list available skills
45
43
  skills.action(() => {
46
44
  (0, ui_1.header)('Available Skills');
@@ -69,7 +67,8 @@ function registerSkillsCommand(program) {
69
67
  }
70
68
  (0, ui_1.header)(skill.name);
71
69
  console.log();
72
- (0, ui_1.label)('Path', `~/.claude/skills/${skill.name}/SKILL.md`);
70
+ (0, ui_1.label)('Claude Path', `~/.claude/skills/${skill.name}/SKILL.md`);
71
+ (0, ui_1.label)('Codex Path', `~/.codex/skills/${skill.name}/SKILL.md`);
73
72
  (0, ui_1.label)('Description', skill.description);
74
73
  (0, ui_1.label)('Size', `${skill.content.split('\n').length} lines`);
75
74
  console.log();
@@ -95,13 +94,19 @@ function registerSkillsCommand(program) {
95
94
  // suzi skills add <name>
96
95
  skills
97
96
  .command('add [name]')
98
- .description('Install a skill to .claude/skills/')
97
+ .description('Install a skill globally for Claude Code and/or Codex')
99
98
  .option('--all', 'Install all available skills')
100
- .option('--dir <path>', 'Custom output directory (default: ~/.claude/skills/)')
99
+ .option('--client <client>', 'Target client: claude | codex | both (default: both)', 'both')
100
+ .option('--dir <path>', 'Custom output directory (overrides --client)')
101
101
  .action((name, opts) => {
102
- const targetDir = opts?.dir
103
- ? path_1.default.resolve(process.cwd(), opts.dir)
104
- : path_1.default.join(os_1.default.homedir(), '.claude', 'skills');
102
+ let targets = [];
103
+ try {
104
+ targets = (0, skills_1.resolveSkillTargets)(opts);
105
+ }
106
+ catch (err) {
107
+ (0, ui_1.error)(err.message);
108
+ return;
109
+ }
105
110
  // Determine which skills to install
106
111
  let toInstall;
107
112
  if (opts?.all) {
@@ -121,31 +126,25 @@ function registerSkillsCommand(program) {
121
126
  (0, ui_1.info)(`Available: ${SKILLS.map((s) => s.name).join(', ')}`);
122
127
  return;
123
128
  }
124
- // Create directory
125
- if (!fs_1.default.existsSync(targetDir)) {
126
- fs_1.default.mkdirSync(targetDir, { recursive: true });
127
- }
128
- for (const skill of toInstall) {
129
- const skillDir = path_1.default.join(targetDir, skill.name);
130
- const filePath = path_1.default.join(skillDir, 'SKILL.md');
131
- const exists = fs_1.default.existsSync(filePath);
132
- if (!fs_1.default.existsSync(skillDir)) {
133
- fs_1.default.mkdirSync(skillDir, { recursive: true });
134
- }
135
- fs_1.default.writeFileSync(filePath, skill.content);
136
- const displayPath = filePath.startsWith(os_1.default.homedir())
137
- ? '~' + filePath.slice(os_1.default.homedir().length)
138
- : path_1.default.relative(process.cwd(), filePath);
139
- if (exists) {
140
- (0, ui_1.success)(`Updated ${chalk_1.default.bold(skill.name)} → ${displayPath}`);
141
- }
142
- else {
143
- (0, ui_1.success)(`Installed ${chalk_1.default.bold(skill.name)} → ${displayPath}`);
129
+ for (const target of targets) {
130
+ for (const skill of toInstall) {
131
+ const result = (0, skills_1.installSkillToTarget)(target, skill.name, skill.content, 'upsert');
132
+ const displayPath = (0, skills_1.toDisplayPath)(result.filePath);
133
+ if (result.state === 'installed') {
134
+ (0, ui_1.success)(`Installed ${chalk_1.default.bold(skill.name)} for ${target.label} → ${displayPath}`);
135
+ continue;
136
+ }
137
+ if (result.state === 'updated') {
138
+ (0, ui_1.success)(`Updated ${chalk_1.default.bold(skill.name)} for ${target.label} ${displayPath}`);
139
+ continue;
140
+ }
141
+ (0, ui_1.info)(`No changes for ${chalk_1.default.bold(skill.name)} in ${target.label} → ${displayPath}`);
144
142
  }
145
143
  }
146
144
  console.log();
147
145
  (0, ui_1.divider)();
148
- (0, ui_1.info)('Skills are now available to Claude Code in this project.');
146
+ const labels = targets.map((t) => t.label).join(' + ');
147
+ (0, ui_1.info)(`Skills are now available to ${labels}.`);
149
148
  });
150
149
  }
151
150
  //# sourceMappingURL=skills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerValidateCommand(program: Command): void;
3
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwK9D"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerValidateCommand = registerValidateCommand;
7
+ const ora_1 = __importDefault(require("ora"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const inquirer_1 = __importDefault(require("inquirer"));
11
+ const api_1 = require("../lib/api");
12
+ const ui_1 = require("../utils/ui");
13
+ function registerValidateCommand(program) {
14
+ program
15
+ .command('validate [file]')
16
+ .description('Validate an agent TypeScript file without deploying')
17
+ .action(async (file) => {
18
+ if (!(0, ui_1.requireAuth)())
19
+ return;
20
+ // Resolve file path — if none given, scan for .ts files with defineAgent and let user pick
21
+ let filePath = file;
22
+ if (!filePath) {
23
+ const cwd = process.cwd();
24
+ const scanDirs = [cwd, path_1.default.join(cwd, 'src')];
25
+ const agentFiles = [];
26
+ for (const dir of scanDirs) {
27
+ if (!fs_1.default.existsSync(dir))
28
+ continue;
29
+ for (const entry of fs_1.default.readdirSync(dir)) {
30
+ if (!entry.endsWith('.ts'))
31
+ continue;
32
+ const full = path_1.default.join(dir, entry);
33
+ try {
34
+ const content = fs_1.default.readFileSync(full, 'utf-8');
35
+ if (content.includes('defineAgent')) {
36
+ agentFiles.push(full);
37
+ }
38
+ }
39
+ catch {
40
+ // skip unreadable files
41
+ }
42
+ }
43
+ }
44
+ if (agentFiles.length === 0) {
45
+ (0, ui_1.error)('No agent files found in current directory.');
46
+ (0, ui_1.info)('Create a .ts file with `defineAgent({...})` or specify a path: `suzi validate ./agent.ts`');
47
+ return;
48
+ }
49
+ if (agentFiles.length === 1) {
50
+ filePath = agentFiles[0];
51
+ }
52
+ else {
53
+ const { selected } = await inquirer_1.default.prompt([
54
+ {
55
+ type: 'list',
56
+ name: 'selected',
57
+ message: 'Select an agent file to validate:',
58
+ choices: agentFiles.map(f => ({
59
+ name: path_1.default.relative(cwd, f),
60
+ value: f,
61
+ })),
62
+ },
63
+ ]);
64
+ filePath = selected;
65
+ }
66
+ }
67
+ const resolvedPath = path_1.default.resolve(process.cwd(), filePath);
68
+ if (!fs_1.default.existsSync(resolvedPath)) {
69
+ (0, ui_1.error)(`File not found: ${resolvedPath}`);
70
+ return;
71
+ }
72
+ const source = fs_1.default.readFileSync(resolvedPath, 'utf-8');
73
+ if (!source.includes('defineAgent')) {
74
+ (0, ui_1.error)('File does not appear to be a Suzi agent (missing defineAgent).');
75
+ (0, ui_1.info)('Agent files must export `defineAgent({...})`.');
76
+ return;
77
+ }
78
+ (0, ui_1.header)('Validate Agent');
79
+ console.log();
80
+ (0, ui_1.label)('File', path_1.default.relative(process.cwd(), resolvedPath));
81
+ (0, ui_1.label)('Size', `${Buffer.byteLength(source, 'utf8')} bytes`);
82
+ console.log();
83
+ const spinner = (0, ora_1.default)('Validating agent...').start();
84
+ try {
85
+ const resp = await (0, api_1.post)('/api/agent/validate', { code: source });
86
+ if (!resp.ok) {
87
+ spinner.fail('Validation failed');
88
+ console.log();
89
+ (0, ui_1.error)(resp.data?.message || 'Compilation error');
90
+ if (resp.data?.details) {
91
+ console.log(ui_1.colors.muted(` ${resp.data.details}`));
92
+ }
93
+ return;
94
+ }
95
+ const data = resp.data;
96
+ if (data.valid) {
97
+ spinner.succeed('Agent is valid!');
98
+ }
99
+ else {
100
+ spinner.fail('Validation issues found');
101
+ }
102
+ console.log();
103
+ // Show spec summary
104
+ if (data.spec) {
105
+ if (data.spec.meta?.name) {
106
+ (0, ui_1.label)('Name', data.spec.meta.name);
107
+ }
108
+ (0, ui_1.label)('Triggers', Object.keys(data.spec.triggers || {}).join(', ') || 'none');
109
+ if (data.spec.resources) {
110
+ (0, ui_1.label)('Resources', Object.keys(data.spec.resources).join(', '));
111
+ }
112
+ }
113
+ // Show valid action references
114
+ const refs = data.actions?.references || [];
115
+ const issues = data.actions?.issues || [];
116
+ const issueKeys = new Set(issues.flatMap((i) => {
117
+ const keys = [`${i.protocol}.${i.action || ''}`];
118
+ if (i.type === 'unknown_protocol') {
119
+ keys.push(i.protocol);
120
+ }
121
+ return keys;
122
+ }));
123
+ if (refs.length > 0) {
124
+ console.log();
125
+ console.log(ui_1.colors.highlight(' Actions used:'));
126
+ for (const ref of refs) {
127
+ const key = `${ref.protocol}.${ref.action}`;
128
+ if (!issueKeys.has(key) && !issueKeys.has(ref.protocol)) {
129
+ console.log(` ${ui_1.colors.success('✓')} ${key} ${ui_1.colors.muted(`(line ${ref.line})`)}`);
130
+ }
131
+ }
132
+ }
133
+ // Show issues
134
+ if (issues.length > 0) {
135
+ console.log();
136
+ console.log(ui_1.colors.error(' Issues:'));
137
+ for (const issue of issues) {
138
+ if (issue.type === 'unknown_protocol') {
139
+ console.log(` ${ui_1.colors.error('✕')} Unknown protocol: ${ui_1.colors.highlight(issue.protocol)} ${ui_1.colors.muted(`(line ${issue.line})`)}`);
140
+ }
141
+ else if (issue.type === 'unknown_action') {
142
+ console.log(` ${ui_1.colors.error('✕')} Unknown action: ${ui_1.colors.highlight(issue.protocol + '.' + issue.action)} ${ui_1.colors.muted(`(line ${issue.line})`)}`);
143
+ }
144
+ if (issue.suggestions?.length > 0) {
145
+ console.log(` ${ui_1.colors.muted('Did you mean:')} ${issue.suggestions.join(', ')}`);
146
+ }
147
+ }
148
+ }
149
+ console.log();
150
+ (0, ui_1.divider)();
151
+ if (data.valid) {
152
+ (0, ui_1.info)('Ready to deploy: `suzi deploy ' + path_1.default.relative(process.cwd(), resolvedPath) + '`');
153
+ }
154
+ else {
155
+ (0, ui_1.warn)('Fix the issues above before deploying.');
156
+ }
157
+ }
158
+ catch (err) {
159
+ spinner.fail();
160
+ (0, ui_1.error)(`Validation error: ${err.message}`);
161
+ }
162
+ });
163
+ }
164
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -26,6 +26,8 @@ const create_1 = require("./commands/create");
26
26
  const accounts_1 = require("./commands/accounts");
27
27
  const feedback_1 = require("./commands/feedback");
28
28
  const env_1 = require("./commands/env");
29
+ const validate_1 = require("./commands/validate");
30
+ const list_triggers_1 = require("./commands/list-triggers");
29
31
  const ui_1 = require("./utils/ui");
30
32
  const config_1 = require("./lib/config");
31
33
  const history_1 = require("./lib/history");
@@ -69,6 +71,8 @@ program
69
71
  (0, accounts_1.registerAccountsCommand)(program); // accounts, accounts switch, accounts create, accounts rename, accounts delete
70
72
  (0, feedback_1.registerFeedbackCommand)(program); // feedback
71
73
  (0, env_1.registerEnvCommand)(program); // env, env set, env list, env remove
74
+ (0, validate_1.registerValidateCommand)(program); // validate
75
+ (0, list_triggers_1.registerListTriggersCommand)(program); // list-triggers / triggers
72
76
  // Default action: show quick status + suggestions
73
77
  program.action(() => {
74
78
  console.log((0, ui_1.logo)());
@@ -98,7 +102,7 @@ program.action(() => {
98
102
  if (!loggedIn) {
99
103
  console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white('suzi login')} ${ui_1.colors.muted('Sign in with Google')}`);
100
104
  }
101
- console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white('suzi create')} ${ui_1.colors.muted('Create an agent with AI assistance')}`);
105
+ console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white('suzi create')} ${ui_1.colors.muted('Create an agent with Claude Code or Codex')}`);
102
106
  console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white('suzi portfolio')} ${ui_1.colors.muted('View your assets')}`);
103
107
  console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white('suzi wallet balance')} ${ui_1.colors.muted('Check balances')}`);
104
108
  console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white('suzi accounts')} ${ui_1.colors.muted('Manage accounts')}`);
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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"}
@@ -4,10 +4,12 @@ export interface Account {
4
4
  svmWalletAddress: string;
5
5
  evmWalletAddress: string;
6
6
  }
7
+ export type SuziAiProvider = 'claude' | 'codex';
7
8
  export interface SuziConfig {
8
9
  accessToken?: string;
9
10
  apiUrl: string;
10
11
  webUrl: string;
12
+ defaultAi?: SuziAiProvider;
11
13
  user?: {
12
14
  id: string;
13
15
  email: string | null;
@@ -26,6 +28,8 @@ export declare function setAccounts(accounts: SuziConfig['accounts']): void;
26
28
  export declare function setActiveAccountId(accountId: string): void;
27
29
  export declare function setApiUrl(url: string): void;
28
30
  export declare function setWebUrl(url: string): void;
31
+ export declare function setDefaultAi(ai: SuziAiProvider): void;
32
+ export declare function getDefaultAi(): SuziAiProvider | undefined;
29
33
  export declare function getWebUrl(): string;
30
34
  export declare function setPreference(key: string, value: string): void;
31
35
  export declare function clearAuth(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AA6BD,wBAAgB,SAAS,IAAI,UAAU,CAEtC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI5C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAItD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAIlE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAI1D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAM9D;AAED,wBAAgB,SAAS,IAAI,IAAI,CAOhC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,SAAS,CAE7C;AAED,wBAAgB,gBAAgB,wBAI/B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AA6BD,wBAAgB,SAAS,IAAI,UAAU,CAEtC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI5C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAItD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAIlE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAI1D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAIrD;AAED,wBAAgB,YAAY,IAAI,cAAc,GAAG,SAAS,CAIzD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAM9D;AAED,wBAAgB,SAAS,IAAI,IAAI,CAOhC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,SAAS,CAE7C;AAED,wBAAgB,gBAAgB,wBAI/B"}
@@ -10,6 +10,8 @@ exports.setAccounts = setAccounts;
10
10
  exports.setActiveAccountId = setActiveAccountId;
11
11
  exports.setApiUrl = setApiUrl;
12
12
  exports.setWebUrl = setWebUrl;
13
+ exports.setDefaultAi = setDefaultAi;
14
+ exports.getDefaultAi = getDefaultAi;
13
15
  exports.getWebUrl = getWebUrl;
14
16
  exports.setPreference = setPreference;
15
17
  exports.clearAuth = clearAuth;
@@ -76,6 +78,17 @@ function setWebUrl(url) {
76
78
  store.webUrl = url;
77
79
  writeStore(store);
78
80
  }
81
+ function setDefaultAi(ai) {
82
+ const store = readStore();
83
+ store.defaultAi = ai;
84
+ writeStore(store);
85
+ }
86
+ function getDefaultAi() {
87
+ const value = readStore().defaultAi;
88
+ if (value === 'claude' || value === 'codex')
89
+ return value;
90
+ return undefined;
91
+ }
79
92
  function getWebUrl() {
80
93
  return readStore().webUrl;
81
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":";;;;;AAsDA,8BAEC;AAED,4BAIC;AAED,0BAIC;AAED,kCAIC;AAED,gDAIC;AAED,8BAIC;AAED,8BAIC;AAED,8BAEC;AAED,sCAMC;AAED,8BAOC;AAED,gCAEC;AAED,4BAEC;AAED,4CAIC;AA/HD,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAyBpB,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEzD,MAAM,QAAQ,GAAe;IAC3B,MAAM,EAAE,sCAAsC;IAC9C,MAAM,EAAE,uBAAuB;CAChC,CAAC;AAEF,SAAS,SAAS;IAChB,IAAI,CAAC;QACH,IAAI,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IACD,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB;IAClC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,SAAS,EAAE,CAAC;AACrB,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAa;IACpC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IAC1B,UAAU,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,OAAO,CAAC,IAAwB;IAC9C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,UAAU,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,WAAW,CAAC,QAAgC;IAC1D,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,UAAU,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,SAAS,CAAC,GAAW;IACnC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACnB,UAAU,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,SAAS,CAAC,GAAW;IACnC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACnB,UAAU,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC;AAC5B,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW,EAAE,KAAa;IACtD,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IACrC,KAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC5B,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IAC1B,UAAU,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,SAAS;IACvB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,OAAO,KAAK,CAAC,WAAW,CAAC;IACzB,OAAO,KAAK,CAAC,IAAI,CAAC;IAClB,OAAO,KAAK,CAAC,QAAQ,CAAC;IACtB,OAAO,KAAK,CAAC,eAAe,CAAC;IAC7B,UAAU,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC;AACnC,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO,SAAS,EAAE,CAAC,WAAW,CAAC;AACjC,CAAC;AAED,SAAgB,gBAAgB;IAC9B,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,eAAe;QAAE,OAAO,SAAS,CAAC;IAChE,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,eAAe,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export type SkillClient = 'claude' | 'codex' | 'both';
2
+ export type SkillInstallMode = 'upsert' | 'missing-only';
3
+ export type SkillInstallState = 'installed' | 'updated' | 'unchanged' | 'skipped-existing';
4
+ export interface SkillInstallTarget {
5
+ label: string;
6
+ dir: string;
7
+ }
8
+ export interface InstallSkillResult {
9
+ state: SkillInstallState;
10
+ skillDir: string;
11
+ filePath: string;
12
+ }
13
+ export declare function getDefaultSkillTargets(): SkillInstallTarget[];
14
+ export declare function resolveSkillTargets(opts?: {
15
+ dir?: string;
16
+ client?: SkillClient;
17
+ }): SkillInstallTarget[];
18
+ export declare function installSkillToTarget(target: SkillInstallTarget, skillName: string, content: string, mode?: SkillInstallMode): InstallSkillResult;
19
+ export declare function toDisplayPath(filePath: string): string;
20
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,cAAc,CAAC;AACzD,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAE3F,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAaD,wBAAgB,sBAAsB,IAAI,kBAAkB,EAAE,CAE7D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,kBAAkB,EAAE,CAevG;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,gBAA2B,GAChC,kBAAkB,CA4BpB;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAItD"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getDefaultSkillTargets = getDefaultSkillTargets;
7
+ exports.resolveSkillTargets = resolveSkillTargets;
8
+ exports.installSkillToTarget = installSkillToTarget;
9
+ exports.toDisplayPath = toDisplayPath;
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const os_1 = __importDefault(require("os"));
12
+ const path_1 = __importDefault(require("path"));
13
+ const DEFAULT_INSTALL_TARGETS = [
14
+ {
15
+ label: 'Claude Code',
16
+ dir: path_1.default.join(os_1.default.homedir(), '.claude', 'skills'),
17
+ },
18
+ {
19
+ label: 'Codex',
20
+ dir: path_1.default.join(os_1.default.homedir(), '.codex', 'skills'),
21
+ },
22
+ ];
23
+ function getDefaultSkillTargets() {
24
+ return [...DEFAULT_INSTALL_TARGETS];
25
+ }
26
+ function resolveSkillTargets(opts) {
27
+ if (opts?.dir) {
28
+ return [
29
+ {
30
+ label: 'Custom',
31
+ dir: path_1.default.resolve(process.cwd(), opts.dir),
32
+ },
33
+ ];
34
+ }
35
+ const client = opts?.client ?? 'both';
36
+ if (client === 'both')
37
+ return getDefaultSkillTargets();
38
+ if (client === 'claude')
39
+ return [DEFAULT_INSTALL_TARGETS[0]];
40
+ if (client === 'codex')
41
+ return [DEFAULT_INSTALL_TARGETS[1]];
42
+ throw new Error(`Invalid client "${client}". Use one of: claude, codex, both.`);
43
+ }
44
+ function installSkillToTarget(target, skillName, content, mode = 'upsert') {
45
+ if (!fs_1.default.existsSync(target.dir)) {
46
+ fs_1.default.mkdirSync(target.dir, { recursive: true });
47
+ }
48
+ const skillDir = path_1.default.join(target.dir, skillName);
49
+ const filePath = path_1.default.join(skillDir, 'SKILL.md');
50
+ const fileExists = fs_1.default.existsSync(filePath);
51
+ if (!fs_1.default.existsSync(skillDir)) {
52
+ fs_1.default.mkdirSync(skillDir, { recursive: true });
53
+ }
54
+ if (fileExists && mode === 'missing-only') {
55
+ return { state: 'skipped-existing', skillDir, filePath };
56
+ }
57
+ if (fileExists && mode === 'upsert') {
58
+ const existing = fs_1.default.readFileSync(filePath, 'utf-8');
59
+ if (existing === content) {
60
+ return { state: 'unchanged', skillDir, filePath };
61
+ }
62
+ fs_1.default.writeFileSync(filePath, content);
63
+ return { state: 'updated', skillDir, filePath };
64
+ }
65
+ fs_1.default.writeFileSync(filePath, content);
66
+ return { state: 'installed', skillDir, filePath };
67
+ }
68
+ function toDisplayPath(filePath) {
69
+ return filePath.startsWith(os_1.default.homedir())
70
+ ? '~' + filePath.slice(os_1.default.homedir().length)
71
+ : path_1.default.relative(process.cwd(), filePath);
72
+ }
73
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"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"}