@cabaltrading/cli 0.2.0 → 0.3.0

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,225 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import inquirer from 'inquirer';
4
- import { privateKeyToAccount } from 'viem/accounts';
5
- import { getCredentials, isConfigured } from '../lib/env.js';
6
- import { confirmHLApproval, getHLBuilderInfo } from '../lib/api.js';
7
- // Testnet mode: set HL_TESTNET=true to use testnet
8
- const IS_TESTNET = process.env.HL_TESTNET === 'true';
9
- const HL_API_URL = IS_TESTNET
10
- ? 'https://api.hyperliquid-testnet.xyz'
11
- : 'https://api.hyperliquid.xyz';
12
- const HL_CHAIN_NAME = IS_TESTNET ? 'Testnet' : 'Mainnet';
13
- // Chain IDs for EIP-712 signing and API payload
14
- // Mainnet: 42161 (Arbitrum One), Testnet: 421614 (Arbitrum Sepolia)
15
- const SIGNATURE_CHAIN_ID = IS_TESTNET ? 421614 : 42161;
16
- const SIGNATURE_CHAIN_ID_HEX = IS_TESTNET ? '0x66eee' : '0xa4b1';
17
- // Hyperliquid EIP-712 domain
18
- const HL_DOMAIN = {
19
- name: 'HyperliquidSignTransaction',
20
- version: '1',
21
- chainId: SIGNATURE_CHAIN_ID,
22
- verifyingContract: '0x0000000000000000000000000000000000000000',
23
- };
24
- // Type definitions for approveBuilderFee action
25
- // Primary type: "HyperliquidTransaction:ApproveBuilderFee"
26
- const APPROVE_BUILDER_FEE_TYPES = {
27
- 'HyperliquidTransaction:ApproveBuilderFee': [
28
- { name: 'hyperliquidChain', type: 'string' },
29
- { name: 'maxFeeRate', type: 'string' },
30
- { name: 'builder', type: 'address' },
31
- { name: 'nonce', type: 'uint64' },
32
- ],
33
- };
34
- export async function hlSetupCommand() {
35
- if (!isConfigured()) {
36
- console.log(chalk.yellow('No Cabal configuration found.'));
37
- console.log(chalk.dim('Run `cabal-cli init` to set up your agent.'));
38
- process.exit(1);
39
- }
40
- const credentials = getCredentials();
41
- if (!credentials.EVM_PRIVATE_KEY || !credentials.EVM_PUBLIC_KEY) {
42
- console.log(chalk.yellow('No EVM wallet found in .env'));
43
- console.log(chalk.dim('Run `cabal-cli init` to generate an EVM wallet for Hyperliquid.'));
44
- process.exit(1);
45
- }
46
- if (!credentials.CABAL_API_KEY) {
47
- console.log(chalk.red('CABAL_API_KEY not found in .env'));
48
- process.exit(1);
49
- }
50
- console.log(chalk.bold('Hyperliquid Builder Fee Setup'));
51
- if (IS_TESTNET) {
52
- console.log(chalk.yellow('⚠️ TESTNET MODE'));
53
- }
54
- console.log('');
55
- console.log(chalk.dim('This will approve Cabal to collect builder fees on your trades.'));
56
- console.log(chalk.dim('Fee: 5 bps (0.05%) on perps, 50 bps (0.5%) on spot sells.'));
57
- console.log('');
58
- // Get builder info
59
- const spinner = ora('Fetching builder info...').start();
60
- let builderAddress;
61
- let feeBps;
62
- try {
63
- const builderInfo = await getHLBuilderInfo();
64
- if (!builderInfo.success || !builderInfo.builder) {
65
- spinner.fail('Failed to fetch builder info');
66
- process.exit(1);
67
- }
68
- builderAddress = builderInfo.builder.builder_address;
69
- feeBps = builderInfo.builder.fee_bps.perps;
70
- spinner.succeed(`Builder address: ${chalk.cyan(builderAddress)}`);
71
- }
72
- catch (error) {
73
- spinner.fail('Failed to fetch builder info');
74
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
75
- process.exit(1);
76
- }
77
- // Check HL account balance
78
- spinner.start('Checking Hyperliquid account...');
79
- try {
80
- const response = await fetch(`${HL_API_URL}/info`, {
81
- method: 'POST',
82
- headers: { 'Content-Type': 'application/json' },
83
- body: JSON.stringify({
84
- type: 'clearinghouseState',
85
- user: credentials.EVM_PUBLIC_KEY,
86
- }),
87
- });
88
- const state = (await response.json());
89
- const accountValue = parseFloat(state.crossMarginSummary?.accountValue || '0');
90
- if (accountValue < 1) {
91
- spinner.warn(chalk.yellow(`Account value: $${accountValue.toFixed(2)}`));
92
- console.log('');
93
- console.log(chalk.yellow('⚠️ Your Hyperliquid account has low or no balance.'));
94
- console.log(chalk.dim(' You need USDC on Hyperliquid to trade.'));
95
- console.log('');
96
- const bridgeUrl = IS_TESTNET
97
- ? 'https://app.hyperliquid-testnet.xyz'
98
- : 'https://app.hyperliquid.xyz/bridge';
99
- console.log(chalk.dim(' Bridge USDC via: ') + chalk.cyan(bridgeUrl));
100
- console.log('');
101
- const { proceed } = await inquirer.prompt([
102
- {
103
- type: 'confirm',
104
- name: 'proceed',
105
- message: 'Continue with builder approval anyway?',
106
- default: false,
107
- },
108
- ]);
109
- if (!proceed) {
110
- console.log(chalk.dim('Aborted. Fund your account first, then run this again.'));
111
- process.exit(0);
112
- }
113
- }
114
- else {
115
- spinner.succeed(`Account value: ${chalk.green(`$${accountValue.toFixed(2)}`)}`);
116
- }
117
- }
118
- catch {
119
- spinner.warn('Could not check account balance (continuing anyway)');
120
- }
121
- // Confirm
122
- const { confirm } = await inquirer.prompt([
123
- {
124
- type: 'confirm',
125
- name: 'confirm',
126
- message: `Approve Cabal (${builderAddress.slice(0, 10)}...) for ${feeBps} bps builder fee?`,
127
- default: true,
128
- },
129
- ]);
130
- if (!confirm) {
131
- console.log(chalk.dim('Aborted.'));
132
- process.exit(0);
133
- }
134
- // Sign and submit the approval using EIP-712
135
- spinner.start('Signing approval transaction (EIP-712)...');
136
- try {
137
- // Ensure private key has 0x prefix
138
- const privateKey = credentials.EVM_PRIVATE_KEY.startsWith('0x')
139
- ? credentials.EVM_PRIVATE_KEY
140
- : `0x${credentials.EVM_PRIVATE_KEY}`;
141
- const account = privateKeyToAccount(privateKey);
142
- const nonce = Date.now();
143
- // Convert bps to percentage string (50 bps = "0.5%")
144
- const maxFeeRatePercent = `${feeBps / 100}%`;
145
- // Sign using EIP-712 typed data
146
- const signature = await account.signTypedData({
147
- domain: HL_DOMAIN,
148
- types: APPROVE_BUILDER_FEE_TYPES,
149
- primaryType: 'HyperliquidTransaction:ApproveBuilderFee',
150
- message: {
151
- hyperliquidChain: HL_CHAIN_NAME,
152
- maxFeeRate: maxFeeRatePercent,
153
- builder: builderAddress,
154
- nonce: BigInt(nonce),
155
- },
156
- });
157
- // Build the action payload (includes signatureChainId for API)
158
- const action = {
159
- type: 'approveBuilderFee',
160
- hyperliquidChain: HL_CHAIN_NAME,
161
- signatureChainId: SIGNATURE_CHAIN_ID_HEX,
162
- maxFeeRate: maxFeeRatePercent,
163
- builder: builderAddress,
164
- nonce,
165
- };
166
- spinner.text = 'Submitting to Hyperliquid...';
167
- // Parse signature into r, s, v
168
- const r = signature.slice(0, 66);
169
- const s = '0x' + signature.slice(66, 130);
170
- const v = parseInt(signature.slice(130, 132), 16);
171
- // Submit to Hyperliquid exchange API
172
- const response = await fetch(`${HL_API_URL}/exchange`, {
173
- method: 'POST',
174
- headers: { 'Content-Type': 'application/json' },
175
- body: JSON.stringify({
176
- action,
177
- nonce,
178
- signature: { r, s, v },
179
- vaultAddress: null,
180
- }),
181
- });
182
- const result = (await response.json());
183
- // Check for errors
184
- if (result.status === 'err' || result.error) {
185
- throw new Error(result.error || JSON.stringify(result));
186
- }
187
- spinner.succeed('Approval submitted to Hyperliquid!');
188
- }
189
- catch (error) {
190
- spinner.fail('Failed to submit approval');
191
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
192
- console.log('');
193
- console.log(chalk.yellow('Troubleshooting:'));
194
- console.log(chalk.dim(' 1. Make sure you have some USDC on Hyperliquid'));
195
- console.log(chalk.dim(' 2. Try approving manually via the Hyperliquid UI'));
196
- console.log(chalk.dim(' 3. After manual approval, run this command again to confirm with Cabal'));
197
- process.exit(1);
198
- }
199
- // Confirm with Cabal
200
- spinner.start('Confirming with Cabal...');
201
- try {
202
- const response = await confirmHLApproval(credentials.CABAL_API_KEY);
203
- if (!response.success) {
204
- spinner.fail('Failed to confirm with Cabal');
205
- console.log(chalk.red(`Error: ${response.error}`));
206
- console.log('');
207
- console.log(chalk.dim('The approval may still be pending on Hyperliquid.'));
208
- console.log(chalk.dim('Wait a moment and try again: `cabal-cli hl-setup`'));
209
- process.exit(1);
210
- }
211
- spinner.succeed('Builder fee confirmed with Cabal!');
212
- console.log('');
213
- console.log(chalk.green.bold('✓ Hyperliquid setup complete!'));
214
- console.log('');
215
- console.log(chalk.dim('You can now trade on Hyperliquid through Cabal.'));
216
- console.log(chalk.dim('Docs: ') + chalk.cyan('https://cabal.trading/trading.md'));
217
- console.log('');
218
- }
219
- catch (error) {
220
- spinner.fail('Failed to confirm with Cabal');
221
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
222
- process.exit(1);
223
- }
224
- }
225
- //# sourceMappingURL=hl-setup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hl-setup.js","sourceRoot":"","sources":["../../src/commands/hl-setup.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- interface InitOptions {
2
- ref?: string;
3
- name?: string;
4
- hl?: boolean;
5
- }
6
- export declare function initCommand(options: InitOptions): Promise<void>;
7
- export {};
8
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,OAAO,CAAA;CACb;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgMrE"}
@@ -1,178 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import inquirer from 'inquirer';
4
- import { generateSolanaWallet, generateEvmWallet, truncateAddress } from '../lib/wallet.js';
5
- import { registerAgent } from '../lib/api.js';
6
- import { saveEnv, isConfigured, isEnvInGitignore, ensureEnvInGitignore } from '../lib/env.js';
7
- export async function initCommand(options) {
8
- // Check if already configured
9
- if (isConfigured()) {
10
- const { overwrite } = await inquirer.prompt([
11
- {
12
- type: 'confirm',
13
- name: 'overwrite',
14
- message: chalk.yellow('Cabal is already configured in this directory. Overwrite?'),
15
- default: false,
16
- },
17
- ]);
18
- if (!overwrite) {
19
- console.log(chalk.dim('Aborted. Run `cabal-cli status` to check your existing config.'));
20
- return;
21
- }
22
- }
23
- // Get agent name
24
- let agentName = options.name;
25
- if (!agentName) {
26
- const answers = await inquirer.prompt([
27
- {
28
- type: 'input',
29
- name: 'name',
30
- message: 'Agent name:',
31
- validate: (input) => {
32
- if (!input || input.length < 3) {
33
- return 'Name must be at least 3 characters';
34
- }
35
- if (input.length > 32) {
36
- return 'Name must be at most 32 characters';
37
- }
38
- if (!/^[a-zA-Z0-9_]+$/.test(input)) {
39
- return 'Name can only contain letters, numbers, and underscores';
40
- }
41
- return true;
42
- },
43
- },
44
- ]);
45
- agentName = answers.name;
46
- }
47
- // Get referral code
48
- let referralCode = options.ref;
49
- if (!referralCode) {
50
- const answers = await inquirer.prompt([
51
- {
52
- type: 'input',
53
- name: 'referralCode',
54
- message: 'Referral code (optional, press Enter to skip):',
55
- },
56
- ]);
57
- referralCode = answers.referralCode || undefined;
58
- }
59
- const includeHl = options.hl !== false;
60
- console.log('');
61
- // Generate wallets
62
- const spinner = ora('Generating Solana wallet...').start();
63
- const solanaWallet = generateSolanaWallet();
64
- spinner.succeed(`Solana wallet: ${chalk.cyan(truncateAddress(solanaWallet.publicKey, 6))}`);
65
- let evmWallet = null;
66
- if (includeHl) {
67
- spinner.start('Generating EVM wallet (for Hyperliquid)...');
68
- evmWallet = generateEvmWallet();
69
- spinner.succeed(`EVM wallet: ${chalk.cyan(truncateAddress(evmWallet.address, 6))}`);
70
- }
71
- // Register with Cabal
72
- spinner.start('Registering with Cabal...');
73
- try {
74
- const response = await registerAgent({
75
- name: agentName,
76
- solana_address: solanaWallet.publicKey,
77
- hl_address: evmWallet?.address,
78
- referral_code: referralCode,
79
- });
80
- if (!response.success || !response.agent) {
81
- spinner.fail(chalk.red('Registration failed'));
82
- console.log(chalk.red(`Error: ${response.error}`));
83
- if (response.hint) {
84
- console.log(chalk.yellow(`Hint: ${response.hint}`));
85
- }
86
- process.exit(1);
87
- }
88
- spinner.succeed('Registered with Cabal!');
89
- // Save credentials
90
- spinner.start('Saving credentials to .env...');
91
- saveEnv({
92
- apiKey: response.agent.api_key,
93
- agentId: response.agent.id,
94
- agentName: agentName,
95
- solanaPublicKey: solanaWallet.publicKey,
96
- solanaPrivateKey: solanaWallet.privateKey,
97
- evmPublicKey: evmWallet?.address,
98
- evmPrivateKey: evmWallet?.privateKey,
99
- });
100
- spinner.succeed('Credentials saved to .env');
101
- // Check/add .gitignore
102
- const gitignoreResult = ensureEnvInGitignore();
103
- if (gitignoreResult.created) {
104
- console.log(chalk.dim(' Created .gitignore with .env'));
105
- }
106
- else if (gitignoreResult.added) {
107
- console.log(chalk.dim(' Added .env to .gitignore'));
108
- }
109
- else if (!isEnvInGitignore()) {
110
- console.log(chalk.yellow(' ⚠️ .env is not in .gitignore - add it to avoid committing secrets!'));
111
- }
112
- // Success message
113
- console.log('');
114
- console.log(chalk.green.bold('✓ Agent created successfully!'));
115
- console.log('');
116
- // Claim via tweet
117
- console.log(chalk.bold('📋 Next Steps:'));
118
- console.log('');
119
- console.log(` ${chalk.bold('1.')} Claim your agent by tweeting:`);
120
- console.log('');
121
- if (response.agent.tweet_template) {
122
- // Show each line of the tweet template indented
123
- for (const line of response.agent.tweet_template.split('\n')) {
124
- console.log(` ${chalk.white(line)}`);
125
- }
126
- }
127
- else {
128
- console.log(` ${chalk.white(`I'm claiming my AI agent "${agentName}" on @cabaltrading`)}`);
129
- console.log(` ${chalk.white(`Verification: ${response.agent.verification_code || 'N/A'}`)}`);
130
- if (response.agent.referral_url) {
131
- console.log(` ${chalk.white(response.agent.referral_url)}`);
132
- }
133
- }
134
- console.log('');
135
- console.log(` ${chalk.dim('Then wait ~30 seconds and run:')}`);
136
- console.log(` ${chalk.cyan('npx cabal-cli verify <tweet-url>')}`);
137
- console.log('');
138
- console.log(` ${chalk.yellow('⏰ You have 5 minutes to verify before the name is released.')}`);
139
- console.log('');
140
- console.log(` ${chalk.dim('Or use the web flow:')} ${chalk.cyan(response.agent.claim_url)}`);
141
- console.log('');
142
- // Funding instructions
143
- console.log(` ${chalk.bold('2.')} Fund your wallets:`);
144
- console.log(` ${chalk.dim('Solana:')} ${chalk.cyan(solanaWallet.publicKey)}`);
145
- console.log(` ${chalk.dim(' Send SOL for trading on Jupiter')}`);
146
- if (evmWallet) {
147
- console.log(` ${chalk.dim('EVM:')} ${chalk.cyan(evmWallet.address)}`);
148
- console.log(` ${chalk.dim(' Bridge USDC to Hyperliquid via')} ${chalk.cyan('https://app.hyperliquid.xyz/bridge')}`);
149
- }
150
- console.log('');
151
- // HL setup reminder
152
- if (evmWallet) {
153
- console.log(` ${chalk.bold('3.')} After funding, approve Cabal's builder fee:`);
154
- console.log(` ${chalk.cyan('npx cabal-cli hl-setup')}`);
155
- console.log('');
156
- }
157
- // Trading
158
- const step = evmWallet ? '4.' : '3.';
159
- console.log(` ${chalk.bold(step)} Start trading!`);
160
- console.log(` ${chalk.dim('Docs:')} ${chalk.cyan('https://cabal.trading/trading.md')}`);
161
- console.log('');
162
- // Security warning
163
- console.log(chalk.yellow.bold('⚠️ IMPORTANT: Your private keys are saved in .env'));
164
- console.log(chalk.yellow(' Keep this file safe and never share it!'));
165
- console.log('');
166
- // Referral info
167
- if (referralCode) {
168
- console.log(chalk.dim(`Referred by: ${referralCode} (you get 10% fee discount)`));
169
- console.log('');
170
- }
171
- }
172
- catch (error) {
173
- spinner.fail(chalk.red('Registration failed'));
174
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
175
- process.exit(1);
176
- }
177
- }
178
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function statusCommand(): Promise<void>;
2
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAMA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA6EnD"}
@@ -1,86 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import { getAgentStatus } from '../lib/api.js';
4
- import { getCredentials, isConfigured } from '../lib/env.js';
5
- export async function statusCommand() {
6
- if (!isConfigured()) {
7
- console.log(chalk.yellow('No Cabal configuration found.'));
8
- console.log(chalk.dim('Run `cabal-cli init` to set up your agent.'));
9
- process.exit(1);
10
- }
11
- const credentials = getCredentials();
12
- if (!credentials.CABAL_API_KEY) {
13
- console.log(chalk.red('CABAL_API_KEY not found in .env'));
14
- process.exit(1);
15
- }
16
- const spinner = ora('Fetching agent status...').start();
17
- try {
18
- const response = await getAgentStatus(credentials.CABAL_API_KEY);
19
- if (!response.success) {
20
- spinner.fail(chalk.red('Failed to fetch status'));
21
- console.log(chalk.red(`Error: ${response.error}`));
22
- process.exit(1);
23
- }
24
- spinner.stop();
25
- // Agent info
26
- console.log(chalk.bold('Agent Status'));
27
- console.log('');
28
- console.log(` ${chalk.dim('Name:')} ${credentials.CABAL_AGENT_NAME || 'Unknown'}`);
29
- console.log(` ${chalk.dim('Status:')} ${getStatusBadge(response.status || 'unknown')}`);
30
- console.log(` ${chalk.dim('Claimed:')} ${response.claimed ? chalk.green('Yes') : chalk.yellow('No - send claim URL to your human')}`);
31
- console.log('');
32
- // Wallets
33
- console.log(chalk.bold('Wallets'));
34
- console.log('');
35
- if (credentials.SOLANA_PUBLIC_KEY) {
36
- const solBalance = response.wallets?.solana?.balance_usd;
37
- console.log(` ${chalk.dim('Solana:')}`);
38
- console.log(` Address: ${chalk.cyan(credentials.SOLANA_PUBLIC_KEY)}`);
39
- if (solBalance !== undefined) {
40
- console.log(` Balance: ${chalk.green(`$${solBalance.toFixed(2)}`)}`);
41
- }
42
- console.log('');
43
- }
44
- if (credentials.EVM_PUBLIC_KEY) {
45
- const hlValue = response.wallets?.hyperliquid?.account_value;
46
- console.log(` ${chalk.dim('Hyperliquid (EVM):')}`);
47
- console.log(` Address: ${chalk.cyan(credentials.EVM_PUBLIC_KEY)}`);
48
- if (hlValue !== undefined) {
49
- console.log(` Account Value: ${chalk.green(`$${hlValue.toFixed(2)}`)}`);
50
- }
51
- console.log(` Builder Approved: ${response.hl_builder_approved ? chalk.green('Yes') : chalk.yellow('No - run `cabal-cli hl-setup`')}`);
52
- console.log('');
53
- }
54
- // Quick actions
55
- console.log(chalk.bold('Quick Actions'));
56
- console.log('');
57
- if (!response.claimed) {
58
- console.log(` ${chalk.yellow('→')} Send your claim URL to your human`);
59
- }
60
- if (credentials.EVM_PUBLIC_KEY && !response.hl_builder_approved) {
61
- console.log(` ${chalk.yellow('→')} Run ${chalk.cyan('cabal-cli hl-setup')} to enable Hyperliquid trading`);
62
- }
63
- console.log(` ${chalk.dim('→')} View docs: ${chalk.cyan('https://cabal.trading/trading.md')}`);
64
- console.log('');
65
- }
66
- catch (error) {
67
- spinner.fail(chalk.red('Failed to fetch status'));
68
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
69
- process.exit(1);
70
- }
71
- }
72
- function getStatusBadge(status) {
73
- switch (status) {
74
- case 'active':
75
- return chalk.green('Active');
76
- case 'pending':
77
- return chalk.yellow('Pending');
78
- case 'suspended':
79
- return chalk.red('Suspended');
80
- case 'liquidated':
81
- return chalk.red('Liquidated');
82
- default:
83
- return chalk.dim(status);
84
- }
85
- }
86
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function verifyCommand(tweetUrl: string): Promise<void>;
2
- //# sourceMappingURL=verify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEnE"}
@@ -1,71 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import { verifyTweet } from '../lib/api.js';
4
- import { getCredentials, isConfigured } from '../lib/env.js';
5
- export async function verifyCommand(tweetUrl) {
6
- // Validate URL format locally
7
- try {
8
- const url = new URL(tweetUrl);
9
- const hostname = url.hostname.replace(/^(mobile\.)?/, '');
10
- if (hostname !== 'x.com' && hostname !== 'twitter.com') {
11
- console.log(chalk.red('Error: URL must be from x.com or twitter.com'));
12
- process.exit(1);
13
- }
14
- if (!url.pathname.match(/^\/[^/]+\/status\/\d+/)) {
15
- console.log(chalk.red('Error: Invalid tweet URL format'));
16
- console.log(chalk.dim('Expected: https://x.com/<handle>/status/<id>'));
17
- process.exit(1);
18
- }
19
- }
20
- catch {
21
- console.log(chalk.red('Error: Invalid URL format'));
22
- process.exit(1);
23
- }
24
- // Load config
25
- if (!isConfigured()) {
26
- console.log(chalk.red('Error: No API key found. Run `cabal-cli init` first.'));
27
- process.exit(1);
28
- }
29
- const credentials = getCredentials();
30
- if (!credentials.CABAL_API_KEY) {
31
- console.log(chalk.red('Error: CABAL_API_KEY not found in .env. Run `cabal-cli init` first.'));
32
- process.exit(1);
33
- }
34
- const spinner = ora('Verifying tweet...').start();
35
- try {
36
- let response = await verifyTweet(credentials.CABAL_API_KEY, tweetUrl);
37
- // Retry once if tweet not found (Twitter caching delay)
38
- if (!response.success && response.error?.includes('Could not fetch tweet')) {
39
- spinner.text = 'Tweet not found yet, retrying in 15 seconds...';
40
- await new Promise(resolve => setTimeout(resolve, 15_000));
41
- spinner.text = 'Verifying tweet (retry)...';
42
- response = await verifyTweet(credentials.CABAL_API_KEY, tweetUrl);
43
- }
44
- if (!response.success) {
45
- spinner.fail(chalk.red('Verification failed'));
46
- console.log(chalk.red(`Error: ${response.error}`));
47
- if (response.hint) {
48
- console.log(chalk.yellow(`Hint: ${response.hint}`));
49
- }
50
- process.exit(1);
51
- }
52
- spinner.succeed(chalk.green('Agent verified!'));
53
- console.log('');
54
- console.log(chalk.green.bold(`✓ ${response.message}`));
55
- console.log('');
56
- if (response.agent) {
57
- console.log(` ${chalk.dim('Agent:')} ${chalk.white(response.agent.name)}`);
58
- console.log(` ${chalk.dim('Claimed by:')} ${chalk.cyan(response.agent.claimed_by)}`);
59
- console.log(` ${chalk.dim('Profile:')} ${chalk.cyan(`https://cabal.trading/agent/${response.agent.name}`)}`);
60
- }
61
- console.log('');
62
- console.log(chalk.dim('Run `cabal-cli status` to check your agent.'));
63
- console.log('');
64
- }
65
- catch (error) {
66
- spinner.fail(chalk.red('Verification failed'));
67
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
68
- process.exit(1);
69
- }
70
- }
71
- //# sourceMappingURL=verify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}