oh-my-opencode 4.17.0 → 4.17.1

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 (117) hide show
  1. package/.agents/command/publish.md +31 -58
  2. package/.agents/skills/pre-publish-review/SKILL.md +1 -1
  3. package/.agents/skills/publish/SKILL.md +32 -59
  4. package/.opencode/command/publish.md +31 -58
  5. package/.opencode/skills/pre-publish-review/SKILL.md +1 -1
  6. package/dist/cli/index.js +30 -27
  7. package/dist/cli-node/index.js +30 -27
  8. package/dist/index.js +202 -254
  9. package/dist/skills/review-work/SKILL.md +10 -2
  10. package/dist/skills/start-work/SKILL.md +1 -1
  11. package/dist/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
  12. package/dist/skills/ultimate-browsing/engine/templates/package.json +1 -1
  13. package/dist/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
  14. package/dist/skills/ulw-plan/SKILL.md +2 -1
  15. package/dist/skills/ulw-plan/references/full-workflow.md +1 -1
  16. package/dist/skills/ulw-plan/references/intent-unclear.md +4 -4
  17. package/dist/skills/visual-qa/SKILL.md +9 -5
  18. package/dist/tui.js +8 -3
  19. package/package.json +13 -13
  20. package/packages/lsp-daemon/dist/cli.js +7 -13
  21. package/packages/lsp-daemon/dist/daemon-client.js +3 -5
  22. package/packages/lsp-daemon/dist/index.js +12 -18
  23. package/packages/lsp-daemon/dist/request-routing.js +6 -8
  24. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  25. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +398 -400
  26. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  27. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  29. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  30. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  31. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  32. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  34. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  35. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +14 -14
  36. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  37. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  38. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.5.md +2 -2
  39. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +2 -2
  40. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  41. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  42. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  43. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  44. package/packages/omo-codex/plugin/components/teammode/AGENTS.md +2 -2
  45. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  46. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  47. package/packages/omo-codex/plugin/components/teammode/skills/teammode/SKILL.md +33 -16
  48. package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team.mjs +2 -1
  49. package/packages/omo-codex/plugin/components/teammode/test/v2-spawn-schema.test.ts +69 -0
  50. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  51. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  52. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +3 -3
  53. package/packages/omo-codex/plugin/components/ultrawork/directive.md +29 -17
  54. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  55. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  56. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +29 -17
  57. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +2 -1
  58. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +1 -1
  59. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +4 -4
  60. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +9 -6
  61. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +29 -17
  62. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  63. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  64. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +1 -1
  65. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +2 -2
  66. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  67. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  68. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  69. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  70. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  71. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  72. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  73. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  74. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  75. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  76. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  77. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  78. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  79. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  80. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  81. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  82. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  84. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  85. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  86. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  87. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  88. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  89. package/packages/omo-codex/plugin/package-lock.json +13 -13
  90. package/packages/omo-codex/plugin/package.json +1 -1
  91. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +10 -2
  92. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +1 -1
  93. package/packages/omo-codex/plugin/skills/teammode/SKILL.md +33 -16
  94. package/packages/omo-codex/plugin/skills/teammode/scripts/team.mjs +2 -1
  95. package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
  96. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
  97. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
  98. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +29 -17
  99. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
  100. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +2 -2
  101. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +2 -1
  102. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +1 -1
  103. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +4 -4
  104. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +9 -5
  105. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +1 -1
  106. package/packages/omo-codex/plugin/test/teammode-transport.test.mjs +25 -0
  107. package/packages/omo-codex/plugin/test/ulw-plan-scope-contract.test.mjs +24 -0
  108. package/packages/omo-codex/scripts/install-dist/install-local.mjs +9 -11
  109. package/packages/shared-skills/skills/review-work/SKILL.md +10 -2
  110. package/packages/shared-skills/skills/start-work/SKILL.md +1 -1
  111. package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
  112. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
  113. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
  114. package/packages/shared-skills/skills/ulw-plan/SKILL.md +2 -1
  115. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +1 -1
  116. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +4 -4
  117. package/packages/shared-skills/skills/visual-qa/SKILL.md +9 -5
@@ -6,13 +6,21 @@ argument-hint: <patch|minor|major>
6
6
  <command-instruction>
7
7
  You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
8
8
 
9
+ ## CRITICAL: PUBLISH IS SHIP-ONLY — GO STRAIGHT TO THE WORKFLOW
10
+
11
+ `origin/dev` is already gated: every PR and push ran CI (test/typecheck/codex-compatibility on 3 OSes), and the publish workflow re-runs those same gates before anything is published.
12
+
13
+ - **NEVER run `/pre-publish-review`, `/review-work`, or any code re-review as part of a publish request.** Those run ONLY when the user explicitly asks for a review.
14
+ - **NEVER "fix" code, open PRs, or enter fix-and-re-audit loops during a publish.** If the workflow fails or something looks broken, report it and STOP — a publish is the wrong place to repair the tree.
15
+ - A publish request with a bump type goes from Step 0 to Step 3 (trigger) in minutes. The only human-scale work is release notes, drafted while CI runs.
16
+
9
17
  ## CRITICAL: FULL WORKFLOW MEANS THREE RELEASE SURFACES
10
18
 
11
19
  Publishing is complete only after all release surfaces are verified:
12
20
 
13
21
  | Release layer | Surface | Required proof |
14
22
  |---|---|---|
15
- | `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | `/get-unpublished-changes` and pre-publish review include layer-specific version impact. |
23
+ | `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | Release notes call out layer-specific version impact (from the workflow changelog, or `/get-unpublished-changes` when the user requested it). |
16
24
  | `omo opencode` | `oh-my-opencode` and `oh-my-openagent` npm packages plus platform packages | npm versions and GitHub release exist for the selected bump. |
17
25
  | `omo codex` | `lazycodex-ai`, Codex plugin metadata, and `code-yeongyu/lazycodex` marketplace release | Codex plugin metadata is stamped with the release version, `lazycodex-ai` publishes, and the LazyCodex repo release is created when the marketplace payload changed. |
18
26
 
@@ -48,8 +56,7 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
48
56
  { "id": "apply-summary", "content": "Prepend enhanced summary to release (if user opted in)", "status": "pending", "priority": "high" },
49
57
  { "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
50
58
  { "id": "verify-lazycodex", "content": "Verify lazycodex-ai publish, Codex plugin metadata version stamp, and code-yeongyu/lazycodex release/sync", "status": "pending", "priority": "high" },
51
- { "id": "wait-platform-workflow", "content": "Wait for publish-platform workflow completion", "status": "pending", "priority": "high" },
52
- { "id": "verify-platform-binaries", "content": "Verify all 7 platform binary packages published", "status": "pending", "priority": "high" },
59
+ { "id": "verify-platform-binaries", "content": "Spot-check platform binary packages on npm", "status": "pending", "priority": "high" },
53
60
  { "id": "final-confirmation", "content": "Final confirmation to user with links", "status": "pending", "priority": "low" }
54
61
  ]
55
62
  ```
@@ -60,10 +67,7 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
60
67
 
61
68
  ## STEP 1: CONFIRM BUMP TYPE
62
69
 
63
- If bump type provided as argument, confirm with user:
64
- > "Version bump type: `{bump}`. Proceed? (y/n)"
65
-
66
- Wait for user confirmation before proceeding.
70
+ If the user already named a bump type (argument or message), that IS the confirmation — state it and continue immediately. Only ask and wait when no bump type was given.
67
71
 
68
72
  ---
69
73
 
@@ -80,7 +84,7 @@ Run: `git status --porcelain`
80
84
 
81
85
  Check if there are unpushed commits:
82
86
  ```bash
83
- git log origin/master..HEAD --oneline
87
+ git log @{u}..HEAD --oneline
84
88
  ```
85
89
 
86
90
  **If there are unpushed commits, you MUST sync before triggering workflow:**
@@ -108,14 +112,21 @@ gh run list --workflow=publish --limit=1 --json databaseId,status --jq '.[0]'
108
112
 
109
113
  ## STEP 4: WAIT FOR WORKFLOW COMPLETION
110
114
 
111
- Poll workflow status every 30 seconds until completion:
115
+ The publish run is a single workflow with sequential stages. Expected timeline (from recent real runs, ~30 min total):
116
+
117
+ | Stage (job) | What it does | Typical |
118
+ |---|---|---|
119
+ | `test` / `typecheck` / `codex-compatibility` (3 OS) | Re-runs the CI gates on the release source | 4–8 min (Windows is the long pole) |
120
+ | `prepare-release-state` | Stamps versions, opens + auto-merges the `release: vX.Y.Z` PR, waits for that PR's required CI checks | 10–15 min (dominant stage) |
121
+ | `publish-platform` (build + publish, 12 targets) | Builds and publishes both platform package families | 3–4 min |
122
+ | `publish-main` → `release` | Publishes `oh-my-opencode` / `oh-my-openagent` / `lazycodex-ai`, creates the GitHub release, syncs `code-yeongyu/lazycodex` | 4–6 min |
123
+
124
+ Poll job-level status every 30 seconds and report stage transitions to the user:
112
125
  ```bash
113
- gh run view {run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
126
+ gh run view {run_id} --json status,conclusion,jobs --jq '{status, conclusion, stage: ([.jobs[] | select(.status=="in_progress") | .name] | join(", "))}'
114
127
  ```
115
128
 
116
- Status flow: `queued` `in_progress` `completed`
117
-
118
- **IMPORTANT: Use polling loop, NOT sleep commands.**
129
+ **IMPORTANT: Use polling loop, NOT sleep commands.** Use the waiting time to draft the enhanced release summary (Step 6) — do not sit idle, and do not start any review activity.
119
130
 
120
131
  If conclusion is `failure`, show error and stop:
121
132
  ```bash
@@ -297,54 +308,17 @@ Compare with expected version. If not matching after 2 minutes, warn user about
297
308
 
298
309
  ---
299
310
 
300
- ## STEP 8.5: WAIT FOR PLATFORM WORKFLOW COMPLETION
301
-
302
- The main publish workflow triggers a separate `publish-platform` workflow for platform-specific binaries.
303
-
304
- 1. Find the publish-platform workflow run triggered by the main workflow:
305
- ```bash
306
- gh run list --workflow=publish-platform --limit=1 --json databaseId,status,conclusion --jq '.[0]'
307
- ```
308
-
309
- 2. Poll workflow status every 30 seconds until completion:
310
- ```bash
311
- gh run view {platform_run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
312
- ```
313
-
314
- **IMPORTANT: Use polling loop, NOT sleep commands.**
315
-
316
- If conclusion is `failure`, show error logs:
317
- ```bash
318
- gh run view {platform_run_id} --log-failed
319
- ```
320
-
321
- ---
322
-
323
- ## STEP 8.6: VERIFY PLATFORM BINARY PACKAGES
311
+ ## STEP 8.5: SPOT-CHECK PLATFORM BINARY PACKAGES
324
312
 
325
- After publish-platform workflow completes, verify all 7 platform packages are published:
313
+ Platform packages are built and published by the `publish-platform` jobs INSIDE the same publish run — there is no separate workflow to wait for, and `publish-main` already refuses to publish unless matching platform binaries exist. Spot-check a representative sample:
326
314
 
327
315
  ```bash
328
- PLATFORMS="darwin-arm64 darwin-x64 linux-x64 linux-arm64 linux-x64-musl linux-arm64-musl windows-x64"
329
- for PLATFORM in $PLATFORMS; do
330
- npm view "oh-my-opencode-${PLATFORM}" version
316
+ for PKG in oh-my-opencode-darwin-arm64 oh-my-openagent-linux-x64 oh-my-opencode-windows-x64; do
317
+ npm view "$PKG" version
331
318
  done
332
319
  ```
333
320
 
334
- All 7 packages should show the same version as the main package (`${NEW_VERSION}`).
335
-
336
- **Expected packages:**
337
- | Package | Description |
338
- |---------|-------------|
339
- | `oh-my-opencode-darwin-arm64` | macOS Apple Silicon |
340
- | `oh-my-opencode-darwin-x64` | macOS Intel |
341
- | `oh-my-opencode-linux-x64` | Linux x64 (glibc) |
342
- | `oh-my-opencode-linux-arm64` | Linux ARM64 (glibc) |
343
- | `oh-my-opencode-linux-x64-musl` | Linux x64 (musl/Alpine) |
344
- | `oh-my-opencode-linux-arm64-musl` | Linux ARM64 (musl/Alpine) |
345
- | `oh-my-opencode-windows-x64` | Windows x64 |
346
-
347
- If any platform package version doesn't match, warn the user and suggest checking the publish-platform workflow logs.
321
+ Each should show `${NEW_VERSION}`. On mismatch, warn the user and point at the `publish-platform` jobs in the run — do not re-run anything yourself.
348
322
 
349
323
  ---
350
324
 
@@ -354,7 +328,7 @@ Report success to user with:
354
328
  - New version number
355
329
  - GitHub release URL: https://github.com/code-yeongyu/oh-my-opencode/releases/tag/v{version}
356
330
  - npm package URL: https://www.npmjs.com/package/oh-my-opencode
357
- - Platform packages status: List all 7 platform packages with their versions
331
+ - Platform packages status: spot-checked platform package versions
358
332
 
359
333
  ---
360
334
 
@@ -364,8 +338,7 @@ Report success to user with:
364
338
  - **Release not found**: Wait and retry, may be propagation delay
365
339
  - **npm not updated**: npm can take 1-5 minutes to propagate, inform user
366
340
  - **Permission denied**: User may need to re-authenticate with `gh auth login`
367
- - **Platform workflow fails**: Show logs from publish-platform workflow, check which platform failed
368
- - **Platform package missing**: Some platforms may fail due to cross-compilation issues, suggest re-running publish-platform workflow manually
341
+ - **Platform jobs fail**: Show logs from the `publish-platform` jobs in the same run, name the failing target, and stop — `publish-main` is blocked by design until they pass
369
342
 
370
343
  ## LANGUAGE
371
344
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pre-publish-review
3
- description: "Nuclear-grade 16-agent pre-publish release gate. Runs /get-unpublished-changes to detect all changes since last npm release, spawns up to 10 ultrabrain agents for deep per-change analysis, invokes /review-work (5 agents) for holistic review, and 1 oracle for overall release synthesis. Use before EVERY npm publish. Triggers: 'pre-publish review', 'review before publish', 'release review', 'pre-release review', 'ready to publish?', 'can I publish?', 'pre-publish', 'safe to publish', 'publishing review', 'pre-publish check'."
3
+ description: "Nuclear-grade 16-agent pre-publish release gate. Runs /get-unpublished-changes to detect all changes since last npm release, spawns up to 10 ultrabrain agents for deep per-change analysis, invokes /review-work (5 agents) for holistic review, and 1 oracle for overall release synthesis. Runs ONLY when the user explicitly asks for a pre-publish review — a plain publish/release request MUST NOT trigger this; /publish ships directly. Triggers: 'pre-publish review', 'review before publish', 'release review', 'pre-release review', 'ready to publish?', 'can I publish?', 'pre-publish', 'safe to publish', 'publishing review', 'pre-publish check'."
4
4
  ---
5
5
 
6
6
  # Pre-Publish Review — 16-Agent Release Gate
@@ -1,17 +1,25 @@
1
1
  ---
2
2
  name: publish
3
- description: "Publish oh-my-opencode to npm via GitHub Actions workflow. Argument: <patch|minor|major>. Triggers: publish, release, deploy, npm publish."
3
+ description: "Publish oh-my-opencode to npm by triggering the GitHub Actions publish workflow and verifying its artifacts. Ship-only: never runs pre-publish-review or re-reviews merged code unless the user explicitly asks. Argument: <patch|minor|major>. Triggers: publish, release, deploy, npm publish."
4
4
  ---
5
5
 
6
6
  You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
7
7
 
8
+ ## CRITICAL: PUBLISH IS SHIP-ONLY — GO STRAIGHT TO THE WORKFLOW
9
+
10
+ `origin/dev` is already gated: every PR and push ran CI (test/typecheck/codex-compatibility on 3 OSes), and the publish workflow re-runs those same gates before anything is published.
11
+
12
+ - **NEVER run `/pre-publish-review`, `/review-work`, or any code re-review as part of a publish request.** Those run ONLY when the user explicitly asks for a review.
13
+ - **NEVER "fix" code, open PRs, or enter fix-and-re-audit loops during a publish.** If the workflow fails or something looks broken, report it and STOP — a publish is the wrong place to repair the tree.
14
+ - A publish request with a bump type goes from Step 0 to Step 3 (trigger) in minutes. The only human-scale work is release notes, drafted while CI runs.
15
+
8
16
  ## CRITICAL: FULL WORKFLOW MEANS THREE RELEASE SURFACES
9
17
 
10
18
  Publishing is complete only after all release surfaces are verified:
11
19
 
12
20
  | Release layer | Surface | Required proof |
13
21
  |---|---|---|
14
- | `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | `/get-unpublished-changes` and pre-publish review include layer-specific version impact. |
22
+ | `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | Release notes call out layer-specific version impact (from the workflow changelog, or `/get-unpublished-changes` when the user requested it). |
15
23
  | `omo opencode` | `oh-my-opencode` and `oh-my-openagent` npm packages plus platform packages | npm versions and GitHub release exist for the selected bump. |
16
24
  | `omo codex` | `lazycodex-ai`, Codex plugin metadata, and `code-yeongyu/lazycodex` marketplace release | Codex plugin metadata is stamped with the release version, `lazycodex-ai` publishes, and the LazyCodex repo release is created when the marketplace payload changed. |
17
25
 
@@ -58,8 +66,7 @@ Publishing is not complete until the Discord release announcement has been attem
58
66
  { "id": "discord-announce", "content": "MANDATORY: post release announcement to Discord channel immediately after release notes are finalized", "status": "pending", "priority": "high" },
59
67
  { "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
60
68
  { "id": "verify-lazycodex", "content": "Verify lazycodex-ai publish, Codex plugin metadata version stamp, and code-yeongyu/lazycodex release/sync", "status": "pending", "priority": "high" },
61
- { "id": "wait-platform-workflow", "content": "Wait for publish-platform workflow completion", "status": "pending", "priority": "high" },
62
- { "id": "verify-platform-binaries", "content": "Verify all 7 platform binary packages published", "status": "pending", "priority": "high" },
69
+ { "id": "verify-platform-binaries", "content": "Spot-check platform binary packages on npm", "status": "pending", "priority": "high" },
63
70
  { "id": "final-confirmation", "content": "Final confirmation to user with links", "status": "pending", "priority": "low" }
64
71
  ]
65
72
  ```
@@ -70,10 +77,7 @@ Publishing is not complete until the Discord release announcement has been attem
70
77
 
71
78
  ## STEP 1: CONFIRM BUMP TYPE
72
79
 
73
- If bump type provided as argument, confirm with user:
74
- > "Version bump type: `{bump}`. Proceed? (y/n)"
75
-
76
- Wait for user confirmation before proceeding.
80
+ If the user already named a bump type (argument or message), that IS the confirmation — state it and continue immediately. Only ask and wait when no bump type was given.
77
81
 
78
82
  ---
79
83
 
@@ -90,7 +94,7 @@ Run: `git status --porcelain`
90
94
 
91
95
  Check if there are unpushed commits:
92
96
  ```bash
93
- git log origin/master..HEAD --oneline
97
+ git log @{u}..HEAD --oneline
94
98
  ```
95
99
 
96
100
  **If there are unpushed commits, you MUST sync before triggering workflow:**
@@ -118,14 +122,21 @@ gh run list --workflow=publish --limit=1 --json databaseId,status --jq '.[0]'
118
122
 
119
123
  ## STEP 4: WAIT FOR WORKFLOW COMPLETION
120
124
 
121
- Poll workflow status every 30 seconds until completion:
125
+ The publish run is a single workflow with sequential stages. Expected timeline (from recent real runs, ~30 min total):
126
+
127
+ | Stage (job) | What it does | Typical |
128
+ |---|---|---|
129
+ | `test` / `typecheck` / `codex-compatibility` (3 OS) | Re-runs the CI gates on the release source | 4–8 min (Windows is the long pole) |
130
+ | `prepare-release-state` | Stamps versions, opens + auto-merges the `release: vX.Y.Z` PR, waits for that PR's required CI checks | 10–15 min (dominant stage) |
131
+ | `publish-platform` (build + publish, 12 targets) | Builds and publishes both platform package families | 3–4 min |
132
+ | `publish-main` → `release` | Publishes `oh-my-opencode` / `oh-my-openagent` / `lazycodex-ai`, creates the GitHub release, syncs `code-yeongyu/lazycodex` | 4–6 min |
133
+
134
+ Poll job-level status every 30 seconds and report stage transitions to the user:
122
135
  ```bash
123
- gh run view {run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
136
+ gh run view {run_id} --json status,conclusion,jobs --jq '{status, conclusion, stage: ([.jobs[] | select(.status=="in_progress") | .name] | join(", "))}'
124
137
  ```
125
138
 
126
- Status flow: `queued` `in_progress` `completed`
127
-
128
- **IMPORTANT: Use polling loop, NOT sleep commands.**
139
+ **IMPORTANT: Use polling loop, NOT sleep commands.** Use the waiting time to draft the enhanced release summary (Step 6) — do not sit idle, and do not start any review activity.
129
140
 
130
141
  If conclusion is `failure`, show error and stop:
131
142
  ```bash
@@ -366,54 +377,17 @@ Compare with expected version. If not matching after 2 minutes, warn user about
366
377
 
367
378
  ---
368
379
 
369
- ## STEP 8.5: WAIT FOR PLATFORM WORKFLOW COMPLETION
370
-
371
- The main publish workflow triggers a separate `publish-platform` workflow for platform-specific binaries.
372
-
373
- 1. Find the publish-platform workflow run triggered by the main workflow:
374
- ```bash
375
- gh run list --workflow=publish-platform --limit=1 --json databaseId,status,conclusion --jq '.[0]'
376
- ```
377
-
378
- 2. Poll workflow status every 30 seconds until completion:
379
- ```bash
380
- gh run view {platform_run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
381
- ```
382
-
383
- **IMPORTANT: Use polling loop, NOT sleep commands.**
384
-
385
- If conclusion is `failure`, show error logs:
386
- ```bash
387
- gh run view {platform_run_id} --log-failed
388
- ```
389
-
390
- ---
391
-
392
- ## STEP 8.6: VERIFY PLATFORM BINARY PACKAGES
380
+ ## STEP 8.5: SPOT-CHECK PLATFORM BINARY PACKAGES
393
381
 
394
- After publish-platform workflow completes, verify all 7 platform packages are published:
382
+ Platform packages are built and published by the `publish-platform` jobs INSIDE the same publish run — there is no separate workflow to wait for, and `publish-main` already refuses to publish unless matching platform binaries exist. Spot-check a representative sample:
395
383
 
396
384
  ```bash
397
- PLATFORMS="darwin-arm64 darwin-x64 linux-x64 linux-arm64 linux-x64-musl linux-arm64-musl windows-x64"
398
- for PLATFORM in $PLATFORMS; do
399
- npm view "oh-my-opencode-${PLATFORM}" version
385
+ for PKG in oh-my-opencode-darwin-arm64 oh-my-openagent-linux-x64 oh-my-opencode-windows-x64; do
386
+ npm view "$PKG" version
400
387
  done
401
388
  ```
402
389
 
403
- All 7 packages should show the same version as the main package (`${NEW_VERSION}`).
404
-
405
- **Expected packages:**
406
- | Package | Description |
407
- |---------|-------------|
408
- | `oh-my-opencode-darwin-arm64` | macOS Apple Silicon |
409
- | `oh-my-opencode-darwin-x64` | macOS Intel |
410
- | `oh-my-opencode-linux-x64` | Linux x64 (glibc) |
411
- | `oh-my-opencode-linux-arm64` | Linux ARM64 (glibc) |
412
- | `oh-my-opencode-linux-x64-musl` | Linux x64 (musl/Alpine) |
413
- | `oh-my-opencode-linux-arm64-musl` | Linux ARM64 (musl/Alpine) |
414
- | `oh-my-opencode-windows-x64` | Windows x64 |
415
-
416
- If any platform package version doesn't match, warn the user and suggest checking the publish-platform workflow logs.
390
+ Each should show `${NEW_VERSION}`. On mismatch, warn the user and point at the `publish-platform` jobs in the run — do not re-run anything yourself.
417
391
 
418
392
  ---
419
393
 
@@ -423,7 +397,7 @@ Report success to user with:
423
397
  - New version number
424
398
  - GitHub release URL: https://github.com/code-yeongyu/oh-my-opencode/releases/tag/v{version}
425
399
  - npm package URL: https://www.npmjs.com/package/oh-my-opencode
426
- - Platform packages status: List all 7 platform packages with their versions
400
+ - Platform packages status: spot-checked platform package versions
427
401
 
428
402
  ---
429
403
 
@@ -433,8 +407,7 @@ Report success to user with:
433
407
  - **Release not found**: Wait and retry, may be propagation delay
434
408
  - **npm not updated**: npm can take 1-5 minutes to propagate, inform user
435
409
  - **Permission denied**: User may need to re-authenticate with `gh auth login`
436
- - **Platform workflow fails**: Show logs from publish-platform workflow, check which platform failed
437
- - **Platform package missing**: Some platforms may fail due to cross-compilation issues, suggest re-running publish-platform workflow manually
410
+ - **Platform jobs fail**: Show logs from the `publish-platform` jobs in the same run, name the failing target, and stop — `publish-main` is blocked by design until they pass
438
411
 
439
412
  ## LANGUAGE
440
413
 
@@ -6,13 +6,21 @@ argument-hint: <patch|minor|major>
6
6
  <command-instruction>
7
7
  You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
8
8
 
9
+ ## CRITICAL: PUBLISH IS SHIP-ONLY — GO STRAIGHT TO THE WORKFLOW
10
+
11
+ `origin/dev` is already gated: every PR and push ran CI (test/typecheck/codex-compatibility on 3 OSes), and the publish workflow re-runs those same gates before anything is published.
12
+
13
+ - **NEVER run `/pre-publish-review`, `/review-work`, or any code re-review as part of a publish request.** Those run ONLY when the user explicitly asks for a review.
14
+ - **NEVER "fix" code, open PRs, or enter fix-and-re-audit loops during a publish.** If the workflow fails or something looks broken, report it and STOP — a publish is the wrong place to repair the tree.
15
+ - A publish request with a bump type goes from Step 0 to Step 3 (trigger) in minutes. The only human-scale work is release notes, drafted while CI runs.
16
+
9
17
  ## CRITICAL: FULL WORKFLOW MEANS THREE RELEASE SURFACES
10
18
 
11
19
  Publishing is complete only after all release surfaces are verified:
12
20
 
13
21
  | Release layer | Surface | Required proof |
14
22
  |---|---|---|
15
- | `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | `/get-unpublished-changes` and pre-publish review include layer-specific version impact. |
23
+ | `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | Release notes call out layer-specific version impact (from the workflow changelog, or `/get-unpublished-changes` when the user requested it). |
16
24
  | `omo opencode` | `oh-my-opencode` and `oh-my-openagent` npm packages plus platform packages | npm versions and GitHub release exist for the selected bump. |
17
25
  | `omo codex` | `lazycodex-ai`, Codex plugin metadata, and `code-yeongyu/lazycodex` marketplace release | Codex plugin metadata is stamped with the release version, `lazycodex-ai` publishes, and the LazyCodex repo release is created when the marketplace payload changed. |
18
26
 
@@ -48,8 +56,7 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
48
56
  { "id": "apply-summary", "content": "Prepend enhanced summary to release (if user opted in)", "status": "pending", "priority": "high" },
49
57
  { "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
50
58
  { "id": "verify-lazycodex", "content": "Verify lazycodex-ai publish, Codex plugin metadata version stamp, and code-yeongyu/lazycodex release/sync", "status": "pending", "priority": "high" },
51
- { "id": "wait-platform-workflow", "content": "Wait for publish-platform workflow completion", "status": "pending", "priority": "high" },
52
- { "id": "verify-platform-binaries", "content": "Verify all 7 platform binary packages published", "status": "pending", "priority": "high" },
59
+ { "id": "verify-platform-binaries", "content": "Spot-check platform binary packages on npm", "status": "pending", "priority": "high" },
53
60
  { "id": "final-confirmation", "content": "Final confirmation to user with links", "status": "pending", "priority": "low" }
54
61
  ]
55
62
  ```
@@ -60,10 +67,7 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
60
67
 
61
68
  ## STEP 1: CONFIRM BUMP TYPE
62
69
 
63
- If bump type provided as argument, confirm with user:
64
- > "Version bump type: `{bump}`. Proceed? (y/n)"
65
-
66
- Wait for user confirmation before proceeding.
70
+ If the user already named a bump type (argument or message), that IS the confirmation — state it and continue immediately. Only ask and wait when no bump type was given.
67
71
 
68
72
  ---
69
73
 
@@ -80,7 +84,7 @@ Run: `git status --porcelain`
80
84
 
81
85
  Check if there are unpushed commits:
82
86
  ```bash
83
- git log origin/master..HEAD --oneline
87
+ git log @{u}..HEAD --oneline
84
88
  ```
85
89
 
86
90
  **If there are unpushed commits, you MUST sync before triggering workflow:**
@@ -108,14 +112,21 @@ gh run list --workflow=publish --limit=1 --json databaseId,status --jq '.[0]'
108
112
 
109
113
  ## STEP 4: WAIT FOR WORKFLOW COMPLETION
110
114
 
111
- Poll workflow status every 30 seconds until completion:
115
+ The publish run is a single workflow with sequential stages. Expected timeline (from recent real runs, ~30 min total):
116
+
117
+ | Stage (job) | What it does | Typical |
118
+ |---|---|---|
119
+ | `test` / `typecheck` / `codex-compatibility` (3 OS) | Re-runs the CI gates on the release source | 4–8 min (Windows is the long pole) |
120
+ | `prepare-release-state` | Stamps versions, opens + auto-merges the `release: vX.Y.Z` PR, waits for that PR's required CI checks | 10–15 min (dominant stage) |
121
+ | `publish-platform` (build + publish, 12 targets) | Builds and publishes both platform package families | 3–4 min |
122
+ | `publish-main` → `release` | Publishes `oh-my-opencode` / `oh-my-openagent` / `lazycodex-ai`, creates the GitHub release, syncs `code-yeongyu/lazycodex` | 4–6 min |
123
+
124
+ Poll job-level status every 30 seconds and report stage transitions to the user:
112
125
  ```bash
113
- gh run view {run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
126
+ gh run view {run_id} --json status,conclusion,jobs --jq '{status, conclusion, stage: ([.jobs[] | select(.status=="in_progress") | .name] | join(", "))}'
114
127
  ```
115
128
 
116
- Status flow: `queued` `in_progress` `completed`
117
-
118
- **IMPORTANT: Use polling loop, NOT sleep commands.**
129
+ **IMPORTANT: Use polling loop, NOT sleep commands.** Use the waiting time to draft the enhanced release summary (Step 6) — do not sit idle, and do not start any review activity.
119
130
 
120
131
  If conclusion is `failure`, show error and stop:
121
132
  ```bash
@@ -297,54 +308,17 @@ Compare with expected version. If not matching after 2 minutes, warn user about
297
308
 
298
309
  ---
299
310
 
300
- ## STEP 8.5: WAIT FOR PLATFORM WORKFLOW COMPLETION
301
-
302
- The main publish workflow triggers a separate `publish-platform` workflow for platform-specific binaries.
303
-
304
- 1. Find the publish-platform workflow run triggered by the main workflow:
305
- ```bash
306
- gh run list --workflow=publish-platform --limit=1 --json databaseId,status,conclusion --jq '.[0]'
307
- ```
308
-
309
- 2. Poll workflow status every 30 seconds until completion:
310
- ```bash
311
- gh run view {platform_run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
312
- ```
313
-
314
- **IMPORTANT: Use polling loop, NOT sleep commands.**
315
-
316
- If conclusion is `failure`, show error logs:
317
- ```bash
318
- gh run view {platform_run_id} --log-failed
319
- ```
320
-
321
- ---
322
-
323
- ## STEP 8.6: VERIFY PLATFORM BINARY PACKAGES
311
+ ## STEP 8.5: SPOT-CHECK PLATFORM BINARY PACKAGES
324
312
 
325
- After publish-platform workflow completes, verify all 7 platform packages are published:
313
+ Platform packages are built and published by the `publish-platform` jobs INSIDE the same publish run — there is no separate workflow to wait for, and `publish-main` already refuses to publish unless matching platform binaries exist. Spot-check a representative sample:
326
314
 
327
315
  ```bash
328
- PLATFORMS="darwin-arm64 darwin-x64 linux-x64 linux-arm64 linux-x64-musl linux-arm64-musl windows-x64"
329
- for PLATFORM in $PLATFORMS; do
330
- npm view "oh-my-opencode-${PLATFORM}" version
316
+ for PKG in oh-my-opencode-darwin-arm64 oh-my-openagent-linux-x64 oh-my-opencode-windows-x64; do
317
+ npm view "$PKG" version
331
318
  done
332
319
  ```
333
320
 
334
- All 7 packages should show the same version as the main package (`${NEW_VERSION}`).
335
-
336
- **Expected packages:**
337
- | Package | Description |
338
- |---------|-------------|
339
- | `oh-my-opencode-darwin-arm64` | macOS Apple Silicon |
340
- | `oh-my-opencode-darwin-x64` | macOS Intel |
341
- | `oh-my-opencode-linux-x64` | Linux x64 (glibc) |
342
- | `oh-my-opencode-linux-arm64` | Linux ARM64 (glibc) |
343
- | `oh-my-opencode-linux-x64-musl` | Linux x64 (musl/Alpine) |
344
- | `oh-my-opencode-linux-arm64-musl` | Linux ARM64 (musl/Alpine) |
345
- | `oh-my-opencode-windows-x64` | Windows x64 |
346
-
347
- If any platform package version doesn't match, warn the user and suggest checking the publish-platform workflow logs.
321
+ Each should show `${NEW_VERSION}`. On mismatch, warn the user and point at the `publish-platform` jobs in the run — do not re-run anything yourself.
348
322
 
349
323
  ---
350
324
 
@@ -354,7 +328,7 @@ Report success to user with:
354
328
  - New version number
355
329
  - GitHub release URL: https://github.com/code-yeongyu/oh-my-opencode/releases/tag/v{version}
356
330
  - npm package URL: https://www.npmjs.com/package/oh-my-opencode
357
- - Platform packages status: List all 7 platform packages with their versions
331
+ - Platform packages status: spot-checked platform package versions
358
332
 
359
333
  ---
360
334
 
@@ -364,8 +338,7 @@ Report success to user with:
364
338
  - **Release not found**: Wait and retry, may be propagation delay
365
339
  - **npm not updated**: npm can take 1-5 minutes to propagate, inform user
366
340
  - **Permission denied**: User may need to re-authenticate with `gh auth login`
367
- - **Platform workflow fails**: Show logs from publish-platform workflow, check which platform failed
368
- - **Platform package missing**: Some platforms may fail due to cross-compilation issues, suggest re-running publish-platform workflow manually
341
+ - **Platform jobs fail**: Show logs from the `publish-platform` jobs in the same run, name the failing target, and stop — `publish-main` is blocked by design until they pass
369
342
 
370
343
  ## LANGUAGE
371
344
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pre-publish-review
3
- description: "Nuclear-grade 16-agent pre-publish release gate. Runs /get-unpublished-changes to detect all changes since last npm release, spawns up to 10 ultrabrain agents for deep per-change analysis, invokes /review-work (5 agents) for holistic review, and 1 oracle for overall release synthesis. Use before EVERY npm publish. Triggers: 'pre-publish review', 'review before publish', 'release review', 'pre-release review', 'ready to publish?', 'can I publish?', 'pre-publish', 'safe to publish', 'publishing review', 'pre-publish check'."
3
+ description: "Nuclear-grade 16-agent pre-publish release gate. Runs /get-unpublished-changes to detect all changes since last npm release, spawns up to 10 ultrabrain agents for deep per-change analysis, invokes /review-work (5 agents) for holistic review, and 1 oracle for overall release synthesis. Runs ONLY when the user explicitly asks for a pre-publish review — a plain publish/release request MUST NOT trigger this; /publish ships directly. Triggers: 'pre-publish review', 'review before publish', 'release review', 'pre-release review', 'ready to publish?', 'can I publish?', 'pre-publish', 'safe to publish', 'publishing review', 'pre-publish check'."
4
4
  ---
5
5
 
6
6
  # Pre-Publish Review — 16-Agent Release Gate
package/dist/cli/index.js CHANGED
@@ -2145,7 +2145,7 @@ var package_default;
2145
2145
  var init_package = __esm(() => {
2146
2146
  package_default = {
2147
2147
  name: "oh-my-opencode",
2148
- version: "4.17.0",
2148
+ version: "4.17.1",
2149
2149
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2150
2150
  main: "./dist/index.js",
2151
2151
  types: "dist/index.d.ts",
@@ -2356,18 +2356,18 @@ var init_package = __esm(() => {
2356
2356
  typescript: "^6.0.3"
2357
2357
  },
2358
2358
  optionalDependencies: {
2359
- "oh-my-opencode-darwin-arm64": "4.17.0",
2360
- "oh-my-opencode-darwin-x64": "4.17.0",
2361
- "oh-my-opencode-darwin-x64-baseline": "4.17.0",
2362
- "oh-my-opencode-linux-arm64": "4.17.0",
2363
- "oh-my-opencode-linux-arm64-musl": "4.17.0",
2364
- "oh-my-opencode-linux-x64": "4.17.0",
2365
- "oh-my-opencode-linux-x64-baseline": "4.17.0",
2366
- "oh-my-opencode-linux-x64-musl": "4.17.0",
2367
- "oh-my-opencode-linux-x64-musl-baseline": "4.17.0",
2368
- "oh-my-opencode-windows-arm64": "4.17.0",
2369
- "oh-my-opencode-windows-x64": "4.17.0",
2370
- "oh-my-opencode-windows-x64-baseline": "4.17.0"
2359
+ "oh-my-opencode-darwin-arm64": "4.17.1",
2360
+ "oh-my-opencode-darwin-x64": "4.17.1",
2361
+ "oh-my-opencode-darwin-x64-baseline": "4.17.1",
2362
+ "oh-my-opencode-linux-arm64": "4.17.1",
2363
+ "oh-my-opencode-linux-arm64-musl": "4.17.1",
2364
+ "oh-my-opencode-linux-x64": "4.17.1",
2365
+ "oh-my-opencode-linux-x64-baseline": "4.17.1",
2366
+ "oh-my-opencode-linux-x64-musl": "4.17.1",
2367
+ "oh-my-opencode-linux-x64-musl-baseline": "4.17.1",
2368
+ "oh-my-opencode-windows-arm64": "4.17.1",
2369
+ "oh-my-opencode-windows-x64": "4.17.1",
2370
+ "oh-my-opencode-windows-x64-baseline": "4.17.1"
2371
2371
  },
2372
2372
  overrides: {
2373
2373
  "@earendil-works/pi-agent-core": "0.80.3",
@@ -9223,7 +9223,7 @@ var init_agent_model_requirements = __esm(() => {
9223
9223
  {
9224
9224
  providers: ["openai", "vercel"],
9225
9225
  model: "gpt-5.6-sol",
9226
- variant: "medium"
9226
+ variant: "high"
9227
9227
  },
9228
9228
  {
9229
9229
  providers: ["openai", "github-copilot", "opencode", "vercel"],
@@ -65103,15 +65103,20 @@ var init_command_loader = __esm(() => {
65103
65103
  init_logger3();
65104
65104
  });
65105
65105
 
65106
- // packages/claude-code-compat-core/src/shared/skill-path-resolver.ts
65106
+ // packages/utils/src/skill-path-resolver.ts
65107
65107
  var init_skill_path_resolver = () => {};
65108
65108
 
65109
+ // packages/claude-code-compat-core/src/shared/skill-path-resolver.ts
65110
+ var init_skill_path_resolver2 = __esm(() => {
65111
+ init_skill_path_resolver();
65112
+ });
65113
+
65109
65114
  // packages/claude-code-compat-core/src/features/claude-code-plugin-loader/skill-loader.ts
65110
65115
  var init_skill_loader = __esm(() => {
65111
65116
  init_frontmatter3();
65112
65117
  init_file_utils3();
65113
65118
  init_model_sanitizer2();
65114
- init_skill_path_resolver();
65119
+ init_skill_path_resolver2();
65115
65120
  init_logger3();
65116
65121
  });
65117
65122
  // packages/claude-code-compat-core/src/shared/model-format-normalizer.ts
@@ -72596,7 +72601,7 @@ var package_default2;
72596
72601
  var init_package2 = __esm(() => {
72597
72602
  package_default2 = {
72598
72603
  name: "@oh-my-opencode/omo-codex",
72599
- version: "4.16.3",
72604
+ version: "4.17.1",
72600
72605
  type: "module",
72601
72606
  private: true,
72602
72607
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -75896,6 +75901,14 @@ function parseAgentHeaderName(header) {
75896
75901
  const path7 = parseTomlDottedKey(header);
75897
75902
  return path7?.[0] === "agents" ? path7[1] ?? null : null;
75898
75903
  }
75904
+ function parseJsonString(value) {
75905
+ try {
75906
+ const parsed = JSON.parse(value);
75907
+ return typeof parsed === "string" ? parsed : null;
75908
+ } catch {
75909
+ return null;
75910
+ }
75911
+ }
75899
75912
  function parseHookStateHeaderKey(header) {
75900
75913
  const path7 = parseTomlDottedKey(header);
75901
75914
  if (path7?.[0] !== "hooks" || path7[1] !== "state")
@@ -77052,16 +77065,6 @@ function isSectionHeader3(line) {
77052
77065
  function agentNameFromToml(fileName) {
77053
77066
  return fileName.endsWith(".toml") ? fileName.slice(0, -".toml".length) : fileName;
77054
77067
  }
77055
- function parseJsonString(value) {
77056
- try {
77057
- const parsed = JSON.parse(value);
77058
- return typeof parsed === "string" ? parsed : null;
77059
- } catch (error) {
77060
- if (error instanceof Error)
77061
- return null;
77062
- return null;
77063
- }
77064
- }
77065
77068
  async function exists2(path7) {
77066
77069
  try {
77067
77070
  await lstat7(path7);