oh-my-openagent 5.1.34 → 5.1.38

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 (184) hide show
  1. package/dist/agents/gpt-prompt-identity.d.ts +1 -1
  2. package/dist/cli/index.js +122 -48
  3. package/dist/cli-node/index.js +122 -48
  4. package/dist/index.d.ts +7 -3
  5. package/dist/index.js +28335 -28302
  6. package/dist/opencode-v2/server-entry.d.ts +2 -0
  7. package/dist/opencode-v2/startup-notice.d.ts +3 -0
  8. package/dist/opencode-v2/tui-entry.d.ts +16 -0
  9. package/dist/skills/browser/runtime/omowright/index.js +4 -4
  10. package/dist/skills/browser/runtime/omowright/manifest.json +2 -2
  11. package/dist/skills/frontend/SKILL.md +8 -1
  12. package/dist/skills/frontend/references/design/README.md +3 -2
  13. package/dist/skills/frontend/references/perfection/README.md +2 -1
  14. package/dist/skills/frontend/scripts/perfection/accent-stripes/color.ts +132 -0
  15. package/dist/skills/frontend/scripts/perfection/accent-stripes/css-parse.ts +103 -0
  16. package/dist/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +156 -0
  17. package/dist/skills/frontend/scripts/perfection/accent-stripes/findings.ts +34 -0
  18. package/dist/skills/frontend/scripts/perfection/accent-stripes/gradient.ts +70 -0
  19. package/dist/skills/frontend/scripts/perfection/accent-stripes/lint.ts +110 -0
  20. package/dist/skills/frontend/scripts/perfection/accent-stripes/markup.ts +148 -0
  21. package/dist/skills/frontend/scripts/perfection/accent-stripes/selector.ts +46 -0
  22. package/dist/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +117 -0
  23. package/dist/skills/frontend/scripts/perfection/check-accent-stripes.test.ts +86 -0
  24. package/dist/skills/frontend/scripts/perfection/check-accent-stripes.ts +50 -0
  25. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/exempt-states.css +4 -0
  26. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/flat-stripe-side.tsx +11 -0
  27. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/full-surface-gradients.css +34 -0
  28. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +7 -0
  29. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +6 -0
  30. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/pseudo-overlays.css +3 -0
  31. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +11 -0
  32. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +3 -0
  33. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/wide-blocks-and-hairlines.css +3 -0
  34. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/apply.css +3 -0
  35. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/border-top-card.css +5 -0
  36. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/cva-variant.ts +1 -0
  37. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/gradient-edges.css +26 -0
  38. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inline-styles.tsx +6 -0
  39. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inset-shadow.css +4 -0
  40. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/non-visible-focus-and-nested.tsx +6 -0
  41. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/pseudo-bar.css +13 -0
  42. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/split-rule-and-token.scss +14 -0
  43. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/styled-components.tsx +14 -0
  44. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-cards.tsx +8 -0
  45. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-inset-and-style.vue +11 -0
  46. package/dist/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-pseudo.html +3 -0
  47. package/dist/skills/ulw-research/references/report-gates.md +1 -1
  48. package/dist/skills/ulw-research/scripts/gates-figures.mjs +22 -6
  49. package/dist/skills/ulw-research/scripts/gates-static.test.ts +13 -0
  50. package/dist/tui.d.ts +7 -3
  51. package/dist/tui.js +49 -16
  52. package/package.json +16 -15
  53. package/packages/git-bash-mcp/package.json +1 -1
  54. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  55. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  56. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  57. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  58. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  59. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  60. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  61. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  62. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  63. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  64. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  65. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  66. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  67. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  68. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  69. package/packages/omo-codex/plugin/components/teammode/package.json +2 -2
  70. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +2 -1
  71. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +2 -1
  72. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  73. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  74. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  75. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  76. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  77. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  78. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  79. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  80. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  81. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  82. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  84. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  85. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  86. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  87. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  88. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  89. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  90. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  91. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  92. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  93. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  94. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  95. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  96. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  97. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  98. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  99. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  100. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  101. package/packages/omo-codex/plugin/package-lock.json +18 -17
  102. package/packages/omo-codex/plugin/package.json +1 -1
  103. package/packages/omo-codex/plugin/shared/package.json +1 -1
  104. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/index.js +4 -4
  105. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +2 -2
  106. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +8 -1
  107. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +3 -2
  108. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +2 -1
  109. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/color.ts +132 -0
  110. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/css-parse.ts +103 -0
  111. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +156 -0
  112. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/findings.ts +34 -0
  113. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/gradient.ts +70 -0
  114. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/lint.ts +110 -0
  115. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/markup.ts +148 -0
  116. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/selector.ts +46 -0
  117. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +117 -0
  118. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-accent-stripes.ts +50 -0
  119. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/exempt-states.css +4 -0
  120. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/flat-stripe-side.tsx +11 -0
  121. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/full-surface-gradients.css +34 -0
  122. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +7 -0
  123. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +6 -0
  124. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/pseudo-overlays.css +3 -0
  125. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +11 -0
  126. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +3 -0
  127. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/wide-blocks-and-hairlines.css +3 -0
  128. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/apply.css +3 -0
  129. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/border-top-card.css +5 -0
  130. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/cva-variant.ts +1 -0
  131. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/gradient-edges.css +26 -0
  132. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inline-styles.tsx +6 -0
  133. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inset-shadow.css +4 -0
  134. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/non-visible-focus-and-nested.tsx +6 -0
  135. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/pseudo-bar.css +13 -0
  136. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/split-rule-and-token.scss +14 -0
  137. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/styled-components.tsx +14 -0
  138. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-cards.tsx +8 -0
  139. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-inset-and-style.vue +11 -0
  140. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-pseudo.html +3 -0
  141. package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +1 -1
  142. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-figures.mjs +22 -6
  143. package/packages/omo-codex/scripts/install-dist/install-local.mjs +51 -4
  144. package/packages/shared-skills/skills/browser/runtime/omowright/index.js +4 -4
  145. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +2 -2
  146. package/packages/shared-skills/skills/frontend/SKILL.md +8 -1
  147. package/packages/shared-skills/skills/frontend/references/design/README.md +3 -2
  148. package/packages/shared-skills/skills/frontend/references/perfection/README.md +2 -1
  149. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/color.ts +132 -0
  150. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/css-parse.ts +103 -0
  151. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +156 -0
  152. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/findings.ts +34 -0
  153. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/gradient.ts +70 -0
  154. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/lint.ts +110 -0
  155. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/markup.ts +148 -0
  156. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/selector.ts +46 -0
  157. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +117 -0
  158. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.test.ts +86 -0
  159. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.ts +50 -0
  160. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/exempt-states.css +4 -0
  161. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/flat-stripe-side.tsx +11 -0
  162. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/full-surface-gradients.css +34 -0
  163. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +7 -0
  164. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +6 -0
  165. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/pseudo-overlays.css +3 -0
  166. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +11 -0
  167. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +3 -0
  168. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/wide-blocks-and-hairlines.css +3 -0
  169. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/apply.css +3 -0
  170. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/border-top-card.css +5 -0
  171. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/cva-variant.ts +1 -0
  172. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/gradient-edges.css +26 -0
  173. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inline-styles.tsx +6 -0
  174. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inset-shadow.css +4 -0
  175. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/non-visible-focus-and-nested.tsx +6 -0
  176. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/pseudo-bar.css +13 -0
  177. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/split-rule-and-token.scss +14 -0
  178. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/styled-components.tsx +14 -0
  179. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-cards.tsx +8 -0
  180. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-inset-and-style.vue +11 -0
  181. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-pseudo.html +3 -0
  182. package/packages/shared-skills/skills/ulw-research/references/report-gates.md +1 -1
  183. package/packages/shared-skills/skills/ulw-research/scripts/gates-figures.mjs +22 -6
  184. package/packages/shared-skills/skills/ulw-research/scripts/gates-static.test.ts +13 -0
@@ -1,3 +1,3 @@
1
- export type GptPromptIdentityKey = "gpt-5.5" | "gpt-5.6-sol" | "gpt-6-astra" | "gpt-6-sol" | "gpt-family";
1
+ export type GptPromptIdentityKey = "gpt-5.5" | "gpt-5.6-sol" | "gpt-6-astra" | "gpt-6-sol" | "gpt-6.1-sol" | "gpt-6-luna" | "gpt-family";
2
2
  export declare function getGptPromptIdentityKey(model?: string): GptPromptIdentityKey;
3
3
  export declare function getGptPromptIdentity(model?: string): string;
package/dist/cli/index.js CHANGED
@@ -2132,7 +2132,7 @@ var package_default;
2132
2132
  var init_package = __esm(() => {
2133
2133
  package_default = {
2134
2134
  name: "oh-my-opencode",
2135
- version: "5.1.34",
2135
+ version: "5.1.38",
2136
2136
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2137
2137
  main: "./dist/index.js",
2138
2138
  types: "dist/index.d.ts",
@@ -2309,7 +2309,7 @@ var init_package = __esm(() => {
2309
2309
  },
2310
2310
  devDependencies: {
2311
2311
  "@clack/prompts": "^1.8.1",
2312
- "@code-yeongyu/senpi": "2026.10.16",
2312
+ "@code-yeongyu/senpi": "2026.10.19",
2313
2313
  "@modelcontextprotocol/sdk": "^1.30.0",
2314
2314
  "@oh-my-opencode/agents-md-core": "workspace:*",
2315
2315
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -2346,6 +2346,7 @@ var init_package = __esm(() => {
2346
2346
  "@oh-my-opencode/utils": "workspace:*",
2347
2347
  "@opencode-ai/plugin": "1.18.31",
2348
2348
  "@opencode-ai/sdk": "1.18.31",
2349
+ "@opencode/plugin": "2.0.32",
2349
2350
  "@opentui/core": "^0.5.11",
2350
2351
  "@opentui/keymap": "^0.5.11",
2351
2352
  "@types/js-yaml": "^4.0.9",
@@ -2354,7 +2355,7 @@ var init_package = __esm(() => {
2354
2355
  "@typescript/typescript6": "6.0.2",
2355
2356
  "@xterm/addon-unicode11": "^0.9.0",
2356
2357
  "@xterm/xterm": "^6.0.0",
2357
- "bun-types": "1.4.2",
2358
+ "bun-types": "1.4.3",
2358
2359
  commander: "^15.0.0",
2359
2360
  diff: "^9.0.0",
2360
2361
  "js-yaml": "^5.4.2",
@@ -2368,18 +2369,18 @@ var init_package = __esm(() => {
2368
2369
  typescript: "^7.0.2"
2369
2370
  },
2370
2371
  optionalDependencies: {
2371
- "oh-my-opencode-darwin-arm64": "5.1.34",
2372
- "oh-my-opencode-darwin-x64": "5.1.34",
2373
- "oh-my-opencode-darwin-x64-baseline": "5.1.34",
2374
- "oh-my-opencode-linux-arm64": "5.1.34",
2375
- "oh-my-opencode-linux-arm64-musl": "5.1.34",
2376
- "oh-my-opencode-linux-x64": "5.1.34",
2377
- "oh-my-opencode-linux-x64-baseline": "5.1.34",
2378
- "oh-my-opencode-linux-x64-musl": "5.1.34",
2379
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.34",
2380
- "oh-my-opencode-windows-arm64": "5.1.34",
2381
- "oh-my-opencode-windows-x64": "5.1.34",
2382
- "oh-my-opencode-windows-x64-baseline": "5.1.34"
2372
+ "oh-my-opencode-darwin-arm64": "5.1.38",
2373
+ "oh-my-opencode-darwin-x64": "5.1.38",
2374
+ "oh-my-opencode-darwin-x64-baseline": "5.1.38",
2375
+ "oh-my-opencode-linux-arm64": "5.1.38",
2376
+ "oh-my-opencode-linux-arm64-musl": "5.1.38",
2377
+ "oh-my-opencode-linux-x64": "5.1.38",
2378
+ "oh-my-opencode-linux-x64-baseline": "5.1.38",
2379
+ "oh-my-opencode-linux-x64-musl": "5.1.38",
2380
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.38",
2381
+ "oh-my-opencode-windows-arm64": "5.1.38",
2382
+ "oh-my-opencode-windows-x64": "5.1.38",
2383
+ "oh-my-opencode-windows-x64-baseline": "5.1.38"
2383
2384
  },
2384
2385
  overrides: {
2385
2386
  hono: "^4.13.8",
@@ -9546,6 +9547,7 @@ var init_category_model_requirements = __esm(() => {
9546
9547
  },
9547
9548
  { providers: ["xiaomi", "opencode-go"], model: "mimo-v2.6-pro", variant: "max" },
9548
9549
  { providers: ["xai", "github-copilot", "opencode-go"], model: "grok-4.7", variant: "xhigh" },
9550
+ { providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.3", variant: "high" },
9549
9551
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6.1-sol", variant: "medium" },
9550
9552
  {
9551
9553
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
@@ -82307,6 +82309,9 @@ var init_activity_state = __esm(() => {
82307
82309
  capturedDaysByStateDir = new Map;
82308
82310
  });
82309
82311
 
82312
+ // packages/telemetry-core/src/consent-gated-fetch.ts
82313
+ var init_consent_gated_fetch = () => {};
82314
+
82310
82315
  // packages/telemetry-core/src/constants.ts
82311
82316
  var DEFAULT_POSTHOG_HOST = "https://us.i.posthog.com", DEFAULT_POSTHOG_API_KEY = "phc_CFJhj5HyvA62QPhvyaUCtaq23aUfznnijg5VaaGkNk74", UNCONFIGURED_POSTHOG_API_KEY = "phc_REPLACE_ME_OMO_NATIVE";
82312
82317
 
@@ -82354,6 +82359,7 @@ function toDiagnosticRecord(input, now) {
82354
82359
  timestamp: now.toISOString(),
82355
82360
  event: input.event,
82356
82361
  source: input.source,
82362
+ ...input.count === undefined ? {} : { count: input.count },
82357
82363
  ...serializeError(input.error, input.errorKind)
82358
82364
  };
82359
82365
  }
@@ -82446,7 +82452,7 @@ function shouldDisableTelemetry(input) {
82446
82452
  const env = input.env ?? process.env;
82447
82453
  const globalPrefix = input.globalEnvPrefix ?? "OMO";
82448
82454
  const prefixes = Array.from(new Set([globalPrefix, input.productEnvPrefix]));
82449
- if (isDisableFlag(env["DO_NOT_TRACK"])) {
82455
+ if (isDisableFlag(env["DO_NOT_TRACK"]) || isDisableFlag(env[`${globalPrefix}_DISABLE_TELEMETRY`])) {
82450
82456
  return true;
82451
82457
  }
82452
82458
  for (const prefix of prefixes) {
@@ -82478,6 +82484,47 @@ var init_env = __esm(() => {
82478
82484
  SEND_OPT_OUT_VALUES = ["0", "false", "no", "yes"];
82479
82485
  });
82480
82486
 
82487
+ // packages/telemetry-core/src/event-id.ts
82488
+ import { randomBytes as nodeRandomBytes } from "crypto";
82489
+ function createUuidV7Generator(source = {}) {
82490
+ const now = source.now ?? Date.now;
82491
+ const randomBytes = source.randomBytes ?? ((size) => new Uint8Array(nodeRandomBytes(size)));
82492
+ let lastMs = -1;
82493
+ let counter = 0;
82494
+ return () => {
82495
+ const random = randomBytes(10);
82496
+ const wallMs = Math.floor(now());
82497
+ if (wallMs > lastMs) {
82498
+ lastMs = wallMs;
82499
+ counter = (random[0] << 8 | random[1]) & COUNTER_SEED_MASK;
82500
+ } else if (counter < MAX_COUNTER) {
82501
+ counter += 1;
82502
+ } else {
82503
+ lastMs += 1;
82504
+ counter = (random[0] << 8 | random[1]) & COUNTER_SEED_MASK;
82505
+ }
82506
+ const bytes = new Uint8Array(16);
82507
+ let timestamp = lastMs;
82508
+ for (let index = 5;index >= 0; index -= 1) {
82509
+ bytes[index] = timestamp % 256;
82510
+ timestamp = Math.floor(timestamp / 256);
82511
+ }
82512
+ bytes[6] = 112 | counter >> 8;
82513
+ bytes[7] = counter & 255;
82514
+ bytes[8] = 128 | random[2] & 63;
82515
+ bytes.set(random.subarray(3, 10), 9);
82516
+ return formatUuid(bytes);
82517
+ };
82518
+ }
82519
+ function formatUuid(bytes) {
82520
+ const hex = Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
82521
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
82522
+ }
82523
+ var MAX_COUNTER = 4095, COUNTER_SEED_MASK = 2047, fallbackEventId;
82524
+ var init_event_id = __esm(() => {
82525
+ fallbackEventId = createUuidV7Generator();
82526
+ });
82527
+
82481
82528
  // node_modules/.bun/posthog-node@5.52.4/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
82482
82529
  import { dirname as dirname18, posix as posix7, sep as sep7 } from "path";
82483
82530
  function createModulerModifier() {
@@ -92044,8 +92091,10 @@ var init_record_daily_active = () => {};
92044
92091
  // packages/telemetry-core/src/index.ts
92045
92092
  var init_src5 = __esm(() => {
92046
92093
  init_activity_state();
92094
+ init_consent_gated_fetch();
92047
92095
  init_diagnostics();
92048
92096
  init_env();
92097
+ init_event_id();
92049
92098
  init_events();
92050
92099
  init_machine_id();
92051
92100
  init_posthog_client();
@@ -92057,7 +92106,7 @@ var package_default2;
92057
92106
  var init_package2 = __esm(() => {
92058
92107
  package_default2 = {
92059
92108
  name: "@oh-my-opencode/omo-codex",
92060
- version: "5.1.34",
92109
+ version: "5.1.38",
92061
92110
  type: "module",
92062
92111
  private: true,
92063
92112
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -92092,7 +92141,7 @@ var init_package2 = __esm(() => {
92092
92141
  "@oh-my-opencode/utils": "workspace:*"
92093
92142
  },
92094
92143
  devDependencies: {
92095
- "bun-types": "1.4.2"
92144
+ "bun-types": "1.4.3"
92096
92145
  }
92097
92146
  };
92098
92147
  });
@@ -99355,6 +99404,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
99355
99404
  join63("extensions", "omo-computer-use.js"),
99356
99405
  join63("extensions", "omo-memory-doctor.js"),
99357
99406
  join63("extensions", "omo-memory-memfs.js"),
99407
+ join63("extensions", "omo-memory-palace.js"),
99358
99408
  join63("extensions", "omo-thread-client.js"),
99359
99409
  join63("extensions", "assets.generated.json"),
99360
99410
  join63("extensions", "omo-member.js"),
@@ -108430,6 +108480,7 @@ var package_default3 = {
108430
108480
  "@oh-my-opencode/utils": "workspace:*",
108431
108481
  "@opencode-ai/plugin": "1.18.31",
108432
108482
  "@opencode-ai/sdk": "1.18.31",
108483
+ "@opencode/plugin": "2.0.32",
108433
108484
  commander: "^15.0.0",
108434
108485
  "jsonc-parser": "^3.3.1",
108435
108486
  picocolors: "^1.1.1",
@@ -110494,7 +110545,11 @@ function compareUtf16(left, right) {
110494
110545
  const b = Buffer2.from(right, "utf16le").swap16();
110495
110546
  return Buffer2.compare(a, b);
110496
110547
  }
110497
- function serializeValue(value, out) {
110548
+ var MAX_SERIALIZE_DEPTH = 64;
110549
+ function serializeValue(value, out, depth = 0) {
110550
+ if (typeof value === "object" && value !== null && depth >= MAX_SERIALIZE_DEPTH) {
110551
+ throw new CanonicalJsonError("json", `nesting deeper than ${MAX_SERIALIZE_DEPTH}`);
110552
+ }
110498
110553
  if (value === null)
110499
110554
  out.push("null");
110500
110555
  else if (typeof value === "boolean")
@@ -110508,7 +110563,7 @@ function serializeValue(value, out) {
110508
110563
  value.forEach((element, index) => {
110509
110564
  if (index > 0)
110510
110565
  out.push(",");
110511
- serializeValue(element, out);
110566
+ serializeValue(element, out, depth + 1);
110512
110567
  });
110513
110568
  out.push("]");
110514
110569
  } else {
@@ -110517,7 +110572,7 @@ function serializeValue(value, out) {
110517
110572
  if (index > 0)
110518
110573
  out.push(",");
110519
110574
  out.push(escapeCanonicalString(key), ":");
110520
- serializeValue(value[key], out);
110575
+ serializeValue(value[key], out, depth + 1);
110521
110576
  });
110522
110577
  out.push("}");
110523
110578
  }
@@ -110529,9 +110584,12 @@ function canonicalizeJson(value) {
110529
110584
  }
110530
110585
 
110531
110586
  // packages/memory-core/src/sync/canonical-json.ts
110587
+ var MAX_CANONICAL_DEPTH = 64;
110588
+
110532
110589
  class Parser {
110533
110590
  text;
110534
110591
  position = 0;
110592
+ depth = 0;
110535
110593
  constructor(text) {
110536
110594
  this.text = text;
110537
110595
  }
@@ -110545,10 +110603,14 @@ class Parser {
110545
110603
  parseValue() {
110546
110604
  this.skipInsignificant();
110547
110605
  const char = this.text[this.position];
110548
- if (char === "{")
110549
- return this.parseObject();
110550
- if (char === "[")
110551
- return this.parseArray();
110606
+ if (char === "{" || char === "[") {
110607
+ if (this.depth >= MAX_CANONICAL_DEPTH)
110608
+ throw this.fail("json", `nesting deeper than ${MAX_CANONICAL_DEPTH}`);
110609
+ this.depth++;
110610
+ const value = char === "{" ? this.parseObject() : this.parseArray();
110611
+ this.depth--;
110612
+ return value;
110613
+ }
110552
110614
  if (char === '"')
110553
110615
  return this.parseString().value;
110554
110616
  if (char === "-" || char >= "0" && char <= "9")
@@ -110744,7 +110806,14 @@ function openHpkeSealedBox(sealingPrivateRaw, sealingPublicRaw, wrap, info = Buf
110744
110806
  },
110745
110807
  format: "jwk"
110746
110808
  });
110747
- const dh = diffieHellman({ privateKey, publicKey: x25519PublicKeyFromRaw(enc) });
110809
+ let dh;
110810
+ try {
110811
+ dh = diffieHellman({ privateKey, publicKey: x25519PublicKeyFromRaw(enc) });
110812
+ } catch {
110813
+ throw new Error("sealed box does not open: wrong recipient or corrupted wrap");
110814
+ }
110815
+ if (dh.every((byte) => byte === 0))
110816
+ throw new Error("sealed box does not open: wrong recipient or corrupted wrap");
110748
110817
  const kem = Buffer4.concat([Buffer4.from("KEM"), KEM_ID]);
110749
110818
  const suite = Buffer4.concat([Buffer4.from("HPKE"), KEM_ID, KDF_ID, AEAD_ID]);
110750
110819
  const sharedSecret = labeledExpand(kem, "shared_secret", labeledExtract(kem, "eae_prk", dh, Buffer4.alloc(0)), Buffer4.concat([Buffer4.from(enc), Buffer4.from(sealingPublicRaw)]), 32);
@@ -110784,6 +110853,24 @@ var SIGNING_DOMAIN_TAGS = {
110784
110853
  function domainSeparatedMessage(purpose, payload) {
110785
110854
  return Buffer5.concat([Buffer5.from(SIGNING_DOMAIN_TAGS[purpose], "ascii"), Buffer5.from([0]), Buffer5.from(payload)]);
110786
110855
  }
110856
+ var CANONICAL_REASONS = {
110857
+ json: "record-json",
110858
+ "duplicate-key": "record-canonical-duplicate-key",
110859
+ number: "record-canonical-number",
110860
+ order: "record-canonical-order",
110861
+ escape: "record-canonical-escape",
110862
+ whitespace: "record-canonical-whitespace",
110863
+ encoding: "record-canonical-encoding"
110864
+ };
110865
+ function parseCanonical(bytes, what) {
110866
+ try {
110867
+ return requireCanonicalJson(bytes);
110868
+ } catch (error) {
110869
+ if (!(error instanceof CanonicalJsonError))
110870
+ throw error;
110871
+ throw new DeviceKeyringSignError(CANONICAL_REASONS[error.violation], `sign: ${what} preimage is not RFC 8785 canonical JSON: ${error.message}`);
110872
+ }
110873
+ }
110787
110874
  function validateSignRequest(request) {
110788
110875
  if (typeof request !== "object" || request === null) {
110789
110876
  throw new DeviceKeyringSignError("unknown-purpose", "sign: request must be a typed sign request");
@@ -110798,16 +110885,7 @@ function validateSignRequest(request) {
110798
110885
  if (!(request.canonicalJson instanceof Uint8Array)) {
110799
110886
  throw new DeviceKeyringSignError("record-json", "sign: record needs RFC 8785 canonical JSON bytes");
110800
110887
  }
110801
- let parsed;
110802
- try {
110803
- parsed = requireCanonicalJson(request.canonicalJson);
110804
- } catch (error) {
110805
- if (error instanceof CanonicalJsonError) {
110806
- const reason = error.violation === "json" ? "record-json" : error.violation === "duplicate-key" ? "record-canonical-duplicate-key" : error.violation === "number" ? "record-canonical-number" : error.violation === "order" ? "record-canonical-order" : error.violation === "escape" ? "record-canonical-escape" : error.violation === "whitespace" ? "record-canonical-whitespace" : "record-canonical-encoding";
110807
- throw new DeviceKeyringSignError(reason, `sign: record preimage is not RFC 8785 canonical JSON: ${error.message}`);
110808
- }
110809
- throw error;
110810
- }
110888
+ const parsed = parseCanonical(request.canonicalJson, "record");
110811
110889
  if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed) || typeof parsed.t !== "string") {
110812
110890
  throw new DeviceKeyringSignError("record-json", 'sign: record preimage needs a top-level "t" string');
110813
110891
  }
@@ -110815,8 +110893,8 @@ function validateSignRequest(request) {
110815
110893
  if (!t.startsWith("omo-sync/v1/")) {
110816
110894
  throw new DeviceKeyringSignError("record-prefix", 'sign: record "t" must start with "omo-sync/v1/"');
110817
110895
  }
110818
- if (t === SIGNING_DOMAIN_TAGS["object-digest"]) {
110819
- throw new DeviceKeyringSignError("record-prefix", 'sign: record "t" must name a record or snapshot type, not the object-digest tag');
110896
+ if (t === SIGNING_DOMAIN_TAGS["object-digest"] || t === SIGNING_DOMAIN_TAGS.snapshot) {
110897
+ throw new DeviceKeyringSignError("record-prefix", `sign: record "t" must name a keyring record type, not another purpose's tag`);
110820
110898
  }
110821
110899
  return request.canonicalJson;
110822
110900
  }
@@ -110824,15 +110902,7 @@ function validateSignRequest(request) {
110824
110902
  if (!(request.canonicalJson instanceof Uint8Array)) {
110825
110903
  throw new DeviceKeyringSignError("record-json", "sign: snapshot needs RFC 8785 canonical JSON bytes");
110826
110904
  }
110827
- let parsed;
110828
- try {
110829
- parsed = requireCanonicalJson(request.canonicalJson);
110830
- } catch (error) {
110831
- if (error instanceof CanonicalJsonError) {
110832
- throw new DeviceKeyringSignError("record-canonical", `sign: snapshot preimage is not RFC 8785 canonical JSON: ${error.message}`);
110833
- }
110834
- throw error;
110835
- }
110905
+ const parsed = parseCanonical(request.canonicalJson, "snapshot");
110836
110906
  const t = typeof parsed === "object" && parsed !== null ? parsed.t : undefined;
110837
110907
  if (t !== SIGNING_DOMAIN_TAGS.snapshot) {
110838
110908
  throw new DeviceKeyringSignError("snapshot-prefix", 'sign: snapshot preimage "t" must be exactly "omo-sync/v1/snapshot"');
@@ -110842,7 +110912,11 @@ function validateSignRequest(request) {
110842
110912
  throw new DeviceKeyringSignError("unknown-purpose", `sign: unsupported purpose ${JSON.stringify(request.purpose ?? null)}`);
110843
110913
  }
110844
110914
  var WRAP_INFO = Buffer5.concat([Buffer5.from("omo-sync/v1/wrap", "ascii"), Buffer5.from([0])]);
110845
- var wrapAad = (binding) => Buffer5.from(`{"account":${JSON.stringify(binding.account)},"epoch":${binding.epoch},"id":${JSON.stringify(binding.id)}}`, "utf8");
110915
+ var wrapAad = (binding) => {
110916
+ if (!Number.isSafeInteger(binding.epoch) || binding.epoch < 0)
110917
+ throw new Error("unseal: the wrap epoch must be a non-negative integer");
110918
+ return canonicalizeJson({ account: binding.account, epoch: binding.epoch, id: binding.id });
110919
+ };
110846
110920
  function generateDeviceKeyMaterial() {
110847
110921
  const signing = generateKeyPairSync("ed25519");
110848
110922
  const sealing = generateKeyPairSync("x25519");