cryptoclaw 1.0.4 → 1.0.5
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/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/entry.js +0 -0
- package/dist/index.js +0 -0
- package/dist/plugin-sdk/index.d.ts +31 -31
- package/extensions/blockchain/index.ts +1 -0
- package/extensions/blockchain/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/blockchain/node_modules/.bin/tsc +0 -0
- package/extensions/blockchain/node_modules/.bin/tsserver +0 -0
- package/extensions/blockchain/src/evm/tools/wallet-tools.ts +36 -0
- package/extensions/blockchain/src/wallet/key-guard.ts +1 -1
- package/extensions/copilot-proxy/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/diagnostics-otel/node_modules/.bin/acorn +0 -0
- package/extensions/diagnostics-otel/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/discord/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/imessage/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/memory-core/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +0 -0
- package/extensions/memory-lancedb/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/memory-lancedb/node_modules/.bin/openai +0 -0
- package/extensions/nostr/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/nostr/node_modules/.bin/tsc +0 -0
- package/extensions/nostr/node_modules/.bin/tsserver +0 -0
- package/extensions/signal/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/slack/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/telegram/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/voice-call/node_modules/.bin/cryptoclaw +0 -0
- package/extensions/whatsapp/node_modules/.bin/cryptoclaw +0 -0
- package/package.json +96 -70
- package/skills/tmux/scripts/find-sessions.sh +0 -0
- package/skills/tmux/scripts/wait-for-text.sh +0 -0
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
cdcdf9307dc3cdfd79beec2832d661c5c1c9cbbe1fd62cd0195fc1cb9d6d3adf
|
package/dist/entry.js
CHANGED
|
File without changes
|
package/dist/index.js
CHANGED
|
File without changes
|
|
@@ -6405,11 +6405,11 @@ declare const TelegramConfigSchema: z.ZodObject<{
|
|
|
6405
6405
|
name: z.ZodOptional<z.ZodString>;
|
|
6406
6406
|
capabilities: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodObject<{
|
|
6407
6407
|
inlineButtons: z.ZodOptional<z.ZodEnum<{
|
|
6408
|
-
allowlist: "allowlist";
|
|
6409
6408
|
off: "off";
|
|
6410
|
-
dm: "dm";
|
|
6411
|
-
group: "group";
|
|
6412
6409
|
all: "all";
|
|
6410
|
+
allowlist: "allowlist";
|
|
6411
|
+
group: "group";
|
|
6412
|
+
dm: "dm";
|
|
6413
6413
|
}>>;
|
|
6414
6414
|
}, z.core.$strict>]>>;
|
|
6415
6415
|
markdown: z.ZodOptional<z.ZodObject<{
|
|
@@ -6486,8 +6486,8 @@ declare const TelegramConfigSchema: z.ZodObject<{
|
|
|
6486
6486
|
}, z.core.$strict>>>>;
|
|
6487
6487
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
6488
6488
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
6489
|
-
length: "length";
|
|
6490
6489
|
newline: "newline";
|
|
6490
|
+
length: "length";
|
|
6491
6491
|
}>>;
|
|
6492
6492
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
6493
6493
|
draftChunk: z.ZodOptional<z.ZodObject<{
|
|
@@ -6533,8 +6533,8 @@ declare const TelegramConfigSchema: z.ZodObject<{
|
|
|
6533
6533
|
}>>;
|
|
6534
6534
|
reactionLevel: z.ZodOptional<z.ZodEnum<{
|
|
6535
6535
|
off: "off";
|
|
6536
|
-
ack: "ack";
|
|
6537
6536
|
minimal: "minimal";
|
|
6537
|
+
ack: "ack";
|
|
6538
6538
|
extensive: "extensive";
|
|
6539
6539
|
}>>;
|
|
6540
6540
|
heartbeat: z.ZodOptional<z.ZodObject<{
|
|
@@ -6548,11 +6548,11 @@ declare const TelegramConfigSchema: z.ZodObject<{
|
|
|
6548
6548
|
name: z.ZodOptional<z.ZodString>;
|
|
6549
6549
|
capabilities: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodObject<{
|
|
6550
6550
|
inlineButtons: z.ZodOptional<z.ZodEnum<{
|
|
6551
|
-
allowlist: "allowlist";
|
|
6552
6551
|
off: "off";
|
|
6553
|
-
dm: "dm";
|
|
6554
|
-
group: "group";
|
|
6555
6552
|
all: "all";
|
|
6553
|
+
allowlist: "allowlist";
|
|
6554
|
+
group: "group";
|
|
6555
|
+
dm: "dm";
|
|
6556
6556
|
}>>;
|
|
6557
6557
|
}, z.core.$strict>]>>;
|
|
6558
6558
|
markdown: z.ZodOptional<z.ZodObject<{
|
|
@@ -6629,8 +6629,8 @@ declare const TelegramConfigSchema: z.ZodObject<{
|
|
|
6629
6629
|
}, z.core.$strict>>>>;
|
|
6630
6630
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
6631
6631
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
6632
|
-
length: "length";
|
|
6633
6632
|
newline: "newline";
|
|
6633
|
+
length: "length";
|
|
6634
6634
|
}>>;
|
|
6635
6635
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
6636
6636
|
draftChunk: z.ZodOptional<z.ZodObject<{
|
|
@@ -6676,8 +6676,8 @@ declare const TelegramConfigSchema: z.ZodObject<{
|
|
|
6676
6676
|
}>>;
|
|
6677
6677
|
reactionLevel: z.ZodOptional<z.ZodEnum<{
|
|
6678
6678
|
off: "off";
|
|
6679
|
-
ack: "ack";
|
|
6680
6679
|
minimal: "minimal";
|
|
6680
|
+
ack: "ack";
|
|
6681
6681
|
extensive: "extensive";
|
|
6682
6682
|
}>>;
|
|
6683
6683
|
heartbeat: z.ZodOptional<z.ZodObject<{
|
|
@@ -6719,8 +6719,8 @@ declare const DiscordConfigSchema: z.ZodObject<{
|
|
|
6719
6719
|
}, z.core.$strict>>>>;
|
|
6720
6720
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
6721
6721
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
6722
|
-
length: "length";
|
|
6723
6722
|
newline: "newline";
|
|
6723
|
+
length: "length";
|
|
6724
6724
|
}>>;
|
|
6725
6725
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
6726
6726
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
@@ -6784,9 +6784,9 @@ declare const DiscordConfigSchema: z.ZodObject<{
|
|
|
6784
6784
|
deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6785
6785
|
}, z.core.$strict>>>>;
|
|
6786
6786
|
reactionNotifications: z.ZodOptional<z.ZodEnum<{
|
|
6787
|
-
allowlist: "allowlist";
|
|
6788
6787
|
off: "off";
|
|
6789
6788
|
all: "all";
|
|
6789
|
+
allowlist: "allowlist";
|
|
6790
6790
|
own: "own";
|
|
6791
6791
|
}>>;
|
|
6792
6792
|
users: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
@@ -6861,8 +6861,8 @@ declare const DiscordConfigSchema: z.ZodObject<{
|
|
|
6861
6861
|
}, z.core.$strict>>>>;
|
|
6862
6862
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
6863
6863
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
6864
|
-
length: "length";
|
|
6865
6864
|
newline: "newline";
|
|
6865
|
+
length: "length";
|
|
6866
6866
|
}>>;
|
|
6867
6867
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
6868
6868
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
@@ -6926,9 +6926,9 @@ declare const DiscordConfigSchema: z.ZodObject<{
|
|
|
6926
6926
|
deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6927
6927
|
}, z.core.$strict>>>>;
|
|
6928
6928
|
reactionNotifications: z.ZodOptional<z.ZodEnum<{
|
|
6929
|
-
allowlist: "allowlist";
|
|
6930
6929
|
off: "off";
|
|
6931
6930
|
all: "all";
|
|
6931
|
+
allowlist: "allowlist";
|
|
6932
6932
|
own: "own";
|
|
6933
6933
|
}>>;
|
|
6934
6934
|
users: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
@@ -7012,8 +7012,8 @@ declare const GoogleChatConfigSchema: z.ZodObject<{
|
|
|
7012
7012
|
}, z.core.$strict>>>>;
|
|
7013
7013
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7014
7014
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7015
|
-
length: "length";
|
|
7016
7015
|
newline: "newline";
|
|
7016
|
+
length: "length";
|
|
7017
7017
|
}>>;
|
|
7018
7018
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
7019
7019
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
@@ -7079,8 +7079,8 @@ declare const GoogleChatConfigSchema: z.ZodObject<{
|
|
|
7079
7079
|
}, z.core.$strict>>>>;
|
|
7080
7080
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7081
7081
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7082
|
-
length: "length";
|
|
7083
7082
|
newline: "newline";
|
|
7083
|
+
length: "length";
|
|
7084
7084
|
}>>;
|
|
7085
7085
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
7086
7086
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
@@ -7146,8 +7146,8 @@ declare const SlackConfigSchema: z.ZodObject<{
|
|
|
7146
7146
|
}, z.core.$strict>>>>;
|
|
7147
7147
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7148
7148
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7149
|
-
length: "length";
|
|
7150
7149
|
newline: "newline";
|
|
7150
|
+
length: "length";
|
|
7151
7151
|
}>>;
|
|
7152
7152
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
7153
7153
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
@@ -7157,9 +7157,9 @@ declare const SlackConfigSchema: z.ZodObject<{
|
|
|
7157
7157
|
}, z.core.$strict>>;
|
|
7158
7158
|
mediaMaxMb: z.ZodOptional<z.ZodNumber>;
|
|
7159
7159
|
reactionNotifications: z.ZodOptional<z.ZodEnum<{
|
|
7160
|
-
allowlist: "allowlist";
|
|
7161
7160
|
off: "off";
|
|
7162
7161
|
all: "all";
|
|
7162
|
+
allowlist: "allowlist";
|
|
7163
7163
|
own: "own";
|
|
7164
7164
|
}>>;
|
|
7165
7165
|
reactionAllowlist: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
@@ -7276,8 +7276,8 @@ declare const SlackConfigSchema: z.ZodObject<{
|
|
|
7276
7276
|
}, z.core.$strict>>>>;
|
|
7277
7277
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7278
7278
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7279
|
-
length: "length";
|
|
7280
7279
|
newline: "newline";
|
|
7280
|
+
length: "length";
|
|
7281
7281
|
}>>;
|
|
7282
7282
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
7283
7283
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
@@ -7287,9 +7287,9 @@ declare const SlackConfigSchema: z.ZodObject<{
|
|
|
7287
7287
|
}, z.core.$strict>>;
|
|
7288
7288
|
mediaMaxMb: z.ZodOptional<z.ZodNumber>;
|
|
7289
7289
|
reactionNotifications: z.ZodOptional<z.ZodEnum<{
|
|
7290
|
-
allowlist: "allowlist";
|
|
7291
7290
|
off: "off";
|
|
7292
7291
|
all: "all";
|
|
7292
|
+
allowlist: "allowlist";
|
|
7293
7293
|
own: "own";
|
|
7294
7294
|
}>>;
|
|
7295
7295
|
reactionAllowlist: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
@@ -7405,8 +7405,8 @@ declare const SignalConfigSchema: z.ZodObject<{
|
|
|
7405
7405
|
}, z.core.$strict>>>>;
|
|
7406
7406
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7407
7407
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7408
|
-
length: "length";
|
|
7409
7408
|
newline: "newline";
|
|
7409
|
+
length: "length";
|
|
7410
7410
|
}>>;
|
|
7411
7411
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
7412
7412
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
@@ -7416,9 +7416,9 @@ declare const SignalConfigSchema: z.ZodObject<{
|
|
|
7416
7416
|
}, z.core.$strict>>;
|
|
7417
7417
|
mediaMaxMb: z.ZodOptional<z.ZodNumber>;
|
|
7418
7418
|
reactionNotifications: z.ZodOptional<z.ZodEnum<{
|
|
7419
|
-
allowlist: "allowlist";
|
|
7420
7419
|
off: "off";
|
|
7421
7420
|
all: "all";
|
|
7421
|
+
allowlist: "allowlist";
|
|
7422
7422
|
own: "own";
|
|
7423
7423
|
}>>;
|
|
7424
7424
|
reactionAllowlist: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
@@ -7427,8 +7427,8 @@ declare const SignalConfigSchema: z.ZodObject<{
|
|
|
7427
7427
|
}, z.core.$strict>>;
|
|
7428
7428
|
reactionLevel: z.ZodOptional<z.ZodEnum<{
|
|
7429
7429
|
off: "off";
|
|
7430
|
-
ack: "ack";
|
|
7431
7430
|
minimal: "minimal";
|
|
7431
|
+
ack: "ack";
|
|
7432
7432
|
extensive: "extensive";
|
|
7433
7433
|
}>>;
|
|
7434
7434
|
heartbeat: z.ZodOptional<z.ZodObject<{
|
|
@@ -7480,8 +7480,8 @@ declare const SignalConfigSchema: z.ZodObject<{
|
|
|
7480
7480
|
}, z.core.$strict>>>>;
|
|
7481
7481
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7482
7482
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7483
|
-
length: "length";
|
|
7484
7483
|
newline: "newline";
|
|
7484
|
+
length: "length";
|
|
7485
7485
|
}>>;
|
|
7486
7486
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
7487
7487
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
@@ -7491,9 +7491,9 @@ declare const SignalConfigSchema: z.ZodObject<{
|
|
|
7491
7491
|
}, z.core.$strict>>;
|
|
7492
7492
|
mediaMaxMb: z.ZodOptional<z.ZodNumber>;
|
|
7493
7493
|
reactionNotifications: z.ZodOptional<z.ZodEnum<{
|
|
7494
|
-
allowlist: "allowlist";
|
|
7495
7494
|
off: "off";
|
|
7496
7495
|
all: "all";
|
|
7496
|
+
allowlist: "allowlist";
|
|
7497
7497
|
own: "own";
|
|
7498
7498
|
}>>;
|
|
7499
7499
|
reactionAllowlist: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
@@ -7502,8 +7502,8 @@ declare const SignalConfigSchema: z.ZodObject<{
|
|
|
7502
7502
|
}, z.core.$strict>>;
|
|
7503
7503
|
reactionLevel: z.ZodOptional<z.ZodEnum<{
|
|
7504
7504
|
off: "off";
|
|
7505
|
-
ack: "ack";
|
|
7506
7505
|
minimal: "minimal";
|
|
7506
|
+
ack: "ack";
|
|
7507
7507
|
extensive: "extensive";
|
|
7508
7508
|
}>>;
|
|
7509
7509
|
heartbeat: z.ZodOptional<z.ZodObject<{
|
|
@@ -7553,8 +7553,8 @@ declare const IMessageConfigSchema: z.ZodObject<{
|
|
|
7553
7553
|
mediaMaxMb: z.ZodOptional<z.ZodNumber>;
|
|
7554
7554
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7555
7555
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7556
|
-
length: "length";
|
|
7557
7556
|
newline: "newline";
|
|
7557
|
+
length: "length";
|
|
7558
7558
|
}>>;
|
|
7559
7559
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
7560
7560
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
@@ -7620,8 +7620,8 @@ declare const IMessageConfigSchema: z.ZodObject<{
|
|
|
7620
7620
|
mediaMaxMb: z.ZodOptional<z.ZodNumber>;
|
|
7621
7621
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7622
7622
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7623
|
-
length: "length";
|
|
7624
7623
|
newline: "newline";
|
|
7624
|
+
length: "length";
|
|
7625
7625
|
}>>;
|
|
7626
7626
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
7627
7627
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
@@ -7683,8 +7683,8 @@ declare const MSTeamsConfigSchema: z.ZodObject<{
|
|
|
7683
7683
|
}>>>;
|
|
7684
7684
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7685
7685
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7686
|
-
length: "length";
|
|
7687
7686
|
newline: "newline";
|
|
7687
|
+
length: "length";
|
|
7688
7688
|
}>>;
|
|
7689
7689
|
blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
|
|
7690
7690
|
minChars: z.ZodOptional<z.ZodNumber>;
|
|
@@ -7786,8 +7786,8 @@ declare const WhatsAppConfigSchema: z.ZodObject<{
|
|
|
7786
7786
|
}, z.core.$strict>>>>;
|
|
7787
7787
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7788
7788
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7789
|
-
length: "length";
|
|
7790
7789
|
newline: "newline";
|
|
7790
|
+
length: "length";
|
|
7791
7791
|
}>>;
|
|
7792
7792
|
mediaMaxMb: z.ZodOptional<z.ZodNumber>;
|
|
7793
7793
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -7858,8 +7858,8 @@ declare const WhatsAppConfigSchema: z.ZodObject<{
|
|
|
7858
7858
|
}, z.core.$strict>>>>;
|
|
7859
7859
|
textChunkLimit: z.ZodOptional<z.ZodNumber>;
|
|
7860
7860
|
chunkMode: z.ZodOptional<z.ZodEnum<{
|
|
7861
|
-
length: "length";
|
|
7862
7861
|
newline: "newline";
|
|
7862
|
+
length: "length";
|
|
7863
7863
|
}>>;
|
|
7864
7864
|
mediaMaxMb: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
7865
7865
|
blockStreaming: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -254,6 +254,7 @@ const blockchainPlugin: OpenClawPluginDefinition = {
|
|
|
254
254
|
'- Token transfer ("send USDT to 0x...") → call transfer_erc20',
|
|
255
255
|
'- Swap ("swap BNB for USDT") → call swap_execute',
|
|
256
256
|
"- Address security check → call check_address_security",
|
|
257
|
+
"- Wallet locked → ask user for passphrase, call wallet_unlock, then retry",
|
|
257
258
|
"All outbound transfers are auto security-checked against GoPlus before execution.",
|
|
258
259
|
"Do NOT hallucinate balances — always call the tool.",
|
|
259
260
|
);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -154,6 +154,42 @@ export function registerWalletTools(api: OpenClawPluginApi, walletManager: Walle
|
|
|
154
154
|
},
|
|
155
155
|
});
|
|
156
156
|
|
|
157
|
+
api.registerTool({
|
|
158
|
+
name: "wallet_unlock",
|
|
159
|
+
description:
|
|
160
|
+
"Unlock the active wallet by providing the passphrase. " +
|
|
161
|
+
"Call this when a transaction fails with 'Passphrase required to unlock wallet'. " +
|
|
162
|
+
"Ask the user for their passphrase in conversation, then call this tool.",
|
|
163
|
+
parameters: {
|
|
164
|
+
type: "object",
|
|
165
|
+
properties: {
|
|
166
|
+
passphrase: {
|
|
167
|
+
type: "string",
|
|
168
|
+
description: "The wallet encryption passphrase",
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
required: ["passphrase"],
|
|
172
|
+
},
|
|
173
|
+
async execute(params: { passphrase: string }) {
|
|
174
|
+
try {
|
|
175
|
+
await walletManager.getActivePrivateKey(params.passphrase);
|
|
176
|
+
return {
|
|
177
|
+
content: [
|
|
178
|
+
{
|
|
179
|
+
type: "text",
|
|
180
|
+
text: "Wallet unlocked successfully. You can now proceed with the transaction.",
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
};
|
|
184
|
+
} catch (err) {
|
|
185
|
+
const msg = err instanceof Error ? err.message : "Unknown error";
|
|
186
|
+
return {
|
|
187
|
+
content: [{ type: "text", text: `Failed to unlock wallet: ${msg}` }],
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
|
|
157
193
|
// wallet_export is NOT registered as an agent tool.
|
|
158
194
|
// Users must use `cryptoclaw wallet export <label>` in the terminal.
|
|
159
195
|
// This is the most critical security boundary — private keys must NEVER enter agent context.
|
|
@@ -72,7 +72,7 @@ export const KEY_GUARD_SYSTEM_PROMPT = `
|
|
|
72
72
|
[SECURITY — PRIVATE KEY PROTECTION]
|
|
73
73
|
CRITICAL RULES — violating these is a security incident:
|
|
74
74
|
1. NEVER output, display, repeat, or include a private key (0x + 64 hex chars) in ANY message
|
|
75
|
-
2.
|
|
75
|
+
2. If the wallet is locked (error: "Passphrase required to unlock wallet"), ask the user for their wallet passphrase and call wallet_unlock. After unlocking, retry the original operation.
|
|
76
76
|
3. If a user pastes a private key in chat, respond ONLY with: "For security, please use \`cryptoclaw wallet import\` in your terminal. Never share private keys in chat."
|
|
77
77
|
4. wallet_export and wallet_import are CLI-only — do NOT attempt to call them
|
|
78
78
|
5. For wallet creation: call wallet_create with just a label — the passphrase is prompted securely in the terminal
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cryptoclaw",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Private crypto AI assistant — wallet management, DeFi, NFTs, and multi-chain operations from your terminal",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,6 +27,76 @@
|
|
|
27
27
|
"./plugin-sdk": "./dist/plugin-sdk/index.js",
|
|
28
28
|
"./cli-entry": "./cryptoclaw.mjs"
|
|
29
29
|
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"android:assemble": "cd apps/android && ./gradlew :app:assembleDebug",
|
|
32
|
+
"android:install": "cd apps/android && ./gradlew :app:installDebug",
|
|
33
|
+
"android:run": "cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity",
|
|
34
|
+
"android:test": "cd apps/android && ./gradlew :app:testDebugUnitTest",
|
|
35
|
+
"build": "pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts",
|
|
36
|
+
"canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh",
|
|
37
|
+
"check": "pnpm tsgo && pnpm lint && pnpm format",
|
|
38
|
+
"check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500",
|
|
39
|
+
"cryptoclaw": "node scripts/run-node.mjs",
|
|
40
|
+
"cryptoclaw:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
41
|
+
"dev": "node scripts/run-node.mjs",
|
|
42
|
+
"docs:bin": "node scripts/build-docs-list.mjs",
|
|
43
|
+
"docs:build": "cd docs && pnpm dlx --reporter append-only mint broken-links",
|
|
44
|
+
"docs:dev": "cd docs && mint dev",
|
|
45
|
+
"docs:list": "node scripts/docs-list.js",
|
|
46
|
+
"format": "oxfmt --check",
|
|
47
|
+
"format:all": "pnpm format && pnpm format:swift",
|
|
48
|
+
"format:fix": "oxfmt --write",
|
|
49
|
+
"format:swift": "swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources",
|
|
50
|
+
"gateway:dev": "CRYPTOCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway",
|
|
51
|
+
"gateway:dev:reset": "CRYPTOCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset",
|
|
52
|
+
"gateway:watch": "node scripts/watch-node.mjs gateway --force",
|
|
53
|
+
"ios:build": "bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'",
|
|
54
|
+
"ios:gen": "cd apps/ios && xcodegen generate",
|
|
55
|
+
"ios:open": "cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj",
|
|
56
|
+
"ios:run": "bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'",
|
|
57
|
+
"lint": "oxlint --type-aware",
|
|
58
|
+
"lint:all": "pnpm lint && pnpm lint:swift",
|
|
59
|
+
"lint:fix": "oxlint --type-aware --fix && pnpm format:fix",
|
|
60
|
+
"lint:swift": "swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)",
|
|
61
|
+
"mac:open": "open dist/OpenClaw.app",
|
|
62
|
+
"mac:package": "bash scripts/package-mac-app.sh",
|
|
63
|
+
"mac:restart": "bash scripts/restart-mac.sh",
|
|
64
|
+
"moltbot:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
65
|
+
"plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
|
|
66
|
+
"prepack": "pnpm build && pnpm ui:build",
|
|
67
|
+
"prepare": "command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0",
|
|
68
|
+
"protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift",
|
|
69
|
+
"protocol:gen": "node --import tsx scripts/protocol-gen.ts",
|
|
70
|
+
"protocol:gen:swift": "node --import tsx scripts/protocol-gen-swift.ts",
|
|
71
|
+
"release:check": "node --import tsx scripts/release-check.ts",
|
|
72
|
+
"start": "node scripts/run-node.mjs",
|
|
73
|
+
"test": "node scripts/test-parallel.mjs",
|
|
74
|
+
"test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
|
|
75
|
+
"test:coverage": "vitest run --coverage",
|
|
76
|
+
"test:docker:all": "pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup",
|
|
77
|
+
"test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
|
|
78
|
+
"test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
|
|
79
|
+
"test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
|
|
80
|
+
"test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
|
|
81
|
+
"test:docker:live-models": "bash scripts/test-live-models-docker.sh",
|
|
82
|
+
"test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
|
|
83
|
+
"test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
|
|
84
|
+
"test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
|
|
85
|
+
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
86
|
+
"test:force": "node --import tsx scripts/test-force.ts",
|
|
87
|
+
"test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
|
|
88
|
+
"test:install:e2e:anthropic": "CRYPTOCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
|
|
89
|
+
"test:install:e2e:openai": "CRYPTOCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
|
|
90
|
+
"test:install:smoke": "bash scripts/test-install-sh-docker.sh",
|
|
91
|
+
"test:live": "CRYPTOCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts",
|
|
92
|
+
"test:ui": "pnpm --dir ui test",
|
|
93
|
+
"test:watch": "vitest",
|
|
94
|
+
"tui": "node scripts/run-node.mjs tui",
|
|
95
|
+
"tui:dev": "CRYPTOCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui",
|
|
96
|
+
"ui:build": "node scripts/ui.js build",
|
|
97
|
+
"ui:dev": "node scripts/ui.js dev",
|
|
98
|
+
"ui:install": "node scripts/ui.js install"
|
|
99
|
+
},
|
|
30
100
|
"dependencies": {
|
|
31
101
|
"@agentclientprotocol/sdk": "0.14.1",
|
|
32
102
|
"@aws-sdk/client-bedrock": "^3.984.0",
|
|
@@ -113,6 +183,30 @@
|
|
|
113
183
|
"engines": {
|
|
114
184
|
"node": ">=22.12.0"
|
|
115
185
|
},
|
|
186
|
+
"packageManager": "pnpm@10.23.0",
|
|
187
|
+
"pnpm": {
|
|
188
|
+
"minimumReleaseAge": 2880,
|
|
189
|
+
"overrides": {
|
|
190
|
+
"fast-xml-parser": "5.3.4",
|
|
191
|
+
"form-data": "2.5.4",
|
|
192
|
+
"@hono/node-server>hono": "4.11.7",
|
|
193
|
+
"hono": "4.11.7",
|
|
194
|
+
"qs": "6.14.1",
|
|
195
|
+
"@sinclair/typebox": "0.34.47",
|
|
196
|
+
"tar": "7.5.7",
|
|
197
|
+
"tough-cookie": "4.1.3"
|
|
198
|
+
},
|
|
199
|
+
"onlyBuiltDependencies": [
|
|
200
|
+
"@lydell/node-pty",
|
|
201
|
+
"@napi-rs/canvas",
|
|
202
|
+
"@whiskeysockets/baileys",
|
|
203
|
+
"authenticate-pam",
|
|
204
|
+
"esbuild",
|
|
205
|
+
"node-llama-cpp",
|
|
206
|
+
"protobufjs",
|
|
207
|
+
"sharp"
|
|
208
|
+
]
|
|
209
|
+
},
|
|
116
210
|
"vitest": {
|
|
117
211
|
"coverage": {
|
|
118
212
|
"provider": "v8",
|
|
@@ -144,73 +238,5 @@
|
|
|
144
238
|
"apps/macos/.build/**",
|
|
145
239
|
"dist/OpenClaw.app/**"
|
|
146
240
|
]
|
|
147
|
-
},
|
|
148
|
-
"scripts": {
|
|
149
|
-
"android:assemble": "cd apps/android && ./gradlew :app:assembleDebug",
|
|
150
|
-
"android:install": "cd apps/android && ./gradlew :app:installDebug",
|
|
151
|
-
"android:run": "cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity",
|
|
152
|
-
"android:test": "cd apps/android && ./gradlew :app:testDebugUnitTest",
|
|
153
|
-
"build": "pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts",
|
|
154
|
-
"canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh",
|
|
155
|
-
"check": "pnpm tsgo && pnpm lint && pnpm format",
|
|
156
|
-
"check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500",
|
|
157
|
-
"cryptoclaw": "node scripts/run-node.mjs",
|
|
158
|
-
"cryptoclaw:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
159
|
-
"dev": "node scripts/run-node.mjs",
|
|
160
|
-
"docs:bin": "node scripts/build-docs-list.mjs",
|
|
161
|
-
"docs:build": "cd docs && pnpm dlx --reporter append-only mint broken-links",
|
|
162
|
-
"docs:dev": "cd docs && mint dev",
|
|
163
|
-
"docs:list": "node scripts/docs-list.js",
|
|
164
|
-
"format": "oxfmt --check",
|
|
165
|
-
"format:all": "pnpm format && pnpm format:swift",
|
|
166
|
-
"format:fix": "oxfmt --write",
|
|
167
|
-
"format:swift": "swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources",
|
|
168
|
-
"gateway:dev": "CRYPTOCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway",
|
|
169
|
-
"gateway:dev:reset": "CRYPTOCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset",
|
|
170
|
-
"gateway:watch": "node scripts/watch-node.mjs gateway --force",
|
|
171
|
-
"ios:build": "bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'",
|
|
172
|
-
"ios:gen": "cd apps/ios && xcodegen generate",
|
|
173
|
-
"ios:open": "cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj",
|
|
174
|
-
"ios:run": "bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'",
|
|
175
|
-
"lint": "oxlint --type-aware",
|
|
176
|
-
"lint:all": "pnpm lint && pnpm lint:swift",
|
|
177
|
-
"lint:fix": "oxlint --type-aware --fix && pnpm format:fix",
|
|
178
|
-
"lint:swift": "swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)",
|
|
179
|
-
"mac:open": "open dist/OpenClaw.app",
|
|
180
|
-
"mac:package": "bash scripts/package-mac-app.sh",
|
|
181
|
-
"mac:restart": "bash scripts/restart-mac.sh",
|
|
182
|
-
"moltbot:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
183
|
-
"plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
|
|
184
|
-
"protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift",
|
|
185
|
-
"protocol:gen": "node --import tsx scripts/protocol-gen.ts",
|
|
186
|
-
"protocol:gen:swift": "node --import tsx scripts/protocol-gen-swift.ts",
|
|
187
|
-
"release:check": "node --import tsx scripts/release-check.ts",
|
|
188
|
-
"start": "node scripts/run-node.mjs",
|
|
189
|
-
"test": "node scripts/test-parallel.mjs",
|
|
190
|
-
"test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
|
|
191
|
-
"test:coverage": "vitest run --coverage",
|
|
192
|
-
"test:docker:all": "pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup",
|
|
193
|
-
"test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
|
|
194
|
-
"test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
|
|
195
|
-
"test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
|
|
196
|
-
"test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
|
|
197
|
-
"test:docker:live-models": "bash scripts/test-live-models-docker.sh",
|
|
198
|
-
"test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
|
|
199
|
-
"test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
|
|
200
|
-
"test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
|
|
201
|
-
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
202
|
-
"test:force": "node --import tsx scripts/test-force.ts",
|
|
203
|
-
"test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
|
|
204
|
-
"test:install:e2e:anthropic": "CRYPTOCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
|
|
205
|
-
"test:install:e2e:openai": "CRYPTOCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
|
|
206
|
-
"test:install:smoke": "bash scripts/test-install-sh-docker.sh",
|
|
207
|
-
"test:live": "CRYPTOCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts",
|
|
208
|
-
"test:ui": "pnpm --dir ui test",
|
|
209
|
-
"test:watch": "vitest",
|
|
210
|
-
"tui": "node scripts/run-node.mjs tui",
|
|
211
|
-
"tui:dev": "CRYPTOCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui",
|
|
212
|
-
"ui:build": "node scripts/ui.js build",
|
|
213
|
-
"ui:dev": "node scripts/ui.js dev",
|
|
214
|
-
"ui:install": "node scripts/ui.js install"
|
|
215
241
|
}
|
|
216
|
-
}
|
|
242
|
+
}
|
|
File without changes
|
|
File without changes
|