@openshell-cc/miner-cli 0.1.1 → 0.2.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.
- package/.env.example +22 -17
- package/README.md +1 -1
- package/dist/auth.d.ts +18 -8
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +52 -2
- package/dist/auth.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +22 -8
- package/dist/config.js.map +1 -1
- package/dist/index.js +189 -86
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/.env.example
CHANGED
|
@@ -1,36 +1,41 @@
|
|
|
1
|
-
# ──
|
|
1
|
+
# ── $SHELL Miner Configuration ────────────────────────────────────────────────
|
|
2
|
+
# Run `npx @openshell-cc/miner-cli setup` to configure interactively
|
|
2
3
|
|
|
3
|
-
#
|
|
4
|
+
# Oracle endpoint (production)
|
|
4
5
|
ORACLE_URL=https://oracle.openshell.cc
|
|
5
6
|
|
|
6
|
-
#
|
|
7
|
-
# Generate with: solana-keygen new --outfile miner-wallet.json
|
|
8
|
-
WALLET_PRIVATE_KEY=
|
|
7
|
+
# ── Authentication (choose ONE) ───────────────────────────────────────────────
|
|
9
8
|
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
|
|
9
|
+
# Option A: $SHELL API Key (recommended — register at https://openshell.cc)
|
|
10
|
+
# 1. Go to openshell.cc → Register → Dashboard → Agent Registration
|
|
11
|
+
# 2. Copy the generated sk-shell-xxx key
|
|
12
|
+
# SHELL_API_KEY=sk-shell-
|
|
13
|
+
|
|
14
|
+
# Option B: Solana Wallet Private Key (base58 format)
|
|
15
|
+
# Generate: solana-keygen new --outfile miner-wallet.json
|
|
16
|
+
# WALLET_PRIVATE_KEY=
|
|
15
17
|
|
|
16
18
|
# ── LLM Configuration ─────────────────────────────────────────────────────────
|
|
17
19
|
|
|
18
20
|
# LLM provider: anthropic | openai | deepseek (default: anthropic)
|
|
19
21
|
LLM_PROVIDER=anthropic
|
|
20
22
|
|
|
23
|
+
# Your LLM provider API key (NOT your $SHELL API key)
|
|
24
|
+
# Anthropic → console.anthropic.com (recommended model: claude-haiku-4-5)
|
|
25
|
+
# OpenAI → platform.openai.com (recommended model: gpt-4o-mini)
|
|
26
|
+
# DeepSeek → platform.deepseek.com (cheapest option: deepseek-chat)
|
|
27
|
+
LLM_API_KEY=
|
|
28
|
+
|
|
21
29
|
# Model to use — leave blank to use the provider default
|
|
22
|
-
# Anthropic default: claude-sonnet-4-6-20260320
|
|
23
|
-
# OpenAI default: gpt-4o-mini
|
|
24
|
-
# DeepSeek default: deepseek-chat
|
|
25
30
|
LLM_MODEL=
|
|
26
31
|
|
|
27
32
|
# ── Mining Configuration ──────────────────────────────────────────────────────
|
|
28
33
|
|
|
29
34
|
# Task execution mode:
|
|
30
|
-
# auto — handle
|
|
31
|
-
# local_only — only accept local_compute tasks
|
|
32
|
-
# sandbox_only — only accept sandbox_verified tasks
|
|
35
|
+
# auto — handle any task the oracle sends (recommended)
|
|
36
|
+
# local_only — only accept local_compute tasks
|
|
37
|
+
# sandbox_only — only accept sandbox_verified tasks
|
|
33
38
|
EXECUTION_MODE=auto
|
|
34
39
|
|
|
35
|
-
# How often to poll for new tasks
|
|
40
|
+
# How often to poll for new tasks (milliseconds)
|
|
36
41
|
POLLING_INTERVAL_MS=5000
|
package/README.md
CHANGED
package/dist/auth.d.ts
CHANGED
|
@@ -1,17 +1,27 @@
|
|
|
1
1
|
import type { MinerConfig } from './config.js';
|
|
2
|
-
|
|
3
|
-
export declare function getWalletAddress(privateKeyBase58: string): string;
|
|
4
|
-
/** Sign a message with the wallet private key */
|
|
5
|
-
export declare function signMessage(message: string, privateKeyBase58: string): string;
|
|
6
|
-
/** Authenticate with the Oracle and get a JWT */
|
|
7
|
-
export declare function authenticate(config: MinerConfig, referralCode?: string): Promise<{
|
|
2
|
+
export interface AuthResult {
|
|
8
3
|
token: string;
|
|
9
4
|
user: {
|
|
10
5
|
id: string;
|
|
11
|
-
walletAddress: string;
|
|
6
|
+
walletAddress: string | null;
|
|
7
|
+
agentName?: string | null;
|
|
12
8
|
tier: string;
|
|
13
9
|
shellPoints: number;
|
|
14
10
|
referralCode: string;
|
|
15
11
|
};
|
|
16
|
-
}
|
|
12
|
+
}
|
|
13
|
+
/** Derive public key (wallet address) from private key */
|
|
14
|
+
export declare function getWalletAddress(privateKeyBase58: string): string;
|
|
15
|
+
/** Sign a message with the wallet private key */
|
|
16
|
+
export declare function signMessage(message: string, privateKeyBase58: string): string;
|
|
17
|
+
/** Authenticate with the Oracle using Solana wallet private key → JWT */
|
|
18
|
+
export declare function authenticate(config: MinerConfig, referralCode?: string): Promise<AuthResult>;
|
|
19
|
+
/** Authenticate with the Oracle using sk-shell-xxx API Key */
|
|
20
|
+
export declare function authenticateWithApiKey(config: MinerConfig): Promise<AuthResult>;
|
|
21
|
+
/**
|
|
22
|
+
* Auto-select authentication method based on config:
|
|
23
|
+
* - If SHELL_API_KEY is set → use API key auth (no wallet needed)
|
|
24
|
+
* - If WALLET_PRIVATE_KEY is set → use SIWE wallet auth
|
|
25
|
+
*/
|
|
26
|
+
export declare function autoAuthenticate(config: MinerConfig, referralCode?: string): Promise<AuthResult>;
|
|
17
27
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,iDAAiD;AACjD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAK7E;AAED,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAA;QACV,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;QAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACzB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;CACF;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,iDAAiD;AACjD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAK7E;AAED,yEAAyE;AACzE,wBAAsB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAoDlG;AAED,8DAA8D;AAC9D,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAqCrF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAKtG"}
|
package/dist/auth.js
CHANGED
|
@@ -13,7 +13,7 @@ export function signMessage(message, privateKeyBase58) {
|
|
|
13
13
|
const signature = nacl.sign.detached(messageBytes, privateKey);
|
|
14
14
|
return bs58.encode(signature);
|
|
15
15
|
}
|
|
16
|
-
/** Authenticate with the Oracle
|
|
16
|
+
/** Authenticate with the Oracle using Solana wallet private key → JWT */
|
|
17
17
|
export async function authenticate(config, referralCode) {
|
|
18
18
|
const walletAddress = getWalletAddress(config.walletPrivateKey);
|
|
19
19
|
// Step 1: Get nonce
|
|
@@ -45,6 +45,56 @@ export async function authenticate(config, referralCode) {
|
|
|
45
45
|
}
|
|
46
46
|
throw new Error(`Login failed: ${errorMsg}`);
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
const data = await loginRes.json();
|
|
49
|
+
return {
|
|
50
|
+
token: data.token,
|
|
51
|
+
user: {
|
|
52
|
+
id: data.user.id,
|
|
53
|
+
walletAddress: data.user.walletAddress,
|
|
54
|
+
tier: data.user.tier,
|
|
55
|
+
shellPoints: data.user.shellPoints,
|
|
56
|
+
referralCode: data.user.referralCode,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** Authenticate with the Oracle using sk-shell-xxx API Key */
|
|
61
|
+
export async function authenticateWithApiKey(config) {
|
|
62
|
+
const res = await fetch(`${config.oracleUrl}/leaderboard/me`, {
|
|
63
|
+
headers: { Authorization: `Bearer ${config.shellApiKey}` },
|
|
64
|
+
});
|
|
65
|
+
if (!res.ok) {
|
|
66
|
+
let errorMsg;
|
|
67
|
+
try {
|
|
68
|
+
const err = await res.json();
|
|
69
|
+
errorMsg = err.error;
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
errorMsg = res.statusText || `HTTP ${res.status}`;
|
|
73
|
+
}
|
|
74
|
+
throw new Error(`API key authentication failed: ${errorMsg}`);
|
|
75
|
+
}
|
|
76
|
+
const user = await res.json();
|
|
77
|
+
return {
|
|
78
|
+
token: config.shellApiKey, // API key is used directly as Bearer token
|
|
79
|
+
user: {
|
|
80
|
+
id: user.id,
|
|
81
|
+
walletAddress: user.walletAddress ?? null,
|
|
82
|
+
agentName: user.agentName ?? null,
|
|
83
|
+
tier: user.tier,
|
|
84
|
+
shellPoints: user.shellPoints,
|
|
85
|
+
referralCode: user.referralCode,
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Auto-select authentication method based on config:
|
|
91
|
+
* - If SHELL_API_KEY is set → use API key auth (no wallet needed)
|
|
92
|
+
* - If WALLET_PRIVATE_KEY is set → use SIWE wallet auth
|
|
93
|
+
*/
|
|
94
|
+
export async function autoAuthenticate(config, referralCode) {
|
|
95
|
+
if (config.shellApiKey) {
|
|
96
|
+
return authenticateWithApiKey(config);
|
|
97
|
+
}
|
|
98
|
+
return authenticate(config, referralCode);
|
|
49
99
|
}
|
|
50
100
|
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export type ExecutionMode = 'auto' | 'local_only' | 'sandbox_only';
|
|
|
3
3
|
export interface MinerConfig {
|
|
4
4
|
oracleUrl: string;
|
|
5
5
|
walletPrivateKey: string;
|
|
6
|
+
shellApiKey: string;
|
|
6
7
|
llmProvider: 'anthropic' | 'openai' | 'deepseek';
|
|
7
8
|
llmApiKey: string;
|
|
8
9
|
llmModel: string;
|
|
@@ -11,4 +12,6 @@ export interface MinerConfig {
|
|
|
11
12
|
}
|
|
12
13
|
export declare function loadConfig(): MinerConfig;
|
|
13
14
|
export declare function validateConfig(config: MinerConfig): string[];
|
|
15
|
+
/** Returns true if config is completely unconfigured (first run) */
|
|
16
|
+
export declare function isFirstRun(config: MinerConfig): boolean;
|
|
14
17
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AAEtB,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,cAAc,CAAA;AAElE,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;IAChD,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED,wBAAgB,UAAU,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AAEtB,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,cAAc,CAAA;AAElE,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;IAChD,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED,wBAAgB,UAAU,IAAI,WAAW,CAmBxC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CA0B5D;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEvD"}
|
package/dist/config.js
CHANGED
|
@@ -2,13 +2,14 @@ import 'dotenv/config';
|
|
|
2
2
|
export function loadConfig() {
|
|
3
3
|
const provider = (process.env.LLM_PROVIDER || 'anthropic');
|
|
4
4
|
const defaultModels = {
|
|
5
|
-
anthropic: 'claude-
|
|
5
|
+
anthropic: 'claude-haiku-4-5',
|
|
6
6
|
openai: 'gpt-4o-mini',
|
|
7
7
|
deepseek: 'deepseek-chat',
|
|
8
8
|
};
|
|
9
9
|
return {
|
|
10
|
-
oracleUrl: process.env.ORACLE_URL || '
|
|
10
|
+
oracleUrl: process.env.ORACLE_URL || 'https://oracle.openshell.cc',
|
|
11
11
|
walletPrivateKey: process.env.WALLET_PRIVATE_KEY || '',
|
|
12
|
+
shellApiKey: process.env.SHELL_API_KEY || '',
|
|
12
13
|
llmProvider: provider,
|
|
13
14
|
llmApiKey: process.env.LLM_API_KEY || process.env.ANTHROPIC_API_KEY || '',
|
|
14
15
|
llmModel: process.env.LLM_MODEL || defaultModels[provider],
|
|
@@ -18,12 +19,25 @@ export function loadConfig() {
|
|
|
18
19
|
}
|
|
19
20
|
export function validateConfig(config) {
|
|
20
21
|
const errors = [];
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
// Need EITHER wallet private key OR shell API key for authentication
|
|
23
|
+
if (!config.walletPrivateKey && !config.shellApiKey) {
|
|
24
|
+
errors.push('Authentication required — set ONE of:\n'
|
|
25
|
+
+ ' WALLET_PRIVATE_KEY Solana wallet private key (base58)\n'
|
|
26
|
+
+ ' SHELL_API_KEY sk-shell-xxx key from https://openshell.cc/dashboard');
|
|
27
|
+
}
|
|
28
|
+
if (!config.llmApiKey) {
|
|
29
|
+
errors.push('LLM_API_KEY is required — get one from:\n'
|
|
30
|
+
+ ' Anthropic: console.anthropic.com (recommended: claude-haiku-4-5)\n'
|
|
31
|
+
+ ' OpenAI: platform.openai.com (recommended: gpt-4o-mini)\n'
|
|
32
|
+
+ ' DeepSeek: platform.deepseek.com (cheapest: deepseek-chat)');
|
|
33
|
+
}
|
|
34
|
+
if (!config.oracleUrl) {
|
|
35
|
+
errors.push('ORACLE_URL is required (default: https://oracle.openshell.cc)');
|
|
36
|
+
}
|
|
27
37
|
return errors;
|
|
28
38
|
}
|
|
39
|
+
/** Returns true if config is completely unconfigured (first run) */
|
|
40
|
+
export function isFirstRun(config) {
|
|
41
|
+
return !config.walletPrivateKey && !config.shellApiKey && !config.llmApiKey;
|
|
42
|
+
}
|
|
29
43
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AAetB,MAAM,UAAU,UAAU;IACxB,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,WAAW,CAA+B,CAAA;IAExF,MAAM,aAAa,GAA2B;QAC5C,SAAS,EAAE,kBAAkB;QAC7B,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,eAAe;KAC1B,CAAA;IAED,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,6BAA6B;QAClE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;QACtD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;QAC5C,WAAW,EAAE,QAAQ;QACrB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;QACzE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC;QAC1D,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,IAAI;QAClE,aAAa,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,CAAkB;KACvE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,qEAAqE;IACrE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CACT,yCAAyC;cACvC,4DAA4D;cAC5D,4EAA4E,CAC/E,CAAA;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CACT,2CAA2C;cACzC,wEAAwE;cACxE,mEAAmE;cACnE,gEAAgE,CACnE,CAAA;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC9E,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,OAAO,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA;AAC7E,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import ora from 'ora';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { createInterface } from 'node:readline';
|
|
6
|
+
import { writeFileSync } from 'node:fs';
|
|
7
|
+
import { resolve } from 'node:path';
|
|
8
|
+
import { loadConfig, validateConfig, isFirstRun } from './config.js';
|
|
9
|
+
import { autoAuthenticate } from './auth.js';
|
|
7
10
|
import { pollForTask, submitPayload, submitLocalComputeResult } from './poller.js';
|
|
8
11
|
import { generatePayload } from './llm/provider.js';
|
|
9
12
|
import { executeLocally } from './local-sandbox/executor.js';
|
|
@@ -11,45 +14,141 @@ import { buildSubmissionBody } from './local-sandbox/proof.js';
|
|
|
11
14
|
import * as tier1 from './llm/prompts/tier1-token-injection.js';
|
|
12
15
|
import * as tier2 from './llm/prompts/tier2-social-engineering.js';
|
|
13
16
|
import * as tier3 from './llm/prompts/tier3-memory-poisoning.js';
|
|
17
|
+
const BANNER = chalk.cyan(`
|
|
18
|
+
███████╗██╗ ██╗███████╗██╗ ██╗
|
|
19
|
+
██╔════╝██║ ██║██╔════╝██║ ██║
|
|
20
|
+
███████╗███████║█████╗ ██║ ██║
|
|
21
|
+
╚════██║██╔══██║██╔══╝ ██║ ██║
|
|
22
|
+
███████║██║ ██║███████╗███████╗███████╗
|
|
23
|
+
╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
|
|
24
|
+
`);
|
|
14
25
|
const program = new Command();
|
|
15
26
|
program
|
|
16
27
|
.name('shell-miner')
|
|
17
28
|
.description('$SHELL Protocol Miner CLI — Mine $SHELL by red-teaming AI agents')
|
|
18
|
-
.version('0.2.
|
|
29
|
+
.version('0.2.1');
|
|
30
|
+
// ── Setup command (interactive first-run wizard) ──────────────────────────────
|
|
31
|
+
program
|
|
32
|
+
.command('setup')
|
|
33
|
+
.description('Interactive setup wizard — configure your miner in 2 minutes')
|
|
34
|
+
.action(async () => {
|
|
35
|
+
console.log(BANNER);
|
|
36
|
+
console.log(chalk.cyan(' Miner Setup Wizard'));
|
|
37
|
+
console.log();
|
|
38
|
+
console.log(chalk.gray(' This wizard will create a .env file with your configuration.'));
|
|
39
|
+
console.log();
|
|
40
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
41
|
+
const ask = (question) => new Promise(resolve => rl.question(question, resolve));
|
|
42
|
+
// Auth method choice
|
|
43
|
+
console.log(chalk.bold('Step 1: Authentication Method'));
|
|
44
|
+
console.log(chalk.gray(' A) Solana Wallet (WALLET_PRIVATE_KEY) — requires a Solana wallet'));
|
|
45
|
+
console.log(chalk.gray(' B) $SHELL API Key (SHELL_API_KEY) — register at openshell.cc ✓ recommended'));
|
|
46
|
+
console.log();
|
|
47
|
+
const authChoice = (await ask(chalk.white(' Choose A or B [B]: '))).trim().toUpperCase() || 'B';
|
|
48
|
+
let walletKey = '';
|
|
49
|
+
let shellApiKey = '';
|
|
50
|
+
if (authChoice === 'A') {
|
|
51
|
+
console.log();
|
|
52
|
+
console.log(chalk.gray(' Generate a wallet: solana-keygen new --outfile miner-wallet.json'));
|
|
53
|
+
walletKey = (await ask(chalk.white(' WALLET_PRIVATE_KEY (base58): '))).trim();
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.log();
|
|
57
|
+
console.log(chalk.gray(' Register at https://openshell.cc, go to Dashboard → Agent Registration → copy sk-shell-xxx'));
|
|
58
|
+
shellApiKey = (await ask(chalk.white(' SHELL_API_KEY (sk-shell-xxx): '))).trim();
|
|
59
|
+
}
|
|
60
|
+
// LLM setup
|
|
61
|
+
console.log();
|
|
62
|
+
console.log(chalk.bold('Step 2: LLM Provider'));
|
|
63
|
+
console.log(chalk.gray(' 1) Anthropic (claude-haiku-4-5) → console.anthropic.com'));
|
|
64
|
+
console.log(chalk.gray(' 2) OpenAI (gpt-4o-mini) → platform.openai.com'));
|
|
65
|
+
console.log(chalk.gray(' 3) DeepSeek (deepseek-chat) → platform.deepseek.com 💰 cheapest'));
|
|
66
|
+
console.log();
|
|
67
|
+
const llmChoice = (await ask(chalk.white(' Choose 1/2/3 [1]: '))).trim() || '1';
|
|
68
|
+
const providerMap = { '1': 'anthropic', '2': 'openai', '3': 'deepseek' };
|
|
69
|
+
const llmProvider = providerMap[llmChoice] || 'anthropic';
|
|
70
|
+
const llmApiKey = (await ask(chalk.white(' LLM_API_KEY: '))).trim();
|
|
71
|
+
rl.close();
|
|
72
|
+
// Write .env
|
|
73
|
+
const envPath = resolve(process.cwd(), '.env');
|
|
74
|
+
const envContent = [
|
|
75
|
+
'# $SHELL Miner Configuration — generated by shell-miner setup',
|
|
76
|
+
'',
|
|
77
|
+
'# Oracle endpoint',
|
|
78
|
+
'ORACLE_URL=https://oracle.openshell.cc',
|
|
79
|
+
'',
|
|
80
|
+
'# Authentication (one of the following)',
|
|
81
|
+
walletKey ? `WALLET_PRIVATE_KEY=${walletKey}` : '# WALLET_PRIVATE_KEY=',
|
|
82
|
+
shellApiKey ? `SHELL_API_KEY=${shellApiKey}` : '# SHELL_API_KEY=sk-shell-...',
|
|
83
|
+
'',
|
|
84
|
+
'# LLM',
|
|
85
|
+
`LLM_PROVIDER=${llmProvider}`,
|
|
86
|
+
`LLM_API_KEY=${llmApiKey}`,
|
|
87
|
+
'',
|
|
88
|
+
'# Mining',
|
|
89
|
+
'EXECUTION_MODE=auto',
|
|
90
|
+
'POLLING_INTERVAL_MS=5000',
|
|
91
|
+
].join('\n');
|
|
92
|
+
writeFileSync(envPath, envContent);
|
|
93
|
+
console.log();
|
|
94
|
+
console.log(chalk.green(' ✓ Configuration saved to .env'));
|
|
95
|
+
console.log();
|
|
96
|
+
console.log(chalk.cyan(' Start mining:'), chalk.white('npx @openshell-cc/miner-cli start'));
|
|
97
|
+
console.log();
|
|
98
|
+
});
|
|
99
|
+
// ── Start command ─────────────────────────────────────────────────────────────
|
|
19
100
|
program
|
|
20
101
|
.command('start')
|
|
21
102
|
.description('Start mining (authenticate, poll tasks, generate payloads, submit)')
|
|
22
103
|
.option('-r, --referral <code>', 'Referral code from another miner')
|
|
23
104
|
.action(async (opts) => {
|
|
24
105
|
const config = loadConfig();
|
|
106
|
+
// First-run: guide user to setup wizard
|
|
107
|
+
if (isFirstRun(config)) {
|
|
108
|
+
console.log(BANNER);
|
|
109
|
+
console.log(chalk.yellow(' No configuration found!'));
|
|
110
|
+
console.log();
|
|
111
|
+
console.log(chalk.white(' Run the setup wizard to get started:'));
|
|
112
|
+
console.log(chalk.cyan(' npx @openshell-cc/miner-cli setup'));
|
|
113
|
+
console.log();
|
|
114
|
+
console.log(chalk.gray(' Or manually create a .env file with:'));
|
|
115
|
+
console.log(chalk.gray(' SHELL_API_KEY=sk-shell-xxx ← from https://openshell.cc/dashboard'));
|
|
116
|
+
console.log(chalk.gray(' LLM_API_KEY=sk-ant-... ← from console.anthropic.com'));
|
|
117
|
+
console.log(chalk.gray(' ORACLE_URL=https://oracle.openshell.cc'));
|
|
118
|
+
console.log();
|
|
119
|
+
process.exit(0);
|
|
120
|
+
}
|
|
25
121
|
const errors = validateConfig(config);
|
|
26
122
|
if (errors.length > 0) {
|
|
27
|
-
console.error(chalk.red('Configuration errors
|
|
28
|
-
errors.forEach(e =>
|
|
123
|
+
console.error(chalk.red('\n Configuration errors:\n'));
|
|
124
|
+
errors.forEach(e => {
|
|
125
|
+
const lines = e.split('\n');
|
|
126
|
+
console.error(chalk.red(` ✗ ${lines[0]}`));
|
|
127
|
+
lines.slice(1).forEach(l => console.error(chalk.gray(` ${l}`)));
|
|
128
|
+
});
|
|
129
|
+
console.error();
|
|
130
|
+
console.error(chalk.gray(' Run `npx @openshell-cc/miner-cli setup` to configure interactively.'));
|
|
131
|
+
console.error();
|
|
29
132
|
process.exit(1);
|
|
30
133
|
}
|
|
31
|
-
console.log(
|
|
32
|
-
███████╗██╗ ██╗███████╗██╗ ██╗
|
|
33
|
-
██╔════╝██║ ██║██╔════╝██║ ██║
|
|
34
|
-
███████╗███████║█████╗ ██║ ██║
|
|
35
|
-
╚════██║██╔══██║██╔══╝ ██║ ██║
|
|
36
|
-
███████║██║ ██║███████╗███████╗███████╗
|
|
37
|
-
╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
|
|
38
|
-
`));
|
|
134
|
+
console.log(BANNER);
|
|
39
135
|
console.log(chalk.cyan(' Decentralized AI Red Team Network'));
|
|
40
|
-
|
|
41
|
-
console.log(chalk.gray(`
|
|
42
|
-
console.log(chalk.gray(`
|
|
136
|
+
const authMethod = config.shellApiKey ? 'API Key' : 'Solana Wallet';
|
|
137
|
+
console.log(chalk.gray(` Oracle: ${config.oracleUrl}`));
|
|
138
|
+
console.log(chalk.gray(` Auth: ${authMethod}`));
|
|
139
|
+
console.log(chalk.gray(` LLM: ${config.llmProvider} (${config.llmModel})`));
|
|
140
|
+
console.log(chalk.gray(` Mode: ${config.executionMode}`));
|
|
43
141
|
console.log();
|
|
44
142
|
// Authenticate
|
|
45
143
|
const authSpinner = ora('Authenticating with Oracle...').start();
|
|
46
144
|
let token;
|
|
47
145
|
let user;
|
|
48
146
|
try {
|
|
49
|
-
const result = await
|
|
147
|
+
const result = await autoAuthenticate(config, opts.referral);
|
|
50
148
|
token = result.token;
|
|
51
149
|
user = result.user;
|
|
52
|
-
|
|
150
|
+
const identity = user.agentName || (user.walletAddress ? `${user.walletAddress.slice(0, 8)}...` : 'unknown');
|
|
151
|
+
authSpinner.succeed(`Authenticated as ${chalk.green(identity)} | Tier: ${chalk.yellow(user.tier)} | Points: ${chalk.cyan(user.shellPoints)}`);
|
|
53
152
|
console.log(chalk.gray(` Your referral code: ${user.referralCode}`));
|
|
54
153
|
}
|
|
55
154
|
catch (err) {
|
|
@@ -57,7 +156,7 @@ program
|
|
|
57
156
|
process.exit(1);
|
|
58
157
|
}
|
|
59
158
|
console.log();
|
|
60
|
-
console.log(chalk.green('Mining started. Press Ctrl+C to stop.'));
|
|
159
|
+
console.log(chalk.green(' Mining started.'), chalk.gray('Press Ctrl+C to stop.'));
|
|
61
160
|
console.log();
|
|
62
161
|
// Mining loop
|
|
63
162
|
let totalTasks = 0;
|
|
@@ -74,119 +173,132 @@ program
|
|
|
74
173
|
}
|
|
75
174
|
const isLocalCompute = task.executionMode === 'local_compute';
|
|
76
175
|
const modeTag = isLocalCompute ? chalk.magenta('[LOCAL]') : chalk.blue('[SANDBOX]');
|
|
77
|
-
pollSpinner.succeed(`${modeTag} Task
|
|
78
|
-
//
|
|
79
|
-
// local_only: only handle local_compute tasks; skip sandbox_verified tasks
|
|
80
|
-
// sandbox_only: only handle sandbox_verified tasks; skip local_compute tasks
|
|
81
|
-
// auto (default): handle whatever the server sends
|
|
176
|
+
pollSpinner.succeed(`${modeTag} Task: ${chalk.yellow(task.taskType)} | Chain: ${chalk.blue(task.targetChain)} | Difficulty: ${'★'.repeat(task.difficulty)} | Reward: ${chalk.cyan(task.rewardPoints)} pts`);
|
|
177
|
+
// Execution mode routing
|
|
82
178
|
if (config.executionMode === 'local_only' && !isLocalCompute) {
|
|
83
|
-
console.log(chalk.gray(' [local_only] Skipping sandbox task
|
|
179
|
+
console.log(chalk.gray(' [local_only] Skipping sandbox task...'));
|
|
84
180
|
await sleep(config.pollingIntervalMs);
|
|
85
181
|
continue;
|
|
86
182
|
}
|
|
87
183
|
if (config.executionMode === 'sandbox_only' && isLocalCompute) {
|
|
88
|
-
console.log(chalk.gray(' [sandbox_only] Skipping local_compute task
|
|
184
|
+
console.log(chalk.gray(' [sandbox_only] Skipping local_compute task...'));
|
|
89
185
|
await sleep(config.pollingIntervalMs);
|
|
90
186
|
continue;
|
|
91
187
|
}
|
|
92
188
|
let result;
|
|
93
189
|
if (isLocalCompute) {
|
|
94
|
-
// ── Local Compute Path ──
|
|
95
190
|
result = await handleLocalCompute(config, token, task);
|
|
96
191
|
}
|
|
97
192
|
else {
|
|
98
|
-
// ── Sandbox Verified Path (original flow) ──
|
|
99
193
|
result = await handleSandboxVerified(config, token, task);
|
|
100
194
|
}
|
|
101
195
|
totalTasks++;
|
|
102
196
|
if (result.result === 'success') {
|
|
103
197
|
totalSuccess++;
|
|
104
198
|
totalPoints += result.pointsAwarded ?? 0;
|
|
105
|
-
console.log(chalk.green(` Attack successful! +${result.pointsAwarded}
|
|
199
|
+
console.log(chalk.green(` ✓ Attack successful! +${result.pointsAwarded} pts`));
|
|
106
200
|
}
|
|
107
201
|
else if (result.result === 'slashed') {
|
|
108
|
-
console.log(chalk.red(` SLASHED! ${result.message}`));
|
|
202
|
+
console.log(chalk.red(` ✗ SLASHED! ${result.message}`));
|
|
109
203
|
}
|
|
110
204
|
else if (result.result === 'failed') {
|
|
111
|
-
console.log(chalk.red(` Failed: ${result.message}`));
|
|
205
|
+
console.log(chalk.red(` ✗ Failed: ${result.message}`));
|
|
112
206
|
}
|
|
113
207
|
else {
|
|
114
|
-
const spotTag = result.spotCheckSelected ? chalk.yellow(' [spot-check]') : '';
|
|
115
|
-
console.log(chalk.gray(` Submitted for verification.${spotTag}
|
|
208
|
+
const spotTag = result.spotCheckSelected ? chalk.yellow(' [spot-check pending]') : '';
|
|
209
|
+
console.log(chalk.gray(` ~ Submitted for verification.${spotTag}`));
|
|
116
210
|
}
|
|
117
|
-
// Stats
|
|
118
211
|
const rate = totalTasks > 0 ? (totalSuccess / totalTasks * 100).toFixed(1) : '0.0';
|
|
119
|
-
console.log(chalk.gray(` [Stats] Tasks: ${totalTasks} | Success: ${totalSuccess} (${rate}%) |
|
|
212
|
+
console.log(chalk.gray(` [Stats] Tasks: ${totalTasks} | Success: ${totalSuccess} (${rate}%) | Total pts: ${totalPoints}`));
|
|
120
213
|
console.log();
|
|
121
214
|
}
|
|
122
215
|
catch (err) {
|
|
123
216
|
pollSpinner.fail(`Error: ${err instanceof Error ? err.message : 'Unknown'}`);
|
|
124
|
-
if (err instanceof Error && (err.message.includes('Token expired') || err.message.includes('re-authenticate'))) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
217
|
+
if (err instanceof Error && (err.message.includes('Token expired') || err.message.includes('re-authenticate') || err.message.includes('Invalid or expired'))) {
|
|
218
|
+
if (config.walletPrivateKey) {
|
|
219
|
+
console.log(chalk.yellow(' Re-authenticating...'));
|
|
220
|
+
try {
|
|
221
|
+
const result = await autoAuthenticate(config, opts.referral);
|
|
222
|
+
token = result.token;
|
|
223
|
+
console.log(chalk.green(' Re-authenticated successfully'));
|
|
224
|
+
}
|
|
225
|
+
catch (authErr) {
|
|
226
|
+
console.error(chalk.red(` Re-auth failed: ${authErr instanceof Error ? authErr.message : 'Unknown'}`));
|
|
227
|
+
}
|
|
134
228
|
}
|
|
135
229
|
}
|
|
136
230
|
}
|
|
137
231
|
await sleep(config.pollingIntervalMs);
|
|
138
232
|
}
|
|
139
233
|
});
|
|
140
|
-
|
|
234
|
+
// ── Status command ────────────────────────────────────────────────────────────
|
|
235
|
+
program
|
|
236
|
+
.command('status')
|
|
237
|
+
.description('Check your mining stats')
|
|
238
|
+
.action(async () => {
|
|
239
|
+
const config = loadConfig();
|
|
240
|
+
const errors = validateConfig(config);
|
|
241
|
+
if (errors.length > 0) {
|
|
242
|
+
console.error(chalk.red('Configuration error — run `setup` first.'));
|
|
243
|
+
process.exit(1);
|
|
244
|
+
}
|
|
245
|
+
const spinner = ora('Fetching stats...').start();
|
|
246
|
+
try {
|
|
247
|
+
const { token, user } = await autoAuthenticate(config);
|
|
248
|
+
const res = await fetch(`${config.oracleUrl}/leaderboard/me`, {
|
|
249
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
250
|
+
});
|
|
251
|
+
const data = await res.json();
|
|
252
|
+
spinner.stop();
|
|
253
|
+
const identity = user.agentName || (user.walletAddress ? `${user.walletAddress.slice(0, 8)}...` : 'Agent');
|
|
254
|
+
console.log();
|
|
255
|
+
console.log(chalk.cyan('$SHELL Miner Status'));
|
|
256
|
+
console.log(chalk.gray('─'.repeat(40)));
|
|
257
|
+
console.log(chalk.white(' Identity: '), chalk.green(identity));
|
|
258
|
+
console.log(chalk.white(' Tier: '), chalk.yellow(String(data.tier ?? user.tier)));
|
|
259
|
+
console.log(chalk.white(' Points: '), chalk.cyan(String(data.shellPoints ?? user.shellPoints)));
|
|
260
|
+
console.log(chalk.white(' Success: '), String(data.totalSuccessfulAttacks ?? '—'), '/', String(data.totalTasksCompleted ?? '—'));
|
|
261
|
+
console.log(chalk.white(' Rate: '), String(data.successRate ?? '—'));
|
|
262
|
+
console.log(chalk.white(' Referral: '), String(data.referralCode ?? user.referralCode));
|
|
263
|
+
console.log();
|
|
264
|
+
}
|
|
265
|
+
catch (err) {
|
|
266
|
+
spinner.fail(`Failed: ${err instanceof Error ? err.message : 'Unknown error'}`);
|
|
267
|
+
process.exit(1);
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
// ── Prevent silent crashes ────────────────────────────────────────────────────
|
|
271
|
+
process.on('unhandledRejection', (err) => {
|
|
272
|
+
console.error(chalk.red('Unhandled error:'), err);
|
|
273
|
+
});
|
|
274
|
+
program.parse();
|
|
275
|
+
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
141
276
|
async function handleLocalCompute(config, token, task) {
|
|
142
|
-
// 1. Generate attack payload
|
|
143
277
|
const genSpinner = ora('Generating attack payload...').start();
|
|
144
278
|
const { systemPrompt, userPrompt } = buildPrompts(task);
|
|
145
279
|
const payloadResponse = await generatePayload(config, systemPrompt, userPrompt);
|
|
146
280
|
const payload = payloadResponse.text;
|
|
147
281
|
genSpinner.succeed(`Payload generated (${payloadResponse.tokensUsed.input + payloadResponse.tokensUsed.output} tokens)`);
|
|
148
|
-
// 2. Execute locally against mock agent
|
|
149
282
|
const execSpinner = ora('Executing locally against target agent...').start();
|
|
150
283
|
const executionResult = await executeLocally(config, task.targetAgentProfile, payload, task.mockToolDefinitions);
|
|
151
284
|
const totalTokens = executionResult.tokensUsed.input + executionResult.tokensUsed.output;
|
|
152
|
-
execSpinner.succeed(`Local execution
|
|
153
|
-
|
|
154
|
-
const subSpinner = ora('Submitting structured result...').start();
|
|
285
|
+
execSpinner.succeed(`Local execution: ${executionResult.actionLog.length} actions, ${executionResult.rounds} rounds, ${totalTokens} tokens`);
|
|
286
|
+
const subSpinner = ora('Submitting result...').start();
|
|
155
287
|
const body = buildSubmissionBody(task.id, payload, task.challengeNonce, executionResult, config);
|
|
156
288
|
const result = await submitLocalComputeResult(config, token, body);
|
|
157
289
|
subSpinner.stop();
|
|
158
290
|
return result;
|
|
159
291
|
}
|
|
160
|
-
/** Handle sandbox_verified task: payload → submit for server-side sandbox verification */
|
|
161
292
|
async function handleSandboxVerified(config, token, task) {
|
|
162
|
-
const genSpinner = ora('Generating attack payload
|
|
293
|
+
const genSpinner = ora('Generating attack payload...').start();
|
|
163
294
|
const { systemPrompt, userPrompt } = buildPrompts(task);
|
|
164
295
|
const response = await generatePayload(config, systemPrompt, userPrompt);
|
|
165
|
-
genSpinner.succeed(`Payload generated (${response.tokensUsed.input + response.tokensUsed.output} tokens
|
|
166
|
-
const subSpinner = ora('Submitting
|
|
296
|
+
genSpinner.succeed(`Payload generated (${response.tokensUsed.input + response.tokensUsed.output} tokens)`);
|
|
297
|
+
const subSpinner = ora('Submitting to Oracle sandbox...').start();
|
|
167
298
|
const result = await submitPayload(config, token, task.id, response.text);
|
|
168
299
|
subSpinner.stop();
|
|
169
300
|
return result;
|
|
170
301
|
}
|
|
171
|
-
program
|
|
172
|
-
.command('status')
|
|
173
|
-
.description('Check your mining stats')
|
|
174
|
-
.action(async () => {
|
|
175
|
-
const config = loadConfig();
|
|
176
|
-
const { token } = await authenticate(config);
|
|
177
|
-
const res = await fetch(`${config.oracleUrl}/leaderboard/me`, {
|
|
178
|
-
headers: { Authorization: `Bearer ${token}` },
|
|
179
|
-
});
|
|
180
|
-
const data = await res.json();
|
|
181
|
-
console.log(chalk.cyan('\n$SHELL Mining Status:'));
|
|
182
|
-
console.log(JSON.stringify(data, null, 2));
|
|
183
|
-
});
|
|
184
|
-
// Prevent silent crashes
|
|
185
|
-
process.on('unhandledRejection', (err) => {
|
|
186
|
-
console.error(chalk.red('Unhandled error:'), err);
|
|
187
|
-
});
|
|
188
|
-
program.parse();
|
|
189
|
-
// ── Helpers ──
|
|
190
302
|
function buildPrompts(task) {
|
|
191
303
|
const profile = task.targetAgentProfile;
|
|
192
304
|
const taskInfo = {
|
|
@@ -198,20 +310,11 @@ function buildPrompts(task) {
|
|
|
198
310
|
};
|
|
199
311
|
switch (task.taskType) {
|
|
200
312
|
case 'token_injection':
|
|
201
|
-
return {
|
|
202
|
-
systemPrompt: tier1.SYSTEM_PROMPT,
|
|
203
|
-
userPrompt: tier1.buildUserPrompt(taskInfo),
|
|
204
|
-
};
|
|
313
|
+
return { systemPrompt: tier1.SYSTEM_PROMPT, userPrompt: tier1.buildUserPrompt(taskInfo) };
|
|
205
314
|
case 'social_engineering':
|
|
206
|
-
return {
|
|
207
|
-
systemPrompt: tier2.SYSTEM_PROMPT,
|
|
208
|
-
userPrompt: tier2.buildUserPrompt(taskInfo),
|
|
209
|
-
};
|
|
315
|
+
return { systemPrompt: tier2.SYSTEM_PROMPT, userPrompt: tier2.buildUserPrompt(taskInfo) };
|
|
210
316
|
case 'memory_poisoning':
|
|
211
|
-
return {
|
|
212
|
-
systemPrompt: tier3.SYSTEM_PROMPT,
|
|
213
|
-
userPrompt: tier3.buildUserPrompt(taskInfo),
|
|
214
|
-
};
|
|
317
|
+
return { systemPrompt: tier3.SYSTEM_PROMPT, userPrompt: tier3.buildUserPrompt(taskInfo) };
|
|
215
318
|
case 'full_chain':
|
|
216
319
|
default:
|
|
217
320
|
return {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openshell-cc/miner-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Mine $SHELL by red-teaming AI agents",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/
|
|
8
|
+
"url": "git+https://github.com/openshell-cc/shell-protocol.git",
|
|
9
9
|
"directory": "packages/miner-cli"
|
|
10
10
|
},
|
|
11
11
|
"files": [
|