oh-my-opencode 5.1.35 → 5.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/agents/gpt-prompt-identity.d.ts +1 -1
  2. package/dist/cli/index.js +211 -189
  3. package/dist/cli-node/index.js +211 -189
  4. package/dist/index.d.ts +7 -3
  5. package/dist/index.js +40398 -40353
  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/git-master/SKILL.md +1 -1
  48. package/dist/skills/ulw-plan/SKILL.md +1 -1
  49. package/dist/skills/ulw-plan/references/full-workflow.md +5 -4
  50. package/dist/tui.d.ts +7 -3
  51. package/dist/tui.js +64 -24
  52. package/package.json +17 -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/dist/cli.js +8 -2
  56. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  57. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  58. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  59. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  60. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  61. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  62. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  63. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  64. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  65. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  66. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  67. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  68. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  69. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  70. package/packages/omo-codex/plugin/components/teammode/package.json +2 -2
  71. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +157 -151
  72. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +157 -151
  73. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  74. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  75. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  76. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  77. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +1 -1
  78. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +5 -4
  79. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  80. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  81. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  82. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  84. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  85. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  86. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  87. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  88. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  89. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  90. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  91. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  92. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  93. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  94. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  95. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  96. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  97. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  98. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  99. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  100. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  101. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  102. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  103. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  104. package/packages/omo-codex/plugin/package-lock.json +18 -17
  105. package/packages/omo-codex/plugin/package.json +1 -1
  106. package/packages/omo-codex/plugin/shared/package.json +1 -1
  107. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/index.js +4 -4
  108. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +2 -2
  109. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +8 -1
  110. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +3 -2
  111. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +2 -1
  112. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/color.ts +132 -0
  113. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/css-parse.ts +103 -0
  114. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +156 -0
  115. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/findings.ts +34 -0
  116. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/gradient.ts +70 -0
  117. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/lint.ts +110 -0
  118. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/markup.ts +148 -0
  119. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/selector.ts +46 -0
  120. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +117 -0
  121. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-accent-stripes.ts +50 -0
  122. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/exempt-states.css +4 -0
  123. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/flat-stripe-side.tsx +11 -0
  124. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/full-surface-gradients.css +34 -0
  125. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +7 -0
  126. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +6 -0
  127. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/pseudo-overlays.css +3 -0
  128. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +11 -0
  129. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +3 -0
  130. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/wide-blocks-and-hairlines.css +3 -0
  131. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/apply.css +3 -0
  132. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/border-top-card.css +5 -0
  133. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/cva-variant.ts +1 -0
  134. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/gradient-edges.css +26 -0
  135. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inline-styles.tsx +6 -0
  136. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inset-shadow.css +4 -0
  137. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/non-visible-focus-and-nested.tsx +6 -0
  138. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/pseudo-bar.css +13 -0
  139. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/split-rule-and-token.scss +14 -0
  140. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/styled-components.tsx +14 -0
  141. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-cards.tsx +8 -0
  142. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-inset-and-style.vue +11 -0
  143. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-pseudo.html +3 -0
  144. package/packages/omo-codex/plugin/skills/git-master/SKILL.md +1 -1
  145. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +1 -1
  146. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +5 -4
  147. package/packages/omo-codex/scripts/install-dist/install-local.mjs +180 -169
  148. package/packages/shared-skills/skills/browser/runtime/omowright/index.js +4 -4
  149. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +2 -2
  150. package/packages/shared-skills/skills/frontend/SKILL.md +8 -1
  151. package/packages/shared-skills/skills/frontend/references/design/README.md +3 -2
  152. package/packages/shared-skills/skills/frontend/references/perfection/README.md +2 -1
  153. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/color.ts +132 -0
  154. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/css-parse.ts +103 -0
  155. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +156 -0
  156. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/findings.ts +34 -0
  157. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/gradient.ts +70 -0
  158. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/lint.ts +110 -0
  159. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/markup.ts +148 -0
  160. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/selector.ts +46 -0
  161. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +117 -0
  162. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.test.ts +86 -0
  163. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.ts +50 -0
  164. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/exempt-states.css +4 -0
  165. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/flat-stripe-side.tsx +11 -0
  166. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/full-surface-gradients.css +34 -0
  167. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +7 -0
  168. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +6 -0
  169. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/pseudo-overlays.css +3 -0
  170. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +11 -0
  171. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +3 -0
  172. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/wide-blocks-and-hairlines.css +3 -0
  173. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/apply.css +3 -0
  174. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/border-top-card.css +5 -0
  175. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/cva-variant.ts +1 -0
  176. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/gradient-edges.css +26 -0
  177. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inline-styles.tsx +6 -0
  178. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/inset-shadow.css +4 -0
  179. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/non-visible-focus-and-nested.tsx +6 -0
  180. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/pseudo-bar.css +13 -0
  181. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/split-rule-and-token.scss +14 -0
  182. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/styled-components.tsx +14 -0
  183. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-cards.tsx +8 -0
  184. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-inset-and-style.vue +11 -0
  185. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/tailwind-pseudo.html +3 -0
  186. package/packages/shared-skills/skills/git-master/SKILL.md +1 -1
  187. package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
  188. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +5 -4
@@ -0,0 +1,5 @@
1
+ .feature-card {
2
+ padding: 24px;
3
+ border-radius: 12px;
4
+ border-top: 4px solid #6366f1;
5
+ }
@@ -0,0 +1 @@
1
+ export const card = cva("rounded-xl bg-white p-6 border-l-4 border-rose-500")
@@ -0,0 +1,26 @@
1
+ .hard-stop {
2
+ border-radius: 12px;
3
+ background: linear-gradient(to right, #6366f1 4px, #fff 4px);
4
+ }
5
+
6
+ .image-border {
7
+ border-radius: 12px;
8
+ border-left: 4px solid;
9
+ border-image: linear-gradient(#6366f1, #a855f7) 1;
10
+ }
11
+
12
+ .glow { position: relative; border-radius: 12px; }
13
+ .glow::before {
14
+ content: "";
15
+ position: absolute;
16
+ top: 0;
17
+ bottom: 0;
18
+ left: 0;
19
+ width: 3px;
20
+ background: linear-gradient(to bottom, #6366f1, #a855f7);
21
+ }
22
+
23
+ .end-band {
24
+ border-radius: 12px;
25
+ background-image: linear-gradient(to right, #fff calc(100% - 4px), #f43f5e calc(100% - 4px));
26
+ }
@@ -0,0 +1,6 @@
1
+ export const Tip = () => (
2
+ <>
3
+ <div style={{ borderRadius: 12, borderLeft: "4px solid #ef4444" }}>Careful</div>
4
+ <div className="rounded-lg" style={{ borderTop: '3px solid var(--brand)' }}>New</div>
5
+ </>
6
+ )
@@ -0,0 +1,4 @@
1
+ .note {
2
+ border-radius: 8px;
3
+ box-shadow: inset 4px 0 0 0 oklch(0.65 0.2 250), 0 1px 2px rgb(0 0 0 / 0.06);
4
+ }
@@ -0,0 +1,6 @@
1
+ const css = css`
2
+ .card:focus-within { border-radius: 12px; border-left: 3px solid #6366f1; }
3
+ td .promo-card { border-radius: 8px; border-left: 4px solid #f43f5e; }
4
+ `
5
+
6
+ export const Focused = () => <div className="rounded-xl focus:border-l-4 focus:border-indigo-500">Card</div>
@@ -0,0 +1,13 @@
1
+ .stat {
2
+ position: relative;
3
+ border-radius: 12px;
4
+ overflow: hidden;
5
+ }
6
+
7
+ .stat::before {
8
+ content: "";
9
+ position: absolute;
10
+ inset: 0 auto 0 0;
11
+ width: 4px;
12
+ background: #10b981;
13
+ }
@@ -0,0 +1,14 @@
1
+ .callout {
2
+ border-radius: 0.75rem;
3
+ border-left: 3px solid var(--color-accent);
4
+ }
5
+
6
+ .tile {
7
+ border-radius: 16px;
8
+ background: var(--surface);
9
+ &.is-featured {
10
+ border-left-width: 4px;
11
+ border-left-style: solid;
12
+ border-left-color: hsl(262 83% 58%);
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ import styled, { createGlobalStyle } from "styled-components"
2
+
3
+ export const Banner = styled.div`
4
+ padding: ${({ theme }) => theme.space[4]}px;
5
+ border-radius: 12px;
6
+ border-left: 4px solid #2563eb;
7
+ `
8
+
9
+ export const Global = createGlobalStyle`
10
+ .promo-card {
11
+ border-radius: 8px;
12
+ border-top: 3px solid var(--color-brand);
13
+ }
14
+ `
@@ -0,0 +1,8 @@
1
+ export function Cards({ featured }: { featured: boolean }) {
2
+ return (
3
+ <section>
4
+ <div className="rounded-xl border-l-4 border-indigo-500 bg-white p-6">Fast</div>
5
+ <article className={cn("rounded-2xl p-4", featured && "border-t-4 border-t-primary")}>Plans</article>
6
+ </section>
7
+ )
8
+ }
@@ -0,0 +1,11 @@
1
+ <template>
2
+ <div class="rounded-md p-4 shadow-[inset_3px_0_0_0_#f59e0b]">Heads up</div>
3
+ <div class="quote">Quote</div>
4
+ </template>
5
+
6
+ <style scoped>
7
+ .quote {
8
+ border-radius: 10px;
9
+ border-left: 5px solid rebeccapurple;
10
+ }
11
+ </style>
@@ -0,0 +1,3 @@
1
+ <div class="relative overflow-hidden rounded-lg p-6 before:absolute before:inset-y-0 before:left-0 before:w-1 before:bg-emerald-500">
2
+ Uptime 99.99%
3
+ </div>
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: git-master
3
- description: "Handles git work: atomic commits, rebase, squash, blame, bisect, reflog, and history questions. Use whenever a task needs a commit or a git-history investigation; skip for ordinary code edits."
3
+ description: "MUST USE for ANY git operations: atomic commits, rebase/squash/fixup, and history search (blame, bisect, log -S, reflog). Load it before running git yourself, or pass load_skills=['git-master'] to the task that commits. Triggers: 'commit', 'rebase', 'squash', 'who wrote', 'when was X added', 'find the commit that'."
4
4
  ---
5
5
 
6
6
  # Git Master
@@ -34,7 +34,7 @@ Example opening (adapt the wording, keep every commitment):
34
34
 
35
35
  ## INTENT ROUTING - pick ONE intent reference
36
36
 
37
- **Review modifiers are a gate trigger, not a style cue.** If the user says "high accuracy", "ultra high accuracy", "고정밀", "deep review", or equivalent - in ANY turn, even appended to a follow-up question and even after the plan already exists - set `review_required: true` in the draft: the dual high-accuracy review (native `momus` + the independent Oracle review) is now REQUIRED before handoff, and if the plan already exists you run it this same turn. The review runs under the bounded convergence contract in `full-workflow.md`: a 5-round cap (unlimited only on explicit user request), evidence-backed blocker eligibility, and approval-with-notes counting as approval. Answering the current question more carefully does NOT satisfy it. This does NOT choose CLEAR/UNCLEAR and does NOT suppress interview.
37
+ **Review modifiers are a gate trigger, not a style cue.** If the user says "high accuracy", "ultra high accuracy", "고정밀", "deep review", or equivalent - in ANY turn, even appended to a follow-up question and even after the plan already exists - set `review_required: true` in the draft: the dual high-accuracy review (native `momus` + the independent Oracle review) is now REQUIRED before handoff, and if the plan already exists you run it this same turn. The review runs under the bounded convergence contract in `full-workflow.md`: convergence-bounded rounds (another round only while the previous one raised a new blocker-eligible finding or closed a ledger blocker; a round with neither that still does not approve stops the review), evidence-backed blocker eligibility, and approval-with-notes counting as approval. Answering the current question more carefully does NOT satisfy it. This does NOT choose CLEAR/UNCLEAR and does NOT suppress interview.
38
38
 
39
39
  After grounding, make ONE judgment, record `intent: clear|unclear` plus `review_required`, **ANNOUNCE both to the user in one line**, then load ONE intent reference (you ALSO read `references/full-workflow.md` for the shared mechanics - see below). The test keys on whether the desired **OUTCOME** is clear, NOT on request length. This verdict line and the opening announcement above are the two mandatory user-visible signals of a planning session - it tells the user whether they will be interviewed and whether high-accuracy review is already requested; never skip either.
40
40
 
@@ -214,14 +214,15 @@ Every reviewer prompt must carry this intake contract with all angle-bracket val
214
214
  The first action must open the literal workspace root as a directory descriptor, then traverse `.omo`, `plans`, and the final target with descriptor-relative no-follow opens, `fstat` each ancestor as a directory and the final descriptor as a regular file, and hash all bytes read from that same final descriptor. If the platform cannot guarantee this chain, or any path/runtime/launch/receipt/digest check drifts, return `INCONCLUSIVE` before reviewing. Echo the literal workspace, runtime home, target, digest, round, and launch ID; the parent separately matches the completion envelope to the persisted session/process receipt. Never search or use another artifact.
215
215
 
216
216
  ### Bounded convergence (the review must terminate)
217
- Review rounds are capped at 5 (unlimited only on explicit user request), and an approval whose only remaining items are notes counts as approval. A finding may BLOCK only when it names at least one `blocker_eligibility` category below with its concrete evidence - an IS row no todo closes, no QA scenario proves, or the approach cannot reach for the named user is such a category; every other finding - speculative durability, replay/crash-recovery, schema, CLI-parsing, state-machine, or hardening concerns the accepted scope never required - is recorded as a non-blocking note and becomes implementation/test work, never plan expansion. After round 1 the blocker ledger FREEZES: later rounds verify accepted ledger blockers, regressions introduced by fixes, and new findings that pass eligibility - they never rediscover the plan from scratch. Fixes apply the smallest edit that resolves the cited blocker; neither reviews nor fixes grow the plan's scope. Every reviewer prompt carries this convergence contract alongside the intake contract. On cap exhaustion without approval: STOP, report outstanding blockers, ask the user - continue / accept / adjust.
217
+ Review continues until unconditional approval, but a further round runs only while the previous round made progress: it raised at least one NEW blocker-eligible finding (one not already in the ledger and not a restatement of a closed blocker), or it confirmed at least one ledger blocker closed. A round that does neither and still does not approve ends the review: stop, report the outstanding blockers, and ask the user. This is the non-convergence guard, so there is no fixed round count; it terminates because the ledger is frozen after round 1, so every closure shrinks it. An approval whose only remaining items are notes counts as approval. A finding may BLOCK only when it names at least one `blocker_eligibility` category below with its concrete evidence - an IS row no todo closes, no QA scenario proves, or the approach cannot reach for the named user is such a category; every other finding - speculative durability, replay/crash-recovery, schema, CLI-parsing, state-machine, or hardening concerns the accepted scope never required - is recorded as a non-blocking note and becomes implementation/test work, never plan expansion. After round 1 the blocker ledger FREEZES: later rounds verify accepted ledger blockers, regressions introduced by fixes, and new findings that pass eligibility - they never rediscover the plan from scratch. Fixes apply the smallest edit that resolves the cited blocker; neither reviews nor fixes grow the plan's scope. Every reviewer prompt carries this convergence contract alongside the intake contract. On cap exhaustion without approval: STOP, report outstanding blockers, ask the user - continue / accept / adjust.
218
218
 
219
219
  <!-- ulw-plan-review-convergence-contract -->
220
220
  ```json
221
221
  {
222
- "max_rounds": 5,
223
- "max_rounds_override": "explicit_user_request_only",
224
- "on_cap_reached": "stop_report_outstanding_blockers_ask_user",
222
+ "max_rounds": null,
223
+ "continue_while": "previous_round_raised_new_blocker_eligible_finding_or_closed_ledger_blocker",
224
+ "stop_on": "round_without_new_blocker_eligible_finding_or_ledger_blocker_closure",
225
+ "on_stop_without_approval": "stop_report_outstanding_blockers_ask_user",
225
226
  "blocker_eligibility": [
226
227
  "explicit_requirement_or_accepted_decision",
227
228
  "existing_failing_regression",
package/dist/tui.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { TuiPluginModule } from "@opencode-ai/plugin/tui";
2
1
  type SidebarSlotRegistration<Node> = {
3
2
  readonly order: number;
4
3
  readonly slots: {
@@ -12,5 +11,10 @@ type RegisterSidebarContentSlotInput<Node> = {
12
11
  };
13
12
  export declare function registerSidebarContentSlot<Node>({ registerSlot, requestRender, renderSidebar, }: RegisterSidebarContentSlotInput<Node>): void;
14
13
  export declare function handleTuiPollError(error: unknown, reportPollError?: (error: Error) => void): void;
15
- declare const module: TuiPluginModule;
16
- export default module;
14
+ declare const _default: {
15
+ id?: string;
16
+ tui: import("@opencode-ai/plugin/tui").TuiPlugin;
17
+ server?: never;
18
+ setup: (context: import("@opencode/plugin/tui/context").Context) => Promise<import("@opencode/plugin/tui/plugin").Cleanup | void> | import("@opencode/plugin/tui/plugin").Cleanup | void;
19
+ };
20
+ export default _default;
package/dist/tui.js CHANGED
@@ -3631,6 +3631,7 @@ var init_category_model_requirements = __esm(() => {
3631
3631
  },
3632
3632
  { providers: ["xiaomi", "opencode-go"], model: "mimo-v2.6-pro", variant: "max" },
3633
3633
  { providers: ["xai", "github-copilot", "opencode-go"], model: "grok-4.7", variant: "xhigh" },
3634
+ { providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.3", variant: "high" },
3634
3635
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6.1-sol", variant: "medium" },
3635
3636
  {
3636
3637
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
@@ -70074,17 +70075,23 @@ var init_computer = __esm(() => {
70074
70075
  });
70075
70076
 
70076
70077
  // packages/omo-config-core/src/schema/git-master.ts
70077
- var OmoGitMasterSettingsShape, OmoGitMasterSettingsLayerSchema, OmoGitMasterSettingsSchema;
70078
+ var GIT_ENV_ASSIGNMENT_PATTERN, GitEnvPrefixSchema, OmoGitMasterSettingsShape, OmoGitMasterSettingsLayerSchema, OmoGitMasterSettingsSchema;
70078
70079
  var init_git_master = __esm(() => {
70079
70080
  init_zod();
70081
+ GIT_ENV_ASSIGNMENT_PATTERN = /^(?:[A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)(?: [A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)*$/;
70082
+ GitEnvPrefixSchema = string2().refine((value) => value === "" || GIT_ENV_ASSIGNMENT_PATTERN.test(value), {
70083
+ message: 'git_env_prefix must be empty or use shell-safe env assignments like "GIT_MASTER=1"'
70084
+ });
70080
70085
  OmoGitMasterSettingsShape = {
70081
70086
  commit_footer: union([boolean2(), string2()]),
70082
- include_co_authored_by: boolean2()
70087
+ include_co_authored_by: boolean2(),
70088
+ git_env_prefix: GitEnvPrefixSchema
70083
70089
  };
70084
70090
  OmoGitMasterSettingsLayerSchema = object(OmoGitMasterSettingsShape).partial().strict();
70085
70091
  OmoGitMasterSettingsSchema = OmoGitMasterSettingsLayerSchema.extend({
70086
70092
  commit_footer: union([boolean2(), string2()]).default(false),
70087
- include_co_authored_by: boolean2().default(false)
70093
+ include_co_authored_by: boolean2().default(false),
70094
+ git_env_prefix: GitEnvPrefixSchema.default("GIT_MASTER=1")
70088
70095
  }).strict();
70089
70096
  });
70090
70097
 
@@ -72631,13 +72638,13 @@ function isValidGitEnvPrefix(value) {
72631
72638
  if (value === "") {
72632
72639
  return true;
72633
72640
  }
72634
- return GIT_ENV_ASSIGNMENT_PATTERN.test(value);
72641
+ return GIT_ENV_ASSIGNMENT_PATTERN2.test(value);
72635
72642
  }
72636
- var GIT_ENV_ASSIGNMENT_PATTERN, GIT_ENV_PREFIX_VALIDATION_MESSAGE = 'git_env_prefix must be empty or use shell-safe env assignments like "GIT_MASTER=1"', GitEnvPrefixSchema;
72643
+ var GIT_ENV_ASSIGNMENT_PATTERN2, GIT_ENV_PREFIX_VALIDATION_MESSAGE = 'git_env_prefix must be empty or use shell-safe env assignments like "GIT_MASTER=1"', GitEnvPrefixSchema2;
72637
72644
  var init_git_env_prefix = __esm(() => {
72638
72645
  init_zod();
72639
- GIT_ENV_ASSIGNMENT_PATTERN = /^(?:[A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)(?: [A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)*$/;
72640
- GitEnvPrefixSchema = string2().refine(isValidGitEnvPrefix, { message: GIT_ENV_PREFIX_VALIDATION_MESSAGE }).default("GIT_MASTER=1");
72646
+ GIT_ENV_ASSIGNMENT_PATTERN2 = /^(?:[A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)(?: [A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)*$/;
72647
+ GitEnvPrefixSchema2 = string2().refine(isValidGitEnvPrefix, { message: GIT_ENV_PREFIX_VALIDATION_MESSAGE }).default("GIT_MASTER=1");
72641
72648
  });
72642
72649
 
72643
72650
  // packages/omo-opencode/src/config/schema/git-env-prefix.ts
@@ -72653,7 +72660,7 @@ var init_git_master2 = __esm(() => {
72653
72660
  GitMasterConfigSchema = object({
72654
72661
  commit_footer: union([boolean2(), string2()]).default(false),
72655
72662
  include_co_authored_by: boolean2().default(false),
72656
- git_env_prefix: GitEnvPrefixSchema
72663
+ git_env_prefix: GitEnvPrefixSchema2
72657
72664
  });
72658
72665
  });
72659
72666
 
@@ -75007,7 +75014,7 @@ init_shared();
75007
75014
  // package.json
75008
75015
  var package_default = {
75009
75016
  name: "oh-my-opencode",
75010
- version: "5.1.35",
75017
+ version: "5.1.40",
75011
75018
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
75012
75019
  main: "./dist/index.js",
75013
75020
  types: "dist/index.d.ts",
@@ -75184,7 +75191,7 @@ var package_default = {
75184
75191
  },
75185
75192
  devDependencies: {
75186
75193
  "@clack/prompts": "^1.8.1",
75187
- "@code-yeongyu/senpi": "2026.10.16",
75194
+ "@code-yeongyu/senpi": "2026.10.19-2",
75188
75195
  "@modelcontextprotocol/sdk": "^1.30.0",
75189
75196
  "@oh-my-opencode/agents-md-core": "workspace:*",
75190
75197
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -75221,15 +75228,17 @@ var package_default = {
75221
75228
  "@oh-my-opencode/utils": "workspace:*",
75222
75229
  "@opencode-ai/plugin": "1.18.31",
75223
75230
  "@opencode-ai/sdk": "1.18.31",
75231
+ "@opencode/plugin": "2.0.32",
75224
75232
  "@opentui/core": "^0.5.11",
75225
75233
  "@opentui/keymap": "^0.5.11",
75226
75234
  "@types/js-yaml": "^4.0.9",
75235
+ "@types/node": "26.6.2",
75227
75236
  "@types/picomatch": "^4.0.3",
75228
75237
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
75229
75238
  "@typescript/typescript6": "6.0.2",
75230
75239
  "@xterm/addon-unicode11": "^0.9.0",
75231
75240
  "@xterm/xterm": "^6.0.0",
75232
- "bun-types": "1.4.2",
75241
+ "bun-types": "1.4.3",
75233
75242
  commander: "^15.0.0",
75234
75243
  diff: "^9.0.0",
75235
75244
  "js-yaml": "^5.4.2",
@@ -75243,18 +75252,18 @@ var package_default = {
75243
75252
  typescript: "^7.0.2"
75244
75253
  },
75245
75254
  optionalDependencies: {
75246
- "oh-my-opencode-darwin-arm64": "5.1.35",
75247
- "oh-my-opencode-darwin-x64": "5.1.35",
75248
- "oh-my-opencode-darwin-x64-baseline": "5.1.35",
75249
- "oh-my-opencode-linux-arm64": "5.1.35",
75250
- "oh-my-opencode-linux-arm64-musl": "5.1.35",
75251
- "oh-my-opencode-linux-x64": "5.1.35",
75252
- "oh-my-opencode-linux-x64-baseline": "5.1.35",
75253
- "oh-my-opencode-linux-x64-musl": "5.1.35",
75254
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.35",
75255
- "oh-my-opencode-windows-arm64": "5.1.35",
75256
- "oh-my-opencode-windows-x64": "5.1.35",
75257
- "oh-my-opencode-windows-x64-baseline": "5.1.35"
75255
+ "oh-my-opencode-darwin-arm64": "5.1.40",
75256
+ "oh-my-opencode-darwin-x64": "5.1.40",
75257
+ "oh-my-opencode-darwin-x64-baseline": "5.1.40",
75258
+ "oh-my-opencode-linux-arm64": "5.1.40",
75259
+ "oh-my-opencode-linux-arm64-musl": "5.1.40",
75260
+ "oh-my-opencode-linux-x64": "5.1.40",
75261
+ "oh-my-opencode-linux-x64-baseline": "5.1.40",
75262
+ "oh-my-opencode-linux-x64-musl": "5.1.40",
75263
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.40",
75264
+ "oh-my-opencode-windows-arm64": "5.1.40",
75265
+ "oh-my-opencode-windows-x64": "5.1.40",
75266
+ "oh-my-opencode-windows-x64-baseline": "5.1.40"
75258
75267
  },
75259
75268
  overrides: {
75260
75269
  hono: "^4.13.8",
@@ -75874,6 +75883,37 @@ function activeGoalLabel(activeGoal) {
75874
75883
  return activeGoal ?? "private";
75875
75884
  }
75876
75885
 
75886
+ // node_modules/.bun/@opencode+plugin@2.0.32+7e149cd14dffe704/node_modules/@opencode/plugin/dist/tui/plugin.js
75887
+ function define(plugin) {
75888
+ return plugin;
75889
+ }
75890
+
75891
+ // packages/omo-opencode/src/opencode-v2/startup-notice.ts
75892
+ var OPENCODE_V2_NOTICE_TITLE = "Oh My OpenAgent on OpenCode 2";
75893
+ var OPENCODE_V2_NOTICE_MESSAGE = [
75894
+ "OpenCode 2 support is limited: the plugin loads, but its agents, tools and hooks are not active here.",
75895
+ `For the full omo, use OmO Native: run ${NATIVE_EDITION_INSTALL_COMMAND}, then omo.`,
75896
+ `Guide: ${NATIVE_EDITION_GUIDE_URL}`
75897
+ ].join(`
75898
+ `);
75899
+ var OPENCODE_V2_NOTICE_DURATION_MS = 15000;
75900
+
75901
+ // packages/omo-opencode/src/opencode-v2/tui-entry.ts
75902
+ function showOpenCodeV2Notice(context) {
75903
+ context.ui.toast.show({
75904
+ title: OPENCODE_V2_NOTICE_TITLE,
75905
+ message: OPENCODE_V2_NOTICE_MESSAGE,
75906
+ variant: "warning",
75907
+ duration: OPENCODE_V2_NOTICE_DURATION_MS
75908
+ });
75909
+ }
75910
+ var opencodeV2Tui = define({
75911
+ id: "oh-my-openagent:tui",
75912
+ setup: (context) => {
75913
+ showOpenCodeV2Notice(context);
75914
+ }
75915
+ });
75916
+
75877
75917
  // packages/omo-opencode/src/tui.ts
75878
75918
  init_logger2();
75879
75919
 
@@ -76115,7 +76155,7 @@ var module = {
76115
76155
  });
76116
76156
  }
76117
76157
  };
76118
- var tui_default = module;
76158
+ var tui_default = { ...module, setup: opencodeV2Tui.setup };
76119
76159
  export {
76120
76160
  tui_default as default,
76121
76161
  handleTuiPollError,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "5.1.35",
3
+ "version": "5.1.40",
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",
@@ -177,7 +177,7 @@
177
177
  },
178
178
  "devDependencies": {
179
179
  "@clack/prompts": "^1.8.1",
180
- "@code-yeongyu/senpi": "2026.10.16",
180
+ "@code-yeongyu/senpi": "2026.10.19-2",
181
181
  "@modelcontextprotocol/sdk": "^1.30.0",
182
182
  "@oh-my-opencode/agents-md-core": "workspace:*",
183
183
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -214,15 +214,17 @@
214
214
  "@oh-my-opencode/utils": "workspace:*",
215
215
  "@opencode-ai/plugin": "1.18.31",
216
216
  "@opencode-ai/sdk": "1.18.31",
217
+ "@opencode/plugin": "2.0.32",
217
218
  "@opentui/core": "^0.5.11",
218
219
  "@opentui/keymap": "^0.5.11",
219
220
  "@types/js-yaml": "^4.0.9",
221
+ "@types/node": "26.6.2",
220
222
  "@types/picomatch": "^4.0.3",
221
223
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
222
224
  "@typescript/typescript6": "6.0.2",
223
225
  "@xterm/addon-unicode11": "^0.9.0",
224
226
  "@xterm/xterm": "^6.0.0",
225
- "bun-types": "1.4.2",
227
+ "bun-types": "1.4.3",
226
228
  "commander": "^15.0.0",
227
229
  "diff": "^9.0.0",
228
230
  "js-yaml": "^5.4.2",
@@ -236,18 +238,18 @@
236
238
  "typescript": "^7.0.2"
237
239
  },
238
240
  "optionalDependencies": {
239
- "oh-my-opencode-darwin-arm64": "5.1.35",
240
- "oh-my-opencode-darwin-x64": "5.1.35",
241
- "oh-my-opencode-darwin-x64-baseline": "5.1.35",
242
- "oh-my-opencode-linux-arm64": "5.1.35",
243
- "oh-my-opencode-linux-arm64-musl": "5.1.35",
244
- "oh-my-opencode-linux-x64": "5.1.35",
245
- "oh-my-opencode-linux-x64-baseline": "5.1.35",
246
- "oh-my-opencode-linux-x64-musl": "5.1.35",
247
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.35",
248
- "oh-my-opencode-windows-arm64": "5.1.35",
249
- "oh-my-opencode-windows-x64": "5.1.35",
250
- "oh-my-opencode-windows-x64-baseline": "5.1.35"
241
+ "oh-my-opencode-darwin-arm64": "5.1.40",
242
+ "oh-my-opencode-darwin-x64": "5.1.40",
243
+ "oh-my-opencode-darwin-x64-baseline": "5.1.40",
244
+ "oh-my-opencode-linux-arm64": "5.1.40",
245
+ "oh-my-opencode-linux-arm64-musl": "5.1.40",
246
+ "oh-my-opencode-linux-x64": "5.1.40",
247
+ "oh-my-opencode-linux-x64-baseline": "5.1.40",
248
+ "oh-my-opencode-linux-x64-musl": "5.1.40",
249
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.40",
250
+ "oh-my-opencode-windows-arm64": "5.1.40",
251
+ "oh-my-opencode-windows-x64": "5.1.40",
252
+ "oh-my-opencode-windows-x64-baseline": "5.1.40"
251
253
  },
252
254
  "overrides": {
253
255
  "hono": "^4.13.8",
@@ -22,6 +22,6 @@
22
22
  "@oh-my-opencode/utils": "workspace:*"
23
23
  },
24
24
  "devDependencies": {
25
- "bun-types": "1.4.2"
25
+ "bun-types": "1.4.3"
26
26
  }
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.1.35",
3
+ "version": "5.1.40",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -7100,14 +7100,20 @@ var OmoComputerSettingsLayerSchema = object({
7100
7100
  var OmoComputerSettingsSchema = OmoComputerSettingsLayerSchema;
7101
7101
 
7102
7102
  // ../../omo-config-core/src/schema/git-master.ts
7103
+ var GIT_ENV_ASSIGNMENT_PATTERN = /^(?:[A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)(?: [A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)*$/;
7104
+ var GitEnvPrefixSchema = string2().refine((value) => value === "" || GIT_ENV_ASSIGNMENT_PATTERN.test(value), {
7105
+ message: 'git_env_prefix must be empty or use shell-safe env assignments like "GIT_MASTER=1"'
7106
+ });
7103
7107
  var OmoGitMasterSettingsShape = {
7104
7108
  commit_footer: union([boolean2(), string2()]),
7105
- include_co_authored_by: boolean2()
7109
+ include_co_authored_by: boolean2(),
7110
+ git_env_prefix: GitEnvPrefixSchema
7106
7111
  };
7107
7112
  var OmoGitMasterSettingsLayerSchema = object(OmoGitMasterSettingsShape).partial().strict();
7108
7113
  var OmoGitMasterSettingsSchema = OmoGitMasterSettingsLayerSchema.extend({
7109
7114
  commit_footer: union([boolean2(), string2()]).default(false),
7110
- include_co_authored_by: boolean2().default(false)
7115
+ include_co_authored_by: boolean2().default(false),
7116
+ git_env_prefix: GitEnvPrefixSchema.default("GIT_MASTER=1")
7111
7117
  }).strict();
7112
7118
 
7113
7119
  // ../../omo-config-core/src/schema/harness.ts
@@ -8,7 +8,7 @@
8
8
  "command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
9
9
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.1.35) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.1.40) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "5.1.35",
3
+ "version": "5.1.40",
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.1.35) Checking Comments"
11
+ "statusMessage": "(OmO 5.1.40) Checking Comments"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-comment-checker",
3
- "version": "5.1.35",
3
+ "version": "5.1.40",
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.1.35) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.1.40) Recommending Git Bash MCP"
12
12
  }
13
13
  ]
14
14
  }
@@ -20,7 +20,7 @@
20
20
  "type": "command",
21
21
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.1.35) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.1.40) Resetting Git Bash MCP Reminder"
24
24
  }
25
25
  ]
26
26
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-git-bash-hook",
3
- "version": "5.1.35",
3
+ "version": "5.1.40",
4
4
  "description": "Codex hook component that reminds Windows sessions to prefer the OMO git_bash MCP.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.1.35) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.40) Verifying LazyCodex Executor Evidence"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lazycodex-executor-verify",
3
- "version": "5.1.35",
3
+ "version": "5.1.40",
4
4
  "description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "5.1.35",
4
- "inputDigest": "sha256:d7e2b8f2976901140ef492b1d88a9c90e2422b44c0cd3a9a1a3ce85c83e32096",
3
+ "version": "5.1.40",
4
+ "inputDigest": "sha256:eaaf8bb00a532c1ad018f45d3d10f940405a9e73197aaea75389780b8a77fcaa",
5
5
  "outputs": [
6
6
  {
7
7
  "path": "cli.d.ts",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 60,
11
- "statusMessage": "(OmO 5.1.35) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.40) Checking LSP Diagnostics"
12
12
  }
13
13
  ]
14
14
  }
@@ -21,7 +21,7 @@
21
21
  "type": "command",
22
22
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
23
23
  "timeout": 5,
24
- "statusMessage": "(OmO 5.1.35) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.40) Resetting LSP Diagnostics Cache"
25
25
  }
26
26
  ]
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lsp",
3
- "version": "5.1.35",
3
+ "version": "5.1.40",
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",