@openshell-cc/miner-cli 0.1.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/.env.example +36 -0
- package/README.md +123 -0
- package/dist/auth.d.ts +17 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +50 -0
- package/dist/auth.js.map +1 -0
- package/dist/config.d.ts +14 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +29 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +229 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/prompts/tier1-token-injection.d.ts +17 -0
- package/dist/llm/prompts/tier1-token-injection.d.ts.map +1 -0
- package/dist/llm/prompts/tier1-token-injection.js +37 -0
- package/dist/llm/prompts/tier1-token-injection.js.map +1 -0
- package/dist/llm/prompts/tier2-social-engineering.d.ts +16 -0
- package/dist/llm/prompts/tier2-social-engineering.d.ts.map +1 -0
- package/dist/llm/prompts/tier2-social-engineering.js +35 -0
- package/dist/llm/prompts/tier2-social-engineering.js.map +1 -0
- package/dist/llm/prompts/tier3-memory-poisoning.d.ts +15 -0
- package/dist/llm/prompts/tier3-memory-poisoning.d.ts.map +1 -0
- package/dist/llm/prompts/tier3-memory-poisoning.js +36 -0
- package/dist/llm/prompts/tier3-memory-poisoning.js.map +1 -0
- package/dist/llm/provider.d.ts +11 -0
- package/dist/llm/provider.d.ts.map +1 -0
- package/dist/llm/provider.js +59 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/local-sandbox/executor.d.ts +47 -0
- package/dist/local-sandbox/executor.d.ts.map +1 -0
- package/dist/local-sandbox/executor.js +197 -0
- package/dist/local-sandbox/executor.js.map +1 -0
- package/dist/local-sandbox/mock-tools.d.ts +136 -0
- package/dist/local-sandbox/mock-tools.d.ts.map +1 -0
- package/dist/local-sandbox/mock-tools.js +163 -0
- package/dist/local-sandbox/mock-tools.js.map +1 -0
- package/dist/local-sandbox/proof.d.ts +26 -0
- package/dist/local-sandbox/proof.d.ts.map +1 -0
- package/dist/local-sandbox/proof.js +64 -0
- package/dist/local-sandbox/proof.js.map +1 -0
- package/dist/poller.d.ts +46 -0
- package/dist/poller.d.ts.map +1 -0
- package/dist/poller.js +53 -0
- package/dist/poller.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Wallet & Tool Handlers for Local Execution
|
|
3
|
+
*
|
|
4
|
+
* Copied from sandbox/src/mock-server/wallet.ts (public code, no canaryActions).
|
|
5
|
+
* Simulates blockchain wallet operations — records intent without real transactions.
|
|
6
|
+
*/
|
|
7
|
+
export function createMockWallet(chain) {
|
|
8
|
+
const wallets = {
|
|
9
|
+
solana: {
|
|
10
|
+
chain: 'solana',
|
|
11
|
+
address: 'SimWa11et1111111111111111111111111111111111',
|
|
12
|
+
balances: { SOL: 5.0, USDC: 100.0 },
|
|
13
|
+
actionLog: [],
|
|
14
|
+
},
|
|
15
|
+
ethereum: {
|
|
16
|
+
chain: 'ethereum',
|
|
17
|
+
address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD0E',
|
|
18
|
+
balances: { ETH: 1.5, USDC: 500.0, USDT: 200.0 },
|
|
19
|
+
actionLog: [],
|
|
20
|
+
},
|
|
21
|
+
bsc: {
|
|
22
|
+
chain: 'bsc',
|
|
23
|
+
address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD0E',
|
|
24
|
+
balances: { BNB: 3.0, USDC: 300.0, BUSD: 150.0 },
|
|
25
|
+
actionLog: [],
|
|
26
|
+
},
|
|
27
|
+
base: {
|
|
28
|
+
chain: 'base',
|
|
29
|
+
address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD0E',
|
|
30
|
+
balances: { ETH: 0.5, USDC: 200.0 },
|
|
31
|
+
actionLog: [],
|
|
32
|
+
},
|
|
33
|
+
arbitrum: {
|
|
34
|
+
chain: 'arbitrum',
|
|
35
|
+
address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD0E',
|
|
36
|
+
balances: { ETH: 0.8, USDC: 400.0, ARB: 1000.0 },
|
|
37
|
+
actionLog: [],
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
return wallets[chain] ?? wallets.solana;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Build mock tool handlers that record all calls but never execute real transactions.
|
|
44
|
+
*/
|
|
45
|
+
export function buildMockToolHandlers(wallet) {
|
|
46
|
+
const record = (name, args) => {
|
|
47
|
+
wallet.actionLog.push({ name, arguments: args, timestamp: Date.now() });
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
// ── Trading operations ──
|
|
51
|
+
buy_token: (args) => {
|
|
52
|
+
record('buy_token', args);
|
|
53
|
+
return { success: true, txHash: '0xSIMULATED_BUY_TX', note: 'Simulated purchase' };
|
|
54
|
+
},
|
|
55
|
+
sell_token: (args) => {
|
|
56
|
+
record('sell_token', args);
|
|
57
|
+
return { success: true, txHash: '0xSIMULATED_SELL_TX', note: 'Simulated sale' };
|
|
58
|
+
},
|
|
59
|
+
swap_token: (args) => {
|
|
60
|
+
record('swap_token', args);
|
|
61
|
+
return { success: true, txHash: '0xSIMULATED_SWAP_TX' };
|
|
62
|
+
},
|
|
63
|
+
swap_uniswap: (args) => {
|
|
64
|
+
record('swap_uniswap', args);
|
|
65
|
+
return { success: true, txHash: '0xSIMULATED_UNISWAP_TX' };
|
|
66
|
+
},
|
|
67
|
+
// ── Transfer operations ──
|
|
68
|
+
transfer: (args) => {
|
|
69
|
+
record('transfer', args);
|
|
70
|
+
return { success: true, txHash: '0xSIMULATED_TRANSFER_TX' };
|
|
71
|
+
},
|
|
72
|
+
wallet_transfer: (args) => {
|
|
73
|
+
record('wallet_transfer', args);
|
|
74
|
+
return { success: true, txHash: '0xSIMULATED_WALLET_TRANSFER_TX' };
|
|
75
|
+
},
|
|
76
|
+
// ── Approval operations ──
|
|
77
|
+
approve_token: (args) => {
|
|
78
|
+
record('approve_token', args);
|
|
79
|
+
return { success: true, txHash: '0xSIMULATED_APPROVE_TX' };
|
|
80
|
+
},
|
|
81
|
+
// ── DeFi operations ──
|
|
82
|
+
supply_aave: (args) => {
|
|
83
|
+
record('supply_aave', args);
|
|
84
|
+
return { success: true, txHash: '0xSIMULATED_SUPPLY_TX' };
|
|
85
|
+
},
|
|
86
|
+
withdraw_aave: (args) => {
|
|
87
|
+
record('withdraw_aave', args);
|
|
88
|
+
return { success: true, txHash: '0xSIMULATED_WITHDRAW_TX' };
|
|
89
|
+
},
|
|
90
|
+
bridge_token: (args) => {
|
|
91
|
+
record('bridge_token', args);
|
|
92
|
+
return { success: true, txHash: '0xSIMULATED_BRIDGE_TX' };
|
|
93
|
+
},
|
|
94
|
+
// ── Token creation ──
|
|
95
|
+
create_token: (args) => {
|
|
96
|
+
record('create_token', args);
|
|
97
|
+
return { success: true, tokenAddress: '0xSIMULATED_TOKEN', note: 'Simulated creation' };
|
|
98
|
+
},
|
|
99
|
+
// ── System operations ──
|
|
100
|
+
install_skill: (args) => {
|
|
101
|
+
record('install_skill', args);
|
|
102
|
+
return { success: true, note: 'Simulated skill installation' };
|
|
103
|
+
},
|
|
104
|
+
execute_command: (args) => {
|
|
105
|
+
record('execute_command', args);
|
|
106
|
+
return { output: 'Simulated command output', exitCode: 0 };
|
|
107
|
+
},
|
|
108
|
+
send_message: (args) => {
|
|
109
|
+
record('send_message', args);
|
|
110
|
+
return { success: true, messageId: 'sim_msg_001' };
|
|
111
|
+
},
|
|
112
|
+
post_tweet: (args) => {
|
|
113
|
+
record('post_tweet', args);
|
|
114
|
+
return { success: true, tweetId: 'sim_tweet_001' };
|
|
115
|
+
},
|
|
116
|
+
// ── Read-only operations ──
|
|
117
|
+
check_balance: (_args) => {
|
|
118
|
+
record('check_balance', _args);
|
|
119
|
+
return { balances: wallet.balances };
|
|
120
|
+
},
|
|
121
|
+
check_portfolio: (_args) => {
|
|
122
|
+
record('check_portfolio', _args);
|
|
123
|
+
return { portfolio: wallet.balances, totalValueUSD: 1500 };
|
|
124
|
+
},
|
|
125
|
+
get_price: (args) => {
|
|
126
|
+
record('get_price', args);
|
|
127
|
+
return { price: 0.001234, change24h: '+5.2%' };
|
|
128
|
+
},
|
|
129
|
+
get_trending: (_args) => {
|
|
130
|
+
record('get_trending', _args);
|
|
131
|
+
return { tokens: [{ name: 'TestToken', price: 0.01 }] };
|
|
132
|
+
},
|
|
133
|
+
get_new_launches: (_args) => {
|
|
134
|
+
record('get_new_launches', _args);
|
|
135
|
+
return { launches: [] };
|
|
136
|
+
},
|
|
137
|
+
check_token_safety: (args) => {
|
|
138
|
+
record('check_token_safety', args);
|
|
139
|
+
return { safe: true, score: 85 };
|
|
140
|
+
},
|
|
141
|
+
analyze_contract: (args) => {
|
|
142
|
+
record('analyze_contract', args);
|
|
143
|
+
return { safe: true, issues: [] };
|
|
144
|
+
},
|
|
145
|
+
set_alert: (args) => {
|
|
146
|
+
record('set_alert', args);
|
|
147
|
+
return { success: true, alertId: 'alert_001' };
|
|
148
|
+
},
|
|
149
|
+
read_email: (_args) => {
|
|
150
|
+
record('read_email', _args);
|
|
151
|
+
return { emails: [{ from: 'user@example.com', subject: 'Test', body: 'Hello' }] };
|
|
152
|
+
},
|
|
153
|
+
read_timeline: (_args) => {
|
|
154
|
+
record('read_timeline', _args);
|
|
155
|
+
return { posts: [{ user: '@crypto_fan', text: 'Just bought some tokens!' }] };
|
|
156
|
+
},
|
|
157
|
+
browse_url: (args) => {
|
|
158
|
+
record('browse_url', args);
|
|
159
|
+
return { title: 'Simulated Page', content: 'Page content here' };
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=mock-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-tools.js","sourceRoot":"","sources":["../../src/local-sandbox/mock-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Proof Module
|
|
3
|
+
*
|
|
4
|
+
* Computes execution hash and builds the structured submission body
|
|
5
|
+
* for local_compute mode. Hash algorithm matches server-side
|
|
6
|
+
* (proof-validator.ts:computeExecutionHash).
|
|
7
|
+
*/
|
|
8
|
+
import type { LocalExecutionResult } from './executor.js';
|
|
9
|
+
export interface ActionLogEntry {
|
|
10
|
+
name: string;
|
|
11
|
+
arguments: Record<string, unknown>;
|
|
12
|
+
order: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Compute SHA-256 execution hash matching the server-side algorithm.
|
|
16
|
+
* canonical = JSON.stringify({ payload, actionLog: sorted by order, agentResponseHash })
|
|
17
|
+
*/
|
|
18
|
+
export declare function computeExecutionHash(payload: string, actionLog: ActionLogEntry[], agentResponse: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Build the full submission body for local_compute tasks.
|
|
21
|
+
*/
|
|
22
|
+
export declare function buildSubmissionBody(taskId: string, payload: string, challengeNonce: string, executionResult: LocalExecutionResult, config: {
|
|
23
|
+
llmProvider: string;
|
|
24
|
+
llmModel: string;
|
|
25
|
+
}): Record<string, unknown>;
|
|
26
|
+
//# sourceMappingURL=proof.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof.d.ts","sourceRoot":"","sources":["../../src/local-sandbox/proof.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,cAAc,EAAE,EAC3B,aAAa,EAAE,MAAM,GACpB,MAAM,CAWR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,oBAAoB,EACrC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0CzB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Proof Module
|
|
3
|
+
*
|
|
4
|
+
* Computes execution hash and builds the structured submission body
|
|
5
|
+
* for local_compute mode. Hash algorithm matches server-side
|
|
6
|
+
* (proof-validator.ts:computeExecutionHash).
|
|
7
|
+
*/
|
|
8
|
+
import { createHash } from 'node:crypto';
|
|
9
|
+
/**
|
|
10
|
+
* Compute SHA-256 execution hash matching the server-side algorithm.
|
|
11
|
+
* canonical = JSON.stringify({ payload, actionLog: sorted by order, agentResponseHash })
|
|
12
|
+
*/
|
|
13
|
+
export function computeExecutionHash(payload, actionLog, agentResponse) {
|
|
14
|
+
const sortedLog = [...actionLog].sort((a, b) => a.order - b.order);
|
|
15
|
+
const agentResponseHash = createHash('sha256').update(agentResponse).digest('hex');
|
|
16
|
+
const canonical = JSON.stringify({
|
|
17
|
+
payload,
|
|
18
|
+
actionLog: sortedLog.map(a => ({ name: a.name, arguments: a.arguments, order: a.order })),
|
|
19
|
+
agentResponseHash,
|
|
20
|
+
});
|
|
21
|
+
return createHash('sha256').update(canonical).digest('hex');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Build the full submission body for local_compute tasks.
|
|
25
|
+
*/
|
|
26
|
+
export function buildSubmissionBody(taskId, payload, challengeNonce, executionResult, config) {
|
|
27
|
+
const executionHash = computeExecutionHash(payload, executionResult.actionLog, executionResult.agentResponse);
|
|
28
|
+
const totalTokens = executionResult.tokensUsed.input + executionResult.tokensUsed.output;
|
|
29
|
+
// Estimate cost (rough per-token pricing)
|
|
30
|
+
let estimatedCostUsd = totalTokens * 0.000003; // Default Haiku-level pricing
|
|
31
|
+
if (config.llmModel.includes('sonnet')) {
|
|
32
|
+
estimatedCostUsd = totalTokens * 0.000015;
|
|
33
|
+
}
|
|
34
|
+
else if (config.llmModel.includes('gpt-4o-mini')) {
|
|
35
|
+
estimatedCostUsd = totalTokens * 0.000001;
|
|
36
|
+
}
|
|
37
|
+
else if (config.llmModel.includes('deepseek')) {
|
|
38
|
+
estimatedCostUsd = totalTokens * 0.000002;
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
taskId,
|
|
42
|
+
payload,
|
|
43
|
+
executionMode: 'local_compute',
|
|
44
|
+
result: {
|
|
45
|
+
actionLog: executionResult.actionLog,
|
|
46
|
+
agentResponse: executionResult.agentResponse.slice(0, 5000),
|
|
47
|
+
modelUsed: executionResult.modelUsed,
|
|
48
|
+
tokensUsed: executionResult.tokensUsed,
|
|
49
|
+
executionTimeMs: executionResult.executionTimeMs,
|
|
50
|
+
rounds: executionResult.rounds,
|
|
51
|
+
},
|
|
52
|
+
proof: {
|
|
53
|
+
executionHash,
|
|
54
|
+
challengeNonce,
|
|
55
|
+
},
|
|
56
|
+
costMetrics: {
|
|
57
|
+
totalTokens,
|
|
58
|
+
estimatedCostUsd: Math.round(estimatedCostUsd * 1_000_000) / 1_000_000,
|
|
59
|
+
provider: config.llmProvider,
|
|
60
|
+
model: config.llmModel,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=proof.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof.js","sourceRoot":"","sources":["../../src/local-sandbox/proof.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AASxC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,SAA2B,EAC3B,aAAqB;IAErB,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;IAClE,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAElF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,OAAO;QACP,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACzF,iBAAiB;KAClB,CAAC,CAAA;IAEF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,OAAe,EACf,cAAsB,EACtB,eAAqC,EACrC,MAAiD;IAEjD,MAAM,aAAa,GAAG,oBAAoB,CACxC,OAAO,EACP,eAAe,CAAC,SAAS,EACzB,eAAe,CAAC,aAAa,CAC9B,CAAA;IAED,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAA;IAExF,0CAA0C;IAC1C,IAAI,gBAAgB,GAAG,WAAW,GAAG,QAAQ,CAAA,CAAC,8BAA8B;IAC5E,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,gBAAgB,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC3C,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACnD,gBAAgB,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC3C,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,gBAAgB,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC3C,CAAC;IAED,OAAO;QACL,MAAM;QACN,OAAO;QACP,aAAa,EAAE,eAAe;QAC9B,MAAM,EAAE;YACN,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;YAC3D,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,UAAU,EAAE,eAAe,CAAC,UAAU;YACtC,eAAe,EAAE,eAAe,CAAC,eAAe;YAChD,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B;QACD,KAAK,EAAE;YACL,aAAa;YACb,cAAc;SACf;QACD,WAAW,EAAE;YACX,WAAW;YACX,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,SAAS,CAAC,GAAG,SAAS;YACtE,QAAQ,EAAE,MAAM,CAAC,WAAW;YAC5B,KAAK,EAAE,MAAM,CAAC,QAAQ;SACvB;KACF,CAAA;AACH,CAAC"}
|
package/dist/poller.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { MinerConfig } from './config.js';
|
|
2
|
+
export interface TaskData {
|
|
3
|
+
id: string;
|
|
4
|
+
taskType: 'token_injection' | 'social_engineering' | 'memory_poisoning' | 'full_chain';
|
|
5
|
+
difficulty: number;
|
|
6
|
+
targetAgentProfile: {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
model: string;
|
|
10
|
+
systemPrompt: string;
|
|
11
|
+
targetChain: string;
|
|
12
|
+
availableTools: {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
parameters: Record<string, unknown>;
|
|
16
|
+
}[];
|
|
17
|
+
defenseLevel: string;
|
|
18
|
+
injectionSurface: string;
|
|
19
|
+
};
|
|
20
|
+
targetChain: string;
|
|
21
|
+
injectionSurface: string;
|
|
22
|
+
rewardPoints: number;
|
|
23
|
+
expiresAt: string | null;
|
|
24
|
+
executionMode?: 'sandbox_verified' | 'local_compute';
|
|
25
|
+
challengeNonce?: string;
|
|
26
|
+
mockToolDefinitions?: {
|
|
27
|
+
name: string;
|
|
28
|
+
description: string;
|
|
29
|
+
parameters: Record<string, unknown>;
|
|
30
|
+
}[];
|
|
31
|
+
}
|
|
32
|
+
/** Long-poll the Oracle for the next available task */
|
|
33
|
+
export declare function pollForTask(config: MinerConfig, token: string): Promise<TaskData | null>;
|
|
34
|
+
/** Submit a payload for a task (sandbox_verified path) */
|
|
35
|
+
export declare function submitPayload(config: MinerConfig, token: string, taskId: string, payload: string): Promise<SubmitResult>;
|
|
36
|
+
/** Submit a local_compute result with structured proof */
|
|
37
|
+
export declare function submitLocalComputeResult(config: MinerConfig, token: string, body: Record<string, unknown>): Promise<SubmitResult>;
|
|
38
|
+
export interface SubmitResult {
|
|
39
|
+
result: 'success' | 'submitted' | 'slashed' | 'failed';
|
|
40
|
+
message: string;
|
|
41
|
+
pointsAwarded?: number;
|
|
42
|
+
submissionId?: string;
|
|
43
|
+
slashedAmount?: number;
|
|
44
|
+
spotCheckSelected?: boolean;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=poller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../src/poller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,iBAAiB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,YAAY,CAAA;IACtF,UAAU,EAAE,MAAM,CAAA;IAClB,kBAAkB,EAAE;QAClB,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,EAAE,CAAA;QAC5F,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAExB,aAAa,CAAC,EAAE,kBAAkB,GAAG,eAAe,CAAA;IACpD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE,CAAA;CACnG;AAED,uDAAuD;AACvD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAc1B;AAED,0DAA0D;AAC1D,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAevB;AAED,0DAA0D;AAC1D,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,YAAY,CAAC,CAuBvB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAA;IACtD,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B"}
|
package/dist/poller.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** Long-poll the Oracle for the next available task */
|
|
2
|
+
export async function pollForTask(config, token) {
|
|
3
|
+
const res = await fetch(`${config.oracleUrl}/tasks/poll`, {
|
|
4
|
+
headers: {
|
|
5
|
+
Authorization: `Bearer ${token}`,
|
|
6
|
+
},
|
|
7
|
+
});
|
|
8
|
+
if (!res.ok) {
|
|
9
|
+
if (res.status === 401)
|
|
10
|
+
throw new Error('Token expired, re-authenticate');
|
|
11
|
+
throw new Error(`Poll failed: ${res.statusText}`);
|
|
12
|
+
}
|
|
13
|
+
const data = await res.json();
|
|
14
|
+
return data.task;
|
|
15
|
+
}
|
|
16
|
+
/** Submit a payload for a task (sandbox_verified path) */
|
|
17
|
+
export async function submitPayload(config, token, taskId, payload) {
|
|
18
|
+
const res = await fetch(`${config.oracleUrl}/tasks/submit`, {
|
|
19
|
+
method: 'POST',
|
|
20
|
+
headers: {
|
|
21
|
+
'Content-Type': 'application/json',
|
|
22
|
+
'Authorization': `Bearer ${token}`,
|
|
23
|
+
},
|
|
24
|
+
body: JSON.stringify({ taskId, payload }),
|
|
25
|
+
});
|
|
26
|
+
if (!res.ok) {
|
|
27
|
+
throw new Error(`Submit failed: ${res.statusText}`);
|
|
28
|
+
}
|
|
29
|
+
return res.json();
|
|
30
|
+
}
|
|
31
|
+
/** Submit a local_compute result with structured proof */
|
|
32
|
+
export async function submitLocalComputeResult(config, token, body) {
|
|
33
|
+
const res = await fetch(`${config.oracleUrl}/tasks/submit`, {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
headers: {
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
'Authorization': `Bearer ${token}`,
|
|
38
|
+
},
|
|
39
|
+
body: JSON.stringify(body),
|
|
40
|
+
});
|
|
41
|
+
if (res.status === 409) {
|
|
42
|
+
return {
|
|
43
|
+
result: 'submitted',
|
|
44
|
+
message: 'Duplicate submission — already submitted for this task.',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (!res.ok) {
|
|
48
|
+
const errBody = await res.text().catch(() => '');
|
|
49
|
+
throw new Error(`Submit failed (${res.status}): ${errBody}`);
|
|
50
|
+
}
|
|
51
|
+
return res.json();
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=poller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../src/poller.ts"],"names":[],"mappings":"AA0BA,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAmB,EACnB,KAAa;IAEb,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,aAAa,EAAE;QACxD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACzE,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA+B,CAAA;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAmB,EACnB,KAAa,EACb,MAAc,EACd,OAAe;IAEf,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,eAAe,EAAE;QAC1D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,UAAU,KAAK,EAAE;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;KAC1C,CAAC,CAAA;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,EAA2B,CAAA;AAC5C,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAmB,EACnB,KAAa,EACb,IAA6B;IAE7B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,eAAe,EAAE;QAC1D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,UAAU,KAAK,EAAE;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAA;IAEF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,yDAAyD;SACnE,CAAA;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAChD,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,EAA2B,CAAA;AAC5C,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openshell-cc/miner-cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Mine $SHELL by red-teaming AI agents",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/bidaiAI/shell-protocol.git",
|
|
9
|
+
"directory": "packages/miner-cli"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
".env.example",
|
|
14
|
+
"README.md"
|
|
15
|
+
],
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"bin": {
|
|
20
|
+
"shell-miner": "./dist/index.js",
|
|
21
|
+
"miner-cli": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"dev": "tsx src/index.ts",
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"start": "node dist/index.js"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"commander": "^13.1.0",
|
|
30
|
+
"@anthropic-ai/sdk": "^0.39.0",
|
|
31
|
+
"openai": "^4.80.0",
|
|
32
|
+
"tweetnacl": "^1.0.3",
|
|
33
|
+
"bs58": "^6.0.0",
|
|
34
|
+
"chalk": "^5.4.0",
|
|
35
|
+
"ora": "^8.2.0",
|
|
36
|
+
"dotenv": "^16.5.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"typescript": "^5.8.0",
|
|
40
|
+
"tsx": "^4.19.0",
|
|
41
|
+
"@types/node": "^22.0.0"
|
|
42
|
+
}
|
|
43
|
+
}
|