oh-my-opencode 5.0.0-beta.19 → 5.0.0-beta.20

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 (188) hide show
  1. package/README.ja.md +3 -3
  2. package/README.ko.md +3 -3
  3. package/README.md +3 -3
  4. package/README.ru.md +3 -3
  5. package/README.zh-cn.md +3 -3
  6. package/dist/cli/fallback-lane-policy.d.ts +1 -0
  7. package/dist/cli/index.js +72 -195
  8. package/dist/cli/install-codex/install-codex-test-fixtures.d.ts +1 -1
  9. package/dist/cli-node/index.js +72 -195
  10. package/dist/config/schema/commands.d.ts +1 -1
  11. package/dist/config/schema/hooks.d.ts +1 -1
  12. package/dist/config/schema/oh-my-opencode-config.d.ts +4 -1
  13. package/dist/config/schema/ulw-execute.d.ts +5 -0
  14. package/dist/config/validate.d.ts +2 -0
  15. package/dist/create-hooks.d.ts +2 -1
  16. package/dist/features/builtin-commands/templates/ulw-execute.d.ts +1 -0
  17. package/dist/features/builtin-commands/types.d.ts +1 -1
  18. package/dist/hooks/atlas/atlas-hook.d.ts +1 -0
  19. package/dist/hooks/atlas/atlas-lifecycle-store.d.ts +50 -0
  20. package/dist/hooks/atlas/event-handler.d.ts +1 -0
  21. package/dist/hooks/atlas/tool-execute-before.d.ts +3 -0
  22. package/dist/hooks/atlas/types.d.ts +1 -0
  23. package/dist/hooks/index.d.ts +1 -1
  24. package/dist/hooks/prometheus-md-only/agent-resolution.d.ts +2 -2
  25. package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +1 -1
  26. package/dist/hooks/{start-work → ulw-execute}/context-info-builder.d.ts +1 -1
  27. package/dist/hooks/{start-work → ulw-execute}/index.d.ts +1 -1
  28. package/dist/hooks/ulw-execute/ulw-execute-hook.d.ts +23 -0
  29. package/dist/index.js +322 -258
  30. package/dist/oh-my-opencode.schema.json +14 -1
  31. package/dist/plugin/chat-message/types.d.ts +3 -3
  32. package/dist/plugin/chat-message/ulw-execute-message.d.ts +5 -0
  33. package/dist/plugin/hooks/create-core-hooks.d.ts +1 -1
  34. package/dist/plugin/hooks/create-session-hooks.d.ts +2 -2
  35. package/dist/skills/frontend/SKILL.md +1 -1
  36. package/dist/skills/frontend/references/designpowers/README.md +1 -1
  37. package/dist/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  38. package/dist/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  39. package/dist/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  40. package/dist/skills/frontend/references/designpowers/orchestration.md +1 -1
  41. package/dist/skills/frontend/references/designpowers/routing.md +5 -5
  42. package/dist/skills/{start-work → ulw-execute}/SKILL.md +7 -7
  43. package/dist/skills/ulw-plan/SKILL.md +4 -4
  44. package/dist/skills/ulw-plan/references/full-workflow.md +4 -4
  45. package/dist/skills/ulw-plan/references/intent-unclear.md +2 -2
  46. package/dist/tui.js +34 -9
  47. package/package.json +15 -15
  48. package/packages/omo-codex/THIRD-PARTY-NOTICES.md +4 -4
  49. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +4 -4
  50. package/packages/omo-codex/plugin/README.md +1 -1
  51. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +2 -2
  52. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  53. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  54. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  55. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  56. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  57. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  58. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  59. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  60. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  61. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  62. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  63. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  64. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  65. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  66. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  67. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  68. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  69. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  70. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  71. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  72. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +4 -4
  73. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +4 -4
  74. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +2 -2
  75. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/AGENTS.md +2 -2
  76. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/NOTICE +1 -1
  77. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/README.md +5 -5
  78. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/directive.md +6 -6
  79. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/dist/cli.js +12 -12
  80. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +28 -0
  81. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/package.json +8 -8
  82. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/boulder-reader.ts +1 -1
  83. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/cli.ts +1 -1
  84. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/codex-hook.ts +3 -3
  85. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/directive.ts +1 -1
  86. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/index.ts +1 -1
  87. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/boulder-reader.test.ts +3 -3
  88. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/cli.test.ts +1 -1
  89. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/codex-hook.test.ts +6 -6
  90. package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +1 -1
  91. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +3 -3
  92. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  93. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  94. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +3 -3
  95. package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +1 -1
  96. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  97. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  98. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  99. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  100. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  101. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  102. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  103. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  104. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  105. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  106. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  107. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  108. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  109. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  110. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  111. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  112. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +17 -0
  113. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  114. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +17 -0
  115. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  116. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  117. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  118. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  119. package/packages/omo-codex/plugin/package-lock.json +34 -34
  120. package/packages/omo-codex/plugin/package.json +2 -2
  121. package/packages/omo-codex/plugin/scripts/auto-update-plan.mjs +1 -1
  122. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +11 -11
  123. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +1 -1
  124. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/README.md +1 -1
  125. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  126. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  127. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  128. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/orchestration.md +1 -1
  129. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +5 -5
  130. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +1 -1
  131. package/packages/omo-codex/plugin/skills/{start-work → ulw-execute}/SKILL.md +10 -10
  132. package/packages/omo-codex/plugin/skills/ulw-execute/agents/openai.yaml +2 -0
  133. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +4 -4
  134. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +4 -4
  135. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +2 -2
  136. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +4 -4
  137. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -1
  138. package/packages/omo-codex/plugin/test/component-bin-names.test.mjs +2 -2
  139. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +1 -1
  140. package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +2 -2
  141. package/packages/omo-codex/plugin/test/hook-status-message.test.mjs +4 -4
  142. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +12 -12
  143. package/packages/omo-codex/scripts/install-dist/install-local.mjs +4 -4
  144. package/packages/shared-skills/skills/frontend/SKILL.md +1 -1
  145. package/packages/shared-skills/skills/frontend/references/designpowers/README.md +1 -1
  146. package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  147. package/packages/shared-skills/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  148. package/packages/shared-skills/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  149. package/packages/shared-skills/skills/frontend/references/designpowers/orchestration.md +1 -1
  150. package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +5 -5
  151. package/packages/shared-skills/skills/{start-work → ulw-execute}/SKILL.md +7 -7
  152. package/packages/shared-skills/skills/ulw-plan/SKILL.md +4 -4
  153. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +4 -4
  154. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +2 -2
  155. package/dist/config/schema/start-work.d.ts +0 -5
  156. package/dist/features/builtin-commands/templates/start-work.d.ts +0 -1
  157. package/dist/hooks/start-work/start-work-hook.d.ts +0 -23
  158. package/dist/plugin/chat-message/start-work-message.d.ts +0 -5
  159. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +0 -28
  160. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +0 -17
  161. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +0 -17
  162. package/packages/omo-codex/plugin/skills/start-work/agents/openai.yaml +0 -2
  163. /package/dist/hooks/{start-work → ulw-execute}/context-info-formatters.d.ts +0 -0
  164. /package/dist/hooks/{start-work → ulw-execute}/explicit-plan-context.d.ts +0 -0
  165. /package/dist/hooks/{start-work → ulw-execute}/notepad-scaffold.d.ts +0 -0
  166. /package/dist/hooks/{start-work → ulw-execute}/parse-user-request.d.ts +0 -0
  167. /package/dist/hooks/{start-work → ulw-execute}/plan-discovery-context.d.ts +0 -0
  168. /package/dist/hooks/{start-work → ulw-execute}/plan-selection.d.ts +0 -0
  169. /package/dist/hooks/{start-work → ulw-execute}/session-plan-affinity.d.ts +0 -0
  170. /package/dist/hooks/{start-work → ulw-execute}/work-initializer.d.ts +0 -0
  171. /package/dist/hooks/{start-work → ulw-execute}/worktree-block.d.ts +0 -0
  172. /package/dist/hooks/{start-work → ulw-execute}/worktree-detector.d.ts +0 -0
  173. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/.gitattributes +0 -0
  174. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/CHANGELOG.md +0 -0
  175. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/LICENSE +0 -0
  176. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/biome.json +0 -0
  177. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/plan-checklist.ts +0 -0
  178. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/types.ts +0 -0
  179. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-completed.json +0 -0
  180. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-mixed-platforms.json +0 -0
  181. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-single-codex-work.json +0 -0
  182. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-all-done.md +0 -0
  183. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-scaffold.md +0 -0
  184. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-nested-checkboxes.md +0 -0
  185. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-unchecked.md +0 -0
  186. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.build.json +0 -0
  187. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.json +0 -0
  188. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/vitest.config.ts +0 -0
package/README.ja.md CHANGED
@@ -133,7 +133,7 @@ curl -s https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/head
133
133
 
134
134
  匿名のテレメトリは、アクティブなインストール数(DAU/WAU/MAU)の集計のためにデフォルトで有効になっています。マシン1台につきUTC日あたり最大1回イベントが送信され、ハッシュ化されたインストール識別子を使用し、生のホスト名は使用せず、PostHog person profile も作成されません。無効化するには `OMO_SEND_ANONYMOUS_TELEMETRY=0` または `OMO_DISABLE_POSTHOG=1` を設定してください。[プライバシーポリシー](docs/legal/privacy-policy.md)と[利用規約](docs/legal/terms-of-service.md)をご覧ください。
135
135
 
136
- **Ultimate と Light:** oh-my-openagent は同じ製品の 2 つのエディションとして提供されます。**Ultimate エディション**(`bunx oh-my-openagent install` または `--platform=opencode`、デフォルト)は OpenCode 上のフル機能で、11 エージェント、54+ フック、Team Mode、すべての MCP、スラッシュコマンド、IntentGate モードを提供します。**Light エディション**(`npx lazycodex-ai install` または `bunx oh-my-openagent install --platform=codex`)は OpenAI Codex CLI のプラグインシステムへ綺麗に移植できるコアコンポーネント(`rules`、`comment-checker`、`git-bash`、`lsp`、`ultrawork`、`ulw-loop`、`start-work-continuation`、`telemetry`)に加え、`teammode` と補助コンポーネント(`bootstrap`、`codegraph`、`lcx` など)を提供し、Codex エージェントの TOML を `~/.codex/agents/` にインストールします。両方を同時にインストールするには `--platform=both`。Codex 専用テレメトリは `OMO_CODEX_DISABLE_POSTHOG=1` または `OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0` で無効化できます。
136
+ **Ultimate と Light:** oh-my-openagent は同じ製品の 2 つのエディションとして提供されます。**Ultimate エディション**(`bunx oh-my-openagent install` または `--platform=opencode`、デフォルト)は OpenCode 上のフル機能で、11 エージェント、54+ フック、Team Mode、すべての MCP、スラッシュコマンド、IntentGate モードを提供します。**Light エディション**(`npx lazycodex-ai install` または `bunx oh-my-openagent install --platform=codex`)は OpenAI Codex CLI のプラグインシステムへ綺麗に移植できるコアコンポーネント(`rules`、`comment-checker`、`git-bash`、`lsp`、`ultrawork`、`ulw-loop`、`ulw-execute-continuation`、`telemetry`)に加え、`teammode` と補助コンポーネント(`bootstrap`、`codegraph`、`lcx` など)を提供し、Codex エージェントの TOML を `~/.codex/agents/` にインストールします。両方を同時にインストールするには `--platform=both`。Codex 専用テレメトリは `OMO_CODEX_DISABLE_POSTHOG=1` または `OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0` で無効化できます。
137
137
 
138
138
  ---
139
139
 
@@ -165,7 +165,7 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
165
165
  | | 機能 | Editions | 何をするのか |
166
166
  | :---: | :------------------------------------------------------- | :------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
167
167
  | 🤖 | **規律あるエージェント (Discipline Agents)** | Ultimate | Sisyphus が Hephaestus、Oracle、Librarian、Explore をオーケストレーションします。完全な AI 開発チームが並列で動きます。 |
168
- | 🧩 | **Codex CLI Light Edition** | Light | OpenAI Codex CLI 上で動作する omo の移植コンポーネント (rules, comment-checker, git-bash, LSP, ultrawork, ulw-loop, start-work continuation, telemetry, teammode など)。インストール: `npx lazycodex-ai install`。 |
168
+ | 🧩 | **Codex CLI Light Edition** | Light | OpenAI Codex CLI 上で動作する omo の移植コンポーネント (rules, comment-checker, git-bash, LSP, ultrawork, ulw-loop, ulw-execute continuation, telemetry, teammode など)。インストール: `npx lazycodex-ai install`。 |
169
169
  | 👥 | **Team Mode** (v4.0, オプトイン) | Ultimate | リードエージェント + 最大 8 メンバーの並列実行、リアルタイム tmux 可視化、専用 `team_*` ツール群。`hyperplan`(5 人の敵対的批評家)と `security-research`(3 人のハンター + 2 人の PoC エンジニア)を駆動します。[ドキュメント →](docs/guide/team-mode.md) |
170
170
  | ⚡ | **`ultrawork` / `ulw`** | Both | 一言で OK。すべてのエージェント (Ultimate) または Codex `ultrawork` コンポーネント (Light) がアクティブになり、終わるまで止まりません。 |
171
171
  | 🚪 | **[IntentGate](https://factory.ai/news/terminal-bench)** | Ultimate | ユーザーの真の意図を分析してから分類・行動します。字面通りの誤解釈はもうありません。(Light は `ulw` / `ultrawork` キーワードのみ認識。) |
@@ -302,7 +302,7 @@ project/
302
302
 
303
303
  複雑なタスクですか?プロンプトを投げて祈るのはやめましょう。
304
304
 
305
- Prometheus は**本物のエンジニアのようにあなたにインタビューし**、スコープと曖昧さを特定し、コードに触れる前に検証済みの計画を `.omo/plans/` に書きます。`/start-work` はその計画から **Atlas** のワークセッションを開始します。エージェントは作業を始める前に、自分が何を作るべきか正確に理解しています。
305
+ Prometheus は**本物のエンジニアのようにあなたにインタビューし**、スコープと曖昧さを特定し、コードに触れる前に検証済みの計画を `.omo/plans/` に書きます。`/ulw-execute` はその計画から **Atlas** のワークセッションを開始します。エージェントは作業を始める前に、自分が何を作るべきか正確に理解しています。
306
306
 
307
307
  ### スキル (Skills)
308
308
 
package/README.ko.md CHANGED
@@ -134,7 +134,7 @@ curl -s https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/head
134
134
 
135
135
  익명 텔레메트리는 활성 설치 수(DAU/WAU/MAU) 집계를 위해 기본적으로 활성화되어 있습니다. 머신당 UTC 하루에 최대 1회만 이벤트가 전송되며, 해시된 설치 식별자를 사용하고 원시 호스트명은 절대 사용하지 않으며 PostHog person profile은 생성되지 않습니다. `OMO_SEND_ANONYMOUS_TELEMETRY=0` 또는 `OMO_DISABLE_POSTHOG=1`로 비활성화할 수 있습니다. [개인정보처리방침](docs/legal/privacy-policy.md)과 [서비스 이용약관](docs/legal/terms-of-service.md)을 참조하세요.
136
136
 
137
- **Ultimate vs Light:** oh-my-openagent는 같은 제품의 두 에디션으로 출시됩니다. **Ultimate 에디션**(`bunx oh-my-openagent install` 또는 `--platform=opencode`, 기본값)은 OpenCode 위에서 풀 기능 — 11 agent, 54+ hook, Team Mode, 모든 MCP, 슬래시 명령, IntentGate 모드 — 을 제공합니다. **Light 에디션**(`npx lazycodex-ai install` 또는 `bunx oh-my-openagent install --platform=codex`)은 OpenAI Codex CLI의 플러그인 시스템에 깔끔히 포팅되는 핵심 컴포넌트(`rules`, `comment-checker`, `git-bash`, `lsp`, `ultrawork`, `ulw-loop`, `start-work-continuation`, `telemetry`)에 더해 `teammode`와 지원 컴포넌트(`bootstrap`, `codegraph`, `lcx` 등)를 제공하고, Codex 에이전트 TOML을 `~/.codex/agents/`에 설치합니다. 둘 다 설치하려면 `--platform=both`. Codex 전용 텔레메트리는 `OMO_CODEX_DISABLE_POSTHOG=1` 또는 `OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0`으로 비활성화할 수 있습니다.
137
+ **Ultimate vs Light:** oh-my-openagent는 같은 제품의 두 에디션으로 출시됩니다. **Ultimate 에디션**(`bunx oh-my-openagent install` 또는 `--platform=opencode`, 기본값)은 OpenCode 위에서 풀 기능 — 11 agent, 54+ hook, Team Mode, 모든 MCP, 슬래시 명령, IntentGate 모드 — 을 제공합니다. **Light 에디션**(`npx lazycodex-ai install` 또는 `bunx oh-my-openagent install --platform=codex`)은 OpenAI Codex CLI의 플러그인 시스템에 깔끔히 포팅되는 핵심 컴포넌트(`rules`, `comment-checker`, `git-bash`, `lsp`, `ultrawork`, `ulw-loop`, `ulw-execute-continuation`, `telemetry`)에 더해 `teammode`와 지원 컴포넌트(`bootstrap`, `codegraph`, `lcx` 등)를 제공하고, Codex 에이전트 TOML을 `~/.codex/agents/`에 설치합니다. 둘 다 설치하려면 `--platform=both`. Codex 전용 텔레메트리는 `OMO_CODEX_DISABLE_POSTHOG=1` 또는 `OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0`으로 비활성화할 수 있습니다.
138
138
 
139
139
  ---
140
140
 
@@ -166,7 +166,7 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
166
166
  | | 기능 | Editions | 하는 일 |
167
167
  | :---: | :------------------------------------------------------- | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
168
168
  | 🤖 | **Discipline Agents** | Ultimate | Sisyphus가 Hephaestus, Oracle, Librarian, Explore를 지휘합니다. 병렬로 도는 풀스택 AI 개발팀. |
169
- | 🧩 | **Codex CLI Light Edition** | Light | OpenAI Codex CLI에서 동작하는 omo의 포팅 컴포넌트(rules, comment-checker, git-bash, LSP, ultrawork, ulw-loop, start-work continuation, telemetry, teammode 등). 설치: `npx lazycodex-ai install`. |
169
+ | 🧩 | **Codex CLI Light Edition** | Light | OpenAI Codex CLI에서 동작하는 omo의 포팅 컴포넌트(rules, comment-checker, git-bash, LSP, ultrawork, ulw-loop, ulw-execute continuation, telemetry, teammode 등). 설치: `npx lazycodex-ai install`. |
170
170
  | 👥 | **Team Mode** (v4.0, opt-in) | Ultimate | 리드 에이전트 + 최대 8명의 병렬 멤버, 실시간 tmux 시각화, 전용 `team_*` 도구. `hyperplan`(5명의 적대적 비평가)과 `security-research`(3명의 헌터 + 2명의 PoC 엔지니어)를 구동합니다. [문서 →](docs/guide/team-mode.md) |
171
171
  | ⚡ | **`ultrawork` / `ulw`** | Both | 한 단어. 모든 에이전트(Ultimate)나 Codex `ultrawork` 컴포넌트(Light)가 켜집니다. 끝날 때까지 멈추지 않습니다. |
172
172
  | 🚪 | **[IntentGate](https://factory.ai/news/terminal-bench)** | Ultimate | 분류하거나 행동하기 전에 사용자의 진짜 의도부터 분석합니다. 더 이상 문자 그대로의 오해석은 없습니다. (Light는 `ulw` / `ultrawork` 키워드만 인식.) |
@@ -303,7 +303,7 @@ project/
303
303
 
304
304
  복잡한 작업인가요? 프롬프트 쓰고 기도하지 마세요.
305
305
 
306
- Prometheus가 **진짜 엔지니어처럼 인터뷰**를 진행하고, 스코프와 모호한 부분을 짚어내고, 코드에 손대기 전에 검증된 계획을 `.omo/plans/`에 작성합니다. `/start-work`는 그 계획으로 **Atlas** 작업 세션을 시작합니다. 에이전트는 뭘 만들지 알고 나서야 시작합니다.
306
+ Prometheus가 **진짜 엔지니어처럼 인터뷰**를 진행하고, 스코프와 모호한 부분을 짚어내고, 코드에 손대기 전에 검증된 계획을 `.omo/plans/`에 작성합니다. `/ulw-execute`는 그 계획으로 **Atlas** 작업 세션을 시작합니다. 에이전트는 뭘 만들지 알고 나서야 시작합니다.
307
307
 
308
308
  ### Skills
309
309
 
package/README.md CHANGED
@@ -114,7 +114,7 @@ Install oh-my-openagent. Type `ultrawork`. Done.
114
114
  oh-my-openagent ships in three editions of the same product: two plugins that load into a host you already run, plus one standalone edition.
115
115
 
116
116
  - **Ultimate Edition (omo for OpenCode)** — full omo. 11 agents, 54+ lifecycle hooks, 5 built-in MCPs, all slash commands, Team Mode, `/goal`, ultrawork — everything. Hashline edits are opt-in (`hashline_edit: true`).
117
- - **Light Edition (omo for Codex CLI)** — the portable components that fit Codex's plugin system: `rules`, `comment-checker`, `git-bash`, `lsp`, `ultrawork`, `ulw-loop`, `start-work-continuation`, and `telemetry` at the core, plus `teammode` and supporting components (`bootstrap`, `codegraph`, `lcx`, and more), plugin-scoped MCPs for `grep_app`, `context7`, `codegraph`, `git_bash`, and `lsp`, and the shared `ast-grep` skill. It installs Codex agent TOMLs into `~/.codex/agents/`. No OpenCode `team_*` tools — Codex CLI's own spawn/collaboration surface does that work.
117
+ - **Light Edition (omo for Codex CLI)** — the portable components that fit Codex's plugin system: `rules`, `comment-checker`, `git-bash`, `lsp`, `ultrawork`, `ulw-loop`, `ulw-execute-continuation`, and `telemetry` at the core, plus `teammode` and supporting components (`bootstrap`, `codegraph`, `lcx`, and more), plugin-scoped MCPs for `grep_app`, `context7`, `codegraph`, `git_bash`, and `lsp`, and the shared `ast-grep` skill. It installs Codex agent TOMLs into `~/.codex/agents/`. No OpenCode `team_*` tools — Codex CLI's own spawn/collaboration surface does that work.
118
118
  - **Senpi Edition (standalone, beta)** — the native `omo` command with the OMO extension built in. It installs from `omo-ai@beta` rather than loading into OpenCode or Codex.
119
119
 
120
120
  Pick the edition(s) you want.
@@ -224,7 +224,7 @@ Even with only the following subscriptions, `ultrawork` works well (this project
224
224
  | | Feature | Edition | What it does |
225
225
  | :---: | :------------------------------------------------------- | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
226
226
  | 🤖 | **Discipline Agents** | Ultimate | Sisyphus orchestrates Hephaestus, Oracle, Librarian, Explore. A full AI dev team in parallel. |
227
- | 🧩 | **Codex CLI Light Edition** | Light | Portable OMO components (rules, comment-checker, git-bash, LSP, ultrawork, ulw-loop, start-work continuation, telemetry, teammode, and more) running inside OpenAI Codex CLI. Install via `npx lazycodex-ai install`. |
227
+ | 🧩 | **Codex CLI Light Edition** | Light | Portable OMO components (rules, comment-checker, git-bash, LSP, ultrawork, ulw-loop, ulw-execute continuation, telemetry, teammode, and more) running inside OpenAI Codex CLI. Install via `npx lazycodex-ai install`. |
228
228
  | 👥 | **Team Mode** (v4.0, opt-in) | Ultimate | Lead agent + up to 8 parallel members, real-time tmux visualization, dedicated `team_*` tools. Powers `hyperplan` (5 hostile critics) and `security-research` (3 hunters + 2 PoC engineers). [Docs →](docs/guide/team-mode.md) |
229
229
  | ⚡ | **`ultrawork` / `ulw`** | Both | One word. Every agent activates. Doesn't stop until done. |
230
230
  | 🚪 | **[IntentGate](https://factory.ai/news/terminal-bench)** | Ultimate | Analyzes true user intent before classifying or acting. No more literal misinterpretations. (Light edition only recognises the `ultrawork`/`ulw` keyword.) |
@@ -362,7 +362,7 @@ Agents auto-read relevant context. Zero manual management.
362
362
 
363
363
  Complex task? Don't prompt and pray.
364
364
 
365
- Prometheus **interviews you like a real engineer**, identifies scope and ambiguities, and writes a verified plan to `.omo/plans/` before touching code. `/start-work` then starts an **Atlas** work session from that plan. The agent knows what it's building before it starts.
365
+ Prometheus **interviews you like a real engineer**, identifies scope and ambiguities, and writes a verified plan to `.omo/plans/` before touching code. `/ulw-execute` then starts an **Atlas** work session from that plan. The agent knows what it's building before it starts.
366
366
 
367
367
  ### Skills
368
368
 
package/README.ru.md CHANGED
@@ -131,7 +131,7 @@ curl -s https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/head
131
131
 
132
132
  Анонимная телеметрия включена по умолчанию для подсчёта активных установок (DAU/WAU/MAU). Не более одного события на машину за UTC-сутки, использует хешированный идентификатор установки, никогда не использует исходное имя хоста, и не создаёт PostHog person profile. Можно отключить через `OMO_SEND_ANONYMOUS_TELEMETRY=0` или `OMO_DISABLE_POSTHOG=1`. См. [Политику конфиденциальности](docs/legal/privacy-policy.md) и [Условия обслуживания](docs/legal/terms-of-service.md).
133
133
 
134
- **Ultimate и Light:** oh-my-openagent поставляется в двух редакциях одного продукта. **Ultimate** (`bunx oh-my-openagent install` или `--platform=opencode`, по умолчанию) — полнофункциональная редакция поверх OpenCode: 11 агентов, 54+ хука, Team Mode, все MCP, все слэш-команды, режимы IntentGate. **Light** (`npx lazycodex-ai install` или `bunx oh-my-openagent install --platform=codex`) — портируемые компоненты omo для системы плагинов OpenAI Codex CLI: ядро (`rules`, `comment-checker`, `git-bash`, `lsp`, `ultrawork`, `ulw-loop`, `start-work-continuation`, `telemetry`), а также `teammode` и вспомогательные компоненты (`bootstrap`, `codegraph`, `lcx` и другие); TOML-файлы Codex-агентов устанавливаются в `~/.codex/agents/`. Чтобы установить обе редакции одной командой, используйте `--platform=both`. Телеметрию только для Codex можно отключить через `OMO_CODEX_DISABLE_POSTHOG=1` или `OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0`.
134
+ **Ultimate и Light:** oh-my-openagent поставляется в двух редакциях одного продукта. **Ultimate** (`bunx oh-my-openagent install` или `--platform=opencode`, по умолчанию) — полнофункциональная редакция поверх OpenCode: 11 агентов, 54+ хука, Team Mode, все MCP, все слэш-команды, режимы IntentGate. **Light** (`npx lazycodex-ai install` или `bunx oh-my-openagent install --platform=codex`) — портируемые компоненты omo для системы плагинов OpenAI Codex CLI: ядро (`rules`, `comment-checker`, `git-bash`, `lsp`, `ultrawork`, `ulw-loop`, `ulw-execute-continuation`, `telemetry`), а также `teammode` и вспомогательные компоненты (`bootstrap`, `codegraph`, `lcx` и другие); TOML-файлы Codex-агентов устанавливаются в `~/.codex/agents/`. Чтобы установить обе редакции одной командой, используйте `--platform=both`. Телеметрию только для Codex можно отключить через `OMO_CODEX_DISABLE_POSTHOG=1` или `OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0`.
135
135
 
136
136
  ------
137
137
 
@@ -164,7 +164,7 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
164
164
  | | Функция | Editions | Что делает |
165
165
  | --- | -------------------------------------------------------- | :------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
166
166
  | 🤖 | **Дисциплинированные агенты** | Ultimate | Sisyphus оркестрирует Hephaestus, Oracle, Librarian, Explore. Полноценная AI-команда разработки в параллельном режиме. |
167
- | 🧩 | **Codex CLI Light Edition** | Light | Портируемые компоненты omo в OpenAI Codex CLI (rules, comment-checker, git-bash, LSP, ultrawork, ulw-loop, start-work continuation, telemetry, teammode и другие). Установка: `npx lazycodex-ai install`. |
167
+ | 🧩 | **Codex CLI Light Edition** | Light | Портируемые компоненты omo в OpenAI Codex CLI (rules, comment-checker, git-bash, LSP, ultrawork, ulw-loop, ulw-execute continuation, telemetry, teammode и другие). Установка: `npx lazycodex-ai install`. |
168
168
  | 👥 | **Team Mode** (v4.0, opt-in) | Ultimate | Лид-агент + до 8 параллельных участников, визуализация в tmux в реальном времени, выделенные инструменты `team_*`. Питает `hyperplan` (5 враждебных критиков) и `security-research` (3 охотника + 2 PoC-инженера). [Документация →](docs/guide/team-mode.md) |
169
169
  | ⚡ | **`ultrawork` / `ulw`** | Both | Одно слово. Все агенты (Ultimate) или Codex-компонент `ultrawork` (Light) активируются. Не останавливается, пока задача не выполнена. |
170
170
  | 🚪 | **[IntentGate](https://factory.ai/news/terminal-bench)** | Ultimate | Анализирует истинное намерение пользователя перед классификацией и действием. Никаких буквальных искажений смысла. (Light распознаёт только ключевые слова `ulw` / `ultrawork`.) |
@@ -301,7 +301,7 @@ project/
301
301
 
302
302
  Сложная задача? Не нужно молиться и надеяться на промпт.
303
303
 
304
- Prometheus **интервьюирует вас как настоящий инженер**, определяет объём работ и неоднозначности и записывает проверенный план в `.omo/plans/` до прикосновения к коду. Затем `/start-work` запускает рабочую сессию **Atlas** по этому плану. Агент знает, что строит, прежде чем начать.
304
+ Prometheus **интервьюирует вас как настоящий инженер**, определяет объём работ и неоднозначности и записывает проверенный план в `.omo/plans/` до прикосновения к коду. Затем `/ulw-execute` запускает рабочую сессию **Atlas** по этому плану. Агент знает, что строит, прежде чем начать.
305
305
 
306
306
  ### Навыки
307
307
 
package/README.zh-cn.md CHANGED
@@ -133,7 +133,7 @@ curl -s https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/head
133
133
 
134
134
  匿名遥测默认开启,用于统计活跃安装数(DAU/WAU/MAU)。每台机器每个 UTC 日最多发送一次事件,使用哈希化的安装标识符,绝不会使用原始主机名,且不会创建 PostHog person profile。可通过 `OMO_SEND_ANONYMOUS_TELEMETRY=0` 或 `OMO_DISABLE_POSTHOG=1` 禁用。详见 [隐私政策](docs/legal/privacy-policy.md) 和 [服务条款](docs/legal/terms-of-service.md)。
135
135
 
136
- **Ultimate 与 Light:** oh-my-openagent 以同一产品的两个版本发布。**Ultimate 版本**(`bunx oh-my-openagent install` 或 `--platform=opencode`,默认值)在 OpenCode 上提供完整功能 —— 11 个智能体、54+ 个生命周期钩子、Team Mode、所有 MCP、所有斜杠命令、IntentGate 模式。**Light 版本**(`npx lazycodex-ai install` 或 `bunx oh-my-openagent install --platform=codex`)提供能够干净地移植到 OpenAI Codex CLI 插件系统的 核心组件(`rules`、`comment-checker`、`git-bash`、`lsp`、`ultrawork`、`ulw-loop`、`start-work-continuation`、`telemetry`),外加 `teammode` 和配套组件(`bootstrap`、`codegraph`、`lcx` 等),并会把 Codex 智能体 TOML 安装到 `~/.codex/agents/`。要同时安装两个版本,使用 `--platform=both`。Codex 专用遥测可通过 `OMO_CODEX_DISABLE_POSTHOG=1` 或 `OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0` 禁用。
136
+ **Ultimate 与 Light:** oh-my-openagent 以同一产品的两个版本发布。**Ultimate 版本**(`bunx oh-my-openagent install` 或 `--platform=opencode`,默认值)在 OpenCode 上提供完整功能 —— 11 个智能体、54+ 个生命周期钩子、Team Mode、所有 MCP、所有斜杠命令、IntentGate 模式。**Light 版本**(`npx lazycodex-ai install` 或 `bunx oh-my-openagent install --platform=codex`)提供能够干净地移植到 OpenAI Codex CLI 插件系统的 核心组件(`rules`、`comment-checker`、`git-bash`、`lsp`、`ultrawork`、`ulw-loop`、`ulw-execute-continuation`、`telemetry`),外加 `teammode` 和配套组件(`bootstrap`、`codegraph`、`lcx` 等),并会把 Codex 智能体 TOML 安装到 `~/.codex/agents/`。要同时安装两个版本,使用 `--platform=both`。Codex 专用遥测可通过 `OMO_CODEX_DISABLE_POSTHOG=1` 或 `OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0` 禁用。
137
137
 
138
138
  ---
139
139
 
@@ -171,7 +171,7 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
171
171
  | | 特性 | Editions | 功能说明 |
172
172
  | :---: | :-------------------------------------------------------------- | :------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
173
173
  | 🤖 | **自律军团 (Discipline Agents)** | Ultimate | Sisyphus 负责调度 Hephaestus、Oracle、Librarian 和 Explore。一支完整的 AI 开发团队并行工作。 |
174
- | 🧩 | **Codex CLI Light Edition** | Light | 在 OpenAI Codex CLI 中运行的 omo 的可移植组件 (rules, comment-checker, git-bash, LSP, ultrawork, ulw-loop, start-work continuation, telemetry, teammode 等)。安装: `npx lazycodex-ai install`。 |
174
+ | 🧩 | **Codex CLI Light Edition** | Light | 在 OpenAI Codex CLI 中运行的 omo 的可移植组件 (rules, comment-checker, git-bash, LSP, ultrawork, ulw-loop, ulw-execute continuation, telemetry, teammode 等)。安装: `npx lazycodex-ai install`。 |
175
175
  | 👥 | **Team Mode** (v4.0, 选择性启用) | Ultimate | 领导 Agent + 最多 8 个并行成员,实时 tmux 可视化,专用 `team_*` 工具家族。驱动 `hyperplan`(5 个敌对评论者) 和 `security-research`(3 个猎手 + 2 个 PoC 工程师)。[文档 →](docs/guide/team-mode.md) |
176
176
  | ⚡ | **`ultrawork` / `ulw`** | Both | 一键触发,所有智能体(Ultimate)或 Codex `ultrawork` 组件(Light)出动。任务完成前绝不罢休。 |
177
177
  | 🚪 | **[IntentGate 意图门](https://factory.ai/news/terminal-bench)** | Ultimate | 真正行动前,先分析用户的真实意图。不再有字面意义上的误解。(Light 仅识别 `ulw` / `ultrawork` 关键词。) |
@@ -308,7 +308,7 @@ Agent 会自动顺藤摸瓜加载对应的 Context,免去了你所有的手动
308
308
 
309
309
  碰到了硬骨头?千万不要扔个 Prompt 就双手合十祈祷。
310
310
 
311
- Prometheus **会像一个真实的主管那样去采访你**,主动深挖需求、指出模糊地带,并在改动哪怕一行代码之前把经过严密论证的计划写入 `.omo/plans/`。随后 `/start-work` 基于该计划启动 **Atlas** 工作会话。你的 Agent 终于知道了自己在干嘛。
311
+ Prometheus **会像一个真实的主管那样去采访你**,主动深挖需求、指出模糊地带,并在改动哪怕一行代码之前把经过严密论证的计划写入 `.omo/plans/`。随后 `/ulw-execute` 基于该计划启动 **Atlas** 工作会话。你的 Agent 终于知道了自己在干嘛。
312
312
 
313
313
  ### 技能系统 (Skills)
314
314
 
@@ -0,0 +1 @@
1
+ export declare function isExcludedFallbackLaneModel(model: string): boolean;
package/dist/cli/index.js CHANGED
@@ -54,7 +54,7 @@ var package_default;
54
54
  var init_package = __esm(() => {
55
55
  package_default = {
56
56
  name: "oh-my-opencode",
57
- version: "5.0.0-beta.19",
57
+ version: "5.0.0-beta.20",
58
58
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
59
59
  main: "./dist/index.js",
60
60
  types: "dist/index.d.ts",
@@ -139,7 +139,7 @@ var init_package = __esm(() => {
139
139
  "packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js",
140
140
  "packages/omo-codex/plugin/components/lsp/dist/cli.js",
141
141
  "packages/omo-codex/plugin/components/rules/dist/cli.js",
142
- "packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js",
142
+ "packages/omo-codex/plugin/components/ulw-execute-continuation/dist/cli.js",
143
143
  "packages/omo-codex/plugin/components/teammode/dist/cli.js",
144
144
  "packages/omo-codex/plugin/components/telemetry/dist/cli.js",
145
145
  "packages/omo-codex/plugin/components/ultrawork/dist/cli.js",
@@ -235,7 +235,7 @@ var init_package = __esm(() => {
235
235
  zod: "^4.4.3"
236
236
  },
237
237
  devDependencies: {
238
- "@code-yeongyu/senpi": "2026.8.24",
238
+ "@code-yeongyu/senpi": "2026.8.25",
239
239
  "@oh-my-opencode/agents-md-core": "workspace:*",
240
240
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
241
241
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -276,18 +276,18 @@ var init_package = __esm(() => {
276
276
  typescript: "^7.0.2"
277
277
  },
278
278
  optionalDependencies: {
279
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.19",
280
- "oh-my-opencode-darwin-x64": "5.0.0-beta.19",
281
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.19",
282
- "oh-my-opencode-linux-arm64": "5.0.0-beta.19",
283
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.19",
284
- "oh-my-opencode-linux-x64": "5.0.0-beta.19",
285
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.19",
286
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.19",
287
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.19",
288
- "oh-my-opencode-windows-arm64": "5.0.0-beta.19",
289
- "oh-my-opencode-windows-x64": "5.0.0-beta.19",
290
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.19"
279
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.20",
280
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.20",
281
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.20",
282
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.20",
283
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.20",
284
+ "oh-my-opencode-linux-x64": "5.0.0-beta.20",
285
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.20",
286
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.20",
287
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.20",
288
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.20",
289
+ "oh-my-opencode-windows-x64": "5.0.0-beta.20",
290
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.20"
291
291
  },
292
292
  overrides: {
293
293
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -22768,124 +22768,6 @@ var init_internal_initiator_marker = __esm(() => {
22768
22768
  INTERNAL_NOREPLY_MARKER_DETECT_PATTERN = /<!--\s*OMO_INTERNAL_NOREPLY\s*-->/;
22769
22769
  });
22770
22770
 
22771
- // packages/utils/src/migration/agent-names.ts
22772
- function migrateAgentNames(agents) {
22773
- const migrated = {};
22774
- let changed = false;
22775
- for (const [key, value] of Object.entries(agents)) {
22776
- const newKey = AGENT_NAME_MAP[key.toLowerCase()] ?? AGENT_NAME_MAP[key] ?? key;
22777
- if (newKey !== key) {
22778
- changed = true;
22779
- }
22780
- migrated[newKey] = value;
22781
- }
22782
- return { migrated, changed };
22783
- }
22784
- var AGENT_NAME_MAP, BUILTIN_AGENT_NAMES;
22785
- var init_agent_names = __esm(() => {
22786
- AGENT_NAME_MAP = {
22787
- omo: "sisyphus",
22788
- OmO: "sisyphus",
22789
- Sisyphus: "sisyphus",
22790
- "Sisyphus (Ultraworker)": "sisyphus",
22791
- sisyphus: "sisyphus",
22792
- "Hephaestus (Deep Agent)": "hephaestus",
22793
- "OmO-Plan": "prometheus",
22794
- "omo-plan": "prometheus",
22795
- "Planner-Sisyphus": "prometheus",
22796
- "planner-sisyphus": "prometheus",
22797
- "Prometheus - Plan Builder": "prometheus",
22798
- "Prometheus (Plan Builder)": "prometheus",
22799
- prometheus: "prometheus",
22800
- "orchestrator-sisyphus": "atlas",
22801
- Atlas: "atlas",
22802
- "Atlas (Plan Executor)": "atlas",
22803
- atlas: "atlas",
22804
- "plan-consultant": "metis",
22805
- "Metis - Plan Consultant": "metis",
22806
- "Metis (Plan Consultant)": "metis",
22807
- metis: "metis",
22808
- "Momus - Plan Critic": "momus",
22809
- "Momus (Plan Critic)": "momus",
22810
- momus: "momus",
22811
- "Sisyphus-Junior": "sisyphus-junior",
22812
- "sisyphus-junior": "sisyphus-junior",
22813
- build: "build",
22814
- oracle: "oracle",
22815
- librarian: "librarian",
22816
- explore: "explore",
22817
- "multimodal-looker": "multimodal-looker"
22818
- };
22819
- BUILTIN_AGENT_NAMES = new Set([
22820
- "sisyphus",
22821
- "oracle",
22822
- "librarian",
22823
- "explore",
22824
- "multimodal-looker",
22825
- "metis",
22826
- "momus",
22827
- "prometheus",
22828
- "atlas",
22829
- "build"
22830
- ]);
22831
- });
22832
-
22833
- // packages/utils/src/migration/hook-names.ts
22834
- var HOOK_NAME_MAP;
22835
- var init_hook_names = __esm(() => {
22836
- HOOK_NAME_MAP = {
22837
- "anthropic-auto-compact": "anthropic-context-window-limit-recovery",
22838
- "sisyphus-orchestrator": "atlas",
22839
- "sisyphus-gpt-hephaestus-reminder": "no-sisyphus-gpt",
22840
- "empty-message-sanitizer": null,
22841
- "delegate-task-english-directive": null,
22842
- "gpt-permission-continuation": null,
22843
- "thinking-block-validator": null,
22844
- "session-recovery": null
22845
- };
22846
- });
22847
-
22848
- // packages/utils/src/migration/model-versions.ts
22849
- function migrationKey(oldModel, newModel) {
22850
- return `model-version:${oldModel}->${newModel}`;
22851
- }
22852
- function migrateModelVersions(configs, appliedMigrations) {
22853
- const migrated = {};
22854
- let changed = false;
22855
- const newMigrations = [];
22856
- for (const [key, value] of Object.entries(configs)) {
22857
- if (value && typeof value === "object" && !Array.isArray(value)) {
22858
- const config3 = value;
22859
- if (typeof config3.model === "string" && !CURRENT_USER_SELECTABLE_MODELS.has(config3.model) && MODEL_VERSION_MAP[config3.model]) {
22860
- const oldModel = config3.model;
22861
- const newModel = MODEL_VERSION_MAP[oldModel];
22862
- const mKey = migrationKey(oldModel, newModel);
22863
- if (appliedMigrations?.has(mKey)) {
22864
- migrated[key] = value;
22865
- continue;
22866
- }
22867
- migrated[key] = { ...config3, model: newModel };
22868
- changed = true;
22869
- newMigrations.push(mKey);
22870
- continue;
22871
- }
22872
- }
22873
- migrated[key] = value;
22874
- }
22875
- return { migrated, changed, newMigrations };
22876
- }
22877
- var MODEL_VERSION_MAP, CURRENT_USER_SELECTABLE_MODELS;
22878
- var init_model_versions = __esm(() => {
22879
- MODEL_VERSION_MAP = {
22880
- "anthropic/claude-opus-4-4": "anthropic/claude-opus-4-8"
22881
- };
22882
- CURRENT_USER_SELECTABLE_MODELS = new Set([
22883
- "anthropic/claude-opus-4-5",
22884
- "anthropic/claude-opus-4-6",
22885
- "anthropic/claude-sonnet-4-5"
22886
- ]);
22887
- });
22888
-
22889
22771
  // packages/utils/src/migration/agent-category.ts
22890
22772
  function configureMigrationCategoryDefaults(defaults) {
22891
22773
  categoryDefaults = defaults ?? {};
@@ -84994,6 +84876,18 @@ var init_fallback_chain_resolution = __esm(() => {
84994
84876
  init_provider_model_id_transform2();
84995
84877
  });
84996
84878
 
84879
+ // packages/omo-opencode/src/cli/fallback-lane-policy.ts
84880
+ function isExcludedFallbackLaneModel(model) {
84881
+ const slashIndex = model.indexOf("/");
84882
+ if (slashIndex <= 0)
84883
+ return false;
84884
+ return EXCLUDED_FALLBACK_PROVIDERS.has(model.slice(0, slashIndex).toLowerCase());
84885
+ }
84886
+ var EXCLUDED_FALLBACK_PROVIDERS;
84887
+ var init_fallback_lane_policy = __esm(() => {
84888
+ EXCLUDED_FALLBACK_PROVIDERS = new Set(["openrouter", "opencode", "vercel"]);
84889
+ });
84890
+
84997
84891
  // packages/omo-opencode/src/cli/model-fallback.ts
84998
84892
  function resolveCompatibleFallbackSettings(providerID, modelID, desired) {
84999
84893
  const compatibility = resolveCompatibleModelSettings({
@@ -85053,7 +84947,7 @@ function attachFallbackModels(config3, fallbackChain, availability) {
85053
84947
  if (primaryIndex === -1) {
85054
84948
  return config3;
85055
84949
  }
85056
- const fallbackModels = uniqueFallbacks.slice(primaryIndex + 1);
84950
+ const fallbackModels = uniqueFallbacks.slice(primaryIndex + 1).filter((entry) => !isExcludedFallbackLaneModel(entry.model));
85057
84951
  if (fallbackModels.length === 0) {
85058
84952
  return config3;
85059
84953
  }
@@ -85064,7 +84958,7 @@ function attachFallbackModels(config3, fallbackChain, availability) {
85064
84958
  }
85065
84959
  function attachAllFallbackModels(config3, fallbackChain, availability) {
85066
84960
  const uniqueFallbacks = collectAvailableFallbacks(fallbackChain, availability);
85067
- const fallbackModels = uniqueFallbacks.filter((entry) => entry.model !== config3.model);
84961
+ const fallbackModels = uniqueFallbacks.filter((entry) => entry.model !== config3.model).filter((entry) => !isExcludedFallbackLaneModel(entry.model));
85068
84962
  if (fallbackModels.length === 0) {
85069
84963
  return config3;
85070
84964
  }
@@ -85178,6 +85072,7 @@ var init_model_fallback = __esm(() => {
85178
85072
  init_provider_availability();
85179
85073
  init_fallback_chain_resolution();
85180
85074
  init_provider_model_id_transform2();
85075
+ init_fallback_lane_policy();
85181
85076
  });
85182
85077
 
85183
85078
  // packages/omo-opencode/src/cli/config-manager/generate-omo-config.ts
@@ -85590,58 +85485,18 @@ var init_deep_diff = __esm(() => {
85590
85485
  });
85591
85486
 
85592
85487
  // packages/omo-opencode/src/config-migration/transform-opencode.ts
85593
- function replaceDisabledAgents(value) {
85594
- if (!Array.isArray(value))
85595
- return value;
85596
- return value.map((entry) => {
85597
- if (typeof entry !== "string")
85598
- return entry;
85599
- return AGENT_NAME_MAP[entry.toLowerCase()] ?? AGENT_NAME_MAP[entry] ?? entry;
85600
- });
85601
- }
85602
- function replaceDisabledHooks(value) {
85603
- if (!Array.isArray(value))
85604
- return value;
85605
- return value.flatMap((entry) => {
85606
- if (typeof entry !== "string")
85607
- return [entry];
85608
- const replacement = HOOK_NAME_MAP[entry];
85609
- return replacement === null ? [] : [replacement ?? entry];
85610
- });
85611
- }
85612
- function transformLegacyKeys(value, history) {
85488
+ function transformLegacyKeys(value) {
85613
85489
  const config3 = withoutLegacyMetadata(value);
85614
- const appliedMigrations = new Set(history);
85615
- const agents = config3.agents;
85616
- if (isPlainRecord3(agents)) {
85617
- const namedAgents = migrateAgentNames(agents).migrated;
85618
- config3.agents = migrateModelVersions(namedAgents, appliedMigrations).migrated;
85619
- }
85620
- const categories = config3.categories;
85621
- if (isPlainRecord3(categories)) {
85622
- config3.categories = migrateModelVersions(categories, appliedMigrations).migrated;
85623
- }
85490
+ delete config3.agents;
85491
+ delete config3.categories;
85624
85492
  if (config3.omo_agent !== undefined) {
85625
85493
  config3.sisyphus_agent = config3.omo_agent;
85626
85494
  delete config3.omo_agent;
85627
85495
  }
85628
- delete config3.lsp;
85629
- if (isPlainRecord3(config3.experimental) && Object.hasOwn(config3.experimental, "hashline_edit")) {
85630
- if (config3.hashline_edit === undefined)
85631
- config3.hashline_edit = config3.experimental.hashline_edit;
85632
- delete config3.experimental.hashline_edit;
85633
- if (Object.keys(config3.experimental).length === 0)
85634
- delete config3.experimental;
85635
- }
85636
- if (config3.disabled_agents !== undefined)
85637
- config3.disabled_agents = replaceDisabledAgents(config3.disabled_agents);
85638
- if (config3.disabled_hooks !== undefined)
85639
- config3.disabled_hooks = replaceDisabledHooks(config3.disabled_hooks);
85640
- return config3;
85496
+ return Object.fromEntries(Object.entries(config3).filter(([key]) => MIGRATED_OPENCODE_FIELDS.has(key)));
85641
85497
  }
85642
85498
  function loadedConfigs(discovered, sources) {
85643
85499
  const metadataByPath = new Map(discovered.map((source) => [source.path, source]));
85644
- const historyByConfigPath = legacyMigrationHistory(discovered, sources);
85645
85500
  const configs = [];
85646
85501
  for (const source of sources) {
85647
85502
  const metadata = metadataByPath.get(source.path);
@@ -85649,7 +85504,7 @@ function loadedConfigs(discovered, sources) {
85649
85504
  continue;
85650
85505
  configs.push({
85651
85506
  metadata,
85652
- value: transformLegacyKeys(source.value, historyByConfigPath[metadata.configPath] ?? [])
85507
+ value: transformLegacyKeys(source.value)
85653
85508
  });
85654
85509
  }
85655
85510
  return configs;
@@ -85701,13 +85556,17 @@ function transformProjectSources(input, projectRoot) {
85701
85556
  function transformOpenCodeSources(input) {
85702
85557
  return input.scope.kind === "user" ? transformUserSources(input.discovered, input.sources) : transformProjectSources(input, input.scope.projectRoot);
85703
85558
  }
85559
+ var MIGRATED_OPENCODE_FIELDS;
85704
85560
  var init_transform_opencode = __esm(() => {
85705
- init_agent_names();
85706
- init_hook_names();
85707
- init_model_versions();
85708
85561
  init_deep_diff();
85709
85562
  init_legacy_history();
85710
85563
  init_record_values();
85564
+ MIGRATED_OPENCODE_FIELDS = new Set([
85565
+ "disabled_providers",
85566
+ "model_fallback",
85567
+ "models",
85568
+ "sisyphus_agent"
85569
+ ]);
85711
85570
  });
85712
85571
 
85713
85572
  // packages/omo-opencode/src/config-migration/reasoning-unification.ts
@@ -94459,7 +94318,7 @@ var package_default2;
94459
94318
  var init_package2 = __esm(() => {
94460
94319
  package_default2 = {
94461
94320
  name: "@oh-my-opencode/omo-codex",
94462
- version: "5.0.0-beta.19",
94321
+ version: "5.0.0-beta.20",
94463
94322
  type: "module",
94464
94323
  private: true,
94465
94324
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -98387,9 +98246,9 @@ var LEGACY_CODEX_COMPONENT_BINS = [
98387
98246
  { name: "codex-comment-checker", component: "comment-checker" },
98388
98247
  { name: "codex-lsp", component: "lsp" },
98389
98248
  { name: "codex-rules", component: "rules" },
98390
- { name: "codex-start-work-continuation", component: "start-work-continuation" },
98391
98249
  { name: "codex-telemetry", component: "telemetry" },
98392
- { name: "codex-ultrawork", component: "ultrawork" }
98250
+ { name: "codex-ultrawork", component: "ultrawork" },
98251
+ { name: "codex-ulw-execute-continuation", component: "ulw-execute-continuation" }
98393
98252
  ];
98394
98253
  var LEGACY_CODEX_COMPONENT_BIN_NAMES = LEGACY_CODEX_COMPONENT_BINS.map((entry) => entry.name);
98395
98254
  function isLegacyCodexBinTarget(binName, target) {
@@ -102947,9 +102806,9 @@ var MANAGED_CODEX_BIN_NAMES = new Set([
102947
102806
  "omo-git-bash-hook",
102948
102807
  "omo-lsp",
102949
102808
  "omo-rules",
102950
- "omo-start-work-continuation",
102951
102809
  "omo-telemetry",
102952
102810
  "omo-ultrawork",
102811
+ "omo-ulw-execute-continuation",
102953
102812
  "omo-ulw-loop",
102954
102813
  "lazycodex-executor-verify",
102955
102814
  "ulw",
@@ -103432,6 +103291,7 @@ function localLauncherCmdPath(homeDir = homedir10()) {
103432
103291
  function renderLocalLauncher(options) {
103433
103292
  const brand = {
103434
103293
  name: "OmO",
103294
+ command: "omo",
103435
103295
  displayVersion: options.version ?? "local",
103436
103296
  configDir: ".omo",
103437
103297
  flatLayout: false,
@@ -103633,9 +103493,9 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
103633
103493
  join62("skills", "refactor", "SKILL.md"),
103634
103494
  join62("skills", "remove-ai-slops", "SKILL.md"),
103635
103495
  join62("skills", "review-work", "SKILL.md"),
103636
- join62("skills", "start-work", "SKILL.md"),
103637
103496
  join62("skills", "ultimate-browsing", "SKILL.md"),
103638
103497
  join62("skills", "ultrawork", "SKILL.md"),
103498
+ join62("skills", "ulw-execute", "SKILL.md"),
103639
103499
  join62("skills", "ulw-loop", "SKILL.md"),
103640
103500
  join62("skills", "ulw-plan", "SKILL.md"),
103641
103501
  join62("skills", "ulw-research", "SKILL.md"),
@@ -107215,7 +107075,7 @@ init_zod();
107215
107075
  var BuiltinCommandNameSchema = exports_external.enum([
107216
107076
  "goal",
107217
107077
  "refactor",
107218
- "start-work",
107078
+ "ulw-execute",
107219
107079
  "stop-continuation",
107220
107080
  "remove-ai-slops",
107221
107081
  "hyperplan"
@@ -107341,7 +107201,7 @@ var HookNameSchema = exports_external.enum([
107341
107201
  "no-sisyphus-gpt",
107342
107202
  "no-hephaestus-non-gpt",
107343
107203
  "hephaestus-agents-md-injector",
107344
- "start-work",
107204
+ "ulw-execute",
107345
107205
  "atlas",
107346
107206
  "unstable-agent-babysitter",
107347
107207
  "task-resume-info",
@@ -107552,9 +107412,9 @@ var TuiConfigSchema = exports_external.object({
107552
107412
  sidebar: TuiSidebarConfigSchema.default({ enabled: true })
107553
107413
  });
107554
107414
 
107555
- // packages/omo-opencode/src/config/schema/start-work.ts
107415
+ // packages/omo-opencode/src/config/schema/ulw-execute.ts
107556
107416
  init_zod();
107557
- var StartWorkConfigSchema = exports_external.object({
107417
+ var UlwExecuteConfigSchema = exports_external.object({
107558
107418
  auto_commit: exports_external.boolean().default(true)
107559
107419
  });
107560
107420
 
@@ -107614,7 +107474,8 @@ var OhMyOpenCodeConfigSchema = exports_external.object({
107614
107474
  tmux: TmuxConfigSchema.optional(),
107615
107475
  tui: TuiConfigSchema.default({ sidebar: { enabled: true } }).optional(),
107616
107476
  sisyphus: SisyphusConfigSchema.optional(),
107617
- start_work: StartWorkConfigSchema.optional(),
107477
+ ulw_execute: UlwExecuteConfigSchema.optional(),
107478
+ start_work: UlwExecuteConfigSchema.optional(),
107618
107479
  default_mode: DefaultModeConfigSchema.optional(),
107619
107480
  _migrations: exports_external.array(exports_external.string()).optional()
107620
107481
  });
@@ -107705,6 +107566,21 @@ function materializeAgentModelChains(config4) {
107705
107566
  }));
107706
107567
  return changed ? { ...config4, agents } : config4;
107707
107568
  }
107569
+ var START_WORK_DEPRECATION_MESSAGE = 'config key "start_work" is deprecated, rename to "ulw_execute" - will be removed next release';
107570
+ var deprecationWarningSink = log2;
107571
+ function warnLegacyUlwExecuteKey(views) {
107572
+ for (const view of views) {
107573
+ if (!Object.hasOwn(view.config, "start_work"))
107574
+ continue;
107575
+ deprecationWarningSink(`[config] ${shortPath(view.path)}: ${START_WORK_DEPRECATION_MESSAGE}`);
107576
+ }
107577
+ }
107578
+ function migrateLegacyUlwExecuteKey(config4) {
107579
+ const legacy = config4.start_work;
107580
+ if (legacy === undefined || config4.ulw_execute !== undefined)
107581
+ return config4;
107582
+ return { ...config4, ulw_execute: legacy };
107583
+ }
107708
107584
  function migrateRalphLoopConfig(config4) {
107709
107585
  const legacy = config4.ralph_loop;
107710
107586
  if (legacy === undefined)
@@ -107733,11 +107609,12 @@ function validatePluginConfig(directory, environment2 = process.env) {
107733
107609
  const firstView = views[0];
107734
107610
  const userConfig = parseConfig(chain.protectedUserView);
107735
107611
  const config4 = applyDisabledProviders(materializeAgentModelChains(protectUserFields(mergeViews(views), userConfig)));
107612
+ warnLegacyUlwExecuteKey(chain.views);
107736
107613
  return {
107737
107614
  valid: messages.length === 0,
107738
107615
  messages,
107739
107616
  path: chainMessages.length > 0 ? chain.diagnostics[0]?.path ?? null : firstFailingView?.path ?? firstView?.path ?? null,
107740
- config: migrateRalphLoopConfig(config4)
107617
+ config: migrateRalphLoopConfig(migrateLegacyUlwExecuteKey(config4))
107741
107618
  };
107742
107619
  }
107743
107620
 
@@ -111834,7 +111711,7 @@ var CODEX_BIN_NAMES = [
111834
111711
  "omo-lsp",
111835
111712
  "omo-comment-checker",
111836
111713
  "omo-ultrawork",
111837
- "omo-start-work-continuation",
111714
+ "omo-ulw-execute-continuation",
111838
111715
  "omo-telemetry",
111839
111716
  "omo-git-bash-hook"
111840
111717
  ];
@@ -15,7 +15,7 @@ export declare const EXPECTED_OMO_COMPONENT_BINS: readonly [{
15
15
  readonly name: "omo-rules";
16
16
  readonly target: string;
17
17
  }, {
18
- readonly name: "omo-start-work-continuation";
18
+ readonly name: "omo-ulw-execute-continuation";
19
19
  readonly target: string;
20
20
  }, {
21
21
  readonly name: "omo-telemetry";