oh-my-opencode 3.1.8 → 3.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -5956,6 +5956,8 @@ var init_model_requirements = __esm(() => {
5956
5956
  sisyphus: {
5957
5957
  fallbackChain: [
5958
5958
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" },
5959
+ { providers: ["kimi-for-coding"], model: "k2p5" },
5960
+ { providers: ["opencode"], model: "kimi-k2.5-free" },
5959
5961
  { providers: ["zai-coding-plan"], model: "glm-4.7" },
5960
5962
  { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2-codex", variant: "medium" },
5961
5963
  { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro" }
@@ -5964,14 +5966,14 @@ var init_model_requirements = __esm(() => {
5964
5966
  oracle: {
5965
5967
  fallbackChain: [
5966
5968
  { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" },
5967
- { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" },
5968
- { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro" }
5969
+ { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro", variant: "max" },
5970
+ { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" }
5969
5971
  ]
5970
5972
  },
5971
5973
  librarian: {
5972
5974
  fallbackChain: [
5973
5975
  { providers: ["zai-coding-plan"], model: "glm-4.7" },
5974
- { providers: ["opencode"], model: "big-pickle" },
5976
+ { providers: ["opencode"], model: "glm-4.7-free" },
5975
5977
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-5" }
5976
5978
  ]
5977
5979
  },
@@ -5987,6 +5989,8 @@ var init_model_requirements = __esm(() => {
5987
5989
  { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" },
5988
5990
  { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" },
5989
5991
  { providers: ["zai-coding-plan"], model: "glm-4.6v" },
5992
+ { providers: ["kimi-for-coding"], model: "k2p5" },
5993
+ { providers: ["opencode"], model: "kimi-k2.5-free" },
5990
5994
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-haiku-4-5" },
5991
5995
  { providers: ["opencode"], model: "gpt-5-nano" }
5992
5996
  ]
@@ -5994,6 +5998,8 @@ var init_model_requirements = __esm(() => {
5994
5998
  prometheus: {
5995
5999
  fallbackChain: [
5996
6000
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" },
6001
+ { providers: ["kimi-for-coding"], model: "k2p5" },
6002
+ { providers: ["opencode"], model: "kimi-k2.5-free" },
5997
6003
  { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" },
5998
6004
  { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro" }
5999
6005
  ]
@@ -6001,6 +6007,8 @@ var init_model_requirements = __esm(() => {
6001
6007
  metis: {
6002
6008
  fallbackChain: [
6003
6009
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" },
6010
+ { providers: ["kimi-for-coding"], model: "k2p5" },
6011
+ { providers: ["opencode"], model: "kimi-k2.5-free" },
6004
6012
  { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" },
6005
6013
  { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro", variant: "max" }
6006
6014
  ]
@@ -6008,12 +6016,14 @@ var init_model_requirements = __esm(() => {
6008
6016
  momus: {
6009
6017
  fallbackChain: [
6010
6018
  { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "medium" },
6011
- { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5" },
6019
+ { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" },
6012
6020
  { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro", variant: "max" }
6013
6021
  ]
6014
6022
  },
6015
6023
  atlas: {
6016
6024
  fallbackChain: [
6025
+ { providers: ["kimi-for-coding"], model: "k2p5" },
6026
+ { providers: ["opencode"], model: "kimi-k2.5-free" },
6017
6027
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-5" },
6018
6028
  { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" },
6019
6029
  { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro" }
@@ -6025,22 +6035,31 @@ var init_model_requirements = __esm(() => {
6025
6035
  fallbackChain: [
6026
6036
  { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro" },
6027
6037
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" },
6028
- { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" }
6038
+ { providers: ["zai-coding-plan"], model: "glm-4.7" }
6029
6039
  ]
6030
6040
  },
6031
6041
  ultrabrain: {
6032
6042
  fallbackChain: [
6033
6043
  { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2-codex", variant: "xhigh" },
6034
- { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" },
6035
- { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro" }
6044
+ { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro", variant: "max" },
6045
+ { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" }
6036
6046
  ]
6037
6047
  },
6048
+ deep: {
6049
+ fallbackChain: [
6050
+ { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2-codex", variant: "medium" },
6051
+ { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" },
6052
+ { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro", variant: "max" }
6053
+ ],
6054
+ requiresModel: "gpt-5.2-codex"
6055
+ },
6038
6056
  artistry: {
6039
6057
  fallbackChain: [
6040
6058
  { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro", variant: "max" },
6041
6059
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-5", variant: "max" },
6042
6060
  { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" }
6043
- ]
6061
+ ],
6062
+ requiresModel: "gemini-3-pro"
6044
6063
  },
6045
6064
  quick: {
6046
6065
  fallbackChain: [
@@ -6150,29 +6169,31 @@ async function updateConnectedProvidersCache(client) {
6150
6169
  const connected = result.data?.connected ?? [];
6151
6170
  log("[connected-providers-cache] Fetched connected providers", { count: connected.length, providers: connected });
6152
6171
  writeConnectedProvidersCache(connected);
6172
+ let modelsByProvider = {};
6153
6173
  if (client.model?.list) {
6154
6174
  try {
6155
6175
  const modelsResult = await client.model.list();
6156
6176
  const models = modelsResult.data ?? [];
6157
- const modelsByProvider = {};
6158
6177
  for (const model of models) {
6159
6178
  if (!modelsByProvider[model.provider]) {
6160
6179
  modelsByProvider[model.provider] = [];
6161
6180
  }
6162
6181
  modelsByProvider[model.provider].push(model.id);
6163
6182
  }
6164
- writeProviderModelsCache({
6165
- models: modelsByProvider,
6166
- connected
6167
- });
6168
- log("[connected-providers-cache] Provider-models cache updated", {
6183
+ log("[connected-providers-cache] Fetched models from API", {
6169
6184
  providerCount: Object.keys(modelsByProvider).length,
6170
6185
  totalModels: models.length
6171
6186
  });
6172
6187
  } catch (modelErr) {
6173
- log("[connected-providers-cache] Error fetching models", { error: String(modelErr) });
6188
+ log("[connected-providers-cache] Error fetching models, writing empty cache", { error: String(modelErr) });
6174
6189
  }
6190
+ } else {
6191
+ log("[connected-providers-cache] client.model.list not available, writing empty cache");
6175
6192
  }
6193
+ writeProviderModelsCache({
6194
+ models: modelsByProvider,
6195
+ connected
6196
+ });
6176
6197
  } catch (err) {
6177
6198
  log("[connected-providers-cache] Error updating cache", { error: String(err) });
6178
6199
  }
@@ -6219,6 +6240,7 @@ var init_constants = __esm(() => {
6219
6240
  // src/features/hook-message-injector/injector.ts
6220
6241
  var init_injector = __esm(() => {
6221
6242
  init_constants();
6243
+ init_logger();
6222
6244
  });
6223
6245
 
6224
6246
  // src/features/hook-message-injector/index.ts
@@ -6251,6 +6273,11 @@ var init_tmux = __esm(() => {
6251
6273
  init_tmux_utils();
6252
6274
  });
6253
6275
 
6276
+ // src/shared/model-suggestion-retry.ts
6277
+ var init_model_suggestion_retry = __esm(() => {
6278
+ init_logger();
6279
+ });
6280
+
6254
6281
  // src/shared/index.ts
6255
6282
  var init_shared = __esm(() => {
6256
6283
  init_frontmatter();
@@ -6281,6 +6308,7 @@ var init_shared = __esm(() => {
6281
6308
  init_connected_providers_cache();
6282
6309
  init_session_utils();
6283
6310
  init_tmux();
6311
+ init_model_suggestion_retry();
6284
6312
  });
6285
6313
 
6286
6314
  // src/cli/model-fallback.ts
@@ -6294,6 +6322,7 @@ function toProviderAvailability(config) {
6294
6322
  opencodeZen: config.hasOpencodeZen,
6295
6323
  copilot: config.hasCopilot,
6296
6324
  zai: config.hasZaiCodingPlan,
6325
+ kimiForCoding: config.hasKimiForCoding,
6297
6326
  isMaxPlan: config.isMax20
6298
6327
  };
6299
6328
  }
@@ -6304,7 +6333,8 @@ function isProviderAvailable(provider, avail) {
6304
6333
  google: avail.native.gemini,
6305
6334
  "github-copilot": avail.copilot,
6306
6335
  opencode: avail.opencodeZen,
6307
- "zai-coding-plan": avail.zai
6336
+ "zai-coding-plan": avail.zai,
6337
+ "kimi-for-coding": avail.kimiForCoding
6308
6338
  };
6309
6339
  return mapping[provider] ?? false;
6310
6340
  }
@@ -6334,13 +6364,15 @@ function getSisyphusFallbackChain(isMaxPlan) {
6334
6364
  }
6335
6365
  return [
6336
6366
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-5" },
6367
+ { providers: ["kimi-for-coding"], model: "k2p5" },
6368
+ { providers: ["opencode"], model: "kimi-k2.5-free" },
6337
6369
  { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" },
6338
6370
  { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro" }
6339
6371
  ];
6340
6372
  }
6341
6373
  function generateModelConfig(config) {
6342
6374
  const avail = toProviderAvailability(config);
6343
- const hasAnyProvider = avail.native.claude || avail.native.openai || avail.native.gemini || avail.opencodeZen || avail.copilot || avail.zai;
6375
+ const hasAnyProvider = avail.native.claude || avail.native.openai || avail.native.gemini || avail.opencodeZen || avail.copilot || avail.zai || avail.kimiForCoding;
6344
6376
  if (!hasAnyProvider) {
6345
6377
  return {
6346
6378
  $schema: SCHEMA_URL,
@@ -6392,7 +6424,7 @@ function generateModelConfig(config) {
6392
6424
  categories
6393
6425
  };
6394
6426
  }
6395
- var ZAI_MODEL = "zai-coding-plan/glm-4.7", ULTIMATE_FALLBACK = "opencode/big-pickle", SCHEMA_URL = "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json";
6427
+ var ZAI_MODEL = "zai-coding-plan/glm-4.7", ULTIMATE_FALLBACK = "opencode/glm-4.7-free", SCHEMA_URL = "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json";
6396
6428
  var init_model_fallback = __esm(() => {
6397
6429
  init_model_requirements();
6398
6430
  });
@@ -6779,21 +6811,22 @@ function addProviderConfig(config) {
6779
6811
  function detectProvidersFromOmoConfig() {
6780
6812
  const omoConfigPath = getOmoConfig();
6781
6813
  if (!existsSync5(omoConfigPath)) {
6782
- return { hasOpenAI: true, hasOpencodeZen: true, hasZaiCodingPlan: false };
6814
+ return { hasOpenAI: true, hasOpencodeZen: true, hasZaiCodingPlan: false, hasKimiForCoding: false };
6783
6815
  }
6784
6816
  try {
6785
6817
  const content = readFileSync4(omoConfigPath, "utf-8");
6786
6818
  const omoConfig = parseJsonc(content);
6787
6819
  if (!omoConfig || typeof omoConfig !== "object") {
6788
- return { hasOpenAI: true, hasOpencodeZen: true, hasZaiCodingPlan: false };
6820
+ return { hasOpenAI: true, hasOpencodeZen: true, hasZaiCodingPlan: false, hasKimiForCoding: false };
6789
6821
  }
6790
6822
  const configStr = JSON.stringify(omoConfig);
6791
6823
  const hasOpenAI = configStr.includes('"openai/');
6792
6824
  const hasOpencodeZen = configStr.includes('"opencode/');
6793
6825
  const hasZaiCodingPlan = configStr.includes('"zai-coding-plan/');
6794
- return { hasOpenAI, hasOpencodeZen, hasZaiCodingPlan };
6826
+ const hasKimiForCoding = configStr.includes('"kimi-for-coding/');
6827
+ return { hasOpenAI, hasOpencodeZen, hasZaiCodingPlan, hasKimiForCoding };
6795
6828
  } catch {
6796
- return { hasOpenAI: true, hasOpencodeZen: true, hasZaiCodingPlan: false };
6829
+ return { hasOpenAI: true, hasOpencodeZen: true, hasZaiCodingPlan: false, hasKimiForCoding: false };
6797
6830
  }
6798
6831
  }
6799
6832
  function detectCurrentConfig() {
@@ -6805,7 +6838,8 @@ function detectCurrentConfig() {
6805
6838
  hasGemini: false,
6806
6839
  hasCopilot: false,
6807
6840
  hasOpencodeZen: true,
6808
- hasZaiCodingPlan: false
6841
+ hasZaiCodingPlan: false,
6842
+ hasKimiForCoding: false
6809
6843
  };
6810
6844
  const { format: format2, path: path3 } = detectConfigFormat();
6811
6845
  if (format2 === "none") {
@@ -6822,10 +6856,11 @@ function detectCurrentConfig() {
6822
6856
  return result;
6823
6857
  }
6824
6858
  result.hasGemini = plugins.some((p2) => p2.startsWith("opencode-antigravity-auth"));
6825
- const { hasOpenAI, hasOpencodeZen, hasZaiCodingPlan } = detectProvidersFromOmoConfig();
6859
+ const { hasOpenAI, hasOpencodeZen, hasZaiCodingPlan, hasKimiForCoding } = detectProvidersFromOmoConfig();
6826
6860
  result.hasOpenAI = hasOpenAI;
6827
6861
  result.hasOpencodeZen = hasOpencodeZen;
6828
6862
  result.hasZaiCodingPlan = hasZaiCodingPlan;
6863
+ result.hasKimiForCoding = hasKimiForCoding;
6829
6864
  return result;
6830
6865
  }
6831
6866
  var OPENCODE_BINARIES, configContext = null, BUN_INSTALL_TIMEOUT_SECONDS = 60, BUN_INSTALL_TIMEOUT_MS, NPM_FETCH_TIMEOUT_MS = 5000, PACKAGE_NAME = "oh-my-opencode", PRIORITIZED_TAGS, ANTIGRAVITY_PROVIDER_CONFIG;
@@ -8089,7 +8124,7 @@ var import_picocolors2 = __toESM(require_picocolors(), 1);
8089
8124
  // package.json
8090
8125
  var package_default = {
8091
8126
  name: "oh-my-opencode",
8092
- version: "3.1.8",
8127
+ version: "3.1.9",
8093
8128
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
8094
8129
  main: "dist/index.js",
8095
8130
  types: "dist/index.d.ts",
@@ -8163,13 +8198,13 @@ var package_default = {
8163
8198
  typescript: "^5.7.3"
8164
8199
  },
8165
8200
  optionalDependencies: {
8166
- "oh-my-opencode-darwin-arm64": "3.1.8",
8167
- "oh-my-opencode-darwin-x64": "3.1.8",
8168
- "oh-my-opencode-linux-arm64": "3.1.8",
8169
- "oh-my-opencode-linux-arm64-musl": "3.1.8",
8170
- "oh-my-opencode-linux-x64": "3.1.8",
8171
- "oh-my-opencode-linux-x64-musl": "3.1.8",
8172
- "oh-my-opencode-windows-x64": "3.1.8"
8201
+ "oh-my-opencode-darwin-arm64": "3.1.9",
8202
+ "oh-my-opencode-darwin-x64": "3.1.9",
8203
+ "oh-my-opencode-linux-arm64": "3.1.9",
8204
+ "oh-my-opencode-linux-arm64-musl": "3.1.9",
8205
+ "oh-my-opencode-linux-x64": "3.1.9",
8206
+ "oh-my-opencode-linux-x64-musl": "3.1.9",
8207
+ "oh-my-opencode-windows-x64": "3.1.9"
8173
8208
  },
8174
8209
  trustedDependencies: [
8175
8210
  "@ast-grep/cli",
@@ -8206,6 +8241,7 @@ function formatConfigSummary(config) {
8206
8241
  lines.push(formatProvider("GitHub Copilot", config.hasCopilot, "fallback"));
8207
8242
  lines.push(formatProvider("OpenCode Zen", config.hasOpencodeZen, "opencode/ models"));
8208
8243
  lines.push(formatProvider("Z.ai Coding Plan", config.hasZaiCodingPlan, "Librarian/Multimodal"));
8244
+ lines.push(formatProvider("Kimi For Coding", config.hasKimiForCoding, "Sisyphus/Prometheus fallback"));
8209
8245
  lines.push("");
8210
8246
  lines.push(import_picocolors2.default.dim("\u2500".repeat(40)));
8211
8247
  lines.push("");
@@ -8283,6 +8319,9 @@ function validateNonTuiArgs(args) {
8283
8319
  if (args.zaiCodingPlan !== undefined && !["no", "yes"].includes(args.zaiCodingPlan)) {
8284
8320
  errors.push(`Invalid --zai-coding-plan value: ${args.zaiCodingPlan} (expected: no, yes)`);
8285
8321
  }
8322
+ if (args.kimiForCoding !== undefined && !["no", "yes"].includes(args.kimiForCoding)) {
8323
+ errors.push(`Invalid --kimi-for-coding value: ${args.kimiForCoding} (expected: no, yes)`);
8324
+ }
8286
8325
  return { valid: errors.length === 0, errors };
8287
8326
  }
8288
8327
  function argsToConfig(args) {
@@ -8293,7 +8332,8 @@ function argsToConfig(args) {
8293
8332
  hasGemini: args.gemini === "yes",
8294
8333
  hasCopilot: args.copilot === "yes",
8295
8334
  hasOpencodeZen: args.opencodeZen === "yes",
8296
- hasZaiCodingPlan: args.zaiCodingPlan === "yes"
8335
+ hasZaiCodingPlan: args.zaiCodingPlan === "yes",
8336
+ hasKimiForCoding: args.kimiForCoding === "yes"
8297
8337
  };
8298
8338
  }
8299
8339
  function detectedToInitialValues(detected) {
@@ -8307,7 +8347,8 @@ function detectedToInitialValues(detected) {
8307
8347
  gemini: detected.hasGemini ? "yes" : "no",
8308
8348
  copilot: detected.hasCopilot ? "yes" : "no",
8309
8349
  opencodeZen: detected.hasOpencodeZen ? "yes" : "no",
8310
- zaiCodingPlan: detected.hasZaiCodingPlan ? "yes" : "no"
8350
+ zaiCodingPlan: detected.hasZaiCodingPlan ? "yes" : "no",
8351
+ kimiForCoding: detected.hasKimiForCoding ? "yes" : "no"
8311
8352
  };
8312
8353
  }
8313
8354
  async function runTuiMode(detected) {
@@ -8315,7 +8356,7 @@ async function runTuiMode(detected) {
8315
8356
  const claude = await ve({
8316
8357
  message: "Do you have a Claude Pro/Max subscription?",
8317
8358
  options: [
8318
- { value: "no", label: "No", hint: "Will use opencode/big-pickle as fallback" },
8359
+ { value: "no", label: "No", hint: "Will use opencode/glm-4.7-free as fallback" },
8319
8360
  { value: "yes", label: "Yes (standard)", hint: "Claude Opus 4.5 for orchestration" },
8320
8361
  { value: "max20", label: "Yes (max20 mode)", hint: "Full power with Claude Sonnet 4.5 for Librarian" }
8321
8362
  ],
@@ -8385,6 +8426,18 @@ async function runTuiMode(detected) {
8385
8426
  xe("Installation cancelled.");
8386
8427
  return null;
8387
8428
  }
8429
+ const kimiForCoding = await ve({
8430
+ message: "Do you have a Kimi For Coding subscription?",
8431
+ options: [
8432
+ { value: "no", label: "No", hint: "Will use other configured providers" },
8433
+ { value: "yes", label: "Yes", hint: "Kimi K2.5 for Sisyphus/Prometheus fallback" }
8434
+ ],
8435
+ initialValue: initial.kimiForCoding
8436
+ });
8437
+ if (pD(kimiForCoding)) {
8438
+ xe("Installation cancelled.");
8439
+ return null;
8440
+ }
8388
8441
  return {
8389
8442
  hasClaude: claude !== "no",
8390
8443
  isMax20: claude === "max20",
@@ -8392,7 +8445,8 @@ async function runTuiMode(detected) {
8392
8445
  hasGemini: gemini === "yes",
8393
8446
  hasCopilot: copilot === "yes",
8394
8447
  hasOpencodeZen: opencodeZen === "yes",
8395
- hasZaiCodingPlan: zaiCodingPlan === "yes"
8448
+ hasZaiCodingPlan: zaiCodingPlan === "yes",
8449
+ hasKimiForCoding: kimiForCoding === "yes"
8396
8450
  };
8397
8451
  }
8398
8452
  async function runNonTuiInstall(args) {
@@ -8474,7 +8528,7 @@ async function runNonTuiInstall(args) {
8474
8528
  console.log();
8475
8529
  }
8476
8530
  if (!config.hasClaude && !config.hasOpenAI && !config.hasGemini && !config.hasCopilot && !config.hasOpencodeZen) {
8477
- printWarning("No model providers configured. Using opencode/big-pickle as fallback.");
8531
+ printWarning("No model providers configured. Using opencode/glm-4.7-free as fallback.");
8478
8532
  }
8479
8533
  console.log(`${SYMBOLS.star} ${import_picocolors2.default.bold(import_picocolors2.default.green(isUpdate ? "Configuration updated!" : "Installation complete!"))}`);
8480
8534
  console.log(` Run ${import_picocolors2.default.cyan("opencode")} to start!`);
@@ -8483,7 +8537,7 @@ async function runNonTuiInstall(args) {
8483
8537
  ` + `All features work like magic\u2014parallel agents, background tasks,
8484
8538
  ` + `deep exploration, and relentless execution until completion.`, "The Magic Word");
8485
8539
  console.log(`${SYMBOLS.star} ${import_picocolors2.default.yellow("If you found this helpful, consider starring the repo!")}`);
8486
- console.log(` ${import_picocolors2.default.dim("gh repo star code-yeongyu/oh-my-opencode")}`);
8540
+ console.log(` ${import_picocolors2.default.dim("gh api --silent --method PUT /user/starred/code-yeongyu/oh-my-opencode >/dev/null 2>&1 || true")}`);
8487
8541
  console.log();
8488
8542
  console.log(import_picocolors2.default.dim("oMoMoMoMo... Enjoy!"));
8489
8543
  console.log();
@@ -8568,7 +8622,7 @@ async function install(args) {
8568
8622
  console.log();
8569
8623
  }
8570
8624
  if (!config.hasClaude && !config.hasOpenAI && !config.hasGemini && !config.hasCopilot && !config.hasOpencodeZen) {
8571
- M2.warn("No model providers configured. Using opencode/big-pickle as fallback.");
8625
+ M2.warn("No model providers configured. Using opencode/glm-4.7-free as fallback.");
8572
8626
  }
8573
8627
  Me(formatConfigSummary(config), isUpdate ? "Updated Configuration" : "Installation Complete");
8574
8628
  M2.success(import_picocolors2.default.bold(isUpdate ? "Configuration updated!" : "Installation complete!"));
@@ -8577,7 +8631,7 @@ async function install(args) {
8577
8631
  ` + `All features work like magic\u2014parallel agents, background tasks,
8578
8632
  ` + `deep exploration, and relentless execution until completion.`, "The Magic Word");
8579
8633
  M2.message(`${import_picocolors2.default.yellow("\u2605")} If you found this helpful, consider starring the repo!`);
8580
- M2.message(` ${import_picocolors2.default.dim("gh repo star code-yeongyu/oh-my-opencode")}`);
8634
+ M2.message(` ${import_picocolors2.default.dim("gh api --silent --method PUT /user/starred/code-yeongyu/oh-my-opencode >/dev/null 2>&1 || true")}`);
8581
8635
  Se(import_picocolors2.default.green("oMoMoMoMo... Enjoy!"));
8582
8636
  if ((config.hasClaude || config.hasGemini || config.hasCopilot) && !args.skipAuth) {
8583
8637
  const providers = [];
@@ -23429,6 +23483,7 @@ var CategoryConfigSchema = exports_external.object({
23429
23483
  var BuiltinCategoryNameSchema = exports_external.enum([
23430
23484
  "visual-engineering",
23431
23485
  "ultrabrain",
23486
+ "deep",
23432
23487
  "artistry",
23433
23488
  "quick",
23434
23489
  "unspecified-low",
@@ -25469,19 +25524,20 @@ function createMcpOAuthCommand() {
25469
25524
  var VERSION2 = package_default.version;
25470
25525
  var program2 = new Command;
25471
25526
  program2.name("oh-my-opencode").description("The ultimate OpenCode plugin - multi-model orchestration, LSP tools, and more").version(VERSION2, "-v, --version", "Show version number");
25472
- program2.command("install").description("Install and configure oh-my-opencode with interactive setup").option("--no-tui", "Run in non-interactive mode (requires all options)").option("--claude <value>", "Claude subscription: no, yes, max20").option("--openai <value>", "OpenAI/ChatGPT subscription: no, yes (default: no)").option("--gemini <value>", "Gemini integration: no, yes").option("--copilot <value>", "GitHub Copilot subscription: no, yes").option("--opencode-zen <value>", "OpenCode Zen access: no, yes (default: no)").option("--zai-coding-plan <value>", "Z.ai Coding Plan subscription: no, yes (default: no)").option("--skip-auth", "Skip authentication setup hints").addHelpText("after", `
25527
+ program2.command("install").description("Install and configure oh-my-opencode with interactive setup").option("--no-tui", "Run in non-interactive mode (requires all options)").option("--claude <value>", "Claude subscription: no, yes, max20").option("--openai <value>", "OpenAI/ChatGPT subscription: no, yes (default: no)").option("--gemini <value>", "Gemini integration: no, yes").option("--copilot <value>", "GitHub Copilot subscription: no, yes").option("--opencode-zen <value>", "OpenCode Zen access: no, yes (default: no)").option("--zai-coding-plan <value>", "Z.ai Coding Plan subscription: no, yes (default: no)").option("--kimi-for-coding <value>", "Kimi For Coding subscription: no, yes (default: no)").option("--skip-auth", "Skip authentication setup hints").addHelpText("after", `
25473
25528
  Examples:
25474
25529
  $ bunx oh-my-opencode install
25475
25530
  $ bunx oh-my-opencode install --no-tui --claude=max20 --openai=yes --gemini=yes --copilot=no
25476
25531
  $ bunx oh-my-opencode install --no-tui --claude=no --gemini=no --copilot=yes --opencode-zen=yes
25477
25532
 
25478
- Model Providers (Priority: Native > Copilot > OpenCode Zen > Z.ai):
25533
+ Model Providers (Priority: Native > Copilot > OpenCode Zen > Z.ai > Kimi):
25479
25534
  Claude Native anthropic/ models (Opus, Sonnet, Haiku)
25480
25535
  OpenAI Native openai/ models (GPT-5.2 for Oracle)
25481
25536
  Gemini Native google/ models (Gemini 3 Pro, Flash)
25482
25537
  Copilot github-copilot/ models (fallback)
25483
25538
  OpenCode Zen opencode/ models (opencode/claude-opus-4-5, etc.)
25484
25539
  Z.ai zai-coding-plan/glm-4.7 (Librarian priority)
25540
+ Kimi kimi-for-coding/k2p5 (Sisyphus/Prometheus fallback)
25485
25541
  `).action(async (options) => {
25486
25542
  const args = {
25487
25543
  tui: options.tui !== false,
@@ -25491,6 +25547,7 @@ Model Providers (Priority: Native > Copilot > OpenCode Zen > Z.ai):
25491
25547
  copilot: options.copilot,
25492
25548
  opencodeZen: options.opencodeZen,
25493
25549
  zaiCodingPlan: options.zaiCodingPlan,
25550
+ kimiForCoding: options.kimiForCoding,
25494
25551
  skipAuth: options.skipAuth ?? false
25495
25552
  };
25496
25553
  const exitCode = await install(args);
@@ -8,6 +8,7 @@ export interface InstallArgs {
8
8
  copilot?: BooleanArg;
9
9
  opencodeZen?: BooleanArg;
10
10
  zaiCodingPlan?: BooleanArg;
11
+ kimiForCoding?: BooleanArg;
11
12
  skipAuth?: boolean;
12
13
  }
13
14
  export interface InstallConfig {
@@ -18,6 +19,7 @@ export interface InstallConfig {
18
19
  hasCopilot: boolean;
19
20
  hasOpencodeZen: boolean;
20
21
  hasZaiCodingPlan: boolean;
22
+ hasKimiForCoding: boolean;
21
23
  }
22
24
  export interface ConfigMergeResult {
23
25
  success: boolean;
@@ -33,4 +35,5 @@ export interface DetectedConfig {
33
35
  hasCopilot: boolean;
34
36
  hasOpencodeZen: boolean;
35
37
  hasZaiCodingPlan: boolean;
38
+ hasKimiForCoding: boolean;
36
39
  }
@@ -1113,6 +1113,7 @@ export declare const BuiltinCategoryNameSchema: z.ZodEnum<{
1113
1113
  quick: "quick";
1114
1114
  "unspecified-high": "unspecified-high";
1115
1115
  "unspecified-low": "unspecified-low";
1116
+ deep: "deep";
1116
1117
  artistry: "artistry";
1117
1118
  }>;
1118
1119
  export declare const CategoriesConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<{