httpcat-cli 0.0.1

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 (51) hide show
  1. package/.claude/settings.local.json +11 -0
  2. package/README.md +796 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +149 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/commands/buy.d.ts.map +1 -0
  7. package/dist/commands/buy.js +37 -0
  8. package/dist/commands/buy.js.map +1 -0
  9. package/dist/commands/create.d.ts.map +1 -0
  10. package/dist/commands/create.js +28 -0
  11. package/dist/commands/create.js.map +1 -0
  12. package/dist/commands/health.d.ts.map +1 -0
  13. package/dist/commands/health.js +33 -0
  14. package/dist/commands/health.js.map +1 -0
  15. package/dist/commands/info.d.ts.map +1 -0
  16. package/dist/commands/info.js +43 -0
  17. package/dist/commands/info.js.map +1 -0
  18. package/dist/commands/list.d.ts.map +1 -0
  19. package/dist/commands/list.js +49 -0
  20. package/dist/commands/list.js.map +1 -0
  21. package/dist/commands/sell.d.ts.map +1 -0
  22. package/dist/commands/sell.js +64 -0
  23. package/dist/commands/sell.js.map +1 -0
  24. package/dist/config.d.ts.map +1 -0
  25. package/dist/config.js +194 -0
  26. package/dist/config.js.map +1 -0
  27. package/dist/headless/json-output.d.ts.map +1 -0
  28. package/dist/headless/json-output.js +73 -0
  29. package/dist/headless/json-output.js.map +1 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +478 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/interactive/art.d.ts.map +1 -0
  34. package/dist/interactive/art.js +136 -0
  35. package/dist/interactive/art.js.map +1 -0
  36. package/dist/interactive/shell.d.ts.map +1 -0
  37. package/dist/interactive/shell.js +223 -0
  38. package/dist/interactive/shell.js.map +1 -0
  39. package/dist/utils/errors.d.ts.map +1 -0
  40. package/dist/utils/errors.js +119 -0
  41. package/dist/utils/errors.js.map +1 -0
  42. package/dist/utils/formatting.d.ts.map +1 -0
  43. package/dist/utils/formatting.js +77 -0
  44. package/dist/utils/formatting.js.map +1 -0
  45. package/dist/utils/token-resolver.d.ts.map +1 -0
  46. package/dist/utils/token-resolver.js +41 -0
  47. package/dist/utils/token-resolver.js.map +1 -0
  48. package/dist/utils/validation.d.ts.map +1 -0
  49. package/dist/utils/validation.js +31 -0
  50. package/dist/utils/validation.js.map +1 -0
  51. package/package.json +52 -0
package/dist/index.js ADDED
@@ -0,0 +1,478 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { config } from './config.js';
5
+ import { HttpcatClient } from './client.js';
6
+ import { handleError, getExitCode } from './utils/errors.js';
7
+ import { startInteractiveShell } from './interactive/shell.js';
8
+ import { outputJson, outputError } from './headless/json-output.js';
9
+ // Import commands
10
+ import { createToken, displayCreateResult } from './commands/create.js';
11
+ import { buyToken, displayBuyResult } from './commands/buy.js';
12
+ import { sellToken, displaySellResult, parseTokenAmount } from './commands/sell.js';
13
+ import { getTokenInfo, displayTokenInfo } from './commands/info.js';
14
+ import { listTokens, displayTokenList } from './commands/list.js';
15
+ import { checkHealth, displayHealthStatus } from './commands/health.js';
16
+ // Check for --version --json before parsing
17
+ const args = process.argv;
18
+ if (args.includes('--version') || args.includes('-V')) {
19
+ if (args.includes('--json')) {
20
+ console.log(JSON.stringify({
21
+ name: 'httpcat-cli',
22
+ version: '0.1.0'
23
+ }, null, 2));
24
+ process.exit(0);
25
+ }
26
+ }
27
+ const program = new Command();
28
+ program
29
+ .name('httpcat')
30
+ .description('CLI tool for interacting with httpcat agent')
31
+ .version('0.1.0')
32
+ .option('--json', 'Output in JSON format')
33
+ .option('--quiet', 'Minimal output (exit codes only)')
34
+ .option('--verbose', 'Verbose error messages')
35
+ .option('--no-art', 'Disable ASCII art')
36
+ .option('--private-key <key>', 'Private key (overrides config and env var)');
37
+ // Helper function to get private key with priority: CLI flag > env var > config
38
+ function getPrivateKey(cliPrivateKey) {
39
+ if (cliPrivateKey)
40
+ return cliPrivateKey;
41
+ const envKey = process.env.HTTPCAT_PRIVATE_KEY;
42
+ if (envKey)
43
+ return envKey;
44
+ return config.get('privateKey');
45
+ }
46
+ // Helper function to check if configured (with private key fallback)
47
+ function isConfigured(cliPrivateKey) {
48
+ if (cliPrivateKey)
49
+ return true;
50
+ return config.isConfigured();
51
+ }
52
+ // Environment command
53
+ const envCommand = program
54
+ .command('env')
55
+ .description('Manage environments (local, sepolia, etc.)');
56
+ envCommand
57
+ .command('list')
58
+ .description('List all available environments')
59
+ .action(() => {
60
+ try {
61
+ const envs = config.getEnvironments();
62
+ const current = config.getCurrentEnvironment();
63
+ console.log();
64
+ console.log(chalk.cyan.bold('Available Environments:'));
65
+ console.log();
66
+ for (const [name, env] of Object.entries(envs)) {
67
+ const isCurrent = name === current;
68
+ const prefix = isCurrent ? chalk.green('→ ') : ' ';
69
+ const nameDisplay = isCurrent ? chalk.green.bold(name) : chalk.bold(name);
70
+ console.log(`${prefix}${nameDisplay}`);
71
+ console.log(chalk.dim(` Agent URL: ${env.agentUrl}`));
72
+ console.log(chalk.dim(` Network: ${env.network}`));
73
+ console.log();
74
+ }
75
+ if (current) {
76
+ console.log(chalk.dim(`Current environment: ${chalk.green(current)}`));
77
+ }
78
+ }
79
+ catch (error) {
80
+ handleError(error, false);
81
+ process.exit(getExitCode(error));
82
+ }
83
+ });
84
+ envCommand
85
+ .command('use')
86
+ .description('Switch to an environment')
87
+ .argument('<name>', 'Environment name (e.g., local, sepolia)')
88
+ .action((name) => {
89
+ try {
90
+ config.setEnvironment(name);
91
+ const env = config.getEnvironmentConfig(name);
92
+ console.log(chalk.green(`✅ Switched to environment: ${name}`));
93
+ console.log(chalk.dim(` Agent URL: ${env?.agentUrl}`));
94
+ console.log(chalk.dim(` Network: ${env?.network}`));
95
+ }
96
+ catch (error) {
97
+ handleError(error, false);
98
+ process.exit(getExitCode(error));
99
+ }
100
+ });
101
+ envCommand
102
+ .command('show')
103
+ .description('Show current environment')
104
+ .action(() => {
105
+ try {
106
+ const current = config.getCurrentEnvironment();
107
+ if (!current) {
108
+ console.log(chalk.yellow('No environment selected'));
109
+ return;
110
+ }
111
+ const env = config.getEnvironmentConfig(current);
112
+ if (!env) {
113
+ console.log(chalk.yellow(`Environment "${current}" not found`));
114
+ return;
115
+ }
116
+ console.log();
117
+ console.log(chalk.cyan.bold(`Current Environment: ${chalk.green(current)}`));
118
+ console.log();
119
+ console.log(chalk.dim(`Agent URL: ${env.agentUrl}`));
120
+ console.log(chalk.dim(`Network: ${env.network}`));
121
+ console.log();
122
+ }
123
+ catch (error) {
124
+ handleError(error, false);
125
+ process.exit(getExitCode(error));
126
+ }
127
+ });
128
+ envCommand
129
+ .command('add')
130
+ .description('Add a custom environment')
131
+ .argument('<name>', 'Environment name')
132
+ .argument('<agentUrl>', 'Agent URL (e.g., http://localhost:8787)')
133
+ .option('--network <network>', 'Network (default: base-sepolia)', 'base-sepolia')
134
+ .action((name, agentUrl, options) => {
135
+ try {
136
+ config.addEnvironment(name, agentUrl, options.network);
137
+ console.log(chalk.green(`✅ Added environment: ${name}`));
138
+ console.log(chalk.dim(` Agent URL: ${agentUrl}`));
139
+ console.log(chalk.dim(` Network: ${options.network}`));
140
+ console.log();
141
+ console.log(chalk.dim(`Switch to it with: httpcat env use ${name}`));
142
+ }
143
+ catch (error) {
144
+ handleError(error, false);
145
+ process.exit(getExitCode(error));
146
+ }
147
+ });
148
+ // Config command
149
+ program
150
+ .command('config')
151
+ .description('Configure httpcat')
152
+ .option('--show', 'Show current configuration')
153
+ .option('--set <key=value>', 'Set configuration value')
154
+ .option('--reset', 'Reset configuration')
155
+ .addHelpText('after', `
156
+ Examples:
157
+ httpcat config # Run setup wizard
158
+ httpcat config --show # Display current configuration
159
+ httpcat config --set network=base # Set network to base mainnet
160
+ httpcat config --reset # Reset and reconfigure
161
+ `)
162
+ .action(async (options) => {
163
+ try {
164
+ if (options.show) {
165
+ console.log(JSON.stringify(config.getAll(), null, 2));
166
+ }
167
+ else if (options.set) {
168
+ const [key, value] = options.set.split('=');
169
+ config.set(key, value);
170
+ console.log(`✅ ${key} set to ${value}`);
171
+ }
172
+ else if (options.reset) {
173
+ await config.runSetupWizard();
174
+ }
175
+ else {
176
+ await config.runSetupWizard();
177
+ }
178
+ }
179
+ catch (error) {
180
+ handleError(error, options.verbose);
181
+ process.exit(getExitCode(error));
182
+ }
183
+ });
184
+ // Create token command
185
+ program
186
+ .command('create')
187
+ .description('Create a new token')
188
+ .argument('<name>', 'Token name (e.g., "My Token")')
189
+ .argument('<symbol>', 'Token symbol/ticker (e.g., "MTK", 3-10 characters)')
190
+ .option('--photo <url>', 'Photo URL for token logo')
191
+ .option('--banner <url>', 'Banner image URL')
192
+ .option('--website <url>', 'Website URL')
193
+ .addHelpText('after', `
194
+ Examples:
195
+ httpcat create "My Token" "MTK"
196
+ httpcat create "Moon Cat" "MOON" --website https://mooncat.io
197
+ httpcat create "Test" "TEST" --photo https://example.com/logo.png --banner https://example.com/banner.png
198
+ httpcat --json create "AI Token" "AI"
199
+ `)
200
+ .action(async (name, symbol, options, command) => {
201
+ try {
202
+ const globalOpts = command.parent?.opts() || {};
203
+ const privateKey = getPrivateKey(globalOpts.privateKey);
204
+ if (!isConfigured(globalOpts.privateKey)) {
205
+ console.error('❌ Not configured. Run "httpcat config" first or use --private-key flag.');
206
+ process.exit(2);
207
+ }
208
+ const client = await HttpcatClient.create(privateKey);
209
+ const result = await createToken(client, {
210
+ name,
211
+ symbol,
212
+ photoUrl: options.photo,
213
+ bannerUrl: options.banner,
214
+ websiteUrl: options.website,
215
+ });
216
+ if (globalOpts.json) {
217
+ outputJson('create_token', result);
218
+ }
219
+ else if (!globalOpts.quiet) {
220
+ displayCreateResult(result);
221
+ }
222
+ process.exit(0);
223
+ }
224
+ catch (error) {
225
+ const globalOpts = command.parent?.opts() || {};
226
+ if (globalOpts.json) {
227
+ outputError('create_token', error, getExitCode(error));
228
+ }
229
+ else {
230
+ handleError(error, globalOpts.verbose);
231
+ }
232
+ process.exit(getExitCode(error));
233
+ }
234
+ });
235
+ // Buy command
236
+ program
237
+ .command('buy')
238
+ .description('Buy tokens from the bonding curve')
239
+ .argument('<identifier>', 'Token ID (UUID), name, or symbol (e.g., abc123-..., "My Token", or MTK)')
240
+ .argument('<amount>', 'Amount in USDC: 1, 2, or 5 (testnet) | 50, 100, or 200 (mainnet)')
241
+ .addHelpText('after', `
242
+ Examples:
243
+ httpcat buy abc123-4567-89ab-cdef-0123456789ab 5
244
+ httpcat buy "My Token" 2
245
+ httpcat buy MTK 1
246
+ httpcat --json buy abc123-4567-89ab-cdef-0123456789ab 2
247
+ httpcat --private-key 0x... buy "PurrfecTT" 5
248
+ `)
249
+ .action(async (tokenId, amount, command) => {
250
+ try {
251
+ const globalOpts = command.parent?.opts() || {};
252
+ const privateKey = getPrivateKey(globalOpts.privateKey);
253
+ if (!isConfigured(globalOpts.privateKey)) {
254
+ console.error('❌ Not configured. Run "httpcat config" first or use --private-key flag.');
255
+ process.exit(2);
256
+ }
257
+ const client = await HttpcatClient.create(privateKey);
258
+ const isTestMode = client.getNetwork().includes('sepolia');
259
+ const silent = globalOpts.json || globalOpts.quiet;
260
+ const result = await buyToken(client, tokenId, amount, isTestMode, silent);
261
+ if (globalOpts.json) {
262
+ outputJson('token_buy', result);
263
+ }
264
+ else if (!globalOpts.quiet) {
265
+ displayBuyResult(result);
266
+ }
267
+ process.exit(0);
268
+ }
269
+ catch (error) {
270
+ const globalOpts = command.parent?.opts() || {};
271
+ if (globalOpts.json) {
272
+ outputError('token_buy', error, getExitCode(error));
273
+ }
274
+ else {
275
+ handleError(error, globalOpts.verbose);
276
+ }
277
+ process.exit(getExitCode(error));
278
+ }
279
+ });
280
+ // Sell command
281
+ program
282
+ .command('sell')
283
+ .description('Sell tokens back to the bonding curve')
284
+ .argument('<identifier>', 'Token ID (UUID), name, or symbol (e.g., abc123-..., "My Token", or MTK)')
285
+ .argument('<amount>', 'Amount: number (e.g., 1000), percentage (e.g., 50%), or "all"')
286
+ .addHelpText('after', `
287
+ Examples:
288
+ httpcat sell abc123-4567-89ab-cdef-0123456789ab 1000
289
+ httpcat sell "My Token" 50%
290
+ httpcat sell MTK all
291
+ httpcat --json sell abc123-4567-89ab-cdef-0123456789ab 25%
292
+ `)
293
+ .action(async (tokenId, amountInput, command) => {
294
+ try {
295
+ const globalOpts = command.parent?.opts() || {};
296
+ const privateKey = getPrivateKey(globalOpts.privateKey);
297
+ if (!isConfigured(globalOpts.privateKey)) {
298
+ console.error('❌ Not configured. Run "httpcat config" first or use --private-key flag.');
299
+ process.exit(2);
300
+ }
301
+ const client = await HttpcatClient.create(privateKey);
302
+ const silent = globalOpts.json || globalOpts.quiet;
303
+ // Get current holdings
304
+ const info = await getTokenInfo(client, tokenId, undefined, silent);
305
+ if (!info.userPosition || info.userPosition.tokensOwned === '0') {
306
+ throw new Error('You do not own any of this token');
307
+ }
308
+ const tokenAmount = parseTokenAmount(amountInput, info.userPosition.tokensOwned);
309
+ const result = await sellToken(client, tokenId, tokenAmount, silent);
310
+ if (globalOpts.json) {
311
+ outputJson('token_sell', result);
312
+ }
313
+ else if (!globalOpts.quiet) {
314
+ displaySellResult(result);
315
+ }
316
+ process.exit(0);
317
+ }
318
+ catch (error) {
319
+ const globalOpts = command.parent?.opts() || {};
320
+ if (globalOpts.json) {
321
+ outputError('token_sell', error, getExitCode(error));
322
+ }
323
+ else {
324
+ handleError(error, globalOpts.verbose);
325
+ }
326
+ process.exit(getExitCode(error));
327
+ }
328
+ });
329
+ // Info command
330
+ program
331
+ .command('info')
332
+ .description('Get detailed information about a token')
333
+ .argument('<identifier>', 'Token ID (UUID), name, or symbol (e.g., abc123-..., "My Token", or MTK)')
334
+ .addHelpText('after', `
335
+ Examples:
336
+ httpcat info abc123-4567-89ab-cdef-0123456789ab
337
+ httpcat info "My Token"
338
+ httpcat info MTK
339
+ httpcat --json info "PurrfecTT"
340
+ `)
341
+ .action(async (tokenId, command) => {
342
+ try {
343
+ const globalOpts = command.parent?.opts() || {};
344
+ const privateKey = getPrivateKey(globalOpts.privateKey);
345
+ if (!isConfigured(globalOpts.privateKey)) {
346
+ console.error('❌ Not configured. Run "httpcat config" first or use --private-key flag.');
347
+ process.exit(2);
348
+ }
349
+ const client = await HttpcatClient.create(privateKey);
350
+ const silent = globalOpts.json || globalOpts.quiet;
351
+ const result = await getTokenInfo(client, tokenId, undefined, silent);
352
+ if (globalOpts.json) {
353
+ outputJson('token_info', result);
354
+ }
355
+ else if (!globalOpts.quiet) {
356
+ displayTokenInfo(result);
357
+ }
358
+ process.exit(0);
359
+ }
360
+ catch (error) {
361
+ const globalOpts = command.parent?.opts() || {};
362
+ if (globalOpts.json) {
363
+ outputError('token_info', error, getExitCode(error));
364
+ }
365
+ else {
366
+ handleError(error, globalOpts.verbose);
367
+ }
368
+ process.exit(getExitCode(error));
369
+ }
370
+ });
371
+ // List command
372
+ program
373
+ .command('list')
374
+ .description('List all tokens with pagination and sorting')
375
+ .option('--page <number>', 'Page number (default: 1)', '1')
376
+ .option('--limit <number>', 'Items per page (default: 20, max: 100)', '20')
377
+ .option('--sort <field>', 'Sort by: mcap (market cap), created (date), or name (alphabetical)', 'mcap')
378
+ .addHelpText('after', `
379
+ Examples:
380
+ httpcat list
381
+ httpcat list --sort mcap --limit 10
382
+ httpcat list --page 2 --sort created
383
+ httpcat --json list --limit 50
384
+ `)
385
+ .action(async (options, command) => {
386
+ try {
387
+ const globalOpts = command.parent?.opts() || {};
388
+ const privateKey = getPrivateKey(globalOpts.privateKey);
389
+ if (!isConfigured(globalOpts.privateKey)) {
390
+ console.error('❌ Not configured. Run "httpcat config" first or use --private-key flag.');
391
+ process.exit(2);
392
+ }
393
+ const client = await HttpcatClient.create(privateKey);
394
+ const result = await listTokens(client, parseInt(options.page), parseInt(options.limit), options.sort);
395
+ if (globalOpts.json) {
396
+ outputJson('list_tokens', result);
397
+ }
398
+ else if (!globalOpts.quiet) {
399
+ displayTokenList(result);
400
+ }
401
+ process.exit(0);
402
+ }
403
+ catch (error) {
404
+ const globalOpts = command.parent?.opts() || {};
405
+ if (globalOpts.json) {
406
+ outputError('list_tokens', error, getExitCode(error));
407
+ }
408
+ else {
409
+ handleError(error, globalOpts.verbose);
410
+ }
411
+ process.exit(getExitCode(error));
412
+ }
413
+ });
414
+ // Health command
415
+ program
416
+ .command('health')
417
+ .description('Check if the httpcat agent is running and healthy')
418
+ .addHelpText('after', `
419
+ Examples:
420
+ httpcat health
421
+ httpcat --json health
422
+ httpcat --quiet health && echo "Agent is healthy"
423
+ `)
424
+ .action(async (command) => {
425
+ try {
426
+ const globalOpts = command.parent?.opts() || {};
427
+ const privateKey = getPrivateKey(globalOpts.privateKey);
428
+ if (!isConfigured(globalOpts.privateKey)) {
429
+ console.error('❌ Not configured. Run "httpcat config" first or use --private-key flag.');
430
+ process.exit(2);
431
+ }
432
+ const client = await HttpcatClient.create(privateKey);
433
+ const result = await checkHealth(client);
434
+ if (globalOpts.json) {
435
+ outputJson('health', result);
436
+ }
437
+ else if (!globalOpts.quiet) {
438
+ displayHealthStatus(result);
439
+ }
440
+ process.exit(result.status === 'ok' ? 0 : 1);
441
+ }
442
+ catch (error) {
443
+ const globalOpts = command.parent?.opts() || {};
444
+ if (globalOpts.json) {
445
+ outputError('health', error, getExitCode(error));
446
+ }
447
+ else {
448
+ handleError(error, globalOpts.verbose);
449
+ }
450
+ process.exit(getExitCode(error));
451
+ }
452
+ });
453
+ // Interactive shell (default when no command)
454
+ program
455
+ .action(async (options) => {
456
+ try {
457
+ // Update preferences if --no-art flag is used
458
+ if (options.art === false) {
459
+ const prefs = config.get('preferences');
460
+ config.set('preferences', { ...prefs, enableAsciiArt: false });
461
+ }
462
+ const privateKey = getPrivateKey(options.privateKey);
463
+ if (!isConfigured(options.privateKey)) {
464
+ console.log('Welcome to httpcat! Let\'s get you set up.\n');
465
+ await config.runSetupWizard();
466
+ console.log();
467
+ }
468
+ const client = await HttpcatClient.create(privateKey);
469
+ await startInteractiveShell(client);
470
+ }
471
+ catch (error) {
472
+ handleError(error, options.verbose);
473
+ process.exit(getExitCode(error));
474
+ }
475
+ });
476
+ // Parse arguments
477
+ program.parse();
478
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"art.d.ts","sourceRoot":"","sources":["../../src/interactive/art.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI;;;;;;;;;;;CAwChB,CAAC;AAEF,eAAO,MAAM,MAAM,oRASlB,CAAC;AAEF,wBAAgB,QAAQ,CAAC,IAAI,GAAE,MAAM,OAAO,IAAc,GAAG,IAAI,CAKhE;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED,wBAAgB,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAkB3E;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,IAAI,CAiBN;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAc9D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAc3E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,OAAO,IAAc,GAAG,IAAI,CAUxF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAQlD"}
@@ -0,0 +1,136 @@
1
+ import chalk from 'chalk';
2
+ import { config } from '../config.js';
3
+ export const CATS = {
4
+ happy: ` /\\_/\\
5
+ ( ^.^ )
6
+ > ^ < `,
7
+ excited: ` /\\_/\\
8
+ ( *o* )
9
+ > ^ < `,
10
+ sleeping: ` /\\_/\\
11
+ ( -.- )
12
+ > ^ < `,
13
+ grumpy: ` /\\_/\\
14
+ ( >_< )
15
+ > ^ < `,
16
+ wizard: ` /\\_/\\
17
+ ( o.o )🪄
18
+ > ^ < `,
19
+ rocket: ` /\\_/\\
20
+ ( ^.^ )🚀
21
+ > ^ < `,
22
+ money: ` /\\_/\\
23
+ ( $o$ )💰
24
+ > ^ < `,
25
+ party: ` /\\_/\\
26
+ ( ^ω^ )🎉
27
+ > ^ < `,
28
+ thinking: ` /\\_/\\
29
+ ( o.o )💭
30
+ > ^ < `,
31
+ love: ` /\\_/\\
32
+ ( ♥.♥ )
33
+ > ^ < `,
34
+ };
35
+ export const BANNER = `
36
+ _ _ _ _
37
+ | | | | | | | |
38
+ | |__ | |_| |_ _ __ ___ __ _ __| |_
39
+ | '_ \\| __| __| '_ \\ / __/ _\` |_ _ _|
40
+ | | | | |_| |_| |_) | (_| (_| |_| |_
41
+ |_| |_|\\__|\\__| .__/ \\___\\__,_|
42
+ | |
43
+ |_|
44
+ `;
45
+ export function printCat(type = 'happy') {
46
+ if (!shouldShowArt())
47
+ return;
48
+ const cat = CATS[type] || CATS.happy;
49
+ console.log(chalk.yellow(cat));
50
+ }
51
+ export function printBanner() {
52
+ if (!shouldShowArt())
53
+ return;
54
+ console.log(chalk.cyan(BANNER));
55
+ }
56
+ export function printWelcome(walletAddress, network) {
57
+ if (!shouldShowArt()) {
58
+ console.log('httpcat - Token operations CLI');
59
+ if (network)
60
+ console.log(`Network: ${network}`);
61
+ if (walletAddress)
62
+ console.log(`Wallet: ${walletAddress}`);
63
+ return;
64
+ }
65
+ printCat('happy');
66
+ console.log(chalk.bold('Welcome to httpcat!'));
67
+ console.log(chalk.dim('Your agent for token operations\n'));
68
+ if (network) {
69
+ console.log(chalk.dim('🔗 Connected to:'), chalk.cyan(network));
70
+ }
71
+ if (walletAddress) {
72
+ console.log(chalk.dim('💰 Wallet:'), chalk.cyan(walletAddress));
73
+ }
74
+ }
75
+ export function printProgress(current, total, label) {
76
+ const percentage = (current / total) * 100;
77
+ const barLength = 30;
78
+ const filled = Math.floor((percentage / 100) * barLength);
79
+ const empty = barLength - filled;
80
+ const bar = '[' +
81
+ chalk.green('='.repeat(filled)) +
82
+ chalk.dim('-'.repeat(empty)) +
83
+ ']';
84
+ const text = label
85
+ ? `${label}: ${bar} ${percentage.toFixed(1)}%`
86
+ : `${bar} ${percentage.toFixed(1)}%`;
87
+ console.log(text);
88
+ }
89
+ export function printGraduationProgress(progress) {
90
+ if (!shouldShowArt()) {
91
+ printProgress(progress, 100, 'Graduation');
92
+ return;
93
+ }
94
+ const barLength = 20;
95
+ const filled = Math.floor((progress / 100) * barLength);
96
+ const empty = barLength - filled;
97
+ const bar = '🐱' + '='.repeat(filled) + '>' + ' '.repeat(empty);
98
+ console.log(chalk.yellow(`[${bar}] ${chalk.bold(progress.toFixed(2) + '%')} to moon!`));
99
+ }
100
+ export function printPaymentInfo(amount, description) {
101
+ if (!shouldShowArt()) {
102
+ console.log(`Payment: $${amount} USDC ${description ? `- ${description}` : ''}`);
103
+ return;
104
+ }
105
+ console.log();
106
+ printCat('money');
107
+ console.log(chalk.yellow('💳 Payment Required'));
108
+ console.log(chalk.dim(` Amount: ${chalk.bold('$' + amount + ' USDC')}`));
109
+ if (description) {
110
+ console.log(chalk.dim(` For: ${description}`));
111
+ }
112
+ console.log();
113
+ }
114
+ export function printSuccess(message, catType = 'party') {
115
+ if (!shouldShowArt()) {
116
+ console.log(`✅ ${message}`);
117
+ return;
118
+ }
119
+ console.log();
120
+ printCat(catType);
121
+ console.log(chalk.green.bold('✅ ' + message));
122
+ console.log();
123
+ }
124
+ export function printLoading(message) {
125
+ if (!shouldShowArt()) {
126
+ console.log(message);
127
+ return;
128
+ }
129
+ printCat('thinking');
130
+ console.log(chalk.dim(message));
131
+ }
132
+ function shouldShowArt() {
133
+ const prefs = config.get('preferences');
134
+ return prefs?.enableAsciiArt ?? true;
135
+ }
136
+ //# sourceMappingURL=art.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"art.js","sourceRoot":"","sources":["../../src/interactive/art.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/interactive/shell.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAa7C,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ChF"}