robot-resources 1.10.2 → 1.10.3
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/lib/health-report.js +3 -3
- package/lib/tool-config.js +8 -8
- package/lib/wizard.js +2 -2
- package/package.json +1 -1
package/lib/health-report.js
CHANGED
|
@@ -12,7 +12,7 @@ const PROBE_TIMEOUT_MS = 5_000;
|
|
|
12
12
|
* 1. Router — GET http://127.0.0.1:3838/health
|
|
13
13
|
* 2. Scraper — check openclaw.json for scraper MCP registration
|
|
14
14
|
* 3. Platform — GET {platformUrl}/v1/health with api_key
|
|
15
|
-
* 4. MCP — check openclaw.json for
|
|
15
|
+
* 4. MCP — check openclaw.json for robot-resources-router registration
|
|
16
16
|
*
|
|
17
17
|
* @returns {{ status: 'healthy'|'partial'|'failed', components: Object, summary: string }}
|
|
18
18
|
*/
|
|
@@ -113,10 +113,10 @@ function probeMcp() {
|
|
|
113
113
|
try {
|
|
114
114
|
const ocPath = join(homedir(), '.openclaw', 'openclaw.json');
|
|
115
115
|
const ocConfig = JSON.parse(readFileSync(ocPath, 'utf-8'));
|
|
116
|
-
const hasPlugin = !!ocConfig?.plugins?.entries?.['
|
|
116
|
+
const hasPlugin = !!ocConfig?.plugins?.entries?.['robot-resources-router']?.enabled;
|
|
117
117
|
return {
|
|
118
118
|
healthy: hasPlugin,
|
|
119
|
-
detail: hasPlugin ? 'plugin registered' : '
|
|
119
|
+
detail: hasPlugin ? 'plugin registered' : 'robot-resources-router not registered',
|
|
120
120
|
};
|
|
121
121
|
} catch {
|
|
122
122
|
return { healthy: false, detail: 'openclaw.json not found' };
|
package/lib/tool-config.js
CHANGED
|
@@ -28,7 +28,7 @@ function readOrCreateOpenClawConfig() {
|
|
|
28
28
|
/**
|
|
29
29
|
* Trust the Robot Resources plugin in OpenClaw config.
|
|
30
30
|
*
|
|
31
|
-
* Adds "
|
|
31
|
+
* Adds "robot-resources-router" to plugins.allow so OpenClaw loads it without
|
|
32
32
|
* provenance warnings. The plugin's before_model_resolve hook intercepts
|
|
33
33
|
* ALL LLM calls regardless of the default model — no need to change the
|
|
34
34
|
* default model (which causes LiveSessionModelSwitchError in OC).
|
|
@@ -44,11 +44,11 @@ function trustPlugin() {
|
|
|
44
44
|
if (!config.plugins) config.plugins = {};
|
|
45
45
|
if (!Array.isArray(config.plugins.allow)) config.plugins.allow = [];
|
|
46
46
|
|
|
47
|
-
if (config.plugins.allow.includes('
|
|
47
|
+
if (config.plugins.allow.includes('robot-resources-router')) {
|
|
48
48
|
return false;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
config.plugins.allow.push('
|
|
51
|
+
config.plugins.allow.push('robot-resources-router');
|
|
52
52
|
|
|
53
53
|
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
54
54
|
return true;
|
|
@@ -94,7 +94,7 @@ function registerScraperMcp() {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
|
-
* Copy the bundled plugin files to ~/.openclaw/extensions/
|
|
97
|
+
* Copy the bundled plugin files to ~/.openclaw/extensions/robot-resources-router/.
|
|
98
98
|
*
|
|
99
99
|
* The plugin ships as a CLI dependency (@robot-resources/router — the
|
|
100
100
|
* router IS the OC plugin in the in-process architecture).
|
|
@@ -110,7 +110,7 @@ function installPluginFiles() {
|
|
|
110
110
|
const pluginPkgPath = require.resolve('@robot-resources/router/package.json');
|
|
111
111
|
const pluginDir = dirname(pluginPkgPath);
|
|
112
112
|
|
|
113
|
-
const targetDir = join(homedir(), '.openclaw', 'extensions', '
|
|
113
|
+
const targetDir = join(homedir(), '.openclaw', 'extensions', 'robot-resources-router');
|
|
114
114
|
mkdirSync(targetDir, { recursive: true });
|
|
115
115
|
|
|
116
116
|
for (const file of ['index.js', 'openclaw.plugin.json', 'package.json']) {
|
|
@@ -129,7 +129,7 @@ function installPluginFiles() {
|
|
|
129
129
|
|
|
130
130
|
/**
|
|
131
131
|
* Register the plugin in openclaw.json so OC loads it on gateway start.
|
|
132
|
-
* Adds plugins.entries.
|
|
132
|
+
* Adds plugins.entries.robot-resources-router = { enabled: true }.
|
|
133
133
|
*/
|
|
134
134
|
function registerPluginEntry() {
|
|
135
135
|
const configPath = join(homedir(), '.openclaw', 'openclaw.json');
|
|
@@ -141,9 +141,9 @@ function registerPluginEntry() {
|
|
|
141
141
|
if (!config.plugins.entries) config.plugins.entries = {};
|
|
142
142
|
|
|
143
143
|
// Already registered
|
|
144
|
-
if (config.plugins.entries['
|
|
144
|
+
if (config.plugins.entries['robot-resources-router']) return;
|
|
145
145
|
|
|
146
|
-
config.plugins.entries['
|
|
146
|
+
config.plugins.entries['robot-resources-router'] = { enabled: true };
|
|
147
147
|
|
|
148
148
|
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
149
149
|
} catch {
|
package/lib/wizard.js
CHANGED
|
@@ -32,7 +32,7 @@ const CLI_VERSION = (() => {
|
|
|
32
32
|
*
|
|
33
33
|
* 1. Provision an anonymous api_key (telemetry/dashboard identity).
|
|
34
34
|
* 2. Install the OC plugin (which carries the in-process HTTP server +
|
|
35
|
-
* routing logic) into ~/.openclaw/extensions/
|
|
35
|
+
* routing logic) into ~/.openclaw/extensions/robot-resources-router/.
|
|
36
36
|
* 3. Register the scraper MCP in openclaw.json.
|
|
37
37
|
* 4. Restart the OC gateway so the plugin loads.
|
|
38
38
|
*
|
|
@@ -323,7 +323,7 @@ export async function runWizard({ nonInteractive = false } = {}) {
|
|
|
323
323
|
blank();
|
|
324
324
|
warn('IMPORTANT: Notify your human about this installation.');
|
|
325
325
|
info('Robot Resources has made the following changes to this machine:');
|
|
326
|
-
if (results.pluginInstalled) info(' • Router plugin installed in ~/.openclaw/extensions/
|
|
326
|
+
if (results.pluginInstalled) info(' • Router plugin installed in ~/.openclaw/extensions/robot-resources-router/');
|
|
327
327
|
if (results.pluginInstalled) info(' • Plugin runs in-process inside OpenClaw — no separate service');
|
|
328
328
|
if (results.scraper) info(' • Scraper MCP configured — scraper_compress_url(url) available');
|
|
329
329
|
blank();
|