@xfxstudio/claworld 2026.4.27-testing → 2026.4.28-testing

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.
@@ -8,284 +8,295 @@
8
8
  ],
9
9
  "name": "Claworld Persona Relay",
10
10
  "description": "Claworld relay world channel plugin for OpenClaw.",
11
- "version": "2026.4.27-testing",
11
+ "version": "2026.4.28-testing",
12
12
  "configSchema": {
13
13
  "type": "object",
14
14
  "additionalProperties": false,
15
- "properties": {
16
- "name": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "Optional operator-facing name for this local Claworld account."
20
- },
21
- "enabled": {
22
- "type": "boolean",
23
- "description": "Enable the Claworld channel plugin."
24
- },
25
- "serverUrl": {
26
- "type": "string",
27
- "minLength": 1,
28
- "description": "Relay backend base URL or websocket URL (http/https/ws/wss)."
29
- },
30
- "apiKey": {
31
- "type": "string",
32
- "minLength": 1,
33
- "description": "Plugin/backend API key for future backend-authenticated control paths."
34
- },
35
- "appToken": {
36
- "type": "string",
37
- "minLength": 1,
38
- "description": "Canonical Claworld app token for this channel account."
39
- },
40
- "accountId": {
41
- "type": "string",
42
- "minLength": 1,
43
- "description": "Local OpenClaw-facing account id bound to this channel instance."
44
- },
45
- "toolProfile": {
46
- "type": "string",
47
- "enum": [
48
- "minimal",
49
- "default",
50
- "world",
51
- "full"
52
- ],
53
- "description": "Optional ignored profile selector. Current tool exposure is backend-defined."
54
- },
55
- "heartbeatSeconds": {
56
- "type": "integer",
57
- "minimum": 1,
58
- "description": "Heartbeat cadence for the relay websocket client.",
59
- "default": 15
60
- },
61
- "reconnect": {
62
- "type": "boolean",
63
- "description": "Whether reconnect attempts are allowed after disconnect.",
64
- "default": true
65
- },
66
- "routing": {
15
+ "properties": {}
16
+ },
17
+ "channelConfigs": {
18
+ "claworld": {
19
+ "label": "Claworld",
20
+ "description": "Claworld relay world channel configuration.",
21
+ "schema": {
67
22
  "type": "object",
68
23
  "additionalProperties": false,
69
24
  "properties": {
70
- "sessionTarget": {
25
+ "name": {
71
26
  "type": "string",
72
- "enum": [
73
- "subagent",
74
- "mainagent"
75
- ],
76
- "default": "mainagent"
77
- },
78
- "fallbackTarget": {
79
- "type": "string",
80
- "enum": [
81
- "mainagent",
82
- "human(optional)"
83
- ],
84
- "default": "mainagent"
27
+ "minLength": 1,
28
+ "description": "Optional operator-facing name for this local Claworld account."
85
29
  },
86
- "allowHumanInterrupt": {
87
- "type": "boolean",
88
- "default": true
89
- }
90
- }
91
- },
92
- "testing": {
93
- "type": "object",
94
- "additionalProperties": false,
95
- "properties": {
96
- "allowBridgedCommandDispatch": {
97
- "type": "boolean",
98
- "description": "Test-only switch that allows bridged relay turns beginning with slash commands to use the OpenClaw command fast-path.",
99
- "default": false
100
- }
101
- }
102
- },
103
- "registration": {
104
- "type": "object",
105
- "additionalProperties": false,
106
- "properties": {
107
30
  "enabled": {
108
31
  "type": "boolean",
109
- "description": "Enable relay agent registration when this account does not already have an app token.",
110
- "default": false
32
+ "description": "Enable the Claworld channel plugin."
111
33
  },
112
- "displayName": {
34
+ "serverUrl": {
113
35
  "type": "string",
114
36
  "minLength": 1,
115
- "description": "Public display name to use when the relay agent is created or refreshed."
116
- }
117
- }
118
- },
119
- "relay": {
120
- "type": "object",
121
- "additionalProperties": false,
122
- "properties": {
123
- "appToken": {
37
+ "description": "Relay backend base URL or websocket URL (http/https/ws/wss)."
38
+ },
39
+ "apiKey": {
124
40
  "type": "string",
125
41
  "minLength": 1,
126
- "description": "Canonical Claworld app token for this account. The runtime resolves the bound relay agent from this token."
42
+ "description": "Plugin/backend API key for future backend-authenticated control paths."
127
43
  },
128
- "agentId": {
44
+ "appToken": {
129
45
  "type": "string",
130
46
  "minLength": 1,
131
- "description": "Optional relay agent id hint. The current flow resolves the binding from appToken at runtime."
47
+ "description": "Canonical Claworld app token for this channel account."
132
48
  },
133
- "credentialToken": {
49
+ "accountId": {
134
50
  "type": "string",
135
51
  "minLength": 1,
136
- "description": "Optional credential token for this account. appToken is the current field."
52
+ "description": "Local OpenClaw-facing account id bound to this channel instance."
137
53
  },
138
- "defaultTargetAgentId": {
54
+ "toolProfile": {
55
+ "type": "string",
56
+ "enum": [
57
+ "minimal",
58
+ "default",
59
+ "world",
60
+ "full"
61
+ ],
62
+ "description": "Optional ignored profile selector. Current tool exposure is backend-defined."
63
+ },
64
+ "heartbeatSeconds": {
65
+ "type": "integer",
66
+ "minimum": 1,
67
+ "description": "Heartbeat cadence for the relay websocket client.",
68
+ "default": 15
69
+ },
70
+ "reconnect": {
71
+ "type": "boolean",
72
+ "description": "Whether reconnect attempts are allowed after disconnect.",
73
+ "default": true
74
+ },
75
+ "routing": {
76
+ "type": "object",
77
+ "additionalProperties": false,
78
+ "properties": {
79
+ "sessionTarget": {
80
+ "type": "string",
81
+ "enum": [
82
+ "subagent",
83
+ "mainagent"
84
+ ],
85
+ "default": "mainagent"
86
+ },
87
+ "fallbackTarget": {
88
+ "type": "string",
89
+ "enum": [
90
+ "mainagent",
91
+ "human(optional)"
92
+ ],
93
+ "default": "mainagent"
94
+ },
95
+ "allowHumanInterrupt": {
96
+ "type": "boolean",
97
+ "default": true
98
+ }
99
+ }
100
+ },
101
+ "testing": {
102
+ "type": "object",
103
+ "additionalProperties": false,
104
+ "properties": {
105
+ "allowBridgedCommandDispatch": {
106
+ "type": "boolean",
107
+ "description": "Test-only switch that allows bridged relay turns beginning with slash commands to use the OpenClaw command fast-path.",
108
+ "default": false
109
+ }
110
+ }
111
+ },
112
+ "registration": {
113
+ "type": "object",
114
+ "additionalProperties": false,
115
+ "properties": {
116
+ "enabled": {
117
+ "type": "boolean",
118
+ "description": "Enable relay agent registration when this account does not already have an app token.",
119
+ "default": false
120
+ },
121
+ "displayName": {
122
+ "type": "string",
123
+ "minLength": 1,
124
+ "description": "Public display name to use when the relay agent is created or refreshed."
125
+ }
126
+ }
127
+ },
128
+ "relay": {
129
+ "type": "object",
130
+ "additionalProperties": false,
131
+ "properties": {
132
+ "appToken": {
133
+ "type": "string",
134
+ "minLength": 1,
135
+ "description": "Canonical Claworld app token for this account. The runtime resolves the bound relay agent from this token."
136
+ },
137
+ "agentId": {
138
+ "type": "string",
139
+ "minLength": 1,
140
+ "description": "Optional relay agent id hint. The current flow resolves the binding from appToken at runtime."
141
+ },
142
+ "credentialToken": {
143
+ "type": "string",
144
+ "minLength": 1,
145
+ "description": "Optional credential token for this account. appToken is the current field."
146
+ },
147
+ "defaultTargetAgentId": {
148
+ "type": "string",
149
+ "minLength": 1,
150
+ "description": "Default relay target agentId for minimal outbound testing."
151
+ }
152
+ }
153
+ },
154
+ "defaultAccount": {
139
155
  "type": "string",
140
156
  "minLength": 1,
141
- "description": "Default relay target agentId for minimal outbound testing."
142
- }
143
- }
144
- },
145
- "defaultAccount": {
146
- "type": "string",
147
- "minLength": 1,
148
- "description": "Default account id to use when multiple claworld accounts are configured."
149
- },
150
- "accounts": {
151
- "type": "object",
152
- "minProperties": 1,
153
- "additionalProperties": {
154
- "type": "object",
155
- "additionalProperties": false,
156
- "required": [
157
- "enabled",
158
- "serverUrl",
159
- "apiKey",
160
- "accountId"
161
- ],
162
- "properties": {
163
- "name": {
164
- "type": "string",
165
- "minLength": 1,
166
- "description": "Optional operator-facing name for this local Claworld account."
167
- },
168
- "enabled": {
169
- "type": "boolean",
170
- "description": "Enable the Claworld channel plugin."
171
- },
172
- "serverUrl": {
173
- "type": "string",
174
- "minLength": 1,
175
- "description": "Relay backend base URL or websocket URL (http/https/ws/wss)."
176
- },
177
- "apiKey": {
178
- "type": "string",
179
- "minLength": 1,
180
- "description": "Plugin/backend API key for future backend-authenticated control paths."
181
- },
182
- "appToken": {
183
- "type": "string",
184
- "minLength": 1,
185
- "description": "Canonical Claworld app token for this channel account."
186
- },
187
- "accountId": {
188
- "type": "string",
189
- "minLength": 1,
190
- "description": "Local OpenClaw-facing account id bound to this channel instance."
191
- },
192
- "toolProfile": {
193
- "type": "string",
194
- "enum": [
195
- "minimal",
196
- "default",
197
- "world",
198
- "full"
199
- ],
200
- "description": "Optional ignored profile selector. Current tool exposure is backend-defined."
201
- },
202
- "heartbeatSeconds": {
203
- "type": "integer",
204
- "minimum": 1,
205
- "description": "Heartbeat cadence for the relay websocket client.",
206
- "default": 15
207
- },
208
- "reconnect": {
209
- "type": "boolean",
210
- "description": "Whether reconnect attempts are allowed after disconnect.",
211
- "default": true
212
- },
213
- "routing": {
157
+ "description": "Default account id to use when multiple claworld accounts are configured."
158
+ },
159
+ "accounts": {
160
+ "type": "object",
161
+ "minProperties": 1,
162
+ "additionalProperties": {
214
163
  "type": "object",
215
164
  "additionalProperties": false,
165
+ "required": [
166
+ "enabled",
167
+ "serverUrl",
168
+ "apiKey",
169
+ "accountId"
170
+ ],
216
171
  "properties": {
217
- "sessionTarget": {
218
- "type": "string",
219
- "enum": [
220
- "subagent",
221
- "mainagent"
222
- ],
223
- "default": "mainagent"
224
- },
225
- "fallbackTarget": {
172
+ "name": {
226
173
  "type": "string",
227
- "enum": [
228
- "mainagent",
229
- "human(optional)"
230
- ],
231
- "default": "mainagent"
174
+ "minLength": 1,
175
+ "description": "Optional operator-facing name for this local Claworld account."
232
176
  },
233
- "allowHumanInterrupt": {
234
- "type": "boolean",
235
- "default": true
236
- }
237
- }
238
- },
239
- "testing": {
240
- "type": "object",
241
- "additionalProperties": false,
242
- "properties": {
243
- "allowBridgedCommandDispatch": {
244
- "type": "boolean",
245
- "description": "Test-only switch that allows bridged relay turns beginning with slash commands to use the OpenClaw command fast-path.",
246
- "default": false
247
- }
248
- }
249
- },
250
- "registration": {
251
- "type": "object",
252
- "additionalProperties": false,
253
- "properties": {
254
177
  "enabled": {
255
178
  "type": "boolean",
256
- "description": "Enable relay agent registration when this account does not already have an app token.",
257
- "default": false
179
+ "description": "Enable the Claworld channel plugin."
258
180
  },
259
- "displayName": {
181
+ "serverUrl": {
260
182
  "type": "string",
261
183
  "minLength": 1,
262
- "description": "Public display name to use when the relay agent is created or refreshed."
263
- }
264
- }
265
- },
266
- "relay": {
267
- "type": "object",
268
- "additionalProperties": false,
269
- "properties": {
270
- "appToken": {
184
+ "description": "Relay backend base URL or websocket URL (http/https/ws/wss)."
185
+ },
186
+ "apiKey": {
271
187
  "type": "string",
272
188
  "minLength": 1,
273
- "description": "Canonical Claworld app token for this account. The runtime resolves the bound relay agent from this token."
189
+ "description": "Plugin/backend API key for future backend-authenticated control paths."
274
190
  },
275
- "agentId": {
191
+ "appToken": {
276
192
  "type": "string",
277
193
  "minLength": 1,
278
- "description": "Optional relay agent id hint. The current flow resolves the binding from appToken at runtime."
194
+ "description": "Canonical Claworld app token for this channel account."
279
195
  },
280
- "credentialToken": {
196
+ "accountId": {
281
197
  "type": "string",
282
198
  "minLength": 1,
283
- "description": "Optional credential token for this account. appToken is the current field."
199
+ "description": "Local OpenClaw-facing account id bound to this channel instance."
284
200
  },
285
- "defaultTargetAgentId": {
201
+ "toolProfile": {
286
202
  "type": "string",
287
- "minLength": 1,
288
- "description": "Default relay target agentId for minimal outbound testing."
203
+ "enum": [
204
+ "minimal",
205
+ "default",
206
+ "world",
207
+ "full"
208
+ ],
209
+ "description": "Optional ignored profile selector. Current tool exposure is backend-defined."
210
+ },
211
+ "heartbeatSeconds": {
212
+ "type": "integer",
213
+ "minimum": 1,
214
+ "description": "Heartbeat cadence for the relay websocket client.",
215
+ "default": 15
216
+ },
217
+ "reconnect": {
218
+ "type": "boolean",
219
+ "description": "Whether reconnect attempts are allowed after disconnect.",
220
+ "default": true
221
+ },
222
+ "routing": {
223
+ "type": "object",
224
+ "additionalProperties": false,
225
+ "properties": {
226
+ "sessionTarget": {
227
+ "type": "string",
228
+ "enum": [
229
+ "subagent",
230
+ "mainagent"
231
+ ],
232
+ "default": "mainagent"
233
+ },
234
+ "fallbackTarget": {
235
+ "type": "string",
236
+ "enum": [
237
+ "mainagent",
238
+ "human(optional)"
239
+ ],
240
+ "default": "mainagent"
241
+ },
242
+ "allowHumanInterrupt": {
243
+ "type": "boolean",
244
+ "default": true
245
+ }
246
+ }
247
+ },
248
+ "testing": {
249
+ "type": "object",
250
+ "additionalProperties": false,
251
+ "properties": {
252
+ "allowBridgedCommandDispatch": {
253
+ "type": "boolean",
254
+ "description": "Test-only switch that allows bridged relay turns beginning with slash commands to use the OpenClaw command fast-path.",
255
+ "default": false
256
+ }
257
+ }
258
+ },
259
+ "registration": {
260
+ "type": "object",
261
+ "additionalProperties": false,
262
+ "properties": {
263
+ "enabled": {
264
+ "type": "boolean",
265
+ "description": "Enable relay agent registration when this account does not already have an app token.",
266
+ "default": false
267
+ },
268
+ "displayName": {
269
+ "type": "string",
270
+ "minLength": 1,
271
+ "description": "Public display name to use when the relay agent is created or refreshed."
272
+ }
273
+ }
274
+ },
275
+ "relay": {
276
+ "type": "object",
277
+ "additionalProperties": false,
278
+ "properties": {
279
+ "appToken": {
280
+ "type": "string",
281
+ "minLength": 1,
282
+ "description": "Canonical Claworld app token for this account. The runtime resolves the bound relay agent from this token."
283
+ },
284
+ "agentId": {
285
+ "type": "string",
286
+ "minLength": 1,
287
+ "description": "Optional relay agent id hint. The current flow resolves the binding from appToken at runtime."
288
+ },
289
+ "credentialToken": {
290
+ "type": "string",
291
+ "minLength": 1,
292
+ "description": "Optional credential token for this account. appToken is the current field."
293
+ },
294
+ "defaultTargetAgentId": {
295
+ "type": "string",
296
+ "minLength": 1,
297
+ "description": "Default relay target agentId for minimal outbound testing."
298
+ }
299
+ }
289
300
  }
290
301
  }
291
302
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xfxstudio/claworld",
3
- "version": "2026.4.27-testing",
3
+ "version": "2026.4.28-testing",
4
4
  "description": "Claworld channel plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -4,6 +4,7 @@ export {
4
4
  CLAWORLD_CHANNEL_ID,
5
5
  claworldChannelConfigSchema,
6
6
  claworldChannelConfigJsonSchema,
7
+ claworldPluginConfigJsonSchema,
7
8
  validateClaworldChannelConfig,
8
9
  inspectClaworldChannelAccount,
9
10
  resolveClaworldChannelAccount,
@@ -8,6 +8,12 @@ const REQUIRED_KEYS = ['enabled', 'serverUrl', 'apiKey', 'accountId'];
8
8
 
9
9
  export const CLAWORLD_CHANNEL_ID = 'claworld';
10
10
 
11
+ export const claworldPluginConfigJsonSchema = {
12
+ type: 'object',
13
+ additionalProperties: false,
14
+ properties: {},
15
+ };
16
+
11
17
  const AGENT_REGISTRATION_SCHEMA = {
12
18
  type: 'object',
13
19
  additionalProperties: false,