oh-my-opencode 5.1.41 → 5.1.43

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 (92) hide show
  1. package/README.de.md +118 -0
  2. package/README.es.md +118 -0
  3. package/README.fr.md +118 -0
  4. package/README.it.md +118 -0
  5. package/README.ja.md +2 -1
  6. package/README.ko.md +2 -1
  7. package/README.md +3 -2
  8. package/README.pt-br.md +118 -0
  9. package/README.ru.md +2 -1
  10. package/README.zh-cn.md +2 -1
  11. package/dist/cli/index.js +187 -39
  12. package/dist/cli/service-auth/cli-keystore.fixture.d.ts +1 -7
  13. package/dist/cli/service-auth/index.d.ts +3 -0
  14. package/dist/cli/service-auth/keystore.d.ts +8 -2
  15. package/dist/cli/service-auth/secret-service-lock.d.ts +4 -0
  16. package/dist/cli/service-auth/session.d.ts +7 -1
  17. package/dist/cli-node/index.js +187 -39
  18. package/dist/index.js +90 -31
  19. package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
  20. package/dist/tui.js +86 -26
  21. package/package.json +14 -14
  22. package/packages/lsp-core/src/lsp/bun-command-output.ts +82 -0
  23. package/packages/lsp-core/src/lsp/bun-project-checks.test.ts +170 -0
  24. package/packages/lsp-core/src/lsp/bun-project-checks.ts +223 -0
  25. package/packages/lsp-core/src/lsp/fake-bun-test-support.ts +102 -0
  26. package/packages/lsp-core/src/lsp/process.ts +1 -1
  27. package/packages/lsp-core/src/tool-surface.test.ts +2 -1
  28. package/packages/lsp-core/src/tools/bun-directory-diagnostics.test.ts +113 -0
  29. package/packages/lsp-core/src/tools/bun-directory-diagnostics.ts +75 -0
  30. package/packages/lsp-core/src/tools/definitions.ts +2 -1
  31. package/packages/lsp-core/src/tools/diagnostics.ts +23 -6
  32. package/packages/lsp-core/src/tools/types.ts +1 -0
  33. package/packages/lsp-daemon/dist/cli.js +363 -35
  34. package/packages/lsp-daemon/dist/client.js +341 -13
  35. package/packages/lsp-daemon/dist/index.js +344 -16
  36. package/packages/lsp-tools-mcp/dist/cli.js +333 -5
  37. package/packages/lsp-tools-mcp/dist/mcp.js +333 -5
  38. package/packages/lsp-tools-mcp/dist/tools.js +333 -5
  39. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  40. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +68 -9
  41. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  42. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  43. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  44. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  45. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  46. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  47. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  48. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  49. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  50. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +358 -36
  51. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  52. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  53. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  54. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  55. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  56. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  57. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +2 -0
  58. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +2 -0
  59. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  60. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  61. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  62. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  63. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  64. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  65. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  66. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  67. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  68. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  69. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  70. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  71. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  72. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  73. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  74. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  75. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  76. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  77. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  78. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  79. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  80. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  81. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  82. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  84. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  85. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  86. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  87. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  88. package/packages/omo-codex/plugin/package-lock.json +17 -12
  89. package/packages/omo-codex/plugin/package.json +1 -1
  90. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  91. package/packages/omo-codex/scripts/install-dist/install-local.mjs +72 -11
  92. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
package/dist/index.js CHANGED
@@ -85148,9 +85148,11 @@ var OmoMemoryAgentOverridesSchema = z9.object({
85148
85148
  projection: OmoMemoryProjectionLayerSchema.optional(),
85149
85149
  compile_warn_tokens: z9.number().int().positive().optional()
85150
85150
  }).strict();
85151
+ var OmoMemoryAutoIdentitySchema = z9.enum(["path", "git"]);
85151
85152
  var OmoMemorySettingsSchema = z9.object({
85152
85153
  enabled: z9.boolean().default(true),
85153
85154
  agent: z9.string().min(1).default("auto"),
85155
+ auto_identity: OmoMemoryAutoIdentitySchema.default("path"),
85154
85156
  reflection: OmoMemoryReflectionSchema.default({
85155
85157
  enabled: true,
85156
85158
  trigger: { step_count: 25, on_compaction: true },
@@ -85192,6 +85194,7 @@ var OmoMemorySettingsSchema = z9.object({
85192
85194
  var OmoMemorySettingsLayerSchema = z9.object({
85193
85195
  enabled: z9.boolean().optional(),
85194
85196
  agent: z9.string().min(1).optional(),
85197
+ auto_identity: OmoMemoryAutoIdentitySchema.optional(),
85195
85198
  reflection: OmoMemoryReflectionLayerSchema.optional(),
85196
85199
  nudge: OmoMemoryNudgeLayerSchema.optional(),
85197
85200
  facts: OmoMemoryFactsLayerSchema.optional(),
@@ -85232,6 +85235,7 @@ function isRecord9(value) {
85232
85235
  }
85233
85236
  var OmoModelProfileInputSchema = z11.object({
85234
85237
  display_name: z11.string().optional(),
85238
+ caution: z11.string().optional(),
85235
85239
  family: z11.enum(["daily", "geeky"]).optional(),
85236
85240
  tier: z11.enum(["normal", "heavy"]).optional(),
85237
85241
  models: z11.array(z11.union([z11.string(), OmoFallbackModelObjectSchema])).optional()
@@ -85509,6 +85513,7 @@ var OmoGatewaySectionSchema = z17.record(z17.string(), z17.unknown()).describe("
85509
85513
  // packages/omo-config-core/src/schema/config.ts
85510
85514
  var OmoOpenCodeHarnessConfigSchema = z18.record(z18.string(), z18.unknown());
85511
85515
  var OmoDisabledSkillsSchema = z18.array(z18.string());
85516
+ var OmoExcludedModelsSchema = z18.array(z18.string());
85512
85517
  var OmoTypedHarnessConfigSchema = z18.object({
85513
85518
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
85514
85519
  gateway: OmoGatewaySectionSchema.optional(),
@@ -85524,7 +85529,8 @@ var OmoTypedHarnessConfigSchema = z18.object({
85524
85529
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
85525
85530
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
85526
85531
  computer: OmoComputerSettingsLayerSchema.optional(),
85527
- disabled_skills: OmoDisabledSkillsSchema.optional()
85532
+ disabled_skills: OmoDisabledSkillsSchema.optional(),
85533
+ exclude_models: OmoExcludedModelsSchema.optional()
85528
85534
  }).strict();
85529
85535
  var OmoConfigProfileSchema = z18.object({
85530
85536
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
@@ -85541,6 +85547,7 @@ var OmoConfigProfileSchema = z18.object({
85541
85547
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
85542
85548
  computer: OmoComputerSettingsLayerSchema.optional(),
85543
85549
  disabled_skills: OmoDisabledSkillsSchema.optional(),
85550
+ exclude_models: OmoExcludedModelsSchema.optional(),
85544
85551
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
85545
85552
  "[native]": OmoTypedHarnessConfigSchema.optional(),
85546
85553
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
@@ -85563,6 +85570,7 @@ var OmoConfigSchema = z18.object({
85563
85570
  side_panel: OmoSidePanelSettingsSchema.optional(),
85564
85571
  computer: OmoComputerSettingsSchema.optional(),
85565
85572
  disabled_skills: OmoDisabledSkillsSchema.optional(),
85573
+ exclude_models: OmoExcludedModelsSchema.optional(),
85566
85574
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
85567
85575
  "[native]": OmoTypedHarnessConfigSchema.optional(),
85568
85576
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
@@ -85588,6 +85596,7 @@ var OmoConfigLayerSchema = z18.object({
85588
85596
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
85589
85597
  computer: OmoComputerSettingsLayerSchema.optional(),
85590
85598
  disabled_skills: OmoDisabledSkillsSchema.optional(),
85599
+ exclude_models: OmoExcludedModelsSchema.optional(),
85591
85600
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
85592
85601
  "[native]": OmoTypedHarnessConfigSchema.optional(),
85593
85602
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
@@ -85760,6 +85769,50 @@ function omoConfigDiagnosticLines(diagnostics, options = {}) {
85760
85769
  });
85761
85770
  }
85762
85771
 
85772
+ // packages/omo-config-core/src/loader/disabled-skills.ts
85773
+ function toRecord(value) {
85774
+ if (value === null || typeof value !== "object" || Array.isArray(value))
85775
+ return;
85776
+ return value;
85777
+ }
85778
+ function namesAt(record, key) {
85779
+ const value = record?.[key];
85780
+ if (!Array.isArray(value))
85781
+ return [];
85782
+ return value.filter((entry) => typeof entry === "string" && entry.trim() !== "");
85783
+ }
85784
+ function harnessBlockKeys(harness) {
85785
+ const canonical = canonicalHarnessName(harness);
85786
+ const legacy = Object.entries(OMO_CONFIG_LEGACY_HARNESS_ALIASES).filter(([, target]) => target === canonical).map(([name]) => harnessBlockKey(name));
85787
+ return [harnessBlockKey(canonical), ...legacy];
85788
+ }
85789
+ function scopesOf(config, harness) {
85790
+ if (harness === undefined)
85791
+ return [config];
85792
+ return [config, ...harnessBlockKeys(harness).map((key) => toRecord(config[key]))];
85793
+ }
85794
+ function collectExcludedModels(options) {
85795
+ return collectUnionedList("exclude_models", options);
85796
+ }
85797
+ function collectUnionedList(key, options) {
85798
+ const names = new Set;
85799
+ for (const layer of options.layers) {
85800
+ const config = toRecord(layer.config);
85801
+ if (config === undefined)
85802
+ continue;
85803
+ const profile = options.profile === undefined ? undefined : toRecord(toRecord(config["profiles"])?.[options.profile]);
85804
+ const scopes = [
85805
+ ...scopesOf(config, options.harness),
85806
+ ...profile === undefined ? [] : scopesOf(profile, options.harness)
85807
+ ];
85808
+ for (const scope of scopes) {
85809
+ for (const name of namesAt(scope, key))
85810
+ names.add(name.trim());
85811
+ }
85812
+ }
85813
+ return [...names];
85814
+ }
85815
+
85763
85816
  // packages/omo-config-core/src/loader/loader.ts
85764
85817
  init_main();
85765
85818
 
@@ -85994,7 +86047,7 @@ function stripUnrecognizedKeys(record, issues) {
85994
86047
  }
85995
86048
  return { issuePaths, stripped };
85996
86049
  }
85997
- function toRecord(value) {
86050
+ function toRecord2(value) {
85998
86051
  if (value === null || typeof value !== "object" || Array.isArray(value))
85999
86052
  return null;
86000
86053
  const record = {};
@@ -86009,7 +86062,7 @@ var validateLayerRecord = (record) => {
86009
86062
  };
86010
86063
  function validateConfigLayer(path, data) {
86011
86064
  const sanitized = sanitizeUnsafeKeys(data);
86012
- const record = toRecord(sanitized.value);
86065
+ const record = toRecord2(sanitized.value);
86013
86066
  const unsafeIssuePaths = sanitized.issues.flatMap((issue) => issue.keys.map((key) => [...issue.path, key].join(".")));
86014
86067
  const unsafeDiagnostics = unsafeIssuePaths.length === 0 ? [] : [{ kind: "unknown-keys", message: `Ignored unknown keys in ${path}: ${unsafeIssuePaths.join(", ")}`, path, issuePaths: unsafeIssuePaths }];
86015
86068
  const validation = OmoConfigLayerSchema.safeParse(sanitized.value);
@@ -86152,7 +86205,7 @@ function resolveOmoProfileName(options = {}) {
86152
86205
  const env = options.env ?? process.env;
86153
86206
  return profileName(options.profile) ?? profileName(env["OMO_PROFILE"]) ?? profileName(env["OCX_PROFILE"]) ?? profileNameFromOpenCodeConfigDir(env["OPENCODE_CONFIG_DIR"]);
86154
86207
  }
86155
- function toRecord2(value) {
86208
+ function toRecord3(value) {
86156
86209
  if (value === null || typeof value !== "object" || Array.isArray(value))
86157
86210
  return;
86158
86211
  return Object.fromEntries(Object.entries(value));
@@ -86173,13 +86226,13 @@ function harnessLayer(config, harness) {
86173
86226
  const legacyKeys = Object.entries(OMO_CONFIG_LEGACY_HARNESS_ALIASES).filter(([, target]) => target === canonical).map(([legacy]) => harnessBlockKey(legacy));
86174
86227
  let layer = {};
86175
86228
  for (const key of [...legacyKeys, harnessBlockKey(canonical)]) {
86176
- layer = mergeOmoConfigRecords(layer, toRecord2(config[key]) ?? {});
86229
+ layer = mergeOmoConfigRecords(layer, toRecord3(config[key]) ?? {});
86177
86230
  }
86178
86231
  return layer;
86179
86232
  }
86180
86233
  function resolveOmoConfigView(options) {
86181
- const profiles = toRecord2(options.config["profiles"]);
86182
- const profile = options.profile === undefined ? undefined : toRecord2(profiles?.[options.profile]);
86234
+ const profiles = toRecord3(options.config["profiles"]);
86235
+ const profile = options.profile === undefined ? undefined : toRecord3(profiles?.[options.profile]);
86183
86236
  const diagnostics = profile === undefined && options.profile !== undefined ? [{
86184
86237
  kind: "profile",
86185
86238
  message: `Activated omo profile "${options.profile}" does not exist; using the base configuration`,
@@ -86320,9 +86373,15 @@ function loadOmoConfig(options = {}) {
86320
86373
  });
86321
86374
  const finalInput = mergeOmoConfigRecords(DEFAULT_RAW_CONFIG, resolved.config);
86322
86375
  const finalConfig = OmoConfigSchema.safeParse(finalInput);
86376
+ const excludeModels = collectExcludedModels({
86377
+ layers,
86378
+ ...options.harness === undefined ? {} : { harness: options.harness },
86379
+ ...resolved.profile === undefined ? {} : { profile: resolved.profile }
86380
+ });
86381
+ const withExcludedModels = (config) => excludeModels.length === 0 ? config : { ...config, exclude_models: [...excludeModels] };
86323
86382
  if (finalConfig.success) {
86324
86383
  return {
86325
- config: stripResolutionControlKeys(finalConfig.data),
86384
+ config: withExcludedModels(stripResolutionControlKeys(finalConfig.data)),
86326
86385
  diagnostics: [...diagnostics, ...resolved.diagnostics],
86327
86386
  layers,
86328
86387
  ...resolved.profile === undefined ? {} : { profile: resolved.profile },
@@ -86335,7 +86394,7 @@ function loadOmoConfig(options = {}) {
86335
86394
  });
86336
86395
  if (pruned.ok) {
86337
86396
  return {
86338
- config: stripResolutionControlKeys(OmoConfigSchema.parse(pruned.config)),
86397
+ config: withExcludedModels(stripResolutionControlKeys(OmoConfigSchema.parse(pruned.config))),
86339
86398
  diagnostics: [...diagnostics, ...resolved.diagnostics, ...invalidValueDiagnostics(MERGED_OMO_CONFIG_PATH, pruned.dropped)],
86340
86399
  layers,
86341
86400
  ...resolved.profile === undefined ? {} : { profile: resolved.profile },
@@ -87822,7 +87881,7 @@ init_src();
87822
87881
  // package.json
87823
87882
  var package_default = {
87824
87883
  name: "oh-my-opencode",
87825
- version: "5.1.41",
87884
+ version: "5.1.43",
87826
87885
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
87827
87886
  main: "./dist/index.js",
87828
87887
  types: "dist/index.d.ts",
@@ -87999,7 +88058,7 @@ var package_default = {
87999
88058
  },
88000
88059
  devDependencies: {
88001
88060
  "@clack/prompts": "^1.8.1",
88002
- "@code-yeongyu/senpi": "2026.10.21-1",
88061
+ "@code-yeongyu/senpi": "2026.10.21-2",
88003
88062
  "@modelcontextprotocol/sdk": "^1.30.0",
88004
88063
  "@oh-my-opencode/agents-md-core": "workspace:*",
88005
88064
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -88060,18 +88119,18 @@ var package_default = {
88060
88119
  typescript: "^7.0.2"
88061
88120
  },
88062
88121
  optionalDependencies: {
88063
- "oh-my-opencode-darwin-arm64": "5.1.41",
88064
- "oh-my-opencode-darwin-x64": "5.1.41",
88065
- "oh-my-opencode-darwin-x64-baseline": "5.1.41",
88066
- "oh-my-opencode-linux-arm64": "5.1.41",
88067
- "oh-my-opencode-linux-arm64-musl": "5.1.41",
88068
- "oh-my-opencode-linux-x64": "5.1.41",
88069
- "oh-my-opencode-linux-x64-baseline": "5.1.41",
88070
- "oh-my-opencode-linux-x64-musl": "5.1.41",
88071
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.41",
88072
- "oh-my-opencode-windows-arm64": "5.1.41",
88073
- "oh-my-opencode-windows-x64": "5.1.41",
88074
- "oh-my-opencode-windows-x64-baseline": "5.1.41"
88122
+ "oh-my-opencode-darwin-arm64": "5.1.43",
88123
+ "oh-my-opencode-darwin-x64": "5.1.43",
88124
+ "oh-my-opencode-darwin-x64-baseline": "5.1.43",
88125
+ "oh-my-opencode-linux-arm64": "5.1.43",
88126
+ "oh-my-opencode-linux-arm64-musl": "5.1.43",
88127
+ "oh-my-opencode-linux-x64": "5.1.43",
88128
+ "oh-my-opencode-linux-x64-baseline": "5.1.43",
88129
+ "oh-my-opencode-linux-x64-musl": "5.1.43",
88130
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.43",
88131
+ "oh-my-opencode-windows-arm64": "5.1.43",
88132
+ "oh-my-opencode-windows-x64": "5.1.43",
88133
+ "oh-my-opencode-windows-x64-baseline": "5.1.43"
88075
88134
  },
88076
88135
  overrides: {
88077
88136
  hono: "^4.13.8",
@@ -107856,11 +107915,11 @@ init_logger2();
107856
107915
  init_src();
107857
107916
  var TERMINAL_TOOL_STATUSES = new Set(["completed", "error"]);
107858
107917
  var UNKNOWN_TOOL_STATUS = "unknown";
107859
- function toRecord3(value) {
107918
+ function toRecord4(value) {
107860
107919
  return isRecord(value) ? value : null;
107861
107920
  }
107862
107921
  function getToolCallID(part) {
107863
- const record = toRecord3(part);
107922
+ const record = toRecord4(part);
107864
107923
  if (!record || record["type"] !== "tool") {
107865
107924
  return null;
107866
107925
  }
@@ -107868,7 +107927,7 @@ function getToolCallID(part) {
107868
107927
  return typeof callID === "string" && callID.length > 0 ? callID : null;
107869
107928
  }
107870
107929
  function getToolStatus(part) {
107871
- const state = toRecord3(toRecord3(part)?.["state"]);
107930
+ const state = toRecord4(toRecord4(part)?.["state"]);
107872
107931
  if (!state) {
107873
107932
  return UNKNOWN_TOOL_STATUS;
107874
107933
  }
@@ -107899,24 +107958,24 @@ function findUnpairedToolParts(parts) {
107899
107958
  // packages/omo-opencode/src/hooks/tool-pair-validator/tool-result-repair.ts
107900
107959
  var INTERRUPTED_TOOL_ERROR = "[Tool execution was interrupted before it produced output]";
107901
107960
  function getMessageID(message) {
107902
- const messageID = toRecord3(message)?.["id"];
107961
+ const messageID = toRecord4(message)?.["id"];
107903
107962
  return typeof messageID === "string" ? messageID : undefined;
107904
107963
  }
107905
107964
  function getMessageSessionID(message) {
107906
- const sessionID = toRecord3(message)?.["sessionID"];
107965
+ const sessionID = toRecord4(message)?.["sessionID"];
107907
107966
  return typeof sessionID === "string" ? sessionID : undefined;
107908
107967
  }
107909
107968
  function readStartTime(state) {
107910
- const time = toRecord3(state["time"]);
107969
+ const time = toRecord4(state["time"]);
107911
107970
  const start = time?.["start"];
107912
107971
  return typeof start === "number" ? start : Date.now();
107913
107972
  }
107914
107973
  function settleToolPart(part) {
107915
- const state = toRecord3(toRecord3(part)?.["state"]);
107974
+ const state = toRecord4(toRecord4(part)?.["state"]);
107916
107975
  if (!state) {
107917
107976
  return false;
107918
107977
  }
107919
- const input = toRecord3(state["input"]);
107978
+ const input = toRecord4(state["input"]);
107920
107979
  const start = readStartTime(state);
107921
107980
  state["status"] = "error";
107922
107981
  state["error"] = INTERRUPTED_TOOL_ERROR;
@@ -5,5 +5,5 @@
5
5
  "index.js": "d67d3a847fe0bbc43e824feded48b280890d31879538309e671cd5f671133995",
6
6
  "page-bundle.js": "bfd51e8383cf47200d57387bbbed258bce5a3a3d00c38fc108034d2888e23f0c"
7
7
  },
8
- "stagedAtUtc": "2026-10-22T12:32:19.069Z"
8
+ "stagedAtUtc": "2026-10-22T23:35:54.623Z"
9
9
  }
package/dist/tui.js CHANGED
@@ -70124,7 +70124,7 @@ var init_memory_agreements = __esm(() => {
70124
70124
  });
70125
70125
 
70126
70126
  // packages/omo-config-core/src/schema/memory.ts
70127
- var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallEventCapsSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallEventCapsLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryProjectionSchema, OmoMemoryProjectionLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
70127
+ var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallEventCapsSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallEventCapsLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryProjectionSchema, OmoMemoryProjectionLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemoryAutoIdentitySchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
70128
70128
  var init_memory = __esm(() => {
70129
70129
  init_zod();
70130
70130
  init_memory_agreements();
@@ -70280,9 +70280,11 @@ var init_memory = __esm(() => {
70280
70280
  projection: OmoMemoryProjectionLayerSchema.optional(),
70281
70281
  compile_warn_tokens: number2().int().positive().optional()
70282
70282
  }).strict();
70283
+ OmoMemoryAutoIdentitySchema = _enum(["path", "git"]);
70283
70284
  OmoMemorySettingsSchema = object({
70284
70285
  enabled: boolean2().default(true),
70285
70286
  agent: string2().min(1).default("auto"),
70287
+ auto_identity: OmoMemoryAutoIdentitySchema.default("path"),
70286
70288
  reflection: OmoMemoryReflectionSchema.default({
70287
70289
  enabled: true,
70288
70290
  trigger: { step_count: 25, on_compaction: true },
@@ -70324,6 +70326,7 @@ var init_memory = __esm(() => {
70324
70326
  OmoMemorySettingsLayerSchema = object({
70325
70327
  enabled: boolean2().optional(),
70326
70328
  agent: string2().min(1).optional(),
70329
+ auto_identity: OmoMemoryAutoIdentitySchema.optional(),
70327
70330
  reflection: OmoMemoryReflectionLayerSchema.optional(),
70328
70331
  nudge: OmoMemoryNudgeLayerSchema.optional(),
70329
70332
  facts: OmoMemoryFactsLayerSchema.optional(),
@@ -70373,6 +70376,7 @@ var init_model_profile = __esm(() => {
70373
70376
  init_fallback_models();
70374
70377
  OmoModelProfileInputSchema = object({
70375
70378
  display_name: string2().optional(),
70379
+ caution: string2().optional(),
70376
70380
  family: _enum(["daily", "geeky"]).optional(),
70377
70381
  tier: _enum(["normal", "heavy"]).optional(),
70378
70382
  models: array(union([string2(), OmoFallbackModelObjectSchema])).optional()
@@ -70666,7 +70670,7 @@ var init_gateway = __esm(() => {
70666
70670
  });
70667
70671
 
70668
70672
  // packages/omo-config-core/src/schema/config.ts
70669
- var OmoOpenCodeHarnessConfigSchema, OmoDisabledSkillsSchema, OmoTypedHarnessConfigSchema, OmoConfigProfileSchema, OmoConfigSchema, OmoConfigLayerSchema;
70673
+ var OmoOpenCodeHarnessConfigSchema, OmoDisabledSkillsSchema, OmoExcludedModelsSchema, OmoTypedHarnessConfigSchema, OmoConfigProfileSchema, OmoConfigSchema, OmoConfigLayerSchema;
70670
70674
  var init_config = __esm(() => {
70671
70675
  init_zod();
70672
70676
  init_agent();
@@ -70684,6 +70688,7 @@ var init_config = __esm(() => {
70684
70688
  init_gateway();
70685
70689
  OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
70686
70690
  OmoDisabledSkillsSchema = array(string2());
70691
+ OmoExcludedModelsSchema = array(string2());
70687
70692
  OmoTypedHarnessConfigSchema = object({
70688
70693
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
70689
70694
  gateway: OmoGatewaySectionSchema.optional(),
@@ -70699,7 +70704,8 @@ var init_config = __esm(() => {
70699
70704
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
70700
70705
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
70701
70706
  computer: OmoComputerSettingsLayerSchema.optional(),
70702
- disabled_skills: OmoDisabledSkillsSchema.optional()
70707
+ disabled_skills: OmoDisabledSkillsSchema.optional(),
70708
+ exclude_models: OmoExcludedModelsSchema.optional()
70703
70709
  }).strict();
70704
70710
  OmoConfigProfileSchema = object({
70705
70711
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
@@ -70716,6 +70722,7 @@ var init_config = __esm(() => {
70716
70722
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
70717
70723
  computer: OmoComputerSettingsLayerSchema.optional(),
70718
70724
  disabled_skills: OmoDisabledSkillsSchema.optional(),
70725
+ exclude_models: OmoExcludedModelsSchema.optional(),
70719
70726
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
70720
70727
  "[native]": OmoTypedHarnessConfigSchema.optional(),
70721
70728
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
@@ -70738,6 +70745,7 @@ var init_config = __esm(() => {
70738
70745
  side_panel: OmoSidePanelSettingsSchema.optional(),
70739
70746
  computer: OmoComputerSettingsSchema.optional(),
70740
70747
  disabled_skills: OmoDisabledSkillsSchema.optional(),
70748
+ exclude_models: OmoExcludedModelsSchema.optional(),
70741
70749
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
70742
70750
  "[native]": OmoTypedHarnessConfigSchema.optional(),
70743
70751
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
@@ -70763,6 +70771,7 @@ var init_config = __esm(() => {
70763
70771
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
70764
70772
  computer: OmoComputerSettingsLayerSchema.optional(),
70765
70773
  disabled_skills: OmoDisabledSkillsSchema.optional(),
70774
+ exclude_models: OmoExcludedModelsSchema.optional(),
70766
70775
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
70767
70776
  "[native]": OmoTypedHarnessConfigSchema.optional(),
70768
70777
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
@@ -70965,7 +70974,51 @@ var init_diagnostic_lines = __esm(() => {
70965
70974
  });
70966
70975
 
70967
70976
  // packages/omo-config-core/src/loader/disabled-skills.ts
70968
- var init_disabled_skills = () => {};
70977
+ function toRecord(value) {
70978
+ if (value === null || typeof value !== "object" || Array.isArray(value))
70979
+ return;
70980
+ return value;
70981
+ }
70982
+ function namesAt(record, key) {
70983
+ const value = record?.[key];
70984
+ if (!Array.isArray(value))
70985
+ return [];
70986
+ return value.filter((entry) => typeof entry === "string" && entry.trim() !== "");
70987
+ }
70988
+ function harnessBlockKeys(harness) {
70989
+ const canonical = canonicalHarnessName(harness);
70990
+ const legacy = Object.entries(OMO_CONFIG_LEGACY_HARNESS_ALIASES).filter(([, target]) => target === canonical).map(([name]) => harnessBlockKey(name));
70991
+ return [harnessBlockKey(canonical), ...legacy];
70992
+ }
70993
+ function scopesOf(config, harness) {
70994
+ if (harness === undefined)
70995
+ return [config];
70996
+ return [config, ...harnessBlockKeys(harness).map((key) => toRecord(config[key]))];
70997
+ }
70998
+ function collectExcludedModels(options) {
70999
+ return collectUnionedList("exclude_models", options);
71000
+ }
71001
+ function collectUnionedList(key, options) {
71002
+ const names = new Set;
71003
+ for (const layer of options.layers) {
71004
+ const config = toRecord(layer.config);
71005
+ if (config === undefined)
71006
+ continue;
71007
+ const profile = options.profile === undefined ? undefined : toRecord(toRecord(config["profiles"])?.[options.profile]);
71008
+ const scopes = [
71009
+ ...scopesOf(config, options.harness),
71010
+ ...profile === undefined ? [] : scopesOf(profile, options.harness)
71011
+ ];
71012
+ for (const scope of scopes) {
71013
+ for (const name of namesAt(scope, key))
71014
+ names.add(name.trim());
71015
+ }
71016
+ }
71017
+ return [...names];
71018
+ }
71019
+ var init_disabled_skills = __esm(() => {
71020
+ init_schema();
71021
+ });
70969
71022
 
70970
71023
  // packages/omo-config-core/src/loader/merge.ts
70971
71024
  function isUnsafeObjectKey2(key) {
@@ -71201,7 +71254,7 @@ function stripUnrecognizedKeys(record, issues) {
71201
71254
  }
71202
71255
  return { issuePaths, stripped };
71203
71256
  }
71204
- function toRecord(value) {
71257
+ function toRecord2(value) {
71205
71258
  if (value === null || typeof value !== "object" || Array.isArray(value))
71206
71259
  return null;
71207
71260
  const record = {};
@@ -71212,7 +71265,7 @@ function toRecord(value) {
71212
71265
  }
71213
71266
  function validateConfigLayer(path, data) {
71214
71267
  const sanitized = sanitizeUnsafeKeys(data);
71215
- const record = toRecord(sanitized.value);
71268
+ const record = toRecord2(sanitized.value);
71216
71269
  const unsafeIssuePaths = sanitized.issues.flatMap((issue) => issue.keys.map((key) => [...issue.path, key].join(".")));
71217
71270
  const unsafeDiagnostics = unsafeIssuePaths.length === 0 ? [] : [{ kind: "unknown-keys", message: `Ignored unknown keys in ${path}: ${unsafeIssuePaths.join(", ")}`, path, issuePaths: unsafeIssuePaths }];
71218
71271
  const validation = OmoConfigLayerSchema.safeParse(sanitized.value);
@@ -71362,7 +71415,7 @@ function resolveOmoProfileName(options = {}) {
71362
71415
  const env = options.env ?? process.env;
71363
71416
  return profileName(options.profile) ?? profileName(env["OMO_PROFILE"]) ?? profileName(env["OCX_PROFILE"]) ?? profileNameFromOpenCodeConfigDir(env["OPENCODE_CONFIG_DIR"]);
71364
71417
  }
71365
- function toRecord2(value) {
71418
+ function toRecord3(value) {
71366
71419
  if (value === null || typeof value !== "object" || Array.isArray(value))
71367
71420
  return;
71368
71421
  return Object.fromEntries(Object.entries(value));
@@ -71383,13 +71436,13 @@ function harnessLayer(config, harness) {
71383
71436
  const legacyKeys = Object.entries(OMO_CONFIG_LEGACY_HARNESS_ALIASES).filter(([, target]) => target === canonical).map(([legacy]) => harnessBlockKey(legacy));
71384
71437
  let layer = {};
71385
71438
  for (const key of [...legacyKeys, harnessBlockKey(canonical)]) {
71386
- layer = mergeOmoConfigRecords(layer, toRecord2(config[key]) ?? {});
71439
+ layer = mergeOmoConfigRecords(layer, toRecord3(config[key]) ?? {});
71387
71440
  }
71388
71441
  return layer;
71389
71442
  }
71390
71443
  function resolveOmoConfigView(options) {
71391
- const profiles = toRecord2(options.config["profiles"]);
71392
- const profile = options.profile === undefined ? undefined : toRecord2(profiles?.[options.profile]);
71444
+ const profiles = toRecord3(options.config["profiles"]);
71445
+ const profile = options.profile === undefined ? undefined : toRecord3(profiles?.[options.profile]);
71393
71446
  const diagnostics = profile === undefined && options.profile !== undefined ? [{
71394
71447
  kind: "profile",
71395
71448
  message: `Activated omo profile "${options.profile}" does not exist; using the base configuration`,
@@ -71530,9 +71583,15 @@ function loadOmoConfig(options = {}) {
71530
71583
  });
71531
71584
  const finalInput = mergeOmoConfigRecords(DEFAULT_RAW_CONFIG, resolved.config);
71532
71585
  const finalConfig = OmoConfigSchema.safeParse(finalInput);
71586
+ const excludeModels = collectExcludedModels({
71587
+ layers,
71588
+ ...options.harness === undefined ? {} : { harness: options.harness },
71589
+ ...resolved.profile === undefined ? {} : { profile: resolved.profile }
71590
+ });
71591
+ const withExcludedModels = (config) => excludeModels.length === 0 ? config : { ...config, exclude_models: [...excludeModels] };
71533
71592
  if (finalConfig.success) {
71534
71593
  return {
71535
- config: stripResolutionControlKeys(finalConfig.data),
71594
+ config: withExcludedModels(stripResolutionControlKeys(finalConfig.data)),
71536
71595
  diagnostics: [...diagnostics, ...resolved.diagnostics],
71537
71596
  layers,
71538
71597
  ...resolved.profile === undefined ? {} : { profile: resolved.profile },
@@ -71545,7 +71604,7 @@ function loadOmoConfig(options = {}) {
71545
71604
  });
71546
71605
  if (pruned.ok) {
71547
71606
  return {
71548
- config: stripResolutionControlKeys(OmoConfigSchema.parse(pruned.config)),
71607
+ config: withExcludedModels(stripResolutionControlKeys(OmoConfigSchema.parse(pruned.config))),
71549
71608
  diagnostics: [...diagnostics, ...resolved.diagnostics, ...invalidValueDiagnostics(MERGED_OMO_CONFIG_PATH, pruned.dropped)],
71550
71609
  layers,
71551
71610
  ...resolved.profile === undefined ? {} : { profile: resolved.profile },
@@ -71564,6 +71623,7 @@ var DEFAULT_RAW_CONFIG;
71564
71623
  var init_loader2 = __esm(() => {
71565
71624
  init_main();
71566
71625
  init_schema();
71626
+ init_disabled_skills();
71567
71627
  init_layer_validation();
71568
71628
  init_merge();
71569
71629
  init_paths();
@@ -75036,7 +75096,7 @@ init_shared();
75036
75096
  // package.json
75037
75097
  var package_default = {
75038
75098
  name: "oh-my-opencode",
75039
- version: "5.1.41",
75099
+ version: "5.1.43",
75040
75100
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
75041
75101
  main: "./dist/index.js",
75042
75102
  types: "dist/index.d.ts",
@@ -75213,7 +75273,7 @@ var package_default = {
75213
75273
  },
75214
75274
  devDependencies: {
75215
75275
  "@clack/prompts": "^1.8.1",
75216
- "@code-yeongyu/senpi": "2026.10.21-1",
75276
+ "@code-yeongyu/senpi": "2026.10.21-2",
75217
75277
  "@modelcontextprotocol/sdk": "^1.30.0",
75218
75278
  "@oh-my-opencode/agents-md-core": "workspace:*",
75219
75279
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -75274,18 +75334,18 @@ var package_default = {
75274
75334
  typescript: "^7.0.2"
75275
75335
  },
75276
75336
  optionalDependencies: {
75277
- "oh-my-opencode-darwin-arm64": "5.1.41",
75278
- "oh-my-opencode-darwin-x64": "5.1.41",
75279
- "oh-my-opencode-darwin-x64-baseline": "5.1.41",
75280
- "oh-my-opencode-linux-arm64": "5.1.41",
75281
- "oh-my-opencode-linux-arm64-musl": "5.1.41",
75282
- "oh-my-opencode-linux-x64": "5.1.41",
75283
- "oh-my-opencode-linux-x64-baseline": "5.1.41",
75284
- "oh-my-opencode-linux-x64-musl": "5.1.41",
75285
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.41",
75286
- "oh-my-opencode-windows-arm64": "5.1.41",
75287
- "oh-my-opencode-windows-x64": "5.1.41",
75288
- "oh-my-opencode-windows-x64-baseline": "5.1.41"
75337
+ "oh-my-opencode-darwin-arm64": "5.1.43",
75338
+ "oh-my-opencode-darwin-x64": "5.1.43",
75339
+ "oh-my-opencode-darwin-x64-baseline": "5.1.43",
75340
+ "oh-my-opencode-linux-arm64": "5.1.43",
75341
+ "oh-my-opencode-linux-arm64-musl": "5.1.43",
75342
+ "oh-my-opencode-linux-x64": "5.1.43",
75343
+ "oh-my-opencode-linux-x64-baseline": "5.1.43",
75344
+ "oh-my-opencode-linux-x64-musl": "5.1.43",
75345
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.43",
75346
+ "oh-my-opencode-windows-arm64": "5.1.43",
75347
+ "oh-my-opencode-windows-x64": "5.1.43",
75348
+ "oh-my-opencode-windows-x64-baseline": "5.1.43"
75289
75349
  },
75290
75350
  overrides: {
75291
75351
  hono: "^4.13.8",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "5.1.41",
3
+ "version": "5.1.43",
4
4
  "description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
5
5
  "main": "./dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -177,7 +177,7 @@
177
177
  },
178
178
  "devDependencies": {
179
179
  "@clack/prompts": "^1.8.1",
180
- "@code-yeongyu/senpi": "2026.10.21-1",
180
+ "@code-yeongyu/senpi": "2026.10.21-2",
181
181
  "@modelcontextprotocol/sdk": "^1.30.0",
182
182
  "@oh-my-opencode/agents-md-core": "workspace:*",
183
183
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -238,18 +238,18 @@
238
238
  "typescript": "^7.0.2"
239
239
  },
240
240
  "optionalDependencies": {
241
- "oh-my-opencode-darwin-arm64": "5.1.41",
242
- "oh-my-opencode-darwin-x64": "5.1.41",
243
- "oh-my-opencode-darwin-x64-baseline": "5.1.41",
244
- "oh-my-opencode-linux-arm64": "5.1.41",
245
- "oh-my-opencode-linux-arm64-musl": "5.1.41",
246
- "oh-my-opencode-linux-x64": "5.1.41",
247
- "oh-my-opencode-linux-x64-baseline": "5.1.41",
248
- "oh-my-opencode-linux-x64-musl": "5.1.41",
249
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.41",
250
- "oh-my-opencode-windows-arm64": "5.1.41",
251
- "oh-my-opencode-windows-x64": "5.1.41",
252
- "oh-my-opencode-windows-x64-baseline": "5.1.41"
241
+ "oh-my-opencode-darwin-arm64": "5.1.43",
242
+ "oh-my-opencode-darwin-x64": "5.1.43",
243
+ "oh-my-opencode-darwin-x64-baseline": "5.1.43",
244
+ "oh-my-opencode-linux-arm64": "5.1.43",
245
+ "oh-my-opencode-linux-arm64-musl": "5.1.43",
246
+ "oh-my-opencode-linux-x64": "5.1.43",
247
+ "oh-my-opencode-linux-x64-baseline": "5.1.43",
248
+ "oh-my-opencode-linux-x64-musl": "5.1.43",
249
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.43",
250
+ "oh-my-opencode-windows-arm64": "5.1.43",
251
+ "oh-my-opencode-windows-x64": "5.1.43",
252
+ "oh-my-opencode-windows-x64-baseline": "5.1.43"
253
253
  },
254
254
  "overrides": {
255
255
  "hono": "^4.13.8",