@byokit/openclaw 0.3.5 → 0.4.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.
package/dist/routes.json CHANGED
@@ -8,7 +8,12 @@
8
8
  "prerequisite": null,
9
9
  "offer": true,
10
10
  "reason": "ChatGPT/Codex subscription sign-in: the engine writes the redirect to the app's callback port.",
11
- "source": "dist/provider-contract-api-*.js (2026.8.1)"
11
+ "source": "dist/provider-contract-api-*.js (2026.8.1)",
12
+ "revision": "2026.8.1",
13
+ "checked": "2026-09-30",
14
+ "label": "Subscription",
15
+ "keyEntry": false,
16
+ "keyErrors": null
12
17
  },
13
18
  {
14
19
  "choice": "openai-device-code",
@@ -19,7 +24,12 @@
19
24
  "prerequisite": null,
20
25
  "offer": true,
21
26
  "reason": "ChatGPT subscription sign-in by device code: the code is shown, no browser on this computer needed.",
22
- "source": "dist/provider-contract-api-*.js (2026.8.1)"
27
+ "source": "dist/provider-contract-api-*.js (2026.8.1)",
28
+ "revision": "2026.8.1",
29
+ "checked": "2026-09-30",
30
+ "label": "Subscription",
31
+ "keyEntry": false,
32
+ "keyErrors": null
23
33
  },
24
34
  {
25
35
  "choice": "xai-oauth",
@@ -30,7 +40,12 @@
30
40
  "prerequisite": null,
31
41
  "offer": true,
32
42
  "reason": "Grok subscription sign-in through the engine's own wizard.",
33
- "source": "dist/extensions/xai/openclaw.plugin.json (2026.8.1)"
43
+ "source": "dist/extensions/xai/openclaw.plugin.json (2026.8.1)",
44
+ "revision": "2026.8.1",
45
+ "checked": "2026-09-30",
46
+ "label": "Subscription",
47
+ "keyEntry": false,
48
+ "keyErrors": null
34
49
  },
35
50
  {
36
51
  "choice": "github-copilot",
@@ -41,7 +56,12 @@
41
56
  "prerequisite": null,
42
57
  "offer": true,
43
58
  "reason": "GitHub Copilot subscription sign-in; the login stays in the engine's own folder.",
44
- "source": "dist/extensions/github-copilot/openclaw.plugin.json (2026.8.1)"
59
+ "source": "dist/extensions/github-copilot/openclaw.plugin.json (2026.8.1)",
60
+ "revision": "2026.8.1",
61
+ "checked": "2026-09-30",
62
+ "label": "Subscription",
63
+ "keyEntry": false,
64
+ "keyErrors": null
45
65
  },
46
66
  {
47
67
  "choice": "github-copilot-enterprise",
@@ -52,7 +72,12 @@
52
72
  "prerequisite": null,
53
73
  "offer": true,
54
74
  "reason": "GitHub Copilot Enterprise sign-in; the login stays in the engine's own folder.",
55
- "source": "dist/extensions/github-copilot/openclaw.plugin.json (2026.8.1)"
75
+ "source": "dist/extensions/github-copilot/openclaw.plugin.json (2026.8.1)",
76
+ "revision": "2026.8.1",
77
+ "checked": "2026-09-30",
78
+ "label": "Subscription",
79
+ "keyEntry": false,
80
+ "keyErrors": null
56
81
  },
57
82
  {
58
83
  "choice": "minimax-global-oauth",
@@ -63,7 +88,12 @@
63
88
  "prerequisite": null,
64
89
  "offer": true,
65
90
  "reason": "MiniMax subscription sign-in (global endpoint).",
66
- "source": "dist/extensions/minimax/openclaw.plugin.json (2026.8.1)"
91
+ "source": "dist/extensions/minimax/openclaw.plugin.json (2026.8.1)",
92
+ "revision": "2026.8.1",
93
+ "checked": "2026-09-30",
94
+ "label": "Subscription",
95
+ "keyEntry": false,
96
+ "keyErrors": null
67
97
  },
68
98
  {
69
99
  "choice": "minimax-cn-oauth",
@@ -74,7 +104,12 @@
74
104
  "prerequisite": null,
75
105
  "offer": true,
76
106
  "reason": "MiniMax subscription sign-in (CN endpoint).",
77
- "source": "dist/extensions/minimax/openclaw.plugin.json (2026.8.1)"
107
+ "source": "dist/extensions/minimax/openclaw.plugin.json (2026.8.1)",
108
+ "revision": "2026.8.1",
109
+ "checked": "2026-09-30",
110
+ "label": "Subscription",
111
+ "keyEntry": false,
112
+ "keyErrors": null
78
113
  },
79
114
  {
80
115
  "choice": "openrouter-oauth",
@@ -84,8 +119,13 @@
84
119
  "via": "browser",
85
120
  "prerequisite": null,
86
121
  "offer": false,
87
- "reason": "API billing, not a subscription; upstream OAuth yields a credit-billed key.",
88
- "source": "dist/extensions/openrouter/openclaw.plugin.json (2026.8.1)"
122
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
123
+ "source": "dist/extensions/openrouter/openclaw.plugin.json (2026.8.1)",
124
+ "revision": "2026.8.1",
125
+ "checked": "2026-09-30",
126
+ "label": "API key (billed per use)",
127
+ "keyEntry": false,
128
+ "keyErrors": null
89
129
  },
90
130
  {
91
131
  "choice": "xai-device-code",
@@ -96,7 +136,12 @@
96
136
  "prerequisite": null,
97
137
  "offer": false,
98
138
  "reason": "Compatibility alias the Gateway does not offer; use xai-oauth.",
99
- "source": "dist/extensions/xai/openclaw.plugin.json (2026.8.1)"
139
+ "source": "dist/extensions/xai/openclaw.plugin.json (2026.8.1)",
140
+ "revision": "2026.8.1",
141
+ "checked": "2026-09-30",
142
+ "label": "Subscription",
143
+ "keyEntry": false,
144
+ "keyErrors": null
100
145
  },
101
146
  {
102
147
  "choice": "alibaba-model-studio-api-key",
@@ -106,8 +151,13 @@
106
151
  "via": "browser",
107
152
  "prerequisite": null,
108
153
  "offer": false,
109
- "reason": "API billing, not a subscription; shown only when an app asks.",
110
- "source": "dist/extensions/alibaba/openclaw.plugin.json (2026.8.1)"
154
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
155
+ "source": "dist/extensions/alibaba/openclaw.plugin.json (2026.8.1)",
156
+ "revision": "2026.8.1",
157
+ "checked": "2026-09-30",
158
+ "label": "API key (billed per use)",
159
+ "keyEntry": false,
160
+ "keyErrors": null
111
161
  },
112
162
  {
113
163
  "choice": "anthropic-cli",
@@ -121,7 +171,12 @@
121
171
  "source": "dist/extensions/anthropic/openclaw.plugin.json (2026.8.1)",
122
172
  "auth": "cli",
123
173
  "terms": "allowed",
124
- "termsUrl": "https://code.claude.com/docs/en/legal-and-compliance#authentication-and-credential-use"
174
+ "termsUrl": "https://code.claude.com/docs/en/legal-and-compliance#authentication-and-credential-use",
175
+ "revision": "2026.8.1",
176
+ "checked": "2026-09-30",
177
+ "label": "Subscription",
178
+ "keyEntry": false,
179
+ "keyErrors": null
125
180
  },
126
181
  {
127
182
  "choice": "apiKey",
@@ -135,7 +190,15 @@
135
190
  "source": "dist/extensions/anthropic/openclaw.plugin.json (2026.8.1)",
136
191
  "auth": "api_key",
137
192
  "terms": "allowed",
138
- "termsUrl": "https://code.claude.com/docs/en/legal-and-compliance#authentication-and-credential-use"
193
+ "termsUrl": "https://code.claude.com/docs/en/legal-and-compliance#authentication-and-credential-use",
194
+ "revision": "2026.8.1",
195
+ "checked": "2026-09-30",
196
+ "label": "API key (billed per use)",
197
+ "keyEntry": true,
198
+ "keyErrors": {
199
+ "invalid": "key.invalid",
200
+ "not_included": "key.notIncluded"
201
+ }
139
202
  },
140
203
  {
141
204
  "choice": "clawrouter-api-key",
@@ -145,8 +208,13 @@
145
208
  "via": "browser",
146
209
  "prerequisite": null,
147
210
  "offer": false,
148
- "reason": "API billing, not a subscription; shown only when an app asks.",
149
- "source": "dist/extensions/clawrouter/openclaw.plugin.json (2026.8.1)"
211
+ "reason": "Proxy route; API key (billed per use); offered only when an app asks.",
212
+ "source": "dist/extensions/clawrouter/openclaw.plugin.json (2026.8.1)",
213
+ "revision": "2026.8.1",
214
+ "checked": "2026-09-30",
215
+ "label": "API key (billed per use)",
216
+ "keyEntry": false,
217
+ "keyErrors": null
150
218
  },
151
219
  {
152
220
  "choice": "copilot-proxy",
@@ -157,7 +225,12 @@
157
225
  "prerequisite": null,
158
226
  "offer": false,
159
227
  "reason": "Local runtime on this computer; no account and no billing.",
160
- "source": "dist/extensions/copilot-proxy/openclaw.plugin.json (2026.8.1)"
228
+ "source": "dist/extensions/copilot-proxy/openclaw.plugin.json (2026.8.1)",
229
+ "revision": "2026.8.1",
230
+ "checked": "2026-09-30",
231
+ "label": "On this computer",
232
+ "keyEntry": false,
233
+ "keyErrors": null
161
234
  },
162
235
  {
163
236
  "choice": "custom-api-key",
@@ -167,8 +240,13 @@
167
240
  "via": "browser",
168
241
  "prerequisite": null,
169
242
  "offer": false,
170
- "reason": "API billing, not a subscription; shown only when an app asks.",
171
- "source": "dist/auth-choice-options-BLHNSTXX.js (2026.8.1)"
243
+ "reason": "Proxy route; API key (billed per use); offered only when an app asks.",
244
+ "source": "dist/auth-choice-options-BLHNSTXX.js (2026.8.1)",
245
+ "revision": "2026.8.1",
246
+ "checked": "2026-09-30",
247
+ "label": "API key (billed per use)",
248
+ "keyEntry": false,
249
+ "keyErrors": null
172
250
  },
173
251
  {
174
252
  "choice": "fal-api-key",
@@ -178,8 +256,13 @@
178
256
  "via": "browser",
179
257
  "prerequisite": null,
180
258
  "offer": false,
181
- "reason": "API billing, not a subscription; shown only when an app asks.",
182
- "source": "dist/extensions/fal/openclaw.plugin.json (2026.8.1)"
259
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
260
+ "source": "dist/extensions/fal/openclaw.plugin.json (2026.8.1)",
261
+ "revision": "2026.8.1",
262
+ "checked": "2026-09-30",
263
+ "label": "API key (billed per use)",
264
+ "keyEntry": false,
265
+ "keyErrors": null
183
266
  },
184
267
  {
185
268
  "choice": "gemini-api-key",
@@ -189,8 +272,16 @@
189
272
  "via": "browser",
190
273
  "prerequisite": null,
191
274
  "offer": false,
192
- "reason": "API billing, not a subscription; shown only when an app asks.",
193
- "source": "dist/provider-contract-api-*.js (2026.8.1)"
275
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
276
+ "source": "dist/provider-contract-api-*.js (2026.8.1)",
277
+ "revision": "2026.8.1",
278
+ "checked": "2026-09-30",
279
+ "label": "API key (billed per use)",
280
+ "keyEntry": true,
281
+ "keyErrors": {
282
+ "invalid": "key.invalid",
283
+ "not_included": "key.notIncluded"
284
+ }
194
285
  },
195
286
  {
196
287
  "choice": "huggingface-api-key",
@@ -200,8 +291,16 @@
200
291
  "via": "browser",
201
292
  "prerequisite": null,
202
293
  "offer": false,
203
- "reason": "API billing, not a subscription; shown only when an app asks.",
204
- "source": "dist/extensions/huggingface/openclaw.plugin.json (2026.8.1)"
294
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
295
+ "source": "dist/extensions/huggingface/openclaw.plugin.json (2026.8.1)",
296
+ "revision": "2026.8.1",
297
+ "checked": "2026-09-30",
298
+ "label": "API key (billed per use)",
299
+ "keyEntry": true,
300
+ "keyErrors": {
301
+ "invalid": "key.invalid",
302
+ "not_included": "key.notIncluded"
303
+ }
205
304
  },
206
305
  {
207
306
  "choice": "litellm-api-key",
@@ -211,8 +310,16 @@
211
310
  "via": "browser",
212
311
  "prerequisite": null,
213
312
  "offer": false,
214
- "reason": "API billing, not a subscription; shown only when an app asks.",
215
- "source": "dist/extensions/litellm/openclaw.plugin.json (2026.8.1)"
313
+ "reason": "Proxy route; API key (billed per use); offered only when an app asks.",
314
+ "source": "dist/extensions/litellm/openclaw.plugin.json (2026.8.1)",
315
+ "revision": "2026.8.1",
316
+ "checked": "2026-09-30",
317
+ "label": "API key (billed per use)",
318
+ "keyEntry": true,
319
+ "keyErrors": {
320
+ "invalid": "key.invalid",
321
+ "not_included": "key.notIncluded"
322
+ }
216
323
  },
217
324
  {
218
325
  "choice": "lmstudio",
@@ -223,7 +330,12 @@
223
330
  "prerequisite": null,
224
331
  "offer": false,
225
332
  "reason": "Local runtime on this computer; no account and no billing.",
226
- "source": "dist/extensions/lmstudio/openclaw.plugin.json (2026.8.1)"
333
+ "source": "dist/extensions/lmstudio/openclaw.plugin.json (2026.8.1)",
334
+ "revision": "2026.8.1",
335
+ "checked": "2026-09-30",
336
+ "label": "On this computer",
337
+ "keyEntry": false,
338
+ "keyErrors": null
227
339
  },
228
340
  {
229
341
  "choice": "microsoft-foundry-apikey",
@@ -233,8 +345,13 @@
233
345
  "via": "browser",
234
346
  "prerequisite": null,
235
347
  "offer": false,
236
- "reason": "API billing, not a subscription; shown only when an app asks.",
237
- "source": "dist/extensions/microsoft-foundry/openclaw.plugin.json (2026.8.1)"
348
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
349
+ "source": "dist/extensions/microsoft-foundry/openclaw.plugin.json (2026.8.1)",
350
+ "revision": "2026.8.1",
351
+ "checked": "2026-09-30",
352
+ "label": "API key (billed per use)",
353
+ "keyEntry": false,
354
+ "keyErrors": null
238
355
  },
239
356
  {
240
357
  "choice": "microsoft-foundry-entra",
@@ -244,8 +361,13 @@
244
361
  "via": "browser",
245
362
  "prerequisite": null,
246
363
  "offer": false,
247
- "reason": "API billing, not a subscription; shown only when an app asks.",
248
- "source": "dist/extensions/microsoft-foundry/openclaw.plugin.json (2026.8.1)"
364
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
365
+ "source": "dist/extensions/microsoft-foundry/openclaw.plugin.json (2026.8.1)",
366
+ "revision": "2026.8.1",
367
+ "checked": "2026-09-30",
368
+ "label": "API key (billed per use)",
369
+ "keyEntry": false,
370
+ "keyErrors": null
249
371
  },
250
372
  {
251
373
  "choice": "minimax-cn-api",
@@ -255,8 +377,13 @@
255
377
  "via": "browser",
256
378
  "prerequisite": null,
257
379
  "offer": false,
258
- "reason": "API billing, not a subscription; shown only when an app asks.",
259
- "source": "dist/extensions/minimax/openclaw.plugin.json (2026.8.1)"
380
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
381
+ "source": "dist/extensions/minimax/openclaw.plugin.json (2026.8.1)",
382
+ "revision": "2026.8.1",
383
+ "checked": "2026-09-30",
384
+ "label": "API key (billed per use)",
385
+ "keyEntry": false,
386
+ "keyErrors": null
260
387
  },
261
388
  {
262
389
  "choice": "minimax-global-api",
@@ -266,8 +393,13 @@
266
393
  "via": "browser",
267
394
  "prerequisite": null,
268
395
  "offer": false,
269
- "reason": "API billing, not a subscription; shown only when an app asks.",
270
- "source": "dist/extensions/minimax/openclaw.plugin.json (2026.8.1)"
396
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
397
+ "source": "dist/extensions/minimax/openclaw.plugin.json (2026.8.1)",
398
+ "revision": "2026.8.1",
399
+ "checked": "2026-09-30",
400
+ "label": "API key (billed per use)",
401
+ "keyEntry": false,
402
+ "keyErrors": null
271
403
  },
272
404
  {
273
405
  "choice": "nvidia-api-key",
@@ -277,8 +409,16 @@
277
409
  "via": "browser",
278
410
  "prerequisite": null,
279
411
  "offer": false,
280
- "reason": "API billing, not a subscription; shown only when an app asks.",
281
- "source": "dist/extensions/nvidia/openclaw.plugin.json (2026.8.1)"
412
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
413
+ "source": "dist/extensions/nvidia/openclaw.plugin.json (2026.8.1)",
414
+ "revision": "2026.8.1",
415
+ "checked": "2026-09-30",
416
+ "label": "API key (billed per use)",
417
+ "keyEntry": true,
418
+ "keyErrors": {
419
+ "invalid": "key.invalid",
420
+ "not_included": "key.notIncluded"
421
+ }
282
422
  },
283
423
  {
284
424
  "choice": "ollama",
@@ -289,7 +429,12 @@
289
429
  "prerequisite": null,
290
430
  "offer": false,
291
431
  "reason": "Local runtime on this computer; no account and no billing.",
292
- "source": "dist/extensions/ollama/openclaw.plugin.json (2026.8.1)"
432
+ "source": "dist/extensions/ollama/openclaw.plugin.json (2026.8.1)",
433
+ "revision": "2026.8.1",
434
+ "checked": "2026-09-30",
435
+ "label": "On this computer",
436
+ "keyEntry": false,
437
+ "keyErrors": null
293
438
  },
294
439
  {
295
440
  "choice": "ollama-cloud",
@@ -299,8 +444,16 @@
299
444
  "via": "browser",
300
445
  "prerequisite": null,
301
446
  "offer": false,
302
- "reason": "API billing, not a subscription; shown only when an app asks.",
303
- "source": "dist/extensions/ollama/openclaw.plugin.json (2026.8.1)"
447
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
448
+ "source": "dist/extensions/ollama/openclaw.plugin.json (2026.8.1)",
449
+ "revision": "2026.8.1",
450
+ "checked": "2026-09-30",
451
+ "label": "API key (billed per use)",
452
+ "keyEntry": true,
453
+ "keyErrors": {
454
+ "invalid": "key.invalid",
455
+ "not_included": "key.notIncluded"
456
+ }
304
457
  },
305
458
  {
306
459
  "choice": "openai-api-key",
@@ -310,8 +463,16 @@
310
463
  "via": "browser",
311
464
  "prerequisite": null,
312
465
  "offer": false,
313
- "reason": "API billing, not a subscription; shown only when an app asks.",
314
- "source": "dist/provider-contract-api-*.js (2026.8.1)"
466
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
467
+ "source": "dist/provider-contract-api-*.js (2026.8.1)",
468
+ "revision": "2026.8.1",
469
+ "checked": "2026-09-30",
470
+ "label": "API key (billed per use)",
471
+ "keyEntry": true,
472
+ "keyErrors": {
473
+ "invalid": "key.invalid",
474
+ "not_included": "key.notIncluded"
475
+ }
315
476
  },
316
477
  {
317
478
  "choice": "opencode-go",
@@ -321,8 +482,16 @@
321
482
  "via": "browser",
322
483
  "prerequisite": null,
323
484
  "offer": false,
324
- "reason": "API billing, not a subscription; shown only when an app asks.",
325
- "source": "dist/extensions/opencode-go/openclaw.plugin.json (2026.8.1)"
485
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
486
+ "source": "dist/extensions/opencode-go/openclaw.plugin.json (2026.8.1)",
487
+ "revision": "2026.8.1",
488
+ "checked": "2026-09-30",
489
+ "label": "API key (billed per use)",
490
+ "keyEntry": true,
491
+ "keyErrors": {
492
+ "invalid": "key.invalid",
493
+ "not_included": "key.notIncluded"
494
+ }
326
495
  },
327
496
  {
328
497
  "choice": "openrouter-api-key",
@@ -332,8 +501,16 @@
332
501
  "via": "browser",
333
502
  "prerequisite": null,
334
503
  "offer": false,
335
- "reason": "API billing, not a subscription; shown only when an app asks.",
336
- "source": "dist/extensions/openrouter/openclaw.plugin.json (2026.8.1)"
504
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
505
+ "source": "dist/extensions/openrouter/openclaw.plugin.json (2026.8.1)",
506
+ "revision": "2026.8.1",
507
+ "checked": "2026-09-30",
508
+ "label": "API key (billed per use)",
509
+ "keyEntry": true,
510
+ "keyErrors": {
511
+ "invalid": "key.invalid",
512
+ "not_included": "key.notIncluded"
513
+ }
337
514
  },
338
515
  {
339
516
  "choice": "runway-api-key",
@@ -343,8 +520,13 @@
343
520
  "via": "browser",
344
521
  "prerequisite": null,
345
522
  "offer": false,
346
- "reason": "API billing, not a subscription; shown only when an app asks.",
347
- "source": "dist/extensions/runway/openclaw.plugin.json (2026.8.1)"
523
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
524
+ "source": "dist/extensions/runway/openclaw.plugin.json (2026.8.1)",
525
+ "revision": "2026.8.1",
526
+ "checked": "2026-09-30",
527
+ "label": "API key (billed per use)",
528
+ "keyEntry": false,
529
+ "keyErrors": null
348
530
  },
349
531
  {
350
532
  "choice": "setup-token",
@@ -353,12 +535,17 @@
353
535
  "billing": "subscription",
354
536
  "via": "browser",
355
537
  "prerequisite": null,
356
- "offer": false,
357
- "reason": "Token import is not the native Claude Code login route; direct Claude.ai OAuth remains excluded.",
538
+ "offer": true,
539
+ "reason": "Claude subscription sign-in by pasting a token.",
358
540
  "source": "dist/extensions/anthropic/openclaw.plugin.json (2026.8.1)",
359
541
  "auth": "token",
360
542
  "terms": "grey",
361
- "termsUrl": "https://code.claude.com/docs/en/legal-and-compliance#authentication-and-credential-use"
543
+ "termsUrl": "https://code.claude.com/docs/en/legal-and-compliance#authentication-and-credential-use",
544
+ "revision": "2026.8.1",
545
+ "checked": "2026-09-30",
546
+ "label": "Subscription",
547
+ "keyEntry": false,
548
+ "keyErrors": null
362
549
  },
363
550
  {
364
551
  "choice": "sglang",
@@ -369,7 +556,12 @@
369
556
  "prerequisite": null,
370
557
  "offer": false,
371
558
  "reason": "Local runtime on this computer; no account and no billing.",
372
- "source": "dist/extensions/sglang/openclaw.plugin.json (2026.8.1)"
559
+ "source": "dist/extensions/sglang/openclaw.plugin.json (2026.8.1)",
560
+ "revision": "2026.8.1",
561
+ "checked": "2026-09-30",
562
+ "label": "On this computer",
563
+ "keyEntry": false,
564
+ "keyErrors": null
373
565
  },
374
566
  {
375
567
  "choice": "together-api-key",
@@ -379,8 +571,16 @@
379
571
  "via": "browser",
380
572
  "prerequisite": null,
381
573
  "offer": false,
382
- "reason": "API billing, not a subscription; shown only when an app asks.",
383
- "source": "dist/extensions/together/openclaw.plugin.json (2026.8.1)"
574
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
575
+ "source": "dist/extensions/together/openclaw.plugin.json (2026.8.1)",
576
+ "revision": "2026.8.1",
577
+ "checked": "2026-09-30",
578
+ "label": "API key (billed per use)",
579
+ "keyEntry": true,
580
+ "keyErrors": {
581
+ "invalid": "key.invalid",
582
+ "not_included": "key.notIncluded"
583
+ }
384
584
  },
385
585
  {
386
586
  "choice": "vllm",
@@ -391,7 +591,12 @@
391
591
  "prerequisite": null,
392
592
  "offer": false,
393
593
  "reason": "Local runtime on this computer; no account and no billing.",
394
- "source": "dist/extensions/vllm/openclaw.plugin.json (2026.8.1)"
594
+ "source": "dist/extensions/vllm/openclaw.plugin.json (2026.8.1)",
595
+ "revision": "2026.8.1",
596
+ "checked": "2026-09-30",
597
+ "label": "On this computer",
598
+ "keyEntry": false,
599
+ "keyErrors": null
395
600
  },
396
601
  {
397
602
  "choice": "xai-api-key",
@@ -401,7 +606,15 @@
401
606
  "via": "browser",
402
607
  "prerequisite": null,
403
608
  "offer": false,
404
- "reason": "API billing, not a subscription; shown only when an app asks.",
405
- "source": "dist/extensions/xai/openclaw.plugin.json (2026.8.1)"
609
+ "reason": "API key (billed per use); offered only when the app or person opts in.",
610
+ "source": "dist/extensions/xai/openclaw.plugin.json (2026.8.1)",
611
+ "revision": "2026.8.1",
612
+ "checked": "2026-09-30",
613
+ "label": "API key (billed per use)",
614
+ "keyEntry": true,
615
+ "keyErrors": {
616
+ "invalid": "key.invalid",
617
+ "not_included": "key.notIncluded"
618
+ }
406
619
  }
407
620
  ]
package/dist/runs.d.ts CHANGED
@@ -14,7 +14,7 @@ export declare function createRuns(ctx: {
14
14
  bridge: Pick<Bridge, 'register'>;
15
15
  tools: ReadonlySet<string>;
16
16
  }): {
17
- run(spec: RunSpec, on?: (e: RunEvent) => void): Promise<RunEnd>;
17
+ run(spec: RunSpec, on?: (e: RunEvent) => void, keyAgent?: string): Promise<RunEnd>;
18
18
  steer(k: string, t: string): Promise<void>;
19
19
  abort(k: string): Promise<void>;
20
20
  };
package/dist/runs.js CHANGED
@@ -78,7 +78,7 @@ export function createRuns(ctx) {
78
78
  return undefined;
79
79
  }
80
80
  };
81
- const run = async (spec, on) => {
81
+ const run = async (spec, on, keyAgent) => {
82
82
  // Member boundary first: a member never speaks in another member's session, refused before any request.
83
83
  if (!spec.sessionKey.startsWith(`agent:${spec.member}:`))
84
84
  throw new Error(`refused: "${spec.sessionKey}" is not a session of member "${spec.member}"`);
@@ -86,8 +86,9 @@ export function createRuns(ctx) {
86
86
  for (const tool of spec.tools ?? [])
87
87
  if (!ctx.tools.has(tool))
88
88
  throw new Error(`refused: "${tool}" is not one of this kit's tools`);
89
- const { agentId } = await ctx.ensure(spec.member);
90
- const release = spec.register !== false ? ctx.bridge.register({ sessionKey: spec.sessionKey, member: spec.member }, spec.tools) : undefined;
89
+ const agentId = keyAgent ?? (await ctx.ensure(spec.member)).agentId;
90
+ const sessionKey = keyAgent ? `agent:${keyAgent}:${spec.sessionKey.slice(`agent:${spec.member}:`.length)}` : spec.sessionKey;
91
+ const release = spec.register !== false ? ctx.bridge.register({ sessionKey, member: spec.member }, spec.tools) : undefined;
91
92
  let last = '';
92
93
  let runId = ''; // gateway events for other runs carry a real runId and never match the empty one
93
94
  let ended = false;
@@ -148,7 +149,7 @@ export function createRuns(ctx) {
148
149
  };
149
150
  const final = ctx.request('agent', {
150
151
  agentId,
151
- sessionKey: spec.sessionKey,
152
+ sessionKey,
152
153
  message: spec.message,
153
154
  idempotencyKey: randomUUID(),
154
155
  ...(picked ?? {}),