@xfxstudio/claworld 0.2.9 → 0.2.10-beta.1
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 +1 -1
- package/openclaw.plugin.json +7 -63
- package/package.json +6 -2
- package/skills/claworld-help/SKILL.md +5 -1
- package/skills/claworld-join-and-chat/SKILL.md +21 -1
- package/skills/claworld-manage-worlds/SKILL.md +81 -10
- package/src/lib/agent-profile.js +8 -3
- package/src/lib/chat-request.js +0 -1
- package/src/lib/policy.js +2 -6
- package/src/lib/public-identity.js +175 -0
- package/src/lib/relay/kickoff-text.js +1 -0
- package/src/openclaw/installer/cli.js +48 -4
- package/src/openclaw/installer/constants.js +1 -0
- package/src/openclaw/installer/core.js +247 -71
- package/src/openclaw/installer/doctor.js +31 -17
- package/src/openclaw/plugin/account-identity.js +1 -2
- package/src/openclaw/plugin/claworld-channel-plugin.js +453 -263
- package/src/openclaw/plugin/config-schema.js +9 -23
- package/src/openclaw/plugin/managed-config.js +294 -84
- package/src/openclaw/plugin/onboarding.js +37 -45
- package/src/openclaw/plugin/register.js +124 -13
- package/src/openclaw/plugin/relay-client.js +233 -17
- package/src/openclaw/runtime/backend-error-context.js +91 -0
- package/src/openclaw/runtime/feedback-helper.js +1 -2
- package/src/openclaw/runtime/product-shell-helper.js +43 -9
- package/src/openclaw/runtime/tool-contracts.js +26 -3
- package/src/openclaw/runtime/tool-inventory.js +7 -0
- package/src/openclaw/runtime/world-moderation-helper.js +3 -19
- package/src/product-shell/contracts/candidate-feed.js +7 -0
- package/src/product-shell/contracts/world-manifest.js +0 -1
- package/src/product-shell/contracts/world-orchestration.js +10 -1
- package/src/product-shell/conversation-feedback/conversation-feedback-service.js +261 -0
- package/src/product-shell/feedback/feedback-routes.js +0 -1
- package/src/product-shell/feedback/feedback-service.js +4 -9
- package/src/product-shell/index.js +40 -7
- package/src/product-shell/matching/matchmaking-service.js +22 -1
- package/src/product-shell/membership/membership-service.js +5 -1
- package/src/product-shell/onboarding/onboarding-service.js +16 -26
- package/src/product-shell/profile/public-identity-routes.js +60 -0
- package/src/product-shell/profile/public-identity-service.js +190 -0
- package/src/product-shell/search/search-service.js +9 -2
- package/src/product-shell/social/chat-request-service.js +22 -7
- package/src/product-shell/social/friend-routes.js +1 -1
- package/src/product-shell/social/friend-service.js +16 -19
- package/src/product-shell/social/social-routes.js +2 -2
- package/src/product-shell/social/social-service.js +31 -35
- package/src/product-shell/worlds/world-admin-service.js +31 -10
- package/src/product-shell/worlds/world-broadcast-service.js +2 -2
- package/src/lib/agent-address.js +0 -46
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
CLAWORLD_INSTALLER_BIN_NAME,
|
|
9
9
|
CLAWORLD_INSTALLER_COMMAND,
|
|
10
10
|
CLAWORLD_INSTALLER_PACKAGE_NAME,
|
|
11
|
+
CLAWORLD_UNINSTALL_COMMAND,
|
|
11
12
|
CLAWORLD_UPDATE_COMMAND,
|
|
12
13
|
} from './constants.js';
|
|
13
14
|
import { formatClaworldDoctorReport, runClaworldDoctor } from './doctor.js';
|
|
@@ -15,6 +16,7 @@ import {
|
|
|
15
16
|
DEFAULT_OPENCLAW_BIN,
|
|
16
17
|
DEFAULT_OPENCLAW_CONFIG_PATH,
|
|
17
18
|
runClaworldInstallerInstall,
|
|
19
|
+
runClaworldInstallerUninstall,
|
|
18
20
|
runClaworldInstallerUpdate,
|
|
19
21
|
} from './core.js';
|
|
20
22
|
|
|
@@ -38,6 +40,7 @@ Commands:
|
|
|
38
40
|
install Run the installer-first Claworld setup flow
|
|
39
41
|
doctor Validate the managed Claworld install health
|
|
40
42
|
update Update the tracked Claworld plugin, refresh managed state, and run doctor
|
|
43
|
+
uninstall Safely remove the managed Claworld runtime and uninstall the plugin
|
|
41
44
|
upgrade Alias for update
|
|
42
45
|
help Show this help
|
|
43
46
|
|
|
@@ -74,6 +77,12 @@ Doctor options:
|
|
|
74
77
|
--account-id <id> Managed Claworld account id (default: claworld)
|
|
75
78
|
--agent-id <id> Local OpenClaw agent id bound to claworld (default: main)
|
|
76
79
|
--workspace <path> Optional dedicated workspace path override
|
|
80
|
+
Uninstall options:
|
|
81
|
+
--config <path> OpenClaw config path (default: ${DEFAULT_OPENCLAW_CONFIG_PATH})
|
|
82
|
+
--state-dir <path> Optional OPENCLAW_STATE_DIR for OpenClaw commands
|
|
83
|
+
--openclaw-bin <path> OpenClaw CLI binary (default: ${DEFAULT_OPENCLAW_BIN})
|
|
84
|
+
--account-id <id> Managed Claworld account id (default: claworld)
|
|
85
|
+
--agent-id <id> Local OpenClaw agent id bound to claworld (default: main)
|
|
77
86
|
--json Print machine-readable result
|
|
78
87
|
--help, -h Show this help
|
|
79
88
|
|
|
@@ -81,6 +90,7 @@ Canonical commands:
|
|
|
81
90
|
${CLAWORLD_INSTALLER_COMMAND}
|
|
82
91
|
${CLAWORLD_DOCTOR_COMMAND}
|
|
83
92
|
${CLAWORLD_UPDATE_COMMAND}
|
|
93
|
+
${CLAWORLD_UNINSTALL_COMMAND}
|
|
84
94
|
`);
|
|
85
95
|
}
|
|
86
96
|
|
|
@@ -132,6 +142,13 @@ export function parseInstallerCliArgs(argv = process.argv.slice(2), env = proces
|
|
|
132
142
|
agentId: 'main',
|
|
133
143
|
workspace: null,
|
|
134
144
|
},
|
|
145
|
+
uninstall: {
|
|
146
|
+
openclawBin: env.OPENCLAW_BIN || DEFAULT_OPENCLAW_BIN,
|
|
147
|
+
configPath: expandUserPath(env.OPENCLAW_CONFIG_PATH || DEFAULT_OPENCLAW_CONFIG_PATH, homeDir),
|
|
148
|
+
stateDir: env.OPENCLAW_STATE_DIR ? expandUserPath(env.OPENCLAW_STATE_DIR, homeDir) : null,
|
|
149
|
+
accountId: 'claworld',
|
|
150
|
+
agentId: 'main',
|
|
151
|
+
},
|
|
135
152
|
};
|
|
136
153
|
|
|
137
154
|
if (argv.length === 0) {
|
|
@@ -149,18 +166,21 @@ export function parseInstallerCliArgs(argv = process.argv.slice(2), env = proces
|
|
|
149
166
|
options.install.configPath = expandUserPath(nextValue(remaining, index), homeDir);
|
|
150
167
|
options.update.configPath = options.install.configPath;
|
|
151
168
|
options.doctor.configPath = options.install.configPath;
|
|
169
|
+
options.uninstall.configPath = options.install.configPath;
|
|
152
170
|
index += 1;
|
|
153
171
|
break;
|
|
154
172
|
case '--state-dir':
|
|
155
173
|
options.install.stateDir = expandUserPath(nextValue(remaining, index), homeDir);
|
|
156
174
|
options.update.stateDir = options.install.stateDir;
|
|
157
175
|
options.doctor.stateDir = options.install.stateDir;
|
|
176
|
+
options.uninstall.stateDir = options.install.stateDir;
|
|
158
177
|
index += 1;
|
|
159
178
|
break;
|
|
160
179
|
case '--openclaw-bin':
|
|
161
180
|
options.install.openclawBin = nextValue(remaining, index);
|
|
162
181
|
options.update.openclawBin = options.install.openclawBin;
|
|
163
182
|
options.doctor.openclawBin = options.install.openclawBin;
|
|
183
|
+
options.uninstall.openclawBin = options.install.openclawBin;
|
|
164
184
|
index += 1;
|
|
165
185
|
break;
|
|
166
186
|
case '--server-url':
|
|
@@ -178,12 +198,14 @@ export function parseInstallerCliArgs(argv = process.argv.slice(2), env = proces
|
|
|
178
198
|
options.install.accountId = nextValue(remaining, index);
|
|
179
199
|
options.update.accountId = options.install.accountId;
|
|
180
200
|
options.doctor.accountId = options.install.accountId;
|
|
201
|
+
options.uninstall.accountId = options.install.accountId;
|
|
181
202
|
index += 1;
|
|
182
203
|
break;
|
|
183
204
|
case '--agent-id':
|
|
184
205
|
options.install.agentId = nextValue(remaining, index);
|
|
185
206
|
options.update.agentId = options.install.agentId;
|
|
186
207
|
options.doctor.agentId = options.install.agentId;
|
|
208
|
+
options.uninstall.agentId = options.install.agentId;
|
|
187
209
|
index += 1;
|
|
188
210
|
break;
|
|
189
211
|
case '--workspace':
|
|
@@ -226,7 +248,7 @@ export function parseInstallerCliArgs(argv = process.argv.slice(2), env = proces
|
|
|
226
248
|
}
|
|
227
249
|
}
|
|
228
250
|
|
|
229
|
-
if (!['install', 'update', 'doctor', 'help'].includes(options.command)) {
|
|
251
|
+
if (!['install', 'update', 'uninstall', 'doctor', 'help'].includes(options.command)) {
|
|
230
252
|
throw new Error(`Unknown command: ${options.command}`);
|
|
231
253
|
}
|
|
232
254
|
if (options.command === 'install' && !['npm', 'link', 'copy', 'skip'].includes(options.install.pluginInstallMode)) {
|
|
@@ -274,10 +296,9 @@ function printInstallSummary(result) {
|
|
|
274
296
|
console.log('Claworld installer complete');
|
|
275
297
|
console.log('===========================');
|
|
276
298
|
console.log(`Managed account: ${result.transformed?.config?.channels?.claworld?.defaultAccount || 'claworld'}`);
|
|
277
|
-
console.log(`Canonical agentId: ${result.activation?.agentId || '(unknown)'}`);
|
|
278
299
|
console.log(`OpenClaw version: ${result.host?.version || '(unknown)'}`);
|
|
279
300
|
console.log(`Plugin action: ${result.plugin?.action || 'unknown'}`);
|
|
280
|
-
console.log(`Activation
|
|
301
|
+
console.log(`Activation: ${result.activationStatus === 'ready' ? 'ready' : 'pending via claworld_update_public_identity'}`);
|
|
281
302
|
console.log(`Runtime refresh: ${result.runtimeRefresh?.action || 'unknown'}`);
|
|
282
303
|
console.log(`Config path: ${result.configPath}`);
|
|
283
304
|
console.log(`Backup path: ${result.backupPath || '(unchanged or new file)'}`);
|
|
@@ -293,10 +314,10 @@ function printUpdateSummary(result, doctorResult) {
|
|
|
293
314
|
console.log('Claworld update complete');
|
|
294
315
|
console.log('========================');
|
|
295
316
|
console.log(`Managed account: ${result.managedOptions?.accountId || 'claworld'}`);
|
|
296
|
-
console.log(`Canonical agentId: ${result.activation?.agentId || '(unknown)'}`);
|
|
297
317
|
console.log(`OpenClaw version: ${result.host?.version || '(unknown)'}`);
|
|
298
318
|
console.log(`Plugin action: ${result.plugin?.action || 'unknown'}`);
|
|
299
319
|
console.log(`Tracked install: ${trackedSummary}`);
|
|
320
|
+
console.log(`Activation: ${result.activationStatus === 'ready' ? 'ready' : 'pending via claworld_update_public_identity'}`);
|
|
300
321
|
console.log(`Runtime refresh: ${result.runtimeRefresh?.action || 'unknown'}`);
|
|
301
322
|
console.log(`Doctor status: ${doctorResult?.status || 'unknown'}`);
|
|
302
323
|
console.log(`Config path: ${result.configPath}`);
|
|
@@ -304,6 +325,19 @@ function printUpdateSummary(result, doctorResult) {
|
|
|
304
325
|
console.log('');
|
|
305
326
|
}
|
|
306
327
|
|
|
328
|
+
function printUninstallSummary(result) {
|
|
329
|
+
console.log('');
|
|
330
|
+
console.log('Claworld uninstall complete');
|
|
331
|
+
console.log('===========================');
|
|
332
|
+
console.log(`Managed account: ${result.transformed?.backup?.accountId || 'claworld'}`);
|
|
333
|
+
console.log(`OpenClaw version: ${result.host?.version || '(unknown)'}`);
|
|
334
|
+
console.log(`Plugin action: ${result.plugin?.action || 'unknown'}`);
|
|
335
|
+
console.log(`Runtime refresh: ${result.runtimeRefresh?.action || 'unknown'}`);
|
|
336
|
+
console.log(`Config path: ${result.configPath}`);
|
|
337
|
+
console.log(`Backup path: ${result.backupPath || '(unchanged or new file)'}`);
|
|
338
|
+
console.log('');
|
|
339
|
+
}
|
|
340
|
+
|
|
307
341
|
export async function runInstallerCli(argv = process.argv.slice(2), env = process.env) {
|
|
308
342
|
const parsed = parseInstallerCliArgs(argv, env);
|
|
309
343
|
if (parsed.command === 'help') {
|
|
@@ -347,6 +381,16 @@ export async function runInstallerCli(argv = process.argv.slice(2), env = proces
|
|
|
347
381
|
};
|
|
348
382
|
}
|
|
349
383
|
|
|
384
|
+
if (parsed.command === 'uninstall') {
|
|
385
|
+
const result = await runClaworldInstallerUninstall(parsed.uninstall);
|
|
386
|
+
if (parsed.json) {
|
|
387
|
+
console.log(JSON.stringify(result, null, 2));
|
|
388
|
+
} else {
|
|
389
|
+
printUninstallSummary(result);
|
|
390
|
+
}
|
|
391
|
+
return result;
|
|
392
|
+
}
|
|
393
|
+
|
|
350
394
|
const result = await runClaworldDoctor(parsed.doctor);
|
|
351
395
|
if (parsed.json) {
|
|
352
396
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -3,4 +3,5 @@ export const CLAWORLD_INSTALLER_PACKAGE_NAME = '@xfxstudio/claworld';
|
|
|
3
3
|
export const CLAWORLD_INSTALLER_COMMAND = 'npx -y @xfxstudio/claworld install';
|
|
4
4
|
export const CLAWORLD_DOCTOR_COMMAND = 'npx -y @xfxstudio/claworld doctor';
|
|
5
5
|
export const CLAWORLD_UPDATE_COMMAND = 'npx -y @xfxstudio/claworld update';
|
|
6
|
+
export const CLAWORLD_UNINSTALL_COMMAND = 'npx -y @xfxstudio/claworld uninstall';
|
|
6
7
|
export const CLAWORLD_OPENCLAW_MIN_HOST_VERSION = '>=2026.3.22';
|