oh-my-opencode 5.0.0-beta.23 → 5.0.0-beta.25

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 (142) hide show
  1. package/dist/cli/index.js +141 -184
  2. package/dist/cli-node/index.js +141 -184
  3. package/dist/index.js +1508 -1567
  4. package/dist/skills/debugging/SKILL.md +0 -2
  5. package/dist/skills/debugging/references/methodology/00-setup.md +0 -12
  6. package/dist/skills/debugging/references/methodology/02-investigate.md +0 -21
  7. package/dist/skills/debugging/references/runtimes/go.md +1 -15
  8. package/dist/skills/debugging/references/runtimes/native-binary.md +0 -38
  9. package/dist/skills/debugging/references/runtimes/node.md +0 -25
  10. package/dist/skills/debugging/references/runtimes/python.md +0 -13
  11. package/dist/skills/debugging/references/runtimes/rust.md +0 -41
  12. package/dist/tools/delegate-task/types.d.ts +0 -3
  13. package/dist/tui.js +0 -25
  14. package/package.json +15 -18
  15. package/packages/lsp-core/src/index.ts +0 -1
  16. package/packages/lsp-core/src/lsp/client-wrapper.ts +5 -25
  17. package/packages/lsp-core/src/lsp/client.ts +0 -26
  18. package/packages/lsp-core/src/lsp/connection.ts +0 -16
  19. package/packages/lsp-core/src/lsp/constants.ts +0 -1
  20. package/packages/lsp-core/src/lsp/manager.ts +1 -34
  21. package/packages/lsp-core/src/lsp/server-definitions.ts +0 -29
  22. package/packages/lsp-core/src/lsp/server-installation.ts +27 -200
  23. package/packages/lsp-core/src/lsp/server-resolution.ts +5 -18
  24. package/packages/lsp-core/src/lsp/transport.ts +0 -9
  25. package/packages/lsp-core/src/lsp/types.ts +0 -8
  26. package/packages/lsp-core/src/tool-surface.test.ts +1 -13
  27. package/packages/lsp-core/src/tools/definitions.ts +0 -14
  28. package/packages/lsp-core/src/tools/index.ts +0 -1
  29. package/packages/lsp-core/src/tools/types.ts +0 -10
  30. package/packages/lsp-daemon/dist/cli.js +144 -432
  31. package/packages/lsp-daemon/dist/client.d.ts +0 -10
  32. package/packages/lsp-daemon/dist/client.js +107 -401
  33. package/packages/lsp-daemon/dist/daemon-client.d.ts +0 -1
  34. package/packages/lsp-daemon/dist/daemon-client.js +0 -3
  35. package/packages/lsp-daemon/dist/index.js +107 -395
  36. package/packages/lsp-tools-mcp/dist/cli.js +99 -384
  37. package/packages/lsp-tools-mcp/dist/lsp/manager.js +0 -53
  38. package/packages/lsp-tools-mcp/dist/mcp.js +99 -384
  39. package/packages/lsp-tools-mcp/dist/tools.js +99 -385
  40. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  41. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +2 -2
  42. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  43. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  44. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +35 -69
  45. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +2 -21
  46. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  47. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  48. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  49. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  50. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  51. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  52. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  53. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  54. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +121 -404
  55. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  56. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  57. package/packages/omo-codex/plugin/components/rules/dist/cli.js +3 -3
  58. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  59. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  60. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +3 -3
  61. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +4 -4
  62. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  63. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  64. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +15 -30
  65. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +15 -30
  66. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  67. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  68. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  69. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  70. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +2 -2
  71. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  72. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  73. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  74. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  75. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  76. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  77. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  78. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  79. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  80. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  81. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  82. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  84. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  85. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  86. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  87. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  88. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  89. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  90. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  91. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  92. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +1 -1
  93. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  94. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  95. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  96. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  97. package/packages/omo-codex/plugin/model-catalog.json +3 -3
  98. package/packages/omo-codex/plugin/package-lock.json +13 -13
  99. package/packages/omo-codex/plugin/package.json +1 -1
  100. package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +3 -3
  101. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +0 -2
  102. package/packages/omo-codex/plugin/skills/debugging/references/methodology/00-setup.md +0 -12
  103. package/packages/omo-codex/plugin/skills/debugging/references/methodology/02-investigate.md +0 -21
  104. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/go.md +1 -15
  105. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/native-binary.md +0 -38
  106. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/node.md +0 -25
  107. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/python.md +0 -13
  108. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/rust.md +0 -41
  109. package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +1 -1
  110. package/packages/omo-codex/plugin/test/auto-update.test.mjs +2 -2
  111. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +8 -8
  112. package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +2 -2
  113. package/packages/omo-codex/scripts/install-dist/install-local.mjs +23 -38
  114. package/packages/shared-skills/skills/debugging/SKILL.md +0 -2
  115. package/packages/shared-skills/skills/debugging/references/methodology/00-setup.md +0 -12
  116. package/packages/shared-skills/skills/debugging/references/methodology/02-investigate.md +0 -21
  117. package/packages/shared-skills/skills/debugging/references/runtimes/go.md +1 -15
  118. package/packages/shared-skills/skills/debugging/references/runtimes/native-binary.md +0 -38
  119. package/packages/shared-skills/skills/debugging/references/runtimes/node.md +0 -25
  120. package/packages/shared-skills/skills/debugging/references/runtimes/python.md +0 -13
  121. package/packages/shared-skills/skills/debugging/references/runtimes/rust.md +0 -41
  122. package/dist/skills/debugging/references/scripts/dap.mjs +0 -267
  123. package/dist/skills/debugging/references/scripts/dap.test.ts +0 -86
  124. package/dist/skills/debugging/references/scripts/fixture-adapter.mjs +0 -59
  125. package/dist/skills/debugging/references/tools/dap.md +0 -103
  126. package/dist/skills/debugging/references/tools/frida.md +0 -193
  127. package/packages/lsp-core/src/lsp/format-document.test.ts +0 -143
  128. package/packages/lsp-core/src/lsp/format-document.ts +0 -90
  129. package/packages/lsp-core/src/lsp/manager-max-clients.test.ts +0 -151
  130. package/packages/lsp-core/src/lsp/server-installation.test.ts +0 -376
  131. package/packages/lsp-core/src/lsp/server-resolution-local-binary.test.ts +0 -170
  132. package/packages/lsp-core/src/tools/format.test.ts +0 -56
  133. package/packages/lsp-core/src/tools/format.ts +0 -56
  134. package/packages/omo-codex/plugin/skills/debugging/references/scripts/dap.mjs +0 -267
  135. package/packages/omo-codex/plugin/skills/debugging/references/scripts/fixture-adapter.mjs +0 -59
  136. package/packages/omo-codex/plugin/skills/debugging/references/tools/dap.md +0 -103
  137. package/packages/omo-codex/plugin/skills/debugging/references/tools/frida.md +0 -193
  138. package/packages/shared-skills/skills/debugging/references/scripts/dap.mjs +0 -267
  139. package/packages/shared-skills/skills/debugging/references/scripts/dap.test.ts +0 -86
  140. package/packages/shared-skills/skills/debugging/references/scripts/fixture-adapter.mjs +0 -59
  141. package/packages/shared-skills/skills/debugging/references/tools/dap.md +0 -103
  142. package/packages/shared-skills/skills/debugging/references/tools/frida.md +0 -193
@@ -55,7 +55,7 @@ var package_default;
55
55
  var init_package = __esm(() => {
56
56
  package_default = {
57
57
  name: "oh-my-opencode",
58
- version: "5.0.0-beta.23",
58
+ version: "5.0.0-beta.25",
59
59
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
60
60
  main: "./dist/index.js",
61
61
  types: "dist/index.d.ts",
@@ -236,7 +236,7 @@ var init_package = __esm(() => {
236
236
  zod: "^4.4.3"
237
237
  },
238
238
  devDependencies: {
239
- "@code-yeongyu/senpi": "2026.8.27",
239
+ "@code-yeongyu/senpi": "2026.8.26-2",
240
240
  "@oh-my-opencode/agents-md-core": "workspace:*",
241
241
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
242
242
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -277,18 +277,18 @@ var init_package = __esm(() => {
277
277
  typescript: "^7.0.2"
278
278
  },
279
279
  optionalDependencies: {
280
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.23",
281
- "oh-my-opencode-darwin-x64": "5.0.0-beta.23",
282
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.23",
283
- "oh-my-opencode-linux-arm64": "5.0.0-beta.23",
284
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.23",
285
- "oh-my-opencode-linux-x64": "5.0.0-beta.23",
286
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.23",
287
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.23",
288
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.23",
289
- "oh-my-opencode-windows-arm64": "5.0.0-beta.23",
290
- "oh-my-opencode-windows-x64": "5.0.0-beta.23",
291
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.23"
280
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.25",
281
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.25",
282
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.25",
283
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.25",
284
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.25",
285
+ "oh-my-opencode-linux-x64": "5.0.0-beta.25",
286
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.25",
287
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.25",
288
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.25",
289
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.25",
290
+ "oh-my-opencode-windows-x64": "5.0.0-beta.25",
291
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.25"
292
292
  },
293
293
  overrides: {
294
294
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -304,10 +304,7 @@ var init_package = __esm(() => {
304
304
  },
305
305
  trustedDependencies: [
306
306
  "@code-yeongyu/comment-checker"
307
- ],
308
- patchedDependencies: {
309
- "@code-yeongyu/senpi@2026.8.27": "patches/@code-yeongyu%2Fsenpi@2026.8.27.patch"
310
- }
307
+ ]
311
308
  };
312
309
  });
313
310
 
@@ -4817,12 +4814,9 @@ import {
4817
4814
  fsyncSync,
4818
4815
  openSync,
4819
4816
  renameSync,
4820
- rmSync,
4821
4817
  unlinkSync,
4822
4818
  writeFileSync
4823
4819
  } from "node:fs";
4824
- import { randomUUID } from "node:crypto";
4825
- import { dirname } from "node:path";
4826
4820
  function isToleratedFsyncError(error) {
4827
4821
  if (!(error instanceof Error))
4828
4822
  return false;
@@ -4838,36 +4832,24 @@ function tolerantFsyncSync(fileDescriptor, fsyncImpl) {
4838
4832
  }
4839
4833
  }
4840
4834
  function writeFileAtomically(filePath, content, options = {}) {
4841
- const platform = options.platform ?? process.platform;
4842
- const fsyncImpl = options.fsyncSync ?? fsyncSync;
4843
- const tempPath = `${filePath}.${process.pid}.${randomUUID()}.tmp`;
4835
+ const tempPath = `${filePath}.tmp`;
4836
+ writeFileSync(tempPath, content, "utf-8");
4837
+ const tempFileDescriptor = openSync(tempPath, "r+");
4844
4838
  try {
4845
- writeFileSync(tempPath, content, "utf-8");
4846
- const tempFileDescriptor = openSync(tempPath, "r+");
4847
- try {
4848
- tolerantFsyncSync(tempFileDescriptor, fsyncImpl);
4849
- } finally {
4850
- closeSync(tempFileDescriptor);
4851
- }
4852
- try {
4853
- renameSync(tempPath, filePath);
4854
- } catch (error) {
4855
- const isPermissionError = error instanceof Error && (error.message.includes("EPERM") || error.message.includes("EACCES"));
4856
- if (platform !== "win32" || !isPermissionError)
4857
- throw error;
4839
+ tolerantFsyncSync(tempFileDescriptor, options.fsyncSync ?? fsyncSync);
4840
+ } finally {
4841
+ closeSync(tempFileDescriptor);
4842
+ }
4843
+ try {
4844
+ renameSync(tempPath, filePath);
4845
+ } catch (error) {
4846
+ const isPermissionError = error instanceof Error && (error.message.includes("EPERM") || error.message.includes("EACCES"));
4847
+ if ((options.platform ?? process.platform) === "win32" && isPermissionError) {
4858
4848
  unlinkSync(filePath);
4859
4849
  renameSync(tempPath, filePath);
4860
- }
4861
- if (platform === "win32")
4862
4850
  return;
4863
- const directoryFileDescriptor = openSync(dirname(filePath), "r");
4864
- try {
4865
- tolerantFsyncSync(directoryFileDescriptor, fsyncImpl);
4866
- } finally {
4867
- closeSync(directoryFileDescriptor);
4868
4851
  }
4869
- } finally {
4870
- rmSync(tempPath, { force: true });
4852
+ throw error;
4871
4853
  }
4872
4854
  }
4873
4855
  var TOLERATED_FSYNC_CODES;
@@ -20573,25 +20555,6 @@ var init_telemetry = __esm(() => {
20573
20555
  }).strict();
20574
20556
  });
20575
20557
 
20576
- // packages/omo-config-core/src/schema/format-on-mutation.ts
20577
- var mode, languages, OmoFormatOnMutationLayerSchema, OmoFormatOnMutationSchema;
20578
- var init_format_on_mutation = __esm(() => {
20579
- init_zod();
20580
- mode = _enum2(["off", "best-effort", "required"]);
20581
- languages = record(string2(), boolean2()).optional();
20582
- OmoFormatOnMutationLayerSchema = object({
20583
- mode: mode.optional(),
20584
- languages,
20585
- maxFileBytes: number2().int().positive().optional(),
20586
- timeoutMs: number2().int().positive().optional()
20587
- }).strict();
20588
- OmoFormatOnMutationSchema = OmoFormatOnMutationLayerSchema.extend({
20589
- mode: mode.default("best-effort"),
20590
- maxFileBytes: number2().int().positive().default(1048576),
20591
- timeoutMs: number2().int().positive().default(3000)
20592
- }).strict();
20593
- });
20594
-
20595
20558
  // packages/omo-config-core/src/schema/config.ts
20596
20559
  var OmoOpenCodeHarnessConfigSchema, OmoTypedHarnessConfigSchema, OmoConfigProfileSchema, OmoConfigSchema, OmoConfigLayerSchema;
20597
20560
  var init_config = __esm(() => {
@@ -20605,10 +20568,8 @@ var init_config = __esm(() => {
20605
20568
  init_task();
20606
20569
  init_team();
20607
20570
  init_telemetry();
20608
- init_format_on_mutation();
20609
20571
  OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
20610
20572
  OmoTypedHarnessConfigSchema = object({
20611
- formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
20612
20573
  categories: OmoCategoriesConfigSchema.optional(),
20613
20574
  agents: OmoAgentsConfigSchema.optional(),
20614
20575
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
@@ -20620,7 +20581,6 @@ var init_config = __esm(() => {
20620
20581
  telemetry: OmoTelemetrySettingsLayerSchema.optional()
20621
20582
  }).strict();
20622
20583
  OmoConfigProfileSchema = object({
20623
- formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
20624
20584
  categories: OmoCategoriesConfigSchema.optional(),
20625
20585
  agents: OmoAgentsConfigSchema.optional(),
20626
20586
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
@@ -20635,7 +20595,6 @@ var init_config = __esm(() => {
20635
20595
  "[codex]": OmoTypedHarnessConfigSchema.optional()
20636
20596
  }).strict();
20637
20597
  OmoConfigSchema = object({
20638
- formatOnMutation: OmoFormatOnMutationSchema.optional(),
20639
20598
  $schema: string2().optional(),
20640
20599
  categories: OmoCategoriesConfigSchema.optional(),
20641
20600
  agents: OmoAgentsConfigSchema.optional(),
@@ -20654,7 +20613,6 @@ var init_config = __esm(() => {
20654
20613
  legacy_migrations: record(string2(), unknown()).optional()
20655
20614
  }).strict();
20656
20615
  OmoConfigLayerSchema = object({
20657
- formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
20658
20616
  $schema: string2().optional(),
20659
20617
  categories: OmoCategoriesConfigSchema.optional(),
20660
20618
  agents: OmoAgentsConfigSchema.optional(),
@@ -20681,7 +20639,6 @@ var init_schema = __esm(() => {
20681
20639
  init_codegraph();
20682
20640
  init_config();
20683
20641
  init_fallback_models();
20684
- init_format_on_mutation();
20685
20642
  init_git_master();
20686
20643
  init_harness();
20687
20644
  init_memory();
@@ -20751,7 +20708,7 @@ var init_types = __esm(() => {
20751
20708
 
20752
20709
  // packages/omo-config-core/src/loader/paths.ts
20753
20710
  import { userInfo } from "node:os";
20754
- import { dirname as dirname2, join as join3, posix, resolve } from "node:path";
20711
+ import { dirname, join as join3, posix, resolve } from "node:path";
20755
20712
  function resolveHomeDir(env = process.env) {
20756
20713
  const homeDir = env.HOME ?? env.USERPROFILE ?? process.cwd();
20757
20714
  return homeDir.startsWith("/") ? posix.resolve(homeDir) : toPosixPath(resolve(homeDir));
@@ -20816,7 +20773,7 @@ function findProjectConfigPathsFarthestFirst(cwd, homeDir, fileSystem, accountHo
20816
20773
  nearestFirst.push(configPath);
20817
20774
  if (isHomeDir)
20818
20775
  break;
20819
- const parentDir = dirname2(currentDir);
20776
+ const parentDir = dirname(currentDir);
20820
20777
  if (parentDir === currentDir)
20821
20778
  break;
20822
20779
  currentDir = parentDir;
@@ -21256,8 +21213,8 @@ var init_jsonc_parse = __esm(() => {
21256
21213
  });
21257
21214
 
21258
21215
  // packages/omo-config-core/src/writer/writer.ts
21259
- import { randomUUID as randomUUID2 } from "node:crypto";
21260
- import { dirname as dirname3, join as join4, posix as posix2 } from "node:path";
21216
+ import { randomUUID } from "node:crypto";
21217
+ import { dirname as dirname2, join as join4, posix as posix2 } from "node:path";
21261
21218
  function backupSuffix() {
21262
21219
  return new Date().toISOString().replace(/[:.]/g, "-");
21263
21220
  }
@@ -21290,20 +21247,20 @@ function resolveWritePath(options) {
21290
21247
  const jsoncPath2 = resolveUserOmoConfigPath(options.env);
21291
21248
  if (fileSystem.existsSync(jsoncPath2))
21292
21249
  return jsoncPath2;
21293
- const jsonPath2 = join4(dirname3(jsoncPath2), "omo.json");
21250
+ const jsonPath2 = join4(dirname2(jsoncPath2), "omo.json");
21294
21251
  return fileSystem.existsSync(jsonPath2) ? jsonPath2 : jsoncPath2;
21295
21252
  }
21296
21253
  const jsoncPath = join4(options.projectDir ?? process.cwd(), ".omo", "omo.jsonc");
21297
21254
  if (fileSystem.existsSync(jsoncPath))
21298
21255
  return jsoncPath;
21299
- const jsonPath = join4(dirname3(jsoncPath), "omo.json");
21256
+ const jsonPath = join4(dirname2(jsoncPath), "omo.json");
21300
21257
  return fileSystem.existsSync(jsonPath) ? jsonPath : jsoncPath;
21301
21258
  }
21302
21259
  function directoryPath(path4) {
21303
- return path4.startsWith("/") ? posix2.dirname(path4) : dirname3(path4);
21260
+ return path4.startsWith("/") ? posix2.dirname(path4) : dirname2(path4);
21304
21261
  }
21305
21262
  function writeAtomically(path4, content, fileSystem) {
21306
- const tempPath = `${path4}.${randomUUID2()}.tmp`;
21263
+ const tempPath = `${path4}.${randomUUID()}.tmp`;
21307
21264
  let tempCreated = false;
21308
21265
  try {
21309
21266
  fileSystem.writeFileExclusiveSync(tempPath, content);
@@ -21586,7 +21543,7 @@ var init_types3 = __esm(() => {
21586
21543
  });
21587
21544
 
21588
21545
  // packages/omo-config-core/src/migration/commit.ts
21589
- import { basename, dirname as dirname4, join as join5, resolve as resolve2 } from "node:path";
21546
+ import { basename, dirname as dirname3, join as join5, resolve as resolve2 } from "node:path";
21590
21547
  function parseDocument(path4, content) {
21591
21548
  const parsed = parseJsoncSafe2(content);
21592
21549
  if (parsed.errors.length > 0 || !isPlainObject5(parsed.data)) {
@@ -21620,11 +21577,11 @@ function writerInput(targetPath, env) {
21620
21577
  const homeDir = resolveHomeDir(env);
21621
21578
  const userDirectory = toPosixPath(join5(homeDir, ".omo"));
21622
21579
  const fileName = basename(targetPath);
21623
- if (toPosixPath(dirname4(targetPath)) === userDirectory && (fileName === "omo.json" || fileName === "omo.jsonc")) {
21580
+ if (toPosixPath(dirname3(targetPath)) === userDirectory && (fileName === "omo.json" || fileName === "omo.jsonc")) {
21624
21581
  return { scope: "user" };
21625
21582
  }
21626
- if (basename(dirname4(targetPath)) === ".omo" && (fileName === "omo.json" || fileName === "omo.jsonc")) {
21627
- return { projectDir: dirname4(dirname4(targetPath)), scope: "project" };
21583
+ if (basename(dirname3(targetPath)) === ".omo" && (fileName === "omo.json" || fileName === "omo.jsonc")) {
21584
+ return { projectDir: dirname3(dirname3(targetPath)), scope: "project" };
21628
21585
  }
21629
21586
  throw new MigrationTransactionError(`Migration target is not an omo config path: ${targetPath}`);
21630
21587
  }
@@ -21987,7 +21944,7 @@ var init_recovery = __esm(() => {
21987
21944
  });
21988
21945
 
21989
21946
  // packages/omo-config-core/src/migration/batch.ts
21990
- import { dirname as dirname5, posix as posix3 } from "node:path";
21947
+ import { dirname as dirname4, posix as posix3 } from "node:path";
21991
21948
  function parseSource(path4, content) {
21992
21949
  const parsed = parseJsoncSafe2(content);
21993
21950
  if (parsed.errors.length > 0) {
@@ -22036,7 +21993,7 @@ function assertSafeSourcePaths(sources, protectedPaths) {
22036
21993
  }
22037
21994
  }
22038
21995
  function directoryPath2(path4) {
22039
- return path4.startsWith("/") ? posix3.dirname(path4) : dirname5(path4);
21996
+ return path4.startsWith("/") ? posix3.dirname(path4) : dirname4(path4);
22040
21997
  }
22041
21998
  function ensureBackupDirectories(moves, fileSystem) {
22042
21999
  for (const move of moves)
@@ -22667,7 +22624,7 @@ var init_process_sweep = () => {};
22667
22624
  // packages/utils/src/codegraph/resolve.ts
22668
22625
  import { existsSync as existsSync7 } from "node:fs";
22669
22626
  import { spawnSync } from "node:child_process";
22670
- import { basename as basename2, dirname as dirname6, join as join10 } from "node:path";
22627
+ import { basename as basename2, dirname as dirname5, join as join10 } from "node:path";
22671
22628
  import { createRequire as createRequire2 } from "node:module";
22672
22629
  function defaultNodeVersion(nodePath) {
22673
22630
  if (nodePath === process.execPath && isNodeExecutableName(nodePath))
@@ -26095,7 +26052,7 @@ var init_resolve_agent_definition_paths = __esm(() => {
26095
26052
  // packages/omo-opencode/src/shared/opencode-version.ts
26096
26053
  import { execSync } from "child_process";
26097
26054
  import { existsSync as existsSync9, readFileSync as readFileSync3, realpathSync as realpathSync4 } from "fs";
26098
- import { dirname as dirname7, join as join13 } from "path";
26055
+ import { dirname as dirname6, join as join13 } from "path";
26099
26056
  function parseVersion(version2) {
26100
26057
  const cleaned = version2.replace(/^v/, "").split("-")[0];
26101
26058
  return cleaned.split(".").map((n) => parseInt(n, 10) || 0);
@@ -26136,7 +26093,7 @@ function parsePackageVersion(content) {
26136
26093
  function getPackageVersionFromBinary(binaryPath, deps) {
26137
26094
  try {
26138
26095
  const realBinaryPath = deps.realpath(binaryPath);
26139
- const packagePath = join13(dirname7(dirname7(realBinaryPath)), "package.json");
26096
+ const packagePath = join13(dirname6(dirname6(realBinaryPath)), "package.json");
26140
26097
  if (!deps.exists(packagePath))
26141
26098
  return null;
26142
26099
  return parsePackageVersion(deps.readText(packagePath));
@@ -26374,10 +26331,10 @@ import {
26374
26331
  } from "node:fs";
26375
26332
  function writeFileAtomically2(filePath, content, deps = {}) {
26376
26333
  const tempPath = `${filePath}.tmp`;
26377
- const mode2 = deps.mode;
26378
- writeFileSync3(tempPath, content, { encoding: "utf-8", mode: mode2 });
26379
- if (mode2 !== undefined) {
26380
- chmodSync2(tempPath, mode2);
26334
+ const mode = deps.mode;
26335
+ writeFileSync3(tempPath, content, { encoding: "utf-8", mode });
26336
+ if (mode !== undefined) {
26337
+ chmodSync2(tempPath, mode);
26381
26338
  }
26382
26339
  const tempFileDescriptor = openSync2(tempPath, "r+");
26383
26340
  try {
@@ -26398,8 +26355,8 @@ function writeFileAtomically2(filePath, content, deps = {}) {
26398
26355
  throw error51;
26399
26356
  }
26400
26357
  }
26401
- if (mode2 !== undefined) {
26402
- chmodSync2(filePath, mode2);
26358
+ if (mode !== undefined) {
26359
+ chmodSync2(filePath, mode);
26403
26360
  }
26404
26361
  }
26405
26362
  var init_write_file_atomically = __esm(() => {
@@ -84406,7 +84363,7 @@ var init_plugin_name_with_version = __esm(() => {
84406
84363
 
84407
84364
  // packages/omo-opencode/src/cli/config-manager/backup-config.ts
84408
84365
  import { copyFileSync as copyFileSync2, existsSync as existsSync16, mkdirSync as mkdirSync6 } from "node:fs";
84409
- import { dirname as dirname8 } from "node:path";
84366
+ import { dirname as dirname7 } from "node:path";
84410
84367
  function backupConfigFile(configPath) {
84411
84368
  if (!existsSync16(configPath)) {
84412
84369
  return { success: true };
@@ -84414,7 +84371,7 @@ function backupConfigFile(configPath) {
84414
84371
  const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
84415
84372
  const backupPath = `${configPath}.backup-${timestamp}`;
84416
84373
  try {
84417
- const dir = dirname8(backupPath);
84374
+ const dir = dirname7(backupPath);
84418
84375
  if (!existsSync16(dir)) {
84419
84376
  mkdirSync6(dir, { recursive: true });
84420
84377
  }
@@ -84612,7 +84569,7 @@ function extractVersionFromPluginEntry(entry) {
84612
84569
 
84613
84570
  // packages/omo-opencode/src/cli/config-manager/add-plugin-to-opencode-config.ts
84614
84571
  import { existsSync as existsSync19, readdirSync as readdirSync4, readFileSync as readFileSync8, writeFileSync as writeFileSync5 } from "node:fs";
84615
- import { basename as basename3, dirname as dirname9, join as join21 } from "node:path";
84572
+ import { basename as basename3, dirname as dirname8, join as join21 } from "node:path";
84616
84573
  function detectConfigFormatInDir(configDir) {
84617
84574
  const configJsonc = join21(configDir, "opencode.jsonc");
84618
84575
  const configJson = join21(configDir, "opencode.json");
@@ -84625,10 +84582,10 @@ function detectConfigFormatInDir(configDir) {
84625
84582
  return { format: "none", path: configJson };
84626
84583
  }
84627
84584
  function getParentConfigDirForProfile(configDir) {
84628
- const parentDir = dirname9(configDir);
84585
+ const parentDir = dirname8(configDir);
84629
84586
  if (basename3(parentDir) !== "profiles")
84630
84587
  return null;
84631
- return dirname9(parentDir);
84588
+ return dirname8(parentDir);
84632
84589
  }
84633
84590
  function listProfileConfigDirs(rootConfigDir) {
84634
84591
  const profilesDir = join21(rootConfigDir, "profiles");
@@ -86762,7 +86719,7 @@ var init_env2 = __esm(() => {
86762
86719
  });
86763
86720
 
86764
86721
  // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
86765
- import { dirname as dirname18, posix as posix7, sep as sep7 } from "path";
86722
+ import { dirname as dirname17, posix as posix7, sep as sep7 } from "path";
86766
86723
  function createModulerModifier() {
86767
86724
  const getModuleFromFileName = createGetModuleFromFilename();
86768
86725
  return async (frames) => {
@@ -86771,7 +86728,7 @@ function createModulerModifier() {
86771
86728
  return frames;
86772
86729
  };
86773
86730
  }
86774
- function createGetModuleFromFilename(basePath = process.argv[1] ? dirname18(process.argv[1]) : process.cwd(), isWindows = sep7 === "\\") {
86731
+ function createGetModuleFromFilename(basePath = process.argv[1] ? dirname17(process.argv[1]) : process.cwd(), isWindows = sep7 === "\\") {
86775
86732
  const normalizedBase = isWindows ? normalizeWindowsPath(basePath) : basePath;
86776
86733
  return (filename) => {
86777
86734
  if (!filename)
@@ -92105,7 +92062,7 @@ function splitNodeOptions(nodeOptions) {
92105
92062
  return args;
92106
92063
  }
92107
92064
  function findUnhandledRejectionMode(args) {
92108
- let mode2;
92065
+ let mode;
92109
92066
  for (let index = 0;index < args.length; index++) {
92110
92067
  const argument = args[index];
92111
92068
  const optionName = UNHANDLED_REJECTION_OPTION_NAMES.find((name) => argument === name || argument.startsWith(`${name}=`));
@@ -92113,9 +92070,9 @@ function findUnhandledRejectionMode(args) {
92113
92070
  continue;
92114
92071
  const value = argument === optionName ? args[++index] : argument.slice(optionName.length + 1);
92115
92072
  if (UNHANDLED_REJECTION_MODES.has(value))
92116
- mode2 = value;
92073
+ mode = value;
92117
92074
  }
92118
- return mode2;
92075
+ return mode;
92119
92076
  }
92120
92077
  function getUnhandledRejectionMode(execArgv = STARTUP_EXEC_ARGV, nodeOptions = STARTUP_NODE_OPTIONS) {
92121
92078
  return findUnhandledRejectionMode(execArgv) ?? findUnhandledRejectionMode(splitNodeOptions(nodeOptions ?? "")) ?? "throw";
@@ -92141,17 +92098,17 @@ function makeUncaughtExceptionHandler(captureFn, onFatalFn) {
92141
92098
  _posthogErrorHandler: true
92142
92099
  });
92143
92100
  }
92144
- function addUncaughtExceptionListener(captureFn, onFatalFn, mode2 = STARTUP_UNHANDLED_REJECTION_MODE) {
92101
+ function addUncaughtExceptionListener(captureFn, onFatalFn, mode = STARTUP_UNHANDLED_REJECTION_MODE) {
92145
92102
  const process4 = globalThis.process;
92146
92103
  if (!process4)
92147
92104
  return;
92148
- if (mode2 === "strict")
92105
+ if (mode === "strict")
92149
92106
  return void process4.on("uncaughtExceptionMonitor", (error51, origin) => captureUncaughtException(captureFn, error51, origin));
92150
92107
  process4.on("uncaughtException", makeUncaughtExceptionHandler(captureFn, onFatalFn));
92151
92108
  }
92152
- function addUnhandledRejectionListener(captureFn, mode2 = STARTUP_UNHANDLED_REJECTION_MODE) {
92109
+ function addUnhandledRejectionListener(captureFn, mode = STARTUP_UNHANDLED_REJECTION_MODE) {
92153
92110
  const process4 = globalThis.process;
92154
- if (!process4 || mode2 === "throw" || mode2 === "strict" || mode2 === "warn-with-error-code")
92111
+ if (!process4 || mode === "throw" || mode === "strict" || mode === "warn-with-error-code")
92155
92112
  return;
92156
92113
  process4.on("unhandledRejection", (reason) => {
92157
92114
  captureFn(reason, {
@@ -94376,7 +94333,7 @@ var package_default2;
94376
94333
  var init_package2 = __esm(() => {
94377
94334
  package_default2 = {
94378
94335
  name: "@oh-my-opencode/omo-codex",
94379
- version: "5.0.0-beta.23",
94336
+ version: "5.0.0-beta.25",
94380
94337
  type: "module",
94381
94338
  private: true,
94382
94339
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -95346,19 +95303,19 @@ var init_update_toasts = __esm(() => {
95346
95303
 
95347
95304
  // packages/omo-opencode/src/hooks/auto-update-checker/hook/background-update-check.ts
95348
95305
  import { existsSync as existsSync48 } from "node:fs";
95349
- import { dirname as dirname31, join as join76 } from "node:path";
95306
+ import { dirname as dirname30, join as join76 } from "node:path";
95350
95307
  import { fileURLToPath as fileURLToPath5 } from "node:url";
95351
95308
  function defaultGetModuleHostingWorkspace() {
95352
95309
  try {
95353
- const currentDir = dirname31(fileURLToPath5(import.meta.url));
95310
+ const currentDir = dirname30(fileURLToPath5(import.meta.url));
95354
95311
  const pkgJsonPath = findPackageJsonUp(currentDir);
95355
95312
  if (!pkgJsonPath)
95356
95313
  return null;
95357
- const pkgDir = dirname31(pkgJsonPath);
95358
- const nodeModulesDir = dirname31(pkgDir);
95314
+ const pkgDir = dirname30(pkgJsonPath);
95315
+ const nodeModulesDir = dirname30(pkgDir);
95359
95316
  if (nodeModulesDir.split(/[\\/]/).pop() !== "node_modules")
95360
95317
  return null;
95361
- return dirname31(nodeModulesDir);
95318
+ return dirname30(nodeModulesDir);
95362
95319
  } catch (error51) {
95363
95320
  if (error51 instanceof Error) {
95364
95321
  return null;
@@ -97907,9 +97864,9 @@ function formatConfigSummary(config3) {
97907
97864
  `);
97908
97865
  }
97909
97866
  function printHeader(isUpdate) {
97910
- const mode2 = isUpdate ? "Update" : "Install";
97867
+ const mode = isUpdate ? "Update" : "Install";
97911
97868
  console.log();
97912
- console.log(import_picocolors.default.bgMagenta(import_picocolors.default.white(` oMoMoMoMo... ${mode2} `)));
97869
+ console.log(import_picocolors.default.bgMagenta(import_picocolors.default.white(` oMoMoMoMo... ${mode} `)));
97913
97870
  console.log();
97914
97871
  }
97915
97872
  function printStep(step, total, message) {
@@ -98188,7 +98145,7 @@ function windowsCommandShim(targetPath) {
98188
98145
 
98189
98146
  // packages/omo-codex/src/install/codex-cache-dangling-bins.ts
98190
98147
  import { lstat as lstat2, readFile, readdir, readlink, rm, stat } from "node:fs/promises";
98191
- import { dirname as dirname10, isAbsolute, join as join23, resolve as resolve5 } from "node:path";
98148
+ import { dirname as dirname9, isAbsolute, join as join23, resolve as resolve5 } from "node:path";
98192
98149
 
98193
98150
  // packages/omo-codex/src/install/codex-cache-fs.ts
98194
98151
  import { lstat } from "node:fs/promises";
@@ -98235,7 +98192,7 @@ async function removeDanglingManagedSymlink(linkPath) {
98235
98192
  if (!linkStat.isSymbolicLink())
98236
98193
  return;
98237
98194
  const linkTarget = await readlink(linkPath);
98238
- const target = isAbsolute(linkTarget) ? linkTarget : resolve5(dirname10(linkPath), linkTarget);
98195
+ const target = isAbsolute(linkTarget) ? linkTarget : resolve5(dirname9(linkPath), linkTarget);
98239
98196
  if (!await isFileSystemEntry(target) && isManagedComponentBinTarget(target))
98240
98197
  await rm(linkPath, { force: true });
98241
98198
  } catch (error51) {
@@ -98697,11 +98654,11 @@ async function existingNonSymlink(path7) {
98697
98654
  }
98698
98655
  // packages/omo-codex/src/install/codex-cache-install.ts
98699
98656
  import { cp as cp2, mkdir as mkdir3, readFile as readFile8, readdir as readdir4, rename, rm as rm4 } from "node:fs/promises";
98700
- import { basename as basename5, dirname as dirname13, join as join32, sep as sep5 } from "node:path";
98657
+ import { basename as basename5, dirname as dirname12, join as join32, sep as sep5 } from "node:path";
98701
98658
 
98702
98659
  // packages/omo-codex/src/install/codex-cache-bundled-mcps.ts
98703
98660
  import { cp, mkdir as mkdir2, readFile as readFile4, stat as stat3 } from "node:fs/promises";
98704
- import { dirname as dirname11, join as join27, resolve as resolve7 } from "node:path";
98661
+ import { dirname as dirname10, join as join27, resolve as resolve7 } from "node:path";
98705
98662
  var BUNDLED_MCP_RUNTIMES = [
98706
98663
  {
98707
98664
  label: "Git Bash MCP",
@@ -98736,7 +98693,7 @@ async function copyBundledMcpRuntimeDist(pluginRoot, sourceRoot, runtime4) {
98736
98693
  throw new Error(`missing built ${runtime4.label} dist at ${sourcePath}`);
98737
98694
  }
98738
98695
  const destinationPath = join27(pluginRoot, runtime4.destinationDistFromPlugin);
98739
- await mkdir2(dirname11(destinationPath), { recursive: true });
98696
+ await mkdir2(dirname10(destinationPath), { recursive: true });
98740
98697
  await cp(sourcePath, destinationPath, { recursive: true });
98741
98698
  }
98742
98699
  async function readSourceMcpArgs(path7) {
@@ -98774,7 +98731,7 @@ async function isDirectory(path7) {
98774
98731
  // packages/omo-codex/src/install/codex-cache-local-dependencies.ts
98775
98732
  import { realpathSync as realpathSync6 } from "node:fs";
98776
98733
  import { readFile as readFile5, readdir as readdir3, writeFile as writeFile2 } from "node:fs/promises";
98777
- import { dirname as dirname12, isAbsolute as isAbsolute4, join as join29, relative as relative3, resolve as resolve9, sep as sep2 } from "node:path";
98734
+ import { dirname as dirname11, isAbsolute as isAbsolute4, join as join29, relative as relative3, resolve as resolve9, sep as sep2 } from "node:path";
98778
98735
 
98779
98736
  // packages/omo-codex/src/install/codex-cache-paths.ts
98780
98737
  import { existsSync as existsSync24, readdirSync as readdirSync6 } from "node:fs";
@@ -98843,7 +98800,7 @@ async function rewriteCachedPackageLocalFileDependencies(pluginRoot, sourceRoot)
98843
98800
  const parsed = JSON.parse(raw);
98844
98801
  if (!isPlainRecord4(parsed))
98845
98802
  continue;
98846
- const packageDir = dirname12(packageJsonPath);
98803
+ const packageDir = dirname11(packageJsonPath);
98847
98804
  const sourcePackageDir = join29(sourceRoot, relative3(pluginRoot, packageDir));
98848
98805
  let changed = false;
98849
98806
  for (const field of ["dependencies", "optionalDependencies", "peerDependencies"]) {
@@ -99238,13 +99195,13 @@ function sanitizeNpmInstallEnv(env2) {
99238
99195
  return Object.fromEntries(Object.entries(env2).filter(([key]) => key.toLowerCase() !== "npm_config_allow_scripts"));
99239
99196
  }
99240
99197
  function createTempSiblingPath(targetPath) {
99241
- return join32(dirname13(targetPath), `.tmp-${basename5(targetPath)}-${process.pid}-${Date.now()}`);
99198
+ return join32(dirname12(targetPath), `.tmp-${basename5(targetPath)}-${process.pid}-${Date.now()}`);
99242
99199
  }
99243
99200
  function createBackupSiblingPath(targetPath) {
99244
- return join32(dirname13(targetPath), `.backup-${basename5(targetPath)}-${process.pid}-${Date.now()}`);
99201
+ return join32(dirname12(targetPath), `.backup-${basename5(targetPath)}-${process.pid}-${Date.now()}`);
99245
99202
  }
99246
99203
  async function copyDirectory(sourcePath, targetPath) {
99247
- await mkdir3(dirname13(targetPath), { recursive: true });
99204
+ await mkdir3(dirname12(targetPath), { recursive: true });
99248
99205
  await cp2(sourcePath, targetPath, { recursive: true, filter: (source) => shouldCopyPluginPath(source, sourcePath) });
99249
99206
  }
99250
99207
  async function promoteDirectory(tempPath, targetPath, renameDirectory) {
@@ -99343,20 +99300,20 @@ async function copyRootRuntimeDists(input) {
99343
99300
  const sourcePath = join32(repoRoot, runtimePath);
99344
99301
  if (!await fileExistsStrict(join32(sourcePath, "index.js")))
99345
99302
  continue;
99346
- await mkdir3(dirname13(join32(input.pluginRoot, runtimePath)), { recursive: true });
99303
+ await mkdir3(dirname12(join32(input.pluginRoot, runtimePath)), { recursive: true });
99347
99304
  await cp2(sourcePath, join32(input.pluginRoot, runtimePath), { recursive: true });
99348
99305
  }
99349
99306
  }
99350
99307
  function repoRootForCodexPluginSource(sourcePath) {
99351
- const codexPackageRoot = dirname13(sourcePath);
99352
- const packagesRoot = dirname13(codexPackageRoot);
99308
+ const codexPackageRoot = dirname12(sourcePath);
99309
+ const packagesRoot = dirname12(codexPackageRoot);
99353
99310
  if (basename5(sourcePath) !== "plugin")
99354
99311
  return null;
99355
99312
  if (basename5(codexPackageRoot) !== "omo-codex")
99356
99313
  return null;
99357
99314
  if (basename5(packagesRoot) !== "packages")
99358
99315
  return null;
99359
- return dirname13(packagesRoot);
99316
+ return dirname12(packagesRoot);
99360
99317
  }
99361
99318
  // packages/omo-codex/src/install/codex-cache-prune.ts
99362
99319
  import { lstat as lstat5, readdir as readdir5, rm as rm5, stat as stat4 } from "node:fs/promises";
@@ -99487,7 +99444,7 @@ async function shouldBuildSourcePackages(repoRoot) {
99487
99444
 
99488
99445
  // packages/omo-codex/src/install/codex-config-toml.ts
99489
99446
  import { mkdir as mkdir5, readFile as readFile11 } from "node:fs/promises";
99490
- import { dirname as dirname16 } from "node:path";
99447
+ import { dirname as dirname15 } from "node:path";
99491
99448
 
99492
99449
  // packages/omo-codex/src/install/toml-section-editor.ts
99493
99450
  function findTomlSection(config3, header) {
@@ -100069,12 +100026,12 @@ function tomlKeySegment(value) {
100069
100026
 
100070
100027
  // packages/omo-codex/src/install/codex-config-atomic-write.ts
100071
100028
  import { lstat as lstat6, readlink as readlink4, realpath, rename as rename3, unlink, writeFile as writeFile5 } from "node:fs/promises";
100072
- import { basename as basename6, dirname as dirname14, isAbsolute as isAbsolute5, join as join36, resolve as resolve10 } from "node:path";
100029
+ import { basename as basename6, dirname as dirname13, isAbsolute as isAbsolute5, join as join36, resolve as resolve10 } from "node:path";
100073
100030
  var RENAME_RETRY_DELAYS_MS = [10, 25, 50];
100074
100031
  var RETRIABLE_RENAME_CODES = new Set(["EPERM", "EBUSY"]);
100075
100032
  async function writeFileAtomic(targetPath, data) {
100076
100033
  const writeTarget = await resolveSymlinkTarget(targetPath);
100077
- const temporaryPath = join36(dirname14(writeTarget), `.tmp-${basename6(writeTarget)}-${process.pid}-${Date.now()}`);
100034
+ const temporaryPath = join36(dirname13(writeTarget), `.tmp-${basename6(writeTarget)}-${process.pid}-${Date.now()}`);
100078
100035
  await writeFile5(temporaryPath, data);
100079
100036
  try {
100080
100037
  await renameWithRetry(temporaryPath, writeTarget);
@@ -100103,7 +100060,7 @@ async function resolveSymlinkTarget(targetPath) {
100103
100060
  if (!(error51 instanceof Error))
100104
100061
  throw error51;
100105
100062
  const linkValue = await readlink4(targetPath);
100106
- return isAbsolute5(linkValue) ? linkValue : resolve10(dirname14(targetPath), linkValue);
100063
+ return isAbsolute5(linkValue) ? linkValue : resolve10(dirname13(targetPath), linkValue);
100107
100064
  }
100108
100065
  }
100109
100066
  async function renameWithRetry(fromPath, toPath) {
@@ -100583,14 +100540,14 @@ import { join as join37 } from "node:path";
100583
100540
  var FALLBACK_CODEX_MODEL_CATALOG = {
100584
100541
  current: {
100585
100542
  model: "gpt-5.6-sol",
100586
- modelContextWindow: 650000,
100543
+ modelContextWindow: 372000,
100587
100544
  modelReasoningEffort: "high",
100588
100545
  planModeReasoningEffort: "xhigh"
100589
100546
  },
100590
100547
  managedProfiles: [
100591
100548
  {
100592
100549
  model: "gpt-5.5",
100593
- modelContextWindow: 650000,
100550
+ modelContextWindow: 400000,
100594
100551
  modelReasoningEffort: "high",
100595
100552
  planModeReasoningEffort: "xhigh"
100596
100553
  },
@@ -100688,7 +100645,7 @@ function isRootSetting2(line, key) {
100688
100645
 
100689
100646
  // packages/omo-codex/src/install/codex-multi-agent-v2-config.ts
100690
100647
  import { readFileSync as readFileSync11 } from "node:fs";
100691
- import { dirname as dirname15, isAbsolute as isAbsolute6, join as join38 } from "node:path";
100648
+ import { dirname as dirname14, isAbsolute as isAbsolute6, join as join38 } from "node:path";
100692
100649
  var CODEX_AGENTS_HEADER = "agents";
100693
100650
  var CODEX_MULTI_AGENT_V2_HEADER = "features.multi_agent_v2";
100694
100651
  var CODEX_MULTI_AGENT_V2_THREAD_LIMIT_KEY = `${CODEX_MULTI_AGENT_V2_HEADER}.max_concurrent_threads_per_session`;
@@ -100725,8 +100682,8 @@ function resolveCodexMultiAgentVersion(config3, configPath) {
100725
100682
  }
100726
100683
  function resolveCatalogPath(configuredPath, configPath) {
100727
100684
  if (configuredPath === null)
100728
- return join38(dirname15(configPath), "models_cache.json");
100729
- return isAbsolute6(configuredPath) ? configuredPath : join38(dirname15(configPath), configuredPath);
100685
+ return join38(dirname14(configPath), "models_cache.json");
100686
+ return isAbsolute6(configuredPath) ? configuredPath : join38(dirname14(configPath), configuredPath);
100730
100687
  }
100731
100688
  function readCatalogMultiAgentVersion(model, cachePath) {
100732
100689
  let raw;
@@ -100830,7 +100787,7 @@ function readBooleanSetting(sectionText, key) {
100830
100787
 
100831
100788
  // packages/omo-codex/src/install/codex-config-toml.ts
100832
100789
  async function updateCodexConfig(input) {
100833
- await mkdir5(dirname16(input.configPath), { recursive: true });
100790
+ await mkdir5(dirname15(input.configPath), { recursive: true });
100834
100791
  let config3;
100835
100792
  try {
100836
100793
  config3 = await readFile11(input.configPath, "utf8");
@@ -101803,7 +101760,7 @@ var defaultRunCommand = async (command, args, options) => {
101803
101760
 
101804
101761
  // packages/omo-codex/src/install/codex-project-local-cleanup.ts
101805
101762
  import { copyFile as copyFile2, lstat as lstat10, readFile as readFile17, writeFile as writeFile10 } from "node:fs/promises";
101806
- import { dirname as dirname17, join as join46, resolve as resolve11 } from "node:path";
101763
+ import { dirname as dirname16, join as join46, resolve as resolve11 } from "node:path";
101807
101764
  var LEGACY_AGENT_CONFLICT_KEYS = ["max_threads"];
101808
101765
  var PROJECT_LOCAL_ARTIFACT_PATHS = [
101809
101766
  ".codex/hooks.json",
@@ -101923,13 +101880,13 @@ async function findProjectLocalCodexConfigs(startDirectory, codexHome) {
101923
101880
  artifactRoots: artifactRootsForConfigPaths(configPathsFromCwd)
101924
101881
  };
101925
101882
  }
101926
- const parent = dirname17(current);
101883
+ const parent = dirname16(current);
101927
101884
  if (parent === current) {
101928
101885
  const nearestConfigPath = configPathsFromCwd[0];
101929
101886
  return nearestConfigPath === undefined ? null : {
101930
- projectRoot: dirname17(dirname17(nearestConfigPath)),
101887
+ projectRoot: dirname16(dirname16(nearestConfigPath)),
101931
101888
  configPaths: [nearestConfigPath],
101932
- artifactRoots: [dirname17(dirname17(nearestConfigPath))]
101889
+ artifactRoots: [dirname16(dirname16(nearestConfigPath))]
101933
101890
  };
101934
101891
  }
101935
101892
  current = parent;
@@ -101945,7 +101902,7 @@ async function isRegularProjectLocalConfig(directory, configPath) {
101945
101902
  function artifactRootsForConfigPaths(configPaths2) {
101946
101903
  const roots = [];
101947
101904
  for (const configPath of configPaths2) {
101948
- const root = dirname17(dirname17(configPath));
101905
+ const root = dirname16(dirname16(configPath));
101949
101906
  if (!roots.includes(root))
101950
101907
  roots.push(root);
101951
101908
  }
@@ -102855,7 +102812,7 @@ import { isAbsolute as isAbsolute11, join as join58, relative as relative6, reso
102855
102812
 
102856
102813
  // packages/omo-codex/src/install/codex-cleanup-bins.ts
102857
102814
  import { lstat as lstat12, readFile as readFile22, readdir as readdir12, readlink as readlink6, rm as rm11 } from "node:fs/promises";
102858
- import { dirname as dirname19, isAbsolute as isAbsolute9, join as join56, resolve as resolve14 } from "node:path";
102815
+ import { dirname as dirname18, isAbsolute as isAbsolute9, join as join56, resolve as resolve14 } from "node:path";
102859
102816
  var ROOT_RUNTIME_BIN_NAME = "omo";
102860
102817
  var MANAGED_CODEX_BIN_NAMES = new Set([
102861
102818
  ROOT_RUNTIME_BIN_NAME,
@@ -102912,7 +102869,7 @@ async function isManagedCodexBin(linkPath, platform, binName) {
102912
102869
  if (platform === "win32")
102913
102870
  return false;
102914
102871
  const linkTarget = await readlink6(linkPath);
102915
- const target = isAbsolute9(linkTarget) ? linkTarget : resolve14(dirname19(linkPath), linkTarget);
102872
+ const target = isAbsolute9(linkTarget) ? linkTarget : resolve14(dirname18(linkPath), linkTarget);
102916
102873
  return isManagedComponentBinTarget(target) || isLegacyCodexBinTarget(binName, target);
102917
102874
  }
102918
102875
  if (!entryStat.isFile())
@@ -102923,7 +102880,7 @@ async function isManagedCodexBin(linkPath, platform, binName) {
102923
102880
 
102924
102881
  // packages/omo-codex/src/install/codex-cleanup-config.ts
102925
102882
  import { lstat as lstat13, mkdir as mkdir8, readFile as readFile23, writeFile as writeFile13 } from "node:fs/promises";
102926
- import { dirname as dirname20 } from "node:path";
102883
+ import { dirname as dirname19 } from "node:path";
102927
102884
  var MANAGED_MARKETPLACES = ["sisyphuslabs", "lazycodex", "code-yeongyu-codex-plugins"];
102928
102885
  var LEGACY_MANAGED_CODEX_AGENT_NAMES_TO_PURGE2 = ["codex-ultrawork-reviewer"];
102929
102886
  var CURRENT_MANAGED_CODEX_AGENT_NAMES2 = [
@@ -102960,7 +102917,7 @@ async function cleanupCodexConfig(configPath, now) {
102960
102917
  if (next === original)
102961
102918
  return { changed: false };
102962
102919
  const backupPath = `${configPath}.backup-${formatBackupTimestamp2(now?.() ?? new Date)}`;
102963
- await mkdir8(dirname20(configPath), { recursive: true });
102920
+ await mkdir8(dirname19(configPath), { recursive: true });
102964
102921
  await writeFile13(backupPath, original);
102965
102922
  await writeFile13(configPath, `${next.trimEnd()}
102966
102923
  `);
@@ -103039,10 +102996,10 @@ function nodeErrorCode5(error51) {
103039
102996
  }
103040
102997
 
103041
102998
  // packages/omo-codex/src/install/codex-cleanup-safety.ts
103042
- import { dirname as dirname21, isAbsolute as isAbsolute10, join as join57, relative as relative5, resolve as resolve15 } from "node:path";
102999
+ import { dirname as dirname20, isAbsolute as isAbsolute10, join as join57, relative as relative5, resolve as resolve15 } from "node:path";
103043
103000
  function codexHomeResolvesToFilesystemRoot(codexHome) {
103044
103001
  const resolved = resolve15(codexHome);
103045
- return dirname21(resolved) === resolved;
103002
+ return dirname20(resolved) === resolved;
103046
103003
  }
103047
103004
  function validateManagedCleanupTarget(input) {
103048
103005
  if (!isAbsolute10(input.path))
@@ -103305,7 +103262,7 @@ var CODEGRAPH_RELATIVE_ARGS2 = new Set(["components/codegraph/dist/serve.js", ".
103305
103262
  import { execFile as execFile4 } from "node:child_process";
103306
103263
  import { existsSync as existsSync32 } from "node:fs";
103307
103264
  import { homedir as homedir11 } from "node:os";
103308
- import { dirname as dirname25, join as join63, resolve as resolve20 } from "node:path";
103265
+ import { dirname as dirname24, join as join63, resolve as resolve20 } from "node:path";
103309
103266
  import { fileURLToPath } from "node:url";
103310
103267
  import { promisify as promisify3 } from "node:util";
103311
103268
 
@@ -103336,9 +103293,9 @@ function resolveAgentHome(options) {
103336
103293
  }
103337
103294
 
103338
103295
  // packages/omo-senpi/src/install/local-launcher.ts
103339
- import { chmodSync as chmodSync3, existsSync as existsSync31, mkdirSync as mkdirSync10, readFileSync as readFileSync14, rmSync as rmSync2, writeFileSync as writeFileSync6 } from "node:fs";
103296
+ import { chmodSync as chmodSync3, existsSync as existsSync31, mkdirSync as mkdirSync10, readFileSync as readFileSync14, rmSync, writeFileSync as writeFileSync6 } from "node:fs";
103340
103297
  import { homedir as homedir10 } from "node:os";
103341
- import { dirname as dirname22, join as join60, resolve as resolve18 } from "node:path";
103298
+ import { dirname as dirname21, join as join60, resolve as resolve18 } from "node:path";
103342
103299
  var MARKER = "omo-local-launcher";
103343
103300
  function localLauncherPath(homeDir = homedir10()) {
103344
103301
  return join60(homeDir, ".local", "bin", "omo");
@@ -103409,7 +103366,7 @@ function installLocalLauncher(options) {
103409
103366
  const path7 = localLauncherPath(options.homeDir);
103410
103367
  if (existsSync31(path7) && !readFileSync14(path7, "utf8").includes(MARKER))
103411
103368
  return;
103412
- mkdirSync10(dirname22(path7), { recursive: true });
103369
+ mkdirSync10(dirname21(path7), { recursive: true });
103413
103370
  writeFileSync6(path7, renderLocalLauncher(options));
103414
103371
  chmodSync3(path7, 493);
103415
103372
  if ((options.platform ?? process.platform) === "win32") {
@@ -103424,12 +103381,12 @@ node "%~dp0omo" %*\r
103424
103381
  import { createHash as createHash5 } from "node:crypto";
103425
103382
  import { constants as constants9 } from "node:fs";
103426
103383
  import { access as access2, readFile as readFile26, stat as stat6 } from "node:fs/promises";
103427
- import { dirname as dirname24, join as join62 } from "node:path";
103384
+ import { dirname as dirname23, join as join62 } from "node:path";
103428
103385
 
103429
103386
  // packages/omo-senpi/src/install/senpi-settings.ts
103430
103387
  import { constants as constants8 } from "node:fs";
103431
103388
  import { access, copyFile as copyFile3, mkdir as mkdir9, readFile as readFile25, rename as rename5, writeFile as writeFile14 } from "node:fs/promises";
103432
- import { dirname as dirname23, join as join61, resolve as resolve19 } from "node:path";
103389
+ import { dirname as dirname22, join as join61, resolve as resolve19 } from "node:path";
103433
103390
  var OMO_SENPI_PACKAGE_NAME = "@code-yeongyu/omo-senpi";
103434
103391
  var LEGACY_BUILTIN_SHADOW_PACKAGES = [
103435
103392
  join61("packages", "pi-goal"),
@@ -103476,7 +103433,7 @@ async function removeSupersededOmoPackages(packages, currentPluginPath, agentDir
103476
103433
  return entries.filter((entry) => entry !== undefined);
103477
103434
  }
103478
103435
  async function writeSettingsAtomically(settingsPath, settings) {
103479
- await mkdir9(dirname23(settingsPath), { recursive: true });
103436
+ await mkdir9(dirname22(settingsPath), { recursive: true });
103480
103437
  const backupPath = await nextBackupPath(settingsPath);
103481
103438
  if (await fileExists(settingsPath)) {
103482
103439
  await copyFile3(settingsPath, backupPath);
@@ -103596,7 +103553,7 @@ async function hasMissingPluginArtifact(pluginPath) {
103596
103553
  }
103597
103554
  async function verifyAstGrepRuntimeIntegrity(pluginPath, platform) {
103598
103555
  const runtimeEntry = join62(pluginPath, "runtime", "ast-grep-mcp", "cli.js");
103599
- const manifestPath = join62(dirname24(runtimeEntry), "manifest.json");
103556
+ const manifestPath = join62(dirname23(runtimeEntry), "manifest.json");
103600
103557
  let runtimeStat;
103601
103558
  try {
103602
103559
  runtimeStat = await stat6(runtimeEntry);
@@ -103686,7 +103643,7 @@ async function runSenpiInstaller(options = {}) {
103686
103643
  function resolveInstallContext(options) {
103687
103644
  const env3 = options.env ?? process.env;
103688
103645
  const allowBuild = options.pluginPath === undefined;
103689
- const repoRoot = resolve20(options.repoRoot ?? (allowBuild ? findRepoRoot2(dirname25(fileURLToPath(import.meta.url))) : dirname25(resolve20(options.pluginPath))));
103646
+ const repoRoot = resolve20(options.repoRoot ?? (allowBuild ? findRepoRoot2(dirname24(fileURLToPath(import.meta.url))) : dirname24(resolve20(options.pluginPath))));
103690
103647
  const agentDir = resolve20(options.agentDir ?? resolveAgentHome({ env: env3, homeDir: env3.HOME ?? homedir11() }));
103691
103648
  const pluginPath = resolve20(options.pluginPath ?? join63(repoRoot, "packages", "omo-senpi", "plugin"));
103692
103649
  return {
@@ -107690,7 +107647,7 @@ var import_picocolors11 = __toESM(require_picocolors(), 1);
107690
107647
  // packages/omo-opencode/src/cli/run/opencode-binary-resolver.ts
107691
107648
  init_bun_which_shim();
107692
107649
  init_spawn_with_windows_hide();
107693
- import { delimiter as delimiter2, dirname as dirname26, posix as posix9, win32 as win325 } from "node:path";
107650
+ import { delimiter as delimiter2, dirname as dirname25, posix as posix9, win32 as win325 } from "node:path";
107694
107651
  var OPENCODE_COMMANDS = ["opencode", "opencode-desktop"];
107695
107652
  var WINDOWS_SUFFIXES = ["", ".exe", ".cmd", ".bat", ".ps1"];
107696
107653
  function getCommandCandidates(platform) {
@@ -107748,7 +107705,7 @@ async function findWorkingOpencodeBinary(pathEnv = process.env.PATH, probe2 = ca
107748
107705
  return null;
107749
107706
  }
107750
107707
  function buildPathWithBinaryFirst(pathEnv, binaryPath) {
107751
- const preferredDir = dirname26(binaryPath);
107708
+ const preferredDir = dirname25(binaryPath);
107752
107709
  const existing = (pathEnv ?? "").split(delimiter2).filter((entry) => entry.length > 0 && entry !== preferredDir);
107753
107710
  return [preferredDir, ...existing].join(delimiter2);
107754
107711
  }
@@ -108526,7 +108483,7 @@ init_state();
108526
108483
  // packages/omo-opencode/src/features/run-continuation-state/constants.ts
108527
108484
  var CONTINUATION_MARKER_DIR = ".omo/run-continuation";
108528
108485
  // packages/omo-opencode/src/features/run-continuation-state/storage.ts
108529
- import { existsSync as existsSync40, mkdirSync as mkdirSync12, readFileSync as readFileSync20, rmSync as rmSync3, writeFileSync as writeFileSync7 } from "node:fs";
108486
+ import { existsSync as existsSync40, mkdirSync as mkdirSync12, readFileSync as readFileSync20, rmSync as rmSync2, writeFileSync as writeFileSync7 } from "node:fs";
108530
108487
  import { join as join68 } from "node:path";
108531
108488
  function getMarkerPath(directory, sessionID) {
108532
108489
  return join68(directory, CONTINUATION_MARKER_DIR, `${sessionID}.json`);
@@ -108706,7 +108663,7 @@ init_agent_display_names();
108706
108663
  // packages/omo-opencode/src/hooks/ralph-loop/storage.ts
108707
108664
  init_frontmatter2();
108708
108665
  import { existsSync as existsSync41, readFileSync as readFileSync22, writeFileSync as writeFileSync8, unlinkSync as unlinkSync6, mkdirSync as mkdirSync13 } from "node:fs";
108709
- import { dirname as dirname27, join as join70 } from "node:path";
108666
+ import { dirname as dirname26, join as join70 } from "node:path";
108710
108667
 
108711
108668
  // packages/omo-opencode/src/hooks/ralph-loop/constants.ts
108712
108669
  var DEFAULT_STATE_FILE = ".omo/ralph-loop.local.md";
@@ -110548,8 +110505,8 @@ function getCategoryEffectiveVariant(categoryName, requirement, config4) {
110548
110505
  }
110549
110506
 
110550
110507
  // packages/omo-opencode/src/cli/doctor/checks/model-resolution-details.ts
110551
- function formatCapabilityResolutionLabel(mode2) {
110552
- return mode2 ?? "unknown";
110508
+ function formatCapabilityResolutionLabel(mode) {
110509
+ return mode ?? "unknown";
110553
110510
  }
110554
110511
  function buildModelResolutionDetails(options) {
110555
110512
  const details = [];
@@ -110667,8 +110624,8 @@ function collectCapabilityResolutionIssues(info) {
110667
110624
  const issues = [];
110668
110625
  const allEntries = [...info.agents, ...info.categories];
110669
110626
  const fallbackEntries = allEntries.filter((entry) => {
110670
- const mode2 = entry.capabilityDiagnostics?.resolutionMode;
110671
- return mode2 === "unknown";
110627
+ const mode = entry.capabilityDiagnostics?.resolutionMode;
110628
+ return mode === "unknown";
110672
110629
  });
110673
110630
  if (fallbackEntries.length === 0) {
110674
110631
  return issues;
@@ -110944,7 +110901,7 @@ init_src2();
110944
110901
  import { existsSync as existsSync55 } from "node:fs";
110945
110902
  import { createRequire as createRequire4 } from "node:module";
110946
110903
  import { homedir as homedir19 } from "node:os";
110947
- import { dirname as dirname32, join as join83 } from "node:path";
110904
+ import { dirname as dirname31, join as join83 } from "node:path";
110948
110905
 
110949
110906
  // packages/omo-opencode/src/hooks/comment-checker/downloader.ts
110950
110907
  import { join as join82 } from "path";
@@ -111041,7 +110998,7 @@ function findCommentCheckerPackageBinary(baseDirOverride, resolvePackageJsonPath
111041
110998
  const binaryName = process.platform === "win32" ? "comment-checker.exe" : "comment-checker";
111042
110999
  const platformKey = `${process.platform}-${process.arch === "x64" ? "x64" : process.arch}`;
111043
111000
  try {
111044
- const packageDir = baseDirOverride ?? dirname32(resolvePackageJsonPath());
111001
+ const packageDir = baseDirOverride ?? dirname31(resolvePackageJsonPath());
111045
111002
  const vendorPath = join83(packageDir, "vendor", platformKey, binaryName);
111046
111003
  if (existsSync55(vendorPath))
111047
111004
  return vendorPath;
@@ -111193,7 +111150,7 @@ async function getGhCliInfo(dependencies = {}) {
111193
111150
  init_zod();
111194
111151
  init_opencode_config_dir();
111195
111152
  import { existsSync as existsSync56, readFileSync as readFileSync35 } from "node:fs";
111196
- import { delimiter as delimiter3, dirname as dirname33, resolve as resolve23 } from "node:path";
111153
+ import { delimiter as delimiter3, dirname as dirname32, resolve as resolve23 } from "node:path";
111197
111154
  import { fileURLToPath as fileURLToPath7 } from "node:url";
111198
111155
 
111199
111156
  // packages/omo-opencode/src/mcp/cli-suffix.ts
@@ -111324,7 +111281,7 @@ var LSP_BOOTSTRAP_SCRIPT = [
111324
111281
  ].join(";");
111325
111282
  function getModuleDirectory(moduleUrl) {
111326
111283
  try {
111327
- return dirname33(fileURLToPath7(moduleUrl));
111284
+ return dirname32(fileURLToPath7(moduleUrl));
111328
111285
  } catch (error51) {
111329
111286
  if (!(error51 instanceof Error))
111330
111287
  throw error51;
@@ -112057,7 +112014,7 @@ async function pathExists2(path15) {
112057
112014
  init_src2();
112058
112015
  import { readdir as readdir15, readFile as readFile28, stat as stat7 } from "node:fs/promises";
112059
112016
  import { homedir as homedir23 } from "node:os";
112060
- import { dirname as dirname34, isAbsolute as isAbsolute13, join as join86, relative as relative9, resolve as resolve25, sep as sep9 } from "node:path";
112017
+ import { dirname as dirname33, isAbsolute as isAbsolute13, join as join86, relative as relative9, resolve as resolve25, sep as sep9 } from "node:path";
112061
112018
  var CODEX_COMPONENTS_CHECK_ID = "codex-components";
112062
112019
  var CODEX_COMPONENTS_CHECK_NAME = "codex-components";
112063
112020
  var PLUGIN_DATA_DIR_NAME = "omo-sisyphuslabs";
@@ -112131,7 +112088,7 @@ async function auditBundleTargets(pluginRoot) {
112131
112088
  const manifest2 = await readJson2(manifestPath);
112132
112089
  if (manifest2 === null || !isRecord13(manifest2["mcpServers"]))
112133
112090
  continue;
112134
- const manifestRoot = dirname34(manifestPath);
112091
+ const manifestRoot = dirname33(manifestPath);
112135
112092
  const isRootManifest = resolve25(manifestRoot) === resolve25(pluginRoot);
112136
112093
  for (const server2 of Object.values(manifest2["mcpServers"])) {
112137
112094
  if (!isRecord13(server2) || !Array.isArray(server2["args"]))
@@ -112152,7 +112109,7 @@ async function auditBundleTargets(pluginRoot) {
112152
112109
  continue;
112153
112110
  const commands2 = [];
112154
112111
  collectHookCommands(manifest2, commands2);
112155
- const hookPluginRoot = dirname34(dirname34(hookManifestPath));
112112
+ const hookPluginRoot = dirname33(dirname33(hookManifestPath));
112156
112113
  for (const command of commands2) {
112157
112114
  for (const relativePath of extractPluginRootPaths(command)) {
112158
112115
  referencedCount += 1;
@@ -112191,7 +112148,7 @@ async function classifyBundleTarget(bundleRoot, baseRoot, relativePath, allowEsc
112191
112148
  }
112192
112149
  async function findHookManifestPaths(root) {
112193
112150
  const paths3 = await findManifestPaths(root, "hooks.json");
112194
- return paths3.filter((path15) => dirname34(path15).endsWith(`${sep9}hooks`));
112151
+ return paths3.filter((path15) => dirname33(path15).endsWith(`${sep9}hooks`));
112195
112152
  }
112196
112153
  async function findManifestPaths(root, manifestName) {
112197
112154
  let entries;
@@ -112710,8 +112667,8 @@ function formatVerbose(result) {
112710
112667
  }
112711
112668
 
112712
112669
  // packages/omo-opencode/src/cli/doctor/framework/formatter.ts
112713
- function formatDoctorOutput(result, mode2) {
112714
- switch (mode2) {
112670
+ function formatDoctorOutput(result, mode) {
112671
+ switch (mode) {
112715
112672
  case "default":
112716
112673
  return formatDefault(result);
112717
112674
  case "status":
@@ -112875,7 +112832,7 @@ import {
112875
112832
  unlinkSync as unlinkSync9,
112876
112833
  writeFileSync as writeFileSync12
112877
112834
  } from "node:fs";
112878
- import { basename as basename12, dirname as dirname35, join as join90 } from "node:path";
112835
+ import { basename as basename12, dirname as dirname34, join as join90 } from "node:path";
112879
112836
 
112880
112837
  // packages/mcp-client-core/src/config-dir.ts
112881
112838
  import { existsSync as existsSync61, realpathSync as realpathSync8 } from "node:fs";
@@ -113059,7 +113016,7 @@ function readLegacyStore() {
113059
113016
  }
113060
113017
  function writeTokenFile(filePath, token) {
113061
113018
  try {
113062
- const dir = dirname35(filePath);
113019
+ const dir = dirname34(filePath);
113063
113020
  if (!existsSync63(dir)) {
113064
113021
  mkdirSync15(dir, { recursive: true });
113065
113022
  }
@@ -114031,10 +113988,10 @@ function formatClassification(classification) {
114031
113988
  return classification.ref.length > 0 ? `${head} ${classification.path} ${classification.ref}` : `${head} ${classification.path}`;
114032
113989
  }
114033
113990
  function formatSummary(result) {
114034
- const mode2 = result.apply ? "apply" : "dry-run";
113991
+ const mode = result.apply ? "apply" : "dry-run";
114035
113992
  const removed2 = result.repos.reduce((total, repo) => total + repo.removed.length, 0);
114036
113993
  const failed = result.repos.reduce((total, repo) => total + repo.failed.length, 0);
114037
- return `SUMMARY mode=${mode2} repos=${result.repos.length} sweep=${result.sweepCount} keep=${result.keepCount} prune=${result.pruneCount} removed=${removed2} failed=${failed}`;
113994
+ return `SUMMARY mode=${mode} repos=${result.repos.length} sweep=${result.sweepCount} keep=${result.keepCount} prune=${result.pruneCount} removed=${removed2} failed=${failed}`;
114038
113995
  }
114039
113996
  function formatResult(result) {
114040
113997
  const lines = [];
@@ -114556,9 +114513,9 @@ Examples:
114556
114513
  `).action(async (options) => {
114557
114514
  const rootOptions = program2.opts();
114558
114515
  const rootDoctorPlatform = rootOptions.platform === "opencode" || rootOptions.platform === "codex" ? rootOptions.platform : undefined;
114559
- const mode2 = options.status ? "status" : options.verbose ? "verbose" : "default";
114516
+ const mode = options.status ? "status" : options.verbose ? "verbose" : "default";
114560
114517
  const doctorOptions = {
114561
- mode: mode2,
114518
+ mode,
114562
114519
  json: options.json ?? false,
114563
114520
  target: resolveDoctorTarget(process.env.OMO_INVOCATION_NAME, options.platform ?? rootDoctorPlatform)
114564
114521
  };