oh-my-opencode 5.1.59 → 5.1.61

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 (57) hide show
  1. package/dist/cli/index.js +70 -48
  2. package/dist/cli-node/index.js +70 -48
  3. package/dist/index.js +1603 -1436
  4. package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
  5. package/dist/tui.js +64 -43
  6. package/package.json +14 -14
  7. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  8. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +13 -0
  9. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  10. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  11. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  12. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  13. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  14. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  15. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  16. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  17. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  18. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  19. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  20. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  21. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  22. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  23. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  27. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  29. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  30. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  31. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  32. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  33. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  34. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  35. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  36. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  37. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  38. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  39. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  40. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  53. package/packages/omo-codex/plugin/package-lock.json +12 -12
  54. package/packages/omo-codex/plugin/package.json +1 -1
  55. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  56. package/packages/omo-codex/scripts/install-dist/install-local.mjs +15 -2
  57. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
@@ -5,5 +5,5 @@
5
5
  "index.js": "3a2e4f2575bdfc15448f13768cd8113f8493bf04611c9fefb09b13430d6520de",
6
6
  "page-bundle.js": "bfd51e8383cf47200d57387bbbed258bce5a3a3d00c38fc108034d2888e23f0c"
7
7
  },
8
- "stagedAtUtc": "2026-11-03T09:02:51.904Z"
8
+ "stagedAtUtc": "2026-11-05T18:56:58.533Z"
9
9
  }
package/dist/tui.js CHANGED
@@ -2295,7 +2295,7 @@ function createLogger(options) {
2295
2295
  function scheduleFlush() {
2296
2296
  if (flushTimer)
2297
2297
  return;
2298
- flushTimer = setTimeout(() => {
2298
+ flushTimer = scheduleTimeout(() => {
2299
2299
  flushTimer = null;
2300
2300
  flush();
2301
2301
  }, flushIntervalMs);
@@ -2322,7 +2322,7 @@ function createLogger(options) {
2322
2322
  function _setLoggerForTesting(overrides) {
2323
2323
  buffer = [];
2324
2324
  if (flushTimer) {
2325
- clearTimeout(flushTimer);
2325
+ cancelTimeout(flushTimer);
2326
2326
  flushTimer = null;
2327
2327
  }
2328
2328
  if (overrides.filePath !== undefined)
@@ -2338,13 +2338,13 @@ function createLogger(options) {
2338
2338
  maxLogFileBackups = maxLogFileBackupsDefault;
2339
2339
  buffer = [];
2340
2340
  if (flushTimer) {
2341
- clearTimeout(flushTimer);
2341
+ cancelTimeout(flushTimer);
2342
2342
  flushTimer = null;
2343
2343
  }
2344
2344
  }
2345
2345
  function _flushForTesting() {
2346
2346
  if (flushTimer) {
2347
- clearTimeout(flushTimer);
2347
+ cancelTimeout(flushTimer);
2348
2348
  flushTimer = null;
2349
2349
  }
2350
2350
  flush();
@@ -2357,8 +2357,10 @@ function createLogger(options) {
2357
2357
  _flushForTesting
2358
2358
  };
2359
2359
  }
2360
- var DEFAULT_MAX_LOG_FILE_SIZE_BYTES, DEFAULT_MAX_LOG_FILE_BACKUPS = 2, DEFAULT_LOG_FLUSH_INTERVAL_MS = 500, DEFAULT_LOG_BUFFER_SIZE_LIMIT = 50;
2360
+ var scheduleTimeout, cancelTimeout, DEFAULT_MAX_LOG_FILE_SIZE_BYTES, DEFAULT_MAX_LOG_FILE_BACKUPS = 2, DEFAULT_LOG_FLUSH_INTERVAL_MS = 500, DEFAULT_LOG_BUFFER_SIZE_LIMIT = 50;
2361
2361
  var init_logger = __esm(() => {
2362
+ scheduleTimeout = globalThis.setTimeout;
2363
+ cancelTimeout = globalThis.clearTimeout;
2362
2364
  DEFAULT_MAX_LOG_FILE_SIZE_BYTES = 50 * 1024 * 1024;
2363
2365
  });
2364
2366
 
@@ -3461,7 +3463,7 @@ var init_agent_model_requirements = __esm(() => {
3461
3463
  {
3462
3464
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3463
3465
  model: "gpt-5.6-sol",
3464
- variant: "high"
3466
+ variant: "medium"
3465
3467
  },
3466
3468
  { providers: ["zai-coding-plan", "opencode", "bailian-coding-plan"], model: "glm-5.2" },
3467
3469
  { providers: ["opencode"], model: "big-pickle" }
@@ -3473,12 +3475,12 @@ var init_agent_model_requirements = __esm(() => {
3473
3475
  {
3474
3476
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3475
3477
  model: "gpt-6-sol",
3476
- variant: "high"
3478
+ variant: "medium"
3477
3479
  },
3478
3480
  {
3479
3481
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3480
3482
  model: "gpt-5.6-sol",
3481
- variant: "high"
3483
+ variant: "medium"
3482
3484
  }
3483
3485
  ],
3484
3486
  requiresProvider: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
@@ -3486,7 +3488,7 @@ var init_agent_model_requirements = __esm(() => {
3486
3488
  },
3487
3489
  oracle: {
3488
3490
  fallbackChain: [
3489
- { providers: ["openai", "chatgpt-subscription", "opencode"], model: "gpt-5.6-sol", variant: "high" },
3491
+ { providers: ["openai", "chatgpt-subscription", "opencode"], model: "gpt-5.6-sol", variant: "xhigh" },
3490
3492
  { providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "high" },
3491
3493
  {
3492
3494
  providers: ["google", "google-vertex", "opencode"],
@@ -3510,7 +3512,7 @@ var init_agent_model_requirements = __esm(() => {
3510
3512
  fallbackChain: [
3511
3513
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
3512
3514
  { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptLunaFast, variant: "low" },
3513
- { providers: ["anthropic", "github-copilot"], model: LATEST_MODEL_BY_FAMILY.claudeHaiku, variant: "high" },
3515
+ { providers: ["anthropic", "github-copilot"], model: LATEST_MODEL_BY_FAMILY.claudeHaiku, variant: "medium" },
3514
3516
  { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
3515
3517
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
3516
3518
  { providers: ["opencode-go"], model: "minimax-m2.7" }
@@ -3520,7 +3522,7 @@ var init_agent_model_requirements = __esm(() => {
3520
3522
  fallbackChain: [
3521
3523
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
3522
3524
  { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptLunaFast, variant: "low" },
3523
- { providers: ["anthropic", "github-copilot"], model: LATEST_MODEL_BY_FAMILY.claudeHaiku, variant: "high" },
3525
+ { providers: ["anthropic", "github-copilot"], model: LATEST_MODEL_BY_FAMILY.claudeHaiku, variant: "medium" },
3524
3526
  { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
3525
3527
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
3526
3528
  { providers: ["opencode-go"], model: "minimax-m2.7" }
@@ -3539,12 +3541,12 @@ var init_agent_model_requirements = __esm(() => {
3539
3541
  {
3540
3542
  providers: ["anthropic", "github-copilot", "opencode"],
3541
3543
  model: FABLE_55_LAUNCH.id,
3542
- variant: "high"
3544
+ variant: "xhigh"
3543
3545
  },
3544
3546
  {
3545
3547
  providers: ["anthropic", "github-copilot", "opencode"],
3546
3548
  model: LATEST_MODEL_BY_FAMILY.claudeFable,
3547
- variant: "high"
3549
+ variant: "xhigh"
3548
3550
  },
3549
3551
  {
3550
3552
  providers: ["anthropic", "github-copilot", "opencode"],
@@ -3586,7 +3588,7 @@ var init_agent_model_requirements = __esm(() => {
3586
3588
  },
3587
3589
  momus: {
3588
3590
  fallbackChain: [
3589
- { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptAstra, variant: "high" },
3591
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptAstra, variant: "xhigh" },
3590
3592
  { providers: ["github-copilot"], model: LATEST_MODEL_BY_FAMILY.gptAstra, variant: "high" },
3591
3593
  { providers: ["openai", "chatgpt-subscription", "opencode"], model: LATEST_MODEL_BY_FAMILY.gptAstra, variant: "high" },
3592
3594
  {
@@ -3614,7 +3616,7 @@ var init_agent_model_requirements = __esm(() => {
3614
3616
  {
3615
3617
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3616
3618
  model: "gpt-5.6-sol",
3617
- variant: "high"
3619
+ variant: "medium"
3618
3620
  },
3619
3621
  { providers: ["opencode-go"], model: "minimax-m3" },
3620
3622
  { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
@@ -3628,7 +3630,7 @@ var init_agent_model_requirements = __esm(() => {
3628
3630
  {
3629
3631
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3630
3632
  model: "gpt-5.6-sol",
3631
- variant: "high"
3633
+ variant: "medium"
3632
3634
  },
3633
3635
  { providers: ["opencode-go"], model: "minimax-m3" },
3634
3636
  { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
@@ -3683,14 +3685,14 @@ var init_category_model_requirements = __esm(() => {
3683
3685
  },
3684
3686
  "deep-low": {
3685
3687
  fallbackChain: [
3686
- { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptSol, variant: "high" },
3687
- { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptSolFast, variant: "high" },
3688
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptSol, variant: "medium" },
3689
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptSolFast, variant: "medium" },
3688
3690
  {
3689
3691
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3690
3692
  model: "gpt-5.6-sol",
3691
- variant: "high"
3693
+ variant: "medium"
3692
3694
  },
3693
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-5.6-sol-fast", variant: "high" }
3695
+ { providers: ["openai", "chatgpt-subscription"], model: "gpt-5.6-sol-fast", variant: "medium" }
3694
3696
  ]
3695
3697
  },
3696
3698
  "deep-high": {
@@ -3733,7 +3735,7 @@ var init_category_model_requirements = __esm(() => {
3733
3735
  {
3734
3736
  providers: ["anthropic", "anthropic-api", "github-copilot"],
3735
3737
  model: LATEST_MODEL_BY_FAMILY.claudeHaiku,
3736
- variant: "high"
3738
+ variant: "medium"
3737
3739
  },
3738
3740
  { providers: ["deepseek"], model: "deepseek-flash", variant: "off" },
3739
3741
  {
@@ -3753,16 +3755,16 @@ var init_category_model_requirements = __esm(() => {
3753
3755
  {
3754
3756
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3755
3757
  model: LATEST_MODEL_BY_FAMILY.claudeSonnet,
3756
- variant: "high"
3758
+ variant: "medium"
3757
3759
  },
3758
3760
  { providers: ["xiaomi", "opencode-go"], model: "mimo-v2.6-pro", variant: "max" },
3759
- { providers: ["xai", "github-copilot", "opencode-go"], model: "grok-4.7", variant: "high" },
3761
+ { providers: ["xai", "github-copilot", "opencode-go"], model: "grok-4.7", variant: "xhigh" },
3760
3762
  { providers: ["zai-coding-plan", "opencode-go"], model: LATEST_MODEL_BY_FAMILY.glm, variant: "high" },
3761
- { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptSol, variant: "high" },
3763
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptSol, variant: "medium" },
3762
3764
  {
3763
3765
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3764
3766
  model: "gpt-5.6-sol",
3765
- variant: "high"
3767
+ variant: "medium"
3766
3768
  },
3767
3769
  {
3768
3770
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
@@ -3783,7 +3785,7 @@ var init_category_model_requirements = __esm(() => {
3783
3785
  {
3784
3786
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3785
3787
  model: LATEST_MODEL_BY_FAMILY.claudeOpus,
3786
- variant: "high"
3788
+ variant: "medium"
3787
3789
  },
3788
3790
  { providers: ["zai-coding-plan", "opencode-go"], model: LATEST_MODEL_BY_FAMILY.glm, variant: "max" },
3789
3791
  {
@@ -5549,7 +5551,7 @@ var init_openai_categories = __esm(() => {
5549
5551
  },
5550
5552
  {
5551
5553
  name: "deep-low",
5552
- config: { model: `openai/${LATEST_MODEL_BY_FAMILY.gptSol}`, variant: "high" },
5554
+ config: { model: `openai/${LATEST_MODEL_BY_FAMILY.gptSol}`, variant: "medium" },
5553
5555
  description: "Default deep lane: one goal, one deliverable, decisions the child can settle from what it reads; preferred over deep-high for 3D graphics, computer/browser use, CAPTCHA, multimodal, backend, logic, and algorithm work. Multiple goals fan out as parallel calls.",
5554
5556
  callerGuidance: DEEP_LOW_CATEGORY_CALLER_GUIDANCE,
5555
5557
  promptAppend: DEEP_LOW_CATEGORY_PROMPT_APPEND,
@@ -5574,14 +5576,14 @@ var init_openai_categories = __esm(() => {
5574
5576
  },
5575
5577
  {
5576
5578
  name: "unspecified-low",
5577
- config: { model: `anthropic/${LATEST_MODEL_BY_FAMILY.claudeSonnet}`, variant: "high" },
5579
+ config: { model: `anthropic/${LATEST_MODEL_BY_FAMILY.claudeSonnet}`, variant: "medium" },
5578
5580
  description: "Tasks that don't fit other categories, low effort required",
5579
5581
  callerGuidance: UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE,
5580
5582
  promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
5581
5583
  },
5582
5584
  {
5583
5585
  name: "unspecified-high",
5584
- config: { model: `anthropic/${LATEST_MODEL_BY_FAMILY.claudeOpus}`, variant: "high" },
5586
+ config: { model: `anthropic/${LATEST_MODEL_BY_FAMILY.claudeOpus}`, variant: "medium" },
5585
5587
  description: "Tasks that don't fit other categories, high effort required",
5586
5588
  callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
5587
5589
  promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND,
@@ -70891,6 +70893,19 @@ var init_telemetry = __esm(() => {
70891
70893
  }).strict();
70892
70894
  });
70893
70895
 
70896
+ // packages/omo-config-core/src/schema/device-service.ts
70897
+ var OmoDeviceServiceSettingsShape, OmoDeviceServiceSettingsLayerSchema, OmoDeviceServiceSettingsSchema;
70898
+ var init_device_service = __esm(() => {
70899
+ init_zod();
70900
+ OmoDeviceServiceSettingsShape = {
70901
+ enabled: boolean2()
70902
+ };
70903
+ OmoDeviceServiceSettingsLayerSchema = object(OmoDeviceServiceSettingsShape).partial().strict();
70904
+ OmoDeviceServiceSettingsSchema = OmoDeviceServiceSettingsLayerSchema.extend({
70905
+ enabled: boolean2().default(true)
70906
+ }).strict();
70907
+ });
70908
+
70894
70909
  // packages/omo-config-core/src/schema/format-on-mutation.ts
70895
70910
  var mode, languages, OmoFormatOnMutationLayerSchema, OmoFormatOnMutationSchema;
70896
70911
  var init_format_on_mutation = __esm(() => {
@@ -70939,6 +70954,7 @@ var init_config = __esm(() => {
70939
70954
  init_task();
70940
70955
  init_team();
70941
70956
  init_telemetry();
70957
+ init_device_service();
70942
70958
  init_format_on_mutation();
70943
70959
  init_provenance();
70944
70960
  OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
@@ -70958,6 +70974,7 @@ var init_config = __esm(() => {
70958
70974
  model_pad: OmoModelPadSchema.optional(),
70959
70975
  memory: OmoMemorySettingsLayerSchema.optional(),
70960
70976
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
70977
+ device_service: OmoDeviceServiceSettingsLayerSchema.optional(),
70961
70978
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
70962
70979
  computer: OmoComputerSettingsLayerSchema.optional(),
70963
70980
  disabled_skills: OmoDisabledSkillsSchema.optional(),
@@ -70977,6 +70994,7 @@ var init_config = __esm(() => {
70977
70994
  model_pad: OmoModelPadSchema.optional(),
70978
70995
  memory: OmoMemorySettingsLayerSchema.optional(),
70979
70996
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
70997
+ device_service: OmoDeviceServiceSettingsLayerSchema.optional(),
70980
70998
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
70981
70999
  computer: OmoComputerSettingsLayerSchema.optional(),
70982
71000
  disabled_skills: OmoDisabledSkillsSchema.optional(),
@@ -71001,6 +71019,7 @@ var init_config = __esm(() => {
71001
71019
  model_pad: OmoModelPadSchema.optional(),
71002
71020
  memory: OmoMemorySettingsSchema.optional(),
71003
71021
  telemetry: OmoTelemetrySettingsSchema.optional(),
71022
+ device_service: OmoDeviceServiceSettingsSchema.optional(),
71004
71023
  side_panel: OmoSidePanelSettingsSchema.optional(),
71005
71024
  computer: OmoComputerSettingsSchema.optional(),
71006
71025
  disabled_skills: OmoDisabledSkillsSchema.optional(),
@@ -71028,6 +71047,7 @@ var init_config = __esm(() => {
71028
71047
  model_pad: OmoModelPadSchema.optional(),
71029
71048
  memory: OmoMemorySettingsLayerSchema.optional(),
71030
71049
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
71050
+ device_service: OmoDeviceServiceSettingsLayerSchema.optional(),
71031
71051
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
71032
71052
  computer: OmoComputerSettingsLayerSchema.optional(),
71033
71053
  disabled_skills: OmoDisabledSkillsSchema.optional(),
@@ -71173,6 +71193,7 @@ var init_schema = __esm(() => {
71173
71193
  init_task();
71174
71194
  init_team();
71175
71195
  init_telemetry();
71196
+ init_device_service();
71176
71197
  init_computer();
71177
71198
  });
71178
71199
 
@@ -75719,7 +75740,7 @@ init_shared();
75719
75740
  // package.json
75720
75741
  var package_default = {
75721
75742
  name: "oh-my-opencode",
75722
- version: "5.1.59",
75743
+ version: "5.1.61",
75723
75744
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
75724
75745
  main: "./dist/index.js",
75725
75746
  types: "dist/index.d.ts",
@@ -75906,7 +75927,7 @@ var package_default = {
75906
75927
  },
75907
75928
  devDependencies: {
75908
75929
  "@clack/prompts": "^1.8.1",
75909
- "@code-yeongyu/senpi": "2026.11.2-3",
75930
+ "@code-yeongyu/senpi": "2026.11.3-3",
75910
75931
  "@modelcontextprotocol/sdk": "^1.30.0",
75911
75932
  "@oh-my-opencode/agents-md-core": "workspace:*",
75912
75933
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -75971,18 +75992,18 @@ var package_default = {
75971
75992
  typescript: "^7.0.2"
75972
75993
  },
75973
75994
  optionalDependencies: {
75974
- "oh-my-opencode-darwin-arm64": "5.1.59",
75975
- "oh-my-opencode-darwin-x64": "5.1.59",
75976
- "oh-my-opencode-darwin-x64-baseline": "5.1.59",
75977
- "oh-my-opencode-linux-arm64": "5.1.59",
75978
- "oh-my-opencode-linux-arm64-musl": "5.1.59",
75979
- "oh-my-opencode-linux-x64": "5.1.59",
75980
- "oh-my-opencode-linux-x64-baseline": "5.1.59",
75981
- "oh-my-opencode-linux-x64-musl": "5.1.59",
75982
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.59",
75983
- "oh-my-opencode-windows-arm64": "5.1.59",
75984
- "oh-my-opencode-windows-x64": "5.1.59",
75985
- "oh-my-opencode-windows-x64-baseline": "5.1.59"
75995
+ "oh-my-opencode-darwin-arm64": "5.1.61",
75996
+ "oh-my-opencode-darwin-x64": "5.1.61",
75997
+ "oh-my-opencode-darwin-x64-baseline": "5.1.61",
75998
+ "oh-my-opencode-linux-arm64": "5.1.61",
75999
+ "oh-my-opencode-linux-arm64-musl": "5.1.61",
76000
+ "oh-my-opencode-linux-x64": "5.1.61",
76001
+ "oh-my-opencode-linux-x64-baseline": "5.1.61",
76002
+ "oh-my-opencode-linux-x64-musl": "5.1.61",
76003
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.61",
76004
+ "oh-my-opencode-windows-arm64": "5.1.61",
76005
+ "oh-my-opencode-windows-x64": "5.1.61",
76006
+ "oh-my-opencode-windows-x64-baseline": "5.1.61"
75986
76007
  },
75987
76008
  overrides: {
75988
76009
  hono: "^4.13.8",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "5.1.59",
3
+ "version": "5.1.61",
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",
@@ -187,7 +187,7 @@
187
187
  },
188
188
  "devDependencies": {
189
189
  "@clack/prompts": "^1.8.1",
190
- "@code-yeongyu/senpi": "2026.11.2-3",
190
+ "@code-yeongyu/senpi": "2026.11.3-3",
191
191
  "@modelcontextprotocol/sdk": "^1.30.0",
192
192
  "@oh-my-opencode/agents-md-core": "workspace:*",
193
193
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -252,18 +252,18 @@
252
252
  "typescript": "^7.0.2"
253
253
  },
254
254
  "optionalDependencies": {
255
- "oh-my-opencode-darwin-arm64": "5.1.59",
256
- "oh-my-opencode-darwin-x64": "5.1.59",
257
- "oh-my-opencode-darwin-x64-baseline": "5.1.59",
258
- "oh-my-opencode-linux-arm64": "5.1.59",
259
- "oh-my-opencode-linux-arm64-musl": "5.1.59",
260
- "oh-my-opencode-linux-x64": "5.1.59",
261
- "oh-my-opencode-linux-x64-baseline": "5.1.59",
262
- "oh-my-opencode-linux-x64-musl": "5.1.59",
263
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.59",
264
- "oh-my-opencode-windows-arm64": "5.1.59",
265
- "oh-my-opencode-windows-x64": "5.1.59",
266
- "oh-my-opencode-windows-x64-baseline": "5.1.59"
255
+ "oh-my-opencode-darwin-arm64": "5.1.61",
256
+ "oh-my-opencode-darwin-x64": "5.1.61",
257
+ "oh-my-opencode-darwin-x64-baseline": "5.1.61",
258
+ "oh-my-opencode-linux-arm64": "5.1.61",
259
+ "oh-my-opencode-linux-arm64-musl": "5.1.61",
260
+ "oh-my-opencode-linux-x64": "5.1.61",
261
+ "oh-my-opencode-linux-x64-baseline": "5.1.61",
262
+ "oh-my-opencode-linux-x64-musl": "5.1.61",
263
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.61",
264
+ "oh-my-opencode-windows-arm64": "5.1.61",
265
+ "oh-my-opencode-windows-x64": "5.1.61",
266
+ "oh-my-opencode-windows-x64-baseline": "5.1.61"
267
267
  },
268
268
  "overrides": {
269
269
  "hono": "^4.13.8",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.1.59",
3
+ "version": "5.1.61",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -7655,6 +7655,15 @@ var OmoTelemetrySettingsSchema = OmoTelemetrySettingsLayerSchema.extend({
7655
7655
  enabled: boolean2().default(true)
7656
7656
  }).strict();
7657
7657
 
7658
+ // ../../omo-config-core/src/schema/device-service.ts
7659
+ var OmoDeviceServiceSettingsShape = {
7660
+ enabled: boolean2()
7661
+ };
7662
+ var OmoDeviceServiceSettingsLayerSchema = object(OmoDeviceServiceSettingsShape).partial().strict();
7663
+ var OmoDeviceServiceSettingsSchema = OmoDeviceServiceSettingsLayerSchema.extend({
7664
+ enabled: boolean2().default(true)
7665
+ }).strict();
7666
+
7658
7667
  // ../../omo-config-core/src/schema/format-on-mutation.ts
7659
7668
  var mode = _enum(["off", "best-effort", "required"]);
7660
7669
  var languages = record(string2(), boolean2()).optional();
@@ -7697,6 +7706,7 @@ var OmoTypedHarnessConfigSchema = object({
7697
7706
  model_pad: OmoModelPadSchema.optional(),
7698
7707
  memory: OmoMemorySettingsLayerSchema.optional(),
7699
7708
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
7709
+ device_service: OmoDeviceServiceSettingsLayerSchema.optional(),
7700
7710
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
7701
7711
  computer: OmoComputerSettingsLayerSchema.optional(),
7702
7712
  disabled_skills: OmoDisabledSkillsSchema.optional(),
@@ -7716,6 +7726,7 @@ var OmoConfigProfileSchema = object({
7716
7726
  model_pad: OmoModelPadSchema.optional(),
7717
7727
  memory: OmoMemorySettingsLayerSchema.optional(),
7718
7728
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
7729
+ device_service: OmoDeviceServiceSettingsLayerSchema.optional(),
7719
7730
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
7720
7731
  computer: OmoComputerSettingsLayerSchema.optional(),
7721
7732
  disabled_skills: OmoDisabledSkillsSchema.optional(),
@@ -7740,6 +7751,7 @@ var OmoConfigSchema = object({
7740
7751
  model_pad: OmoModelPadSchema.optional(),
7741
7752
  memory: OmoMemorySettingsSchema.optional(),
7742
7753
  telemetry: OmoTelemetrySettingsSchema.optional(),
7754
+ device_service: OmoDeviceServiceSettingsSchema.optional(),
7743
7755
  side_panel: OmoSidePanelSettingsSchema.optional(),
7744
7756
  computer: OmoComputerSettingsSchema.optional(),
7745
7757
  disabled_skills: OmoDisabledSkillsSchema.optional(),
@@ -7767,6 +7779,7 @@ var OmoConfigLayerSchema = object({
7767
7779
  model_pad: OmoModelPadSchema.optional(),
7768
7780
  memory: OmoMemorySettingsLayerSchema.optional(),
7769
7781
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
7782
+ device_service: OmoDeviceServiceSettingsLayerSchema.optional(),
7770
7783
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
7771
7784
  computer: OmoComputerSettingsLayerSchema.optional(),
7772
7785
  disabled_skills: OmoDisabledSkillsSchema.optional(),
@@ -8,7 +8,7 @@
8
8
  "command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
9
9
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.1.59) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.1.61) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "5.1.59",
3
+ "version": "5.1.61",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.1.59) Checking Comments"
11
+ "statusMessage": "(OmO 5.1.61) Checking Comments"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-comment-checker",
3
- "version": "5.1.59",
3
+ "version": "5.1.61",
4
4
  "description": "Codex plugin that runs comment-checker after edit-like PostToolUse hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
10
10
  "timeout": 5,
11
- "statusMessage": "(OmO 5.1.59) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.1.61) Recommending Git Bash MCP"
12
12
  }
13
13
  ]
14
14
  }
@@ -20,7 +20,7 @@
20
20
  "type": "command",
21
21
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.1.59) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.1.61) Resetting Git Bash MCP Reminder"
24
24
  }
25
25
  ]
26
26
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-git-bash-hook",
3
- "version": "5.1.59",
3
+ "version": "5.1.61",
4
4
  "description": "Codex hook component that reminds Windows sessions to prefer the OMO git_bash MCP.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.1.59) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.61) Verifying LazyCodex Executor Evidence"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lazycodex-executor-verify",
3
- "version": "5.1.59",
3
+ "version": "5.1.61",
4
4
  "description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "5.1.59",
4
- "inputDigest": "sha256:b322cc009bf7f3305f80084864e23ad487dedc7434ad1710989a192b7b96b5bf",
3
+ "version": "5.1.61",
4
+ "inputDigest": "sha256:ce96c61ce069cbd3ce8e6a5675d4198dac742909bd8f3b91b2b9713ee68411a6",
5
5
  "outputs": [
6
6
  {
7
7
  "path": "cli.d.ts",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 60,
11
- "statusMessage": "(OmO 5.1.59) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.61) Checking LSP Diagnostics"
12
12
  }
13
13
  ]
14
14
  }
@@ -21,7 +21,7 @@
21
21
  "type": "command",
22
22
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
23
23
  "timeout": 5,
24
- "statusMessage": "(OmO 5.1.59) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.61) Resetting LSP Diagnostics Cache"
25
25
  }
26
26
  ]
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lsp",
3
- "version": "5.1.59",
3
+ "version": "5.1.61",
4
4
  "description": "Codex plugin that exposes Language Server Protocol tools and post-edit diagnostics.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.59) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.1.61) Loading Project Rules"
11
11
  }
12
12
  ]
13
13
  }
@@ -19,7 +19,7 @@
19
19
  "type": "command",
20
20
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
21
21
  "timeout": 10,
22
- "statusMessage": "(OmO 5.1.59) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.1.61) Loading Project Rules"
23
23
  }
24
24
  ]
25
25
  }
@@ -32,7 +32,7 @@
32
32
  "type": "command",
33
33
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
34
34
  "timeout": 10,
35
- "statusMessage": "(OmO 5.1.59) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.1.61) Matching Project Rules"
36
36
  }
37
37
  ]
38
38
  }
@@ -45,7 +45,7 @@
45
45
  "type": "command",
46
46
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
47
47
  "timeout": 10,
48
- "statusMessage": "(OmO 5.1.59) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.1.61) Resetting Project Rule Cache"
49
49
  }
50
50
  ]
51
51
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-rules",
3
- "version": "5.1.59",
3
+ "version": "5.1.61",
4
4
  "description": "Codex plugin that injects project rule files into model context through lifecycle hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.1.59) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.1.61) Checking Thread Title Hygiene"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-teammode",
3
- "version": "5.1.59",
3
+ "version": "5.1.61",
4
4
  "description": "Codex team-mode hook component that keeps background thread titles descriptive after create_thread.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.59) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.1.61) Recording Session Telemetry"
11
11
  }
12
12
  ]
13
13
  }