clawchef 0.1.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.
Files changed (62) hide show
  1. package/README.md +405 -0
  2. package/dist/api.d.ts +14 -0
  3. package/dist/api.js +49 -0
  4. package/dist/assertions.d.ts +2 -0
  5. package/dist/assertions.js +32 -0
  6. package/dist/cli.d.ts +2 -0
  7. package/dist/cli.js +115 -0
  8. package/dist/env.d.ts +1 -0
  9. package/dist/env.js +14 -0
  10. package/dist/errors.d.ts +3 -0
  11. package/dist/errors.js +6 -0
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.js +18 -0
  14. package/dist/logger.d.ts +7 -0
  15. package/dist/logger.js +17 -0
  16. package/dist/openclaw/command-provider.d.ts +15 -0
  17. package/dist/openclaw/command-provider.js +489 -0
  18. package/dist/openclaw/factory.d.ts +3 -0
  19. package/dist/openclaw/factory.js +13 -0
  20. package/dist/openclaw/mock-provider.d.ts +15 -0
  21. package/dist/openclaw/mock-provider.js +65 -0
  22. package/dist/openclaw/provider.d.ts +20 -0
  23. package/dist/openclaw/provider.js +1 -0
  24. package/dist/openclaw/remote-provider.d.ts +19 -0
  25. package/dist/openclaw/remote-provider.js +158 -0
  26. package/dist/orchestrator.d.ts +4 -0
  27. package/dist/orchestrator.js +243 -0
  28. package/dist/recipe.d.ts +20 -0
  29. package/dist/recipe.js +522 -0
  30. package/dist/schema.d.ts +626 -0
  31. package/dist/schema.js +143 -0
  32. package/dist/template.d.ts +2 -0
  33. package/dist/template.js +30 -0
  34. package/dist/types.d.ts +136 -0
  35. package/dist/types.js +1 -0
  36. package/package.json +41 -0
  37. package/recipes/content-from-sample.yaml +20 -0
  38. package/recipes/openclaw-from-zero.yaml +45 -0
  39. package/recipes/openclaw-local.yaml +65 -0
  40. package/recipes/openclaw-remote-http.yaml +38 -0
  41. package/recipes/openclaw-telegram-mock.yaml +22 -0
  42. package/recipes/openclaw-telegram.yaml +19 -0
  43. package/recipes/sample.yaml +49 -0
  44. package/recipes/snippets/readme-template.md +3 -0
  45. package/src/api.ts +65 -0
  46. package/src/assertions.ts +37 -0
  47. package/src/cli.ts +123 -0
  48. package/src/env.ts +16 -0
  49. package/src/errors.ts +6 -0
  50. package/src/index.ts +20 -0
  51. package/src/logger.ts +17 -0
  52. package/src/openclaw/command-provider.ts +594 -0
  53. package/src/openclaw/factory.ts +16 -0
  54. package/src/openclaw/mock-provider.ts +104 -0
  55. package/src/openclaw/provider.ts +44 -0
  56. package/src/openclaw/remote-provider.ts +264 -0
  57. package/src/orchestrator.ts +271 -0
  58. package/src/recipe.ts +621 -0
  59. package/src/schema.ts +157 -0
  60. package/src/template.ts +41 -0
  61. package/src/types.ts +150 -0
  62. package/tsconfig.json +16 -0
@@ -0,0 +1,626 @@
1
+ import { z } from "zod";
2
+ export declare const recipeSchema: z.ZodObject<{
3
+ version: z.ZodString;
4
+ name: z.ZodString;
5
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
6
+ default: z.ZodOptional<z.ZodString>;
7
+ required: z.ZodOptional<z.ZodBoolean>;
8
+ description: z.ZodOptional<z.ZodString>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ default?: string | undefined;
11
+ required?: boolean | undefined;
12
+ description?: string | undefined;
13
+ }, {
14
+ default?: string | undefined;
15
+ required?: boolean | undefined;
16
+ description?: string | undefined;
17
+ }>>>;
18
+ openclaw: z.ZodObject<{
19
+ bin: z.ZodOptional<z.ZodString>;
20
+ version: z.ZodString;
21
+ install: z.ZodOptional<z.ZodEnum<["auto", "always", "never"]>>;
22
+ bootstrap: z.ZodOptional<z.ZodObject<{
23
+ non_interactive: z.ZodOptional<z.ZodBoolean>;
24
+ accept_risk: z.ZodOptional<z.ZodBoolean>;
25
+ mode: z.ZodOptional<z.ZodEnum<["local", "remote"]>>;
26
+ flow: z.ZodOptional<z.ZodEnum<["quickstart", "advanced", "manual"]>>;
27
+ auth_choice: z.ZodOptional<z.ZodString>;
28
+ workspace: z.ZodOptional<z.ZodString>;
29
+ reset: z.ZodOptional<z.ZodBoolean>;
30
+ skip_channels: z.ZodOptional<z.ZodBoolean>;
31
+ skip_skills: z.ZodOptional<z.ZodBoolean>;
32
+ skip_health: z.ZodOptional<z.ZodBoolean>;
33
+ skip_ui: z.ZodOptional<z.ZodBoolean>;
34
+ skip_daemon: z.ZodOptional<z.ZodBoolean>;
35
+ install_daemon: z.ZodOptional<z.ZodBoolean>;
36
+ openai_api_key: z.ZodOptional<z.ZodString>;
37
+ anthropic_api_key: z.ZodOptional<z.ZodString>;
38
+ openrouter_api_key: z.ZodOptional<z.ZodString>;
39
+ xai_api_key: z.ZodOptional<z.ZodString>;
40
+ gemini_api_key: z.ZodOptional<z.ZodString>;
41
+ ai_gateway_api_key: z.ZodOptional<z.ZodString>;
42
+ cloudflare_ai_gateway_api_key: z.ZodOptional<z.ZodString>;
43
+ cloudflare_ai_gateway_account_id: z.ZodOptional<z.ZodString>;
44
+ cloudflare_ai_gateway_gateway_id: z.ZodOptional<z.ZodString>;
45
+ token: z.ZodOptional<z.ZodString>;
46
+ token_provider: z.ZodOptional<z.ZodString>;
47
+ token_profile_id: z.ZodOptional<z.ZodString>;
48
+ }, "strict", z.ZodTypeAny, {
49
+ openai_api_key?: string | undefined;
50
+ anthropic_api_key?: string | undefined;
51
+ openrouter_api_key?: string | undefined;
52
+ xai_api_key?: string | undefined;
53
+ gemini_api_key?: string | undefined;
54
+ ai_gateway_api_key?: string | undefined;
55
+ cloudflare_ai_gateway_api_key?: string | undefined;
56
+ cloudflare_ai_gateway_account_id?: string | undefined;
57
+ cloudflare_ai_gateway_gateway_id?: string | undefined;
58
+ token?: string | undefined;
59
+ token_provider?: string | undefined;
60
+ token_profile_id?: string | undefined;
61
+ workspace?: string | undefined;
62
+ non_interactive?: boolean | undefined;
63
+ accept_risk?: boolean | undefined;
64
+ mode?: "remote" | "local" | undefined;
65
+ flow?: "quickstart" | "advanced" | "manual" | undefined;
66
+ auth_choice?: string | undefined;
67
+ reset?: boolean | undefined;
68
+ skip_channels?: boolean | undefined;
69
+ skip_skills?: boolean | undefined;
70
+ skip_health?: boolean | undefined;
71
+ skip_ui?: boolean | undefined;
72
+ skip_daemon?: boolean | undefined;
73
+ install_daemon?: boolean | undefined;
74
+ }, {
75
+ openai_api_key?: string | undefined;
76
+ anthropic_api_key?: string | undefined;
77
+ openrouter_api_key?: string | undefined;
78
+ xai_api_key?: string | undefined;
79
+ gemini_api_key?: string | undefined;
80
+ ai_gateway_api_key?: string | undefined;
81
+ cloudflare_ai_gateway_api_key?: string | undefined;
82
+ cloudflare_ai_gateway_account_id?: string | undefined;
83
+ cloudflare_ai_gateway_gateway_id?: string | undefined;
84
+ token?: string | undefined;
85
+ token_provider?: string | undefined;
86
+ token_profile_id?: string | undefined;
87
+ workspace?: string | undefined;
88
+ non_interactive?: boolean | undefined;
89
+ accept_risk?: boolean | undefined;
90
+ mode?: "remote" | "local" | undefined;
91
+ flow?: "quickstart" | "advanced" | "manual" | undefined;
92
+ auth_choice?: string | undefined;
93
+ reset?: boolean | undefined;
94
+ skip_channels?: boolean | undefined;
95
+ skip_skills?: boolean | undefined;
96
+ skip_health?: boolean | undefined;
97
+ skip_ui?: boolean | undefined;
98
+ skip_daemon?: boolean | undefined;
99
+ install_daemon?: boolean | undefined;
100
+ }>>;
101
+ commands: z.ZodOptional<z.ZodObject<{
102
+ use_version: z.ZodOptional<z.ZodString>;
103
+ install_version: z.ZodOptional<z.ZodString>;
104
+ uninstall_version: z.ZodOptional<z.ZodString>;
105
+ factory_reset: z.ZodOptional<z.ZodString>;
106
+ start_gateway: z.ZodOptional<z.ZodString>;
107
+ enable_plugin: z.ZodOptional<z.ZodString>;
108
+ login_channel: z.ZodOptional<z.ZodString>;
109
+ create_workspace: z.ZodOptional<z.ZodString>;
110
+ create_agent: z.ZodOptional<z.ZodString>;
111
+ install_skill: z.ZodOptional<z.ZodString>;
112
+ send_message: z.ZodOptional<z.ZodString>;
113
+ run_agent: z.ZodOptional<z.ZodString>;
114
+ }, "strict", z.ZodTypeAny, {
115
+ use_version?: string | undefined;
116
+ install_version?: string | undefined;
117
+ uninstall_version?: string | undefined;
118
+ factory_reset?: string | undefined;
119
+ start_gateway?: string | undefined;
120
+ enable_plugin?: string | undefined;
121
+ login_channel?: string | undefined;
122
+ create_agent?: string | undefined;
123
+ install_skill?: string | undefined;
124
+ send_message?: string | undefined;
125
+ run_agent?: string | undefined;
126
+ create_workspace?: string | undefined;
127
+ }, {
128
+ use_version?: string | undefined;
129
+ install_version?: string | undefined;
130
+ uninstall_version?: string | undefined;
131
+ factory_reset?: string | undefined;
132
+ start_gateway?: string | undefined;
133
+ enable_plugin?: string | undefined;
134
+ login_channel?: string | undefined;
135
+ create_agent?: string | undefined;
136
+ install_skill?: string | undefined;
137
+ send_message?: string | undefined;
138
+ run_agent?: string | undefined;
139
+ create_workspace?: string | undefined;
140
+ }>>;
141
+ }, "strict", z.ZodTypeAny, {
142
+ version: string;
143
+ bin?: string | undefined;
144
+ install?: "auto" | "always" | "never" | undefined;
145
+ bootstrap?: {
146
+ openai_api_key?: string | undefined;
147
+ anthropic_api_key?: string | undefined;
148
+ openrouter_api_key?: string | undefined;
149
+ xai_api_key?: string | undefined;
150
+ gemini_api_key?: string | undefined;
151
+ ai_gateway_api_key?: string | undefined;
152
+ cloudflare_ai_gateway_api_key?: string | undefined;
153
+ cloudflare_ai_gateway_account_id?: string | undefined;
154
+ cloudflare_ai_gateway_gateway_id?: string | undefined;
155
+ token?: string | undefined;
156
+ token_provider?: string | undefined;
157
+ token_profile_id?: string | undefined;
158
+ workspace?: string | undefined;
159
+ non_interactive?: boolean | undefined;
160
+ accept_risk?: boolean | undefined;
161
+ mode?: "remote" | "local" | undefined;
162
+ flow?: "quickstart" | "advanced" | "manual" | undefined;
163
+ auth_choice?: string | undefined;
164
+ reset?: boolean | undefined;
165
+ skip_channels?: boolean | undefined;
166
+ skip_skills?: boolean | undefined;
167
+ skip_health?: boolean | undefined;
168
+ skip_ui?: boolean | undefined;
169
+ skip_daemon?: boolean | undefined;
170
+ install_daemon?: boolean | undefined;
171
+ } | undefined;
172
+ commands?: {
173
+ use_version?: string | undefined;
174
+ install_version?: string | undefined;
175
+ uninstall_version?: string | undefined;
176
+ factory_reset?: string | undefined;
177
+ start_gateway?: string | undefined;
178
+ enable_plugin?: string | undefined;
179
+ login_channel?: string | undefined;
180
+ create_agent?: string | undefined;
181
+ install_skill?: string | undefined;
182
+ send_message?: string | undefined;
183
+ run_agent?: string | undefined;
184
+ create_workspace?: string | undefined;
185
+ } | undefined;
186
+ }, {
187
+ version: string;
188
+ bin?: string | undefined;
189
+ install?: "auto" | "always" | "never" | undefined;
190
+ bootstrap?: {
191
+ openai_api_key?: string | undefined;
192
+ anthropic_api_key?: string | undefined;
193
+ openrouter_api_key?: string | undefined;
194
+ xai_api_key?: string | undefined;
195
+ gemini_api_key?: string | undefined;
196
+ ai_gateway_api_key?: string | undefined;
197
+ cloudflare_ai_gateway_api_key?: string | undefined;
198
+ cloudflare_ai_gateway_account_id?: string | undefined;
199
+ cloudflare_ai_gateway_gateway_id?: string | undefined;
200
+ token?: string | undefined;
201
+ token_provider?: string | undefined;
202
+ token_profile_id?: string | undefined;
203
+ workspace?: string | undefined;
204
+ non_interactive?: boolean | undefined;
205
+ accept_risk?: boolean | undefined;
206
+ mode?: "remote" | "local" | undefined;
207
+ flow?: "quickstart" | "advanced" | "manual" | undefined;
208
+ auth_choice?: string | undefined;
209
+ reset?: boolean | undefined;
210
+ skip_channels?: boolean | undefined;
211
+ skip_skills?: boolean | undefined;
212
+ skip_health?: boolean | undefined;
213
+ skip_ui?: boolean | undefined;
214
+ skip_daemon?: boolean | undefined;
215
+ install_daemon?: boolean | undefined;
216
+ } | undefined;
217
+ commands?: {
218
+ use_version?: string | undefined;
219
+ install_version?: string | undefined;
220
+ uninstall_version?: string | undefined;
221
+ factory_reset?: string | undefined;
222
+ start_gateway?: string | undefined;
223
+ enable_plugin?: string | undefined;
224
+ login_channel?: string | undefined;
225
+ create_agent?: string | undefined;
226
+ install_skill?: string | undefined;
227
+ send_message?: string | undefined;
228
+ run_agent?: string | undefined;
229
+ create_workspace?: string | undefined;
230
+ } | undefined;
231
+ }>;
232
+ workspaces: z.ZodOptional<z.ZodArray<z.ZodObject<{
233
+ name: z.ZodString;
234
+ path: z.ZodOptional<z.ZodString>;
235
+ }, "strict", z.ZodTypeAny, {
236
+ name: string;
237
+ path?: string | undefined;
238
+ }, {
239
+ name: string;
240
+ path?: string | undefined;
241
+ }>, "many">>;
242
+ channels: z.ZodOptional<z.ZodArray<z.ZodObject<{
243
+ channel: z.ZodString;
244
+ account: z.ZodOptional<z.ZodString>;
245
+ login: z.ZodOptional<z.ZodBoolean>;
246
+ login_mode: z.ZodOptional<z.ZodEnum<["interactive"]>>;
247
+ login_account: z.ZodOptional<z.ZodString>;
248
+ name: z.ZodOptional<z.ZodString>;
249
+ token: z.ZodOptional<z.ZodString>;
250
+ token_file: z.ZodOptional<z.ZodString>;
251
+ use_env: z.ZodOptional<z.ZodBoolean>;
252
+ bot_token: z.ZodOptional<z.ZodString>;
253
+ access_token: z.ZodOptional<z.ZodString>;
254
+ app_token: z.ZodOptional<z.ZodString>;
255
+ webhook_url: z.ZodOptional<z.ZodString>;
256
+ webhook_path: z.ZodOptional<z.ZodString>;
257
+ signal_number: z.ZodOptional<z.ZodString>;
258
+ password: z.ZodOptional<z.ZodString>;
259
+ extra_flags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
260
+ }, "strict", z.ZodTypeAny, {
261
+ channel: string;
262
+ token?: string | undefined;
263
+ account?: string | undefined;
264
+ login?: boolean | undefined;
265
+ login_mode?: "interactive" | undefined;
266
+ login_account?: string | undefined;
267
+ name?: string | undefined;
268
+ token_file?: string | undefined;
269
+ use_env?: boolean | undefined;
270
+ bot_token?: string | undefined;
271
+ access_token?: string | undefined;
272
+ app_token?: string | undefined;
273
+ webhook_url?: string | undefined;
274
+ webhook_path?: string | undefined;
275
+ signal_number?: string | undefined;
276
+ password?: string | undefined;
277
+ extra_flags?: Record<string, string | number | boolean> | undefined;
278
+ }, {
279
+ channel: string;
280
+ token?: string | undefined;
281
+ account?: string | undefined;
282
+ login?: boolean | undefined;
283
+ login_mode?: "interactive" | undefined;
284
+ login_account?: string | undefined;
285
+ name?: string | undefined;
286
+ token_file?: string | undefined;
287
+ use_env?: boolean | undefined;
288
+ bot_token?: string | undefined;
289
+ access_token?: string | undefined;
290
+ app_token?: string | undefined;
291
+ webhook_url?: string | undefined;
292
+ webhook_path?: string | undefined;
293
+ signal_number?: string | undefined;
294
+ password?: string | undefined;
295
+ extra_flags?: Record<string, string | number | boolean> | undefined;
296
+ }>, "many">>;
297
+ agents: z.ZodOptional<z.ZodArray<z.ZodObject<{
298
+ workspace: z.ZodString;
299
+ name: z.ZodString;
300
+ model: z.ZodOptional<z.ZodString>;
301
+ skills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
302
+ }, "strict", z.ZodTypeAny, {
303
+ workspace: string;
304
+ name: string;
305
+ model?: string | undefined;
306
+ skills?: string[] | undefined;
307
+ }, {
308
+ workspace: string;
309
+ name: string;
310
+ model?: string | undefined;
311
+ skills?: string[] | undefined;
312
+ }>, "many">>;
313
+ files: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
314
+ workspace: z.ZodString;
315
+ path: z.ZodString;
316
+ content: z.ZodOptional<z.ZodString>;
317
+ content_from: z.ZodOptional<z.ZodString>;
318
+ source: z.ZodOptional<z.ZodString>;
319
+ overwrite: z.ZodOptional<z.ZodBoolean>;
320
+ }, "strict", z.ZodTypeAny, {
321
+ path: string;
322
+ workspace: string;
323
+ content?: string | undefined;
324
+ overwrite?: boolean | undefined;
325
+ content_from?: string | undefined;
326
+ source?: string | undefined;
327
+ }, {
328
+ path: string;
329
+ workspace: string;
330
+ content?: string | undefined;
331
+ overwrite?: boolean | undefined;
332
+ content_from?: string | undefined;
333
+ source?: string | undefined;
334
+ }>, {
335
+ path: string;
336
+ workspace: string;
337
+ content?: string | undefined;
338
+ overwrite?: boolean | undefined;
339
+ content_from?: string | undefined;
340
+ source?: string | undefined;
341
+ }, {
342
+ path: string;
343
+ workspace: string;
344
+ content?: string | undefined;
345
+ overwrite?: boolean | undefined;
346
+ content_from?: string | undefined;
347
+ source?: string | undefined;
348
+ }>, "many">>;
349
+ conversations: z.ZodOptional<z.ZodArray<z.ZodObject<{
350
+ workspace: z.ZodString;
351
+ agent: z.ZodString;
352
+ messages: z.ZodArray<z.ZodObject<{
353
+ content: z.ZodString;
354
+ expect: z.ZodOptional<z.ZodObject<{
355
+ contains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
356
+ not_contains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
357
+ regex: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
358
+ equals: z.ZodOptional<z.ZodString>;
359
+ }, "strict", z.ZodTypeAny, {
360
+ equals?: string | undefined;
361
+ contains?: string[] | undefined;
362
+ not_contains?: string[] | undefined;
363
+ regex?: string[] | undefined;
364
+ }, {
365
+ equals?: string | undefined;
366
+ contains?: string[] | undefined;
367
+ not_contains?: string[] | undefined;
368
+ regex?: string[] | undefined;
369
+ }>>;
370
+ }, "strict", z.ZodTypeAny, {
371
+ content: string;
372
+ expect?: {
373
+ equals?: string | undefined;
374
+ contains?: string[] | undefined;
375
+ not_contains?: string[] | undefined;
376
+ regex?: string[] | undefined;
377
+ } | undefined;
378
+ }, {
379
+ content: string;
380
+ expect?: {
381
+ equals?: string | undefined;
382
+ contains?: string[] | undefined;
383
+ not_contains?: string[] | undefined;
384
+ regex?: string[] | undefined;
385
+ } | undefined;
386
+ }>, "many">;
387
+ run: z.ZodOptional<z.ZodBoolean>;
388
+ }, "strict", z.ZodTypeAny, {
389
+ workspace: string;
390
+ agent: string;
391
+ messages: {
392
+ content: string;
393
+ expect?: {
394
+ equals?: string | undefined;
395
+ contains?: string[] | undefined;
396
+ not_contains?: string[] | undefined;
397
+ regex?: string[] | undefined;
398
+ } | undefined;
399
+ }[];
400
+ run?: boolean | undefined;
401
+ }, {
402
+ workspace: string;
403
+ agent: string;
404
+ messages: {
405
+ content: string;
406
+ expect?: {
407
+ equals?: string | undefined;
408
+ contains?: string[] | undefined;
409
+ not_contains?: string[] | undefined;
410
+ regex?: string[] | undefined;
411
+ } | undefined;
412
+ }[];
413
+ run?: boolean | undefined;
414
+ }>, "many">>;
415
+ }, "strict", z.ZodTypeAny, {
416
+ openclaw: {
417
+ version: string;
418
+ bin?: string | undefined;
419
+ install?: "auto" | "always" | "never" | undefined;
420
+ bootstrap?: {
421
+ openai_api_key?: string | undefined;
422
+ anthropic_api_key?: string | undefined;
423
+ openrouter_api_key?: string | undefined;
424
+ xai_api_key?: string | undefined;
425
+ gemini_api_key?: string | undefined;
426
+ ai_gateway_api_key?: string | undefined;
427
+ cloudflare_ai_gateway_api_key?: string | undefined;
428
+ cloudflare_ai_gateway_account_id?: string | undefined;
429
+ cloudflare_ai_gateway_gateway_id?: string | undefined;
430
+ token?: string | undefined;
431
+ token_provider?: string | undefined;
432
+ token_profile_id?: string | undefined;
433
+ workspace?: string | undefined;
434
+ non_interactive?: boolean | undefined;
435
+ accept_risk?: boolean | undefined;
436
+ mode?: "remote" | "local" | undefined;
437
+ flow?: "quickstart" | "advanced" | "manual" | undefined;
438
+ auth_choice?: string | undefined;
439
+ reset?: boolean | undefined;
440
+ skip_channels?: boolean | undefined;
441
+ skip_skills?: boolean | undefined;
442
+ skip_health?: boolean | undefined;
443
+ skip_ui?: boolean | undefined;
444
+ skip_daemon?: boolean | undefined;
445
+ install_daemon?: boolean | undefined;
446
+ } | undefined;
447
+ commands?: {
448
+ use_version?: string | undefined;
449
+ install_version?: string | undefined;
450
+ uninstall_version?: string | undefined;
451
+ factory_reset?: string | undefined;
452
+ start_gateway?: string | undefined;
453
+ enable_plugin?: string | undefined;
454
+ login_channel?: string | undefined;
455
+ create_agent?: string | undefined;
456
+ install_skill?: string | undefined;
457
+ send_message?: string | undefined;
458
+ run_agent?: string | undefined;
459
+ create_workspace?: string | undefined;
460
+ } | undefined;
461
+ };
462
+ version: string;
463
+ name: string;
464
+ params?: Record<string, {
465
+ default?: string | undefined;
466
+ required?: boolean | undefined;
467
+ description?: string | undefined;
468
+ }> | undefined;
469
+ workspaces?: {
470
+ name: string;
471
+ path?: string | undefined;
472
+ }[] | undefined;
473
+ channels?: {
474
+ channel: string;
475
+ token?: string | undefined;
476
+ account?: string | undefined;
477
+ login?: boolean | undefined;
478
+ login_mode?: "interactive" | undefined;
479
+ login_account?: string | undefined;
480
+ name?: string | undefined;
481
+ token_file?: string | undefined;
482
+ use_env?: boolean | undefined;
483
+ bot_token?: string | undefined;
484
+ access_token?: string | undefined;
485
+ app_token?: string | undefined;
486
+ webhook_url?: string | undefined;
487
+ webhook_path?: string | undefined;
488
+ signal_number?: string | undefined;
489
+ password?: string | undefined;
490
+ extra_flags?: Record<string, string | number | boolean> | undefined;
491
+ }[] | undefined;
492
+ agents?: {
493
+ workspace: string;
494
+ name: string;
495
+ model?: string | undefined;
496
+ skills?: string[] | undefined;
497
+ }[] | undefined;
498
+ files?: {
499
+ path: string;
500
+ workspace: string;
501
+ content?: string | undefined;
502
+ overwrite?: boolean | undefined;
503
+ content_from?: string | undefined;
504
+ source?: string | undefined;
505
+ }[] | undefined;
506
+ conversations?: {
507
+ workspace: string;
508
+ agent: string;
509
+ messages: {
510
+ content: string;
511
+ expect?: {
512
+ equals?: string | undefined;
513
+ contains?: string[] | undefined;
514
+ not_contains?: string[] | undefined;
515
+ regex?: string[] | undefined;
516
+ } | undefined;
517
+ }[];
518
+ run?: boolean | undefined;
519
+ }[] | undefined;
520
+ }, {
521
+ openclaw: {
522
+ version: string;
523
+ bin?: string | undefined;
524
+ install?: "auto" | "always" | "never" | undefined;
525
+ bootstrap?: {
526
+ openai_api_key?: string | undefined;
527
+ anthropic_api_key?: string | undefined;
528
+ openrouter_api_key?: string | undefined;
529
+ xai_api_key?: string | undefined;
530
+ gemini_api_key?: string | undefined;
531
+ ai_gateway_api_key?: string | undefined;
532
+ cloudflare_ai_gateway_api_key?: string | undefined;
533
+ cloudflare_ai_gateway_account_id?: string | undefined;
534
+ cloudflare_ai_gateway_gateway_id?: string | undefined;
535
+ token?: string | undefined;
536
+ token_provider?: string | undefined;
537
+ token_profile_id?: string | undefined;
538
+ workspace?: string | undefined;
539
+ non_interactive?: boolean | undefined;
540
+ accept_risk?: boolean | undefined;
541
+ mode?: "remote" | "local" | undefined;
542
+ flow?: "quickstart" | "advanced" | "manual" | undefined;
543
+ auth_choice?: string | undefined;
544
+ reset?: boolean | undefined;
545
+ skip_channels?: boolean | undefined;
546
+ skip_skills?: boolean | undefined;
547
+ skip_health?: boolean | undefined;
548
+ skip_ui?: boolean | undefined;
549
+ skip_daemon?: boolean | undefined;
550
+ install_daemon?: boolean | undefined;
551
+ } | undefined;
552
+ commands?: {
553
+ use_version?: string | undefined;
554
+ install_version?: string | undefined;
555
+ uninstall_version?: string | undefined;
556
+ factory_reset?: string | undefined;
557
+ start_gateway?: string | undefined;
558
+ enable_plugin?: string | undefined;
559
+ login_channel?: string | undefined;
560
+ create_agent?: string | undefined;
561
+ install_skill?: string | undefined;
562
+ send_message?: string | undefined;
563
+ run_agent?: string | undefined;
564
+ create_workspace?: string | undefined;
565
+ } | undefined;
566
+ };
567
+ version: string;
568
+ name: string;
569
+ params?: Record<string, {
570
+ default?: string | undefined;
571
+ required?: boolean | undefined;
572
+ description?: string | undefined;
573
+ }> | undefined;
574
+ workspaces?: {
575
+ name: string;
576
+ path?: string | undefined;
577
+ }[] | undefined;
578
+ channels?: {
579
+ channel: string;
580
+ token?: string | undefined;
581
+ account?: string | undefined;
582
+ login?: boolean | undefined;
583
+ login_mode?: "interactive" | undefined;
584
+ login_account?: string | undefined;
585
+ name?: string | undefined;
586
+ token_file?: string | undefined;
587
+ use_env?: boolean | undefined;
588
+ bot_token?: string | undefined;
589
+ access_token?: string | undefined;
590
+ app_token?: string | undefined;
591
+ webhook_url?: string | undefined;
592
+ webhook_path?: string | undefined;
593
+ signal_number?: string | undefined;
594
+ password?: string | undefined;
595
+ extra_flags?: Record<string, string | number | boolean> | undefined;
596
+ }[] | undefined;
597
+ agents?: {
598
+ workspace: string;
599
+ name: string;
600
+ model?: string | undefined;
601
+ skills?: string[] | undefined;
602
+ }[] | undefined;
603
+ files?: {
604
+ path: string;
605
+ workspace: string;
606
+ content?: string | undefined;
607
+ overwrite?: boolean | undefined;
608
+ content_from?: string | undefined;
609
+ source?: string | undefined;
610
+ }[] | undefined;
611
+ conversations?: {
612
+ workspace: string;
613
+ agent: string;
614
+ messages: {
615
+ content: string;
616
+ expect?: {
617
+ equals?: string | undefined;
618
+ contains?: string[] | undefined;
619
+ not_contains?: string[] | undefined;
620
+ regex?: string[] | undefined;
621
+ } | undefined;
622
+ }[];
623
+ run?: boolean | undefined;
624
+ }[] | undefined;
625
+ }>;
626
+ export type RecipeSchema = z.infer<typeof recipeSchema>;