@1claw/mcp 0.34.1 → 0.34.3
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 +44 -21
- package/dist/index.js +34 -4
- package/dist/index.js.map +1 -1
- package/dist/local-client.d.ts +74 -0
- package/dist/local-client.d.ts.map +1 -0
- package/dist/local-client.js +135 -0
- package/dist/local-client.js.map +1 -0
- package/dist/tools/proxy_request.d.ts +45 -0
- package/dist/tools/proxy_request.d.ts.map +1 -0
- package/dist/tools/proxy_request.js +56 -0
- package/dist/tools/proxy_request.js.map +1 -0
- package/dist/tools/sign_digest.d.ts +33 -0
- package/dist/tools/sign_digest.d.ts.map +1 -0
- package/dist/tools/sign_digest.js +57 -0
- package/dist/tools/sign_digest.js.map +1 -0
- package/package.json +10 -3
package/README.md
CHANGED
|
@@ -6,6 +6,8 @@ An MCP (Model Context Protocol) server that gives AI agents secure, just-in-time
|
|
|
6
6
|
|
|
7
7
|
**Local-only mode**: Run without vault credentials for security-only tools (e.g., `inspect_content`). Ideal for users running local models (Ollama, LM Studio, llama.cpp) who want prompt injection and threat detection without a 1claw account.
|
|
8
8
|
|
|
9
|
+
**Local daemon mode**: Connect to the local 1claw daemon instead of the cloud API. Secrets stay on your machine, injected into HTTP requests via a Unix socket proxy — the model never sees the raw value. Set `ONECLAW_LOCAL_VAULT=true` and optionally `ONECLAW_DAEMON_SOCKET`.
|
|
10
|
+
|
|
9
11
|
**API contract:** Vault-facing tools use the REST API described in [@1claw/openapi-spec](https://www.npmjs.com/package/@1claw/openapi-spec). LLM traffic through **Shroud** is not MCP — agents call `https://shroud.1claw.xyz` directly with `X-Shroud-Agent-Key` and **`X-Shroud-Provider`** (required; e.g. `openai`). When the MCP server exchanges an agent API key for a JWT, that token may carry **`shroud_config`** for Shroud’s PolicyEngine; MCP itself does not proxy LLM requests.
|
|
10
12
|
|
|
11
13
|
## Transport Modes
|
|
@@ -41,17 +43,19 @@ pnpm run build
|
|
|
41
43
|
|
|
42
44
|
| Variable | Required | Default | Description |
|
|
43
45
|
| ------------------------- | -------------- | ----------------------- | --------------------------------------------------------------------------- |
|
|
46
|
+
| `ONECLAW_AGENT_API_KEY` | stdio* | — | **Recommended.** Agent API key (`ocv_...`). Server exchanges it for a JWT, auto-discovers agent ID and vault, and refreshes the token automatically. |
|
|
44
47
|
| `ONECLAW_LOCAL_ONLY` | No | `false` | Set to `true` for security-only mode (no vault credentials needed). |
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
48
|
+
| `ONECLAW_LOCAL_VAULT` | No | `false` | Set to `true` to use the local daemon instead of the cloud API. |
|
|
49
|
+
| `ONECLAW_DAEMON_SOCKET` | No | `~/.config/1claw/daemon.sock` | Path to the local daemon Unix socket (local daemon mode only). |
|
|
50
|
+
| `ONECLAW_AGENT_ID` | No | — | Agent UUID. Optional with `ONECLAW_AGENT_API_KEY` (auto-discovered from key). |
|
|
51
|
+
| `ONECLAW_AGENT_TOKEN` | stdio* | — | **Legacy.** Static Bearer JWT (expires in ~1 h, no auto-refresh). |
|
|
52
|
+
| `ONECLAW_VAULT_ID` | No | — | UUID of the vault. Auto-discovered when using `ONECLAW_AGENT_API_KEY`. |
|
|
49
53
|
| `ONECLAW_DPOP` | No | `false` | Set to `true` to enable DPoP (RFC 9449) proof-of-possession. Binds agent tokens to the MCP client's ephemeral P-256 keypair so stolen tokens are unusable without the matching private key. |
|
|
50
54
|
| `ONECLAW_BASE_URL` | No | `https://api.1claw.xyz` | Vault API base URL. Intents tools (`simulate_transaction`, `submit_transaction`, etc.) call this host; for TEE signing, point it at **Shroud** or **Intents** (e.g. `https://shroud.1claw.xyz` or `https://intents.1claw.xyz`) if your deployment routes signing there. Self-hosted: your Vault/Shroud URL. |
|
|
51
55
|
| `MCP_TRANSPORT` | No | `stdio` | Transport mode: `stdio` or `httpStream`. |
|
|
52
56
|
| `PORT` | No | `8080` | HTTP port (httpStream mode only). |
|
|
53
57
|
|
|
54
|
-
\* For stdio, set
|
|
58
|
+
\* For stdio, set **`ONECLAW_AGENT_API_KEY`** (recommended — auto-discovers agent ID and vault, handles token refresh). Alternatively, set `ONECLAW_AGENT_TOKEN` + `ONECLAW_VAULT_ID` for static JWT auth. Not needed when `ONECLAW_LOCAL_ONLY=true` or `ONECLAW_LOCAL_VAULT=true`.
|
|
55
59
|
|
|
56
60
|
## Tools
|
|
57
61
|
|
|
@@ -80,6 +84,7 @@ pnpm run build
|
|
|
80
84
|
| `list_signing_keys` | List all signing keys for an agent across all chains. |
|
|
81
85
|
| `sign_message` | Sign a message using EIP-191 personal_sign. Returns signature and signer address. |
|
|
82
86
|
| `sign_typed_data` | Sign EIP-712 typed structured data. Returns signature, typed data hash, and signer address. |
|
|
87
|
+
| `sign_digest` | Sign a client-computed 32-byte digest directly (raw/blind signing) for ERC-1271/ERC-7739 nested EIP-712 flows (e.g. Polymarket). Requires `raw_signing_enabled`; audit-logged. |
|
|
83
88
|
| `platform_list_apps` | List all platform apps in the caller's org. |
|
|
84
89
|
| `platform_create_app` | Register a new platform app (returns `plt_` API key). User-only. |
|
|
85
90
|
| `platform_bootstrap_user` | Bootstrap resources (vault, agent, policies) for a connected user from a template. |
|
|
@@ -93,6 +98,7 @@ pnpm run build
|
|
|
93
98
|
| `get_approval` | Get the current status of a specific approval request. Useful for agents polling while waiting on approval. |
|
|
94
99
|
| `lease_bankr_key` | **Privileged** — policy-gated on `agents/{id}/bankr/*`. Provisions scoped `bk_usr_` key (stored for Shroud; **not returned** in tool output). Recommend TTL 300–900 s. Requires `BANKR_PARTNER_KEY` on Vault. |
|
|
95
100
|
| `inspect_content` | Analyze arbitrary text for prompt injection, command injection, social engineering, PII, encoding tricks, and more. Works without vault credentials. |
|
|
101
|
+
| `proxy_request` | **Local daemon mode only.** Make an HTTP request with a secret injected by the daemon. The model specifies the secret name and target URL — the secret value never enters the context window. |
|
|
96
102
|
|
|
97
103
|
> **Treasury wallets** (`POST /v1/treasury/wallets/generate`, `GET .../wallets`, etc.) are human-only endpoints and are **not** exposed as MCP tools. Agents cannot generate or manage treasury wallets. Human users manage treasury wallets via the dashboard, CLI (`1claw treasury`), or SDK (`client.treasuryWallets`).
|
|
98
104
|
|
|
@@ -106,7 +112,7 @@ pnpm run build
|
|
|
106
112
|
|
|
107
113
|
### Hosted (mcp.1claw.xyz)
|
|
108
114
|
|
|
109
|
-
For MCP clients that support remote servers with HTTP streaming.
|
|
115
|
+
For MCP clients that support remote servers with HTTP streaming. Pass your agent API key as a Bearer token — the server exchanges it for a JWT, auto-discovers the agent ID and vault, and handles refresh.
|
|
110
116
|
|
|
111
117
|
```json
|
|
112
118
|
{
|
|
@@ -114,28 +120,27 @@ For MCP clients that support remote servers with HTTP streaming. The server expe
|
|
|
114
120
|
"1claw": {
|
|
115
121
|
"url": "https://mcp.1claw.xyz/mcp",
|
|
116
122
|
"headers": {
|
|
117
|
-
"Authorization": "Bearer
|
|
118
|
-
"X-Vault-ID": "<your-vault-id>"
|
|
123
|
+
"Authorization": "Bearer ocv_your_agent_api_key"
|
|
119
124
|
}
|
|
120
125
|
}
|
|
121
126
|
}
|
|
122
127
|
}
|
|
123
128
|
```
|
|
124
129
|
|
|
130
|
+
> The server accepts `ocv_` API keys directly as Bearer tokens — no manual JWT exchange needed. Vault is auto-discovered from the token response.
|
|
131
|
+
|
|
125
132
|
### Claude Desktop (local stdio)
|
|
126
133
|
|
|
127
|
-
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`.
|
|
134
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`. Only `ONECLAW_AGENT_API_KEY` is needed — the server auto-discovers the agent ID and vault, and handles JWT refresh.
|
|
128
135
|
|
|
129
136
|
```json
|
|
130
137
|
{
|
|
131
138
|
"mcpServers": {
|
|
132
139
|
"1claw": {
|
|
133
|
-
"command": "
|
|
134
|
-
"args": ["/
|
|
140
|
+
"command": "npx",
|
|
141
|
+
"args": ["-y", "@1claw/mcp"],
|
|
135
142
|
"env": {
|
|
136
|
-
"
|
|
137
|
-
"ONECLAW_AGENT_API_KEY": "ocv_your_agent_api_key",
|
|
138
|
-
"ONECLAW_VAULT_ID": "your-vault-id"
|
|
143
|
+
"ONECLAW_AGENT_API_KEY": "ocv_your_agent_api_key"
|
|
139
144
|
}
|
|
140
145
|
}
|
|
141
146
|
}
|
|
@@ -144,18 +149,16 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`. Prefer
|
|
|
144
149
|
|
|
145
150
|
### Cursor (local stdio)
|
|
146
151
|
|
|
147
|
-
Add to `.cursor/mcp.json` in your project root.
|
|
152
|
+
Add to `.cursor/mcp.json` in your project root. Same key-only auth — agent ID and vault are auto-discovered.
|
|
148
153
|
|
|
149
154
|
```json
|
|
150
155
|
{
|
|
151
156
|
"mcpServers": {
|
|
152
157
|
"1claw": {
|
|
153
|
-
"command": "
|
|
154
|
-
"args": ["
|
|
158
|
+
"command": "npx",
|
|
159
|
+
"args": ["-y", "@1claw/mcp"],
|
|
155
160
|
"env": {
|
|
156
|
-
"
|
|
157
|
-
"ONECLAW_AGENT_API_KEY": "${env:ONECLAW_AGENT_API_KEY}",
|
|
158
|
-
"ONECLAW_VAULT_ID": "${env:ONECLAW_VAULT_ID}"
|
|
161
|
+
"ONECLAW_AGENT_API_KEY": "ocv_your_agent_api_key"
|
|
159
162
|
}
|
|
160
163
|
}
|
|
161
164
|
}
|
|
@@ -182,6 +185,26 @@ For users running local models who only need security inspection. No 1claw accou
|
|
|
182
185
|
|
|
183
186
|
In this mode only the `inspect_content` tool is available. Vault, secret, and transaction tools are not registered.
|
|
184
187
|
|
|
188
|
+
### Local daemon mode (no cloud, zero-knowledge proxy)
|
|
189
|
+
|
|
190
|
+
Connect to the local 1claw daemon. The model gets `list_secrets` (names only) and `proxy_request` (inject a secret into an HTTP call without exposing the value). Set up with `1claw setup --local`.
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"mcpServers": {
|
|
195
|
+
"1claw": {
|
|
196
|
+
"command": "npx",
|
|
197
|
+
"args": ["-y", "@1claw/mcp"],
|
|
198
|
+
"env": {
|
|
199
|
+
"ONECLAW_LOCAL_VAULT": "true"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
In this mode the model never sees secret values. It asks the daemon to make API calls on its behalf, and the daemon injects the secret per your policy. See `1claw daemon --help` for policy management.
|
|
207
|
+
|
|
185
208
|
## Example: Checking LLM Output for Threats
|
|
186
209
|
|
|
187
210
|
Call the `inspect_content` tool with any text to get a threat analysis:
|
|
@@ -284,4 +307,4 @@ Configure these via the agent's `shroud_config` JSON in the dashboard, SDK (`Cre
|
|
|
284
307
|
|
|
285
308
|
This package is registered as `io.github.1clawAI/1claw-mcp` on the [MCP Registry](https://registry.modelcontextprotocol.io). Publishing uses the "Publish to MCP Registry" workflow on `1clawAI/1claw-mcp` (GitHub OIDC).
|
|
286
309
|
|
|
287
|
-
npm: `@1claw/mcp` v0.34.
|
|
310
|
+
npm: `@1claw/mcp` v0.34.2
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ import { provisionSigningKeyTool } from "./tools/provision_signing_key.js";
|
|
|
24
24
|
import { listSigningKeysTool } from "./tools/list_signing_keys.js";
|
|
25
25
|
import { signMessageTool } from "./tools/sign_message.js";
|
|
26
26
|
import { signTypedDataTool } from "./tools/sign_typed_data.js";
|
|
27
|
+
import { signDigestTool } from "./tools/sign_digest.js";
|
|
27
28
|
import { leaseBankrKeyTool } from "./tools/lease_bankr_key.js";
|
|
28
29
|
import { inspectContentTool } from "./tools/inspect_content.js";
|
|
29
30
|
import { platformListAppsTool } from "./tools/platform_list_apps.js";
|
|
@@ -38,6 +39,8 @@ import { treasuryProposeTool } from "./tools/treasury_propose.js";
|
|
|
38
39
|
import { treasurySignProposalTool } from "./tools/treasury_sign_proposal.js";
|
|
39
40
|
import { treasuryListProposalsTool } from "./tools/treasury_list_proposals.js";
|
|
40
41
|
import { inspectInput, inspectOutput, isSecurityEnabled, registerSecret, isSecretRedactionEnabled } from "./security/index.js";
|
|
42
|
+
import { isLocalDaemonMode, createLocalClient } from "./local-client.js";
|
|
43
|
+
import { proxyRequestTool } from "./tools/proxy_request.js";
|
|
41
44
|
const baseUrl = process.env.ONECLAW_BASE_URL ?? "https://api.1claw.xyz";
|
|
42
45
|
const transport = process.env.MCP_TRANSPORT ?? "stdio";
|
|
43
46
|
const port = parseInt(process.env.PORT ?? "8080", 10);
|
|
@@ -66,7 +69,7 @@ function createStdioClientFromEnv() {
|
|
|
66
69
|
}
|
|
67
70
|
throw new UserError("Authentication required. Set ONECLAW_AGENT_API_KEY or ONECLAW_AGENT_TOKEN + ONECLAW_VAULT_ID.");
|
|
68
71
|
}
|
|
69
|
-
if (transport === "stdio" && !localOnly) {
|
|
72
|
+
if (transport === "stdio" && !localOnly && !isLocalDaemonMode()) {
|
|
70
73
|
const agentApiKey = process.env.ONECLAW_AGENT_API_KEY;
|
|
71
74
|
const token = process.env.ONECLAW_AGENT_TOKEN;
|
|
72
75
|
if (!agentApiKey && !token) {
|
|
@@ -74,7 +77,8 @@ if (transport === "stdio" && !localOnly) {
|
|
|
74
77
|
" ONECLAW_AGENT_API_KEY (simplest, auto-discovers agent ID and vault)\n" +
|
|
75
78
|
" ONECLAW_AGENT_ID + ONECLAW_AGENT_API_KEY (explicit agent ID)\n" +
|
|
76
79
|
" ONECLAW_AGENT_TOKEN + ONECLAW_VAULT_ID (static JWT, expires)\n" +
|
|
77
|
-
" ONECLAW_LOCAL_ONLY=true (security tools only, no vault needed)"
|
|
80
|
+
" ONECLAW_LOCAL_ONLY=true (security tools only, no vault needed)\n" +
|
|
81
|
+
" ONECLAW_LOCAL_VAULT=true (local daemon mode, no cloud auth needed)");
|
|
78
82
|
process.exit(1);
|
|
79
83
|
}
|
|
80
84
|
if (!agentApiKey && token && !process.env.ONECLAW_VAULT_ID) {
|
|
@@ -278,8 +282,33 @@ function registerTool(factory) {
|
|
|
278
282
|
},
|
|
279
283
|
});
|
|
280
284
|
}
|
|
285
|
+
// ── Local daemon tools (available when ONECLAW_LOCAL_VAULT=true) ──
|
|
286
|
+
if (isLocalDaemonMode()) {
|
|
287
|
+
const localClient = createLocalClient();
|
|
288
|
+
const proxyTool = proxyRequestTool(localClient);
|
|
289
|
+
server.addTool({
|
|
290
|
+
name: proxyTool.name,
|
|
291
|
+
description: proxyTool.description,
|
|
292
|
+
parameters: proxyTool.parameters,
|
|
293
|
+
execute: async (args, context) => {
|
|
294
|
+
return proxyTool.execute(args, context);
|
|
295
|
+
},
|
|
296
|
+
});
|
|
297
|
+
// In local mode, list_secrets uses the daemon (shows names only, no values)
|
|
298
|
+
server.addTool({
|
|
299
|
+
name: "list_secrets",
|
|
300
|
+
description: "List secret names in the local vault. Values are never exposed. " +
|
|
301
|
+
"Use proxy_request to make API calls with secrets injected.",
|
|
302
|
+
parameters: z.object({}),
|
|
303
|
+
execute: async (_args, { log }) => {
|
|
304
|
+
const result = await localClient.listSecrets();
|
|
305
|
+
log.info(`Listed ${result.secrets.length} local secrets`);
|
|
306
|
+
return JSON.stringify(result.secrets);
|
|
307
|
+
},
|
|
308
|
+
});
|
|
309
|
+
}
|
|
281
310
|
// ── Vault tools (require credentials — skipped in local-only mode) ─
|
|
282
|
-
if (!localOnly) {
|
|
311
|
+
if (!localOnly && !isLocalDaemonMode()) {
|
|
283
312
|
registerTool(listSecretsTool);
|
|
284
313
|
registerTool(getSecretTool);
|
|
285
314
|
registerTool(putSecretTool);
|
|
@@ -299,6 +328,7 @@ if (!localOnly) {
|
|
|
299
328
|
registerTool(listSigningKeysTool);
|
|
300
329
|
registerTool(signMessageTool);
|
|
301
330
|
registerTool(signTypedDataTool);
|
|
331
|
+
registerTool(signDigestTool);
|
|
302
332
|
registerTool(leaseBankrKeyTool);
|
|
303
333
|
registerTool(platformListAppsTool);
|
|
304
334
|
registerTool(platformCreateAppTool);
|
|
@@ -313,7 +343,7 @@ if (!localOnly) {
|
|
|
313
343
|
registerTool(treasuryListProposalsTool);
|
|
314
344
|
}
|
|
315
345
|
// ── Vault-dependent stretch tools + resource ─────────
|
|
316
|
-
if (!localOnly) {
|
|
346
|
+
if (!localOnly && !isLocalDaemonMode()) {
|
|
317
347
|
const rotateAndStoreTool = (client) => ({
|
|
318
348
|
name: "rotate_and_store",
|
|
319
349
|
description: "Store a new value for an existing secret (creating a new version) and return the version number. Useful when an agent has regenerated an API key and needs to persist it.",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LocalDaemonClient — thin client that talks to the local 1claw daemon
|
|
3
|
+
* over a Unix socket. Implements the subset of OneClawClient methods
|
|
4
|
+
* used by MCP tools (list_secrets, get_secret, put_secret, etc.).
|
|
5
|
+
*
|
|
6
|
+
* When ONECLAW_LOCAL_VAULT=true and ONECLAW_DAEMON_SOCKET is set,
|
|
7
|
+
* the MCP server uses this client instead of the cloud API client.
|
|
8
|
+
*/
|
|
9
|
+
interface DaemonSecretMeta {
|
|
10
|
+
name: string;
|
|
11
|
+
type: string;
|
|
12
|
+
synced: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Partial duck-type of OneClawClient that uses the local daemon.
|
|
16
|
+
* Only the methods called by MCP tools are implemented.
|
|
17
|
+
*/
|
|
18
|
+
export declare class LocalDaemonClient {
|
|
19
|
+
private socketPath;
|
|
20
|
+
constructor(socketPath?: string);
|
|
21
|
+
get agentId(): string | undefined;
|
|
22
|
+
get vaultId(): string;
|
|
23
|
+
listSecrets(): Promise<{
|
|
24
|
+
secrets: DaemonSecretMeta[];
|
|
25
|
+
}>;
|
|
26
|
+
getSecret(path: string): Promise<{
|
|
27
|
+
path: string;
|
|
28
|
+
value: string;
|
|
29
|
+
type: string;
|
|
30
|
+
version: number;
|
|
31
|
+
}>;
|
|
32
|
+
putSecret(_path: string, _body: {
|
|
33
|
+
value: string;
|
|
34
|
+
type: string;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
path: string;
|
|
37
|
+
version: number;
|
|
38
|
+
}>;
|
|
39
|
+
deleteSecret(_path: string): Promise<void>;
|
|
40
|
+
createVault(): Promise<never>;
|
|
41
|
+
listVaults(): Promise<{
|
|
42
|
+
vaults: Array<{
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
}>;
|
|
46
|
+
}>;
|
|
47
|
+
/**
|
|
48
|
+
* Proxy a request through the daemon — the key Phase C feature.
|
|
49
|
+
* The AI agent calls this instead of get_secret, and the daemon
|
|
50
|
+
* injects the secret into the HTTP request without exposing it.
|
|
51
|
+
*/
|
|
52
|
+
proxyRequest(opts: {
|
|
53
|
+
secretName: string;
|
|
54
|
+
url: string;
|
|
55
|
+
method?: string;
|
|
56
|
+
headers?: Record<string, string>;
|
|
57
|
+
body?: string;
|
|
58
|
+
}): Promise<{
|
|
59
|
+
status: number;
|
|
60
|
+
headers: Record<string, string>;
|
|
61
|
+
body: string;
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Check if a secret + host combination is allowed by policy.
|
|
65
|
+
*/
|
|
66
|
+
checkPolicy(secretName: string, url: string): Promise<{
|
|
67
|
+
allowed: boolean;
|
|
68
|
+
reason: string;
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
71
|
+
export declare function isLocalDaemonMode(): boolean;
|
|
72
|
+
export declare function createLocalClient(): LocalDaemonClient;
|
|
73
|
+
export {};
|
|
74
|
+
//# sourceMappingURL=local-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-client.d.ts","sourceRoot":"","sources":["../src/local-client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,UAAU,gBAAgB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACnB;AA8DD;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,CAAC,EAAE,MAAM;IAI/B,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAEK,WAAW,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IAgBvD,SAAS,CACX,IAAI,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBpE,SAAS,CACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACvC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAMvC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAI7B,UAAU,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAM5E;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAI9E;;OAEG;IACG,WAAW,CACb,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAMnD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAK3C;AAED,wBAAgB,iBAAiB,IAAI,iBAAiB,CAErD"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LocalDaemonClient — thin client that talks to the local 1claw daemon
|
|
3
|
+
* over a Unix socket. Implements the subset of OneClawClient methods
|
|
4
|
+
* used by MCP tools (list_secrets, get_secret, put_secret, etc.).
|
|
5
|
+
*
|
|
6
|
+
* When ONECLAW_LOCAL_VAULT=true and ONECLAW_DAEMON_SOCKET is set,
|
|
7
|
+
* the MCP server uses this client instead of the cloud API client.
|
|
8
|
+
*/
|
|
9
|
+
import http from "node:http";
|
|
10
|
+
import { homedir } from "node:os";
|
|
11
|
+
import { join } from "node:path";
|
|
12
|
+
const CONFIG_DIR = process.env.ONECLAW_CONFIG_DIR || join(homedir(), ".config", "1claw");
|
|
13
|
+
const DEFAULT_SOCKET = process.env.ONECLAW_DAEMON_SOCKET || join(CONFIG_DIR, "daemon.sock");
|
|
14
|
+
function daemonRequest(socketPath, method, path, body) {
|
|
15
|
+
return new Promise((resolve, reject) => {
|
|
16
|
+
const options = {
|
|
17
|
+
socketPath,
|
|
18
|
+
method,
|
|
19
|
+
path,
|
|
20
|
+
headers: { "Content-Type": "application/json" },
|
|
21
|
+
};
|
|
22
|
+
const req = http.request(options, (res) => {
|
|
23
|
+
const chunks = [];
|
|
24
|
+
res.on("data", (c) => chunks.push(c));
|
|
25
|
+
res.on("end", () => {
|
|
26
|
+
const raw = Buffer.concat(chunks).toString("utf-8");
|
|
27
|
+
try {
|
|
28
|
+
const parsed = JSON.parse(raw);
|
|
29
|
+
if (res.statusCode && res.statusCode >= 400) {
|
|
30
|
+
reject(new Error(parsed.error ?? `Daemon returned ${res.statusCode}`));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
resolve(parsed);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
reject(new Error(`Daemon returned non-JSON: ${raw}`));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
req.on("error", (err) => {
|
|
42
|
+
if (err.code === "ECONNREFUSED" ||
|
|
43
|
+
err.code === "ENOENT") {
|
|
44
|
+
reject(new Error("Local daemon is not running. Start it with: 1claw daemon start"));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
reject(err);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
req.setTimeout(10_000, () => {
|
|
51
|
+
req.destroy(new Error("Daemon request timed out"));
|
|
52
|
+
});
|
|
53
|
+
if (body) {
|
|
54
|
+
req.write(JSON.stringify(body));
|
|
55
|
+
}
|
|
56
|
+
req.end();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Partial duck-type of OneClawClient that uses the local daemon.
|
|
61
|
+
* Only the methods called by MCP tools are implemented.
|
|
62
|
+
*/
|
|
63
|
+
export class LocalDaemonClient {
|
|
64
|
+
socketPath;
|
|
65
|
+
constructor(socketPath) {
|
|
66
|
+
this.socketPath = socketPath ?? DEFAULT_SOCKET;
|
|
67
|
+
}
|
|
68
|
+
get agentId() {
|
|
69
|
+
return "local-daemon";
|
|
70
|
+
}
|
|
71
|
+
get vaultId() {
|
|
72
|
+
return "local";
|
|
73
|
+
}
|
|
74
|
+
async listSecrets() {
|
|
75
|
+
const res = await daemonRequest(this.socketPath, "GET", "/secrets");
|
|
76
|
+
return {
|
|
77
|
+
secrets: res.secrets.map((s) => ({
|
|
78
|
+
...s,
|
|
79
|
+
path: s.name,
|
|
80
|
+
secret_type: s.type,
|
|
81
|
+
version: 1,
|
|
82
|
+
})),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
async getSecret(path) {
|
|
86
|
+
const meta = await daemonRequest(this.socketPath, "GET", `/secrets/${encodeURIComponent(path)}`);
|
|
87
|
+
// The daemon intentionally does NOT serve raw values via GET.
|
|
88
|
+
// For MCP local mode, we allow it since MCP needs the value.
|
|
89
|
+
// The daemon serves metadata; for full values we do a proxy-self call.
|
|
90
|
+
// Actually, for local MCP mode, we extend the daemon protocol to
|
|
91
|
+
// include a value-read endpoint on a separate authenticated path.
|
|
92
|
+
// For now, the MCP in local mode reads the vault file directly.
|
|
93
|
+
throw new Error(`Local daemon does not expose raw secret values via MCP. ` +
|
|
94
|
+
`Use 'proxy' tool to inject "${path}" into API requests without exposing the value.`);
|
|
95
|
+
}
|
|
96
|
+
async putSecret(_path, _body) {
|
|
97
|
+
throw new Error("Writing secrets is not supported in local daemon mode. Use `1claw local add` from the CLI.");
|
|
98
|
+
}
|
|
99
|
+
async deleteSecret(_path) {
|
|
100
|
+
throw new Error("Deleting secrets is not supported in local daemon mode. Use `1claw local rm` from the CLI.");
|
|
101
|
+
}
|
|
102
|
+
async createVault() {
|
|
103
|
+
throw new Error("Vault creation is not supported in local daemon mode.");
|
|
104
|
+
}
|
|
105
|
+
async listVaults() {
|
|
106
|
+
return {
|
|
107
|
+
vaults: [{ id: "local", name: "Local Vault" }],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Proxy a request through the daemon — the key Phase C feature.
|
|
112
|
+
* The AI agent calls this instead of get_secret, and the daemon
|
|
113
|
+
* injects the secret into the HTTP request without exposing it.
|
|
114
|
+
*/
|
|
115
|
+
async proxyRequest(opts) {
|
|
116
|
+
return daemonRequest(this.socketPath, "POST", "/proxy", opts);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Check if a secret + host combination is allowed by policy.
|
|
120
|
+
*/
|
|
121
|
+
async checkPolicy(secretName, url) {
|
|
122
|
+
return daemonRequest(this.socketPath, "POST", "/check-policy", {
|
|
123
|
+
secretName,
|
|
124
|
+
url,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
export function isLocalDaemonMode() {
|
|
129
|
+
return (process.env.ONECLAW_LOCAL_VAULT === "true" ||
|
|
130
|
+
process.env.ONECLAW_LOCAL_VAULT === "1");
|
|
131
|
+
}
|
|
132
|
+
export function createLocalClient() {
|
|
133
|
+
return new LocalDaemonClient();
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=local-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-client.js","sourceRoot":"","sources":["../src/local-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { LocalDaemonClient } from "../local-client.js";
|
|
3
|
+
/**
|
|
4
|
+
* MCP tool: proxy_request
|
|
5
|
+
*
|
|
6
|
+
* Executes an HTTP request with a secret injected by the daemon.
|
|
7
|
+
* The AI model never sees the raw secret value — it specifies
|
|
8
|
+
* which secret to use and where to send the request, and the
|
|
9
|
+
* daemon handles injection per the policy rules.
|
|
10
|
+
*/
|
|
11
|
+
export declare function proxyRequestTool(client: LocalDaemonClient): {
|
|
12
|
+
name: "proxy_request";
|
|
13
|
+
description: string;
|
|
14
|
+
parameters: z.ZodObject<{
|
|
15
|
+
secret_name: z.ZodString;
|
|
16
|
+
url: z.ZodString;
|
|
17
|
+
method: z.ZodDefault<z.ZodOptional<z.ZodEnum<["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD"]>>>;
|
|
18
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
19
|
+
body: z.ZodOptional<z.ZodString>;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
method: "POST" | "GET" | "PUT" | "DELETE" | "PATCH" | "HEAD";
|
|
22
|
+
secret_name: string;
|
|
23
|
+
url: string;
|
|
24
|
+
headers?: Record<string, string> | undefined;
|
|
25
|
+
body?: string | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
secret_name: string;
|
|
28
|
+
url: string;
|
|
29
|
+
method?: "POST" | "GET" | "PUT" | "DELETE" | "PATCH" | "HEAD" | undefined;
|
|
30
|
+
headers?: Record<string, string> | undefined;
|
|
31
|
+
body?: string | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
execute: (args: {
|
|
34
|
+
secret_name: string;
|
|
35
|
+
url: string;
|
|
36
|
+
method?: string;
|
|
37
|
+
headers?: Record<string, string>;
|
|
38
|
+
body?: string;
|
|
39
|
+
}, { log }: {
|
|
40
|
+
log: {
|
|
41
|
+
info: (msg: string) => void;
|
|
42
|
+
};
|
|
43
|
+
}) => Promise<string>;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=proxy_request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy_request.d.ts","sourceRoot":"","sources":["../../src/tools/proxy_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;oBA+BxC;QACF,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,WACQ;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAqB5D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* MCP tool: proxy_request
|
|
4
|
+
*
|
|
5
|
+
* Executes an HTTP request with a secret injected by the daemon.
|
|
6
|
+
* The AI model never sees the raw secret value — it specifies
|
|
7
|
+
* which secret to use and where to send the request, and the
|
|
8
|
+
* daemon handles injection per the policy rules.
|
|
9
|
+
*/
|
|
10
|
+
export function proxyRequestTool(client) {
|
|
11
|
+
return {
|
|
12
|
+
name: "proxy_request",
|
|
13
|
+
description: "Make an HTTP request with a secret injected by the local daemon. " +
|
|
14
|
+
"The secret value is NEVER exposed — the daemon injects it per policy. " +
|
|
15
|
+
"Requires a policy to be configured: `1claw daemon policy add <secret> --hosts <allowed_host>`.",
|
|
16
|
+
parameters: z.object({
|
|
17
|
+
secret_name: z
|
|
18
|
+
.string()
|
|
19
|
+
.min(1)
|
|
20
|
+
.describe("Name of the secret to inject (e.g. 'STRIPE_KEY')"),
|
|
21
|
+
url: z
|
|
22
|
+
.string()
|
|
23
|
+
.url()
|
|
24
|
+
.describe("Target URL for the request"),
|
|
25
|
+
method: z
|
|
26
|
+
.enum(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD"])
|
|
27
|
+
.optional()
|
|
28
|
+
.default("GET")
|
|
29
|
+
.describe("HTTP method"),
|
|
30
|
+
headers: z
|
|
31
|
+
.record(z.string())
|
|
32
|
+
.optional()
|
|
33
|
+
.describe("Additional headers (secret is injected separately)"),
|
|
34
|
+
body: z
|
|
35
|
+
.string()
|
|
36
|
+
.optional()
|
|
37
|
+
.describe("Request body (for POST/PUT/PATCH)"),
|
|
38
|
+
}),
|
|
39
|
+
execute: async (args, { log }) => {
|
|
40
|
+
log.info(`proxy_request: ${args.method ?? "GET"} ${args.url} using secret "${args.secret_name}"`);
|
|
41
|
+
const result = await client.proxyRequest({
|
|
42
|
+
secretName: args.secret_name,
|
|
43
|
+
url: args.url,
|
|
44
|
+
method: args.method,
|
|
45
|
+
headers: args.headers,
|
|
46
|
+
body: args.body,
|
|
47
|
+
});
|
|
48
|
+
return JSON.stringify({
|
|
49
|
+
status: result.status,
|
|
50
|
+
headers: result.headers,
|
|
51
|
+
body: result.body,
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=proxy_request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy_request.js","sourceRoot":"","sources":["../../src/tools/proxy_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAyB;IACtD,OAAO;QACH,IAAI,EAAE,eAAwB;QAC9B,WAAW,EACP,mEAAmE;YACnE,wEAAwE;YACxE,gGAAgG;QACpG,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,kDAAkD,CAAC;YACjE,GAAG,EAAE,CAAC;iBACD,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,CAAC,4BAA4B,CAAC;YAC3C,MAAM,EAAE,CAAC;iBACJ,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBACvD,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,CAAC;iBACL,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBAClB,QAAQ,EAAE;iBACV,QAAQ,CAAC,oDAAoD,CAAC;YACnE,IAAI,EAAE,CAAC;iBACF,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mCAAmC,CAAC;SACrD,CAAC;QACF,OAAO,EAAE,KAAK,EACV,IAMC,EACD,EAAE,GAAG,EAA4C,EACnD,EAAE;YACA,GAAG,CAAC,IAAI,CACJ,kBAAkB,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,kBAAkB,IAAI,CAAC,WAAW,GAAG,CAC1F,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;gBACrC,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBAClB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { OneClawClient } from "../client.js";
|
|
3
|
+
export declare function signDigestTool(client: OneClawClient): {
|
|
4
|
+
name: "sign_digest";
|
|
5
|
+
description: string;
|
|
6
|
+
parameters: z.ZodObject<{
|
|
7
|
+
agent_id: z.ZodOptional<z.ZodString>;
|
|
8
|
+
hash: z.ZodString;
|
|
9
|
+
chain: z.ZodDefault<z.ZodString>;
|
|
10
|
+
signing_key_path: z.ZodOptional<z.ZodString>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
hash: string;
|
|
13
|
+
chain: string;
|
|
14
|
+
agent_id?: string | undefined;
|
|
15
|
+
signing_key_path?: string | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
hash: string;
|
|
18
|
+
agent_id?: string | undefined;
|
|
19
|
+
chain?: string | undefined;
|
|
20
|
+
signing_key_path?: string | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
execute: (args: {
|
|
23
|
+
agent_id?: string;
|
|
24
|
+
hash: string;
|
|
25
|
+
chain?: string;
|
|
26
|
+
signing_key_path?: string;
|
|
27
|
+
}, { log }: {
|
|
28
|
+
log: {
|
|
29
|
+
info: (msg: string) => void;
|
|
30
|
+
};
|
|
31
|
+
}) => Promise<string>;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=sign_digest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign_digest.d.ts","sourceRoot":"","sources":["../../src/tools/sign_digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AAE9D,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa;;;;;;;;;;;;;;;;;;;oBAiBxC;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,WACQ;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAA;KAAE;EAuCtD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { UserError } from "fastmcp";
|
|
3
|
+
import { OneClawApiError } from "../client.js";
|
|
4
|
+
export function signDigestTool(client) {
|
|
5
|
+
return {
|
|
6
|
+
name: "sign_digest",
|
|
7
|
+
description: "Sign a client-computed 32-byte digest directly (raw/blind signing). Returns a 65-byte r‖s‖v ECDSA signature (v=27/28) that recovers to the signer EOA. " +
|
|
8
|
+
"Use this for ERC-1271 / ERC-7739 nested EIP-712 flows (e.g. Polymarket CLOB orders) where the canonical hash is computed client-side and must match the verifier exactly. " +
|
|
9
|
+
"WARNING: this is blind signing — no domain/transaction inspection is performed and guardrails are bypassed. The agent must have `raw_signing_enabled` set by a human, or the request returns 403. Every use is audit-logged.",
|
|
10
|
+
parameters: z.object({
|
|
11
|
+
agent_id: z.string().optional().describe("Agent ID. Uses the current authenticated agent if omitted."),
|
|
12
|
+
hash: z
|
|
13
|
+
.string()
|
|
14
|
+
.regex(/^0x[0-9a-fA-F]{64}$/, "hash must be a 0x-prefixed 32-byte (64 hex char) digest")
|
|
15
|
+
.describe("The 0x-prefixed 32-byte digest to sign directly"),
|
|
16
|
+
chain: z.string().default("ethereum").describe("Chain name (default: ethereum)"),
|
|
17
|
+
signing_key_path: z.string().optional().describe("Vault path to the signing key. Uses the agent's default key for the chain if omitted."),
|
|
18
|
+
}),
|
|
19
|
+
execute: async (args, { log }) => {
|
|
20
|
+
const agentId = args.agent_id || client.agentId;
|
|
21
|
+
if (!agentId) {
|
|
22
|
+
throw new UserError("sign_digest requires an agent_id parameter or agent authentication (ONECLAW_AGENT_API_KEY).");
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const body = {
|
|
26
|
+
intent_type: "eip712_digest",
|
|
27
|
+
chain: args.chain ?? "ethereum",
|
|
28
|
+
hash: args.hash,
|
|
29
|
+
};
|
|
30
|
+
if (args.signing_key_path)
|
|
31
|
+
body.signing_key_path = args.signing_key_path;
|
|
32
|
+
const result = await client.signIntent(agentId, body);
|
|
33
|
+
log.info(`digest signed by ${result.from}`);
|
|
34
|
+
const lines = [
|
|
35
|
+
`Digest signed (raw ECDSA)`,
|
|
36
|
+
`From: ${result.from}`,
|
|
37
|
+
`Chain: ${result.chain}`,
|
|
38
|
+
];
|
|
39
|
+
if (result.signature)
|
|
40
|
+
lines.push(`Signature: ${result.signature}`);
|
|
41
|
+
if (result.typed_data_hash)
|
|
42
|
+
lines.push(`Digest: ${result.typed_data_hash}`);
|
|
43
|
+
return lines.join("\n");
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
if (err instanceof OneClawApiError) {
|
|
47
|
+
if (err.status === 400)
|
|
48
|
+
throw new UserError(err.detail);
|
|
49
|
+
if (err.status === 403)
|
|
50
|
+
throw new UserError(`Access denied: ${err.detail}`);
|
|
51
|
+
}
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=sign_digest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign_digest.js","sourceRoot":"","sources":["../../src/tools/sign_digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAiB,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,UAAU,cAAc,CAAC,MAAqB;IAClD,OAAO;QACL,IAAI,EAAE,aAAsB;QAC5B,WAAW,EACT,yJAAyJ;YACzJ,4KAA4K;YAC5K,8NAA8N;QAChO,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;YACtG,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,KAAK,CAAC,qBAAqB,EAAE,yDAAyD,CAAC;iBACvF,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAChF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uFAAuF,CAAC;SAC1I,CAAC;QACF,OAAO,EAAE,KAAK,EACZ,IAKC,EACD,EAAE,GAAG,EAA4C,EACjD,EAAE;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,SAAS,CACjB,6FAA6F,CAC9F,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,GAA4B;oBACpC,WAAW,EAAE,eAAe;oBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,UAAU;oBAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;gBACF,IAAI,IAAI,CAAC,gBAAgB;oBAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAEzE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtD,GAAG,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE5C,MAAM,KAAK,GAAa;oBACtB,2BAA2B;oBAC3B,SAAS,MAAM,CAAC,IAAI,EAAE;oBACtB,UAAU,MAAM,CAAC,KAAK,EAAE;iBACzB,CAAC;gBAEF,IAAI,MAAM,CAAC,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBACnE,IAAI,MAAM,CAAC,eAAe;oBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;gBAE5E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;oBACnC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;wBAAE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;wBAAE,MAAM,IAAI,SAAS,CAAC,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9E,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1claw/mcp",
|
|
3
|
-
"version": "0.34.
|
|
3
|
+
"version": "0.34.3",
|
|
4
4
|
"mcpName": "io.github.1clawAI/1claw-mcp",
|
|
5
5
|
"description": "MCP server for the 1claw secrets vault — lets AI agents fetch, store, and manage secrets at runtime",
|
|
6
6
|
"type": "module",
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
"@hono/node-server": "^1.19.13",
|
|
60
60
|
"fastmcp": "^3.33.0",
|
|
61
61
|
"glob": "^11.1.0",
|
|
62
|
-
"hono": "^4.12.
|
|
62
|
+
"hono": "^4.12.25",
|
|
63
63
|
"koa": "^3.1.2",
|
|
64
|
-
"undici": "^7.
|
|
64
|
+
"undici": "^7.28.0",
|
|
65
65
|
"zod": "^3.24.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
@@ -69,6 +69,13 @@
|
|
|
69
69
|
"typescript": "^5.5.0",
|
|
70
70
|
"vitest": "^4.1.0"
|
|
71
71
|
},
|
|
72
|
+
"overrides": {
|
|
73
|
+
"axios": "^1.16.0",
|
|
74
|
+
"fast-uri": "^3.1.2",
|
|
75
|
+
"form-data": "^4.0.6",
|
|
76
|
+
"hono": "^4.12.25",
|
|
77
|
+
"undici": "^7.28.0"
|
|
78
|
+
},
|
|
72
79
|
"engines": {
|
|
73
80
|
"node": ">=20.0.0"
|
|
74
81
|
}
|