aquaman-proxy 0.11.4 → 0.12.0
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 +49 -56
- package/dist/cli/index.js +560 -55
- package/dist/cli/index.js.map +1 -1
- package/dist/core/audit/logger.d.ts +21 -0
- package/dist/core/audit/logger.d.ts.map +1 -1
- package/dist/core/audit/logger.js +46 -0
- package/dist/core/audit/logger.js.map +1 -1
- package/dist/core/credentials/backends/onepassword.d.ts +2 -0
- package/dist/core/credentials/backends/onepassword.d.ts.map +1 -1
- package/dist/core/credentials/backends/onepassword.js +75 -33
- package/dist/core/credentials/backends/onepassword.js.map +1 -1
- package/dist/core/credentials/index.d.ts +1 -1
- package/dist/core/credentials/index.d.ts.map +1 -1
- package/dist/core/credentials/index.js +1 -1
- package/dist/core/credentials/index.js.map +1 -1
- package/dist/core/credentials/store.d.ts.map +1 -1
- package/dist/core/credentials/store.js +2 -4
- package/dist/core/credentials/store.js.map +1 -1
- package/dist/core/index.d.ts +2 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/redactor/index.d.ts +96 -0
- package/dist/core/redactor/index.d.ts.map +1 -0
- package/dist/core/redactor/index.js +230 -0
- package/dist/core/redactor/index.js.map +1 -0
- package/dist/daemon.d.ts +20 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +147 -0
- package/dist/daemon.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -1,66 +1,46 @@
|
|
|
1
1
|
# aquaman-proxy
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The vault + daemon + audit core of [aquaman](https://github.com/tech4242/aquaman). API key protection for AI agents — credentials stay in your vault, never in the agent's memory.
|
|
4
|
+
|
|
5
|
+
This is the **always-on piece**: every other aquaman package (`aquaman-plugin` for OpenClaw, `aquaman-coder` for AI coding agents) talks to it. If you only install one aquaman package, install this one.
|
|
4
6
|
|
|
5
7
|
```
|
|
6
|
-
Agent / OpenClaw
|
|
7
|
-
┌──────────────────────┐
|
|
8
|
-
│ │
|
|
9
|
-
│ ANTHROPIC_BASE_URL
|
|
10
|
-
│ = aquaman.local │
|
|
11
|
-
│
|
|
12
|
-
│ fetch() interceptor
|
|
13
|
-
│ redirects channel │
|
|
14
|
-
│ API traffic │
|
|
15
|
-
│ │
|
|
16
|
-
│
|
|
17
|
-
│ No
|
|
18
|
-
│
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
slack.com/api ...
|
|
8
|
+
Agent / OpenClaw / Coding Agent Aquaman Proxy
|
|
9
|
+
┌──────────────────────┐ ┌──────────────────────┐
|
|
10
|
+
│ │ │ │
|
|
11
|
+
│ ANTHROPIC_BASE_URL │═══════ UDS ════════>│ Keychain / 1Pass / │
|
|
12
|
+
│ = aquaman.local │ │ Vault / Encrypted │
|
|
13
|
+
│ │<══════════════════ │ │
|
|
14
|
+
│ fetch() interceptor │═══ broker:resolve ═>│ + Policy enforced │
|
|
15
|
+
│ redirects channel │ │ + Auth injected: │
|
|
16
|
+
│ API traffic │ │ header / url-path │
|
|
17
|
+
│ │ ~/.aquaman/ │ basic / oauth │
|
|
18
|
+
│ No credentials. │ proxy.sock │ │
|
|
19
|
+
│ No open ports. │ (chmod 0o600) │ │
|
|
20
|
+
│ Nothing to steal. │ │ │
|
|
21
|
+
└──────────────────────┘ └───┬──────────┬───────┘
|
|
22
|
+
│ │
|
|
23
|
+
│ ▼
|
|
24
|
+
│ ~/.aquaman/audit/
|
|
25
|
+
│ (hash-chained log)
|
|
26
|
+
▼
|
|
27
|
+
api.anthropic.com
|
|
28
|
+
api.mistral.ai
|
|
29
|
+
api.telegram.org
|
|
30
|
+
slack.com/api …
|
|
30
31
|
```
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
## Quick Start
|
|
33
|
+
## Install
|
|
35
34
|
|
|
36
35
|
```bash
|
|
37
|
-
npm install -g aquaman-proxy
|
|
38
|
-
aquaman setup
|
|
39
|
-
|
|
36
|
+
npm install -g aquaman-proxy
|
|
37
|
+
aquaman setup # backend wizard + store keys
|
|
38
|
+
aquaman daemon & # start the proxy on ~/.aquaman/proxy.sock
|
|
40
39
|
```
|
|
41
40
|
|
|
42
|
-
> **Installed via ClawHub?** The proxy is already bundled with the plugin.
|
|
43
|
-
> Run `openclaw aquaman setup` to store your keys.
|
|
44
|
-
|
|
45
|
-
Troubleshooting: `aquaman doctor`
|
|
46
|
-
|
|
47
41
|
## CLI
|
|
48
42
|
|
|
49
|
-
|
|
50
|
-
|---------|-------------|
|
|
51
|
-
| `aquaman setup` | Guided onboarding (stores keys, installs plugin, applies policy defaults) |
|
|
52
|
-
| `aquaman doctor` | Diagnose issues with actionable fixes |
|
|
53
|
-
| `aquaman credentials add <svc> <key>` | Store a credential |
|
|
54
|
-
| `aquaman credentials list` | List stored credentials |
|
|
55
|
-
| `aquaman migrate openclaw --auto` | Migrate plaintext secrets to secure store |
|
|
56
|
-
| `aquaman daemon` | Run proxy in foreground |
|
|
57
|
-
| `aquaman start` | Start proxy + launch OpenClaw |
|
|
58
|
-
| `aquaman stop` | Stop running proxy |
|
|
59
|
-
| `aquaman status` | Show config and proxy status |
|
|
60
|
-
| `aquaman policy list` | List configured policy rules |
|
|
61
|
-
| `aquaman policy test <svc> <method> <path>` | Dry-run a request against policy rules |
|
|
62
|
-
| `aquaman audit tail` | Recent audit entries |
|
|
63
|
-
| `aquaman audit verify` | Verify hash chain integrity |
|
|
43
|
+
`aquaman help`, `aquaman doctor` are your friends.
|
|
64
44
|
|
|
65
45
|
## 25 Builtin Services
|
|
66
46
|
|
|
@@ -75,18 +55,31 @@ Troubleshooting: `aquaman doctor`
|
|
|
75
55
|
|
|
76
56
|
## Security
|
|
77
57
|
|
|
78
|
-
|
|
58
|
+
Four layers of protection:
|
|
79
59
|
|
|
80
|
-
- **Process isolation** — credentials in a separate address space, connected via UDS (`chmod
|
|
60
|
+
- **Process isolation** — credentials in a separate address space, connected via UDS (`chmod 0o600`)
|
|
81
61
|
- **Service allowlisting** — `proxiedServices` controls which APIs the agent can reach
|
|
82
|
-
- **Request policies** — method + path rules per service, checked *before* credential injection ([details](https://github.com/tech4242/aquaman#request-policies))
|
|
62
|
+
- **Request policies** — method + path rules per service, checked *before* credential injection ([details in the root README](https://github.com/tech4242/aquaman#request-policies))
|
|
83
63
|
- **Audit trail** — SHA-256 hash-chained logs of every credential use
|
|
84
64
|
|
|
85
|
-
7 credential backends: Keychain, 1Password, Vault, Bitwarden, KeePassXC, systemd-creds, encrypted-file.
|
|
65
|
+
7 credential backends: Keychain, 1Password, HashiCorp Vault, Bitwarden, KeePassXC, systemd-creds, encrypted-file.
|
|
66
|
+
|
|
67
|
+
## Broker endpoint (v0.12.0+)
|
|
68
|
+
|
|
69
|
+
`POST /broker/resolve` over the UDS — used by `aquaman-coder` to materialize credentials per tool call. Body:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{"service":"anthropic","key":"api_key","ttl_seconds":60}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Response: `{"value":"...","expires_at":"2026-05-20T12:34:56Z"}`. Validates service/key names against safe regexes; 4 KB body cap; policy is applied before resolution.
|
|
86
76
|
|
|
87
77
|
## Documentation
|
|
88
78
|
|
|
89
|
-
|
|
79
|
+
- **[Root README](https://github.com/tech4242/aquaman#readme)** — value prop, three-path Quick Start, security model
|
|
80
|
+
- **[`docs/PACKAGES.md`](../../docs/PACKAGES.md)** — package boundary policy
|
|
81
|
+
- **[`docs/compliance/`](../../docs/compliance/)** — MITRE ATLAS + NIST SP 800-53 mappings
|
|
82
|
+
- **[`CLAUDE.md`](../../CLAUDE.md)** — architecture notes
|
|
90
83
|
|
|
91
84
|
## License
|
|
92
85
|
|