suzi-cli 0.1.1 → 0.1.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.
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerCreateCommand(program: Command): void;
3
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0EpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8E5D"}
@@ -0,0 +1,148 @@
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.registerCreateCommand = registerCreateCommand;
7
+ const child_process_1 = require("child_process");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const ui_1 = require("../utils/ui");
12
+ const suzi_guide_1 = require("../lib/suzi-guide");
13
+ const AGENT_TS_TEMPLATE = `export default defineAgent({
14
+ meta: {
15
+ name: 'My Agent',
16
+ version: '0.1.0',
17
+ },
18
+ resources: {
19
+ wallet: resource.wallet('evm'),
20
+ },
21
+ lifecycle: {
22
+ onActivate: async (ctx) => {
23
+ await ctx.actions.suzi.log({ message: 'Agent activated' });
24
+ },
25
+ onDeactivate: async (ctx) => {
26
+ await ctx.actions.suzi.log({ message: 'Agent deactivated' });
27
+ },
28
+ },
29
+ triggers: {
30
+ manual: on.suzi.manual(async (ctx, input) => {
31
+ await ctx.actions.suzi.log({ message: 'Agent executed manually' });
32
+ return { ok: true };
33
+ }),
34
+ },
35
+ });
36
+ `;
37
+ function buildSuziSystemPrompt() {
38
+ return `<suzi-agent-creator>
39
+ You are helping the user create a Suzi autonomous agent. You have full knowledge of the Suzi platform, its CLI, and the agent DSL. Your job is to help the user write an agent.ts file that implements their desired strategy or automation.
40
+
41
+ The working directory contains an agent.ts template file. Help the user modify it to match their needs.
42
+
43
+ <suzi-guide>
44
+ ${suzi_guide_1.SUZI_GUIDE_CONTENT}
45
+ </suzi-guide>
46
+
47
+ <rules>
48
+ - Agent code MUST default-export defineAgent({...})
49
+ - No imports allowed — agent code is self-contained
50
+ - The runtime provides defineAgent, on, resource, config, requirement as globals
51
+ - Use ctx.actions.<protocol>.<action>() for all external calls
52
+ - Always include at least one trigger
53
+ - Use ctx.actions.suzi.log() for debugging
54
+ - To discover available protocols and actions, run: suzi list-tools --verbose
55
+ - To discover actions for a specific protocol, run: suzi list-tools --protocol <name>
56
+ </rules>
57
+
58
+ <workflow>
59
+ After the agent.ts file is ready, instruct the user to:
60
+ 1. suzi deploy ./agent.ts — deploy the agent to Suzi
61
+ 2. suzi agents activate <id> — activate it (the deploy output shows the agent ID)
62
+ 3. suzi agents execute <id> — test it with a manual execution
63
+ 4. suzi agents logs <id> — check the execution logs
64
+ </workflow>
65
+ </suzi-agent-creator>`;
66
+ }
67
+ function isClaudeAvailable() {
68
+ try {
69
+ const cmd = process.platform === 'win32' ? 'where claude' : 'which claude';
70
+ (0, child_process_1.execSync)(cmd, { stdio: 'ignore' });
71
+ return true;
72
+ }
73
+ catch {
74
+ return false;
75
+ }
76
+ }
77
+ function registerCreateCommand(program) {
78
+ program
79
+ .command('create [dir]')
80
+ .description('Create an agent with AI assistance (launches Claude Code)')
81
+ .option('--no-scaffold', 'Skip agent.ts template creation')
82
+ .action(async (dir, opts) => {
83
+ const workingDir = path_1.default.resolve(process.cwd(), dir || './my-agent');
84
+ const shouldScaffold = opts?.scaffold !== false;
85
+ // Check that claude CLI is available
86
+ if (!isClaudeAvailable()) {
87
+ console.log();
88
+ (0, ui_1.error)('Claude Code is required but not found in PATH.');
89
+ console.log();
90
+ console.log(` Install it with:`);
91
+ console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white('npm install -g @anthropic-ai/claude-code')}`);
92
+ console.log();
93
+ (0, ui_1.info)('Learn more: https://docs.anthropic.com/en/docs/claude-code');
94
+ process.exit(1);
95
+ }
96
+ // Ensure working directory exists
97
+ if (!fs_1.default.existsSync(workingDir)) {
98
+ fs_1.default.mkdirSync(workingDir, { recursive: true });
99
+ }
100
+ const agentPath = path_1.default.join(workingDir, 'agent.ts');
101
+ const agentExists = fs_1.default.existsSync(agentPath);
102
+ // Scaffold agent.ts template
103
+ if (shouldScaffold && !agentExists) {
104
+ fs_1.default.writeFileSync(agentPath, AGENT_TS_TEMPLATE);
105
+ (0, ui_1.success)(`Created agent.ts template at ${path_1.default.relative(process.cwd(), agentPath)}`);
106
+ }
107
+ else if (agentExists) {
108
+ (0, ui_1.info)(`Using existing agent.ts at ${path_1.default.relative(process.cwd(), agentPath)}`);
109
+ }
110
+ console.log();
111
+ (0, ui_1.divider)();
112
+ console.log();
113
+ console.log(` ${chalk_1.default.bold('Starting AI-assisted agent creation...')}`);
114
+ console.log(` ${ui_1.colors.muted(`Working directory: ${workingDir}`)}`);
115
+ console.log(` ${ui_1.colors.muted('Type your agent idea and Claude will build it for you.')}`);
116
+ console.log(` ${ui_1.colors.muted('Press Ctrl+C to exit at any time.')}`);
117
+ console.log();
118
+ // Spawn claude with suzi context appended to system prompt
119
+ const args = [
120
+ '--append-system-prompt',
121
+ buildSuziSystemPrompt(),
122
+ ];
123
+ const child = (0, child_process_1.spawn)('claude', args, {
124
+ stdio: 'inherit',
125
+ cwd: workingDir,
126
+ env: { ...process.env },
127
+ });
128
+ child.on('error', (err) => {
129
+ (0, ui_1.error)(`Failed to start Claude Code: ${err.message}`);
130
+ process.exit(1);
131
+ });
132
+ child.on('exit', (code) => {
133
+ console.log();
134
+ if (fs_1.default.existsSync(agentPath)) {
135
+ (0, ui_1.divider)();
136
+ console.log();
137
+ console.log(chalk_1.default.bold(' Next steps:'));
138
+ console.log();
139
+ console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white(`suzi deploy ${path_1.default.relative(process.cwd(), agentPath)}`)}`);
140
+ console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white('suzi agents activate <id>')}`);
141
+ console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white('suzi agents execute <id>')}`);
142
+ console.log();
143
+ }
144
+ process.exit(code ?? 0);
145
+ });
146
+ });
147
+ }
148
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-tools.d.ts","sourceRoot":"","sources":["../../src/commands/list-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8GpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmE/D"}
1
+ {"version":3,"file":"list-tools.d.ts","sourceRoot":"","sources":["../../src/commands/list-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0GpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqI/D"}
@@ -5,159 +5,208 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerListToolsCommand = registerListToolsCommand;
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"));
8
11
  const ui_1 = require("../utils/ui");
9
- const PROTOCOLS = [
10
- {
11
- name: 'polymarket',
12
- description: 'Prediction markets trading on Polygon',
13
- chain: 'EVM',
14
- actions: [
15
- { name: 'place_order', type: 'write', description: 'Place a limit or market order' },
16
- { name: 'cancel_order', type: 'write', description: 'Cancel a single order' },
17
- { name: 'cancel_all_orders', type: 'write', description: 'Cancel all open orders' },
18
- { name: 'cancel_market_orders', type: 'write', description: 'Cancel orders for a market' },
19
- { name: 'post_orders_batch', type: 'write', description: 'Place multiple orders at once' },
20
- { name: 'set_allowances', type: 'write', description: 'Set token allowances' },
21
- { name: 'split_position', type: 'write', description: 'Split conditional tokens' },
22
- { name: 'merge_positions', type: 'write', description: 'Merge conditional tokens' },
23
- { name: 'redeem_positions', type: 'write', description: 'Redeem resolved positions' },
24
- { name: 'list_markets', type: 'read', description: 'List available markets' },
25
- { name: 'get_market_by_id', type: 'read', description: 'Get market details' },
26
- { name: 'get_market_by_slug', type: 'read', description: 'Get market by slug' },
27
- { name: 'list_events', type: 'read', description: 'List prediction events' },
28
- { name: 'public_search', type: 'read', description: 'Search markets and events' },
29
- { name: 'get_positions', type: 'read', description: 'Get wallet positions' },
30
- { name: 'get_trades', type: 'read', description: 'Get trade history' },
31
- { name: 'get_open_orders', type: 'read', description: 'Get open orders' },
32
- { name: 'get_my_trades', type: 'read', description: 'Get your trade history' },
33
- ],
34
- },
35
- {
36
- name: 'hyperliquid',
37
- description: 'Perpetual futures & spot trading',
38
- chain: 'EVM',
39
- actions: [
40
- { name: 'place_order', type: 'write', description: 'Place a perp order' },
41
- { name: 'cancel_order', type: 'write', description: 'Cancel a perp order' },
42
- { name: 'close_position', type: 'write', description: 'Close an open position' },
43
- { name: 'set_leverage', type: 'write', description: 'Set leverage for a market' },
44
- { name: 'twap_order', type: 'write', description: 'Place a TWAP order' },
45
- { name: 'scaled_orders', type: 'write', description: 'Place scaled orders' },
46
- { name: 'usdc_transfer', type: 'write', description: 'Transfer USDC' },
47
- { name: 'bridge_to_hyperliquid', type: 'write', description: 'Bridge funds in' },
48
- { name: 'bridge_from_hyperliquid', type: 'write', description: 'Bridge funds out' },
49
- { name: 'spot_place_order', type: 'write', description: 'Place a spot order' },
50
- { name: 'spot_cancel_order', type: 'write', description: 'Cancel a spot order' },
51
- { name: 'list_markets', type: 'read', description: 'List perp markets' },
52
- { name: 'get_prices', type: 'read', description: 'Get current prices' },
53
- { name: 'get_positions', type: 'read', description: 'Get open positions' },
54
- { name: 'get_account_info', type: 'read', description: 'Get account state' },
55
- { name: 'spot_get_balances', type: 'read', description: 'Get spot balances' },
56
- { name: 'spot_list_markets', type: 'read', description: 'List spot markets' },
57
- ],
58
- },
59
- {
60
- name: 'solana',
61
- description: 'Solana blockchain read operations',
62
- chain: 'SOL',
63
- actions: [
64
- { name: 'get_native_balance', type: 'read', description: 'Get SOL balance' },
65
- { name: 'get_token_balance', type: 'read', description: 'Get SPL token balance' },
66
- ],
67
- },
68
- {
69
- name: 'meteora',
70
- description: 'Meteora DLMM liquidity pools on Solana',
71
- chain: 'SOL',
72
- actions: [
73
- { name: 'add_liquidity', type: 'write', description: 'Add liquidity to a pool' },
74
- { name: 'remove_liquidity', type: 'write', description: 'Remove liquidity' },
75
- { name: 'close_position', type: 'write', description: 'Close LP position' },
76
- { name: 'list_pools', type: 'read', description: 'List available pools' },
77
- { name: 'get_pool_info', type: 'read', description: 'Get pool details' },
78
- { name: 'get_active_bin', type: 'read', description: 'Get active bin price' },
79
- { name: 'get_all_positions', type: 'read', description: 'Get your LP positions' },
80
- ],
81
- },
82
- {
83
- name: 'dflow',
84
- description: 'DEX aggregator swaps on Solana',
85
- chain: 'SOL',
86
- actions: [
87
- { name: 'swap', type: 'write', description: 'Execute a token swap' },
88
- { name: 'get_quote', type: 'read', description: 'Get a swap quote' },
89
- ],
90
- },
91
- {
92
- name: 'suzi',
93
- description: 'Platform utilities (storage, logging, notifications)',
94
- chain: 'N/A',
95
- actions: [
96
- { name: 'set_to_store', type: 'write', description: 'Save key-value data' },
97
- { name: 'get_from_store', type: 'read', description: 'Read stored data' },
98
- { name: 'log', type: 'write', description: 'Write to agent logs' },
99
- { name: 'notify', type: 'write', description: 'Send notification (Telegram)' },
100
- { name: 'get_evm_address', type: 'read', description: 'Get agent EVM wallet' },
101
- { name: 'get_svm_address', type: 'read', description: 'Get agent SOL wallet' },
102
- { name: 'sleep', type: 'write', description: 'Pause execution' },
103
- ],
104
- },
105
- ];
12
+ const api_1 = require("../lib/api");
13
+ const CACHE_DIR = path_1.default.join(os_1.default.homedir(), '.suzi');
14
+ const CACHE_PATH = path_1.default.join(CACHE_DIR, 'actions-cache.json');
15
+ const CACHE_TTL = 60 * 60 * 1000; // 1 hour
16
+ function readCache() {
17
+ try {
18
+ if (fs_1.default.existsSync(CACHE_PATH)) {
19
+ const raw = fs_1.default.readFileSync(CACHE_PATH, 'utf-8');
20
+ return JSON.parse(raw);
21
+ }
22
+ }
23
+ catch {
24
+ // Corrupted cache ignore
25
+ }
26
+ return null;
27
+ }
28
+ function writeCache(data) {
29
+ try {
30
+ if (!fs_1.default.existsSync(CACHE_DIR)) {
31
+ fs_1.default.mkdirSync(CACHE_DIR, { recursive: true });
32
+ }
33
+ fs_1.default.writeFileSync(CACHE_PATH, JSON.stringify(data, null, 2));
34
+ }
35
+ catch {
36
+ // Best-effort caching — don't fail the command if disk write fails
37
+ }
38
+ }
39
+ async function fetchActions() {
40
+ const res = await (0, api_1.get)('/api/actions');
41
+ if (!res.ok || !res.data?.ok) {
42
+ throw new Error(res.data?.error ?? `API returned status ${res.status}`);
43
+ }
44
+ return res.data.actions;
45
+ }
46
+ async function getActions(forceRefresh = false) {
47
+ if (!forceRefresh) {
48
+ const cache = readCache();
49
+ if (cache && Date.now() - cache.fetchedAt < CACHE_TTL) {
50
+ return cache.actions;
51
+ }
52
+ }
53
+ const actions = await fetchActions();
54
+ writeCache({ fetchedAt: Date.now(), actions });
55
+ return actions;
56
+ }
57
+ function cacheAge() {
58
+ const cache = readCache();
59
+ if (!cache)
60
+ return null;
61
+ const mins = Math.floor((Date.now() - cache.fetchedAt) / 60000);
62
+ if (mins < 1)
63
+ return 'just now';
64
+ if (mins < 60)
65
+ return `${mins}m ago`;
66
+ return `${Math.floor(mins / 60)}h ${mins % 60}m ago`;
67
+ }
68
+ function chainBadge(actions) {
69
+ const chains = new Set();
70
+ for (const action of actions) {
71
+ for (const w of action.requires?.wallet ?? []) {
72
+ chains.add(w);
73
+ }
74
+ }
75
+ const badges = [];
76
+ if (chains.has('evm'))
77
+ badges.push(ui_1.colors.evm('[EVM]'));
78
+ if (chains.has('svm'))
79
+ badges.push(ui_1.colors.sol('[SOL]'));
80
+ return badges.length > 0 ? badges.join(' ') : ui_1.colors.muted('[N/A]');
81
+ }
82
+ function isReadAction(name) {
83
+ const actionName = name.includes('.') ? name.split('.')[1] : name;
84
+ return /^(get_|list_|public_|search)/.test(actionName);
85
+ }
86
+ function groupByProtocol(actions) {
87
+ const groups = new Map();
88
+ for (const action of actions) {
89
+ const group = groups.get(action.protocol) ?? [];
90
+ group.push(action);
91
+ groups.set(action.protocol, group);
92
+ }
93
+ return groups;
94
+ }
106
95
  function registerListToolsCommand(program) {
107
- program
96
+ const cmd = program
108
97
  .command('list-tools')
109
98
  .alias('tools')
110
99
  .description('List all available protocols and actions')
111
100
  .option('--protocol <name>', 'Filter by protocol name')
112
101
  .option('--verbose', 'Show all actions per protocol')
113
- .action((opts) => {
114
- (0, ui_1.header)('Available Tools');
115
- console.log();
116
- const filtered = opts.protocol
117
- ? PROTOCOLS.filter((p) => p.name === opts.protocol)
118
- : PROTOCOLS;
119
- if (filtered.length === 0) {
120
- (0, ui_1.info)(`Protocol "${opts.protocol}" not found.`);
121
- (0, ui_1.info)(`Available: ${PROTOCOLS.map((p) => p.name).join(', ')}`);
102
+ .option('--schema <action>', 'Show JSON schema for a specific action (requires --protocol)')
103
+ .action(async (opts) => {
104
+ if (!(0, ui_1.requireAuth)())
122
105
  return;
123
- }
124
- for (const protocol of filtered) {
125
- const chainBadge = protocol.chain === 'SOL'
126
- ? ui_1.colors.sol(`[${protocol.chain}]`)
127
- : protocol.chain === 'EVM'
128
- ? ui_1.colors.evm(`[${protocol.chain}]`)
129
- : ui_1.colors.muted(`[${protocol.chain}]`);
130
- console.log(` ${chalk_1.default.bold(protocol.name)} ${chainBadge}`);
131
- console.log(` ${ui_1.colors.muted(protocol.description)}`);
132
- if (opts.verbose || opts.protocol) {
133
- const readActions = protocol.actions.filter((a) => a.type === 'read');
134
- const writeActions = protocol.actions.filter((a) => a.type === 'write');
135
- if (writeActions.length > 0) {
136
- console.log();
137
- console.log(` ${chalk_1.default.yellow('Write Actions:')}`);
138
- for (const action of writeActions) {
139
- console.log(` ${ui_1.colors.highlight(action.name)} ${ui_1.colors.muted(action.description)}`);
106
+ try {
107
+ const actions = await getActions();
108
+ const grouped = groupByProtocol(actions);
109
+ // --schema: show schema for a single action
110
+ if (opts.schema) {
111
+ if (!opts.protocol) {
112
+ (0, ui_1.error)('--schema requires --protocol. Example: suzi list-tools --protocol polymarket --schema place_order');
113
+ return;
114
+ }
115
+ const protocolActions = grouped.get(opts.protocol);
116
+ if (!protocolActions) {
117
+ (0, ui_1.error)(`Protocol "${opts.protocol}" not found.`);
118
+ (0, ui_1.info)(`Available: ${Array.from(grouped.keys()).join(', ')}`);
119
+ return;
120
+ }
121
+ const fullName = `${opts.protocol}.${opts.schema}`;
122
+ const match = protocolActions.find((a) => a.name === fullName);
123
+ if (!match) {
124
+ (0, ui_1.error)(`Action "${opts.schema}" not found in ${opts.protocol}.`);
125
+ (0, ui_1.info)('Available actions:');
126
+ for (const a of protocolActions) {
127
+ const short = a.name.includes('.') ? a.name.split('.')[1] : a.name;
128
+ console.log(` ${ui_1.colors.highlight(short)} ${ui_1.colors.muted(a.description)}`);
140
129
  }
130
+ return;
141
131
  }
142
- if (readActions.length > 0) {
143
- console.log();
144
- console.log(` ${chalk_1.default.cyan('Read Actions:')}`);
145
- for (const action of readActions) {
146
- console.log(` ${ui_1.colors.highlight(action.name)} ${ui_1.colors.muted(action.description)}`);
132
+ console.log(JSON.stringify(match.parameters, null, 2));
133
+ return;
134
+ }
135
+ // Default: list protocols and actions
136
+ (0, ui_1.header)('Available Tools');
137
+ console.log();
138
+ const protocols = opts.protocol
139
+ ? [[opts.protocol, grouped.get(opts.protocol)]]
140
+ : Array.from(grouped.entries());
141
+ if (opts.protocol && !grouped.has(opts.protocol)) {
142
+ (0, ui_1.error)(`Protocol "${opts.protocol}" not found.`);
143
+ (0, ui_1.info)(`Available: ${Array.from(grouped.keys()).join(', ')}`);
144
+ return;
145
+ }
146
+ for (const [protocol, protocolActions] of protocols) {
147
+ if (!protocolActions)
148
+ continue;
149
+ const badge = chainBadge(protocolActions);
150
+ console.log(` ${chalk_1.default.bold(protocol)} ${badge}`);
151
+ const showDetails = opts.verbose || opts.protocol;
152
+ if (showDetails) {
153
+ const readActions = protocolActions.filter((a) => isReadAction(a.name));
154
+ const writeActions = protocolActions.filter((a) => !isReadAction(a.name));
155
+ if (writeActions.length > 0) {
156
+ console.log();
157
+ console.log(` ${chalk_1.default.yellow('Write Actions:')}`);
158
+ for (const action of writeActions) {
159
+ const shortName = action.name.includes('.') ? action.name.split('.')[1] : action.name;
160
+ console.log(` ${ui_1.colors.highlight(shortName)} ${ui_1.colors.muted(action.description)}`);
161
+ }
147
162
  }
163
+ if (readActions.length > 0) {
164
+ console.log();
165
+ console.log(` ${chalk_1.default.cyan('Read Actions:')}`);
166
+ for (const action of readActions) {
167
+ const shortName = action.name.includes('.') ? action.name.split('.')[1] : action.name;
168
+ console.log(` ${ui_1.colors.highlight(shortName)} ${ui_1.colors.muted(action.description)}`);
169
+ }
170
+ }
171
+ }
172
+ else {
173
+ const writeCount = protocolActions.filter((a) => !isReadAction(a.name)).length;
174
+ const readCount = protocolActions.filter((a) => isReadAction(a.name)).length;
175
+ console.log(` ${ui_1.colors.muted(`${writeCount} write`)} + ${ui_1.colors.muted(`${readCount} read`)} actions`);
148
176
  }
177
+ console.log();
149
178
  }
150
- else {
151
- const writeCount = protocol.actions.filter((a) => a.type === 'write').length;
152
- const readCount = protocol.actions.filter((a) => a.type === 'read').length;
153
- console.log(` ${ui_1.colors.muted(`${writeCount} write`)} + ${ui_1.colors.muted(`${readCount} read`)} actions`);
179
+ const totalActions = actions.length;
180
+ (0, ui_1.divider)();
181
+ (0, ui_1.info)(`${grouped.size} protocols, ${totalActions} total actions`);
182
+ const age = cacheAge();
183
+ if (age) {
184
+ (0, ui_1.info)(`Cached ${age}. Run ${chalk_1.default.cyan('suzi list-tools reload')} to refresh.`);
154
185
  }
155
- console.log();
186
+ if (!opts.verbose && !opts.protocol) {
187
+ (0, ui_1.info)('Use --verbose or --protocol <name> for details.');
188
+ }
189
+ (0, ui_1.info)(`Use ${chalk_1.default.cyan('suzi list-tools --protocol <name> --schema <action>')} to view schema.`);
190
+ }
191
+ catch (err) {
192
+ (0, ui_1.error)(`Failed to fetch actions: ${err.message}`);
193
+ }
194
+ });
195
+ cmd
196
+ .command('reload')
197
+ .description('Force-refresh the actions cache from the API')
198
+ .action(async () => {
199
+ if (!(0, ui_1.requireAuth)())
200
+ return;
201
+ try {
202
+ (0, ui_1.info)('Fetching actions from API...');
203
+ const actions = await getActions(true);
204
+ const grouped = groupByProtocol(actions);
205
+ (0, ui_1.info)(`Cache refreshed: ${grouped.size} protocols, ${actions.length} actions.`);
206
+ }
207
+ catch (err) {
208
+ (0, ui_1.error)(`Failed to refresh: ${err.message}`);
156
209
  }
157
- const totalActions = PROTOCOLS.reduce((sum, p) => sum + p.actions.length, 0);
158
- (0, ui_1.divider)();
159
- (0, ui_1.info)(`${PROTOCOLS.length} protocols, ${totalActions} total actions`);
160
- (0, ui_1.info)('Use --verbose or --protocol <name> for details.');
161
210
  });
162
211
  }
163
212
  //# sourceMappingURL=list-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-tools.js","sourceRoot":"","sources":["../../src/commands/list-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-tools.js","sourceRoot":"","sources":["../../src/commands/list-tools.ts"],"names":[],"mappings":"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"}
@@ -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;AAsdpC,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;AAkDpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6H5D"}