@cabaltrading/cli 0.2.0 → 0.4.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.
- package/README.md +107 -36
- package/bin/cabal-mcp.js +2 -0
- package/dist/index.js +12840 -47
- package/dist/mcp-server.js +11028 -0
- package/package.json +25 -13
- package/dist/commands/hl-setup.d.ts +0 -2
- package/dist/commands/hl-setup.d.ts.map +0 -1
- package/dist/commands/hl-setup.js +0 -225
- package/dist/commands/hl-setup.js.map +0 -1
- package/dist/commands/init.d.ts +0 -8
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -178
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/status.d.ts +0 -2
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -86
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/verify.d.ts +0 -2
- package/dist/commands/verify.d.ts.map +0 -1
- package/dist/commands/verify.js +0 -71
- package/dist/commands/verify.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/api.d.ts +0 -102
- package/dist/lib/api.d.ts.map +0 -1
- package/dist/lib/api.js +0 -74
- package/dist/lib/api.js.map +0 -1
- package/dist/lib/env.d.ts +0 -45
- package/dist/lib/env.d.ts.map +0 -1
- package/dist/lib/env.js +0 -128
- package/dist/lib/env.js.map +0 -1
- package/dist/lib/wallet.d.ts +0 -29
- package/dist/lib/wallet.d.ts.map +0 -1
- package/dist/lib/wallet.js +0 -50
- package/dist/lib/wallet.js.map +0 -1
package/dist/commands/verify.js
DELETED
|
@@ -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
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,uCAAuC,CAAC;KACpD,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;KAC3C,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;KACvD,MAAM,CAAC,SAAS,EAAE,oCAAoC,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,WAAW,EAAE,CAAA;IACb,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAA;IAChF,MAAM,aAAa,EAAE,CAAA;AACvB,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAC5E,MAAM,cAAc,EAAE,CAAA;AACxB,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAA;IAC7E,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA;AAEJ,SAAS,WAAW;IAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;;;;;;;CAOzB,CAAC,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAA;AAC7E,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
package/dist/lib/api.d.ts
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
export interface RegisterRequest {
|
|
2
|
-
name: string;
|
|
3
|
-
solana_address?: string;
|
|
4
|
-
hl_address?: string;
|
|
5
|
-
referral_code?: string;
|
|
6
|
-
}
|
|
7
|
-
export interface RegisterResponse {
|
|
8
|
-
success: boolean;
|
|
9
|
-
agent?: {
|
|
10
|
-
id: string;
|
|
11
|
-
api_key: string;
|
|
12
|
-
claim_url: string;
|
|
13
|
-
verification_code?: string;
|
|
14
|
-
tweet_template?: string;
|
|
15
|
-
referral_url?: string;
|
|
16
|
-
expires_at?: string;
|
|
17
|
-
solana?: {
|
|
18
|
-
address: string;
|
|
19
|
-
note: string;
|
|
20
|
-
};
|
|
21
|
-
hyperliquid?: {
|
|
22
|
-
address: string;
|
|
23
|
-
builder_address: string;
|
|
24
|
-
fee_bps: {
|
|
25
|
-
perps: number;
|
|
26
|
-
spot_sell: number;
|
|
27
|
-
};
|
|
28
|
-
next_steps: string[];
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
important?: string;
|
|
32
|
-
error?: string;
|
|
33
|
-
hint?: string;
|
|
34
|
-
}
|
|
35
|
-
export interface VerifyTweetResponse {
|
|
36
|
-
success: boolean;
|
|
37
|
-
message?: string;
|
|
38
|
-
agent?: {
|
|
39
|
-
id: string;
|
|
40
|
-
name: string;
|
|
41
|
-
claimed_by: string;
|
|
42
|
-
};
|
|
43
|
-
error?: string;
|
|
44
|
-
hint?: string;
|
|
45
|
-
}
|
|
46
|
-
export interface StatusResponse {
|
|
47
|
-
success: boolean;
|
|
48
|
-
status?: string;
|
|
49
|
-
claimed?: boolean;
|
|
50
|
-
hl_enabled?: boolean;
|
|
51
|
-
hl_builder_approved?: boolean;
|
|
52
|
-
wallets?: {
|
|
53
|
-
solana?: {
|
|
54
|
-
address: string;
|
|
55
|
-
balance_usd: number;
|
|
56
|
-
};
|
|
57
|
-
hyperliquid?: {
|
|
58
|
-
address: string;
|
|
59
|
-
account_value: number;
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
error?: string;
|
|
63
|
-
}
|
|
64
|
-
export interface HLConfirmApprovalResponse {
|
|
65
|
-
success: boolean;
|
|
66
|
-
hl_address?: string;
|
|
67
|
-
approved?: boolean;
|
|
68
|
-
max_fee_bps?: number;
|
|
69
|
-
message?: string;
|
|
70
|
-
error?: string;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Register a new agent with Cabal
|
|
74
|
-
*/
|
|
75
|
-
export declare function registerAgent(data: RegisterRequest): Promise<RegisterResponse>;
|
|
76
|
-
/**
|
|
77
|
-
* Get agent status
|
|
78
|
-
*/
|
|
79
|
-
export declare function getAgentStatus(apiKey: string): Promise<StatusResponse>;
|
|
80
|
-
/**
|
|
81
|
-
* Confirm HL builder approval with Cabal
|
|
82
|
-
*/
|
|
83
|
-
export declare function confirmHLApproval(apiKey: string): Promise<HLConfirmApprovalResponse>;
|
|
84
|
-
export interface HLBuilderInfoResponse {
|
|
85
|
-
success: boolean;
|
|
86
|
-
builder?: {
|
|
87
|
-
builder_address: string;
|
|
88
|
-
fee_bps: {
|
|
89
|
-
perps: number;
|
|
90
|
-
spot_sell: number;
|
|
91
|
-
};
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Get HL builder info
|
|
96
|
-
*/
|
|
97
|
-
export declare function getHLBuilderInfo(): Promise<HLBuilderInfoResponse>;
|
|
98
|
-
/**
|
|
99
|
-
* Verify agent claim via tweet
|
|
100
|
-
*/
|
|
101
|
-
export declare function verifyTweet(apiKey: string, tweetUrl: string): Promise<VerifyTweetResponse>;
|
|
102
|
-
//# sourceMappingURL=api.d.ts.map
|
package/dist/lib/api.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
const API_BASE = process.env.CABAL_API_URL || 'https://cabal.trading/api/v1';
|
|
2
|
-
async function handleResponse(response) {
|
|
3
|
-
if (!response.ok) {
|
|
4
|
-
let errorMessage = `HTTP ${response.status}`;
|
|
5
|
-
try {
|
|
6
|
-
const data = await response.json();
|
|
7
|
-
errorMessage = data.error || data.message || errorMessage;
|
|
8
|
-
}
|
|
9
|
-
catch {
|
|
10
|
-
// Response wasn't JSON
|
|
11
|
-
}
|
|
12
|
-
throw new Error(errorMessage);
|
|
13
|
-
}
|
|
14
|
-
return response.json();
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Register a new agent with Cabal
|
|
18
|
-
*/
|
|
19
|
-
export async function registerAgent(data) {
|
|
20
|
-
const response = await fetch(`${API_BASE}/agents/register`, {
|
|
21
|
-
method: 'POST',
|
|
22
|
-
headers: { 'Content-Type': 'application/json' },
|
|
23
|
-
body: JSON.stringify(data),
|
|
24
|
-
});
|
|
25
|
-
// Registration returns success: false for validation errors, so don't throw
|
|
26
|
-
return response.json();
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Get agent status
|
|
30
|
-
*/
|
|
31
|
-
export async function getAgentStatus(apiKey) {
|
|
32
|
-
const response = await fetch(`${API_BASE}/agents/me`, {
|
|
33
|
-
headers: {
|
|
34
|
-
'Authorization': `Bearer ${apiKey}`,
|
|
35
|
-
'Content-Type': 'application/json',
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
return handleResponse(response);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Confirm HL builder approval with Cabal
|
|
42
|
-
*/
|
|
43
|
-
export async function confirmHLApproval(apiKey) {
|
|
44
|
-
const response = await fetch(`${API_BASE}/hyperliquid/confirm-approval`, {
|
|
45
|
-
method: 'POST',
|
|
46
|
-
headers: {
|
|
47
|
-
'Authorization': `Bearer ${apiKey}`,
|
|
48
|
-
'Content-Type': 'application/json',
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
return handleResponse(response);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Get HL builder info
|
|
55
|
-
*/
|
|
56
|
-
export async function getHLBuilderInfo() {
|
|
57
|
-
const response = await fetch(`${API_BASE}/hyperliquid/builder-info`);
|
|
58
|
-
return handleResponse(response);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Verify agent claim via tweet
|
|
62
|
-
*/
|
|
63
|
-
export async function verifyTweet(apiKey, tweetUrl) {
|
|
64
|
-
const response = await fetch(`${API_BASE}/claim/verify-tweet`, {
|
|
65
|
-
method: 'POST',
|
|
66
|
-
headers: {
|
|
67
|
-
'Authorization': `Bearer ${apiKey}`,
|
|
68
|
-
'Content-Type': 'application/json',
|
|
69
|
-
},
|
|
70
|
-
body: JSON.stringify({ tweet_url: tweetUrl }),
|
|
71
|
-
});
|
|
72
|
-
return handleResponse(response);
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=api.js.map
|
package/dist/lib/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,8BAA8B,CAAA;AAE5E,KAAK,UAAU,cAAc,CAAI,QAAkB;IACjD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,YAAY,GAAG,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAA;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0C,CAAA;YAC1E,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,YAAY,CAAA;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAA;AACtC,CAAC;AA8ED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAqB;IACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,kBAAkB,EAAE;QAC1D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAA;IAEF,4EAA4E;IAC5E,OAAO,QAAQ,CAAC,IAAI,EAA+B,CAAA;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,YAAY,EAAE;QACpD,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAA;IAEF,OAAO,cAAc,CAAiB,QAAQ,CAAC,CAAA;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc;IACpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,+BAA+B,EAAE;QACvE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAA;IAEF,OAAO,cAAc,CAA4B,QAAQ,CAAC,CAAA;AAC5D,CAAC;AAUD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,2BAA2B,CAAC,CAAA;IACpE,OAAO,cAAc,CAAwB,QAAQ,CAAC,CAAA;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc,EAAE,QAAgB;IAChE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,qBAAqB,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;KAC9C,CAAC,CAAA;IAEF,OAAO,cAAc,CAAsB,QAAQ,CAAC,CAAA;AACtD,CAAC"}
|
package/dist/lib/env.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
export interface CabalEnv {
|
|
2
|
-
CABAL_API_KEY?: string;
|
|
3
|
-
CABAL_AGENT_ID?: string;
|
|
4
|
-
CABAL_AGENT_NAME?: string;
|
|
5
|
-
SOLANA_PUBLIC_KEY?: string;
|
|
6
|
-
SOLANA_PRIVATE_KEY?: string;
|
|
7
|
-
EVM_PUBLIC_KEY?: string;
|
|
8
|
-
EVM_PRIVATE_KEY?: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Load existing .env file
|
|
12
|
-
*/
|
|
13
|
-
export declare function loadEnv(): CabalEnv;
|
|
14
|
-
/**
|
|
15
|
-
* Check if Cabal is already configured
|
|
16
|
-
*/
|
|
17
|
-
export declare function isConfigured(): boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Save credentials to .env file
|
|
20
|
-
*/
|
|
21
|
-
export declare function saveEnv(credentials: {
|
|
22
|
-
apiKey: string;
|
|
23
|
-
agentId: string;
|
|
24
|
-
agentName: string;
|
|
25
|
-
solanaPublicKey?: string;
|
|
26
|
-
solanaPrivateKey?: string;
|
|
27
|
-
evmPublicKey?: string;
|
|
28
|
-
evmPrivateKey?: string;
|
|
29
|
-
}): void;
|
|
30
|
-
/**
|
|
31
|
-
* Get credentials from env
|
|
32
|
-
*/
|
|
33
|
-
export declare function getCredentials(): CabalEnv;
|
|
34
|
-
/**
|
|
35
|
-
* Check if .env is in .gitignore
|
|
36
|
-
*/
|
|
37
|
-
export declare function isEnvInGitignore(): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Add .env to .gitignore if it exists
|
|
40
|
-
*/
|
|
41
|
-
export declare function ensureEnvInGitignore(): {
|
|
42
|
-
added: boolean;
|
|
43
|
-
created: boolean;
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=env.d.ts.map
|
package/dist/lib/env.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,QAAQ,CASlC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,WAAW,EAAE;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,IAAI,CAqDP;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAgBzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAkB1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAmB3E"}
|
package/dist/lib/env.js
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import dotenv from 'dotenv';
|
|
4
|
-
const ENV_FILE = '.env';
|
|
5
|
-
const GITIGNORE_FILE = '.gitignore';
|
|
6
|
-
/**
|
|
7
|
-
* Load existing .env file
|
|
8
|
-
*/
|
|
9
|
-
export function loadEnv() {
|
|
10
|
-
const envPath = path.resolve(process.cwd(), ENV_FILE);
|
|
11
|
-
if (fs.existsSync(envPath)) {
|
|
12
|
-
const result = dotenv.config({ path: envPath });
|
|
13
|
-
return (result.parsed || {});
|
|
14
|
-
}
|
|
15
|
-
return {};
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Check if Cabal is already configured
|
|
19
|
-
*/
|
|
20
|
-
export function isConfigured() {
|
|
21
|
-
const env = loadEnv();
|
|
22
|
-
return !!env.CABAL_API_KEY;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Save credentials to .env file
|
|
26
|
-
*/
|
|
27
|
-
export function saveEnv(credentials) {
|
|
28
|
-
const envPath = path.resolve(process.cwd(), ENV_FILE);
|
|
29
|
-
// Load existing env to preserve other variables
|
|
30
|
-
let existingContent = '';
|
|
31
|
-
if (fs.existsSync(envPath)) {
|
|
32
|
-
existingContent = fs.readFileSync(envPath, 'utf-8');
|
|
33
|
-
// Remove old Cabal-related lines
|
|
34
|
-
const cabalKeys = [
|
|
35
|
-
'CABAL_API_KEY',
|
|
36
|
-
'CABAL_AGENT_ID',
|
|
37
|
-
'CABAL_AGENT_NAME',
|
|
38
|
-
'SOLANA_PUBLIC_KEY',
|
|
39
|
-
'SOLANA_PRIVATE_KEY',
|
|
40
|
-
'EVM_PUBLIC_KEY',
|
|
41
|
-
'EVM_PRIVATE_KEY',
|
|
42
|
-
];
|
|
43
|
-
const lines = existingContent.split('\n').filter(line => {
|
|
44
|
-
const key = line.split('=')[0]?.trim();
|
|
45
|
-
return !cabalKeys.includes(key);
|
|
46
|
-
});
|
|
47
|
-
existingContent = lines.join('\n').trim();
|
|
48
|
-
if (existingContent)
|
|
49
|
-
existingContent += '\n\n';
|
|
50
|
-
}
|
|
51
|
-
// Build new Cabal section
|
|
52
|
-
let cabalSection = `# Cabal Agent Credentials
|
|
53
|
-
# Generated by cabal-cli - DO NOT SHARE THESE!
|
|
54
|
-
CABAL_API_KEY=${credentials.apiKey}
|
|
55
|
-
CABAL_AGENT_ID=${credentials.agentId}
|
|
56
|
-
CABAL_AGENT_NAME=${credentials.agentName}
|
|
57
|
-
`;
|
|
58
|
-
if (credentials.solanaPublicKey && credentials.solanaPrivateKey) {
|
|
59
|
-
cabalSection += `
|
|
60
|
-
# Solana Wallet (for Jupiter swaps on Solana)
|
|
61
|
-
SOLANA_PUBLIC_KEY=${credentials.solanaPublicKey}
|
|
62
|
-
SOLANA_PRIVATE_KEY=${credentials.solanaPrivateKey}
|
|
63
|
-
`;
|
|
64
|
-
}
|
|
65
|
-
if (credentials.evmPublicKey && credentials.evmPrivateKey) {
|
|
66
|
-
cabalSection += `
|
|
67
|
-
# EVM Wallet (for Hyperliquid perps/spot)
|
|
68
|
-
EVM_PUBLIC_KEY=${credentials.evmPublicKey}
|
|
69
|
-
EVM_PRIVATE_KEY=${credentials.evmPrivateKey}
|
|
70
|
-
`;
|
|
71
|
-
}
|
|
72
|
-
fs.writeFileSync(envPath, existingContent + cabalSection);
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Get credentials from env
|
|
76
|
-
*/
|
|
77
|
-
export function getCredentials() {
|
|
78
|
-
// First try process.env (for already loaded vars)
|
|
79
|
-
const fromProcess = {
|
|
80
|
-
CABAL_API_KEY: process.env.CABAL_API_KEY,
|
|
81
|
-
CABAL_AGENT_ID: process.env.CABAL_AGENT_ID,
|
|
82
|
-
CABAL_AGENT_NAME: process.env.CABAL_AGENT_NAME,
|
|
83
|
-
SOLANA_PUBLIC_KEY: process.env.SOLANA_PUBLIC_KEY,
|
|
84
|
-
SOLANA_PRIVATE_KEY: process.env.SOLANA_PRIVATE_KEY,
|
|
85
|
-
EVM_PUBLIC_KEY: process.env.EVM_PUBLIC_KEY,
|
|
86
|
-
EVM_PRIVATE_KEY: process.env.EVM_PRIVATE_KEY,
|
|
87
|
-
};
|
|
88
|
-
// Then try loading from .env file
|
|
89
|
-
const fromFile = loadEnv();
|
|
90
|
-
return { ...fromFile, ...fromProcess };
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Check if .env is in .gitignore
|
|
94
|
-
*/
|
|
95
|
-
export function isEnvInGitignore() {
|
|
96
|
-
const gitignorePath = path.resolve(process.cwd(), GITIGNORE_FILE);
|
|
97
|
-
if (!fs.existsSync(gitignorePath)) {
|
|
98
|
-
return false;
|
|
99
|
-
}
|
|
100
|
-
const content = fs.readFileSync(gitignorePath, 'utf-8');
|
|
101
|
-
const lines = content.split('\n').map(line => line.trim());
|
|
102
|
-
// Check for common .env patterns
|
|
103
|
-
return lines.some(line => line === '.env' ||
|
|
104
|
-
line === '.env*' ||
|
|
105
|
-
line === '.env.local' ||
|
|
106
|
-
line === '*.env' ||
|
|
107
|
-
line.startsWith('.env'));
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Add .env to .gitignore if it exists
|
|
111
|
-
*/
|
|
112
|
-
export function ensureEnvInGitignore() {
|
|
113
|
-
const gitignorePath = path.resolve(process.cwd(), GITIGNORE_FILE);
|
|
114
|
-
if (!fs.existsSync(gitignorePath)) {
|
|
115
|
-
// Create .gitignore with .env
|
|
116
|
-
fs.writeFileSync(gitignorePath, '.env\n');
|
|
117
|
-
return { added: true, created: true };
|
|
118
|
-
}
|
|
119
|
-
if (isEnvInGitignore()) {
|
|
120
|
-
return { added: false, created: false };
|
|
121
|
-
}
|
|
122
|
-
// Append .env to existing .gitignore
|
|
123
|
-
const content = fs.readFileSync(gitignorePath, 'utf-8');
|
|
124
|
-
const newContent = content.endsWith('\n') ? `${content}.env\n` : `${content}\n.env\n`;
|
|
125
|
-
fs.writeFileSync(gitignorePath, newContent);
|
|
126
|
-
return { added: true, created: false };
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=env.js.map
|
package/dist/lib/env.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/wallet.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export interface SolanaWallet {
|
|
2
|
-
publicKey: string;
|
|
3
|
-
privateKey: string;
|
|
4
|
-
}
|
|
5
|
-
export interface EvmWallet {
|
|
6
|
-
address: string;
|
|
7
|
-
privateKey: string;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Generate a new Solana keypair
|
|
11
|
-
*/
|
|
12
|
-
export declare function generateSolanaWallet(): SolanaWallet;
|
|
13
|
-
/**
|
|
14
|
-
* Generate a new EVM wallet (for Hyperliquid)
|
|
15
|
-
*/
|
|
16
|
-
export declare function generateEvmWallet(): EvmWallet;
|
|
17
|
-
/**
|
|
18
|
-
* Validate a Solana public key
|
|
19
|
-
*/
|
|
20
|
-
export declare function isValidSolanaAddress(address: string): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Validate an EVM address
|
|
23
|
-
*/
|
|
24
|
-
export declare function isValidEvmAddress(address: string): boolean;
|
|
25
|
-
/**
|
|
26
|
-
* Truncate address for display
|
|
27
|
-
*/
|
|
28
|
-
export declare function truncateAddress(address: string, chars?: number): string;
|
|
29
|
-
//# sourceMappingURL=wallet.d.ts.map
|
package/dist/lib/wallet.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/lib/wallet.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,YAAY,CAMnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,CAM7C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,CAGlE"}
|
package/dist/lib/wallet.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Keypair } from '@solana/web3.js';
|
|
2
|
-
import { Wallet } from 'ethers';
|
|
3
|
-
import bs58 from 'bs58';
|
|
4
|
-
/**
|
|
5
|
-
* Generate a new Solana keypair
|
|
6
|
-
*/
|
|
7
|
-
export function generateSolanaWallet() {
|
|
8
|
-
const keypair = Keypair.generate();
|
|
9
|
-
return {
|
|
10
|
-
publicKey: keypair.publicKey.toBase58(),
|
|
11
|
-
privateKey: bs58.encode(keypair.secretKey),
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Generate a new EVM wallet (for Hyperliquid)
|
|
16
|
-
*/
|
|
17
|
-
export function generateEvmWallet() {
|
|
18
|
-
const wallet = Wallet.createRandom();
|
|
19
|
-
return {
|
|
20
|
-
address: wallet.address,
|
|
21
|
-
privateKey: wallet.privateKey,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Validate a Solana public key
|
|
26
|
-
*/
|
|
27
|
-
export function isValidSolanaAddress(address) {
|
|
28
|
-
try {
|
|
29
|
-
const decoded = bs58.decode(address);
|
|
30
|
-
return decoded.length === 32;
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Validate an EVM address
|
|
38
|
-
*/
|
|
39
|
-
export function isValidEvmAddress(address) {
|
|
40
|
-
return /^0x[a-fA-F0-9]{40}$/.test(address);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Truncate address for display
|
|
44
|
-
*/
|
|
45
|
-
export function truncateAddress(address, chars = 4) {
|
|
46
|
-
if (address.length <= chars * 2 + 3)
|
|
47
|
-
return address;
|
|
48
|
-
return `${address.slice(0, chars + 2)}...${address.slice(-chars)}`;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=wallet.js.map
|
package/dist/lib/wallet.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/lib/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAA;AAYvB;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;IAClC,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;QACvC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;KAC3C,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;IACpC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACpC,OAAO,OAAO,CAAC,MAAM,KAAK,EAAE,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,KAAK,GAAG,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAA;IACnD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAA;AACpE,CAAC"}
|