@hiai-gg/hiai-opencode 0.1.3 → 0.1.4

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 (51) hide show
  1. package/.env.example +14 -18
  2. package/AGENTS.md +75 -23
  3. package/ARCHITECTURE.md +11 -14
  4. package/LICENSE.md +1 -0
  5. package/README.md +177 -94
  6. package/assets/cli/hiai-opencode.mjs +276 -0
  7. package/assets/mcp/playwright.mjs +7 -0
  8. package/config/hiai-opencode.schema.json +113 -1
  9. package/dist/config/defaults.d.ts +0 -3
  10. package/dist/config/index.d.ts +0 -1
  11. package/dist/config/platform-schema.d.ts +70 -0
  12. package/dist/config/schema/agent-overrides.d.ts +256 -0
  13. package/dist/config/schema/categories.d.ts +2 -2
  14. package/dist/config/schema/commands.d.ts +1 -0
  15. package/dist/config/schema/index.d.ts +2 -0
  16. package/dist/config/schema/oh-my-opencode-config.d.ts +267 -0
  17. package/dist/config/schema/skill-discovery.d.ts +11 -0
  18. package/dist/config/types.d.ts +12 -1
  19. package/dist/features/builtin-commands/templates/mcp-status.d.ts +1 -0
  20. package/dist/features/builtin-commands/types.d.ts +1 -1
  21. package/dist/features/opencode-skill-loader/loader.d.ts +2 -0
  22. package/dist/index.js +692 -541
  23. package/dist/plugin/skill-discovery-config.d.ts +4 -0
  24. package/dist/shared/startup-diagnostics.d.ts +6 -0
  25. package/hiai-opencode.json +191 -35
  26. package/package.json +4 -1
  27. package/src/agents/AGENTS.md +3 -4
  28. package/src/config/defaults.ts +60 -81
  29. package/src/config/index.ts +0 -1
  30. package/src/config/platform-schema.ts +17 -2
  31. package/src/config/schema/agent-overrides.ts +2 -0
  32. package/src/config/schema/commands.ts +1 -0
  33. package/src/config/schema/fast-apply.ts +4 -4
  34. package/src/config/schema/index.ts +2 -0
  35. package/src/config/schema/oh-my-opencode-config.ts +3 -0
  36. package/src/config/schema/skill-discovery.ts +25 -0
  37. package/src/config/types.ts +16 -0
  38. package/src/features/builtin-commands/commands.ts +7 -0
  39. package/src/features/builtin-commands/templates/mcp-status.ts +36 -0
  40. package/src/features/builtin-commands/types.ts +1 -1
  41. package/src/features/builtin-skills/skills/playwright.ts +24 -2
  42. package/src/features/opencode-skill-loader/loader.ts +11 -0
  43. package/src/index.ts +14 -13
  44. package/src/plugin/hooks/create-tool-guard-hooks.ts +1 -1
  45. package/src/plugin/skill-context.ts +31 -13
  46. package/src/plugin/skill-discovery-config.ts +32 -0
  47. package/src/plugin-handlers/agent-config-handler.ts +20 -13
  48. package/src/plugin-handlers/command-config-handler.ts +22 -12
  49. package/src/shared/migration/agent-names.ts +5 -5
  50. package/src/shared/startup-diagnostics.ts +77 -0
  51. package/src/config/models.ts +0 -32
@@ -16,6 +16,23 @@
16
16
  "required": ["model"]
17
17
  }
18
18
  },
19
+ "agentRequirements": {
20
+ "type": "object",
21
+ "additionalProperties": {
22
+ "type": "object",
23
+ "properties": {
24
+ "fallbackChain": {
25
+ "type": "array",
26
+ "items": { "$ref": "#/definitions/fallbackEntry" }
27
+ },
28
+ "variant": { "type": "string" },
29
+ "requiresModel": { "type": "string" },
30
+ "requiresAnyModel": { "type": "boolean" },
31
+ "requiresProvider": { "type": "array", "items": { "type": "string" } }
32
+ },
33
+ "required": ["fallbackChain"]
34
+ }
35
+ },
19
36
  "categories": {
20
37
  "type": "object",
21
38
  "additionalProperties": {
@@ -23,11 +40,47 @@
23
40
  "properties": {
24
41
  "model": { "type": "string" },
25
42
  "variant": { "type": "string" },
26
- "description": { "type": "string" }
43
+ "description": { "type": "string" },
44
+ "fallbackChain": {
45
+ "type": "array",
46
+ "items": { "$ref": "#/definitions/fallbackEntry" }
47
+ }
27
48
  },
28
49
  "required": ["model"]
29
50
  }
30
51
  },
52
+ "categoryRequirements": {
53
+ "type": "object",
54
+ "additionalProperties": {
55
+ "type": "object",
56
+ "properties": {
57
+ "fallbackChain": {
58
+ "type": "array",
59
+ "items": { "$ref": "#/definitions/fallbackEntry" }
60
+ },
61
+ "variant": { "type": "string" },
62
+ "requiresModel": { "type": "string" },
63
+ "requiresAnyModel": { "type": "boolean" },
64
+ "requiresProvider": { "type": "array", "items": { "type": "string" } }
65
+ },
66
+ "required": ["fallbackChain"]
67
+ }
68
+ },
69
+ "modelFamilies": {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "object",
73
+ "properties": {
74
+ "family": { "type": "string" },
75
+ "includes": { "type": "array", "items": { "type": "string" } },
76
+ "pattern": { "type": "string" },
77
+ "variants": { "type": "array", "items": { "type": "string" } },
78
+ "reasoningEfforts": { "type": "array", "items": { "type": "string" } },
79
+ "supportsThinking": { "type": "boolean" }
80
+ },
81
+ "required": ["family"]
82
+ }
83
+ },
31
84
  "mcp": {
32
85
  "type": "object",
33
86
  "additionalProperties": {
@@ -36,6 +89,7 @@
36
89
  "enabled": { "type": "boolean", "default": true },
37
90
  "type": { "enum": ["remote", "local"] },
38
91
  "url": { "type": "string" },
92
+ "headers": { "type": "object", "additionalProperties": { "type": "string" } },
39
93
  "command": { "type": "array", "items": { "type": "string" } },
40
94
  "timeout": { "type": "number" },
41
95
  "environment": { "type": "object", "additionalProperties": { "type": "string" } }
@@ -69,6 +123,19 @@
69
123
  "disabled": { "type": "array", "items": { "type": "string" } }
70
124
  }
71
125
  },
126
+ "skill_discovery": {
127
+ "type": "object",
128
+ "description": "Controls which external skill directories are scanned. Defaults keep installs deterministic: hiai-opencode skills plus project .opencode/skills only.",
129
+ "properties": {
130
+ "config_sources": { "type": "boolean", "default": true },
131
+ "project_opencode": { "type": "boolean", "default": true },
132
+ "global_opencode": { "type": "boolean", "default": false },
133
+ "project_claude": { "type": "boolean", "default": false },
134
+ "global_claude": { "type": "boolean", "default": false },
135
+ "project_agents": { "type": "boolean", "default": false },
136
+ "global_agents": { "type": "boolean", "default": false }
137
+ }
138
+ },
72
139
  "permissions": {
73
140
  "type": "object",
74
141
  "properties": {
@@ -77,6 +144,51 @@
77
144
  "bash": { "type": "object", "additionalProperties": { "type": "string" } },
78
145
  "deny_paths": { "type": "array", "items": { "type": "string" } }
79
146
  }
147
+ },
148
+ "auth": {
149
+ "type": "object",
150
+ "additionalProperties": { "type": "string" }
151
+ },
152
+ "ollama": {
153
+ "type": "object",
154
+ "properties": {
155
+ "enabled": { "type": "boolean", "default": false },
156
+ "model": { "type": "string" },
157
+ "baseUrl": { "type": "string" },
158
+ "purpose": { "enum": ["verification", "helper", "fallback"] }
159
+ }
160
+ },
161
+ "fast_apply": {
162
+ "type": "object",
163
+ "properties": {
164
+ "enabled": { "type": "boolean", "default": false },
165
+ "ollama_url": { "type": "string" },
166
+ "model": { "type": "string" },
167
+ "timeout": { "type": "number" }
168
+ }
169
+ }
170
+ },
171
+ "definitions": {
172
+ "fallbackEntry": {
173
+ "type": "object",
174
+ "properties": {
175
+ "providers": { "type": "array", "items": { "type": "string" } },
176
+ "model": { "type": "string" },
177
+ "variant": { "type": "string" },
178
+ "reasoningEffort": { "type": "string" },
179
+ "temperature": { "type": "number" },
180
+ "top_p": { "type": "number" },
181
+ "maxTokens": { "type": "number" },
182
+ "thinking": {
183
+ "type": "object",
184
+ "properties": {
185
+ "type": { "enum": ["enabled", "disabled"] },
186
+ "budgetTokens": { "type": "number" }
187
+ },
188
+ "required": ["type"]
189
+ }
190
+ },
191
+ "required": ["providers", "model"]
80
192
  }
81
193
  }
82
194
  }
@@ -1,5 +1,2 @@
1
- /**
2
- * Default config values for hiai-opencode
3
- */
4
1
  import type { HiaiOpencodeConfig } from "./types.js";
5
2
  export declare const defaultConfig: HiaiOpencodeConfig;
@@ -9,7 +9,6 @@
9
9
  export { loadConfig, resolveEnvVars, resolveMcpEnv } from "./loader.js";
10
10
  export { HiaiOpencodeConfigSchema } from "./platform-schema.js";
11
11
  export { defaultConfig } from "./defaults.js";
12
- export { MODEL_PRESETS, MODEL_ROLE_GUIDE, PROVIDER_MODEL_RULES } from "./models.js";
13
12
  export type { HiaiOpencodeConfig, AgentConfig, CategoryConfig, McpServerConfig, LspServerConfig, Subtask2Config, SkillsConfig as PlatformSkillsConfig, PermissionsConfig as PlatformPermissionsConfig, } from "./types.js";
14
13
  export { HiaiOpenCodeConfigSchema } from "./schema/oh-my-opencode-config.js";
15
14
  export type { HiaiOpenCodeConfig } from "./schema/oh-my-opencode-config.js";
@@ -90,6 +90,15 @@ export declare const SkillsConfigSchema: z.ZodObject<{
90
90
  enabled: z.ZodOptional<z.ZodBoolean>;
91
91
  disabled: z.ZodOptional<z.ZodArray<z.ZodString>>;
92
92
  }, z.core.$strip>;
93
+ export declare const SkillDiscoveryConfigSchema: z.ZodObject<{
94
+ config_sources: z.ZodOptional<z.ZodBoolean>;
95
+ project_opencode: z.ZodOptional<z.ZodBoolean>;
96
+ global_opencode: z.ZodOptional<z.ZodBoolean>;
97
+ project_claude: z.ZodOptional<z.ZodBoolean>;
98
+ global_claude: z.ZodOptional<z.ZodBoolean>;
99
+ project_agents: z.ZodOptional<z.ZodBoolean>;
100
+ global_agents: z.ZodOptional<z.ZodBoolean>;
101
+ }, z.core.$strip>;
93
102
  export declare const PermissionsConfigSchema: z.ZodObject<{
94
103
  read: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
95
104
  edit: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -253,6 +262,14 @@ export declare const HiaiOpencodeConfigSchema: z.ZodObject<{
253
262
  model: z.ZodString;
254
263
  description: z.ZodOptional<z.ZodString>;
255
264
  }, z.core.$strip>>;
265
+ manager: z.ZodOptional<z.ZodObject<{
266
+ model: z.ZodString;
267
+ description: z.ZodOptional<z.ZodString>;
268
+ }, z.core.$strip>>;
269
+ vision: z.ZodOptional<z.ZodObject<{
270
+ model: z.ZodString;
271
+ description: z.ZodOptional<z.ZodString>;
272
+ }, z.core.$strip>>;
256
273
  logician: z.ZodOptional<z.ZodObject<{
257
274
  model: z.ZodString;
258
275
  description: z.ZodOptional<z.ZodString>;
@@ -672,6 +689,50 @@ export declare const HiaiOpencodeConfigSchema: z.ZodObject<{
672
689
  requiresAnyModel: z.ZodOptional<z.ZodBoolean>;
673
690
  requiresProvider: z.ZodOptional<z.ZodArray<z.ZodString>>;
674
691
  }, z.core.$strip>>;
692
+ manager: z.ZodOptional<z.ZodObject<{
693
+ fallbackChain: z.ZodArray<z.ZodObject<{
694
+ providers: z.ZodArray<z.ZodString>;
695
+ model: z.ZodString;
696
+ variant: z.ZodOptional<z.ZodString>;
697
+ reasoningEffort: z.ZodOptional<z.ZodString>;
698
+ temperature: z.ZodOptional<z.ZodNumber>;
699
+ top_p: z.ZodOptional<z.ZodNumber>;
700
+ maxTokens: z.ZodOptional<z.ZodNumber>;
701
+ thinking: z.ZodOptional<z.ZodObject<{
702
+ type: z.ZodEnum<{
703
+ enabled: "enabled";
704
+ disabled: "disabled";
705
+ }>;
706
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
707
+ }, z.core.$strip>>;
708
+ }, z.core.$strip>>;
709
+ variant: z.ZodOptional<z.ZodString>;
710
+ requiresModel: z.ZodOptional<z.ZodString>;
711
+ requiresAnyModel: z.ZodOptional<z.ZodBoolean>;
712
+ requiresProvider: z.ZodOptional<z.ZodArray<z.ZodString>>;
713
+ }, z.core.$strip>>;
714
+ vision: z.ZodOptional<z.ZodObject<{
715
+ fallbackChain: z.ZodArray<z.ZodObject<{
716
+ providers: z.ZodArray<z.ZodString>;
717
+ model: z.ZodString;
718
+ variant: z.ZodOptional<z.ZodString>;
719
+ reasoningEffort: z.ZodOptional<z.ZodString>;
720
+ temperature: z.ZodOptional<z.ZodNumber>;
721
+ top_p: z.ZodOptional<z.ZodNumber>;
722
+ maxTokens: z.ZodOptional<z.ZodNumber>;
723
+ thinking: z.ZodOptional<z.ZodObject<{
724
+ type: z.ZodEnum<{
725
+ enabled: "enabled";
726
+ disabled: "disabled";
727
+ }>;
728
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
729
+ }, z.core.$strip>>;
730
+ }, z.core.$strip>>;
731
+ variant: z.ZodOptional<z.ZodString>;
732
+ requiresModel: z.ZodOptional<z.ZodString>;
733
+ requiresAnyModel: z.ZodOptional<z.ZodBoolean>;
734
+ requiresProvider: z.ZodOptional<z.ZodArray<z.ZodString>>;
735
+ }, z.core.$strip>>;
675
736
  logician: z.ZodOptional<z.ZodObject<{
676
737
  fallbackChain: z.ZodArray<z.ZodObject<{
677
738
  providers: z.ZodArray<z.ZodString>;
@@ -990,6 +1051,15 @@ export declare const HiaiOpencodeConfigSchema: z.ZodObject<{
990
1051
  enabled: z.ZodOptional<z.ZodBoolean>;
991
1052
  disabled: z.ZodOptional<z.ZodArray<z.ZodString>>;
992
1053
  }, z.core.$strip>>;
1054
+ skill_discovery: z.ZodOptional<z.ZodObject<{
1055
+ config_sources: z.ZodOptional<z.ZodBoolean>;
1056
+ project_opencode: z.ZodOptional<z.ZodBoolean>;
1057
+ global_opencode: z.ZodOptional<z.ZodBoolean>;
1058
+ project_claude: z.ZodOptional<z.ZodBoolean>;
1059
+ global_claude: z.ZodOptional<z.ZodBoolean>;
1060
+ project_agents: z.ZodOptional<z.ZodBoolean>;
1061
+ global_agents: z.ZodOptional<z.ZodBoolean>;
1062
+ }, z.core.$strip>>;
993
1063
  permissions: z.ZodOptional<z.ZodObject<{
994
1064
  read: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
995
1065
  edit: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -2561,6 +2561,262 @@ export declare const AgentOverridesSchema: z.ZodObject<{
2561
2561
  variant: z.ZodOptional<z.ZodString>;
2562
2562
  }, z.core.$strip>>;
2563
2563
  }, z.core.$strip>>;
2564
+ manager: z.ZodOptional<z.ZodObject<{
2565
+ model: z.ZodOptional<z.ZodString>;
2566
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodObject<{
2567
+ model: z.ZodString;
2568
+ variant: z.ZodOptional<z.ZodString>;
2569
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
2570
+ none: "none";
2571
+ minimal: "minimal";
2572
+ low: "low";
2573
+ medium: "medium";
2574
+ high: "high";
2575
+ xhigh: "xhigh";
2576
+ }>>;
2577
+ temperature: z.ZodOptional<z.ZodNumber>;
2578
+ top_p: z.ZodOptional<z.ZodNumber>;
2579
+ maxTokens: z.ZodOptional<z.ZodNumber>;
2580
+ thinking: z.ZodOptional<z.ZodObject<{
2581
+ type: z.ZodEnum<{
2582
+ enabled: "enabled";
2583
+ disabled: "disabled";
2584
+ }>;
2585
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
2586
+ }, z.core.$strip>>;
2587
+ }, z.core.$strip>>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2588
+ model: z.ZodString;
2589
+ variant: z.ZodOptional<z.ZodString>;
2590
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
2591
+ none: "none";
2592
+ minimal: "minimal";
2593
+ low: "low";
2594
+ medium: "medium";
2595
+ high: "high";
2596
+ xhigh: "xhigh";
2597
+ }>>;
2598
+ temperature: z.ZodOptional<z.ZodNumber>;
2599
+ top_p: z.ZodOptional<z.ZodNumber>;
2600
+ maxTokens: z.ZodOptional<z.ZodNumber>;
2601
+ thinking: z.ZodOptional<z.ZodObject<{
2602
+ type: z.ZodEnum<{
2603
+ enabled: "enabled";
2604
+ disabled: "disabled";
2605
+ }>;
2606
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
2607
+ }, z.core.$strip>>;
2608
+ }, z.core.$strip>]>>]>>;
2609
+ variant: z.ZodOptional<z.ZodString>;
2610
+ category: z.ZodOptional<z.ZodString>;
2611
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
2612
+ temperature: z.ZodOptional<z.ZodNumber>;
2613
+ top_p: z.ZodOptional<z.ZodNumber>;
2614
+ prompt: z.ZodOptional<z.ZodString>;
2615
+ prompt_append: z.ZodOptional<z.ZodString>;
2616
+ tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
2617
+ disable: z.ZodOptional<z.ZodBoolean>;
2618
+ description: z.ZodOptional<z.ZodString>;
2619
+ mode: z.ZodOptional<z.ZodEnum<{
2620
+ primary: "primary";
2621
+ subagent: "subagent";
2622
+ all: "all";
2623
+ }>>;
2624
+ color: z.ZodOptional<z.ZodString>;
2625
+ permission: z.ZodOptional<z.ZodObject<{
2626
+ edit: z.ZodOptional<z.ZodEnum<{
2627
+ allow: "allow";
2628
+ deny: "deny";
2629
+ ask: "ask";
2630
+ }>>;
2631
+ bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
2632
+ allow: "allow";
2633
+ deny: "deny";
2634
+ ask: "ask";
2635
+ }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
2636
+ allow: "allow";
2637
+ deny: "deny";
2638
+ ask: "ask";
2639
+ }>>]>>;
2640
+ webfetch: z.ZodOptional<z.ZodEnum<{
2641
+ allow: "allow";
2642
+ deny: "deny";
2643
+ ask: "ask";
2644
+ }>>;
2645
+ task: z.ZodOptional<z.ZodEnum<{
2646
+ allow: "allow";
2647
+ deny: "deny";
2648
+ ask: "ask";
2649
+ }>>;
2650
+ doom_loop: z.ZodOptional<z.ZodEnum<{
2651
+ allow: "allow";
2652
+ deny: "deny";
2653
+ ask: "ask";
2654
+ }>>;
2655
+ external_directory: z.ZodOptional<z.ZodEnum<{
2656
+ allow: "allow";
2657
+ deny: "deny";
2658
+ ask: "ask";
2659
+ }>>;
2660
+ }, z.core.$strip>>;
2661
+ maxTokens: z.ZodOptional<z.ZodNumber>;
2662
+ thinking: z.ZodOptional<z.ZodObject<{
2663
+ type: z.ZodEnum<{
2664
+ enabled: "enabled";
2665
+ disabled: "disabled";
2666
+ }>;
2667
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
2668
+ }, z.core.$strip>>;
2669
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
2670
+ none: "none";
2671
+ minimal: "minimal";
2672
+ low: "low";
2673
+ medium: "medium";
2674
+ high: "high";
2675
+ xhigh: "xhigh";
2676
+ }>>;
2677
+ textVerbosity: z.ZodOptional<z.ZodEnum<{
2678
+ low: "low";
2679
+ medium: "medium";
2680
+ high: "high";
2681
+ }>>;
2682
+ providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2683
+ ultrawork: z.ZodOptional<z.ZodObject<{
2684
+ model: z.ZodOptional<z.ZodString>;
2685
+ variant: z.ZodOptional<z.ZodString>;
2686
+ }, z.core.$strip>>;
2687
+ compaction: z.ZodOptional<z.ZodObject<{
2688
+ model: z.ZodOptional<z.ZodString>;
2689
+ variant: z.ZodOptional<z.ZodString>;
2690
+ }, z.core.$strip>>;
2691
+ }, z.core.$strip>>;
2692
+ vision: z.ZodOptional<z.ZodObject<{
2693
+ model: z.ZodOptional<z.ZodString>;
2694
+ fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodObject<{
2695
+ model: z.ZodString;
2696
+ variant: z.ZodOptional<z.ZodString>;
2697
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
2698
+ none: "none";
2699
+ minimal: "minimal";
2700
+ low: "low";
2701
+ medium: "medium";
2702
+ high: "high";
2703
+ xhigh: "xhigh";
2704
+ }>>;
2705
+ temperature: z.ZodOptional<z.ZodNumber>;
2706
+ top_p: z.ZodOptional<z.ZodNumber>;
2707
+ maxTokens: z.ZodOptional<z.ZodNumber>;
2708
+ thinking: z.ZodOptional<z.ZodObject<{
2709
+ type: z.ZodEnum<{
2710
+ enabled: "enabled";
2711
+ disabled: "disabled";
2712
+ }>;
2713
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
2714
+ }, z.core.$strip>>;
2715
+ }, z.core.$strip>>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2716
+ model: z.ZodString;
2717
+ variant: z.ZodOptional<z.ZodString>;
2718
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
2719
+ none: "none";
2720
+ minimal: "minimal";
2721
+ low: "low";
2722
+ medium: "medium";
2723
+ high: "high";
2724
+ xhigh: "xhigh";
2725
+ }>>;
2726
+ temperature: z.ZodOptional<z.ZodNumber>;
2727
+ top_p: z.ZodOptional<z.ZodNumber>;
2728
+ maxTokens: z.ZodOptional<z.ZodNumber>;
2729
+ thinking: z.ZodOptional<z.ZodObject<{
2730
+ type: z.ZodEnum<{
2731
+ enabled: "enabled";
2732
+ disabled: "disabled";
2733
+ }>;
2734
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
2735
+ }, z.core.$strip>>;
2736
+ }, z.core.$strip>]>>]>>;
2737
+ variant: z.ZodOptional<z.ZodString>;
2738
+ category: z.ZodOptional<z.ZodString>;
2739
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
2740
+ temperature: z.ZodOptional<z.ZodNumber>;
2741
+ top_p: z.ZodOptional<z.ZodNumber>;
2742
+ prompt: z.ZodOptional<z.ZodString>;
2743
+ prompt_append: z.ZodOptional<z.ZodString>;
2744
+ tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
2745
+ disable: z.ZodOptional<z.ZodBoolean>;
2746
+ description: z.ZodOptional<z.ZodString>;
2747
+ mode: z.ZodOptional<z.ZodEnum<{
2748
+ primary: "primary";
2749
+ subagent: "subagent";
2750
+ all: "all";
2751
+ }>>;
2752
+ color: z.ZodOptional<z.ZodString>;
2753
+ permission: z.ZodOptional<z.ZodObject<{
2754
+ edit: z.ZodOptional<z.ZodEnum<{
2755
+ allow: "allow";
2756
+ deny: "deny";
2757
+ ask: "ask";
2758
+ }>>;
2759
+ bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
2760
+ allow: "allow";
2761
+ deny: "deny";
2762
+ ask: "ask";
2763
+ }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
2764
+ allow: "allow";
2765
+ deny: "deny";
2766
+ ask: "ask";
2767
+ }>>]>>;
2768
+ webfetch: z.ZodOptional<z.ZodEnum<{
2769
+ allow: "allow";
2770
+ deny: "deny";
2771
+ ask: "ask";
2772
+ }>>;
2773
+ task: z.ZodOptional<z.ZodEnum<{
2774
+ allow: "allow";
2775
+ deny: "deny";
2776
+ ask: "ask";
2777
+ }>>;
2778
+ doom_loop: z.ZodOptional<z.ZodEnum<{
2779
+ allow: "allow";
2780
+ deny: "deny";
2781
+ ask: "ask";
2782
+ }>>;
2783
+ external_directory: z.ZodOptional<z.ZodEnum<{
2784
+ allow: "allow";
2785
+ deny: "deny";
2786
+ ask: "ask";
2787
+ }>>;
2788
+ }, z.core.$strip>>;
2789
+ maxTokens: z.ZodOptional<z.ZodNumber>;
2790
+ thinking: z.ZodOptional<z.ZodObject<{
2791
+ type: z.ZodEnum<{
2792
+ enabled: "enabled";
2793
+ disabled: "disabled";
2794
+ }>;
2795
+ budgetTokens: z.ZodOptional<z.ZodNumber>;
2796
+ }, z.core.$strip>>;
2797
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
2798
+ none: "none";
2799
+ minimal: "minimal";
2800
+ low: "low";
2801
+ medium: "medium";
2802
+ high: "high";
2803
+ xhigh: "xhigh";
2804
+ }>>;
2805
+ textVerbosity: z.ZodOptional<z.ZodEnum<{
2806
+ low: "low";
2807
+ medium: "medium";
2808
+ high: "high";
2809
+ }>>;
2810
+ providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2811
+ ultrawork: z.ZodOptional<z.ZodObject<{
2812
+ model: z.ZodOptional<z.ZodString>;
2813
+ variant: z.ZodOptional<z.ZodString>;
2814
+ }, z.core.$strip>>;
2815
+ compaction: z.ZodOptional<z.ZodObject<{
2816
+ model: z.ZodOptional<z.ZodString>;
2817
+ variant: z.ZodOptional<z.ZodString>;
2818
+ }, z.core.$strip>>;
2819
+ }, z.core.$strip>>;
2564
2820
  logician: z.ZodOptional<z.ZodObject<{
2565
2821
  model: z.ZodOptional<z.ZodString>;
2566
2822
  fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodObject<{
@@ -79,11 +79,11 @@ export declare const BuiltinCategoryNameSchema: z.ZodEnum<{
79
79
  deep: "deep";
80
80
  "unspecified-high": "unspecified-high";
81
81
  "visual-engineering": "visual-engineering";
82
- artistry: "artistry";
83
82
  ultrabrain: "ultrabrain";
83
+ artistry: "artistry";
84
84
  quick: "quick";
85
- writing: "writing";
86
85
  "unspecified-low": "unspecified-low";
86
+ writing: "writing";
87
87
  }>;
88
88
  export declare const CategoriesConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
89
89
  description: z.ZodOptional<z.ZodString>;
@@ -8,5 +8,6 @@ export declare const BuiltinCommandNameSchema: z.ZodEnum<{
8
8
  "start-work": "start-work";
9
9
  "stop-continuation": "stop-continuation";
10
10
  "remove-ai-slops": "remove-ai-slops";
11
+ "mcp-status": "mcp-status";
11
12
  }>;
12
13
  export type BuiltinCommandName = z.infer<typeof BuiltinCommandNameSchema>;
@@ -44,6 +44,8 @@ export { BobAgentConfigSchema } from "./bob-agent";
44
44
  export type { BobAgentConfig } from "./bob-agent";
45
45
  export { SkillsConfigSchema } from "./skills";
46
46
  export type { SkillsConfig, SkillDefinition } from "./skills";
47
+ export { SkillDiscoveryConfigSchema } from "./skill-discovery";
48
+ export type { SkillDiscoveryConfig } from "./skill-discovery";
47
49
  export { StartWorkConfigSchema } from "./start-work";
48
50
  export type { StartWorkConfig } from "./start-work";
49
51
  export { TmuxConfigSchema, TmuxLayoutSchema, TmuxIsolationSchema } from "./tmux";