openclaw-zero-agency 0.2.5 → 1.0.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 +20 -8
- package/dist/index.js +1 -1
- package/openclaw.plugin.json +45 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
# openclaw-zero-agency
|
|
2
2
|
|
|
3
|
-
Capability routing
|
|
3
|
+
Capability routing for OpenClaw agents.
|
|
4
4
|
|
|
5
5
|
**Packs inform judgement; they never confer authority.**
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- `
|
|
7
|
+
## What this does
|
|
8
|
+
|
|
9
|
+
- `zero_agency_route` — match a task to a distilled capability pack and return the pack path
|
|
10
|
+
- `zero_agency_status` — registry state: capability count, token total
|
|
11
|
+
- Routing telemetry — one JSONL line per decision, for measuring routing quality
|
|
12
|
+
|
|
13
|
+
It does **not** enforce tool permissions. Enforcement belongs to OpenClaw's tool policy and exec approval configuration, which are evaluated by the platform, not by a plugin.
|
|
10
14
|
|
|
11
15
|
## Install
|
|
12
16
|
|
|
@@ -23,9 +27,7 @@ openclaw plugins install openclaw-zero-agency
|
|
|
23
27
|
"zero-agency": {
|
|
24
28
|
"config": {
|
|
25
29
|
"registryPath": "/opt/zero-agency/registry/capabilities.json",
|
|
26
|
-
"telemetryPath": "/var/log/zero-agency/events.jsonl"
|
|
27
|
-
"gateMode": "advisory",
|
|
28
|
-
"consequentialTools": ["exec", "apply_patch"]
|
|
30
|
+
"telemetryPath": "/var/log/zero-agency/events.jsonl"
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
33
|
}
|
|
@@ -33,6 +35,16 @@ openclaw plugins install openclaw-zero-agency
|
|
|
33
35
|
}
|
|
34
36
|
```
|
|
35
37
|
|
|
36
|
-
`
|
|
38
|
+
`registryPath` is required and must point at a compiled `capabilities.json`.
|
|
39
|
+
|
|
40
|
+
## The receipt gate is experimental and off by default
|
|
41
|
+
|
|
42
|
+
`gateMode` exists (`off` | `advisory` | `enforce`) but **`enforce` does not work in the current plugin host**. The `before_tool_call` hook and a tool's `execute` run in separate contexts that share neither memory, run id, nor filesystem — verified across four releases. In `enforce`, every gated call raises an approval prompt because no receipt can ever match.
|
|
43
|
+
|
|
44
|
+
Leave it `off`. The routing layer is independent of it and is fully functional.
|
|
45
|
+
|
|
46
|
+
## Provenance
|
|
47
|
+
|
|
48
|
+
Packs are distilled from pinned upstream sources. Every capability records its source files and commit SHA in frontmatter; the registry is compiled, never hand-edited.
|
|
37
49
|
|
|
38
50
|
Requires `openclaw >= 2026.10.1`.
|
package/dist/index.js
CHANGED
|
@@ -120,7 +120,7 @@ export default definePluginEntry({
|
|
|
120
120
|
const ttl = cfg.receiptTtlMs ?? 900000;
|
|
121
121
|
api.registerTool({
|
|
122
122
|
name: "zero_agency_route",
|
|
123
|
-
description: "Find the capability pack governing a domain task. Call before acting on security review, release verification or incident triage.
|
|
123
|
+
description: "Find the capability pack governing a domain task. Call before acting on security review, release verification or incident triage. Returns the governing pack and logs the routing decision.",
|
|
124
124
|
parameters: Type.Object({
|
|
125
125
|
task: Type.String({ description: "The task or question, in natural language." }),
|
|
126
126
|
limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 5 })),
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,18 +2,55 @@
|
|
|
2
2
|
"id": "zero-agency",
|
|
3
3
|
"name": "Zero Agency",
|
|
4
4
|
"description": "Capability routing with a receipt gate. Packs inform judgement; they never confer authority.",
|
|
5
|
-
"activation": {
|
|
6
|
-
|
|
5
|
+
"activation": {
|
|
6
|
+
"onStartup": true
|
|
7
|
+
},
|
|
8
|
+
"contracts": {
|
|
9
|
+
"tools": [
|
|
10
|
+
"zero_agency_route",
|
|
11
|
+
"zero_agency_status"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
7
14
|
"configSchema": {
|
|
8
15
|
"type": "object",
|
|
9
16
|
"additionalProperties": false,
|
|
10
|
-
"required": [
|
|
17
|
+
"required": [
|
|
18
|
+
"registryPath"
|
|
19
|
+
],
|
|
11
20
|
"properties": {
|
|
12
|
-
"registryPath": {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
21
|
+
"registryPath": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "Absolute path to capabilities.json (read-only)."
|
|
24
|
+
},
|
|
25
|
+
"telemetryPath": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "JSONL telemetry path."
|
|
28
|
+
},
|
|
29
|
+
"receiptTtlMs": {
|
|
30
|
+
"type": "integer",
|
|
31
|
+
"minimum": 1000,
|
|
32
|
+
"default": 900000
|
|
33
|
+
},
|
|
34
|
+
"gateMode": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"enum": [
|
|
37
|
+
"off",
|
|
38
|
+
"advisory",
|
|
39
|
+
"enforce"
|
|
40
|
+
],
|
|
41
|
+
"default": "off",
|
|
42
|
+
"description": "Receipt gate mode. EXPERIMENTAL: cross-context receipt correlation does not work in the current plugin host, so keep this off."
|
|
43
|
+
},
|
|
44
|
+
"consequentialTools": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": {
|
|
47
|
+
"type": "string"
|
|
48
|
+
},
|
|
49
|
+
"default": [
|
|
50
|
+
"exec",
|
|
51
|
+
"apply_patch"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
17
54
|
}
|
|
18
55
|
}
|
|
19
56
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openclaw-zero-agency",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Capability routing for OpenClaw agents: distilled packs, a compiled registry, and routing telemetry. Packs inform judgement; they never confer authority.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"license": "MIT",
|