You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -110,6 +110,19 @@ asyncio.run(main())
110
110
111
111
`agent-kernel` sits **above**`contextweaver` (context compilation) and **above** raw tool execution. It provides the authorization, execution, and audit layer.
112
112
113
+
## Weaver Spec Compatibility: v0.1.0
114
+
115
+
agent-kernel is a compliant implementation of [weaver-spec v0.1.0](https://github.com/dgenio/weaver-spec).
116
+
The following invariants are satisfied:
117
+
118
+
| Invariant | Description | How agent-kernel satisfies it |
|**I-01**| LLM never sees raw tool output by default |`Context Firewall` always transforms `RawResult → Frame`; raw driver output is not returned by default, and non-admin principals cannot obtain `raw` response mode |
121
+
|**I-02**| Every execution is authorized and auditable |`PolicyEngine` authorizes at grant time; a valid `CapabilityToken` (HMAC-verified on every `invoke()`) carries the authorization decision; `TraceStore` records every `ActionTrace`|
122
+
|**I-06**| CapabilityTokens are scoped | Tokens bind `principal_id + capability_id + constraints` with an explicit TTL; `revoke(token_id)` / `revoke_all(principal_id)` are supported |
123
+
124
+
See [docs/agent-context/invariants.md](docs/agent-context/invariants.md) for the full internal invariant list and [weaver-spec INVARIANTS.md](https://github.com/dgenio/weaver-spec/blob/main/docs/INVARIANTS.md) for the specification.
125
+
113
126
## Security disclaimers
114
127
115
128
> **v0.1 is not production-hardened for real authentication.**
Copy file name to clipboardExpand all lines: docs/agent-context/invariants.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,9 +11,12 @@ All three are equally critical — there is no priority ordering.
11
11
| Invariant | Requirement | Where enforced |
12
12
|-----------|-------------|----------------|
13
13
|**I-01**| Every tool output must pass through a context boundary before reaching the LLM |`Firewall.transform()` in `firewall/transform.py`|
14
-
|**I-02**|Context boundaries must enforce budgets (size, depth, field count) |`Budgets`in `firewall/budgets.py`|
14
+
|**I-02**|Every execution must be authorized and auditable (CapabilityToken validated before execution; TraceEvent recorded after) |`HMACTokenProvider.verify()` + `TraceStore.record()`in `kernel.py`; `PolicyEngine.evaluate()` at grant time in `grant_capability()`|
15
15
|**I-06**| Tokens must bind principal + capability + constraints; no reuse across principals |`HMACTokenProvider.verify()` in `tokens.py`|
16
16
17
+
> **Budget enforcement** (size, depth, field count via `Budgets` in `firewall/budgets.py`) is an
18
+
> implementation constraint that strengthens I-01. It has no separate invariant number in weaver-spec.
19
+
17
20
## Forbidden shortcuts — "never do" list
18
21
19
22
These constraints are non-negotiable. Violating any one silently degrades security.
0 commit comments