suzi-cli 0.1.6 → 0.1.8

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 (76) hide show
  1. package/README.md +267 -1
  2. package/dist/commands/accounts.d.ts.map +1 -1
  3. package/dist/commands/accounts.js +59 -0
  4. package/dist/commands/accounts.js.map +1 -1
  5. package/dist/commands/agents.d.ts.map +1 -1
  6. package/dist/commands/agents.js +10 -3
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/create.d.ts.map +1 -1
  9. package/dist/commands/create.js +47 -37
  10. package/dist/commands/create.js.map +1 -1
  11. package/dist/commands/debug.d.ts +3 -0
  12. package/dist/commands/debug.d.ts.map +1 -0
  13. package/dist/commands/debug.js +332 -0
  14. package/dist/commands/debug.js.map +1 -0
  15. package/dist/commands/deploy.d.ts.map +1 -1
  16. package/dist/commands/deploy.js +8 -2
  17. package/dist/commands/deploy.js.map +1 -1
  18. package/dist/commands/init.d.ts +3 -0
  19. package/dist/commands/init.d.ts.map +1 -0
  20. package/dist/commands/init.js +139 -0
  21. package/dist/commands/init.js.map +1 -0
  22. package/dist/commands/install-hooks.d.ts +16 -0
  23. package/dist/commands/install-hooks.d.ts.map +1 -0
  24. package/dist/commands/install-hooks.js +381 -0
  25. package/dist/commands/install-hooks.js.map +1 -0
  26. package/dist/commands/list-actions.d.ts +3 -0
  27. package/dist/commands/list-actions.d.ts.map +1 -0
  28. package/dist/commands/{list-tools.js → list-actions.js} +24 -18
  29. package/dist/commands/list-actions.js.map +1 -0
  30. package/dist/commands/list-triggers.d.ts.map +1 -1
  31. package/dist/commands/list-triggers.js +27 -1
  32. package/dist/commands/list-triggers.js.map +1 -1
  33. package/dist/commands/login.d.ts.map +1 -1
  34. package/dist/commands/login.js +51 -28
  35. package/dist/commands/login.js.map +1 -1
  36. package/dist/commands/memory.d.ts +3 -0
  37. package/dist/commands/memory.d.ts.map +1 -0
  38. package/dist/commands/memory.js +196 -0
  39. package/dist/commands/memory.js.map +1 -0
  40. package/dist/commands/portfolio.d.ts.map +1 -1
  41. package/dist/commands/portfolio.js +5 -8
  42. package/dist/commands/portfolio.js.map +1 -1
  43. package/dist/commands/prompt-suggestions.d.ts.map +1 -1
  44. package/dist/commands/prompt-suggestions.js +14 -20
  45. package/dist/commands/prompt-suggestions.js.map +1 -1
  46. package/dist/commands/share.d.ts.map +1 -1
  47. package/dist/commands/share.js +2 -0
  48. package/dist/commands/share.js.map +1 -1
  49. package/dist/commands/skills.d.ts.map +1 -1
  50. package/dist/commands/skills.js +2 -1
  51. package/dist/commands/skills.js.map +1 -1
  52. package/dist/commands/validate.d.ts.map +1 -1
  53. package/dist/commands/validate.js +1 -0
  54. package/dist/commands/validate.js.map +1 -1
  55. package/dist/index.js +41 -13
  56. package/dist/index.js.map +1 -1
  57. package/dist/lib/memory.d.ts +45 -0
  58. package/dist/lib/memory.d.ts.map +1 -0
  59. package/dist/lib/memory.js +247 -0
  60. package/dist/lib/memory.js.map +1 -0
  61. package/dist/lib/suzi-guide.d.ts +1 -1
  62. package/dist/lib/suzi-guide.d.ts.map +1 -1
  63. package/dist/lib/suzi-guide.js +255 -52
  64. package/dist/lib/suzi-guide.js.map +1 -1
  65. package/dist/utils/ui.d.ts +3 -1
  66. package/dist/utils/ui.d.ts.map +1 -1
  67. package/dist/utils/ui.js +4 -1
  68. package/dist/utils/ui.js.map +1 -1
  69. package/package.json +1 -1
  70. package/dist/commands/list-tools.d.ts +0 -3
  71. package/dist/commands/list-tools.d.ts.map +0 -1
  72. package/dist/commands/list-tools.js.map +0 -1
  73. package/dist/commands/wallet.d.ts +0 -3
  74. package/dist/commands/wallet.d.ts.map +0 -1
  75. package/dist/commands/wallet.js +0 -191
  76. package/dist/commands/wallet.js.map +0 -1
@@ -1,191 +0,0 @@
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.registerWalletCommand = registerWalletCommand;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const ora_1 = __importDefault(require("ora"));
9
- const config_1 = require("../lib/config");
10
- const api_1 = require("../lib/api");
11
- const ui_1 = require("../utils/ui");
12
- function registerWalletCommand(program) {
13
- const wallet = program
14
- .command('wallet')
15
- .description('Manage your multichain wallet');
16
- // suzi wallet -- show wallet overview
17
- wallet
18
- .action(async () => {
19
- if (!(0, ui_1.requireAuth)())
20
- return;
21
- const spinner = (0, ora_1.default)('Loading wallet info...').start();
22
- const account = (0, config_1.getActiveAccount)();
23
- if (!account) {
24
- spinner.fail();
25
- (0, ui_1.error)('No active account. Run `suzi login` first.');
26
- return;
27
- }
28
- spinner.stop();
29
- (0, ui_1.header)('Wallet');
30
- console.log();
31
- // SOL wallet address
32
- console.log(ui_1.colors.sol.bold(' Solana (SOL)'));
33
- (0, ui_1.label)(' Address', account.svmWalletAddress || 'Not configured');
34
- console.log();
35
- // EVM wallet address
36
- console.log(ui_1.colors.evm.bold(' Ethereum (EVM)'));
37
- (0, ui_1.label)(' Address', account.evmWalletAddress || 'Not configured');
38
- console.log();
39
- (0, ui_1.divider)();
40
- (0, ui_1.info)('Use `suzi wallet balance` to check balances.');
41
- (0, ui_1.info)('Use `suzi wallet fund` to see deposit instructions.');
42
- });
43
- // suzi wallet address -- show wallet addresses
44
- wallet
45
- .command('address')
46
- .description('Show wallet addresses')
47
- .action(() => {
48
- if (!(0, ui_1.requireAuth)())
49
- return;
50
- const account = (0, config_1.getActiveAccount)();
51
- if (!account) {
52
- (0, ui_1.error)('No active account.');
53
- return;
54
- }
55
- (0, ui_1.header)('Wallet Addresses');
56
- console.log();
57
- if (!account.svmWalletAddress && !account.evmWalletAddress) {
58
- (0, ui_1.error)('No wallet addresses configured.');
59
- return;
60
- }
61
- if (account.svmWalletAddress) {
62
- console.log(ui_1.colors.sol.bold(' SOL:'));
63
- console.log(` ${account.svmWalletAddress}`);
64
- console.log();
65
- }
66
- if (account.evmWalletAddress) {
67
- console.log(ui_1.colors.evm.bold(' EVM:'));
68
- console.log(` ${account.evmWalletAddress}`);
69
- console.log();
70
- }
71
- (0, ui_1.info)('Send funds to the addresses above to fund your wallet.');
72
- });
73
- // suzi wallet balance -- show balances
74
- wallet
75
- .command('balance')
76
- .description('Show wallet balances')
77
- .action(async () => {
78
- if (!(0, ui_1.requireAuth)())
79
- return;
80
- const account = (0, config_1.getActiveAccount)();
81
- if (!account) {
82
- (0, ui_1.error)('No active account.');
83
- return;
84
- }
85
- const spinner = (0, ora_1.default)('Fetching balances...').start();
86
- // Fetch SOL balance via API actions
87
- try {
88
- if (account.svmWalletAddress) {
89
- const solResp = await (0, api_1.post)('/api/actions/execute', {
90
- name: 'solana.get_native_balance',
91
- params: { address: account.svmWalletAddress },
92
- });
93
- spinner.stop();
94
- (0, ui_1.header)('Balances');
95
- console.log();
96
- if (solResp.ok && solResp.data?.result) {
97
- const sol = solResp.data.result;
98
- console.log(` ${ui_1.colors.sol('SOL')} ${chalk_1.default.bold(sol.balance.toFixed(4))} SOL`);
99
- }
100
- else {
101
- console.log(` ${ui_1.colors.sol('SOL')} ${ui_1.colors.muted('Unable to fetch')}`);
102
- }
103
- // Fetch USDC balance
104
- const usdcResp = await (0, api_1.post)('/api/actions/execute', {
105
- name: 'solana.get_token_balance',
106
- params: { address: account.svmWalletAddress, token: 'USDC' },
107
- });
108
- if (usdcResp.ok && usdcResp.data?.result) {
109
- const usdc = usdcResp.data.result;
110
- console.log(` ${chalk_1.default.green('USDC')} ${chalk_1.default.bold(usdc.balance.toFixed(2))} USDC ${ui_1.colors.muted('(SOL)')}`);
111
- }
112
- // Fetch GOLD balance
113
- const goldResp = await (0, api_1.post)('/api/actions/execute', {
114
- name: 'solana.get_token_balance',
115
- params: { address: account.svmWalletAddress, token: 'GOLD' },
116
- });
117
- if (goldResp.ok && goldResp.data?.result && goldResp.data.result.balance > 0) {
118
- const gold = goldResp.data.result;
119
- console.log(` ${chalk_1.default.yellow('GOLD')} ${chalk_1.default.bold(gold.balance.toFixed(2))} GOLD ${ui_1.colors.muted('(SOL)')}`);
120
- }
121
- }
122
- // If no SVM wallet, stop spinner and show header now
123
- if (!account.svmWalletAddress) {
124
- spinner.stop();
125
- (0, ui_1.header)('Balances');
126
- console.log();
127
- }
128
- // Fetch Hyperliquid equity if EVM wallet exists
129
- if (account.evmWalletAddress) {
130
- const hlResp = await (0, api_1.get)('/api/portfolio/summary');
131
- if (hlResp.ok && hlResp.data) {
132
- const hl = hlResp.data;
133
- if (hl.totalEquity > 0) {
134
- console.log();
135
- console.log(ui_1.colors.evm.bold(' Hyperliquid'));
136
- console.log(` ${chalk_1.default.bold('$' + hl.totalEquity.toFixed(2))} total equity`);
137
- if (hl.availableBalance > 0) {
138
- console.log(` ${ui_1.colors.muted('$' + hl.availableBalance.toFixed(2) + ' available')}`);
139
- }
140
- }
141
- }
142
- }
143
- }
144
- catch (err) {
145
- spinner.stop();
146
- (0, ui_1.error)(`Failed to fetch balances: ${err.message}`);
147
- return;
148
- }
149
- console.log();
150
- (0, ui_1.divider)();
151
- });
152
- // suzi wallet fund -- show deposit instructions
153
- wallet
154
- .command('fund')
155
- .description('Show instructions to add funds')
156
- .action(() => {
157
- if (!(0, ui_1.requireAuth)())
158
- return;
159
- const account = (0, config_1.getActiveAccount)();
160
- if (!account) {
161
- (0, ui_1.error)('No active account.');
162
- return;
163
- }
164
- (0, ui_1.header)('Fund Your Wallet');
165
- console.log();
166
- if (!account.svmWalletAddress && !account.evmWalletAddress) {
167
- (0, ui_1.error)('No wallet addresses configured.');
168
- return;
169
- }
170
- if (account.svmWalletAddress) {
171
- console.log(ui_1.colors.sol.bold(' Deposit SOL / SPL Tokens'));
172
- console.log(` Send to this Solana address:`);
173
- console.log();
174
- console.log(` ${chalk_1.default.bold(account.svmWalletAddress)}`);
175
- console.log();
176
- (0, ui_1.info)(' Supported tokens: SOL, USDC, USDT, GOLD');
177
- }
178
- console.log();
179
- if (account.evmWalletAddress) {
180
- console.log(ui_1.colors.evm.bold(' Deposit EVM Assets'));
181
- console.log(` Send to this EVM address:`);
182
- console.log();
183
- console.log(` ${chalk_1.default.bold(account.evmWalletAddress)}`);
184
- console.log();
185
- (0, ui_1.info)(' Supported: ETH, USDC (Ethereum/Polygon/Arbitrum)');
186
- }
187
- console.log();
188
- (0, ui_1.divider)();
189
- });
190
- }
191
- //# sourceMappingURL=wallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/commands/wallet.ts"],"names":[],"mappings":"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"}