oh-my-opencode 3.13.1 → 3.14.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.ja.md +2 -2
  2. package/README.ko.md +2 -2
  3. package/README.md +2 -2
  4. package/README.ru.md +2 -2
  5. package/README.zh-cn.md +2 -2
  6. package/dist/agents/types.d.ts +2 -1
  7. package/dist/cli/doctor/checks/model-resolution-types.d.ts +3 -0
  8. package/dist/cli/doctor/checks/model-resolution.d.ts +2 -1
  9. package/dist/cli/doctor/constants.d.ts +1 -1
  10. package/dist/cli/index.js +41911 -346
  11. package/dist/cli/refresh-model-capabilities.d.ts +15 -0
  12. package/dist/config/index.d.ts +1 -1
  13. package/dist/config/schema/agent-overrides.d.ts +360 -15
  14. package/dist/config/schema/categories.d.ts +48 -2
  15. package/dist/config/schema/dynamic-context-pruning.d.ts +1 -1
  16. package/dist/config/schema/experimental.d.ts +1 -1
  17. package/dist/config/schema/fallback-models.d.ts +45 -1
  18. package/dist/config/schema/model-capabilities.d.ts +8 -0
  19. package/dist/config/schema/oh-my-opencode-config.d.ts +367 -16
  20. package/dist/config/schema.d.ts +1 -0
  21. package/dist/features/background-agent/types.d.ts +3 -10
  22. package/dist/features/opencode-skill-loader/loader.d.ts +2 -0
  23. package/dist/hooks/auto-update-checker/hook/model-capabilities-status.d.ts +2 -0
  24. package/dist/hooks/auto-update-checker/types.d.ts +2 -0
  25. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +1 -1
  26. package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +1 -1
  27. package/dist/hooks/keyword-detector/ultrawork/gpt.d.ts +1 -1
  28. package/dist/hooks/model-fallback/hook.d.ts +5 -0
  29. package/dist/hooks/runtime-fallback/fallback-models.d.ts +12 -0
  30. package/dist/hooks/start-work/start-work-hook.d.ts +1 -0
  31. package/dist/index.js +43251 -1161
  32. package/dist/oh-my-opencode.schema.json +996 -15
  33. package/dist/plugin/chat-params.d.ts +1 -0
  34. package/dist/shared/connected-providers-cache.d.ts +20 -5
  35. package/dist/shared/fallback-chain-from-models.d.ts +10 -1
  36. package/dist/shared/index.d.ts +7 -1
  37. package/dist/shared/known-variants.d.ts +6 -0
  38. package/dist/shared/legacy-plugin-warning.d.ts +6 -0
  39. package/dist/shared/log-legacy-plugin-startup-warning.d.ts +1 -0
  40. package/dist/shared/model-capabilities-cache.d.ts +20 -0
  41. package/dist/shared/model-capabilities.d.ts +91 -0
  42. package/dist/shared/model-capability-aliases.d.ts +21 -0
  43. package/dist/shared/model-capability-guardrails.d.ts +38 -0
  44. package/dist/shared/model-capability-heuristics.d.ts +10 -0
  45. package/dist/shared/model-requirements.d.ts +8 -0
  46. package/dist/shared/model-resolution-types.d.ts +13 -0
  47. package/dist/shared/model-resolver.d.ts +10 -3
  48. package/dist/shared/model-settings-compatibility.d.ts +40 -0
  49. package/dist/shared/plugin-identity.d.ts +4 -3
  50. package/dist/shared/project-discovery-dirs.d.ts +4 -0
  51. package/dist/shared/session-prompt-params-helpers.d.ts +12 -0
  52. package/dist/shared/session-prompt-params-state.d.ts +9 -0
  53. package/dist/tools/delegate-task/background-task.d.ts +2 -6
  54. package/dist/tools/delegate-task/category-resolver.d.ts +2 -5
  55. package/dist/tools/delegate-task/model-selection.d.ts +2 -0
  56. package/dist/tools/delegate-task/subagent-resolver.d.ts +3 -6
  57. package/dist/tools/delegate-task/sync-prompt-sender.d.ts +2 -6
  58. package/dist/tools/delegate-task/sync-session-poller.d.ts +1 -0
  59. package/dist/tools/delegate-task/sync-task.d.ts +2 -6
  60. package/dist/tools/delegate-task/types.d.ts +3 -5
  61. package/dist/tools/delegate-task/unstable-agent-task.d.ts +2 -6
  62. package/package.json +14 -12
@@ -28,7 +28,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
28
28
  agents: z.ZodOptional<z.ZodObject<{
29
29
  build: z.ZodOptional<z.ZodObject<{
30
30
  model: z.ZodOptional<z.ZodString>;
31
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
31
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
32
+ model: z.ZodString;
33
+ variant: z.ZodOptional<z.ZodString>;
34
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
35
+ none: "none";
36
+ minimal: "minimal";
37
+ low: "low";
38
+ medium: "medium";
39
+ high: "high";
40
+ xhigh: "xhigh";
41
+ }>>;
42
+ temperature: z.ZodOptional<z.ZodNumber>;
43
+ top_p: z.ZodOptional<z.ZodNumber>;
44
+ maxTokens: z.ZodOptional<z.ZodNumber>;
45
+ thinking: z.ZodOptional<z.ZodObject<{
46
+ type: z.ZodEnum<{
47
+ enabled: "enabled";
48
+ disabled: "disabled";
49
+ }>;
50
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
51
+ }, z.core.$strip>>;
52
+ }, z.core.$strip>]>>]>>;
32
53
  variant: z.ZodOptional<z.ZodString>;
33
54
  category: z.ZodOptional<z.ZodString>;
34
55
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -90,6 +111,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
90
111
  budgetTokens: z.ZodOptional<z.ZodNumber>;
91
112
  }, z.core.$strip>>;
92
113
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
114
+ none: "none";
115
+ minimal: "minimal";
93
116
  low: "low";
94
117
  medium: "medium";
95
118
  high: "high";
@@ -112,7 +135,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
112
135
  }, z.core.$strip>>;
113
136
  plan: z.ZodOptional<z.ZodObject<{
114
137
  model: z.ZodOptional<z.ZodString>;
115
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
138
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
139
+ model: z.ZodString;
140
+ variant: z.ZodOptional<z.ZodString>;
141
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
142
+ none: "none";
143
+ minimal: "minimal";
144
+ low: "low";
145
+ medium: "medium";
146
+ high: "high";
147
+ xhigh: "xhigh";
148
+ }>>;
149
+ temperature: z.ZodOptional<z.ZodNumber>;
150
+ top_p: z.ZodOptional<z.ZodNumber>;
151
+ maxTokens: z.ZodOptional<z.ZodNumber>;
152
+ thinking: z.ZodOptional<z.ZodObject<{
153
+ type: z.ZodEnum<{
154
+ enabled: "enabled";
155
+ disabled: "disabled";
156
+ }>;
157
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
158
+ }, z.core.$strip>>;
159
+ }, z.core.$strip>]>>]>>;
116
160
  variant: z.ZodOptional<z.ZodString>;
117
161
  category: z.ZodOptional<z.ZodString>;
118
162
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -174,6 +218,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
174
218
  budgetTokens: z.ZodOptional<z.ZodNumber>;
175
219
  }, z.core.$strip>>;
176
220
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
221
+ none: "none";
222
+ minimal: "minimal";
177
223
  low: "low";
178
224
  medium: "medium";
179
225
  high: "high";
@@ -196,7 +242,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
196
242
  }, z.core.$strip>>;
197
243
  sisyphus: z.ZodOptional<z.ZodObject<{
198
244
  model: z.ZodOptional<z.ZodString>;
199
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
245
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
246
+ model: z.ZodString;
247
+ variant: z.ZodOptional<z.ZodString>;
248
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
249
+ none: "none";
250
+ minimal: "minimal";
251
+ low: "low";
252
+ medium: "medium";
253
+ high: "high";
254
+ xhigh: "xhigh";
255
+ }>>;
256
+ temperature: z.ZodOptional<z.ZodNumber>;
257
+ top_p: z.ZodOptional<z.ZodNumber>;
258
+ maxTokens: z.ZodOptional<z.ZodNumber>;
259
+ thinking: z.ZodOptional<z.ZodObject<{
260
+ type: z.ZodEnum<{
261
+ enabled: "enabled";
262
+ disabled: "disabled";
263
+ }>;
264
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
265
+ }, z.core.$strip>>;
266
+ }, z.core.$strip>]>>]>>;
200
267
  variant: z.ZodOptional<z.ZodString>;
201
268
  category: z.ZodOptional<z.ZodString>;
202
269
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -258,6 +325,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
258
325
  budgetTokens: z.ZodOptional<z.ZodNumber>;
259
326
  }, z.core.$strip>>;
260
327
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
328
+ none: "none";
329
+ minimal: "minimal";
261
330
  low: "low";
262
331
  medium: "medium";
263
332
  high: "high";
@@ -280,7 +349,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
280
349
  }, z.core.$strip>>;
281
350
  hephaestus: z.ZodOptional<z.ZodObject<{
282
351
  model: z.ZodOptional<z.ZodString>;
283
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
352
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
353
+ model: z.ZodString;
354
+ variant: z.ZodOptional<z.ZodString>;
355
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
356
+ none: "none";
357
+ minimal: "minimal";
358
+ low: "low";
359
+ medium: "medium";
360
+ high: "high";
361
+ xhigh: "xhigh";
362
+ }>>;
363
+ temperature: z.ZodOptional<z.ZodNumber>;
364
+ top_p: z.ZodOptional<z.ZodNumber>;
365
+ maxTokens: z.ZodOptional<z.ZodNumber>;
366
+ thinking: z.ZodOptional<z.ZodObject<{
367
+ type: z.ZodEnum<{
368
+ enabled: "enabled";
369
+ disabled: "disabled";
370
+ }>;
371
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
372
+ }, z.core.$strip>>;
373
+ }, z.core.$strip>]>>]>>;
284
374
  variant: z.ZodOptional<z.ZodString>;
285
375
  category: z.ZodOptional<z.ZodString>;
286
376
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -342,6 +432,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
342
432
  budgetTokens: z.ZodOptional<z.ZodNumber>;
343
433
  }, z.core.$strip>>;
344
434
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
435
+ none: "none";
436
+ minimal: "minimal";
345
437
  low: "low";
346
438
  medium: "medium";
347
439
  high: "high";
@@ -365,7 +457,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
365
457
  }, z.core.$strip>>;
366
458
  "sisyphus-junior": z.ZodOptional<z.ZodObject<{
367
459
  model: z.ZodOptional<z.ZodString>;
368
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
460
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
461
+ model: z.ZodString;
462
+ variant: z.ZodOptional<z.ZodString>;
463
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
464
+ none: "none";
465
+ minimal: "minimal";
466
+ low: "low";
467
+ medium: "medium";
468
+ high: "high";
469
+ xhigh: "xhigh";
470
+ }>>;
471
+ temperature: z.ZodOptional<z.ZodNumber>;
472
+ top_p: z.ZodOptional<z.ZodNumber>;
473
+ maxTokens: z.ZodOptional<z.ZodNumber>;
474
+ thinking: z.ZodOptional<z.ZodObject<{
475
+ type: z.ZodEnum<{
476
+ enabled: "enabled";
477
+ disabled: "disabled";
478
+ }>;
479
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
480
+ }, z.core.$strip>>;
481
+ }, z.core.$strip>]>>]>>;
369
482
  variant: z.ZodOptional<z.ZodString>;
370
483
  category: z.ZodOptional<z.ZodString>;
371
484
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -427,6 +540,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
427
540
  budgetTokens: z.ZodOptional<z.ZodNumber>;
428
541
  }, z.core.$strip>>;
429
542
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
543
+ none: "none";
544
+ minimal: "minimal";
430
545
  low: "low";
431
546
  medium: "medium";
432
547
  high: "high";
@@ -449,7 +564,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
449
564
  }, z.core.$strip>>;
450
565
  "OpenCode-Builder": z.ZodOptional<z.ZodObject<{
451
566
  model: z.ZodOptional<z.ZodString>;
452
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
567
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
568
+ model: z.ZodString;
569
+ variant: z.ZodOptional<z.ZodString>;
570
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
571
+ none: "none";
572
+ minimal: "minimal";
573
+ low: "low";
574
+ medium: "medium";
575
+ high: "high";
576
+ xhigh: "xhigh";
577
+ }>>;
578
+ temperature: z.ZodOptional<z.ZodNumber>;
579
+ top_p: z.ZodOptional<z.ZodNumber>;
580
+ maxTokens: z.ZodOptional<z.ZodNumber>;
581
+ thinking: z.ZodOptional<z.ZodObject<{
582
+ type: z.ZodEnum<{
583
+ enabled: "enabled";
584
+ disabled: "disabled";
585
+ }>;
586
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
587
+ }, z.core.$strip>>;
588
+ }, z.core.$strip>]>>]>>;
453
589
  variant: z.ZodOptional<z.ZodString>;
454
590
  category: z.ZodOptional<z.ZodString>;
455
591
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -511,6 +647,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
511
647
  budgetTokens: z.ZodOptional<z.ZodNumber>;
512
648
  }, z.core.$strip>>;
513
649
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
650
+ none: "none";
651
+ minimal: "minimal";
514
652
  low: "low";
515
653
  medium: "medium";
516
654
  high: "high";
@@ -533,7 +671,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
533
671
  }, z.core.$strip>>;
534
672
  prometheus: z.ZodOptional<z.ZodObject<{
535
673
  model: z.ZodOptional<z.ZodString>;
536
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
674
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
675
+ model: z.ZodString;
676
+ variant: z.ZodOptional<z.ZodString>;
677
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
678
+ none: "none";
679
+ minimal: "minimal";
680
+ low: "low";
681
+ medium: "medium";
682
+ high: "high";
683
+ xhigh: "xhigh";
684
+ }>>;
685
+ temperature: z.ZodOptional<z.ZodNumber>;
686
+ top_p: z.ZodOptional<z.ZodNumber>;
687
+ maxTokens: z.ZodOptional<z.ZodNumber>;
688
+ thinking: z.ZodOptional<z.ZodObject<{
689
+ type: z.ZodEnum<{
690
+ enabled: "enabled";
691
+ disabled: "disabled";
692
+ }>;
693
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
694
+ }, z.core.$strip>>;
695
+ }, z.core.$strip>]>>]>>;
537
696
  variant: z.ZodOptional<z.ZodString>;
538
697
  category: z.ZodOptional<z.ZodString>;
539
698
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -595,6 +754,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
595
754
  budgetTokens: z.ZodOptional<z.ZodNumber>;
596
755
  }, z.core.$strip>>;
597
756
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
757
+ none: "none";
758
+ minimal: "minimal";
598
759
  low: "low";
599
760
  medium: "medium";
600
761
  high: "high";
@@ -617,7 +778,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
617
778
  }, z.core.$strip>>;
618
779
  metis: z.ZodOptional<z.ZodObject<{
619
780
  model: z.ZodOptional<z.ZodString>;
620
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
781
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
782
+ model: z.ZodString;
783
+ variant: z.ZodOptional<z.ZodString>;
784
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
785
+ none: "none";
786
+ minimal: "minimal";
787
+ low: "low";
788
+ medium: "medium";
789
+ high: "high";
790
+ xhigh: "xhigh";
791
+ }>>;
792
+ temperature: z.ZodOptional<z.ZodNumber>;
793
+ top_p: z.ZodOptional<z.ZodNumber>;
794
+ maxTokens: z.ZodOptional<z.ZodNumber>;
795
+ thinking: z.ZodOptional<z.ZodObject<{
796
+ type: z.ZodEnum<{
797
+ enabled: "enabled";
798
+ disabled: "disabled";
799
+ }>;
800
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
801
+ }, z.core.$strip>>;
802
+ }, z.core.$strip>]>>]>>;
621
803
  variant: z.ZodOptional<z.ZodString>;
622
804
  category: z.ZodOptional<z.ZodString>;
623
805
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -679,6 +861,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
679
861
  budgetTokens: z.ZodOptional<z.ZodNumber>;
680
862
  }, z.core.$strip>>;
681
863
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
864
+ none: "none";
865
+ minimal: "minimal";
682
866
  low: "low";
683
867
  medium: "medium";
684
868
  high: "high";
@@ -701,7 +885,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
701
885
  }, z.core.$strip>>;
702
886
  momus: z.ZodOptional<z.ZodObject<{
703
887
  model: z.ZodOptional<z.ZodString>;
704
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
888
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
889
+ model: z.ZodString;
890
+ variant: z.ZodOptional<z.ZodString>;
891
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
892
+ none: "none";
893
+ minimal: "minimal";
894
+ low: "low";
895
+ medium: "medium";
896
+ high: "high";
897
+ xhigh: "xhigh";
898
+ }>>;
899
+ temperature: z.ZodOptional<z.ZodNumber>;
900
+ top_p: z.ZodOptional<z.ZodNumber>;
901
+ maxTokens: z.ZodOptional<z.ZodNumber>;
902
+ thinking: z.ZodOptional<z.ZodObject<{
903
+ type: z.ZodEnum<{
904
+ enabled: "enabled";
905
+ disabled: "disabled";
906
+ }>;
907
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
908
+ }, z.core.$strip>>;
909
+ }, z.core.$strip>]>>]>>;
705
910
  variant: z.ZodOptional<z.ZodString>;
706
911
  category: z.ZodOptional<z.ZodString>;
707
912
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -763,6 +968,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
763
968
  budgetTokens: z.ZodOptional<z.ZodNumber>;
764
969
  }, z.core.$strip>>;
765
970
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
971
+ none: "none";
972
+ minimal: "minimal";
766
973
  low: "low";
767
974
  medium: "medium";
768
975
  high: "high";
@@ -785,7 +992,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
785
992
  }, z.core.$strip>>;
786
993
  oracle: z.ZodOptional<z.ZodObject<{
787
994
  model: z.ZodOptional<z.ZodString>;
788
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
995
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
996
+ model: z.ZodString;
997
+ variant: z.ZodOptional<z.ZodString>;
998
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
999
+ none: "none";
1000
+ minimal: "minimal";
1001
+ low: "low";
1002
+ medium: "medium";
1003
+ high: "high";
1004
+ xhigh: "xhigh";
1005
+ }>>;
1006
+ temperature: z.ZodOptional<z.ZodNumber>;
1007
+ top_p: z.ZodOptional<z.ZodNumber>;
1008
+ maxTokens: z.ZodOptional<z.ZodNumber>;
1009
+ thinking: z.ZodOptional<z.ZodObject<{
1010
+ type: z.ZodEnum<{
1011
+ enabled: "enabled";
1012
+ disabled: "disabled";
1013
+ }>;
1014
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
1015
+ }, z.core.$strip>>;
1016
+ }, z.core.$strip>]>>]>>;
789
1017
  variant: z.ZodOptional<z.ZodString>;
790
1018
  category: z.ZodOptional<z.ZodString>;
791
1019
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -847,6 +1075,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
847
1075
  budgetTokens: z.ZodOptional<z.ZodNumber>;
848
1076
  }, z.core.$strip>>;
849
1077
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
1078
+ none: "none";
1079
+ minimal: "minimal";
850
1080
  low: "low";
851
1081
  medium: "medium";
852
1082
  high: "high";
@@ -869,7 +1099,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
869
1099
  }, z.core.$strip>>;
870
1100
  librarian: z.ZodOptional<z.ZodObject<{
871
1101
  model: z.ZodOptional<z.ZodString>;
872
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
1102
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1103
+ model: z.ZodString;
1104
+ variant: z.ZodOptional<z.ZodString>;
1105
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
1106
+ none: "none";
1107
+ minimal: "minimal";
1108
+ low: "low";
1109
+ medium: "medium";
1110
+ high: "high";
1111
+ xhigh: "xhigh";
1112
+ }>>;
1113
+ temperature: z.ZodOptional<z.ZodNumber>;
1114
+ top_p: z.ZodOptional<z.ZodNumber>;
1115
+ maxTokens: z.ZodOptional<z.ZodNumber>;
1116
+ thinking: z.ZodOptional<z.ZodObject<{
1117
+ type: z.ZodEnum<{
1118
+ enabled: "enabled";
1119
+ disabled: "disabled";
1120
+ }>;
1121
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
1122
+ }, z.core.$strip>>;
1123
+ }, z.core.$strip>]>>]>>;
873
1124
  variant: z.ZodOptional<z.ZodString>;
874
1125
  category: z.ZodOptional<z.ZodString>;
875
1126
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -931,6 +1182,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
931
1182
  budgetTokens: z.ZodOptional<z.ZodNumber>;
932
1183
  }, z.core.$strip>>;
933
1184
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
1185
+ none: "none";
1186
+ minimal: "minimal";
934
1187
  low: "low";
935
1188
  medium: "medium";
936
1189
  high: "high";
@@ -953,7 +1206,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
953
1206
  }, z.core.$strip>>;
954
1207
  explore: z.ZodOptional<z.ZodObject<{
955
1208
  model: z.ZodOptional<z.ZodString>;
956
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
1209
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1210
+ model: z.ZodString;
1211
+ variant: z.ZodOptional<z.ZodString>;
1212
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
1213
+ none: "none";
1214
+ minimal: "minimal";
1215
+ low: "low";
1216
+ medium: "medium";
1217
+ high: "high";
1218
+ xhigh: "xhigh";
1219
+ }>>;
1220
+ temperature: z.ZodOptional<z.ZodNumber>;
1221
+ top_p: z.ZodOptional<z.ZodNumber>;
1222
+ maxTokens: z.ZodOptional<z.ZodNumber>;
1223
+ thinking: z.ZodOptional<z.ZodObject<{
1224
+ type: z.ZodEnum<{
1225
+ enabled: "enabled";
1226
+ disabled: "disabled";
1227
+ }>;
1228
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
1229
+ }, z.core.$strip>>;
1230
+ }, z.core.$strip>]>>]>>;
957
1231
  variant: z.ZodOptional<z.ZodString>;
958
1232
  category: z.ZodOptional<z.ZodString>;
959
1233
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -1015,6 +1289,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1015
1289
  budgetTokens: z.ZodOptional<z.ZodNumber>;
1016
1290
  }, z.core.$strip>>;
1017
1291
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
1292
+ none: "none";
1293
+ minimal: "minimal";
1018
1294
  low: "low";
1019
1295
  medium: "medium";
1020
1296
  high: "high";
@@ -1037,7 +1313,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1037
1313
  }, z.core.$strip>>;
1038
1314
  "multimodal-looker": z.ZodOptional<z.ZodObject<{
1039
1315
  model: z.ZodOptional<z.ZodString>;
1040
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
1316
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1317
+ model: z.ZodString;
1318
+ variant: z.ZodOptional<z.ZodString>;
1319
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
1320
+ none: "none";
1321
+ minimal: "minimal";
1322
+ low: "low";
1323
+ medium: "medium";
1324
+ high: "high";
1325
+ xhigh: "xhigh";
1326
+ }>>;
1327
+ temperature: z.ZodOptional<z.ZodNumber>;
1328
+ top_p: z.ZodOptional<z.ZodNumber>;
1329
+ maxTokens: z.ZodOptional<z.ZodNumber>;
1330
+ thinking: z.ZodOptional<z.ZodObject<{
1331
+ type: z.ZodEnum<{
1332
+ enabled: "enabled";
1333
+ disabled: "disabled";
1334
+ }>;
1335
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
1336
+ }, z.core.$strip>>;
1337
+ }, z.core.$strip>]>>]>>;
1041
1338
  variant: z.ZodOptional<z.ZodString>;
1042
1339
  category: z.ZodOptional<z.ZodString>;
1043
1340
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -1099,6 +1396,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1099
1396
  budgetTokens: z.ZodOptional<z.ZodNumber>;
1100
1397
  }, z.core.$strip>>;
1101
1398
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
1399
+ none: "none";
1400
+ minimal: "minimal";
1102
1401
  low: "low";
1103
1402
  medium: "medium";
1104
1403
  high: "high";
@@ -1121,7 +1420,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1121
1420
  }, z.core.$strip>>;
1122
1421
  atlas: z.ZodOptional<z.ZodObject<{
1123
1422
  model: z.ZodOptional<z.ZodString>;
1124
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
1423
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1424
+ model: z.ZodString;
1425
+ variant: z.ZodOptional<z.ZodString>;
1426
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
1427
+ none: "none";
1428
+ minimal: "minimal";
1429
+ low: "low";
1430
+ medium: "medium";
1431
+ high: "high";
1432
+ xhigh: "xhigh";
1433
+ }>>;
1434
+ temperature: z.ZodOptional<z.ZodNumber>;
1435
+ top_p: z.ZodOptional<z.ZodNumber>;
1436
+ maxTokens: z.ZodOptional<z.ZodNumber>;
1437
+ thinking: z.ZodOptional<z.ZodObject<{
1438
+ type: z.ZodEnum<{
1439
+ enabled: "enabled";
1440
+ disabled: "disabled";
1441
+ }>;
1442
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
1443
+ }, z.core.$strip>>;
1444
+ }, z.core.$strip>]>>]>>;
1125
1445
  variant: z.ZodOptional<z.ZodString>;
1126
1446
  category: z.ZodOptional<z.ZodString>;
1127
1447
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -1183,6 +1503,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1183
1503
  budgetTokens: z.ZodOptional<z.ZodNumber>;
1184
1504
  }, z.core.$strip>>;
1185
1505
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
1506
+ none: "none";
1507
+ minimal: "minimal";
1186
1508
  low: "low";
1187
1509
  medium: "medium";
1188
1510
  high: "high";
@@ -1207,7 +1529,28 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1207
1529
  categories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1208
1530
  description: z.ZodOptional<z.ZodString>;
1209
1531
  model: z.ZodOptional<z.ZodString>;
1210
- fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
1532
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1533
+ model: z.ZodString;
1534
+ variant: z.ZodOptional<z.ZodString>;
1535
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
1536
+ none: "none";
1537
+ minimal: "minimal";
1538
+ low: "low";
1539
+ medium: "medium";
1540
+ high: "high";
1541
+ xhigh: "xhigh";
1542
+ }>>;
1543
+ temperature: z.ZodOptional<z.ZodNumber>;
1544
+ top_p: z.ZodOptional<z.ZodNumber>;
1545
+ maxTokens: z.ZodOptional<z.ZodNumber>;
1546
+ thinking: z.ZodOptional<z.ZodObject<{
1547
+ type: z.ZodEnum<{
1548
+ enabled: "enabled";
1549
+ disabled: "disabled";
1550
+ }>;
1551
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
1552
+ }, z.core.$strip>>;
1553
+ }, z.core.$strip>]>>]>>;
1211
1554
  variant: z.ZodOptional<z.ZodString>;
1212
1555
  temperature: z.ZodOptional<z.ZodNumber>;
1213
1556
  top_p: z.ZodOptional<z.ZodNumber>;
@@ -1220,6 +1563,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1220
1563
  budgetTokens: z.ZodOptional<z.ZodNumber>;
1221
1564
  }, z.core.$strip>>;
1222
1565
  reasoningEffort: z.ZodOptional<z.ZodEnum<{
1566
+ none: "none";
1567
+ minimal: "minimal";
1223
1568
  low: "low";
1224
1569
  medium: "medium";
1225
1570
  high: "high";
@@ -1262,8 +1607,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1262
1607
  dynamic_context_pruning: z.ZodOptional<z.ZodObject<{
1263
1608
  enabled: z.ZodDefault<z.ZodBoolean>;
1264
1609
  notification: z.ZodDefault<z.ZodEnum<{
1265
- off: "off";
1266
1610
  minimal: "minimal";
1611
+ off: "off";
1267
1612
  detailed: "detailed";
1268
1613
  }>>;
1269
1614
  turn_protection: z.ZodOptional<z.ZodObject<{
@@ -1351,6 +1696,12 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1351
1696
  notification: z.ZodOptional<z.ZodObject<{
1352
1697
  force_enable: z.ZodOptional<z.ZodBoolean>;
1353
1698
  }, z.core.$strip>>;
1699
+ model_capabilities: z.ZodOptional<z.ZodObject<{
1700
+ enabled: z.ZodOptional<z.ZodBoolean>;
1701
+ auto_refresh_on_start: z.ZodOptional<z.ZodBoolean>;
1702
+ refresh_timeout_ms: z.ZodOptional<z.ZodNumber>;
1703
+ source_url: z.ZodOptional<z.ZodString>;
1704
+ }, z.core.$strip>>;
1354
1705
  openclaw: z.ZodOptional<z.ZodObject<{
1355
1706
  enabled: z.ZodDefault<z.ZodBoolean>;
1356
1707
  gateways: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -13,6 +13,7 @@ export * from "./schema/fallback-models";
13
13
  export * from "./schema/git-env-prefix";
14
14
  export * from "./schema/git-master";
15
15
  export * from "./schema/hooks";
16
+ export * from "./schema/model-capabilities";
16
17
  export * from "./schema/notification";
17
18
  export * from "./schema/oh-my-opencode-config";
18
19
  export * from "./schema/ralph-loop";
@@ -1,4 +1,5 @@
1
1
  import type { FallbackEntry } from "../../shared/model-requirements";
2
+ import type { DelegatedModelConfig } from "../../shared/model-resolution-types";
2
3
  import type { SessionPermissionRule } from "../../shared/question-denied-session-permission";
3
4
  export type BackgroundTaskStatus = "pending" | "running" | "completed" | "error" | "cancelled" | "interrupt";
4
5
  export interface ToolCallWindow {
@@ -36,11 +37,7 @@ export interface BackgroundTask {
36
37
  providerID: string;
37
38
  modelID: string;
38
39
  };
39
- model?: {
40
- providerID: string;
41
- modelID: string;
42
- variant?: string;
43
- };
40
+ model?: DelegatedModelConfig;
44
41
  /** Fallback chain for runtime retry on model errors */
45
42
  fallbackChain?: FallbackEntry[];
46
43
  /** Number of fallback retry attempts made */
@@ -74,11 +71,7 @@ export interface LaunchInput {
74
71
  };
75
72
  parentAgent?: string;
76
73
  parentTools?: Record<string, boolean>;
77
- model?: {
78
- providerID: string;
79
- modelID: string;
80
- variant?: string;
81
- };
74
+ model?: DelegatedModelConfig;
82
75
  /** Fallback chain for runtime retry on model errors */
83
76
  fallbackChain?: FallbackEntry[];
84
77
  isUnstableAgent?: boolean;
@@ -4,6 +4,8 @@ export declare function loadUserSkills(): Promise<Record<string, CommandDefiniti
4
4
  export declare function loadProjectSkills(directory?: string): Promise<Record<string, CommandDefinition>>;
5
5
  export declare function loadOpencodeGlobalSkills(): Promise<Record<string, CommandDefinition>>;
6
6
  export declare function loadOpencodeProjectSkills(directory?: string): Promise<Record<string, CommandDefinition>>;
7
+ export declare function loadProjectAgentsSkills(directory?: string): Promise<Record<string, CommandDefinition>>;
8
+ export declare function loadGlobalAgentsSkills(): Promise<Record<string, CommandDefinition>>;
7
9
  export interface DiscoverSkillsOptions {
8
10
  includeClaudeCodePaths?: boolean;
9
11
  directory?: string;
@@ -0,0 +1,2 @@
1
+ import type { ModelCapabilitiesConfig } from "../../../config/schema/model-capabilities";
2
+ export declare function refreshModelCapabilitiesOnStartup(config: ModelCapabilitiesConfig | undefined): Promise<void>;
@@ -1,3 +1,4 @@
1
+ import type { ModelCapabilitiesConfig } from "../../config/schema/model-capabilities";
1
2
  export interface NpmDistTags {
2
3
  latest: string;
3
4
  [key: string]: string;
@@ -22,4 +23,5 @@ export interface AutoUpdateCheckerOptions {
22
23
  showStartupToast?: boolean;
23
24
  isSisyphusEnabled?: boolean;
24
25
  autoUpdate?: boolean;
26
+ modelCapabilities?: ModelCapabilitiesConfig;
25
27
  }