@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.
@@ -241,7 +241,7 @@ import "./chunk-77SWBATH.js";
241
241
  import "./chunk-7LGHVVIJ.js";
242
242
  import {
243
243
  Transaction
244
- } from "./chunk-KHIL2KNW.js";
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-I4SGZLVD.js.map
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
- descriptor,
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-RN7Z6TWD.js";
69
+ } from "./chunk-FM4762OE.js";
78
70
  import "./chunk-V7PXDEKG.js";
79
- import "./chunk-KHIL2KNW.js";
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
- descriptor3 as cetusDescriptor,
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
- descriptor2 as naviDescriptor,
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
- descriptor4 as suilendDescriptor,
135
+ suilendDescriptor,
152
136
  throwIfSimulationFailed,
153
137
  truncateAddress,
154
138
  usdcToRaw,
155
139
  validateAddress,
156
140
  walletExists
157
141
  };
158
- //# sourceMappingURL=dist-G5YKLWC5.js.map
142
+ //# sourceMappingURL=dist-LKHCKFGY.js.map
@@ -8,9 +8,9 @@ import {
8
8
  ZodOptional,
9
9
  external_exports,
10
10
  objectType
11
- } from "./chunk-RN7Z6TWD.js";
11
+ } from "./chunk-FM4762OE.js";
12
12
  import "./chunk-V7PXDEKG.js";
13
- import "./chunk-KHIL2KNW.js";
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, gift cards, print-on-demand
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
- RELOADLY GIFT CARDS:
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 gift cards/commerce.")
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-FDS4MNUV.js.map
18704
+ //# sourceMappingURL=dist-ZTFOTMJO.js.map