@agenticvault/openclaw 0.1.0 → 0.1.2
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.ja.md +66 -9
- package/README.ko.md +66 -9
- package/README.md +65 -8
- package/README.zh-CN.md +66 -9
- package/README.zh-TW.md +66 -9
- package/dist/context.js +5 -1
- package/dist/context.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/tools.d.ts +1 -1
- package/dist/tools.js +371 -254
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +3 -28
- package/openclaw.plugin.json +34 -7
- package/package.json +13 -3
package/README.ja.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- Source: packages/openclaw-plugin/README.md |
|
|
1
|
+
<!-- Source: packages/openclaw-plugin/README.md | Last synced: 2026-02-19 -->
|
|
2
2
|
|
|
3
3
|
# @agenticvault/openclaw
|
|
4
4
|
|
|
@@ -8,29 +8,71 @@
|
|
|
8
8
|
|
|
9
9
|
## インストール
|
|
10
10
|
|
|
11
|
+
### OpenClaw ホスト設定経由(推奨)
|
|
12
|
+
|
|
13
|
+
パッケージと peer dependency をインストールし、OpenClaw ホスト設定に登録します:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @agenticvault/openclaw openclaw
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### `plugins.load.paths` 経由(手動)
|
|
20
|
+
|
|
21
|
+
プラグインの読み込みを明示的に制御したい場合は、ローカルディレクトリにインストールし、そのパスを OpenClaw に指定します:
|
|
22
|
+
|
|
11
23
|
```bash
|
|
12
|
-
|
|
24
|
+
# ローカルディレクトリにインストール
|
|
25
|
+
mkdir -p ./openclaw-plugins
|
|
26
|
+
cd ./openclaw-plugins
|
|
27
|
+
npm install @agenticvault/openclaw
|
|
13
28
|
```
|
|
14
29
|
|
|
30
|
+
次に、OpenClaw ホスト設定にパスを追加します:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"plugins": {
|
|
35
|
+
"load": {
|
|
36
|
+
"paths": ["./openclaw-plugins/node_modules/@agenticvault/openclaw"]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> **ヒント**:本番環境では正確なバージョンを固定してください(`npm install @agenticvault/openclaw@0.1.1`)。予期しないアップグレードを防止します。
|
|
43
|
+
|
|
44
|
+
> **既知の制限事項**:`openclaw plugins install @agenticvault/openclaw` はインストーラーの ID 不一致が発生する場合があります。上流で修正されるまでは、上記の方法でインストールしてください。
|
|
45
|
+
|
|
15
46
|
## 設定
|
|
16
47
|
|
|
17
|
-
OpenClaw
|
|
48
|
+
OpenClaw ホスト設定にプラグインを登録します。entries キーはマニフェストの `id`(`"agentic-vault"`)と一致する必要があります:
|
|
18
49
|
|
|
19
50
|
```json
|
|
20
51
|
{
|
|
21
52
|
"plugins": {
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
53
|
+
"entries": {
|
|
54
|
+
"agentic-vault": {
|
|
55
|
+
"config": {
|
|
56
|
+
"keyId": "arn:aws:kms:us-east-1:123456789:key/your-key-id",
|
|
57
|
+
"region": "us-east-1",
|
|
58
|
+
"policyConfigPath": "./policy.json",
|
|
59
|
+
"rpcUrl": "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY"
|
|
60
|
+
}
|
|
28
61
|
}
|
|
29
62
|
}
|
|
30
63
|
}
|
|
31
64
|
}
|
|
32
65
|
```
|
|
33
66
|
|
|
67
|
+
| オプション | 必須 | 説明 |
|
|
68
|
+
|------------|------|------|
|
|
69
|
+
| `keyId` | はい | AWS KMS キー ARN |
|
|
70
|
+
| `region` | はい | AWS リージョン |
|
|
71
|
+
| `policyConfigPath` | いいえ | ポリシー JSON ファイルパス(未指定時はすべて拒否) |
|
|
72
|
+
| `rpcUrl` | いいえ | 残高/送金ツール用の RPC エンドポイント。`vault_get_balance`、`vault_send_transfer`、`vault_send_erc20_transfer` の使用時に必要。 |
|
|
73
|
+
| `expectedAddress` | いいえ | 検証用の期待されるウォレットアドレス |
|
|
74
|
+
| `enableUnsafeRawSign` | いいえ | 生署名ツールを有効化(デフォルト:`false`) |
|
|
75
|
+
|
|
34
76
|
## 利用可能なツール
|
|
35
77
|
|
|
36
78
|
### セーフツール(常時登録)
|
|
@@ -41,6 +83,9 @@ OpenClaw エージェント設定にプラグインを登録します:
|
|
|
41
83
|
| `vault_health_check` | Vault 署名器のヘルスステータスを確認します |
|
|
42
84
|
| `vault_sign_defi_call` | calldata デコードとポリシー検証後に DeFi コントラクトインタラクションに署名します |
|
|
43
85
|
| `vault_sign_permit` | ポリシー検証後に EIP-2612 permit に署名します |
|
|
86
|
+
| `vault_get_balance` | ネイティブまたは ERC20 トークン残高を照会します(`rpcUrl` が必要) |
|
|
87
|
+
| `vault_send_transfer` | ポリシー検証付きでネイティブ ETH を送金します(`rpcUrl` が必要) |
|
|
88
|
+
| `vault_send_erc20_transfer` | ポリシー検証付きで ERC20 トークンを送金します(`rpcUrl` が必要) |
|
|
44
89
|
|
|
45
90
|
### デュアルゲートツール(`enableUnsafeRawSign: true` が必要)
|
|
46
91
|
|
|
@@ -49,6 +94,18 @@ OpenClaw エージェント設定にプラグインを登録します:
|
|
|
49
94
|
| `vault_sign_transaction` | 生の EVM トランザクションに署名します(デコーダーパイプラインをバイパス) |
|
|
50
95
|
| `vault_sign_typed_data` | 生の EIP-712 型付きデータに署名します(デコーダーパイプラインをバイパス) |
|
|
51
96
|
|
|
97
|
+
## プレリリース API からの移行
|
|
98
|
+
|
|
99
|
+
プラグインのエントリーポイントがプレリリースの `register(api, config)` から公式 SDK コントラクト `export default function(api)` に変更されました:
|
|
100
|
+
|
|
101
|
+
| 変更前(プレリリース) | 変更後(現在) |
|
|
102
|
+
|------------------------|---------------|
|
|
103
|
+
| `import { register } from "@agenticvault/openclaw"` | `export default function(api)` |
|
|
104
|
+
| `register(api, config)` | 設定は `api.pluginConfig` から読み取り |
|
|
105
|
+
| `api.registerTool(name, config, handler)` | `api.registerTool({ name, description, parameters, label, execute })` |
|
|
106
|
+
|
|
107
|
+
プラグインは公式の `openclaw/plugin-sdk` 型を使用するようになり、`package.json` の `openclaw` フィールドを通じて OpenClaw ゲートウェイから検出可能です。
|
|
108
|
+
|
|
52
109
|
## セキュリティ
|
|
53
110
|
|
|
54
111
|
- **デフォルト拒否** -- すべての署名操作に明示的なポリシー承認が必要です
|
package/README.ko.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- Source: packages/openclaw-plugin/README.md |
|
|
1
|
+
<!-- Source: packages/openclaw-plugin/README.md | Last synced: 2026-02-19 -->
|
|
2
2
|
|
|
3
3
|
# @agenticvault/openclaw
|
|
4
4
|
|
|
@@ -8,29 +8,71 @@
|
|
|
8
8
|
|
|
9
9
|
## 설치
|
|
10
10
|
|
|
11
|
+
### OpenClaw 호스트 설정을 통한 설치 (권장)
|
|
12
|
+
|
|
13
|
+
패키지와 peer dependency를 설치한 후 OpenClaw 호스트 설정에 등록합니다:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @agenticvault/openclaw openclaw
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### `plugins.load.paths`를 통한 설치 (수동)
|
|
20
|
+
|
|
21
|
+
플러그인 로딩을 명시적으로 제어하려면 로컬 디렉토리에 패키지를 설치하고 OpenClaw에 경로를 지정합니다:
|
|
22
|
+
|
|
11
23
|
```bash
|
|
12
|
-
|
|
24
|
+
# 로컬 디렉토리에 설치
|
|
25
|
+
mkdir -p ./openclaw-plugins
|
|
26
|
+
cd ./openclaw-plugins
|
|
27
|
+
npm install @agenticvault/openclaw
|
|
13
28
|
```
|
|
14
29
|
|
|
30
|
+
그런 다음 OpenClaw 호스트 설정에 경로를 추가합니다:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"plugins": {
|
|
35
|
+
"load": {
|
|
36
|
+
"paths": ["./openclaw-plugins/node_modules/@agenticvault/openclaw"]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> **팁**: 프로덕션 환경에서는 정확한 버전을 고정하세요 (`npm install @agenticvault/openclaw@0.1.1`). 예기치 않은 업그레이드를 방지합니다.
|
|
43
|
+
|
|
44
|
+
> **알려진 제한**: `openclaw plugins install @agenticvault/openclaw`은 설치 프로그램 ID 불일치가 발생할 수 있습니다. 업스트림에서 수정될 때까지 위의 방법을 사용하여 설치하세요.
|
|
45
|
+
|
|
15
46
|
## 설정
|
|
16
47
|
|
|
17
|
-
OpenClaw
|
|
48
|
+
OpenClaw 호스트 설정에서 플러그인을 등록합니다. entries 키는 매니페스트 `id`(`"agentic-vault"`)와 일치해야 합니다:
|
|
18
49
|
|
|
19
50
|
```json
|
|
20
51
|
{
|
|
21
52
|
"plugins": {
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
53
|
+
"entries": {
|
|
54
|
+
"agentic-vault": {
|
|
55
|
+
"config": {
|
|
56
|
+
"keyId": "arn:aws:kms:us-east-1:123456789:key/your-key-id",
|
|
57
|
+
"region": "us-east-1",
|
|
58
|
+
"policyConfigPath": "./policy.json",
|
|
59
|
+
"rpcUrl": "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY"
|
|
60
|
+
}
|
|
28
61
|
}
|
|
29
62
|
}
|
|
30
63
|
}
|
|
31
64
|
}
|
|
32
65
|
```
|
|
33
66
|
|
|
67
|
+
| 옵션 | 필수 | 설명 |
|
|
68
|
+
|------|------|------|
|
|
69
|
+
| `keyId` | 예 | AWS KMS 키 ARN |
|
|
70
|
+
| `region` | 예 | AWS 리전 |
|
|
71
|
+
| `policyConfigPath` | 아니오 | 정책 JSON 파일 경로 (미지정 시 기본 전체 거부) |
|
|
72
|
+
| `rpcUrl` | 아니오 | 잔액/전송 도구용 RPC 엔드포인트. `vault_get_balance`, `vault_send_transfer`, `vault_send_erc20_transfer` 사용 시 필요. |
|
|
73
|
+
| `expectedAddress` | 아니오 | 검증용 예상 지갑 주소 |
|
|
74
|
+
| `enableUnsafeRawSign` | 아니오 | 원시 서명 도구 활성화 (기본값: `false`) |
|
|
75
|
+
|
|
34
76
|
## 사용 가능한 도구
|
|
35
77
|
|
|
36
78
|
### 안전 도구 (항상 등록됨)
|
|
@@ -41,6 +83,9 @@ OpenClaw 에이전트 설정에서 플러그인을 등록합니다:
|
|
|
41
83
|
| `vault_health_check` | Vault 서명기의 상태를 확인합니다 |
|
|
42
84
|
| `vault_sign_defi_call` | calldata 디코딩 및 정책 검증 후 DeFi 컨트랙트 상호작용에 서명합니다 |
|
|
43
85
|
| `vault_sign_permit` | 정책 검증 후 EIP-2612 permit에 서명합니다 |
|
|
86
|
+
| `vault_get_balance` | 네이티브 또는 ERC20 토큰 잔액을 조회합니다 (`rpcUrl` 필요) |
|
|
87
|
+
| `vault_send_transfer` | 정책 검증과 함께 네이티브 ETH를 전송합니다 (`rpcUrl` 필요) |
|
|
88
|
+
| `vault_send_erc20_transfer` | 정책 검증과 함께 ERC20 토큰을 전송합니다 (`rpcUrl` 필요) |
|
|
44
89
|
|
|
45
90
|
### 이중 게이트 도구 (`enableUnsafeRawSign: true` 필요)
|
|
46
91
|
|
|
@@ -49,6 +94,18 @@ OpenClaw 에이전트 설정에서 플러그인을 등록합니다:
|
|
|
49
94
|
| `vault_sign_transaction` | 원시 EVM 트랜잭션에 서명합니다 (디코더 파이프라인 우회) |
|
|
50
95
|
| `vault_sign_typed_data` | 원시 EIP-712 타입 데이터에 서명합니다 (디코더 파이프라인 우회) |
|
|
51
96
|
|
|
97
|
+
## 프리릴리스 API에서 마이그레이션
|
|
98
|
+
|
|
99
|
+
플러그인 진입점이 프리릴리스 `register(api, config)`에서 공식 SDK 계약 `export default function(api)`로 변경되었습니다:
|
|
100
|
+
|
|
101
|
+
| 변경 전 (프리릴리스) | 변경 후 (현재) |
|
|
102
|
+
|---------------------|---------------|
|
|
103
|
+
| `import { register } from "@agenticvault/openclaw"` | `export default function(api)` |
|
|
104
|
+
| `register(api, config)` | 설정은 `api.pluginConfig`에서 읽음 |
|
|
105
|
+
| `api.registerTool(name, config, handler)` | `api.registerTool({ name, description, parameters, label, execute })` |
|
|
106
|
+
|
|
107
|
+
플러그인은 이제 공식 `openclaw/plugin-sdk` 타입을 사용하며, `package.json`의 `openclaw` 필드를 통해 OpenClaw 게이트웨이에서 검색됩니다.
|
|
108
|
+
|
|
52
109
|
## 보안
|
|
53
110
|
|
|
54
111
|
- **기본 거부** -- 모든 서명 작업에 명시적인 정책 승인이 필요합니다
|
package/README.md
CHANGED
|
@@ -6,29 +6,71 @@ OpenClaw plugin for [Agentic Vault](https://github.com/agenticvault/agentic-vaul
|
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
9
|
+
### Via OpenClaw Host Config (Recommended)
|
|
10
|
+
|
|
11
|
+
Install the package and its peer dependency, then register it in your OpenClaw host config:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @agenticvault/openclaw openclaw
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Via `plugins.load.paths` (Manual)
|
|
18
|
+
|
|
19
|
+
If you prefer explicit control over plugin loading, install the package to a local directory and point OpenClaw to it:
|
|
20
|
+
|
|
9
21
|
```bash
|
|
10
|
-
|
|
22
|
+
# Install to a local directory
|
|
23
|
+
mkdir -p ./openclaw-plugins
|
|
24
|
+
cd ./openclaw-plugins
|
|
25
|
+
npm install @agenticvault/openclaw
|
|
11
26
|
```
|
|
12
27
|
|
|
28
|
+
Then add the path to your OpenClaw host config:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"plugins": {
|
|
33
|
+
"load": {
|
|
34
|
+
"paths": ["./openclaw-plugins/node_modules/@agenticvault/openclaw"]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
> **Tip**: Pin the exact version in production (`npm install @agenticvault/openclaw@0.1.1`) to avoid unexpected upgrades.
|
|
41
|
+
|
|
42
|
+
> **Known limitation**: `openclaw plugins install @agenticvault/openclaw` may encounter an installer ID mismatch. Use one of the methods above until this is resolved upstream.
|
|
43
|
+
|
|
13
44
|
## Configuration
|
|
14
45
|
|
|
15
|
-
Register the plugin in your OpenClaw
|
|
46
|
+
Register the plugin in your OpenClaw host configuration. The entries key must match the manifest `id` (`"agentic-vault"`):
|
|
16
47
|
|
|
17
48
|
```json
|
|
18
49
|
{
|
|
19
50
|
"plugins": {
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
51
|
+
"entries": {
|
|
52
|
+
"agentic-vault": {
|
|
53
|
+
"config": {
|
|
54
|
+
"keyId": "arn:aws:kms:us-east-1:123456789:key/your-key-id",
|
|
55
|
+
"region": "us-east-1",
|
|
56
|
+
"policyConfigPath": "./policy.json",
|
|
57
|
+
"rpcUrl": "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY"
|
|
58
|
+
}
|
|
26
59
|
}
|
|
27
60
|
}
|
|
28
61
|
}
|
|
29
62
|
}
|
|
30
63
|
```
|
|
31
64
|
|
|
65
|
+
| Option | Required | Description |
|
|
66
|
+
|--------|----------|-------------|
|
|
67
|
+
| `keyId` | Yes | AWS KMS key ARN |
|
|
68
|
+
| `region` | Yes | AWS region |
|
|
69
|
+
| `policyConfigPath` | No | Path to policy JSON file (deny-all by default when omitted) |
|
|
70
|
+
| `rpcUrl` | No | RPC endpoint for balance/transfer tools. Required to use `vault_get_balance`, `vault_send_transfer`, `vault_send_erc20_transfer`. |
|
|
71
|
+
| `expectedAddress` | No | Expected wallet address for verification |
|
|
72
|
+
| `enableUnsafeRawSign` | No | Enable raw signing tools (default: `false`) |
|
|
73
|
+
|
|
32
74
|
## Available Tools
|
|
33
75
|
|
|
34
76
|
### Safe Tools (always registered)
|
|
@@ -39,6 +81,9 @@ Register the plugin in your OpenClaw agent configuration:
|
|
|
39
81
|
| `vault_health_check` | Check the health status of the vault signer |
|
|
40
82
|
| `vault_sign_defi_call` | Sign a DeFi contract interaction after calldata decoding and policy validation |
|
|
41
83
|
| `vault_sign_permit` | Sign an EIP-2612 permit after policy validation |
|
|
84
|
+
| `vault_get_balance` | Query native or ERC20 token balance (requires `rpcUrl`) |
|
|
85
|
+
| `vault_send_transfer` | Send native ETH transfer with policy validation (requires `rpcUrl`) |
|
|
86
|
+
| `vault_send_erc20_transfer` | Send ERC20 token transfer with policy validation (requires `rpcUrl`) |
|
|
42
87
|
|
|
43
88
|
### Dual-Gated Tools (requires `enableUnsafeRawSign: true`)
|
|
44
89
|
|
|
@@ -47,6 +92,18 @@ Register the plugin in your OpenClaw agent configuration:
|
|
|
47
92
|
| `vault_sign_transaction` | Sign a raw EVM transaction (bypasses decoder pipeline) |
|
|
48
93
|
| `vault_sign_typed_data` | Sign raw EIP-712 typed data (bypasses decoder pipeline) |
|
|
49
94
|
|
|
95
|
+
## Migration from Pre-Release API
|
|
96
|
+
|
|
97
|
+
The plugin entry point changed from the pre-release `register(api, config)` to the official SDK contract `export default function(api)`:
|
|
98
|
+
|
|
99
|
+
| Before (pre-release) | After (current) |
|
|
100
|
+
|----------------------|-----------------|
|
|
101
|
+
| `import { register } from "@agenticvault/openclaw"` | `export default function(api)` |
|
|
102
|
+
| `register(api, config)` | Config read from `api.pluginConfig` |
|
|
103
|
+
| `api.registerTool(name, config, handler)` | `api.registerTool({ name, description, parameters, label, execute })` |
|
|
104
|
+
|
|
105
|
+
The plugin now uses the official `openclaw/plugin-sdk` types and can be discovered by the OpenClaw gateway via the `openclaw` field in `package.json`.
|
|
106
|
+
|
|
50
107
|
## Security
|
|
51
108
|
|
|
52
109
|
- **Deny by default** -- all signing operations require explicit policy approval
|
package/README.zh-CN.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- Source: packages/openclaw-plugin/README.md |
|
|
1
|
+
<!-- Source: packages/openclaw-plugin/README.md | Last synced: 2026-02-19 -->
|
|
2
2
|
|
|
3
3
|
# @agenticvault/openclaw
|
|
4
4
|
|
|
@@ -8,29 +8,71 @@
|
|
|
8
8
|
|
|
9
9
|
## 安装
|
|
10
10
|
|
|
11
|
+
### 通过 OpenClaw 主机配置(推荐)
|
|
12
|
+
|
|
13
|
+
安装包及其 peer dependency,然后在 OpenClaw 主机配置中注册:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @agenticvault/openclaw openclaw
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 通过 `plugins.load.paths`(手动)
|
|
20
|
+
|
|
21
|
+
如果偏好显式控制插件加载,可将包安装到本地目录,再将路径指定给 OpenClaw:
|
|
22
|
+
|
|
11
23
|
```bash
|
|
12
|
-
|
|
24
|
+
# 安装到本地目录
|
|
25
|
+
mkdir -p ./openclaw-plugins
|
|
26
|
+
cd ./openclaw-plugins
|
|
27
|
+
npm install @agenticvault/openclaw
|
|
13
28
|
```
|
|
14
29
|
|
|
30
|
+
然后在 OpenClaw 主机配置中添加路径:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"plugins": {
|
|
35
|
+
"load": {
|
|
36
|
+
"paths": ["./openclaw-plugins/node_modules/@agenticvault/openclaw"]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> **建议**:生产环境请固定版本(`npm install @agenticvault/openclaw@0.1.1`),避免意外升级。
|
|
43
|
+
|
|
44
|
+
> **已知限制**:`openclaw plugins install @agenticvault/openclaw` 可能遇到 installer ID 不匹配的问题。在上游修复前,请使用上述方式安装。
|
|
45
|
+
|
|
15
46
|
## 配置
|
|
16
47
|
|
|
17
|
-
在 OpenClaw
|
|
48
|
+
在 OpenClaw 主机配置中注册插件。entries key 必须与 manifest `id`(`"agentic-vault"`)一致:
|
|
18
49
|
|
|
19
50
|
```json
|
|
20
51
|
{
|
|
21
52
|
"plugins": {
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
53
|
+
"entries": {
|
|
54
|
+
"agentic-vault": {
|
|
55
|
+
"config": {
|
|
56
|
+
"keyId": "arn:aws:kms:us-east-1:123456789:key/your-key-id",
|
|
57
|
+
"region": "us-east-1",
|
|
58
|
+
"policyConfigPath": "./policy.json",
|
|
59
|
+
"rpcUrl": "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY"
|
|
60
|
+
}
|
|
28
61
|
}
|
|
29
62
|
}
|
|
30
63
|
}
|
|
31
64
|
}
|
|
32
65
|
```
|
|
33
66
|
|
|
67
|
+
| 选项 | 必需 | 说明 |
|
|
68
|
+
|------|------|------|
|
|
69
|
+
| `keyId` | 是 | AWS KMS 密钥 ARN |
|
|
70
|
+
| `region` | 是 | AWS 区域 |
|
|
71
|
+
| `policyConfigPath` | 否 | 策略 JSON 文件路径(未指定时默认全部拒绝) |
|
|
72
|
+
| `rpcUrl` | 否 | 余额/转账工具的 RPC 端点。使用 `vault_get_balance`、`vault_send_transfer`、`vault_send_erc20_transfer` 时必需。 |
|
|
73
|
+
| `expectedAddress` | 否 | 用于验证的预期钱包地址 |
|
|
74
|
+
| `enableUnsafeRawSign` | 否 | 启用原始签名工具(默认:`false`) |
|
|
75
|
+
|
|
34
76
|
## 可用工具
|
|
35
77
|
|
|
36
78
|
### 安全工具(默认启用)
|
|
@@ -41,6 +83,9 @@ npm install @agenticvault/openclaw @agenticvault/agentic-vault
|
|
|
41
83
|
| `vault_health_check` | 检查保险库签名器的健康状态 |
|
|
42
84
|
| `vault_sign_defi_call` | 在 calldata 解码与策略验证后签署 DeFi 合约交互 |
|
|
43
85
|
| `vault_sign_permit` | 在策略验证后签署 EIP-2612 permit |
|
|
86
|
+
| `vault_get_balance` | 查询原生代币或 ERC20 代币余额(需要 `rpcUrl`) |
|
|
87
|
+
| `vault_send_transfer` | 发送原生 ETH 转账,含策略验证(需要 `rpcUrl`) |
|
|
88
|
+
| `vault_send_erc20_transfer` | 发送 ERC20 代币转账,含策略验证(需要 `rpcUrl`) |
|
|
44
89
|
|
|
45
90
|
### 双重闸控工具(需要 `enableUnsafeRawSign: true`)
|
|
46
91
|
|
|
@@ -49,6 +94,18 @@ npm install @agenticvault/openclaw @agenticvault/agentic-vault
|
|
|
49
94
|
| `vault_sign_transaction` | 签署原始 EVM 交易(绕过解码管线) |
|
|
50
95
|
| `vault_sign_typed_data` | 签署原始 EIP-712 类型化数据(绕过解码管线) |
|
|
51
96
|
|
|
97
|
+
## 从预发布 API 迁移
|
|
98
|
+
|
|
99
|
+
插件入口点从预发布的 `register(api, config)` 变更为官方 SDK 合约 `export default function(api)`:
|
|
100
|
+
|
|
101
|
+
| 之前(预发布) | 之后(当前) |
|
|
102
|
+
|----------------|-------------|
|
|
103
|
+
| `import { register } from "@agenticvault/openclaw"` | `export default function(api)` |
|
|
104
|
+
| `register(api, config)` | 配置从 `api.pluginConfig` 读取 |
|
|
105
|
+
| `api.registerTool(name, config, handler)` | `api.registerTool({ name, description, parameters, label, execute })` |
|
|
106
|
+
|
|
107
|
+
插件现在使用官方 `openclaw/plugin-sdk` 类型,并可通过 `package.json` 中的 `openclaw` 字段被 OpenClaw 网关发现。
|
|
108
|
+
|
|
52
109
|
## 安全性
|
|
53
110
|
|
|
54
111
|
- **默认拒绝** -- 所有签名操作皆需明确的策略批准
|
package/README.zh-TW.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- Source: packages/openclaw-plugin/README.md |
|
|
1
|
+
<!-- Source: packages/openclaw-plugin/README.md | Last synced: 2026-02-19 -->
|
|
2
2
|
|
|
3
3
|
# @agenticvault/openclaw
|
|
4
4
|
|
|
@@ -8,29 +8,71 @@
|
|
|
8
8
|
|
|
9
9
|
## 安裝
|
|
10
10
|
|
|
11
|
+
### 透過 OpenClaw 主機設定(推薦)
|
|
12
|
+
|
|
13
|
+
安裝套件及其 peer dependency,然後在 OpenClaw 主機設定中註冊:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @agenticvault/openclaw openclaw
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 透過 `plugins.load.paths`(手動)
|
|
20
|
+
|
|
21
|
+
若偏好明確控制插件載入,可將套件安裝至本地目錄,再將路徑指定給 OpenClaw:
|
|
22
|
+
|
|
11
23
|
```bash
|
|
12
|
-
|
|
24
|
+
# 安裝至本地目錄
|
|
25
|
+
mkdir -p ./openclaw-plugins
|
|
26
|
+
cd ./openclaw-plugins
|
|
27
|
+
npm install @agenticvault/openclaw
|
|
13
28
|
```
|
|
14
29
|
|
|
30
|
+
然後在 OpenClaw 主機設定中新增路徑:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"plugins": {
|
|
35
|
+
"load": {
|
|
36
|
+
"paths": ["./openclaw-plugins/node_modules/@agenticvault/openclaw"]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> **建議**:正式環境請固定版本(`npm install @agenticvault/openclaw@0.1.1`),避免意外升級。
|
|
43
|
+
|
|
44
|
+
> **已知限制**:`openclaw plugins install @agenticvault/openclaw` 可能遇到 installer ID 不符的問題。在上游修復前,請使用上述方式安裝。
|
|
45
|
+
|
|
15
46
|
## 設定
|
|
16
47
|
|
|
17
|
-
在 OpenClaw
|
|
48
|
+
在 OpenClaw 主機設定中註冊插件。entries key 必須與 manifest `id`(`"agentic-vault"`)一致:
|
|
18
49
|
|
|
19
50
|
```json
|
|
20
51
|
{
|
|
21
52
|
"plugins": {
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
53
|
+
"entries": {
|
|
54
|
+
"agentic-vault": {
|
|
55
|
+
"config": {
|
|
56
|
+
"keyId": "arn:aws:kms:us-east-1:123456789:key/your-key-id",
|
|
57
|
+
"region": "us-east-1",
|
|
58
|
+
"policyConfigPath": "./policy.json",
|
|
59
|
+
"rpcUrl": "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY"
|
|
60
|
+
}
|
|
28
61
|
}
|
|
29
62
|
}
|
|
30
63
|
}
|
|
31
64
|
}
|
|
32
65
|
```
|
|
33
66
|
|
|
67
|
+
| 選項 | 必要 | 說明 |
|
|
68
|
+
|------|------|------|
|
|
69
|
+
| `keyId` | 是 | AWS KMS 金鑰 ARN |
|
|
70
|
+
| `region` | 是 | AWS 區域 |
|
|
71
|
+
| `policyConfigPath` | 否 | 策略 JSON 檔案路徑(未指定時預設全部拒絕) |
|
|
72
|
+
| `rpcUrl` | 否 | 餘額/轉帳工具的 RPC 端點。使用 `vault_get_balance`、`vault_send_transfer`、`vault_send_erc20_transfer` 時必要。 |
|
|
73
|
+
| `expectedAddress` | 否 | 用於驗證的預期錢包地址 |
|
|
74
|
+
| `enableUnsafeRawSign` | 否 | 啟用原始簽署工具(預設:`false`) |
|
|
75
|
+
|
|
34
76
|
## 可用工具
|
|
35
77
|
|
|
36
78
|
### 安全工具(預設啟用)
|
|
@@ -41,6 +83,9 @@ npm install @agenticvault/openclaw @agenticvault/agentic-vault
|
|
|
41
83
|
| `vault_health_check` | 檢查保險庫簽署器的健康狀態 |
|
|
42
84
|
| `vault_sign_defi_call` | 在 calldata 解碼與策略驗證後簽署 DeFi 合約互動 |
|
|
43
85
|
| `vault_sign_permit` | 在策略驗證後簽署 EIP-2612 permit |
|
|
86
|
+
| `vault_get_balance` | 查詢原生代幣或 ERC20 代幣餘額(需要 `rpcUrl`) |
|
|
87
|
+
| `vault_send_transfer` | 發送原生 ETH 轉帳,含策略驗證(需要 `rpcUrl`) |
|
|
88
|
+
| `vault_send_erc20_transfer` | 發送 ERC20 代幣轉帳,含策略驗證(需要 `rpcUrl`) |
|
|
44
89
|
|
|
45
90
|
### 雙重閘控工具(需要 `enableUnsafeRawSign: true`)
|
|
46
91
|
|
|
@@ -49,6 +94,18 @@ npm install @agenticvault/openclaw @agenticvault/agentic-vault
|
|
|
49
94
|
| `vault_sign_transaction` | 簽署原始 EVM 交易(繞過解碼管線) |
|
|
50
95
|
| `vault_sign_typed_data` | 簽署原始 EIP-712 型別化資料(繞過解碼管線) |
|
|
51
96
|
|
|
97
|
+
## 從預發布 API 遷移
|
|
98
|
+
|
|
99
|
+
插件進入點從預發布的 `register(api, config)` 變更為官方 SDK 合約 `export default function(api)`:
|
|
100
|
+
|
|
101
|
+
| 之前(預發布) | 之後(目前) |
|
|
102
|
+
|----------------|-------------|
|
|
103
|
+
| `import { register } from "@agenticvault/openclaw"` | `export default function(api)` |
|
|
104
|
+
| `register(api, config)` | 設定從 `api.pluginConfig` 讀取 |
|
|
105
|
+
| `api.registerTool(name, config, handler)` | `api.registerTool({ name, description, parameters, label, execute })` |
|
|
106
|
+
|
|
107
|
+
插件現在使用官方 `openclaw/plugin-sdk` 型別,並可透過 `package.json` 中的 `openclaw` 欄位被 OpenClaw 閘道發現。
|
|
108
|
+
|
|
52
109
|
## 安全性
|
|
53
110
|
|
|
54
111
|
- **預設拒絕** -- 所有簽署操作皆需明確的策略核准
|
package/dist/context.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createSigningProvider, EvmSignerAdapter, } from '@agenticvault/agentic-vault';
|
|
1
|
+
import { createSigningProvider, EvmSignerAdapter, ViemRpcProvider, } from '@agenticvault/agentic-vault';
|
|
2
2
|
import { PolicyEngine, erc20Evaluator, uniswapV3Evaluator, aaveV3Evaluator, ProtocolDispatcher, createDefaultRegistry, loadPolicyConfigFromFile, } from '@agenticvault/agentic-vault/protocols';
|
|
3
3
|
const DEFAULT_POLICY = {
|
|
4
4
|
allowedChainIds: [],
|
|
@@ -36,11 +36,15 @@ export function buildContext(config) {
|
|
|
36
36
|
]);
|
|
37
37
|
const dispatcher = new ProtocolDispatcher(createDefaultRegistry());
|
|
38
38
|
const auditSink = createAuditSink();
|
|
39
|
+
const rpcProvider = config.rpcUrl
|
|
40
|
+
? new ViemRpcProvider({ rpcUrl: config.rpcUrl })
|
|
41
|
+
: undefined;
|
|
39
42
|
return {
|
|
40
43
|
signer,
|
|
41
44
|
policyEngine,
|
|
42
45
|
auditSink,
|
|
43
46
|
dispatcher,
|
|
47
|
+
rpcProvider,
|
|
44
48
|
caller: 'openclaw',
|
|
45
49
|
service: 'agentic-vault-openclaw',
|
|
46
50
|
};
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,GAIzB,MAAM,uCAAuC,CAAC;AAG/C,MAAM,cAAc,GAAmB;IACrC,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;IACpB,YAAY,EAAE,EAAE;IAChB,kBAAkB,EAAE,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAA4B;IACvD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC;QACrC,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,QAAQ,EAAE;QAC5C,eAAe,EAAE,MAAM,CAAC,eAA4C;KACrE,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB;QAC1C,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACnD,CAAC,CAAC,cAAc,CAAC;IACnB,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE;QAClD,cAAc;QACd,kBAAkB;QAClB,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IAEpC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM;QAC/B,CAAC,CAAC,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,MAAM;QACN,YAAY;QACZ,SAAS;QACT,UAAU;QACV,WAAW;QACX,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,wBAAwB;KAClC,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,SAAS,eAAe;IACtB,OAAO;QACL,GAAG,CAAC,KAAK;YACP,MAAM,IAAI,GAAG;gBACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE;gBAC5B,GAAG,KAAK;aACT,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
export { buildContext } from './context.js';
|
|
3
|
-
export { registerTools } from './tools.js';
|
|
4
|
-
import { type OpenClawPluginApi, type OpenClawPluginConfig } from './types.js';
|
|
1
|
+
import { type OpenClawPluginApi } from './types.js';
|
|
5
2
|
/**
|
|
6
3
|
* OpenClaw plugin entry point.
|
|
7
4
|
* Called by the OpenClaw host to register vault signing tools.
|
|
8
5
|
*/
|
|
9
|
-
export
|
|
6
|
+
export default function (api: OpenClawPluginApi): void;
|
|
7
|
+
export { type OpenClawPluginConfig } from './types.js';
|
|
8
|
+
export { buildContext } from './context.js';
|
|
9
|
+
export { registerTools } from './tools.js';
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
export { buildContext } from './context.js';
|
|
2
|
-
export { registerTools } from './tools.js';
|
|
3
1
|
import { buildContext } from './context.js';
|
|
4
2
|
import { registerTools } from './tools.js';
|
|
5
3
|
/**
|
|
6
4
|
* OpenClaw plugin entry point.
|
|
7
5
|
* Called by the OpenClaw host to register vault signing tools.
|
|
8
6
|
*/
|
|
9
|
-
export function
|
|
7
|
+
export default function (api) {
|
|
8
|
+
const config = (api.pluginConfig ?? {});
|
|
10
9
|
const ctx = buildContext(config);
|
|
11
10
|
registerTools(api, ctx, config);
|
|
12
11
|
}
|
|
12
|
+
export { buildContext } from './context.js';
|
|
13
|
+
export { registerTools } from './tools.js';
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,GAAsB;IAC7C,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAoC,CAAC;IAC3E,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type WorkflowContext } from '@agenticvault/agentic-vault/protocols';
|
|
|
2
2
|
import { type OpenClawPluginApi, type OpenClawPluginConfig } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Register all OpenClaw tools.
|
|
5
|
-
*
|
|
5
|
+
* 7 safe tools are always registered.
|
|
6
6
|
* 2 dual-gated tools are only registered when enableUnsafeRawSign is true.
|
|
7
7
|
*/
|
|
8
8
|
export declare function registerTools(api: OpenClawPluginApi, ctx: WorkflowContext, config: OpenClawPluginConfig): void;
|