@openshell-cc/miner-cli 0.1.0 → 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 CHANGED
@@ -1,36 +1,41 @@
1
- # ── Required ──────────────────────────────────────────────────────────────────
1
+ # ── $SHELL Miner Configuration ────────────────────────────────────────────────
2
+ # Run `npx @openshell-cc/miner-cli setup` to configure interactively
2
3
 
3
- # $SHELL Oracle URL (production endpoint or self-hosted)
4
+ # Oracle endpoint (production)
4
5
  ORACLE_URL=https://oracle.openshell.cc
5
6
 
6
- # Solana wallet private key in base58 format (used to sign authentication)
7
- # Generate with: solana-keygen new --outfile miner-wallet.json
8
- WALLET_PRIVATE_KEY=
7
+ # ── Authentication (choose ONE) ───────────────────────────────────────────────
9
8
 
10
- # API key for your LLM provider (used to generate attack payloads)
11
- # For Anthropic: sk-ant-...
12
- # For OpenAI: sk-proj-...
13
- # For DeepSeek: your-deepseek-api-key
14
- LLM_API_KEY=
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 whatever the oracle sends (local_compute or sandbox_verified)
31
- # local_only — only accept local_compute tasks (requires your LLM to run locally)
32
- # sandbox_only — only accept sandbox_verified tasks (oracle runs the sandbox)
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 in milliseconds (default: 5000)
40
+ # How often to poll for new tasks (milliseconds)
36
41
  POLLING_INTERVAL_MS=5000
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ```bash
10
10
  # 1. 克隆仓库
11
- git clone https://github.com/bidaiAI/shell-protocol.git
11
+ git clone https://github.com/openshell-cc/shell-protocol.git
12
12
  cd shell-protocol
13
13
 
14
14
  # 2. 安装依赖(需要 pnpm)
package/dist/auth.d.ts CHANGED
@@ -1,17 +1,27 @@
1
1
  import type { MinerConfig } from './config.js';
2
- /** Derive public key (wallet address) from private key */
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
@@ -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,iDAAiD;AACjD,wBAAsB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACtF,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CACrG,CAAC,CA0CD"}
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 and get a JWT */
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
- return loginRes.json();
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;AAGvB,0DAA0D;AAC1D,MAAM,UAAU,gBAAgB,CAAC,gBAAwB;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;IAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AACvC,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,gBAAwB;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC/B,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAmB,EAAE,YAAqB;IAI3E,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE/D,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,aAAa,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;KACxC,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAwC,CAAA;IAEtF,uBAAuB;IACvB,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE/D,gBAAgB;IAChB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,aAAa,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;KACxE,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,QAAgB,CAAA;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuB,CAAA;YACtD,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAA;QACtB,CAAC;QACD,MAAM,CAAC;YACL,QAAQ,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAA;QAC7D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAGlB,CAAA;AACJ,CAAC"}
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
@@ -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,CAkBxC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAM5D"}
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-sonnet-4-6-20260320',
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 || 'http://localhost:3100',
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
- if (!config.walletPrivateKey)
22
- errors.push('WALLET_PRIVATE_KEY is required');
23
- if (!config.llmApiKey)
24
- errors.push('LLM_API_KEY (or ANTHROPIC_API_KEY) is required');
25
- if (!config.oracleUrl)
26
- errors.push('ORACLE_URL is required');
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
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AActB,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,4BAA4B;QACvC,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,eAAe;KAC1B,CAAA;IAED,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,uBAAuB;QAC5D,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;QACtD,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;IAC3B,IAAI,CAAC,MAAM,CAAC,gBAAgB;QAAE,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAC3E,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IACpF,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IAC5D,OAAO,MAAM,CAAA;AACf,CAAC"}
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 { loadConfig, validateConfig } from './config.js';
6
- import { authenticate } from './auth.js';
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.0');
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 => console.error(chalk.red(` - ${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(chalk.cyan(`
32
- ███████╗██╗ ██╗███████╗██╗ ██╗
33
- ██╔════╝██║ ██║██╔════╝██║ ██║
34
- ███████╗███████║█████╗ ██║ ██║
35
- ╚════██║██╔══██║██╔══╝ ██║ ██║
36
- ███████║██║ ██║███████╗███████╗███████╗
37
- ╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
38
- `));
134
+ console.log(BANNER);
39
135
  console.log(chalk.cyan(' Decentralized AI Red Team Network'));
40
- console.log(chalk.gray(` Oracle: ${config.oracleUrl}`));
41
- console.log(chalk.gray(` LLM: ${config.llmProvider} (${config.llmModel})`));
42
- console.log(chalk.gray(` Mode: ${config.executionMode}`));
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 authenticate(config, opts.referral);
147
+ const result = await autoAuthenticate(config, opts.referral);
50
148
  token = result.token;
51
149
  user = result.user;
52
- authSpinner.succeed(`Authenticated as ${chalk.green(user.walletAddress.slice(0, 8))}... | Tier: ${chalk.yellow(user.tier)} | Points: ${chalk.cyan(user.shellPoints)}`);
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 received: ${chalk.yellow(task.taskType)} | Chain: ${chalk.blue(task.targetChain)} | Difficulty: ${'*'.repeat(task.difficulty)} | Reward: ${chalk.cyan(task.rewardPoints)} pts`);
78
- // ── Execution mode routing ──
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 — waiting for local_compute 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 — waiting for sandbox 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} points`));
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} ${result.message}`));
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}%) | Points: ${totalPoints}`));
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
- console.log(chalk.yellow('Re-authenticating...'));
126
- try {
127
- const result = await authenticate(config, opts.referral);
128
- token = result.token;
129
- console.log(chalk.green('Re-authenticated successfully'));
130
- }
131
- catch (authErr) {
132
- console.error(chalk.red(`Re-auth failed: ${authErr instanceof Error ? authErr.message : 'Unknown'}`));
133
- console.log(chalk.yellow('Will retry on next cycle...'));
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
- /** Handle local_compute task: payload → local execution → hash/proof → structured submit */
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 done: ${executionResult.actionLog.length} actions, ${executionResult.rounds} rounds, ${totalTokens} tokens, ${executionResult.executionTimeMs}ms`);
153
- // 3. Build structured submission body with proof
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 with LLM...').start();
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 used)`);
166
- const subSpinner = ora('Submitting payload to Oracle...').start();
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.1.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": "https://github.com/bidaiAI/shell-protocol.git",
8
+ "url": "git+https://github.com/openshell-cc/shell-protocol.git",
9
9
  "directory": "packages/miner-cli"
10
10
  },
11
11
  "files": [
@@ -17,7 +17,6 @@
17
17
  "access": "public"
18
18
  },
19
19
  "bin": {
20
- "shell-miner": "./dist/index.js",
21
20
  "miner-cli": "./dist/index.js"
22
21
  },
23
22
  "scripts": {