@clawdreyhepburn/carapace 1.0.5 → 1.0.7

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/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.0.7] - 2026-07-13
4
+
5
+ ### Fixed
6
+ - **ESM `require` bug (silent audit-log failure).** The package is `"type": "module"`, but
7
+ `src/index.ts` used bare CommonJS `require("node:fs"/"node:path"/"node:os")` at three sites:
8
+ `appendAuditLog`, and the `setup` / `uninstall` CLI commands. In ESM these throw
9
+ `ReferenceError: require is not defined`. Because `appendAuditLog` wraps its body in
10
+ `try/catch`, the audit log had been silently failing to write; `setup`/`uninstall` would have
11
+ crashed on invocation. Hoisted all Node built-in imports to top-level static `import`
12
+ statements and removed the inline `require()` calls. 22/22 tests pass.
13
+ - **`setup`/`uninstall` ignored `OPENCLAW_HOME`.** Both commands (and the audit log) hardcoded
14
+ `join(homedir(), ".openclaw", ...)`, so users running a custom `OPENCLAW_HOME` had setup,
15
+ uninstall, and audit logging silently read/write the wrong location. Added an `openclawHome()`
16
+ resolver that honors `OPENCLAW_HOME` and falls back to `~/.openclaw`, matching the runtime.
17
+
3
18
  ## [0.4.0] - 2026-03-23
4
19
 
5
20
  ### Breaking Changes
package/README.md CHANGED
@@ -18,10 +18,6 @@
18
18
 
19
19
  ---
20
20
 
21
- <p align="center">
22
- <img src="docs/carapace_proxy_tool_filter_flow_v3.svg" alt="Carapace proxy filtering tool calls" width="700">
23
- </p>
24
-
25
21
  ## What is Carapace?
26
22
 
27
23
  AI agents can do a lot. They can read and write files, run shell commands, call APIs, send emails, push code — anything you give them access to. That's powerful, but it's also dangerous. An agent that can delete files can delete *all* files. An agent that can call APIs can send your data anywhere.
@@ -36,7 +32,7 @@ Carapace gates three types of operations:
36
32
 
37
33
  | What | How it works | Example |
38
34
  |------|-------------|---------|
39
- | **MCP tools** | Your agent connects to external tool servers (file system, GitHub, databases) via [MCP](https://modelcontextprotocol.io/). Carapace checks each tool call against your policies before it reaches the server. | Allow `read_file`, block `write_file` |
35
+ | **MCP tools** | Your agent connects to external tool servers (file system, GitHub, databases) via [MCP](https://modelcontextprotocol.io/). Carapace checks each tool call against your policies before it executes. | Allow `read_file`, block `write_file` |
40
36
  | **Shell commands** | Your agent runs commands on your computer. Carapace checks which program the agent is trying to run. | Allow `git` and `ls`, block `rm` and `sudo` |
41
37
  | **API calls** | Your agent makes HTTP requests to websites and services. Carapace checks which domain the agent is trying to reach. | Allow `api.github.com`, block `pastebin.com` |
42
38
 
@@ -70,45 +66,36 @@ Carapace uses [Cedarling](https://github.com/JanssenProject/jans/tree/main/jans-
70
66
 
71
67
  ### What is MCP?
72
68
 
73
- [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) is an open standard for connecting AI agents to tools. An MCP server provides tools (like "read a file" or "search a database"), and the agent calls those tools to get work done. Carapace sits between the agent and the MCP servers, checking every tool call against your policies.
69
+ [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) is an open standard for connecting AI agents to tools. An MCP server provides tools (like "read a file" or "search a database"), and the agent calls those tools to get work done. Carapace evaluates Cedar policies before each tool call executes, blocking anything your policies don't allow.
74
70
 
75
71
  ---
76
72
 
77
73
  ## How It Works
78
74
 
79
- Carapace has two enforcement modes. You can use either or both.
80
-
81
- ### Mode 1: LLM Proxy (recommended — strongest protection)
82
-
83
- This is the most secure setup. Here's what happens:
84
-
85
- 1. Your agent talks to an AI model (like Claude) to figure out what to do.
86
- 2. The AI model responds with instructions like "call the `exec` tool with command `rm -rf /tmp`."
87
- 3. **Normally**, your agent platform would immediately execute that instruction.
88
- 4. **With Carapace**, the AI model's response goes through Carapace first. Carapace reads every tool call in the response, checks it against your Cedar policies, and **removes any tool calls that aren't allowed.**
89
- 5. Your agent platform only sees the filtered response — it never even knows the AI tried to do something forbidden.
90
-
91
- This works because Carapace intercepts the response before your agent platform processes it. The `setup` command automatically points your provider at Carapace's local proxy, so all LLM traffic flows through Cedar.
75
+ Carapace registers a `before_tool_call` hook in OpenClaw's plugin system. Every time the agent tries to use a tool — any tool — OpenClaw calls Carapace first. Carapace evaluates the call against your Cedar policies and either allows it or blocks it.
92
76
 
93
77
  ```
94
- Your agent → Carapace proxy (localhost) → Anthropic/OpenAI API
95
-
96
- Cedar checks each
97
- tool call in the
98
- AI's response
99
-
100
- Denied calls are
101
- removed before your
102
- agent sees them
78
+ Agent decides to call a tool
79
+
80
+ OpenClaw fires before_tool_call hook
81
+
82
+ Carapace receives { toolName, params }
83
+
84
+ Cedar evaluates the call against your policies
85
+
86
+ ALLOW → tool executes normally
87
+ DENY → tool call is blocked, agent gets an error
103
88
  ```
104
89
 
105
- **Supports:** Anthropic (Claude) and OpenAI (GPT) APIs, both streaming and non-streaming.
90
+ This is simple and un-bypassable every tool call in OpenClaw goes through the hook system. There's no way for the agent to skip it because the enforcement happens inside the runtime, before the tool code runs.
106
91
 
107
- ### Mode 2: Tool-level gating (simpler, weaker)
92
+ ### What gets checked
108
93
 
109
- Carapace registers its own versions of common tools (`carapace_exec` for shell commands, `carapace_fetch` for API calls, `mcp_call` for MCP tools). These check Cedar policies before doing anything. You then disable the built-in versions so the agent is forced to use Carapace's gated versions.
94
+ When Carapace receives a tool call, it maps it to one of three resource types:
110
95
 
111
- This is simpler to set up but weaker it relies on the agent using the right tools. The LLM proxy is better because it's un-bypassable.
96
+ - **`exec` / `process`** **Shell**: extracts the binary name from the command (e.g., `git`, `rm`, `curl`)
97
+ - **`web_fetch` / `web_search`** → **API**: extracts the hostname from the URL (e.g., `api.github.com`, `pastebin.com`)
98
+ - **Everything else** (MCP tools, browser actions, etc.) → **Tool**: uses the tool name directly (e.g., `mcp_call/github/create_issue`, `browser`)
112
99
 
113
100
  ### The Control GUI
114
101
 
@@ -127,37 +114,32 @@ Open it at [http://localhost:19820](http://localhost:19820) after starting Carap
127
114
  ## Architecture
128
115
 
129
116
  ```
130
- +----------------------------+
131
- | Carapace |
132
- +-------------+ | | +------------------+
133
- | | | +----------------------+ | | Anthropic / |
134
- | OpenClaw |---->| | LLM Proxy | |---->| OpenAI API |
135
- | Agent | | | (intercepts tool_use)| | +------------------+
136
- | | | +----------------------+ |
137
- | | | | | +-----------------+
138
- | | | Cedar evaluates | | MCP Server A |
139
- | | | every tool call |---->| (filesystem) |
140
- | | | | | +-----------------+
141
- | | | +----------------------+ | | MCP Server B |
142
- | | | | Cedarling WASM | |---->| (GitHub) |
143
- | | | | (Cedar 4.4.2) | | +-----------------+
144
- | | | +----------------------+ |
145
- | | | +----------------------+ |
146
- | | | | Local Control GUI | |
147
- +-------------+ | +----------------------+ |
148
- +--------------+--------------+
149
- |
150
- +------+------+
151
- | Human |
152
- | (browser) |
153
- +-------------+
117
+ +-------------+ +----------------------------+ +-----------------+
118
+ | | | Carapace | | MCP Server A |
119
+ | OpenClaw |------->| before_tool_call hook |------->| (filesystem) |
120
+ | Agent | | | | +-----------------+
121
+ | | | Cedar evaluates | | MCP Server B |
122
+ | | | every tool call |------->| (GitHub) |
123
+ | | | | | +-----------------+
124
+ | | | +----------------------+ |
125
+ | | | | Cedarling WASM | |
126
+ | | | | (Cedar 4.4.2) | |
127
+ | | | +----------------------+ |
128
+ | | | +----------------------+ |
129
+ | | | | Local Control GUI | |
130
+ +-------------+ | +----------------------+ |
131
+ +--------------+--------------+
132
+ |
133
+ +------+------+
134
+ | Human |
135
+ | (browser) |
136
+ +-------------+
154
137
  ```
155
138
 
156
139
  **Key components:**
157
140
 
158
- - **LLM Proxy** — Sits between your agent and the AI model. Intercepts tool calls in the AI's response and filters out denied ones.
141
+ - **`before_tool_call` hook** — Registered in OpenClaw's plugin system. Every tool call passes through this hook before executing. Denied calls never reach the tool.
159
142
  - **Cedarling WASM** — The Cedar policy engine, running as WebAssembly for near-native speed. This is where your policies are evaluated.
160
- - **MCP Aggregator** — Connects to your upstream MCP servers, discovers their tools, and proxies calls through Cedar.
161
143
  - **Control GUI** — A local web dashboard for managing tools and policies. Single HTML file, no build step, dark theme.
162
144
 
163
145
  ---
@@ -199,104 +181,38 @@ View and edit the Cedar schema that defines your policy types and actions.
199
181
  openclaw plugins install @clawdreyhepburn/carapace
200
182
  ```
201
183
 
202
- ### Step 2: Choose your enforcement mode
203
-
204
- Carapace has two modes. Pick one (or use both for defense in depth).
205
-
206
- #### Option A: LLM Proxy (recommended — strongest protection)
207
-
208
- The proxy sits between your agent and the AI model. It holds the real API key, intercepts every tool call in the AI's response, and removes anything your policies don't allow. **The agent can't bypass this because it never has the real API key.**
209
-
210
- Add these sections to your `~/.openclaw/openclaw.json`:
211
-
212
- **1. Add the Carapace plugin** (under `plugins.entries`):
213
-
214
- ```json
215
- "carapace": {
216
- "enabled": true,
217
- "config": {
218
- "guiPort": 19820,
219
- "defaultPolicy": "allow-all",
220
- "proxy": {
221
- "enabled": true,
222
- "port": 19821,
223
- "upstream": {
224
- "anthropic": {
225
- "apiKey": "sk-ant-your-real-api-key-here"
226
- }
227
- }
228
- },
229
- "servers": {
230
- "filesystem": {
231
- "transport": "stdio",
232
- "command": "npx",
233
- "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/docs"]
234
- }
235
- }
236
- }
237
- }
238
- ```
239
-
240
- For **OpenAI** models, use `"openai"` instead of `"anthropic"` in the upstream block.
184
+ ### Step 2: Enable Carapace
241
185
 
242
- **2. Run setup:**
186
+ Run the setup command:
243
187
 
244
188
  ```bash
245
189
  openclaw carapace setup
246
- openclaw gateway restart
247
190
  ```
248
191
 
249
- This automatically:
250
- - Points your LLM provider at the Carapace proxy (sets `models.providers.<provider>.baseUrl`)
251
- - Denies built-in tools that would bypass Cedar (`exec`, `web_fetch`, `web_search`)
252
-
253
- Your existing API key environment variable (`ANTHROPIC_API_KEY` / `OPENAI_API_KEY`) still works — the proxy replaces the auth header when forwarding. You don't need to move any keys around.
192
+ That's it. This enables the Carapace plugin in your OpenClaw config (`plugins.entries.carapace`). The plugin loads automatically via config watcher — no restart needed.
254
193
 
255
- **3. Verify:**
194
+ If you want to verify:
256
195
 
257
196
  ```bash
258
- curl http://127.0.0.1:19821/health
259
- # Should return: {"ok":true,"stats":{"requests":0,...}}
260
-
261
- openclaw carapace check
262
- # Should return: ✅ No bypass vulnerabilities found.
197
+ openclaw carapace status
263
198
  ```
264
199
 
265
- #### Option B: Tool-level gating (without proxy)
266
-
267
- If you don't want to proxy LLM traffic, just omit the `proxy` section from the config above. Then run:
268
-
269
- ```bash
270
- openclaw carapace setup
271
- openclaw gateway restart
272
- ```
273
-
274
- This denies built-in tools (`exec`, `web_fetch`, `web_search`) so the agent must use Carapace's Cedar-gated versions instead.
275
-
276
- > ⚠️ **Without the proxy, this relies on the agent using the right tools.** The proxy (Option A) is stronger because it's un-bypassable.
277
-
278
200
  ### Step 3: Open the dashboard
279
201
 
280
202
  Go to [http://localhost:19820](http://localhost:19820) to see your tools, manage policies, and control access.
281
203
 
282
204
  ### Uninstalling
283
205
 
284
- Carapace modifies your OpenClaw config during setup (denying built-in tools, adding proxy baseUrl overrides). The uninstall command reverses all of it:
285
-
286
206
  ```bash
287
207
  openclaw carapace uninstall
288
- openclaw gateway restart
289
208
  ```
290
209
 
291
- This will:
292
- - Restore the built-in `exec`, `web_fetch`, and `web_search` tools (removes them from `tools.deny`)
293
- - Remove the proxy baseUrl override so your provider connects directly to its API again
294
- - Disable the Carapace plugin in config
210
+ This disables the Carapace plugin in your config. That's all — no other config changes to clean up.
295
211
 
296
212
  To fully remove the plugin files:
297
213
 
298
214
  ```bash
299
- rm -rf ~/.openclaw/extensions/carapace
215
+ openclaw plugins remove @clawdreyhepburn/carapace
300
216
  ```
301
217
 
302
218
  ### For development
@@ -356,15 +272,10 @@ const policies = await policySource.getEffectivePolicy('agent-id');
356
272
  // Returns: concatenated Cedar policy text from all .cedar files
357
273
  ```
358
274
 
359
- The GUI also exposes an HTTP endpoint:
360
-
361
- ```
362
- GET http://localhost:19820/api/policy-source?principal=<id>
363
- → Returns Cedar policy text (text/plain)
364
- ```
365
-
366
275
  Carapace policies are deployment-wide — the same policies apply to all principals. Principal-specific filtering happens in OVID-ME's mandate evaluation, not here.
367
276
 
277
+ > **Note:** earlier versions of this README advertised a `GET /api/policy-source?principal=<id>` HTTP endpoint. That route was never implemented — the in-process `CarapacePolicySource` class is the only supported integration. If you need an HTTP surface, wrap `CarapacePolicySource` behind your own authenticated server (see `@clawdreyhepburn/ovid-me`'s `server-security` helpers for a pattern).
278
+
368
279
  ---
369
280
 
370
281
  ## Design Philosophy
@@ -397,7 +308,7 @@ Most people should stay at step 3. Step 4 is for when you really understand your
397
308
  - **Malicious MCP servers** — Carapace trusts the MCP servers themselves. If a server lies about what a tool does, Carapace can't detect that.
398
309
  - **Argument-level abuse** — Carapace checks *which* command runs (e.g., `git`), not *how* it's used (e.g., `git push --force`). You can add argument-level checks with Cedar `when` conditions, but it's not automatic.
399
310
  - **Permitted binary abuse** — If you permit `node`, the agent can run `node -e "require('child_process').execSync('rm -rf /')"`. Permitting a language runtime is effectively permitting everything. See [Dangerous Permits](docs/SECURITY.md#dangerous-permits).
400
- - **Code that runs outside the LLM** — OpenClaw hooks and plugins run directly in the process, not through the AI model. Carapace can't gate those. See [Enforcement Coverage](docs/SECURITY.md#enforcement-coverage).
311
+ - **Code that runs outside tool calls** — OpenClaw hooks and plugins run directly in the process, not through tool calls. Carapace can't gate those. See [Enforcement Coverage](docs/SECURITY.md#enforcement-coverage).
401
312
 
402
313
  ### GUI security
403
314
 
@@ -412,35 +323,19 @@ The dashboard runs on `localhost` only — it's not accessible from the network.
412
323
  | Property | Type | Default | Description |
413
324
  |----------|------|---------|-------------|
414
325
  | `guiPort` | number | `19820` | Port for the control dashboard |
415
- | `servers` | object | `{}` | MCP servers to connect to (see Quick Start) |
416
326
  | `policyDir` | string | `~/.openclaw/mcp-policies/` | Where Cedar policy files are stored |
417
327
  | `defaultPolicy` | `"allow-all"` or `"deny-all"` | `"allow-all"` | Starting posture. `allow-all` is safe to install — nothing breaks. `deny-all` requires explicit permits for every tool. |
418
328
  | `verify` | boolean | `false` | Validate policies on every change |
419
- | `proxy.enabled` | boolean | `false` | Enable the LLM proxy |
420
- | `proxy.port` | number | `19821` | Port for the LLM proxy |
421
- | `proxy.upstream.anthropic.apiKey` | string | — | Your real Anthropic API key |
422
- | `proxy.upstream.anthropic.url` | string | `https://api.anthropic.com` | Anthropic API base URL |
423
- | `proxy.upstream.openai.apiKey` | string | — | Your real OpenAI API key |
424
- | `proxy.upstream.openai.url` | string | `https://api.openai.com` | OpenAI API base URL |
425
-
426
- ### MCP server config
427
-
428
- | Property | Type | Description |
429
- |----------|------|-------------|
430
- | `transport` | `"stdio"` | How to connect (stdio is currently supported) |
431
- | `command` | string | Program to run |
432
- | `args` | string[] | Command-line arguments |
433
- | `env` | object | Environment variables |
434
329
 
435
330
  ### CLI commands
436
331
 
437
332
  ```bash
438
- openclaw carapace setup # Configure OpenClaw (proxy baseUrl + deny bypass tools)
439
- openclaw carapace check # Check for bypass vulnerabilities
440
- openclaw carapace status # Show connected servers, tool counts, proxy status
333
+ openclaw carapace setup # Enable the Carapace plugin
334
+ openclaw carapace check # Check for configuration issues
335
+ openclaw carapace status # Show tool counts and policy status
441
336
  openclaw carapace tools # List all tools with enabled/disabled status
442
337
  openclaw carapace verify # Validate all policies
443
- openclaw carapace uninstall # Reverse all config changes, restore built-in tools
338
+ openclaw carapace uninstall # Disable the plugin
444
339
  ```
445
340
 
446
341
  ---
@@ -452,7 +347,7 @@ git clone https://github.com/clawdreyhepburn/carapace.git
452
347
  cd carapace
453
348
  npm install
454
349
 
455
- # Run the test harness (2 MCP servers + GUI on port 19820)
350
+ # Run the test harness (GUI on port 19820)
456
351
  npx tsx test/harness.ts
457
352
 
458
353
  # Type check
@@ -460,7 +355,6 @@ npx tsc --noEmit
460
355
 
461
356
  # Run the full test suite
462
357
  npx tsx test/test-shell-gate.mjs # Shell gating (9 tests)
463
- npx tsx test/test-llm-proxy.mjs # LLM proxy filtering (10 tests)
464
358
  npx tsx test/test-adversarial.mjs # Adversarial bypass attempts (30+9 tests)
465
359
  npx tsx test/test-block-myself.mjs # End-to-end cp block demo
466
360
  ```
@@ -470,12 +364,10 @@ npx tsx test/test-block-myself.mjs # End-to-end cp block demo
470
364
  ```
471
365
  carapace/
472
366
  ├── src/
473
- │ ├── index.ts # OpenClaw plugin entry — registers tools, services, CLI
474
- │ ├── llm-proxy.ts # LLM proxy — intercepts tool calls in AI responses
367
+ │ ├── index.ts # OpenClaw plugin entry — registers before_tool_call hook
475
368
  │ ├── cedar-engine-cedarling.ts # Cedarling WASM engine — real Cedar 4.4.2 evaluation
476
369
  │ ├── cedar-engine.ts # Fallback engine (string matching, no WASM needed)
477
- │ ├── mcp-aggregator.ts # Connects to MCP servers, discovers tools, proxies calls
478
- │ ├── policy-source.ts # PolicySource for OVID-ME integration
370
+ │ ├── policy-source.ts # PolicySource for OVID-ME integration
479
371
  │ ├── types.ts # Shared TypeScript types
480
372
  │ └── gui/
481
373
  │ ├── server.ts # HTTP server for the dashboard
@@ -483,7 +375,6 @@ carapace/
483
375
  ├── test/
484
376
  │ ├── harness.ts # Standalone test environment
485
377
  │ ├── test-shell-gate.mjs # Shell command authorization tests
486
- │ ├── test-llm-proxy.mjs # LLM proxy interception tests
487
378
  │ ├── test-adversarial.mjs # Adversarial bypass test suite
488
379
  │ └── test-block-myself.mjs # End-to-end demo: block cp, try to copy, get denied
489
380
  ├── docs/
@@ -516,7 +407,10 @@ More at [clawdrey.com](https://clawdrey.com).
516
407
  - **[Cedarling](https://github.com/JanssenProject/jans/tree/main/jans-cedarling)** — Cedar engine by [Gluu](https://gluu.org/), compiled to WebAssembly for speed.
517
408
  - **[MCP](https://modelcontextprotocol.io/)** — Open protocol for connecting AI agents to tools.
518
409
  - **[OpenClaw](https://github.com/openclaw/openclaw)** — Open-source AI agent platform.
410
+ - **[OVID](https://github.com/clawdreyhepburn/ovid)** — Cryptographic identity + Cedar mandates for sub-agents (JWTs with EdDSA/Ed25519).
519
411
  - **[OVID-ME](https://github.com/clawdreyhepburn/ovid-me)** — Per-agent mandate evaluation (uses Carapace as its policy source).
412
+ - **[@clawdreyhepburn/openclaw-ovid](https://github.com/clawdreyhepburn/openclaw-ovid)** — OpenClaw plugin that auto-issues an OVID identity badge to every spawned sub-agent.
413
+ - **[@clawdreyhepburn/openclaw-ovid-me](https://github.com/clawdreyhepburn/openclaw-ovid-me)** — OpenClaw plugin that enforces those per-agent badges at every tool call. Carapace (this project) is the human-set ceiling *above* those per-agent mandates: both must allow an action for it to run.
520
414
 
521
415
  ---
522
416
 
@@ -85,16 +85,14 @@ export class CedarlingEngine {
85
85
  const typeMatch = request.resource.match(/^(?:\w+::)?(\w+)::/);
86
86
  if (typeMatch)
87
87
  resourceEntityType = typeMatch[1];
88
- const cedarContext = { ...(request.context ?? {}) };
89
- const effectivePrincipalId = principalId;
90
88
  const result = await this.cedarling.authorize_unsigned({
91
89
  principals: [
92
90
  {
93
91
  cedar_entity_mapping: {
94
92
  entity_type: `${this.namespace}::${this.agentEntityType}`,
95
- id: effectivePrincipalId,
93
+ id: principalId,
96
94
  },
97
- name: effectivePrincipalId,
95
+ name: principalId,
98
96
  },
99
97
  ],
100
98
  action: `${this.namespace}::Action::"${actionName}"`,
@@ -105,7 +103,7 @@ export class CedarlingEngine {
105
103
  },
106
104
  ...(request.context ?? {}),
107
105
  },
108
- context: cedarContext,
106
+ context: request.context ?? {},
109
107
  });
110
108
  const decision = result.decision ? "allow" : "deny";
111
109
  const resultJson = JSON.parse(result.json_string());
@@ -403,38 +401,6 @@ export class CedarlingEngine {
403
401
  },
404
402
  },
405
403
  },
406
- Agent: {
407
- shape: {
408
- type: "Record",
409
- attributes: {
410
- role: {
411
- type: "EntityOrCommon",
412
- name: "String",
413
- required: false,
414
- },
415
- parentChain: {
416
- type: "Set",
417
- element: { type: "EntityOrCommon", name: "String" },
418
- required: false,
419
- },
420
- issuer: {
421
- type: "EntityOrCommon",
422
- name: "String",
423
- required: false,
424
- },
425
- depth: {
426
- type: "EntityOrCommon",
427
- name: "Long",
428
- required: false,
429
- },
430
- attestation_proven: {
431
- type: "EntityOrCommon",
432
- name: "Boolean",
433
- required: false,
434
- },
435
- },
436
- },
437
- },
438
404
  Tool: {
439
405
  shape: {
440
406
  type: "Record",
@@ -449,21 +415,6 @@ export class CedarlingEngine {
449
415
  name: "String",
450
416
  required: false,
451
417
  },
452
- project: {
453
- type: "EntityOrCommon",
454
- name: "String",
455
- required: false,
456
- },
457
- team: {
458
- type: "EntityOrCommon",
459
- name: "String",
460
- required: false,
461
- },
462
- domain: {
463
- type: "EntityOrCommon",
464
- name: "String",
465
- required: false,
466
- },
467
418
  },
468
419
  },
469
420
  },
@@ -510,17 +461,9 @@ export class CedarlingEngine {
510
461
  actions: {
511
462
  call_tool: {
512
463
  appliesTo: {
513
- principalTypes: [this.agentEntityType, "Agent"],
464
+ principalTypes: [this.agentEntityType],
514
465
  resourceTypes: ["Tool"],
515
- context: {
516
- type: "Record",
517
- attributes: {
518
- agent_role: { type: "EntityOrCommon", name: "String", required: false },
519
- agent_issuer: { type: "EntityOrCommon", name: "String", required: false },
520
- agent_depth: { type: "EntityOrCommon", name: "Long", required: false },
521
- agent_attestation_proven: { type: "EntityOrCommon", name: "Boolean", required: false },
522
- },
523
- },
466
+ context: { type: "Record", attributes: {} },
524
467
  },
525
468
  },
526
469
  list_tools: {
@@ -586,10 +529,21 @@ export class CedarlingEngine {
586
529
  let hasPermit = false;
587
530
  let hasForbid = false;
588
531
  const reasons = [];
532
+ const principalId = request.principal;
533
+ const actionId = request.action;
534
+ const resourceId = request.resource;
589
535
  for (const [id, policy] of this.policies) {
590
- // Simple: check if resource appears in the policy
591
- const resourceId = request.resource.replace(/.*::"/g, "").replace(/"$/, "");
592
- if (!policy.raw.includes(`"${resourceId}"`))
536
+ // Parse constraints from raw policy text
537
+ const hasPrincipalConstraint = /principal\s*==/.test(policy.raw);
538
+ const hasActionConstraint = /action\s*==/.test(policy.raw);
539
+ const hasResourceConstraint = /resource\s*==/.test(policy.raw);
540
+ // Check if this policy matches the request
541
+ // Unconstrained fields match everything (Cedar semantics)
542
+ if (hasPrincipalConstraint && !policy.raw.includes(principalId))
543
+ continue;
544
+ if (hasActionConstraint && !policy.raw.includes(actionId))
545
+ continue;
546
+ if (hasResourceConstraint && !policy.raw.includes(resourceId))
593
547
  continue;
594
548
  if (policy.effect === "forbid") {
595
549
  hasForbid = true;
@@ -1 +1 @@
1
- {"version":3,"file":"cedar-engine-cedarling.js","sourceRoot":"","sources":["../src/cedar-engine-cedarling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cedar-engine-cedarling.js","sourceRoot":"","sources":["../src/cedar-engine-cedarling.ts"],"names":[],"mappings":"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"}
package/dist/gui/html.js CHANGED
@@ -338,6 +338,13 @@ export function guiHtml() {
338
338
  </div>
339
339
  </header>
340
340
 
341
+ <div id="not-enforcing-banner" style="display:none; background:#e8a735; color:#1a1a1a; padding:1rem 1.5rem; font-size:0.95rem; text-align:center; font-weight:500; line-height:1.6;">
342
+ ⚠️ Carapace is loaded but <strong>not enforcing</strong>. No tools are gated and the LLM proxy is disabled.
343
+ Your agent is running without policy protection.<br>
344
+ To activate, run these two commands in your terminal:<br>
345
+ <code style="background:rgba(0,0,0,0.1); padding:0.3em 0.6em; border-radius:3px; display:inline-block; margin-top:0.3rem;">openclaw carapace setup && openclaw gateway restart</code>
346
+ </div>
347
+
341
348
  <div class="container">
342
349
  <div id="servers-section">
343
350
  <h2>MCP Servers</h2>
@@ -532,6 +539,13 @@ export function guiHtml() {
532
539
  function render() {
533
540
  document.getElementById('total-count').textContent = state.toolCount ?? state.tools.length;
534
541
  document.getElementById('enabled-count').textContent = state.enabledCount ?? state.tools.filter(t => t.enabled).length;
542
+
543
+ // Show/hide not-enforcing banner
544
+ const banner = document.getElementById('not-enforcing-banner');
545
+ if (banner) {
546
+ banner.style.display = state.notEnforcing ? 'block' : 'none';
547
+ }
548
+
535
549
  renderServers();
536
550
  renderTools();
537
551
  renderPolicies();