@t2000/cli 0.22.23 → 0.22.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -10
- package/dist/{chunk-RN7Z6TWD.js → chunk-FM4762OE.js} +108 -306
- package/dist/chunk-FM4762OE.js.map +1 -0
- package/dist/{chunk-KHIL2KNW.js → chunk-XOAZJ42V.js} +32 -32
- package/dist/{chunk-KHIL2KNW.js.map → chunk-XOAZJ42V.js.map} +1 -1
- package/dist/{client-I4SGZLVD.js → client-CK5OR2TP.js} +2 -2
- package/dist/{dist-G5YKLWC5.js → dist-LKHCKFGY.js} +9 -25
- package/dist/{dist-FDS4MNUV.js → dist-ZTFOTMJO.js} +6 -113
- package/dist/{dist-FDS4MNUV.js.map → dist-ZTFOTMJO.js.map} +1 -1
- package/dist/index.js +118 -272
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-RN7Z6TWD.js.map +0 -1
- /package/dist/{client-I4SGZLVD.js.map → client-CK5OR2TP.js.map} +0 -0
- /package/dist/{dist-G5YKLWC5.js.map → dist-LKHCKFGY.js.map} +0 -0
|
@@ -241,7 +241,7 @@ import "./chunk-77SWBATH.js";
|
|
|
241
241
|
import "./chunk-7LGHVVIJ.js";
|
|
242
242
|
import {
|
|
243
243
|
Transaction
|
|
244
|
-
} from "./chunk-
|
|
244
|
+
} from "./chunk-XOAZJ42V.js";
|
|
245
245
|
import "./chunk-3XUF7GM3.js";
|
|
246
246
|
import {
|
|
247
247
|
__export
|
|
@@ -743,4 +743,4 @@ export {
|
|
|
743
743
|
sui,
|
|
744
744
|
suiCharge
|
|
745
745
|
};
|
|
746
|
-
//# sourceMappingURL=client-
|
|
746
|
+
//# sourceMappingURL=client-CK5OR2TP.js.map
|
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
PERPS_MARKETS,
|
|
20
20
|
PortfolioManager,
|
|
21
21
|
ProtocolRegistry,
|
|
22
|
-
SENTINEL,
|
|
23
22
|
STABLE_ASSETS,
|
|
24
23
|
SUI_DECIMALS,
|
|
25
24
|
SUPPORTED_ASSETS,
|
|
@@ -33,12 +32,8 @@ import {
|
|
|
33
32
|
ZkLoginSigner,
|
|
34
33
|
addCollectFeeToTx,
|
|
35
34
|
allDescriptors,
|
|
36
|
-
attack,
|
|
37
35
|
calculateFee,
|
|
38
|
-
|
|
39
|
-
descriptor2,
|
|
40
|
-
descriptor3,
|
|
41
|
-
descriptor4,
|
|
36
|
+
cetusDescriptor,
|
|
42
37
|
executeAutoTopUp,
|
|
43
38
|
executeWithGas,
|
|
44
39
|
exportPrivateKey,
|
|
@@ -51,32 +46,29 @@ import {
|
|
|
51
46
|
getGasStatus,
|
|
52
47
|
getPoolPrice,
|
|
53
48
|
getRates,
|
|
54
|
-
getSentinelInfo,
|
|
55
49
|
keypairFromPrivateKey,
|
|
56
|
-
listSentinels,
|
|
57
50
|
loadKey,
|
|
58
51
|
mapMoveAbortCode,
|
|
59
52
|
mapWalletError,
|
|
60
53
|
mistToSui,
|
|
54
|
+
naviDescriptor,
|
|
61
55
|
rawToStable,
|
|
62
56
|
rawToUsdc,
|
|
63
|
-
requestAttack,
|
|
64
57
|
saveKey,
|
|
65
|
-
settleAttack,
|
|
66
58
|
shouldAutoTopUp,
|
|
67
59
|
simulateTransaction,
|
|
68
60
|
solveHashcash,
|
|
69
61
|
stableToRaw,
|
|
70
|
-
submitPrompt,
|
|
71
62
|
suiToMist,
|
|
63
|
+
suilendDescriptor,
|
|
72
64
|
throwIfSimulationFailed,
|
|
73
65
|
truncateAddress,
|
|
74
66
|
usdcToRaw,
|
|
75
67
|
validateAddress,
|
|
76
68
|
walletExists
|
|
77
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-FM4762OE.js";
|
|
78
70
|
import "./chunk-V7PXDEKG.js";
|
|
79
|
-
import "./chunk-
|
|
71
|
+
import "./chunk-XOAZJ42V.js";
|
|
80
72
|
import "./chunk-3XUF7GM3.js";
|
|
81
73
|
import "./chunk-YPWSCLE3.js";
|
|
82
74
|
export {
|
|
@@ -99,7 +91,6 @@ export {
|
|
|
99
91
|
PERPS_MARKETS,
|
|
100
92
|
PortfolioManager,
|
|
101
93
|
ProtocolRegistry,
|
|
102
|
-
SENTINEL,
|
|
103
94
|
STABLE_ASSETS,
|
|
104
95
|
SUI_DECIMALS,
|
|
105
96
|
SUPPORTED_ASSETS,
|
|
@@ -114,7 +105,7 @@ export {
|
|
|
114
105
|
addCollectFeeToTx,
|
|
115
106
|
allDescriptors,
|
|
116
107
|
calculateFee,
|
|
117
|
-
|
|
108
|
+
cetusDescriptor,
|
|
118
109
|
executeAutoTopUp,
|
|
119
110
|
executeWithGas,
|
|
120
111
|
exportPrivateKey,
|
|
@@ -127,32 +118,25 @@ export {
|
|
|
127
118
|
getGasStatus,
|
|
128
119
|
getPoolPrice,
|
|
129
120
|
getRates,
|
|
130
|
-
getSentinelInfo,
|
|
131
121
|
keypairFromPrivateKey,
|
|
132
|
-
listSentinels,
|
|
133
122
|
loadKey,
|
|
134
123
|
mapMoveAbortCode,
|
|
135
124
|
mapWalletError,
|
|
136
125
|
mistToSui,
|
|
137
|
-
|
|
126
|
+
naviDescriptor,
|
|
138
127
|
rawToStable,
|
|
139
128
|
rawToUsdc,
|
|
140
|
-
requestAttack,
|
|
141
129
|
saveKey,
|
|
142
|
-
attack as sentinelAttack,
|
|
143
|
-
descriptor as sentinelDescriptor,
|
|
144
|
-
settleAttack,
|
|
145
130
|
shouldAutoTopUp,
|
|
146
131
|
simulateTransaction,
|
|
147
132
|
solveHashcash,
|
|
148
133
|
stableToRaw,
|
|
149
|
-
submitPrompt,
|
|
150
134
|
suiToMist,
|
|
151
|
-
|
|
135
|
+
suilendDescriptor,
|
|
152
136
|
throwIfSimulationFailed,
|
|
153
137
|
truncateAddress,
|
|
154
138
|
usdcToRaw,
|
|
155
139
|
validateAddress,
|
|
156
140
|
walletExists
|
|
157
141
|
};
|
|
158
|
-
//# sourceMappingURL=dist-
|
|
142
|
+
//# sourceMappingURL=dist-LKHCKFGY.js.map
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
ZodOptional,
|
|
9
9
|
external_exports,
|
|
10
10
|
objectType
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-FM4762OE.js";
|
|
12
12
|
import "./chunk-V7PXDEKG.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-XOAZJ42V.js";
|
|
14
14
|
import "./chunk-3XUF7GM3.js";
|
|
15
15
|
import {
|
|
16
16
|
__commonJS,
|
|
@@ -17185,11 +17185,10 @@ IMPORTANT: When the user asks to do something that matches an MPP service, ALWAY
|
|
|
17185
17185
|
- Image generation (fal.ai, Stability AI, DALL-E) \u2014 returns actual images
|
|
17186
17186
|
- Weather, maps, crypto prices, stock data, forex rates (ExchangeRate)
|
|
17187
17187
|
- Translation (DeepL, Google Translate)
|
|
17188
|
-
- Email, physical mail,
|
|
17188
|
+
- Email, physical mail, print-on-demand
|
|
17189
17189
|
- Code execution, web scraping, screenshots, PDFs, QR codes
|
|
17190
17190
|
- Transcription, text-to-speech, sound effects (ElevenLabs)
|
|
17191
17191
|
- Security scanning (VirusTotal), URL shortening (Short.io), push notifications (Pushover)
|
|
17192
|
-
- Gift cards with email delivery (Reloadly) \u2014 ask user for country and email, then browse products and order
|
|
17193
17192
|
|
|
17194
17193
|
Call t2000_services first to discover the right endpoint, then t2000_pay to execute.`,
|
|
17195
17194
|
{},
|
|
@@ -17204,45 +17203,6 @@ Call t2000_services first to discover the right endpoint, then t2000_pay to exec
|
|
|
17204
17203
|
}
|
|
17205
17204
|
}
|
|
17206
17205
|
);
|
|
17207
|
-
server.tool(
|
|
17208
|
-
"t2000_sentinel_list",
|
|
17209
|
-
"List active Sui Sentinels \u2014 AI agents with prize pools you can attack. Shows name, attack fee, prize pool, and attack count. Use this for bounty hunting.",
|
|
17210
|
-
{},
|
|
17211
|
-
async () => {
|
|
17212
|
-
try {
|
|
17213
|
-
const sentinels = await agent.sentinelList();
|
|
17214
|
-
const serializable = sentinels.map((s) => ({
|
|
17215
|
-
...s,
|
|
17216
|
-
attackFee: s.attackFee.toString(),
|
|
17217
|
-
attackFeeSui: Number(s.attackFee) / 1e9,
|
|
17218
|
-
prizePool: s.prizePool.toString(),
|
|
17219
|
-
prizePoolSui: Number(s.prizePool) / 1e9
|
|
17220
|
-
}));
|
|
17221
|
-
return { content: [{ type: "text", text: JSON.stringify(serializable) }] };
|
|
17222
|
-
} catch (err) {
|
|
17223
|
-
return errorResult(err);
|
|
17224
|
-
}
|
|
17225
|
-
}
|
|
17226
|
-
);
|
|
17227
|
-
server.tool(
|
|
17228
|
-
"t2000_sentinel_info",
|
|
17229
|
-
"Get detailed info about a specific Sui Sentinel \u2014 model, system prompt, prize pool, attack history. Use the sentinel ID or object ID from t2000_sentinel_list.",
|
|
17230
|
-
{ id: external_exports.string().describe("Sentinel agent ID or object ID") },
|
|
17231
|
-
async ({ id }) => {
|
|
17232
|
-
try {
|
|
17233
|
-
const s = await agent.sentinelInfo(id);
|
|
17234
|
-
return { content: [{ type: "text", text: JSON.stringify({
|
|
17235
|
-
...s,
|
|
17236
|
-
attackFee: s.attackFee.toString(),
|
|
17237
|
-
attackFeeSui: Number(s.attackFee) / 1e9,
|
|
17238
|
-
prizePool: s.prizePool.toString(),
|
|
17239
|
-
prizePoolSui: Number(s.prizePool) / 1e9
|
|
17240
|
-
}) }] };
|
|
17241
|
-
} catch (err) {
|
|
17242
|
-
return errorResult(err);
|
|
17243
|
-
}
|
|
17244
|
-
}
|
|
17245
|
-
);
|
|
17246
17206
|
server.tool(
|
|
17247
17207
|
"t2000_contacts",
|
|
17248
17208
|
"List saved contacts (name \u2192 address mappings). Use contact names with t2000_send instead of raw addresses. Use t2000_contact_add to save new contacts.",
|
|
@@ -17763,7 +17723,6 @@ Common examples:
|
|
|
17763
17723
|
- Stock quote: POST https://mpp.t2000.ai/alphavantage/v1/quote {"symbol":"AAPL"}
|
|
17764
17724
|
- Code exec: POST https://mpp.t2000.ai/judge0/v1/submissions {"source_code":"print(42)","language_id":71}
|
|
17765
17725
|
- Postcard: POST https://mpp.t2000.ai/lob/v1/postcards {"to":{...},"from":{...},"front":"...","back":"..."}
|
|
17766
|
-
- Gift card: POST https://mpp.t2000.ai/reloadly/v1/order {"productId":12345,"unitPrice":25,"countryCode":"US","recipientEmail":"user@email.com"}
|
|
17767
17726
|
- Flights: POST https://mpp.t2000.ai/serpapi/v1/flights {"departure_id":"LAX","arrival_id":"NRT","outbound_date":"2026-05-01","type":"2"}
|
|
17768
17727
|
- URL shorten: POST https://mpp.t2000.ai/shortio/v1/shorten {"url":"https://example.com"}
|
|
17769
17728
|
- Security scan: POST https://mpp.t2000.ai/virustotal/v1/scan {"url":"https://suspicious-site.com"}
|
|
@@ -17772,19 +17731,13 @@ Common examples:
|
|
|
17772
17731
|
- Mistral: POST https://mpp.t2000.ai/mistral/v1/chat/completions {"model":"mistral-large-latest","messages":[{"role":"user","content":"Hello"}]}
|
|
17773
17732
|
- Cohere: POST https://mpp.t2000.ai/cohere/v1/chat {"model":"command-r-plus","message":"Hello"}
|
|
17774
17733
|
|
|
17775
|
-
|
|
17776
|
-
- Ask the user for their country and email if not already known in the conversation.
|
|
17777
|
-
- First browse: POST /reloadly/v1/products {"countryCode":"AU"} to find the right productId for their country.
|
|
17778
|
-
- Then order: POST /reloadly/v1/order {"productId":XXXX,"unitPrice":25,"countryCode":"AU","recipientEmail":"user@email.com"}
|
|
17779
|
-
- Reloadly emails the gift card with a "Redeem Now" button.
|
|
17780
|
-
- Redemption links: Amazon https://www.amazon.com/gc/redeem?claimCode={code}, Google Play https://play.google.com/redeem?code={code}, others show code + redeemInstruction.concise.
|
|
17781
|
-
- Set maxPrice higher for gift cards (e.g. $50 for a $25 card to cover 5% markup).`,
|
|
17734
|
+
`,
|
|
17782
17735
|
{
|
|
17783
17736
|
url: external_exports.string().describe("Full URL of the MPP service endpoint (use t2000_services to discover available URLs)"),
|
|
17784
17737
|
method: external_exports.enum(["GET", "POST", "PUT", "DELETE"]).default("POST").describe("HTTP method (most services use POST)"),
|
|
17785
17738
|
body: external_exports.string().optional().describe("JSON request body (required for POST endpoints)"),
|
|
17786
17739
|
headers: external_exports.record(external_exports.string()).optional().describe("Additional HTTP headers"),
|
|
17787
|
-
maxPrice: external_exports.number().default(1).describe("Max USD to pay (default: $1.00). Set higher for
|
|
17740
|
+
maxPrice: external_exports.number().default(1).describe("Max USD to pay (default: $1.00). Set higher for commerce services.")
|
|
17788
17741
|
},
|
|
17789
17742
|
async ({ url, method, body, headers, maxPrice }) => {
|
|
17790
17743
|
try {
|
|
@@ -17814,24 +17767,6 @@ ${text}`;
|
|
|
17814
17767
|
}
|
|
17815
17768
|
}
|
|
17816
17769
|
);
|
|
17817
|
-
server.tool(
|
|
17818
|
-
"t2000_sentinel_attack",
|
|
17819
|
-
"Attack a Sui Sentinel with a prompt to try to breach its defenses and win the prize pool. Costs SUI (the attack fee). Use t2000_sentinel_list to find targets first.",
|
|
17820
|
-
{
|
|
17821
|
-
id: external_exports.string().describe("Sentinel agent ID or object ID to attack"),
|
|
17822
|
-
prompt: external_exports.string().describe("Your attack prompt \u2014 try to make the AI do something its system prompt forbids"),
|
|
17823
|
-
fee: external_exports.number().optional().describe("Override attack fee in SUI (default: sentinel's listed fee)")
|
|
17824
|
-
},
|
|
17825
|
-
async ({ id, prompt, fee }) => {
|
|
17826
|
-
try {
|
|
17827
|
-
const feeMist = fee ? BigInt(Math.round(fee * 1e9)) : void 0;
|
|
17828
|
-
const result = await mutex.run(() => agent.sentinelAttack(id, prompt, feeMist));
|
|
17829
|
-
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
17830
|
-
} catch (err) {
|
|
17831
|
-
return errorResult(err);
|
|
17832
|
-
}
|
|
17833
|
-
}
|
|
17834
|
-
);
|
|
17835
17770
|
server.tool(
|
|
17836
17771
|
"t2000_contact_add",
|
|
17837
17772
|
'Save a contact name \u2192 Sui address mapping. After saving, use the name with t2000_send instead of pasting addresses. Example: save "Tom" as 0x1234... then send to "Tom".',
|
|
@@ -18545,47 +18480,6 @@ ${context}
|
|
|
18545
18480
|
};
|
|
18546
18481
|
}
|
|
18547
18482
|
);
|
|
18548
|
-
server.prompt(
|
|
18549
|
-
"sentinel-hunt",
|
|
18550
|
-
"Browse sentinel bounties, pick the best target, and attack \u2014 guided bounty hunting workflow.",
|
|
18551
|
-
async () => ({
|
|
18552
|
-
messages: [{
|
|
18553
|
-
role: "user",
|
|
18554
|
-
content: {
|
|
18555
|
-
type: "text",
|
|
18556
|
-
text: [
|
|
18557
|
-
"You are a bounty hunting strategist for Sui Sentinel \u2014 a game where you try to jailbreak AI agents to win their prize pool.",
|
|
18558
|
-
"",
|
|
18559
|
-
"IMPORTANT: Call t2000_sentinel_list and t2000_balance in parallel.",
|
|
18560
|
-
"",
|
|
18561
|
-
"\u{1F3AF} SENTINEL BOUNTY HUNT",
|
|
18562
|
-
"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
|
|
18563
|
-
"",
|
|
18564
|
-
"Step 1 \u2014 Show the best targets:",
|
|
18565
|
-
" Rank sentinels by reward-to-fee ratio (prize pool \xF7 attack fee)",
|
|
18566
|
-
" Show top 5 targets in a table: Name | Fee | Prize Pool | Ratio | Attacks",
|
|
18567
|
-
" Highlight the best value target",
|
|
18568
|
-
"",
|
|
18569
|
-
"Step 2 \u2014 Recommend a target:",
|
|
18570
|
-
" Explain WHY this target is good (high ratio, fewer attempts = less refined defense)",
|
|
18571
|
-
" Show the attack fee and confirm the user can afford it",
|
|
18572
|
-
"",
|
|
18573
|
-
"Step 3 \u2014 Craft the attack:",
|
|
18574
|
-
" If the user picks a target, call t2000_sentinel_info to see its system prompt",
|
|
18575
|
-
" Help the user craft a jailbreak prompt based on the sentinel's system prompt",
|
|
18576
|
-
" Common techniques: role-play scenarios, hypotheticals, emotional appeals, format tricks",
|
|
18577
|
-
" WARNING: Never suggest harmful content \u2014 this is a game about creative prompt engineering",
|
|
18578
|
-
"",
|
|
18579
|
-
"Step 4 \u2014 Execute:",
|
|
18580
|
-
" Run t2000_sentinel_attack with the chosen id and prompt",
|
|
18581
|
-
" Show: score, win/lose, agent response, jury verdict, fee paid",
|
|
18582
|
-
" If they won: celebrate and show the prize!",
|
|
18583
|
-
" If they lost: analyze the response and suggest a different approach for next attempt"
|
|
18584
|
-
].join("\n")
|
|
18585
|
-
}
|
|
18586
|
-
}]
|
|
18587
|
-
})
|
|
18588
|
-
);
|
|
18589
18483
|
server.prompt(
|
|
18590
18484
|
"onboarding",
|
|
18591
18485
|
"New user setup guide \u2014 deposit, first save, set safeguards, explore features.",
|
|
@@ -18630,7 +18524,6 @@ ${context}
|
|
|
18630
18524
|
" - Rebalance \u2014 auto-optimize yield across protocols",
|
|
18631
18525
|
" - Borrow against savings",
|
|
18632
18526
|
" - Send money to contacts",
|
|
18633
|
-
" - Hunt sentinel bounties (jailbreak AI agents for prizes)",
|
|
18634
18527
|
" - Safeguards: per-tx limits, daily caps, emergency lock"
|
|
18635
18528
|
].join("\n")
|
|
18636
18529
|
}
|
|
@@ -18808,4 +18701,4 @@ async function startMcpServer(opts) {
|
|
|
18808
18701
|
export {
|
|
18809
18702
|
startMcpServer
|
|
18810
18703
|
};
|
|
18811
|
-
//# sourceMappingURL=dist-
|
|
18704
|
+
//# sourceMappingURL=dist-ZTFOTMJO.js.map
|