oh-my-opencode 5.0.0-beta.52 → 5.0.0-beta.54

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 (98) hide show
  1. package/.agents/command/publish.md +15 -7
  2. package/.agents/skills/publish/SKILL.md +15 -7
  3. package/.opencode/command/publish.md +15 -7
  4. package/README.ja.md +11 -18
  5. package/README.ko.md +10 -17
  6. package/README.md +11 -18
  7. package/README.ru.md +11 -18
  8. package/README.zh-cn.md +11 -18
  9. package/dist/cli/index.js +147 -46
  10. package/dist/cli-node/index.js +147 -46
  11. package/dist/index.js +1311 -1200
  12. package/dist/skills/refactor/SKILL.md +3 -3
  13. package/dist/skills/review-work/SKILL.md +1 -1
  14. package/dist/skills/ulw-execute/SKILL.md +5 -5
  15. package/dist/tui.js +107 -10
  16. package/package.json +15 -14
  17. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  18. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  19. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  20. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  21. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  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/dist/checkpoint-codex-validation.d.ts +5 -1
  40. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-codex-validation.js +14 -34
  41. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-continuation.js +1 -4
  42. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.d.ts +0 -18
  43. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.js +1 -88
  44. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.d.ts +2 -0
  45. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +10 -3
  46. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-arg-parser.js +2 -2
  47. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.js +2 -0
  48. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +86 -174
  49. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.d.ts +2 -18
  50. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +23 -33
  51. package/packages/omo-codex/plugin/components/ulw-loop/dist/review-blockers.d.ts +2 -0
  52. package/packages/omo-codex/plugin/components/ulw-loop/dist/review-blockers.js +16 -9
  53. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  54. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  55. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-codex-validation.ts +18 -59
  56. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-continuation.ts +1 -6
  57. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-reconciliation.ts +1 -124
  58. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +11 -3
  59. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-arg-parser.ts +10 -4
  60. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-subcommands.ts +2 -0
  61. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +31 -50
  62. package/packages/omo-codex/plugin/components/ulw-loop/src/review-blockers.ts +29 -10
  63. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-final.test.ts +0 -82
  64. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint.test.ts +16 -22
  65. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-checkpoint.test.ts +27 -0
  66. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-json-errors.test.ts +25 -0
  67. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-snapshot.test.ts +34 -11
  68. package/packages/omo-codex/plugin/components/ulw-loop/test/guided-recovery.test.ts +9 -47
  69. package/packages/omo-codex/plugin/components/ulw-loop/test/review-blockers.test.ts +9 -7
  70. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  71. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  72. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  73. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  74. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  75. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  76. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  77. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  78. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  79. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  80. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  81. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  82. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  84. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  85. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  86. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  87. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  88. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  89. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  90. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  91. package/packages/omo-codex/plugin/package-lock.json +12 -12
  92. package/packages/omo-codex/plugin/package.json +1 -1
  93. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +3 -3
  94. package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +5 -5
  95. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
  96. package/packages/shared-skills/skills/refactor/SKILL.md +3 -3
  97. package/packages/shared-skills/skills/review-work/SKILL.md +1 -1
  98. package/packages/shared-skills/skills/ulw-execute/SKILL.md +5 -5
@@ -684,7 +684,7 @@ Record the chosen path in the TodoWrite list.
684
684
 
685
685
  Rationale for this composition:
686
686
  - **4 workers = team mode's parallel cap.** 5+ just queues.
687
- - **No verifier team member.** Verification needs \`deep\` reasoning (or \`unspecified-high\` fallback). In-team category routing downcasts to sisyphus-junior, which is weaker than required — the verifier runs OUTSIDE the team as a \`task(category="deep")\`.
687
+ - **No verifier team member.** Verification needs \`deep\` reasoning (or \`unspecified-high\` fallback). In-team category routing downcasts to the category worker, which is weaker than required — the verifier runs OUTSIDE the team as a \`task(category="deep")\`.
688
688
  - **quick × 2** for mechanical edits, **unspecified-low × 2** for reasoning edits — mirrors the plan's split.
689
689
 
690
690
  **Team lifecycle** (one team, reused until Phase 6 cleanup):
@@ -713,7 +713,7 @@ Rationale for this composition:
713
713
  While any team task is \`pending | claimed | in_progress\`:
714
714
 
715
715
  - Wait for \`<system-reminder>\` or member messages. Avoid tight polling; a single \`team_status\` check is acceptable if no notification arrives within roughly 10 seconds of expected completion.
716
- - On a worker completion report, immediately dispatch an **external verifier** — verification runs OUTSIDE the team because team-member category routing downcasts to sisyphus-junior:
716
+ - On a worker completion report, immediately dispatch an **external verifier** — verification runs OUTSIDE the team because team-member category routing downcasts to the category worker:
717
717
  \`\`\`
718
718
  task(
719
719
  category="deep",
@@ -750,5 +750,5 @@ Append to the 6.6 summary a "Dispatch path" line and, when team path was used, t
750
750
  - Do not inline the Intent Card or verify-spec into task descriptions — rely on the broadcasts.
751
751
  - Do not recreate the team mid-session.
752
752
  - Do not run tests from Lead — the external verifier owns that lane.
753
- - Do not put \`oracle\` / \`librarian\` / \`deep\` into the team spec — oracle/librarian are team-ineligible, and \`deep\` under category routing downcasts to sisyphus-junior. Use them via \`task()\` outside the team when needed.
753
+ - Do not put \`oracle\` / \`librarian\` / \`deep\` into the team spec — curated read-only agents are team-ineligible, and \`deep\` under category routing downcasts to the category worker. Use them via \`task()\` outside the team when needed.
754
754
  `
@@ -16,7 +16,7 @@ This skill may include examples copied from the OpenCode harness. In Codex, do n
16
16
  | `background_output(task_id="...")` | `multi_agent_v1.wait_agent(...)` for mailbox signals |
17
17
  | `team_*(...)` | Use Codex native subagents via `multi_agent_v1.spawn_agent` and `multi_agent_v1.wait_agent`; use `multi_agent_v1.send_input` and `multi_agent_v1.close_agent` only when exposed in the active tools list |
18
18
 
19
- Role-specific behavior must be described in a self-contained `message`. Use `fork_context: false` to start the child with only the initial prompt (no parent history); use `fork_context: true` only when full parent history is truly required. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's `message`. OMO installs these selectable agent roles into `~/.codex/agents/`: `explorer`, `librarian`, `plan`, `momus`, `metis`, `lazycodex-code-reviewer`, `lazycodex-qa-executor`, and `lazycodex-gate-reviewer` — pass the matching name as `agent_type` so the child gets that role's model and instructions. If the spawn tool exposes no `agent_type` parameter, omit it and describe the role inside `message`. If a code block below conflicts with this section, this section wins.
19
+ Role-specific behavior must be described in a self-contained `message`. Use `fork_context: false` to start the child with only the initial prompt (no parent history); use `fork_context: true` only when full parent history is truly required. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's `message`. OMO installs these selectable agent roles into `~/.codex/agents/`: `explorer`, `librarian`, `plan`, `momus`, `metis`, `lazycodex-code-reviewer`, `lazycodex-qa-executor`, and `lazycodex-gate-reviewer` — pass the matching name as `agent_type` so the child gets that role's model and instructions. If the spawn tool exposes no `agent_type` parameter, omit it and describe the role inside `message`. If a code block below conflicts with this section, this section wins. <!-- retired-name-allowed -->
20
20
 
21
21
  Codex exposes ONE of two subagent tool surfaces per session; check your own tool list and route accordingly. If `multi_agent_v1.*` tools exist, use the table above as written. If instead a flat `spawn_agent` with a required `task_name` exists (`multi_agent_v2`), rewrite every `multi_agent_v1.*` example: `multi_agent_v1.spawn_agent({...,"fork_context":false})` becomes `spawn_agent({"task_name":"<lowercase_digits_underscores>","message":...,"agent_type":...,"fork_turns":"none"})` (`"all"` only when full parent history is truly required); `send_input` becomes `send_message`; do not call `close_agent`/`resume_agent` (finished agents end on their own; `followup_task` re-tasks one, `interrupt_agent` stops one); `wait_agent` takes only `timeout_ms` and returns on any child mailbox activity. `agent_type` works the same on both surfaces. If a code block below conflicts with this section, this section wins.
22
22
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ulw-execute
3
- description: "Executes a written Prometheus 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."
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
4
  ---
5
5
 
6
6
  ## ABSOLUTE RULE: YOU ARE AN ORCHESTRATOR — NEVER THE IMPLEMENTER
@@ -33,7 +33,7 @@ Plan and reviewer agents may run for a long time: spawn them in the background a
33
33
 
34
34
  # ulw-execute
35
35
 
36
- Execute a Prometheus work plan until every top-level checkbox is complete. This skill pairs with the harness's ulw-execute continuation hook, which re-injects the next turn while `.omo/boulder.json` says this `codex:<session_id>` still has unchecked plan work.
36
+ Execute a work plan until every top-level checkbox is complete. This skill pairs with the harness's ulw-execute continuation hook, which re-injects the next turn while `.omo/boulder.json` says this `codex:<session_id>` still has unchecked plan work.
37
37
 
38
38
  ## Usage
39
39
 
@@ -57,7 +57,7 @@ Do ALL of this immediately after the plan is selected, BEFORE the first implemen
57
57
  ## Phase 1: Select the plan
58
58
 
59
59
  1. Read `.omo/boulder.json` if it exists.
60
- 2. List Prometheus plan files under `.omo/plans/`.
60
+ 2. List work plan files under `.omo/plans/`.
61
61
  3. If `plan-name` was provided, select the matching plan.
62
62
  4. If exactly one active or paused Boulder work exists for this session, resume it.
63
63
  5. If no active work exists and exactly one plan exists, select it.
@@ -69,7 +69,7 @@ Do ALL of this immediately after the plan is selected, BEFORE the first implemen
69
69
  When the user explicitly said `start work` / `$ulw-execute` and no selectable plan exists, treat that phrase as approval: bootstrap `ulw-plan` to create the approved plan before execution and implementation, instead of stalling or asking for generic approval again. A brief or notes file without waves, checkboxes, and acceptance criteria is NOT decision-complete — enter this bootstrap too.
70
70
 
71
71
  1. Invoke the `ulw-plan` skill from the current request and require its dynamic adversarial workflow: collect, verify, design, adversarial plan-review, synthesize.
72
- 2. The generated Prometheus plan must be saved under `.omo/plans/<slug>.md` before implementation or Boulder state writes that point at plan work.
72
+ 2. The generated work plan must be saved under `.omo/plans/<slug>.md` before implementation or Boulder state writes that point at plan work.
73
73
  3. Use maximum safe parallelism in the generated plan: independent files/tasks fan out; same-file writes, shared state, and named dependencies serialize.
74
74
  4. Preserve safety boundaries. Ask one focused question only when the objective is missing, destructive, or has a safety/product ambiguity that repository exploration cannot resolve.
75
75
  5. After the plan exists, continue directly to Phase 2.
@@ -181,7 +181,7 @@ For each checkbox, complete all five gates before marking it done:
181
181
 
182
182
  Append evidence to `.omo/ulw-execute/ledger.jsonl`, one JSON object per line. Include at least `event`, `plan`, `task`, `session_id`, `commands`, `artifact`, `adversarial_classes`, and `cleanup` fields. `adversarial_classes` lists each probed class with its observable result and each ruled-out class with a one-line reason.
183
183
 
184
- ### Sisyphus-style completion contract
184
+ ### Completion contract
185
185
 
186
186
  A worker done claim is never final: each implementation sub-task returns a `DoneClaim`, a different context runs `AdversarialVerify` probing or reproducing the claim, failures loop back to the executor, and only a confirmed verifier verdict becomes `FullyDone`.
187
187
 
package/dist/tui.js CHANGED
@@ -68018,7 +68018,7 @@ var init_harness = __esm(() => {
68018
68018
  });
68019
68019
 
68020
68020
  // packages/omo-config-core/src/schema/memory.ts
68021
- var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
68021
+ var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallEventCapsSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallEventCapsLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
68022
68022
  var init_memory = __esm(() => {
68023
68023
  init_zod();
68024
68024
  OmoMemoryReflectionTriggerSchema = object({
@@ -68040,9 +68040,20 @@ var init_memory = __esm(() => {
68040
68040
  OmoMemorySearchSchema = object({
68041
68041
  enabled: boolean2().default(true)
68042
68042
  }).strict();
68043
+ OmoMemoryRecallEventCapsSchema = object({
68044
+ tool_args: number2().int().nonnegative().default(400),
68045
+ result_head: number2().int().nonnegative().default(600),
68046
+ assistant: number2().int().nonnegative().default(1500),
68047
+ prompt: number2().int().nonnegative().default(4000)
68048
+ }).strict();
68043
68049
  OmoMemoryRecallSchema = object({
68044
68050
  enabled: boolean2().default(true),
68045
- max_items: number2().int().min(1).max(5).default(2)
68051
+ max_items: number2().int().min(1).max(5).default(2),
68052
+ category: string2().min(1).default("quick"),
68053
+ event_caps: OmoMemoryRecallEventCapsSchema.default({ tool_args: 400, result_head: 600, assistant: 1500, prompt: 4000 }),
68054
+ sidecar_max_tokens: number2().int().positive().default(48000),
68055
+ max_concurrent_wakes: number2().int().positive().default(2),
68056
+ tool_budget: number2().int().positive().default(8)
68046
68057
  }).strict();
68047
68058
  OmoMemoryNudgeSchema = object({
68048
68059
  enabled: boolean2().default(true),
@@ -68090,9 +68101,20 @@ var init_memory = __esm(() => {
68090
68101
  OmoMemorySearchLayerSchema = object({
68091
68102
  enabled: boolean2().optional()
68092
68103
  }).strict();
68104
+ OmoMemoryRecallEventCapsLayerSchema = object({
68105
+ tool_args: number2().int().nonnegative().optional(),
68106
+ result_head: number2().int().nonnegative().optional(),
68107
+ assistant: number2().int().nonnegative().optional(),
68108
+ prompt: number2().int().nonnegative().optional()
68109
+ }).strict();
68093
68110
  OmoMemoryRecallLayerSchema = object({
68094
68111
  enabled: boolean2().optional(),
68095
- max_items: number2().int().min(1).max(5).optional()
68112
+ max_items: number2().int().min(1).max(5).optional(),
68113
+ category: string2().min(1).optional(),
68114
+ event_caps: OmoMemoryRecallEventCapsLayerSchema.optional(),
68115
+ sidecar_max_tokens: number2().int().positive().optional(),
68116
+ max_concurrent_wakes: number2().int().positive().optional(),
68117
+ tool_budget: number2().int().positive().optional()
68096
68118
  }).strict();
68097
68119
  OmoMemoryNudgeLayerSchema = object({
68098
68120
  enabled: boolean2().optional(),
@@ -68162,7 +68184,15 @@ var init_memory = __esm(() => {
68162
68184
  write_notice: OmoMemoryWriteNoticeSchema.default({ enabled: true }),
68163
68185
  sync: OmoMemorySyncSchema.default({ enabled: true }),
68164
68186
  search: OmoMemorySearchSchema.default({ enabled: true }),
68165
- recall: OmoMemoryRecallSchema.default({ enabled: true, max_items: 2 }),
68187
+ recall: OmoMemoryRecallSchema.default({
68188
+ enabled: true,
68189
+ max_items: 2,
68190
+ category: "quick",
68191
+ event_caps: { tool_args: 400, result_head: 600, assistant: 1500, prompt: 4000 },
68192
+ sidecar_max_tokens: 48000,
68193
+ max_concurrent_wakes: 2,
68194
+ tool_budget: 8
68195
+ }),
68166
68196
  compile_warn_tokens: number2().int().positive().default(30000),
68167
68197
  agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
68168
68198
  }).strict();
@@ -68206,6 +68236,25 @@ var init_model_catalog = __esm(() => {
68206
68236
  OmoModelCatalogLayerSchema = record(string2(), OmoModelCatalogEntryLayerSchema);
68207
68237
  });
68208
68238
 
68239
+ // packages/omo-config-core/src/schema/model-profile.ts
68240
+ function isRecord8(value) {
68241
+ return typeof value === "object" && value !== null && !Array.isArray(value);
68242
+ }
68243
+ var OmoModelProfileInputSchema, OmoModelProfileSchema, OmoModelProfilesSchema, OmoModelProfileLayerInputSchema, OmoModelProfileLayerSchema, OmoModelProfilesLayerSchema;
68244
+ var init_model_profile = __esm(() => {
68245
+ init_zod();
68246
+ init_fallback_models();
68247
+ OmoModelProfileInputSchema = object({
68248
+ display_name: string2().optional(),
68249
+ models: array(union([string2(), OmoFallbackModelObjectSchema])).optional()
68250
+ }).strict();
68251
+ OmoModelProfileSchema = preprocess((value) => isRecord8(value) ? normalizeLegacyModelFields(value) : value, OmoModelProfileInputSchema);
68252
+ OmoModelProfilesSchema = record(string2(), OmoModelProfileSchema);
68253
+ OmoModelProfileLayerInputSchema = OmoModelProfileInputSchema.partial();
68254
+ OmoModelProfileLayerSchema = preprocess((value) => isRecord8(value) ? normalizeLegacyModelFields(value) : value, OmoModelProfileLayerInputSchema);
68255
+ OmoModelProfilesLayerSchema = record(string2(), OmoModelProfileLayerSchema);
68256
+ });
68257
+
68209
68258
  // packages/omo-config-core/src/schema/task.ts
68210
68259
  import { availableParallelism } from "os";
68211
68260
  function resolveOmoTaskSettings(input, resolveParallelism = availableParallelism) {
@@ -68398,6 +68447,7 @@ var init_config = __esm(() => {
68398
68447
  init_git_master();
68399
68448
  init_memory();
68400
68449
  init_model_catalog();
68450
+ init_model_profile();
68401
68451
  init_task();
68402
68452
  init_team();
68403
68453
  init_telemetry();
@@ -68411,6 +68461,8 @@ var init_config = __esm(() => {
68411
68461
  task: OmoTaskSettingsLayerSchema.optional(),
68412
68462
  teams: OmoTeamsConfigLayerSchema.optional(),
68413
68463
  models: OmoModelCatalogLayerSchema.optional(),
68464
+ model_profiles: OmoModelProfilesLayerSchema.optional(),
68465
+ model_profile: string2().optional(),
68414
68466
  memory: OmoMemorySettingsLayerSchema.optional(),
68415
68467
  telemetry: OmoTelemetrySettingsLayerSchema.optional()
68416
68468
  }).strict();
@@ -68422,6 +68474,8 @@ var init_config = __esm(() => {
68422
68474
  task: OmoTaskSettingsLayerSchema.optional(),
68423
68475
  teams: OmoTeamsConfigLayerSchema.optional(),
68424
68476
  models: OmoModelCatalogLayerSchema.optional(),
68477
+ model_profiles: OmoModelProfilesLayerSchema.optional(),
68478
+ model_profile: string2().optional(),
68425
68479
  memory: OmoMemorySettingsLayerSchema.optional(),
68426
68480
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
68427
68481
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
@@ -68437,6 +68491,8 @@ var init_config = __esm(() => {
68437
68491
  task: OmoTaskSettingsSchema.optional(),
68438
68492
  teams: OmoTeamsConfigSchema.optional(),
68439
68493
  models: OmoModelCatalogSchema.optional(),
68494
+ model_profiles: OmoModelProfilesSchema.optional(),
68495
+ model_profile: string2().optional(),
68440
68496
  memory: OmoMemorySettingsSchema.optional(),
68441
68497
  telemetry: OmoTelemetrySettingsSchema.optional(),
68442
68498
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
@@ -68455,6 +68511,8 @@ var init_config = __esm(() => {
68455
68511
  task: OmoTaskSettingsLayerSchema.optional(),
68456
68512
  teams: OmoTeamsConfigLayerSchema.optional(),
68457
68513
  models: OmoModelCatalogLayerSchema.optional(),
68514
+ model_profiles: OmoModelProfilesLayerSchema.optional(),
68515
+ model_profile: string2().optional(),
68458
68516
  memory: OmoMemorySettingsLayerSchema.optional(),
68459
68517
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
68460
68518
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
@@ -68477,6 +68535,7 @@ var init_schema = __esm(() => {
68477
68535
  init_harness();
68478
68536
  init_memory();
68479
68537
  init_model_catalog();
68538
+ init_model_profile();
68480
68539
  init_model_ref();
68481
68540
  init_task();
68482
68541
  init_team();
@@ -68730,21 +68789,21 @@ function hasUnsafeUnrecognizedKey(issues) {
68730
68789
  function hasTamperedPrototype(value) {
68731
68790
  if (Array.isArray(value))
68732
68791
  return value.some((entry) => hasTamperedPrototype(entry));
68733
- if (!isRecord8(value))
68792
+ if (!isRecord9(value))
68734
68793
  return false;
68735
68794
  const prototype = Object.getPrototypeOf(value);
68736
68795
  if (prototype !== Object.prototype && prototype !== null)
68737
68796
  return true;
68738
68797
  return Object.values(value).some((entry) => hasTamperedPrototype(entry));
68739
68798
  }
68740
- function isRecord8(value) {
68799
+ function isRecord9(value) {
68741
68800
  return typeof value === "object" && value !== null && !Array.isArray(value);
68742
68801
  }
68743
68802
  function containerAt(record, path) {
68744
68803
  let container = record;
68745
68804
  for (const segment of path) {
68746
68805
  const next = container[segment];
68747
- if (!isRecord8(next))
68806
+ if (!isRecord9(next))
68748
68807
  return null;
68749
68808
  container = next;
68750
68809
  }
@@ -69006,6 +69065,38 @@ function resolveCategoryDefinition(definition, catalog, cycleNames) {
69006
69065
  ...definition.fallback_models === undefined ? {} : { fallback_models: resolveFallbackModels(definition.fallback_models, catalog, cycleNames) }
69007
69066
  };
69008
69067
  }
69068
+ function resolveModelProfile(definition, catalog, cycleNames) {
69069
+ return {
69070
+ ...definition,
69071
+ ...definition.models === undefined ? {} : { models: definition.models.map((entry) => resolveModelEntry(entry, catalog, cycleNames)) }
69072
+ };
69073
+ }
69074
+ function profileShadowDiagnostics(view) {
69075
+ if (view.model_profiles === undefined || view.models === undefined)
69076
+ return [];
69077
+ return Object.keys(view.model_profiles).flatMap((name) => view.models?.[name] === undefined ? [] : [{
69078
+ kind: "validation",
69079
+ message: `Model profile "${name}" shadows a model catalog entry of the same name`,
69080
+ path: `model_profiles.${name}`
69081
+ }]);
69082
+ }
69083
+ function profileSpliceDiagnostics(section, definitions, profileNames) {
69084
+ if (definitions === undefined || profileNames.size === 0)
69085
+ return [];
69086
+ return Object.entries(definitions).flatMap(([name, definition]) => (definition.models ?? []).flatMap((entry, index) => typeof entry !== "string" || !profileNames.has(entry) ? [] : [{
69087
+ kind: "validation",
69088
+ message: `"${entry}" is a model profile; splicing a profile into a category chain is not supported yet`,
69089
+ path: `${section}.${name}.models.${index}`
69090
+ }]));
69091
+ }
69092
+ function modelProfileDiagnostics(view) {
69093
+ const profileNames = new Set(Object.keys(view.model_profiles ?? {}));
69094
+ return [
69095
+ ...profileShadowDiagnostics(view),
69096
+ ...profileSpliceDiagnostics("categories", view.categories, profileNames),
69097
+ ...profileSpliceDiagnostics("agents", view.agents, profileNames)
69098
+ ];
69099
+ }
69009
69100
  function cycleDiagnostics(catalog) {
69010
69101
  if (catalog === undefined)
69011
69102
  return [];
@@ -69016,9 +69107,10 @@ function cycleDiagnostics(catalog) {
69016
69107
  }));
69017
69108
  }
69018
69109
  function resolveModelReferences(view) {
69019
- const diagnostics = cycleDiagnostics(view.models);
69110
+ const cycles = cycleDiagnostics(view.models);
69111
+ const diagnostics = [...cycles, ...modelProfileDiagnostics(view)];
69020
69112
  const cycleNames = new Set;
69021
- for (const diagnostic of diagnostics) {
69113
+ for (const diagnostic of cycles) {
69022
69114
  const name = diagnostic.path.split(".")[1];
69023
69115
  if (name !== undefined)
69024
69116
  cycleNames.add(name);
@@ -69031,12 +69123,17 @@ function resolveModelReferences(view) {
69031
69123
  name,
69032
69124
  resolveCategoryDefinition(definition, view.models, cycleNames)
69033
69125
  ]));
69126
+ const modelProfiles = view.model_profiles === undefined ? undefined : Object.fromEntries(Object.entries(view.model_profiles).map(([name, definition]) => [
69127
+ name,
69128
+ resolveModelProfile(definition, view.models, cycleNames)
69129
+ ]));
69034
69130
  return {
69035
69131
  diagnostics,
69036
69132
  view: {
69037
69133
  ...view,
69038
69134
  ...agents === undefined ? {} : { agents },
69039
- ...categories === undefined ? {} : { categories }
69135
+ ...categories === undefined ? {} : { categories },
69136
+ ...modelProfiles === undefined ? {} : { model_profiles: modelProfiles }
69040
69137
  }
69041
69138
  };
69042
69139
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "5.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
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",
@@ -138,6 +138,7 @@
138
138
  "typecheck:packages": "tsgo --noEmit -p packages/rules-engine/tsconfig.json && tsgo --noEmit -p packages/delegate-core/tsconfig.json && tsgo --noEmit -p packages/mcp-stdio-core/tsconfig.json && tsgo --noEmit -p packages/mcp-client-core/tsconfig.json && tsgo --noEmit -p packages/git-bash-mcp/tsconfig.json && tsgo --noEmit -p packages/ast-grep-mcp/tsconfig.json && tsgo --noEmit -p packages/lsp-core/tsconfig.json && tsgo --noEmit -p packages/utils/tsconfig.json && tsgo --noEmit -p packages/model-core/tsconfig.json && tsgo --noEmit -p packages/omo-config-core/tsconfig.json && tsgo --noEmit -p packages/prompts-core/tsconfig.json && tsgo --noEmit -p packages/comment-checker-core/tsconfig.json && tsgo --noEmit -p packages/hashline-core/tsconfig.json && tsgo --noEmit -p packages/tmux-core/tsconfig.json && tsgo --noEmit -p packages/team-core/tsconfig.json && tsgo --noEmit -p packages/openclaw-core/tsconfig.json && tsgo --noEmit -p packages/boulder-state/tsconfig.json && tsgo --noEmit -p packages/memory-core/tsconfig.json && tsgo --noEmit -p packages/telemetry-core/tsconfig.json && tsgo --noEmit -p packages/claude-code-compat-core/tsconfig.json && tsgo --noEmit -p packages/skills-loader-core/tsconfig.json && tsgo --noEmit -p packages/agents-md-core/tsconfig.json && tsgo --noEmit -p packages/omo-codex/plugin/shared/tsconfig.json && tsgo --noEmit -p packages/omo-codex/tsconfig.json && tsgo --noEmit -p packages/omo-senpi/tsconfig.json && tsgo --noEmit -p packages/senpi-task/tsconfig.json && tsgo --noEmit -p packages/pi-goal/tsconfig.json && tsgo --noEmit -p packages/pi-webfetch/tsconfig.json && tsgo --noEmit -p packages/omo-opencode/tsconfig.json && tsgo --noEmit -p packages/omo-native/tsconfig.json",
139
139
  "typecheck:script": "tsgo --noEmit -p script/tsconfig.json",
140
140
  "test": "bun test --timeout 20000",
141
+ "changelog:section": "bun script/changelog-section.ts",
141
142
  "test:codex": "bun run build:codex-install && bun run build:git-bash-mcp && bun run build:lsp-tools-mcp && bun run build:lsp-daemon && npm --prefix packages/lsp-tools-mcp test && npm --prefix packages/omo-codex/plugin ci && npm --prefix packages/omo-codex/plugin/components/ulw-loop test && bun run --cwd packages/omo-codex/plugin build && node scripts/check-third-party-notices.mjs --ship && bun test --timeout 20000 packages/omo-opencode/src/cli/cli-installer.platform.test.ts packages/omo-codex/src/install/codex-cache.test.ts packages/omo-codex/src/install/codex-cleanup.test.ts packages/omo-codex/src/install/codex-config-agent-cleanup.test.ts packages/omo-codex/src/install/codex-config-autonomous-features.test.ts packages/omo-codex/src/install/codex-config-reasoning.test.ts packages/omo-codex/src/install/codex-config-toml.test.ts packages/omo-codex/src/install/codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex.test.ts packages/omo-codex/src/install/install-codex-packaged.test.ts packages/omo-codex/src/install/link-cached-plugin-agents.test.ts packages/omo-codex/src/**/*.test.ts packages/utils/src/jsonc-parser.test.ts packages/utils/src/frontmatter.test.ts packages/hashline-core/src/hash-computation.test.ts packages/hashline-core/src/smoke-untested-modules.test.ts packages/rules-engine/src/index.test.ts packages/rules-engine/src/security-boundary.test.ts packages/agents-md-core/src/injector.test.ts packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts && node --test packages/omo-codex/plugin/test/*.test.mjs packages/omo-codex/scripts/install-cache-copy.test.mjs packages/omo-codex/scripts/install-cli-args.test.mjs packages/omo-codex/scripts/install-delegated-command.test.mjs packages/omo-codex/scripts/install-config-autonomous-features.test.mjs packages/omo-codex/scripts/install-config-autonomous.test.mjs packages/omo-codex/scripts/install-config-reasoning.test.mjs packages/omo-codex/scripts/install-config.test.mjs packages/omo-codex/scripts/install-hook-targets.test.mjs packages/omo-codex/scripts/install-project-local-cleanup.test.mjs packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs packages/omo-codex/scripts/install-local-entrypoint.test.mjs packages/omo-codex/scripts/install-local-git-bash-preflight.test.mjs packages/omo-codex/scripts/install-local.test.mjs packages/omo-codex/scripts/install-marketplace-cache.test.mjs packages/omo-codex/scripts/install-mcp-context7-runtime.test.mjs packages/omo-codex/scripts/install-mcp-runtime.test.mjs packages/omo-codex/scripts/install-packaged-local.test.mjs packages/omo-codex/scripts/install-generated-bundle.test.mjs packages/omo-codex/scripts/install-agent-links.test.mjs packages/omo-codex/scripts/install-bin-links.test.mjs",
142
143
  "test:fast": "bun run script/test-fast.ts",
143
144
  "test:senpi": "bun run build:senpi-plugin && tsgo --noEmit -p packages/omo-senpi/tsconfig.json && bun test --timeout 20000 packages/omo-senpi && bun test ./.agents/skills/senpi-qa/scripts/resolve-evidence-dir.test.mjs",
@@ -184,7 +185,7 @@
184
185
  "zod": "^4.4.3"
185
186
  },
186
187
  "devDependencies": {
187
- "@code-yeongyu/senpi": "2026.9.10",
188
+ "@code-yeongyu/senpi": "2026.9.11",
188
189
  "@oh-my-opencode/agents-md-core": "workspace:*",
189
190
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
190
191
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -225,18 +226,18 @@
225
226
  "typescript": "^7.0.2"
226
227
  },
227
228
  "optionalDependencies": {
228
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.52",
229
- "oh-my-opencode-darwin-x64": "5.0.0-beta.52",
230
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.52",
231
- "oh-my-opencode-linux-arm64": "5.0.0-beta.52",
232
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.52",
233
- "oh-my-opencode-linux-x64": "5.0.0-beta.52",
234
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.52",
235
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.52",
236
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.52",
237
- "oh-my-opencode-windows-arm64": "5.0.0-beta.52",
238
- "oh-my-opencode-windows-x64": "5.0.0-beta.52",
239
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.52"
229
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.54",
230
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.54",
231
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.54",
232
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.54",
233
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.54",
234
+ "oh-my-opencode-linux-x64": "5.0.0-beta.54",
235
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.54",
236
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.54",
237
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.54",
238
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.54",
239
+ "oh-my-opencode-windows-x64": "5.0.0-beta.54",
240
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.54"
240
241
  },
241
242
  "overrides": {
242
243
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
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.0.0-beta.52) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.0.0-beta.54) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "5.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.0.0-beta.52) Checking Comments"
11
+ "statusMessage": "(OmO 5.0.0-beta.54) 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.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
4
4
  "description": "Codex plugin that runs comment-checker after edit-like PostToolUse hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
10
10
  "timeout": 5,
11
- "statusMessage": "(OmO 5.0.0-beta.52) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.0.0-beta.54) 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.0.0-beta.52) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.0.0-beta.54) 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.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
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.0.0-beta.52) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.0.0-beta.54) 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.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
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.0.0-beta.52",
4
- "inputDigest": "sha256:8674d4fcd17586aabee0cf663798fa9c40792359db3eca9bb5f99c88594f89df",
3
+ "version": "5.0.0-beta.54",
4
+ "inputDigest": "sha256:a41b5561656a59e4498f10a6cdf0f42b6671cc4e0f045429d3919e98dca2f4c6",
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.0.0-beta.52) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.0.0-beta.54) 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.0.0-beta.52) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.0.0-beta.54) 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.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
4
4
  "description": "Codex plugin that exposes Language Server Protocol tools and post-edit diagnostics.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.52) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.0.0-beta.54) Loading Project Rules"
11
11
  }
12
12
  ]
13
13
  }
@@ -19,7 +19,7 @@
19
19
  "type": "command",
20
20
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
21
21
  "timeout": 10,
22
- "statusMessage": "(OmO 5.0.0-beta.52) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.0.0-beta.54) Loading Project Rules"
23
23
  }
24
24
  ]
25
25
  }
@@ -32,7 +32,7 @@
32
32
  "type": "command",
33
33
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
34
34
  "timeout": 10,
35
- "statusMessage": "(OmO 5.0.0-beta.52) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.0.0-beta.54) Matching Project Rules"
36
36
  }
37
37
  ]
38
38
  }
@@ -45,7 +45,7 @@
45
45
  "type": "command",
46
46
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
47
47
  "timeout": 10,
48
- "statusMessage": "(OmO 5.0.0-beta.52) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.0.0-beta.54) Resetting Project Rule Cache"
49
49
  }
50
50
  ]
51
51
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-rules",
3
- "version": "5.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
4
4
  "description": "Codex plugin that injects project rule files into model context through lifecycle hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.0.0-beta.52) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.0.0-beta.54) Checking Thread Title Hygiene"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-teammode",
3
- "version": "5.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
4
4
  "description": "Codex team-mode hook component that keeps background thread titles descriptive after create_thread.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.0.0-beta.52) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.0.0-beta.54) Recording Session Telemetry"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-telemetry",
3
- "version": "5.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
4
4
  "description": "Codex plugin component that emits omo-codex anonymous daily-active telemetry on SessionStart.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.0.0-beta.52) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.0.0-beta.54) Checking Ultrawork Trigger"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ultrawork",
3
- "version": "5.0.0-beta.52",
3
+ "version": "5.0.0-beta.54",
4
4
  "description": "Codex plugin that injects the ultrawork orchestration directive and ships LazyCodex planning, review, QA, and gate agent roles.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",