@karmaniverous/jeeves-server-openclaw 0.2.0 → 0.3.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.
@@ -105,7 +105,37 @@ Create `jeeves-server.config.json` (or any cosmiconfig-supported format) in the
105
105
  - `insiders` — map of email → `{ scopes?, allow?, deny? }`
106
106
  - `keys._internal` — required for PDF/DOCX export (Puppeteer auth)
107
107
  - `keys._plugin` — required for OpenClaw plugin auth
108
- - `outsiderPolicy` — optional global constraints on outsider sharing
108
+ - `outsiderPolicy` — optional global constraints on outsider sharing (can reference a named scope)
109
+
110
+ ### Named Scope Composition
111
+
112
+ Define reusable scope policies at the top level, then reference them by name:
113
+
114
+ ```json
115
+ {
116
+ "scopes": {
117
+ "standard": { "allow": ["/**"], "deny": ["/secrets/**"] },
118
+ "no-vc": { "deny": ["/projects/vc/**"] },
119
+ "no-private": { "deny": ["/projects/jill/**"] }
120
+ },
121
+ "insiders": {
122
+ "dev@example.com": { "scopes": ["standard", "no-vc"] },
123
+ "jill@example.com": {
124
+ "scopes": ["standard", "no-private"],
125
+ "allow": ["/projects/jill/**"]
126
+ }
127
+ }
128
+ }
129
+ ```
130
+
131
+ **Composition rules:**
132
+ - Multiple named scopes are **unioned** — all `allow` and `deny` patterns merge
133
+ - Explicit `allow`/`deny` on the insider or key entry act as **overrides** with highest precedence:
134
+ 1. Explicit `deny` → **DENIED** (overrides named allow)
135
+ 2. Explicit `allow` → **ALLOWED** (overrides named deny)
136
+ 3. Standard named scope `allow AND NOT deny`
137
+
138
+ This lets you compose broad policies (e.g. `no-private`) and surgically override them for specific users (e.g. Jill gets access to her own project).
109
139
 
110
140
  Environment variable substitution is supported: `${VAR_NAME}` in string values.
111
141
 
@@ -2,7 +2,7 @@
2
2
  "id": "jeeves-server-openclaw",
3
3
  "name": "Jeeves Server",
4
4
  "description": "File browsing, document sharing, export, and event gateway tools for jeeves-server.",
5
- "version": "0.2.0",
5
+ "version": "0.3.0",
6
6
  "skills": [
7
7
  "dist/skills/jeeves-server"
8
8
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@karmaniverous/jeeves-server-openclaw",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {