oh-my-opencode-slim 0.8.2 → 0.8.3

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.
@@ -1,86 +1,61 @@
1
1
  import type { InstallConfig } from './types';
2
2
  export declare const MODEL_MAPPINGS: {
3
- readonly kimi: {
4
- readonly orchestrator: {
5
- readonly model: "kimi-for-coding/k2p5";
6
- };
7
- readonly oracle: {
8
- readonly model: "kimi-for-coding/k2p5";
9
- readonly variant: "high";
10
- };
11
- readonly librarian: {
12
- readonly model: "kimi-for-coding/k2p5";
13
- readonly variant: "low";
14
- };
15
- readonly explorer: {
16
- readonly model: "kimi-for-coding/k2p5";
17
- readonly variant: "low";
18
- };
19
- readonly designer: {
20
- readonly model: "kimi-for-coding/k2p5";
21
- readonly variant: "medium";
22
- };
23
- readonly fixer: {
24
- readonly model: "kimi-for-coding/k2p5";
25
- readonly variant: "low";
26
- };
27
- };
28
3
  readonly openai: {
29
4
  readonly orchestrator: {
30
- readonly model: "openai/gpt-5.3-codex";
5
+ readonly model: "openai/gpt-5.4";
31
6
  };
32
7
  readonly oracle: {
33
- readonly model: "openai/gpt-5.3-codex";
8
+ readonly model: "openai/gpt-5.4";
34
9
  readonly variant: "high";
35
10
  };
36
11
  readonly librarian: {
37
- readonly model: "openai/gpt-5.1-codex-mini";
12
+ readonly model: "openai/gpt-5-codex";
38
13
  readonly variant: "low";
39
14
  };
40
15
  readonly explorer: {
41
- readonly model: "openai/gpt-5.1-codex-mini";
16
+ readonly model: "openai/gpt-5-codex";
42
17
  readonly variant: "low";
43
18
  };
44
19
  readonly designer: {
45
- readonly model: "openai/gpt-5.1-codex-mini";
20
+ readonly model: "openai/gpt-5-codex";
46
21
  readonly variant: "medium";
47
22
  };
48
23
  readonly fixer: {
49
- readonly model: "openai/gpt-5.1-codex-mini";
24
+ readonly model: "openai/gpt-5-codex";
50
25
  readonly variant: "low";
51
26
  };
52
27
  };
53
- readonly anthropic: {
28
+ readonly kimi: {
54
29
  readonly orchestrator: {
55
- readonly model: "anthropic/claude-opus-4-6";
30
+ readonly model: "kimi-for-coding/k2p5";
56
31
  };
57
32
  readonly oracle: {
58
- readonly model: "anthropic/claude-opus-4-6";
33
+ readonly model: "kimi-for-coding/k2p5";
59
34
  readonly variant: "high";
60
35
  };
61
36
  readonly librarian: {
62
- readonly model: "anthropic/claude-sonnet-4-5";
37
+ readonly model: "kimi-for-coding/k2p5";
63
38
  readonly variant: "low";
64
39
  };
65
40
  readonly explorer: {
66
- readonly model: "anthropic/claude-haiku-4-5";
41
+ readonly model: "kimi-for-coding/k2p5";
67
42
  readonly variant: "low";
68
43
  };
69
44
  readonly designer: {
70
- readonly model: "anthropic/claude-sonnet-4-5";
45
+ readonly model: "kimi-for-coding/k2p5";
71
46
  readonly variant: "medium";
72
47
  };
73
48
  readonly fixer: {
74
- readonly model: "anthropic/claude-sonnet-4-5";
49
+ readonly model: "kimi-for-coding/k2p5";
75
50
  readonly variant: "low";
76
51
  };
77
52
  };
78
53
  readonly copilot: {
79
54
  readonly orchestrator: {
80
- readonly model: "github-copilot/grok-code-fast-1";
55
+ readonly model: "github-copilot/claude-opus-4.6";
81
56
  };
82
57
  readonly oracle: {
83
- readonly model: "github-copilot/grok-code-fast-1";
58
+ readonly model: "github-copilot/claude-opus-4.6";
84
59
  readonly variant: "high";
85
60
  };
86
61
  readonly librarian: {
@@ -92,113 +67,38 @@ export declare const MODEL_MAPPINGS: {
92
67
  readonly variant: "low";
93
68
  };
94
69
  readonly designer: {
95
- readonly model: "github-copilot/grok-code-fast-1";
70
+ readonly model: "github-copilot/gemini-3.1-pro-preview";
96
71
  readonly variant: "medium";
97
72
  };
98
73
  readonly fixer: {
99
- readonly model: "github-copilot/grok-code-fast-1";
74
+ readonly model: "github-copilot/claude-sonnet-4.6";
100
75
  readonly variant: "low";
101
76
  };
102
77
  };
103
78
  readonly 'zai-plan': {
104
79
  readonly orchestrator: {
105
- readonly model: "zai-coding-plan/glm-4.7";
106
- };
107
- readonly oracle: {
108
- readonly model: "zai-coding-plan/glm-4.7";
109
- readonly variant: "high";
110
- };
111
- readonly librarian: {
112
- readonly model: "zai-coding-plan/glm-4.7";
113
- readonly variant: "low";
114
- };
115
- readonly explorer: {
116
- readonly model: "zai-coding-plan/glm-4.7";
117
- readonly variant: "low";
118
- };
119
- readonly designer: {
120
- readonly model: "zai-coding-plan/glm-4.7";
121
- readonly variant: "medium";
122
- };
123
- readonly fixer: {
124
- readonly model: "zai-coding-plan/glm-4.7";
125
- readonly variant: "low";
126
- };
127
- };
128
- readonly antigravity: {
129
- readonly orchestrator: {
130
- readonly model: "google/antigravity-gemini-3-flash";
131
- };
132
- readonly oracle: {
133
- readonly model: "google/antigravity-gemini-3.1-pro";
134
- };
135
- readonly librarian: {
136
- readonly model: "google/antigravity-gemini-3-flash";
137
- readonly variant: "low";
138
- };
139
- readonly explorer: {
140
- readonly model: "google/antigravity-gemini-3-flash";
141
- readonly variant: "low";
142
- };
143
- readonly designer: {
144
- readonly model: "google/antigravity-gemini-3-flash";
145
- readonly variant: "medium";
146
- };
147
- readonly fixer: {
148
- readonly model: "google/antigravity-gemini-3-flash";
149
- readonly variant: "low";
150
- };
151
- };
152
- readonly chutes: {
153
- readonly orchestrator: {
154
- readonly model: "chutes/kimi-k2.5";
155
- };
156
- readonly oracle: {
157
- readonly model: "chutes/kimi-k2.5";
158
- readonly variant: "high";
159
- };
160
- readonly librarian: {
161
- readonly model: "chutes/minimax-m2.1";
162
- readonly variant: "low";
163
- };
164
- readonly explorer: {
165
- readonly model: "chutes/minimax-m2.1";
166
- readonly variant: "low";
167
- };
168
- readonly designer: {
169
- readonly model: "chutes/kimi-k2.5";
170
- readonly variant: "medium";
171
- };
172
- readonly fixer: {
173
- readonly model: "chutes/minimax-m2.1";
174
- readonly variant: "low";
175
- };
176
- };
177
- readonly 'zen-free': {
178
- readonly orchestrator: {
179
- readonly model: "opencode/big-pickle";
80
+ readonly model: "zai-coding-plan/glm-5";
180
81
  };
181
82
  readonly oracle: {
182
- readonly model: "opencode/big-pickle";
83
+ readonly model: "zai-coding-plan/glm-5";
183
84
  readonly variant: "high";
184
85
  };
185
86
  readonly librarian: {
186
- readonly model: "opencode/big-pickle";
87
+ readonly model: "zai-coding-plan/glm-5";
187
88
  readonly variant: "low";
188
89
  };
189
90
  readonly explorer: {
190
- readonly model: "opencode/big-pickle";
91
+ readonly model: "zai-coding-plan/glm-5";
191
92
  readonly variant: "low";
192
93
  };
193
94
  readonly designer: {
194
- readonly model: "opencode/big-pickle";
95
+ readonly model: "zai-coding-plan/glm-5";
195
96
  readonly variant: "medium";
196
97
  };
197
98
  readonly fixer: {
198
- readonly model: "opencode/big-pickle";
99
+ readonly model: "zai-coding-plan/glm-5";
199
100
  readonly variant: "low";
200
101
  };
201
102
  };
202
103
  };
203
- export declare function generateAntigravityMixedPreset(config: InstallConfig, existingPreset?: Record<string, unknown>): Record<string, unknown>;
204
104
  export declare function generateLiteConfig(installConfig: InstallConfig): Record<string, unknown>;
@@ -1,88 +1,10 @@
1
1
  export type BooleanArg = 'yes' | 'no';
2
2
  export interface InstallArgs {
3
3
  tui: boolean;
4
- kimi?: BooleanArg;
5
- openai?: BooleanArg;
6
- anthropic?: BooleanArg;
7
- copilot?: BooleanArg;
8
- zaiPlan?: BooleanArg;
9
- antigravity?: BooleanArg;
10
- chutes?: BooleanArg;
11
4
  tmux?: BooleanArg;
12
5
  skills?: BooleanArg;
13
- opencodeFree?: BooleanArg;
14
- balancedSpend?: BooleanArg;
15
- opencodeFreeModel?: string;
16
- aaKey?: string;
17
- openrouterKey?: string;
18
6
  dryRun?: boolean;
19
- modelsOnly?: boolean;
20
7
  }
21
- export interface OpenCodeFreeModel {
22
- providerID: string;
23
- model: string;
24
- name: string;
25
- status: 'alpha' | 'beta' | 'deprecated' | 'active';
26
- contextLimit: number;
27
- outputLimit: number;
28
- reasoning: boolean;
29
- toolcall: boolean;
30
- attachment: boolean;
31
- dailyRequestLimit?: number;
32
- }
33
- export interface DiscoveredModel {
34
- providerID: string;
35
- model: string;
36
- name: string;
37
- status: 'alpha' | 'beta' | 'deprecated' | 'active';
38
- contextLimit: number;
39
- outputLimit: number;
40
- reasoning: boolean;
41
- toolcall: boolean;
42
- attachment: boolean;
43
- dailyRequestLimit?: number;
44
- costInput?: number;
45
- costOutput?: number;
46
- }
47
- export interface DynamicAgentAssignment {
48
- model: string;
49
- variant?: string;
50
- }
51
- export type ScoringEngineVersion = 'v1' | 'v2-shadow' | 'v2';
52
- export type ResolutionLayerName = 'opencode-direct-override' | 'manual-user-plan' | 'pinned-model' | 'dynamic-recommendation' | 'provider-fallback-policy' | 'system-default';
53
- export interface AgentResolutionProvenance {
54
- winnerLayer: ResolutionLayerName;
55
- winnerModel: string;
56
- }
57
- export interface DynamicPlanScoringMeta {
58
- engineVersionApplied: 'v1' | 'v2';
59
- shadowCompared: boolean;
60
- diffs?: Record<string, {
61
- v1TopModel?: string;
62
- v2TopModel?: string;
63
- }>;
64
- }
65
- export interface DynamicModelPlan {
66
- agents: Record<string, DynamicAgentAssignment>;
67
- chains: Record<string, string[]>;
68
- provenance?: Record<string, AgentResolutionProvenance>;
69
- scoring?: DynamicPlanScoringMeta;
70
- }
71
- export interface ExternalModelSignal {
72
- qualityScore?: number;
73
- codingScore?: number;
74
- latencySeconds?: number;
75
- inputPricePer1M?: number;
76
- outputPricePer1M?: number;
77
- source: 'artificial-analysis' | 'openrouter' | 'merged';
78
- }
79
- export type ExternalSignalMap = Record<string, ExternalModelSignal>;
80
- export type ManualAgentConfig = {
81
- primary: string;
82
- fallback1: string;
83
- fallback2: string;
84
- fallback3: string;
85
- };
86
8
  export interface OpenCodeConfig {
87
9
  plugin?: string[];
88
10
  provider?: Record<string, unknown>;
@@ -90,34 +12,10 @@ export interface OpenCodeConfig {
90
12
  [key: string]: unknown;
91
13
  }
92
14
  export interface InstallConfig {
93
- hasKimi: boolean;
94
- hasOpenAI: boolean;
95
- hasAnthropic?: boolean;
96
- hasCopilot?: boolean;
97
- hasZaiPlan?: boolean;
98
- hasAntigravity: boolean;
99
- hasChutes?: boolean;
100
- hasOpencodeZen: boolean;
101
- useOpenCodeFreeModels?: boolean;
102
- preferredOpenCodeModel?: string;
103
- selectedOpenCodePrimaryModel?: string;
104
- selectedOpenCodeSecondaryModel?: string;
105
- availableOpenCodeFreeModels?: OpenCodeFreeModel[];
106
- selectedChutesPrimaryModel?: string;
107
- selectedChutesSecondaryModel?: string;
108
- availableChutesModels?: DiscoveredModel[];
109
- dynamicModelPlan?: DynamicModelPlan;
110
- scoringEngineVersion?: ScoringEngineVersion;
111
- artificialAnalysisApiKey?: string;
112
- openRouterApiKey?: string;
113
- balanceProviderUsage?: boolean;
114
15
  hasTmux: boolean;
115
16
  installSkills: boolean;
116
17
  installCustomSkills: boolean;
117
- setupMode: 'quick' | 'manual';
118
- manualAgentConfigs?: Record<string, ManualAgentConfig>;
119
18
  dryRun?: boolean;
120
- modelsOnly?: boolean;
121
19
  }
122
20
  export interface ConfigMergeResult {
123
21
  success: boolean;
package/dist/index.js CHANGED
@@ -3377,11 +3377,11 @@ var SUBAGENT_DELEGATION_RULES = {
3377
3377
  };
3378
3378
  var DEFAULT_MODELS = {
3379
3379
  orchestrator: undefined,
3380
- oracle: "openai/gpt-5.2-codex",
3381
- librarian: "openai/gpt-5.1-codex-mini",
3382
- explorer: "openai/gpt-5.1-codex-mini",
3380
+ oracle: "openai/gpt-5.4",
3381
+ librarian: "openai/gpt-5-codex",
3382
+ explorer: "openai/gpt-5-codex",
3383
3383
  designer: "kimi-for-coding/k2p5",
3384
- fixer: "openai/gpt-5.1-codex-mini"
3384
+ fixer: "openai/gpt-5-codex"
3385
3385
  };
3386
3386
  var POLL_INTERVAL_BACKGROUND_MS = 2000;
3387
3387
  var DEFAULT_TIMEOUT_MS = 2 * 60 * 1000;
@@ -18639,8 +18639,6 @@ class TmuxSessionManager {
18639
18639
  // src/hooks/auto-update-checker/cache.ts
18640
18640
  import * as fs3 from "fs";
18641
18641
  import * as path4 from "path";
18642
- // src/cli/dynamic-model-selection.ts
18643
- var FREE_BIASED_PROVIDERS = new Set(["opencode"]);
18644
18642
  // src/hooks/auto-update-checker/constants.ts
18645
18643
  import * as os3 from "os";
18646
18644
  import * as path3 from "path";
@@ -33581,7 +33579,19 @@ var OhMyOpenCodeLite = async (ctx) => {
33581
33579
  if (!opencodeConfig.agent) {
33582
33580
  opencodeConfig.agent = { ...agents };
33583
33581
  } else {
33584
- Object.assign(opencodeConfig.agent, agents);
33582
+ for (const [name, pluginAgent] of Object.entries(agents)) {
33583
+ const existing = opencodeConfig.agent[name];
33584
+ if (existing) {
33585
+ opencodeConfig.agent[name] = {
33586
+ ...pluginAgent,
33587
+ ...existing
33588
+ };
33589
+ } else {
33590
+ opencodeConfig.agent[name] = {
33591
+ ...pluginAgent
33592
+ };
33593
+ }
33594
+ }
33585
33595
  }
33586
33596
  const configAgent = opencodeConfig.agent;
33587
33597
  if (Object.keys(modelArrayMap).length > 0) {