oh-my-opencode 5.1.1 → 5.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.ja.md +3 -3
  2. package/README.ko.md +3 -3
  3. package/README.md +6 -4
  4. package/README.ru.md +3 -3
  5. package/README.zh-cn.md +3 -3
  6. package/dist/cli/index.js +112 -95
  7. package/dist/cli-node/index.js +112 -95
  8. package/dist/index.js +66 -37
  9. package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
  10. package/dist/skills/refactor/SKILL.md +1 -0
  11. package/dist/skills/remove-ai-slops/SKILL.md +1 -0
  12. package/dist/skills/ulw-execute/SKILL.md +1 -0
  13. package/dist/tui.js +27 -31
  14. package/package.json +27 -31
  15. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  16. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  17. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  18. package/packages/omo-codex/plugin/components/comment-checker/dist/cli.js +33 -7
  19. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  20. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  21. package/packages/omo-codex/plugin/components/comment-checker/src/runner.ts +4 -4
  22. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  23. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  27. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  28. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  29. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  30. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  31. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  32. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  34. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  35. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  36. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  37. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  38. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  40. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  62. package/packages/omo-codex/plugin/package-lock.json +12 -12
  63. package/packages/omo-codex/plugin/package.json +1 -1
  64. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  65. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +1 -0
  66. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +1 -0
  67. package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +1 -0
  68. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
  69. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  70. package/packages/shared-skills/skills/refactor/SKILL.md +1 -0
  71. package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +1 -0
  72. package/packages/shared-skills/skills/ulw-execute/SKILL.md +1 -0
package/dist/index.js CHANGED
@@ -90381,8 +90381,38 @@ function recordCachedCommentCheckerRelease(cacheDir) {
90381
90381
  `);
90382
90382
  }
90383
90383
  // packages/comment-checker-core/src/runner.ts
90384
+ import { createRequire as createRequire2 } from "module";
90385
+
90386
+ // packages/comment-checker-core/src/package-binary.ts
90384
90387
  import { createRequire } from "module";
90385
90388
  import { dirname as dirname14, join as join45 } from "path";
90389
+ var COMMENT_CHECKER_PACKAGE_NAME = "@code-yeongyu/comment-checker";
90390
+ function isModuleResolutionMiss(error) {
90391
+ return error instanceof Error || typeof error === "object" && error !== null && "name" in error && error.name === "ResolveMessage";
90392
+ }
90393
+ function findCommentCheckerPackageBinary(input) {
90394
+ const packageName = input.packageName ?? COMMENT_CHECKER_PACKAGE_NAME;
90395
+ const platformKey = `${input.platform ?? process.platform}-${input.arch ?? process.arch}`;
90396
+ const packageDir = dirname14(input.packageJsonPath);
90397
+ const candidates = [
90398
+ resolvePlatformPackageBinary(input.packageJsonPath, `${packageName}-${platformKey}`, input.binaryName),
90399
+ join45(packageDir, "vendor", platformKey, input.binaryName),
90400
+ join45(packageDir, "bin", input.binaryName)
90401
+ ];
90402
+ return candidates.find((candidate) => candidate !== null && input.existsSync(candidate)) ?? null;
90403
+ }
90404
+ function resolvePlatformPackageBinary(packageJsonPath, platformPackageName, binaryName) {
90405
+ try {
90406
+ const manifestPath = createRequire(packageJsonPath).resolve(`${platformPackageName}/package.json`);
90407
+ return join45(dirname14(manifestPath), "bin", binaryName);
90408
+ } catch (error) {
90409
+ if (isModuleResolutionMiss(error))
90410
+ return null;
90411
+ throw error;
90412
+ }
90413
+ }
90414
+
90415
+ // packages/comment-checker-core/src/runner.ts
90386
90416
  var EMPTY_RESULT = { hasComments: false, message: "" };
90387
90417
  var MAX_FAILURE_STDERR = 500;
90388
90418
  function normalizeMessage(message) {
@@ -90407,7 +90437,7 @@ function killProcessSafely(process2, signal) {
90407
90437
  }
90408
90438
  }
90409
90439
  function resolveCommentCheckerBinary(input) {
90410
- const packageName = input.packageName ?? "@code-yeongyu/comment-checker";
90440
+ const packageName = input.packageName ?? COMMENT_CHECKER_PACKAGE_NAME;
90411
90441
  if (input.cachedBinaryPath !== null && input.existsSync(input.cachedBinaryPath)) {
90412
90442
  return input.cachedBinaryPath;
90413
90443
  }
@@ -90415,14 +90445,17 @@ function resolveCommentCheckerBinary(input) {
90415
90445
  return null;
90416
90446
  }
90417
90447
  try {
90418
- const require2 = createRequire(input.importMetaUrl);
90448
+ const require2 = createRequire2(input.importMetaUrl);
90419
90449
  const packageJsonPath = require2.resolve(`${packageName}/package.json`);
90420
- const binaryPath = join45(dirname14(packageJsonPath), "bin", input.binaryName);
90421
- return input.existsSync(binaryPath) ? binaryPath : null;
90450
+ return findCommentCheckerPackageBinary({
90451
+ packageJsonPath,
90452
+ packageName,
90453
+ binaryName: input.binaryName,
90454
+ existsSync: input.existsSync
90455
+ });
90422
90456
  } catch (error) {
90423
- if (error instanceof Error || typeof error === "object" && error !== null && "name" in error && error.name === "ResolveMessage") {
90457
+ if (isModuleResolutionMiss(error))
90424
90458
  return null;
90425
- }
90426
90459
  throw error;
90427
90460
  }
90428
90461
  }
@@ -98169,7 +98202,7 @@ function getCachedVersion(options = {}) {
98169
98202
  // package.json
98170
98203
  var package_default = {
98171
98204
  name: "oh-my-opencode",
98172
- version: "5.1.1",
98205
+ version: "5.1.3",
98173
98206
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
98174
98207
  main: "./dist/index.js",
98175
98208
  types: "dist/index.d.ts",
@@ -98340,25 +98373,14 @@ var package_default = {
98340
98373
  },
98341
98374
  homepage: "https://github.com/code-yeongyu/oh-my-openagent#readme",
98342
98375
  dependencies: {
98343
- "@clack/prompts": "^1.8.1",
98344
- "@modelcontextprotocol/sdk": "^1.30.0",
98345
- "@opencode-ai/plugin": "1.18.31",
98346
- "@opencode-ai/sdk": "1.18.31",
98347
- "@opentui/core": "^0.5.11",
98348
- "@opentui/keymap": "^0.5.11",
98349
98376
  "@opentui/solid": "^0.5.11",
98350
- commander: "^15.0.0",
98351
98377
  "detect-libc": "^2.1.2",
98352
- diff: "^9.0.0",
98353
- "js-yaml": "^5.4.2",
98354
- "jsonc-parser": "^3.3.1",
98355
- picocolors: "^1.1.1",
98356
- picomatch: "^4.0.7",
98357
- "posthog-node": "^5.52.4",
98358
98378
  zod: "^4.6.5"
98359
98379
  },
98360
98380
  devDependencies: {
98361
- "@code-yeongyu/senpi": "2026.9.29",
98381
+ "@clack/prompts": "^1.8.1",
98382
+ "@code-yeongyu/senpi": "2026.9.29-4",
98383
+ "@modelcontextprotocol/sdk": "^1.30.0",
98362
98384
  "@oh-my-opencode/agents-md-core": "workspace:*",
98363
98385
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
98364
98386
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -98392,36 +98414,43 @@ var package_default = {
98392
98414
  "@oh-my-opencode/telemetry-core": "workspace:*",
98393
98415
  "@oh-my-opencode/tmux-core": "workspace:*",
98394
98416
  "@oh-my-opencode/utils": "workspace:*",
98417
+ "@opencode-ai/plugin": "1.18.31",
98418
+ "@opencode-ai/sdk": "1.18.31",
98419
+ "@opentui/core": "^0.5.11",
98420
+ "@opentui/keymap": "^0.5.11",
98395
98421
  "@types/js-yaml": "^4.0.9",
98396
98422
  "@types/picomatch": "^4.0.3",
98397
98423
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
98398
98424
  "@xterm/addon-unicode11": "^0.9.0",
98399
98425
  "@xterm/xterm": "^6.0.0",
98400
98426
  "bun-types": "1.4.2",
98427
+ commander: "^15.0.0",
98428
+ diff: "^9.0.0",
98429
+ "js-yaml": "^5.4.2",
98430
+ "jsonc-parser": "^3.3.1",
98401
98431
  "node-pty": "^1.1.0",
98402
98432
  omowright: "github:code-yeongyu/omowright#293ca5002cbd4c8b0c104c5934683385ef7e0d3a",
98433
+ picocolors: "^1.1.1",
98434
+ picomatch: "^4.0.7",
98435
+ "posthog-node": "^5.52.4",
98403
98436
  "puppeteer-core": "^25.11.0",
98404
98437
  typescript: "^7.0.2"
98405
98438
  },
98406
98439
  optionalDependencies: {
98407
- "oh-my-opencode-darwin-arm64": "5.1.1",
98408
- "oh-my-opencode-darwin-x64": "5.1.1",
98409
- "oh-my-opencode-darwin-x64-baseline": "5.1.1",
98410
- "oh-my-opencode-linux-arm64": "5.1.1",
98411
- "oh-my-opencode-linux-arm64-musl": "5.1.1",
98412
- "oh-my-opencode-linux-x64": "5.1.1",
98413
- "oh-my-opencode-linux-x64-baseline": "5.1.1",
98414
- "oh-my-opencode-linux-x64-musl": "5.1.1",
98415
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.1",
98416
- "oh-my-opencode-windows-arm64": "5.1.1",
98417
- "oh-my-opencode-windows-x64": "5.1.1",
98418
- "oh-my-opencode-windows-x64-baseline": "5.1.1"
98440
+ "oh-my-opencode-darwin-arm64": "5.1.3",
98441
+ "oh-my-opencode-darwin-x64": "5.1.3",
98442
+ "oh-my-opencode-darwin-x64-baseline": "5.1.3",
98443
+ "oh-my-opencode-linux-arm64": "5.1.3",
98444
+ "oh-my-opencode-linux-arm64-musl": "5.1.3",
98445
+ "oh-my-opencode-linux-x64": "5.1.3",
98446
+ "oh-my-opencode-linux-x64-baseline": "5.1.3",
98447
+ "oh-my-opencode-linux-x64-musl": "5.1.3",
98448
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.3",
98449
+ "oh-my-opencode-windows-arm64": "5.1.3",
98450
+ "oh-my-opencode-windows-x64": "5.1.3",
98451
+ "oh-my-opencode-windows-x64-baseline": "5.1.3"
98419
98452
  },
98420
98453
  overrides: {
98421
- "@earendil-works/pi-agent-core": "0.84.2",
98422
- "@earendil-works/pi-ai": "0.84.2",
98423
- "@earendil-works/pi-coding-agent": "0.84.2",
98424
- "@earendil-works/pi-tui": "0.84.2",
98425
98454
  hono: "^4.13.8",
98426
98455
  "@hono/node-server": "2.1.1",
98427
98456
  "express-rate-limit": "^8.7.0",
@@ -5,5 +5,5 @@
5
5
  "index.js": "b6b064fab277031c6c51f5a58b84b31040f9960bf767bf646adc0540c1d25c1b",
6
6
  "page-bundle.js": "bfd51e8383cf47200d57387bbbed258bce5a3a3d00c38fc108034d2888e23f0c"
7
7
  },
8
- "stagedAtUtc": "2026-09-29T06:10:49.442Z"
8
+ "stagedAtUtc": "2026-09-29T19:36:29.416Z"
9
9
  }
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: refactor
3
3
  description: "Guides a refactor, cleanup, or restructure with the right decomposition. Use when the user asks to refactor, simplify, extract, or modernize code."
4
+ argument-hint: "<refactoring-target> [--scope=<file|module|project>] [--strategy=<safe|aggressive>]"
4
5
  ---
5
6
 
6
7
  export const REFACTOR_TEMPLATE = `# Intelligent Refactor Command
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: remove-ai-slops
3
3
  description: "Removes AI-generated code smells from branch changes or an explicit file list behind regression tests. Use when the user asks to clean up, deslop, or remove AI-slop patterns from recent changes."
4
+ argument-hint: "[file ...]"
4
5
  ---
5
6
 
6
7
  # Remove AI Slops Skill
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: ulw-execute
3
3
  description: "Executes a written ulw-plan work plan with Boulder state, evidence ledger, worktree discipline, and parallel subagents. Use when the user says ulw-execute or asks to run a .omo/plans plan."
4
+ argument-hint: "[plan-name] [--worktree <absolute-path>] [--make-pr] [--ship]"
4
5
  ---
5
6
 
6
7
  ## ABSOLUTE RULE: YOU ARE AN ORCHESTRATOR — NEVER THE IMPLEMENTER
package/dist/tui.js CHANGED
@@ -74214,7 +74214,7 @@ init_shared();
74214
74214
  // package.json
74215
74215
  var package_default = {
74216
74216
  name: "oh-my-opencode",
74217
- version: "5.1.1",
74217
+ version: "5.1.3",
74218
74218
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
74219
74219
  main: "./dist/index.js",
74220
74220
  types: "dist/index.d.ts",
@@ -74385,25 +74385,14 @@ var package_default = {
74385
74385
  },
74386
74386
  homepage: "https://github.com/code-yeongyu/oh-my-openagent#readme",
74387
74387
  dependencies: {
74388
- "@clack/prompts": "^1.8.1",
74389
- "@modelcontextprotocol/sdk": "^1.30.0",
74390
- "@opencode-ai/plugin": "1.18.31",
74391
- "@opencode-ai/sdk": "1.18.31",
74392
- "@opentui/core": "^0.5.11",
74393
- "@opentui/keymap": "^0.5.11",
74394
74388
  "@opentui/solid": "^0.5.11",
74395
- commander: "^15.0.0",
74396
74389
  "detect-libc": "^2.1.2",
74397
- diff: "^9.0.0",
74398
- "js-yaml": "^5.4.2",
74399
- "jsonc-parser": "^3.3.1",
74400
- picocolors: "^1.1.1",
74401
- picomatch: "^4.0.7",
74402
- "posthog-node": "^5.52.4",
74403
74390
  zod: "^4.6.5"
74404
74391
  },
74405
74392
  devDependencies: {
74406
- "@code-yeongyu/senpi": "2026.9.29",
74393
+ "@clack/prompts": "^1.8.1",
74394
+ "@code-yeongyu/senpi": "2026.9.29-4",
74395
+ "@modelcontextprotocol/sdk": "^1.30.0",
74407
74396
  "@oh-my-opencode/agents-md-core": "workspace:*",
74408
74397
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
74409
74398
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -74437,36 +74426,43 @@ var package_default = {
74437
74426
  "@oh-my-opencode/telemetry-core": "workspace:*",
74438
74427
  "@oh-my-opencode/tmux-core": "workspace:*",
74439
74428
  "@oh-my-opencode/utils": "workspace:*",
74429
+ "@opencode-ai/plugin": "1.18.31",
74430
+ "@opencode-ai/sdk": "1.18.31",
74431
+ "@opentui/core": "^0.5.11",
74432
+ "@opentui/keymap": "^0.5.11",
74440
74433
  "@types/js-yaml": "^4.0.9",
74441
74434
  "@types/picomatch": "^4.0.3",
74442
74435
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
74443
74436
  "@xterm/addon-unicode11": "^0.9.0",
74444
74437
  "@xterm/xterm": "^6.0.0",
74445
74438
  "bun-types": "1.4.2",
74439
+ commander: "^15.0.0",
74440
+ diff: "^9.0.0",
74441
+ "js-yaml": "^5.4.2",
74442
+ "jsonc-parser": "^3.3.1",
74446
74443
  "node-pty": "^1.1.0",
74447
74444
  omowright: "github:code-yeongyu/omowright#293ca5002cbd4c8b0c104c5934683385ef7e0d3a",
74445
+ picocolors: "^1.1.1",
74446
+ picomatch: "^4.0.7",
74447
+ "posthog-node": "^5.52.4",
74448
74448
  "puppeteer-core": "^25.11.0",
74449
74449
  typescript: "^7.0.2"
74450
74450
  },
74451
74451
  optionalDependencies: {
74452
- "oh-my-opencode-darwin-arm64": "5.1.1",
74453
- "oh-my-opencode-darwin-x64": "5.1.1",
74454
- "oh-my-opencode-darwin-x64-baseline": "5.1.1",
74455
- "oh-my-opencode-linux-arm64": "5.1.1",
74456
- "oh-my-opencode-linux-arm64-musl": "5.1.1",
74457
- "oh-my-opencode-linux-x64": "5.1.1",
74458
- "oh-my-opencode-linux-x64-baseline": "5.1.1",
74459
- "oh-my-opencode-linux-x64-musl": "5.1.1",
74460
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.1",
74461
- "oh-my-opencode-windows-arm64": "5.1.1",
74462
- "oh-my-opencode-windows-x64": "5.1.1",
74463
- "oh-my-opencode-windows-x64-baseline": "5.1.1"
74452
+ "oh-my-opencode-darwin-arm64": "5.1.3",
74453
+ "oh-my-opencode-darwin-x64": "5.1.3",
74454
+ "oh-my-opencode-darwin-x64-baseline": "5.1.3",
74455
+ "oh-my-opencode-linux-arm64": "5.1.3",
74456
+ "oh-my-opencode-linux-arm64-musl": "5.1.3",
74457
+ "oh-my-opencode-linux-x64": "5.1.3",
74458
+ "oh-my-opencode-linux-x64-baseline": "5.1.3",
74459
+ "oh-my-opencode-linux-x64-musl": "5.1.3",
74460
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.3",
74461
+ "oh-my-opencode-windows-arm64": "5.1.3",
74462
+ "oh-my-opencode-windows-x64": "5.1.3",
74463
+ "oh-my-opencode-windows-x64-baseline": "5.1.3"
74464
74464
  },
74465
74465
  overrides: {
74466
- "@earendil-works/pi-agent-core": "0.84.2",
74467
- "@earendil-works/pi-ai": "0.84.2",
74468
- "@earendil-works/pi-coding-agent": "0.84.2",
74469
- "@earendil-works/pi-tui": "0.84.2",
74470
74466
  hono: "^4.13.8",
74471
74467
  "@hono/node-server": "2.1.1",
74472
74468
  "express-rate-limit": "^8.7.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "5.1.1",
3
+ "version": "5.1.3",
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",
@@ -171,25 +171,14 @@
171
171
  },
172
172
  "homepage": "https://github.com/code-yeongyu/oh-my-openagent#readme",
173
173
  "dependencies": {
174
- "@clack/prompts": "^1.8.1",
175
- "@modelcontextprotocol/sdk": "^1.30.0",
176
- "@opencode-ai/plugin": "1.18.31",
177
- "@opencode-ai/sdk": "1.18.31",
178
- "@opentui/core": "^0.5.11",
179
- "@opentui/keymap": "^0.5.11",
180
174
  "@opentui/solid": "^0.5.11",
181
- "commander": "^15.0.0",
182
175
  "detect-libc": "^2.1.2",
183
- "diff": "^9.0.0",
184
- "js-yaml": "^5.4.2",
185
- "jsonc-parser": "^3.3.1",
186
- "picocolors": "^1.1.1",
187
- "picomatch": "^4.0.7",
188
- "posthog-node": "^5.52.4",
189
176
  "zod": "^4.6.5"
190
177
  },
191
178
  "devDependencies": {
192
- "@code-yeongyu/senpi": "2026.9.29",
179
+ "@clack/prompts": "^1.8.1",
180
+ "@code-yeongyu/senpi": "2026.9.29-4",
181
+ "@modelcontextprotocol/sdk": "^1.30.0",
193
182
  "@oh-my-opencode/agents-md-core": "workspace:*",
194
183
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
195
184
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -223,36 +212,43 @@
223
212
  "@oh-my-opencode/telemetry-core": "workspace:*",
224
213
  "@oh-my-opencode/tmux-core": "workspace:*",
225
214
  "@oh-my-opencode/utils": "workspace:*",
215
+ "@opencode-ai/plugin": "1.18.31",
216
+ "@opencode-ai/sdk": "1.18.31",
217
+ "@opentui/core": "^0.5.11",
218
+ "@opentui/keymap": "^0.5.11",
226
219
  "@types/js-yaml": "^4.0.9",
227
220
  "@types/picomatch": "^4.0.3",
228
221
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
229
222
  "@xterm/addon-unicode11": "^0.9.0",
230
223
  "@xterm/xterm": "^6.0.0",
231
224
  "bun-types": "1.4.2",
225
+ "commander": "^15.0.0",
226
+ "diff": "^9.0.0",
227
+ "js-yaml": "^5.4.2",
228
+ "jsonc-parser": "^3.3.1",
232
229
  "node-pty": "^1.1.0",
233
230
  "omowright": "github:code-yeongyu/omowright#293ca5002cbd4c8b0c104c5934683385ef7e0d3a",
231
+ "picocolors": "^1.1.1",
232
+ "picomatch": "^4.0.7",
233
+ "posthog-node": "^5.52.4",
234
234
  "puppeteer-core": "^25.11.0",
235
235
  "typescript": "^7.0.2"
236
236
  },
237
237
  "optionalDependencies": {
238
- "oh-my-opencode-darwin-arm64": "5.1.1",
239
- "oh-my-opencode-darwin-x64": "5.1.1",
240
- "oh-my-opencode-darwin-x64-baseline": "5.1.1",
241
- "oh-my-opencode-linux-arm64": "5.1.1",
242
- "oh-my-opencode-linux-arm64-musl": "5.1.1",
243
- "oh-my-opencode-linux-x64": "5.1.1",
244
- "oh-my-opencode-linux-x64-baseline": "5.1.1",
245
- "oh-my-opencode-linux-x64-musl": "5.1.1",
246
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.1",
247
- "oh-my-opencode-windows-arm64": "5.1.1",
248
- "oh-my-opencode-windows-x64": "5.1.1",
249
- "oh-my-opencode-windows-x64-baseline": "5.1.1"
238
+ "oh-my-opencode-darwin-arm64": "5.1.3",
239
+ "oh-my-opencode-darwin-x64": "5.1.3",
240
+ "oh-my-opencode-darwin-x64-baseline": "5.1.3",
241
+ "oh-my-opencode-linux-arm64": "5.1.3",
242
+ "oh-my-opencode-linux-arm64-musl": "5.1.3",
243
+ "oh-my-opencode-linux-x64": "5.1.3",
244
+ "oh-my-opencode-linux-x64-baseline": "5.1.3",
245
+ "oh-my-opencode-linux-x64-musl": "5.1.3",
246
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.3",
247
+ "oh-my-opencode-windows-arm64": "5.1.3",
248
+ "oh-my-opencode-windows-x64": "5.1.3",
249
+ "oh-my-opencode-windows-x64-baseline": "5.1.3"
250
250
  },
251
251
  "overrides": {
252
- "@earendil-works/pi-agent-core": "0.84.2",
253
- "@earendil-works/pi-ai": "0.84.2",
254
- "@earendil-works/pi-coding-agent": "0.84.2",
255
- "@earendil-works/pi-tui": "0.84.2",
256
252
  "hono": "^4.13.8",
257
253
  "@hono/node-server": "2.1.1",
258
254
  "express-rate-limit": "^8.7.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.1.1",
3
+ "version": "5.1.3",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -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.1) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.1.3) 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.1",
3
+ "version": "5.1.3",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -146,6 +146,34 @@ function joinPatchLines(lines) {
146
146
  `)}
147
147
  `;
148
148
  }
149
+ // ../../comment-checker-core/src/package-binary.ts
150
+ import { createRequire } from "node:module";
151
+ import { dirname, join } from "node:path";
152
+ var COMMENT_CHECKER_PACKAGE_NAME = "@code-yeongyu/comment-checker";
153
+ function isModuleResolutionMiss(error) {
154
+ return error instanceof Error || typeof error === "object" && error !== null && "name" in error && error.name === "ResolveMessage";
155
+ }
156
+ function findCommentCheckerPackageBinary(input) {
157
+ const packageName = input.packageName ?? COMMENT_CHECKER_PACKAGE_NAME;
158
+ const platformKey = `${input.platform ?? process.platform}-${input.arch ?? process.arch}`;
159
+ const packageDir = dirname(input.packageJsonPath);
160
+ const candidates = [
161
+ resolvePlatformPackageBinary(input.packageJsonPath, `${packageName}-${platformKey}`, input.binaryName),
162
+ join(packageDir, "vendor", platformKey, input.binaryName),
163
+ join(packageDir, "bin", input.binaryName)
164
+ ];
165
+ return candidates.find((candidate) => candidate !== null && input.existsSync(candidate)) ?? null;
166
+ }
167
+ function resolvePlatformPackageBinary(packageJsonPath, platformPackageName, binaryName) {
168
+ try {
169
+ const manifestPath = createRequire(packageJsonPath).resolve(`${platformPackageName}/package.json`);
170
+ return join(dirname(manifestPath), "bin", binaryName);
171
+ } catch (error) {
172
+ if (isModuleResolutionMiss(error))
173
+ return null;
174
+ throw error;
175
+ }
176
+ }
149
177
  // components/comment-checker/src/hook-input.ts
150
178
  function toHookInput(request, context) {
151
179
  return {
@@ -302,8 +330,7 @@ function getContentText(content) {
302
330
  // components/comment-checker/src/runner.ts
303
331
  import { spawn } from "node:child_process";
304
332
  import { existsSync } from "node:fs";
305
- import { createRequire } from "node:module";
306
- import { dirname, join } from "node:path";
333
+ import { createRequire as createRequire2 } from "node:module";
307
334
  var MAX_PROCESS_OUTPUT_BYTES = 64 * 1024;
308
335
  async function runCommentChecker2(input, options = {}) {
309
336
  const binaryPath = options.binaryPath ?? (options.resolveBinary ? options.resolveBinary() : resolveCommentCheckerBinary2());
@@ -361,7 +388,7 @@ function resolveCommentCheckerBinary2() {
361
388
  }
362
389
  function resolvePackageApiBinary() {
363
390
  try {
364
- const require2 = createRequire(import.meta.url);
391
+ const require2 = createRequire2(import.meta.url);
365
392
  const packageExports = require2(commentCheckerPackageName());
366
393
  if (!isCommentCheckerPackage(packageExports))
367
394
  return;
@@ -373,10 +400,9 @@ function resolvePackageApiBinary() {
373
400
  }
374
401
  function resolvePackageBinary(binaryName) {
375
402
  try {
376
- const require2 = createRequire(import.meta.url);
377
- const packagePath = require2.resolve(`${commentCheckerPackageName()}/package.json`);
378
- const binaryPath = join(dirname(packagePath), "bin", binaryName);
379
- return existsSync(binaryPath) ? binaryPath : undefined;
403
+ const require2 = createRequire2(import.meta.url);
404
+ const packageJsonPath = require2.resolve(`${commentCheckerPackageName()}/package.json`);
405
+ return findCommentCheckerPackageBinary({ packageJsonPath, binaryName, existsSync }) ?? undefined;
380
406
  } catch {
381
407
  return;
382
408
  }
@@ -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.1) Checking Comments"
11
+ "statusMessage": "(OmO 5.1.3) 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.1",
3
+ "version": "5.1.3",
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",
@@ -1,7 +1,8 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { existsSync } from "node:fs";
3
3
  import { createRequire } from "node:module";
4
- import { dirname, join } from "node:path";
4
+
5
+ import { findCommentCheckerPackageBinary } from "@oh-my-opencode/comment-checker-core";
5
6
 
6
7
  import type { CommentCheckerHookInput } from "./core.js";
7
8
 
@@ -108,9 +109,8 @@ function resolvePackageApiBinary(): string | undefined {
108
109
  function resolvePackageBinary(binaryName: string): string | undefined {
109
110
  try {
110
111
  const require = createRequire(import.meta.url);
111
- const packagePath = require.resolve(`${commentCheckerPackageName()}/package.json`);
112
- const binaryPath = join(dirname(packagePath), "bin", binaryName);
113
- return existsSync(binaryPath) ? binaryPath : undefined;
112
+ const packageJsonPath = require.resolve(`${commentCheckerPackageName()}/package.json`);
113
+ return findCommentCheckerPackageBinary({ packageJsonPath, binaryName, existsSync }) ?? undefined;
114
114
  } catch {
115
115
  return undefined;
116
116
  }
@@ -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.1) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.1.3) 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.1) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.1.3) 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.1",
3
+ "version": "5.1.3",
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.1) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.3) 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.1",
3
+ "version": "5.1.3",
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.1",
4
- "inputDigest": "sha256:74ce38926eea0fd287b9c3d6ad38c42d0715b796e803790ad88daf464d1a0313",
3
+ "version": "5.1.3",
4
+ "inputDigest": "sha256:affd143b968dfe926241288a42ac81d6f67cd8a853569bd8d7bac0c9ee6ed75c",
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.1) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.3) 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.1) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.3) 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.1",
3
+ "version": "5.1.3",
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",