@karmaniverous/jeeves-server-openclaw 0.5.1 → 0.6.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.
@@ -6,12 +6,15 @@ Operate and interact with a jeeves-server deployment. Use for file browsing, doc
6
6
 
7
7
  | Tool | Purpose |
8
8
  |------|---------|
9
- | `server_status` | Server health: version, uptime, Chrome availability, export formats, connected services |
9
+ | `server_status` | Server health: version, uptime, port, Chrome availability, export formats, auth info |
10
10
  | `server_browse` | Get file/directory metadata and listings for a browse path |
11
11
  | `server_link_info` | Query available link types for a path (page URL, raw URL, export links) |
12
12
  | `server_share` | Generate share links with optional expiry and directory depth |
13
13
  | `server_export` | Trigger export (PDF, DOCX, SVG, PNG, ZIP) and get download URL |
14
14
  | `server_event_status` | Query event gateway status, active schemas, and recent event log |
15
+ | `server_config` | Query resolved server configuration (supports JSONPath) |
16
+ | `server_config_apply` | Apply a configuration patch to the running server |
17
+ | `server_service` | Manage the system service (install, uninstall, start, stop, restart, status) |
15
18
 
16
19
  ## Browse Paths
17
20
 
@@ -44,8 +47,11 @@ Use `server_link_info` first to check which formats are available for a path.
44
47
  Run `server_status` to check:
45
48
  - Server version and uptime
46
49
  - Chrome availability (required for PDF export)
47
- - Connected services (watcher, runner) and their reachability
48
50
  - Available export formats and diagram languages
51
+ - Auth configuration (insider count, key count)
52
+ - Event gateway schemas
53
+
54
+ Service health for companion services (watcher, runner, meta) is mediated through the server's `/status` endpoint. The plugin queries the server only — never watcher or runner directly.
49
55
 
50
56
  ## Bootstrap: Full Stack Setup
51
57
 
@@ -65,7 +71,13 @@ npm install -g @karmaniverous/jeeves-server
65
71
 
66
72
  ### 2. Create config
67
73
 
68
- Create `jeeves-server.config.json` (or any cosmiconfig-supported format) in the server's working directory:
74
+ Generate a starter config:
75
+
76
+ ```bash
77
+ jeeves-server init --config /path/to/config-dir
78
+ ```
79
+
80
+ Or create `jeeves-server/config.json` manually (JSON only — cosmiconfig was removed):
69
81
 
70
82
  ```json
71
83
  {
@@ -107,36 +119,6 @@ Create `jeeves-server.config.json` (or any cosmiconfig-supported format) in the
107
119
  - `keys._plugin` — required for OpenClaw plugin auth
108
120
  - `outsiderPolicy` — optional global constraints on outsider sharing (can reference a named scope)
109
121
 
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).
139
-
140
122
  Environment variable substitution is supported: `${VAR_NAME}` in string values.
141
123
 
142
124
  Generate key seeds with:
@@ -148,11 +130,13 @@ node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
148
130
 
149
131
  ```bash
150
132
  jeeves-server config validate [--config <path>]
151
- jeeves-server config show [--config <path>]
133
+ jeeves-server config [jsonpath] [--config <path>]
152
134
  ```
153
135
 
154
136
  ### 4. Register as system service
155
137
 
138
+ Service commands execute directly (no more printing instructions):
139
+
156
140
  **Windows (NSSM):**
157
141
  ```bash
158
142
  jeeves-server service install [--config <path>]
@@ -162,8 +146,7 @@ jeeves-server service start
162
146
  **Linux (systemd):**
163
147
  ```bash
164
148
  jeeves-server service install [--config <path>]
165
- sudo systemctl enable jeeves-server
166
- sudo systemctl start jeeves-server
149
+ jeeves-server service start
167
150
  ```
168
151
 
169
152
  ### 5. Configure Caddy reverse proxy
@@ -186,14 +169,12 @@ npx @karmaniverous/jeeves-server-openclaw install
186
169
 
187
170
  Configure the plugin in `openclaw.json` with `apiUrl` and `pluginKey` (matching the `_plugin` key seed from server config).
188
171
 
189
- **Note:** The installer handles plugin registration in `openclaw.json` automatically. If using `openclaw plugins install` instead (when available), you may need to manually add the plugin entry to `plugins.entries` in `openclaw.json` with `apiUrl` and `pluginKey` config values.
190
-
191
172
  Restart the gateway to load the plugin.
192
173
 
193
174
  ## Troubleshooting
194
175
 
195
176
  If the server is unreachable:
196
- 1. Is the service running? → `jeeves-server service start`
177
+ 1. Is the service running? → `jeeves-server service status`
197
178
  2. Is the apiUrl correct? → Default: `http://127.0.0.1:1934`
198
179
  3. Is the `_plugin` key configured in both server config and plugin config?
199
180
  4. Is Caddy proxying to the correct port? → Check `Caddyfile`
package/dist/src/cli.d.ts CHANGED
@@ -2,13 +2,8 @@
2
2
  * CLI for installing/uninstalling the jeeves-server OpenClaw plugin.
3
3
  *
4
4
  * Usage:
5
- * npx \@karmaniverous/jeeves-server-openclaw install
6
- * npx \@karmaniverous/jeeves-server-openclaw uninstall
7
- *
8
- * Supports non-default installations via:
9
- * - OPENCLAW_CONFIG env var (path to openclaw.json)
10
- * - OPENCLAW_HOME env var (path to .openclaw directory)
11
- * - Default: ~/.openclaw/openclaw.json
5
+ * `npx @karmaniverous/jeeves-server-openclaw install`
6
+ * `npx @karmaniverous/jeeves-server-openclaw uninstall`
12
7
  *
13
8
  * @packageDocumentation
14
9
  */
@@ -1,6 +1,9 @@
1
1
  /**
2
- * Server tool registrations (server_* tools) for the OpenClaw plugin.
2
+ * Domain-specific server tool registrations for the OpenClaw plugin.
3
+ *
4
+ * Standard tools (`server_status`, `server_config`, `server_config_apply`,
5
+ * `server_service`) come from `createPluginToolset(descriptor)` in core.
3
6
  */
4
7
  import { type PluginApi } from '@karmaniverous/jeeves';
5
- /** Register all server_* tools with the OpenClaw plugin API. */
8
+ /** Register all domain-specific server_* tools with the OpenClaw plugin API. */
6
9
  export declare function registerServerTools(api: PluginApi, baseUrl: string): void;
@@ -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.5.1",
5
+ "version": "0.6.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.5.1",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -115,6 +115,6 @@
115
115
  "hideCredit": true
116
116
  },
117
117
  "dependencies": {
118
- "@karmaniverous/jeeves": "^0.3.0"
118
+ "@karmaniverous/jeeves": "^0.4.4"
119
119
  }
120
120
  }
@@ -1,15 +0,0 @@
1
- /**
2
- * Shared plugin removal logic for extension directory and config cleanup.
3
- *
4
- * @remarks
5
- * Used by both the CLI `uninstall` command and the in-process
6
- * `PluginCommands.uninstall()` implementation.
7
- */
8
- /**
9
- * Remove the plugin extension directory and patch the OpenClaw config.
10
- *
11
- * @param home - OpenClaw home directory path.
12
- * @param configPath - OpenClaw config file path.
13
- * @returns Messages describing what was changed.
14
- */
15
- export declare function removePlugin(home: string, configPath: string): string[];
@@ -1,4 +0,0 @@
1
- /**
2
- * Tests for shared plugin removal logic.
3
- */
4
- export {};
@@ -1,19 +0,0 @@
1
- /**
2
- * Service and plugin lifecycle commands for the JeevesComponent interface.
3
- *
4
- * Wraps NSSM service management (JeevesServer) and plugin uninstall
5
- * via shared removal logic.
6
- */
7
- import { type PluginCommands, type ServiceCommands } from '@karmaniverous/jeeves';
8
- /**
9
- * Create service lifecycle commands for the JeevesServer NSSM service.
10
- *
11
- * @returns ServiceCommands implementation.
12
- */
13
- export declare function createServiceCommands(): ServiceCommands;
14
- /**
15
- * Create plugin lifecycle commands for the OpenClaw plugin.
16
- *
17
- * @returns PluginCommands implementation.
18
- */
19
- export declare function createPluginCommands(): PluginCommands;
@@ -1,4 +0,0 @@
1
- /**
2
- * Tests for service and plugin lifecycle commands.
3
- */
4
- export {};