oh-my-opencode 5.1.44 → 5.1.46

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 (626) hide show
  1. package/.agents/command/publish.md +9 -9
  2. package/.agents/skills/publish/SKILL.md +9 -9
  3. package/.opencode/command/publish.md +9 -9
  4. package/README.de.md +0 -5
  5. package/README.es.md +0 -5
  6. package/README.fr.md +0 -5
  7. package/README.it.md +0 -5
  8. package/README.ja.md +0 -5
  9. package/README.ko.md +0 -5
  10. package/README.md +4 -5
  11. package/README.pt-br.md +0 -5
  12. package/README.ru.md +0 -6
  13. package/README.zh-cn.md +0 -5
  14. package/dist/cli/index.js +865 -413
  15. package/dist/cli/service-auth/keystore.d.ts +4 -2
  16. package/dist/cli-node/index.js +865 -413
  17. package/dist/features/builtin-commands/templates/hyperplan.d.ts +1 -1
  18. package/dist/features/builtin-commands/templates/refactor-sections/team-mode-addendum.d.ts +1 -1
  19. package/dist/features/builtin-commands/templates/remove-ai-slops.d.ts +1 -1
  20. package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +1 -1
  21. package/dist/index.js +5270 -2308
  22. package/dist/oh-my-opencode.schema.json +2 -2
  23. package/dist/plugin/command-execute-before.d.ts +3 -0
  24. package/dist/plugin/skill-context.d.ts +2 -0
  25. package/dist/plugin/skill-security-notice.d.ts +3 -0
  26. package/dist/plugin-config/omo-config-chain.d.ts +1 -0
  27. package/dist/skills/ast-grep/AGENTS.md +1 -1
  28. package/dist/skills/browser/SKILL.md +21 -22
  29. package/dist/skills/browser/references/commands.md +2 -9
  30. package/dist/skills/browser/references/install.md +1 -2
  31. package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
  32. package/dist/skills/browser/scripts/browser-doctor.mjs +2 -2
  33. package/dist/skills/browser/scripts/browser-engine-guard.mjs +63 -487
  34. package/dist/skills/browser/scripts/browser-install.mjs +1 -1
  35. package/dist/skills/browser/scripts/omowright.mjs +1 -10
  36. package/dist/skills/frontend/ATTRIBUTION.md +2 -2
  37. package/dist/skills/frontend/SKILL.md +79 -118
  38. package/dist/skills/frontend/references/design/README.md +75 -224
  39. package/dist/skills/frontend/references/design/stylegallery.md +32 -27
  40. package/dist/skills/frontend/references/perfection/README.md +2 -2
  41. package/dist/skills/frontend/scripts/perfection/check-accent-stripes.ts +8 -24
  42. package/dist/skills/frontend/scripts/perfection/check-draft-guard.test.ts +101 -0
  43. package/dist/skills/frontend/scripts/perfection/check-draft-guard.ts +40 -0
  44. package/dist/skills/frontend/scripts/perfection/collect-files.test.ts +50 -0
  45. package/dist/skills/frontend/scripts/perfection/collect-files.ts +53 -0
  46. package/dist/skills/frontend/scripts/perfection/draft-guard/findings.ts +16 -0
  47. package/dist/skills/frontend/scripts/perfection/draft-guard/lint.ts +38 -0
  48. package/dist/skills/frontend/scripts/perfection/draft-guard/rules.ts +69 -0
  49. package/dist/skills/frontend/scripts/perfection/draft-guard/text-nodes.ts +121 -0
  50. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/attr-lookalikes.tsx +10 -0
  51. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/bound-values.tsx +12 -0
  52. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/const-generics.tsx +3 -0
  53. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/generics.tsx +7 -0
  54. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/measured-stats.html +6 -0
  55. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/plain-copy.html +9 -0
  56. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/state-copy.html +11 -0
  57. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/attribute-edges.html +7 -0
  58. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/components.tsx +16 -0
  59. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/decorative-badge.vue +7 -0
  60. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/emoji-icons.tsx +9 -0
  61. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/jsx-edges.tsx +1 -0
  62. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.html +6 -0
  63. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.tsx +8 -0
  64. package/dist/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/vanity-stats.html +5 -0
  65. package/dist/skills/programming/SKILL.md +10 -7
  66. package/dist/skills/programming/references/typescript/README.md +10 -7
  67. package/dist/skills/programming/references/typescript/bootstrap.md +9 -23
  68. package/dist/skills/programming/references/typescript/oxc-lint.md +130 -0
  69. package/dist/skills/programming/references/typescript/tsconfig-strict.md +6 -62
  70. package/dist/skills/programming/scripts/typescript/check-no-excuse-rules.ts +12 -12
  71. package/dist/skills/programming/scripts/typescript/new-project.test.ts +162 -0
  72. package/dist/skills/programming/scripts/typescript/new-project.ts +20 -81
  73. package/dist/skills/programming/scripts/typescript/oxc/.oxfmtrc.json +9 -0
  74. package/dist/skills/programming/scripts/typescript/oxc/.oxlintrc.json +46 -0
  75. package/dist/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/LICENSE +21 -0
  76. package/dist/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/index.js +10 -0
  77. package/dist/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/no-em-dash-copy.js +28 -0
  78. package/dist/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/require-suppression-reason.js +62 -0
  79. package/dist/skills/programming/scripts/typescript/oxc/tsconfig.json +29 -0
  80. package/dist/skills/refactor/SKILL.md +13 -13
  81. package/dist/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  82. package/dist/skills/ulw-execute/SKILL.md +1 -1
  83. package/dist/skills/ulw-research/AGENTS.md +21 -3
  84. package/dist/skills/ulw-research/SKILL.md +37 -12
  85. package/dist/skills/ulw-research/references/deliverable-phase.md +77 -16
  86. package/dist/skills/ulw-research/references/fact-ledger-grammar.md +134 -0
  87. package/dist/skills/ulw-research/references/fact-ledger.md +95 -0
  88. package/dist/skills/ulw-research/references/fidelity-claim-kinds.md +19 -0
  89. package/dist/skills/ulw-research/references/report-gates.md +68 -3
  90. package/dist/skills/ulw-research/references/report-visualization.md +2 -0
  91. package/dist/skills/ulw-research/references/unit-rules.md +157 -0
  92. package/dist/skills/ulw-research/scripts/claim-kinds.mjs +116 -0
  93. package/dist/skills/ulw-research/scripts/claim-kinds.test.ts +193 -0
  94. package/dist/skills/ulw-research/scripts/claims-index.mjs +125 -0
  95. package/dist/skills/ulw-research/scripts/claims-index.test.ts +149 -0
  96. package/dist/skills/ulw-research/scripts/cli-support.mjs +19 -5
  97. package/dist/skills/ulw-research/scripts/cli-support.test.ts +13 -2
  98. package/dist/skills/ulw-research/scripts/contracts.mjs +89 -3
  99. package/dist/skills/ulw-research/scripts/contracts.test.ts +100 -12
  100. package/dist/skills/ulw-research/scripts/copy-returns.test.ts +183 -0
  101. package/dist/skills/ulw-research/scripts/delivery-barrier.test.ts +245 -0
  102. package/dist/skills/ulw-research/scripts/fact-commands-meaning.mjs +191 -0
  103. package/dist/skills/ulw-research/scripts/fact-commands-verify.mjs +164 -0
  104. package/dist/skills/ulw-research/scripts/fact-commands.mjs +239 -0
  105. package/dist/skills/ulw-research/scripts/fact-derive.mjs +66 -0
  106. package/dist/skills/ulw-research/scripts/fact-derive.test.ts +375 -0
  107. package/dist/skills/ulw-research/scripts/fact-expr.mjs +108 -0
  108. package/dist/skills/ulw-research/scripts/fact-fill.mjs +194 -0
  109. package/dist/skills/ulw-research/scripts/fact-fill.test.ts +221 -0
  110. package/dist/skills/ulw-research/scripts/fact-ledger-grammar.test.ts +197 -0
  111. package/dist/skills/ulw-research/scripts/fact-ledger-kinds.mjs +250 -0
  112. package/dist/skills/ulw-research/scripts/fact-ledger-kinds.test.ts +156 -0
  113. package/dist/skills/ulw-research/scripts/fact-ledger-legacy.test.ts +160 -0
  114. package/dist/skills/ulw-research/scripts/fact-ledger-schema.mjs +221 -0
  115. package/dist/skills/ulw-research/scripts/fact-ledger-schema.test.ts +43 -0
  116. package/dist/skills/ulw-research/scripts/fact-ledger.mjs +123 -0
  117. package/dist/skills/ulw-research/scripts/fact-ledger.test.ts +254 -0
  118. package/dist/skills/ulw-research/scripts/fact-locate.mjs +231 -0
  119. package/dist/skills/ulw-research/scripts/fact-locate.test.ts +118 -0
  120. package/dist/skills/ulw-research/scripts/fact-pairs.mjs +187 -0
  121. package/dist/skills/ulw-research/scripts/fact-pairs.test.ts +167 -0
  122. package/dist/skills/ulw-research/scripts/fact-recompute.mjs +89 -0
  123. package/dist/skills/ulw-research/scripts/fact-unit-dimensions.test.ts +409 -0
  124. package/dist/skills/ulw-research/scripts/fact-unit-rules.test.ts +388 -0
  125. package/dist/skills/ulw-research/scripts/fidelity-binding.mjs +130 -0
  126. package/dist/skills/ulw-research/scripts/fidelity-binding.test.ts +81 -0
  127. package/dist/skills/ulw-research/scripts/fidelity-brief.mjs +150 -0
  128. package/dist/skills/ulw-research/scripts/fidelity-brief.test.ts +179 -0
  129. package/dist/skills/ulw-research/scripts/fidelity-claims.mjs +89 -0
  130. package/dist/skills/ulw-research/scripts/fidelity-lexicon.mjs +145 -0
  131. package/dist/skills/ulw-research/scripts/fidelity-lexicon.test.ts +117 -0
  132. package/dist/skills/ulw-research/scripts/fidelity-records.mjs +163 -0
  133. package/dist/skills/ulw-research/scripts/fidelity-state.mjs +64 -0
  134. package/dist/skills/ulw-research/scripts/fidelity-state.test.ts +46 -0
  135. package/dist/skills/ulw-research/scripts/fidelity-trace.mjs +85 -0
  136. package/dist/skills/ulw-research/scripts/fidelity-trace.test.ts +58 -0
  137. package/dist/skills/ulw-research/scripts/fidelity-values.mjs +229 -0
  138. package/dist/skills/ulw-research/scripts/fidelity-values.test.ts +270 -0
  139. package/dist/skills/ulw-research/scripts/gates-context.test.ts +64 -0
  140. package/dist/skills/ulw-research/scripts/gates-fidelity.mjs +113 -0
  141. package/dist/skills/ulw-research/scripts/gates-fidelity.test.ts +73 -0
  142. package/dist/skills/ulw-research/scripts/gates-static.mjs +29 -9
  143. package/dist/skills/ulw-research/scripts/gates-structure.mjs +1 -1
  144. package/dist/skills/ulw-research/scripts/gates-text.mjs +1 -27
  145. package/dist/skills/ulw-research/scripts/html-lite.mjs +2 -2
  146. package/dist/skills/ulw-research/scripts/html-markup.mjs +182 -0
  147. package/dist/skills/ulw-research/scripts/lexicon.mjs +47 -0
  148. package/dist/skills/ulw-research/scripts/lexicon.test.ts +57 -0
  149. package/dist/skills/ulw-research/scripts/md-lite.mjs +193 -0
  150. package/dist/skills/ulw-research/scripts/md-lite.test.ts +271 -0
  151. package/dist/skills/ulw-research/scripts/meaning-check.mjs +196 -0
  152. package/dist/skills/ulw-research/scripts/meaning-check.test.ts +228 -0
  153. package/dist/skills/ulw-research/scripts/numerals.mjs +226 -0
  154. package/dist/skills/ulw-research/scripts/numerals.test.ts +120 -0
  155. package/dist/skills/ulw-research/scripts/outcome.mjs +8 -8
  156. package/dist/skills/ulw-research/scripts/outcome.test.ts +29 -0
  157. package/dist/skills/ulw-research/scripts/particles-ko.mjs +108 -0
  158. package/dist/skills/ulw-research/scripts/particles-ko.test.ts +86 -0
  159. package/dist/skills/ulw-research/scripts/placeholder.mjs +184 -0
  160. package/dist/skills/ulw-research/scripts/placeholder.test.ts +77 -0
  161. package/dist/skills/ulw-research/scripts/polish-apply.mjs +115 -0
  162. package/dist/skills/ulw-research/scripts/polish-apply.test.ts +363 -0
  163. package/dist/skills/ulw-research/scripts/polish-diff.mjs +31 -0
  164. package/dist/skills/ulw-research/scripts/polish-diff.test.ts +168 -0
  165. package/dist/skills/ulw-research/scripts/polish-markup.test.ts +187 -0
  166. package/dist/skills/ulw-research/scripts/polish-project.mjs +125 -0
  167. package/dist/skills/ulw-research/scripts/polish-rules.mjs +170 -0
  168. package/dist/skills/ulw-research/scripts/rational.mjs +139 -0
  169. package/dist/skills/ulw-research/scripts/rational.test.ts +46 -0
  170. package/dist/skills/ulw-research/scripts/report-tools-commands.mjs +21 -10
  171. package/dist/skills/ulw-research/scripts/report-tools.mjs +15 -0
  172. package/dist/skills/ulw-research/scripts/report-tools.test.ts +458 -2
  173. package/dist/skills/ulw-research/scripts/sentence-split.mjs +77 -0
  174. package/dist/skills/ulw-research/scripts/sentence-split.test.ts +109 -0
  175. package/dist/skills/ulw-research/scripts/source-commands.mjs +140 -0
  176. package/dist/skills/ulw-research/scripts/source-snapshot.mjs +176 -0
  177. package/dist/skills/ulw-research/scripts/source-snapshot.test.ts +113 -0
  178. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/assets/share.csv +3 -0
  179. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/claim-graph.md +13 -0
  180. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/gen-legacy-dev.mjs +89 -0
  181. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-basic.json +223 -0
  182. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-legacy-dev.json +859 -0
  183. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-verify.json +420 -0
  184. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/report-bad.html +19 -0
  185. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/report-good.html +39 -0
  186. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/acronyms.json +3 -0
  187. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/meta.json +9 -0
  188. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/sentences.jsonl +7 -0
  189. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/text.txt +7 -0
  190. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4.html +19 -0
  191. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/acronyms.json +1 -0
  192. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/meta.json +9 -0
  193. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/sentences.jsonl +1 -0
  194. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/text.txt +1 -0
  195. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S9.txt +1 -0
  196. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity-brief-locked.md +17 -0
  197. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity-brief-pending.md +17 -0
  198. package/dist/skills/ulw-research/scripts/text-normalize.mjs +82 -0
  199. package/dist/skills/ulw-research/scripts/text-normalize.test.ts +73 -0
  200. package/dist/skills/ulw-research/scripts/text-similarity.mjs +28 -0
  201. package/dist/skills/ulw-research/scripts/text-similarity.test.ts +38 -0
  202. package/dist/skills/ulw-research/scripts/unit-algebra.mjs +101 -0
  203. package/dist/skills/ulw-research/scripts/unit-errors.mjs +23 -0
  204. package/dist/skills/ulw-research/scripts/unit-metadata.mjs +31 -0
  205. package/dist/skills/ulw-research/scripts/unit-pairs.mjs +72 -0
  206. package/dist/skills/ulw-research/scripts/unit-precision.mjs +44 -0
  207. package/dist/skills/ulw-research/scripts/unit-rules-shapes.mjs +64 -0
  208. package/dist/skills/ulw-research/scripts/unit-rules.mjs +173 -0
  209. package/dist/skills/ulw-research/scripts/units.mjs +105 -0
  210. package/dist/skills/ulw-research/scripts/units.test.ts +83 -0
  211. package/dist/skills/visual-qa/SKILL.md +70 -63
  212. package/dist/skills/visual-qa/scripts/skill-doc-fields.test.ts +34 -0
  213. package/dist/testing/module-mock-lifecycle.d.ts +1 -1
  214. package/dist/tools/delegate-task/constants.d.ts +1 -1
  215. package/dist/tools/session-manager/constants.d.ts +1 -1
  216. package/dist/tools/session-manager/file-storage.d.ts +9 -2
  217. package/dist/tools/session-manager/sdk-storage.d.ts +19 -1
  218. package/dist/tools/session-manager/session-formatter.d.ts +3 -3
  219. package/dist/tools/session-manager/storage.d.ts +8 -2
  220. package/dist/tools/skill/mcp-capability-formatter.d.ts +1 -1
  221. package/dist/tools/skill/native-skills.d.ts +2 -2
  222. package/dist/tools/skill/skill-mcp-authority.d.ts +3 -0
  223. package/dist/tui.js +537 -104
  224. package/docs/reference/web-terminal-visual-qa.md +8 -0
  225. package/package.json +24 -16
  226. package/packages/lsp-core/src/lsp/client-wrapper.ts +4 -4
  227. package/packages/lsp-core/src/mcp-protocol-pin.test.ts +29 -0
  228. package/packages/lsp-core/src/mcp.ts +5 -2
  229. package/packages/lsp-core/src/post-edit/not-installed.test.ts +2 -2
  230. package/packages/lsp-daemon/dist/cli.js +7 -7
  231. package/packages/lsp-daemon/dist/client.js +7 -7
  232. package/packages/lsp-daemon/dist/index.js +7 -7
  233. package/packages/lsp-daemon/package.json +3 -3
  234. package/packages/lsp-tools-mcp/dist/cli.js +7 -7
  235. package/packages/lsp-tools-mcp/dist/mcp.js +7 -7
  236. package/packages/lsp-tools-mcp/dist/tools.js +4 -4
  237. package/packages/lsp-tools-mcp/package.json +3 -3
  238. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  239. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +77 -26
  240. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  241. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  242. package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +1 -1
  243. package/packages/omo-codex/plugin/components/comment-checker/biome.json +1 -21
  244. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  245. package/packages/omo-codex/plugin/components/comment-checker/package.json +4 -4
  246. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  247. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  248. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +1 -21
  249. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  250. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +4 -4
  251. package/packages/omo-codex/plugin/components/lsp/biome.json +1 -21
  252. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  253. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +4 -4
  254. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  255. package/packages/omo-codex/plugin/components/lsp/package.json +4 -4
  256. package/packages/omo-codex/plugin/components/lsp/scripts/build-runtime.mjs +0 -1
  257. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-not-installed.test.ts +1 -1
  258. package/packages/omo-codex/plugin/components/rules/biome.json +1 -21
  259. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  260. package/packages/omo-codex/plugin/components/rules/package.json +4 -4
  261. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  262. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  263. package/packages/omo-codex/plugin/components/telemetry/biome.json +1 -21
  264. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +90 -1
  265. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +91 -1
  266. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  267. package/packages/omo-codex/plugin/components/telemetry/package.json +4 -4
  268. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +2 -2
  269. package/packages/omo-codex/plugin/components/ultrawork/biome.json +1 -21
  270. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  271. package/packages/omo-codex/plugin/components/ultrawork/package.json +4 -4
  272. package/packages/omo-codex/plugin/components/ulw-execute-continuation/biome.json +1 -21
  273. package/packages/omo-codex/plugin/components/ulw-execute-continuation/directive.md +1 -1
  274. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  275. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +4 -4
  276. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +1 -21
  277. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +1 -1
  278. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +7 -7
  279. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +5 -5
  280. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +1 -1
  281. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  282. package/packages/omo-codex/plugin/components/ulw-loop/package.json +4 -4
  283. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +1 -1
  284. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +5 -5
  285. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +1 -1
  286. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-mutations.mjs +2 -0
  287. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  288. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  289. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  290. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  291. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  292. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  293. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  294. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  295. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  296. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  297. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  298. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  299. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  300. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  301. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  302. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  303. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  304. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  305. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  306. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  307. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  308. package/packages/omo-codex/plugin/package-lock.json +12 -12
  309. package/packages/omo-codex/plugin/package.json +1 -1
  310. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +14 -9
  311. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +1 -1
  312. package/packages/omo-codex/plugin/skills/browser/SKILL.md +21 -22
  313. package/packages/omo-codex/plugin/skills/browser/references/commands.md +2 -9
  314. package/packages/omo-codex/plugin/skills/browser/references/install.md +1 -2
  315. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  316. package/packages/omo-codex/plugin/skills/browser/scripts/browser-doctor.mjs +2 -2
  317. package/packages/omo-codex/plugin/skills/browser/scripts/browser-engine-guard.mjs +63 -487
  318. package/packages/omo-codex/plugin/skills/browser/scripts/browser-install.mjs +1 -1
  319. package/packages/omo-codex/plugin/skills/browser/scripts/omowright.mjs +1 -10
  320. package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +2 -2
  321. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +79 -118
  322. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +75 -224
  323. package/packages/omo-codex/plugin/skills/frontend/references/design/stylegallery.md +32 -27
  324. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +2 -2
  325. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-accent-stripes.ts +8 -24
  326. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-draft-guard.ts +40 -0
  327. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/collect-files.ts +53 -0
  328. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/findings.ts +16 -0
  329. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/lint.ts +38 -0
  330. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/rules.ts +69 -0
  331. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/text-nodes.ts +121 -0
  332. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/attr-lookalikes.tsx +10 -0
  333. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/bound-values.tsx +12 -0
  334. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/const-generics.tsx +3 -0
  335. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/generics.tsx +7 -0
  336. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/measured-stats.html +6 -0
  337. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/plain-copy.html +9 -0
  338. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/state-copy.html +11 -0
  339. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/attribute-edges.html +7 -0
  340. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/components.tsx +16 -0
  341. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/decorative-badge.vue +7 -0
  342. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/emoji-icons.tsx +9 -0
  343. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/jsx-edges.tsx +1 -0
  344. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.html +6 -0
  345. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.tsx +8 -0
  346. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/vanity-stats.html +5 -0
  347. package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +1 -1
  348. package/packages/omo-codex/plugin/skills/programming/SKILL.md +10 -7
  349. package/packages/omo-codex/plugin/skills/programming/references/typescript/README.md +10 -7
  350. package/packages/omo-codex/plugin/skills/programming/references/typescript/bootstrap.md +9 -23
  351. package/packages/omo-codex/plugin/skills/programming/references/typescript/oxc-lint.md +130 -0
  352. package/packages/omo-codex/plugin/skills/programming/references/typescript/tsconfig-strict.md +6 -62
  353. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-no-excuse-rules.ts +12 -12
  354. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/new-project.ts +20 -81
  355. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/.oxfmtrc.json +9 -0
  356. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/.oxlintrc.json +46 -0
  357. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/LICENSE +21 -0
  358. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/index.js +10 -0
  359. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/no-em-dash-copy.js +28 -0
  360. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/require-suppression-reason.js +62 -0
  361. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/tsconfig.json +29 -0
  362. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +14 -14
  363. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +1 -1
  364. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +2 -2
  365. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  366. package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +2 -2
  367. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
  368. package/packages/omo-codex/plugin/skills/ulw-research/AGENTS.md +21 -3
  369. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +37 -12
  370. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +77 -16
  371. package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger-grammar.md +134 -0
  372. package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger.md +95 -0
  373. package/packages/omo-codex/plugin/skills/ulw-research/references/fidelity-claim-kinds.md +19 -0
  374. package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +68 -3
  375. package/packages/omo-codex/plugin/skills/ulw-research/references/report-visualization.md +2 -0
  376. package/packages/omo-codex/plugin/skills/ulw-research/references/unit-rules.md +157 -0
  377. package/packages/omo-codex/plugin/skills/ulw-research/scripts/claim-kinds.mjs +116 -0
  378. package/packages/omo-codex/plugin/skills/ulw-research/scripts/claims-index.mjs +125 -0
  379. package/packages/omo-codex/plugin/skills/ulw-research/scripts/cli-support.mjs +19 -5
  380. package/packages/omo-codex/plugin/skills/ulw-research/scripts/contracts.mjs +89 -3
  381. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-meaning.mjs +191 -0
  382. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-verify.mjs +164 -0
  383. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands.mjs +239 -0
  384. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-derive.mjs +66 -0
  385. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-expr.mjs +108 -0
  386. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-fill.mjs +194 -0
  387. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-kinds.mjs +250 -0
  388. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-schema.mjs +221 -0
  389. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger.mjs +123 -0
  390. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-locate.mjs +231 -0
  391. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-pairs.mjs +187 -0
  392. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-recompute.mjs +89 -0
  393. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-binding.mjs +130 -0
  394. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-brief.mjs +150 -0
  395. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-claims.mjs +89 -0
  396. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-lexicon.mjs +145 -0
  397. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-records.mjs +163 -0
  398. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-state.mjs +64 -0
  399. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-trace.mjs +85 -0
  400. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-values.mjs +229 -0
  401. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-fidelity.mjs +113 -0
  402. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-static.mjs +29 -9
  403. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-structure.mjs +1 -1
  404. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-text.mjs +1 -27
  405. package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-lite.mjs +2 -2
  406. package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-markup.mjs +182 -0
  407. package/packages/omo-codex/plugin/skills/ulw-research/scripts/lexicon.mjs +47 -0
  408. package/packages/omo-codex/plugin/skills/ulw-research/scripts/md-lite.mjs +193 -0
  409. package/packages/omo-codex/plugin/skills/ulw-research/scripts/meaning-check.mjs +196 -0
  410. package/packages/omo-codex/plugin/skills/ulw-research/scripts/numerals.mjs +226 -0
  411. package/packages/omo-codex/plugin/skills/ulw-research/scripts/outcome.mjs +8 -8
  412. package/packages/omo-codex/plugin/skills/ulw-research/scripts/particles-ko.mjs +108 -0
  413. package/packages/omo-codex/plugin/skills/ulw-research/scripts/placeholder.mjs +184 -0
  414. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-apply.mjs +115 -0
  415. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-diff.mjs +31 -0
  416. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-project.mjs +125 -0
  417. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-rules.mjs +170 -0
  418. package/packages/omo-codex/plugin/skills/ulw-research/scripts/rational.mjs +139 -0
  419. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools-commands.mjs +21 -10
  420. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools.mjs +15 -0
  421. package/packages/omo-codex/plugin/skills/ulw-research/scripts/sentence-split.mjs +77 -0
  422. package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-commands.mjs +140 -0
  423. package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-snapshot.mjs +176 -0
  424. package/packages/omo-codex/plugin/skills/ulw-research/scripts/text-normalize.mjs +82 -0
  425. package/packages/omo-codex/plugin/skills/ulw-research/scripts/text-similarity.mjs +28 -0
  426. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-algebra.mjs +101 -0
  427. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-errors.mjs +23 -0
  428. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-metadata.mjs +31 -0
  429. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-pairs.mjs +72 -0
  430. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-precision.mjs +44 -0
  431. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-rules-shapes.mjs +64 -0
  432. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-rules.mjs +173 -0
  433. package/packages/omo-codex/plugin/skills/ulw-research/scripts/units.mjs +105 -0
  434. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +71 -64
  435. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +4 -1
  436. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +19 -0
  437. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +12 -8
  438. package/packages/omo-codex/scripts/install-dist/install-local.mjs +169 -30
  439. package/packages/shared-skills/skills/ast-grep/AGENTS.md +1 -1
  440. package/packages/shared-skills/skills/browser/SKILL.md +21 -22
  441. package/packages/shared-skills/skills/browser/references/commands.md +2 -9
  442. package/packages/shared-skills/skills/browser/references/install.md +1 -2
  443. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  444. package/packages/shared-skills/skills/browser/scripts/browser-doctor.mjs +2 -2
  445. package/packages/shared-skills/skills/browser/scripts/browser-engine-guard.mjs +63 -487
  446. package/packages/shared-skills/skills/browser/scripts/browser-install.mjs +1 -1
  447. package/packages/shared-skills/skills/browser/scripts/omowright.mjs +1 -10
  448. package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +2 -2
  449. package/packages/shared-skills/skills/frontend/SKILL.md +79 -118
  450. package/packages/shared-skills/skills/frontend/references/design/README.md +75 -224
  451. package/packages/shared-skills/skills/frontend/references/design/stylegallery.md +32 -27
  452. package/packages/shared-skills/skills/frontend/references/perfection/README.md +2 -2
  453. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.ts +8 -24
  454. package/packages/shared-skills/skills/frontend/scripts/perfection/check-draft-guard.test.ts +101 -0
  455. package/packages/shared-skills/skills/frontend/scripts/perfection/check-draft-guard.ts +40 -0
  456. package/packages/shared-skills/skills/frontend/scripts/perfection/collect-files.test.ts +50 -0
  457. package/packages/shared-skills/skills/frontend/scripts/perfection/collect-files.ts +53 -0
  458. package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/findings.ts +16 -0
  459. package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/lint.ts +38 -0
  460. package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/rules.ts +69 -0
  461. package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/text-nodes.ts +121 -0
  462. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/attr-lookalikes.tsx +10 -0
  463. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/bound-values.tsx +12 -0
  464. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/const-generics.tsx +3 -0
  465. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/generics.tsx +7 -0
  466. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/measured-stats.html +6 -0
  467. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/plain-copy.html +9 -0
  468. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/state-copy.html +11 -0
  469. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/attribute-edges.html +7 -0
  470. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/components.tsx +16 -0
  471. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/decorative-badge.vue +7 -0
  472. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/emoji-icons.tsx +9 -0
  473. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/jsx-edges.tsx +1 -0
  474. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.html +6 -0
  475. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.tsx +8 -0
  476. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/vanity-stats.html +5 -0
  477. package/packages/shared-skills/skills/programming/SKILL.md +10 -7
  478. package/packages/shared-skills/skills/programming/references/typescript/README.md +10 -7
  479. package/packages/shared-skills/skills/programming/references/typescript/bootstrap.md +9 -23
  480. package/packages/shared-skills/skills/programming/references/typescript/oxc-lint.md +130 -0
  481. package/packages/shared-skills/skills/programming/references/typescript/tsconfig-strict.md +6 -62
  482. package/packages/shared-skills/skills/programming/scripts/typescript/check-no-excuse-rules.ts +12 -12
  483. package/packages/shared-skills/skills/programming/scripts/typescript/new-project.test.ts +162 -0
  484. package/packages/shared-skills/skills/programming/scripts/typescript/new-project.ts +20 -81
  485. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/.oxfmtrc.json +9 -0
  486. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/.oxlintrc.json +46 -0
  487. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/LICENSE +21 -0
  488. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/index.js +10 -0
  489. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/no-em-dash-copy.js +28 -0
  490. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/require-suppression-reason.js +62 -0
  491. package/packages/shared-skills/skills/programming/scripts/typescript/oxc/tsconfig.json +29 -0
  492. package/packages/shared-skills/skills/refactor/SKILL.md +13 -13
  493. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  494. package/packages/shared-skills/skills/ulw-execute/SKILL.md +1 -1
  495. package/packages/shared-skills/skills/ulw-research/AGENTS.md +21 -3
  496. package/packages/shared-skills/skills/ulw-research/SKILL.md +37 -12
  497. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +77 -16
  498. package/packages/shared-skills/skills/ulw-research/references/fact-ledger-grammar.md +134 -0
  499. package/packages/shared-skills/skills/ulw-research/references/fact-ledger.md +95 -0
  500. package/packages/shared-skills/skills/ulw-research/references/fidelity-claim-kinds.md +19 -0
  501. package/packages/shared-skills/skills/ulw-research/references/report-gates.md +68 -3
  502. package/packages/shared-skills/skills/ulw-research/references/report-visualization.md +2 -0
  503. package/packages/shared-skills/skills/ulw-research/references/unit-rules.md +157 -0
  504. package/packages/shared-skills/skills/ulw-research/scripts/claim-kinds.mjs +116 -0
  505. package/packages/shared-skills/skills/ulw-research/scripts/claim-kinds.test.ts +193 -0
  506. package/packages/shared-skills/skills/ulw-research/scripts/claims-index.mjs +125 -0
  507. package/packages/shared-skills/skills/ulw-research/scripts/claims-index.test.ts +149 -0
  508. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.mjs +19 -5
  509. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.test.ts +13 -2
  510. package/packages/shared-skills/skills/ulw-research/scripts/contracts.mjs +89 -3
  511. package/packages/shared-skills/skills/ulw-research/scripts/contracts.test.ts +100 -12
  512. package/packages/shared-skills/skills/ulw-research/scripts/copy-returns.test.ts +183 -0
  513. package/packages/shared-skills/skills/ulw-research/scripts/delivery-barrier.test.ts +245 -0
  514. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-meaning.mjs +191 -0
  515. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-verify.mjs +164 -0
  516. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands.mjs +239 -0
  517. package/packages/shared-skills/skills/ulw-research/scripts/fact-derive.mjs +66 -0
  518. package/packages/shared-skills/skills/ulw-research/scripts/fact-derive.test.ts +375 -0
  519. package/packages/shared-skills/skills/ulw-research/scripts/fact-expr.mjs +108 -0
  520. package/packages/shared-skills/skills/ulw-research/scripts/fact-fill.mjs +194 -0
  521. package/packages/shared-skills/skills/ulw-research/scripts/fact-fill.test.ts +221 -0
  522. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-grammar.test.ts +197 -0
  523. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.mjs +250 -0
  524. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.test.ts +156 -0
  525. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-legacy.test.ts +160 -0
  526. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-schema.mjs +221 -0
  527. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-schema.test.ts +43 -0
  528. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger.mjs +123 -0
  529. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger.test.ts +254 -0
  530. package/packages/shared-skills/skills/ulw-research/scripts/fact-locate.mjs +231 -0
  531. package/packages/shared-skills/skills/ulw-research/scripts/fact-locate.test.ts +118 -0
  532. package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.mjs +187 -0
  533. package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.test.ts +167 -0
  534. package/packages/shared-skills/skills/ulw-research/scripts/fact-recompute.mjs +89 -0
  535. package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-dimensions.test.ts +409 -0
  536. package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-rules.test.ts +388 -0
  537. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-binding.mjs +130 -0
  538. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-binding.test.ts +81 -0
  539. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-brief.mjs +150 -0
  540. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-brief.test.ts +179 -0
  541. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-claims.mjs +89 -0
  542. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-lexicon.mjs +145 -0
  543. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-lexicon.test.ts +117 -0
  544. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-records.mjs +163 -0
  545. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-state.mjs +64 -0
  546. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-state.test.ts +46 -0
  547. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-trace.mjs +85 -0
  548. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-trace.test.ts +58 -0
  549. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.mjs +229 -0
  550. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.test.ts +270 -0
  551. package/packages/shared-skills/skills/ulw-research/scripts/gates-context.test.ts +64 -0
  552. package/packages/shared-skills/skills/ulw-research/scripts/gates-fidelity.mjs +113 -0
  553. package/packages/shared-skills/skills/ulw-research/scripts/gates-fidelity.test.ts +73 -0
  554. package/packages/shared-skills/skills/ulw-research/scripts/gates-static.mjs +29 -9
  555. package/packages/shared-skills/skills/ulw-research/scripts/gates-structure.mjs +1 -1
  556. package/packages/shared-skills/skills/ulw-research/scripts/gates-text.mjs +1 -27
  557. package/packages/shared-skills/skills/ulw-research/scripts/html-lite.mjs +2 -2
  558. package/packages/shared-skills/skills/ulw-research/scripts/html-markup.mjs +182 -0
  559. package/packages/shared-skills/skills/ulw-research/scripts/lexicon.mjs +47 -0
  560. package/packages/shared-skills/skills/ulw-research/scripts/lexicon.test.ts +57 -0
  561. package/packages/shared-skills/skills/ulw-research/scripts/md-lite.mjs +193 -0
  562. package/packages/shared-skills/skills/ulw-research/scripts/md-lite.test.ts +271 -0
  563. package/packages/shared-skills/skills/ulw-research/scripts/meaning-check.mjs +196 -0
  564. package/packages/shared-skills/skills/ulw-research/scripts/meaning-check.test.ts +228 -0
  565. package/packages/shared-skills/skills/ulw-research/scripts/numerals.mjs +226 -0
  566. package/packages/shared-skills/skills/ulw-research/scripts/numerals.test.ts +120 -0
  567. package/packages/shared-skills/skills/ulw-research/scripts/outcome.mjs +8 -8
  568. package/packages/shared-skills/skills/ulw-research/scripts/outcome.test.ts +29 -0
  569. package/packages/shared-skills/skills/ulw-research/scripts/particles-ko.mjs +108 -0
  570. package/packages/shared-skills/skills/ulw-research/scripts/particles-ko.test.ts +86 -0
  571. package/packages/shared-skills/skills/ulw-research/scripts/placeholder.mjs +184 -0
  572. package/packages/shared-skills/skills/ulw-research/scripts/placeholder.test.ts +77 -0
  573. package/packages/shared-skills/skills/ulw-research/scripts/polish-apply.mjs +115 -0
  574. package/packages/shared-skills/skills/ulw-research/scripts/polish-apply.test.ts +363 -0
  575. package/packages/shared-skills/skills/ulw-research/scripts/polish-diff.mjs +31 -0
  576. package/packages/shared-skills/skills/ulw-research/scripts/polish-diff.test.ts +168 -0
  577. package/packages/shared-skills/skills/ulw-research/scripts/polish-markup.test.ts +187 -0
  578. package/packages/shared-skills/skills/ulw-research/scripts/polish-project.mjs +125 -0
  579. package/packages/shared-skills/skills/ulw-research/scripts/polish-rules.mjs +170 -0
  580. package/packages/shared-skills/skills/ulw-research/scripts/rational.mjs +139 -0
  581. package/packages/shared-skills/skills/ulw-research/scripts/rational.test.ts +46 -0
  582. package/packages/shared-skills/skills/ulw-research/scripts/report-tools-commands.mjs +21 -10
  583. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.mjs +15 -0
  584. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.test.ts +458 -2
  585. package/packages/shared-skills/skills/ulw-research/scripts/sentence-split.mjs +77 -0
  586. package/packages/shared-skills/skills/ulw-research/scripts/sentence-split.test.ts +109 -0
  587. package/packages/shared-skills/skills/ulw-research/scripts/source-commands.mjs +140 -0
  588. package/packages/shared-skills/skills/ulw-research/scripts/source-snapshot.mjs +176 -0
  589. package/packages/shared-skills/skills/ulw-research/scripts/source-snapshot.test.ts +113 -0
  590. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/assets/share.csv +3 -0
  591. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/claim-graph.md +13 -0
  592. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/gen-legacy-dev.mjs +89 -0
  593. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-basic.json +223 -0
  594. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-legacy-dev.json +859 -0
  595. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-verify.json +420 -0
  596. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/report-bad.html +19 -0
  597. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/report-good.html +39 -0
  598. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/acronyms.json +3 -0
  599. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/meta.json +9 -0
  600. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/sentences.jsonl +7 -0
  601. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/text.txt +7 -0
  602. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4.html +19 -0
  603. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/acronyms.json +1 -0
  604. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/meta.json +9 -0
  605. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/sentences.jsonl +1 -0
  606. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/text.txt +1 -0
  607. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S9.txt +1 -0
  608. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity-brief-locked.md +17 -0
  609. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity-brief-pending.md +17 -0
  610. package/packages/shared-skills/skills/ulw-research/scripts/text-normalize.mjs +82 -0
  611. package/packages/shared-skills/skills/ulw-research/scripts/text-normalize.test.ts +73 -0
  612. package/packages/shared-skills/skills/ulw-research/scripts/text-similarity.mjs +28 -0
  613. package/packages/shared-skills/skills/ulw-research/scripts/text-similarity.test.ts +38 -0
  614. package/packages/shared-skills/skills/ulw-research/scripts/unit-algebra.mjs +101 -0
  615. package/packages/shared-skills/skills/ulw-research/scripts/unit-errors.mjs +23 -0
  616. package/packages/shared-skills/skills/ulw-research/scripts/unit-metadata.mjs +31 -0
  617. package/packages/shared-skills/skills/ulw-research/scripts/unit-pairs.mjs +72 -0
  618. package/packages/shared-skills/skills/ulw-research/scripts/unit-precision.mjs +44 -0
  619. package/packages/shared-skills/skills/ulw-research/scripts/unit-rules-shapes.mjs +64 -0
  620. package/packages/shared-skills/skills/ulw-research/scripts/unit-rules.mjs +173 -0
  621. package/packages/shared-skills/skills/ulw-research/scripts/units.mjs +105 -0
  622. package/packages/shared-skills/skills/ulw-research/scripts/units.test.ts +83 -0
  623. package/packages/shared-skills/skills/visual-qa/SKILL.md +70 -63
  624. package/packages/shared-skills/skills/visual-qa/scripts/skill-doc-fields.test.ts +34 -0
  625. package/script/qa/web-terminal-visual-qa.mjs +6 -2
  626. package/script/qa/xterm-live-terminal.mjs +26 -3
package/dist/tui.js CHANGED
@@ -2362,6 +2362,20 @@ var init_logger = __esm(() => {
2362
2362
  DEFAULT_MAX_LOG_FILE_SIZE_BYTES = 50 * 1024 * 1024;
2363
2363
  });
2364
2364
 
2365
+ // packages/utils/src/logging/product-identity.ts
2366
+ function createProductIdentity(input) {
2367
+ return {
2368
+ pluginName: input.pluginName,
2369
+ legacyPluginName: input.legacyPluginName,
2370
+ publishedPackageName: input.publishedPackageName,
2371
+ acceptedPackageNames: input.acceptedPackageNames ?? [input.publishedPackageName, input.pluginName],
2372
+ configBasename: input.configBasename,
2373
+ legacyConfigBasename: input.legacyConfigBasename,
2374
+ logFileName: input.logFileName,
2375
+ cacheDirName: input.cacheDirName
2376
+ };
2377
+ }
2378
+
2365
2379
  // packages/utils/src/logging/index.ts
2366
2380
  var init_logging = __esm(() => {
2367
2381
  init_logger();
@@ -2416,8 +2430,17 @@ var init_ast_grep = __esm(() => {
2416
2430
  // packages/utils/src/classify-path-environment.ts
2417
2431
  var init_classify_path_environment = () => {};
2418
2432
 
2433
+ // packages/utils/src/command-executor/home-directory.ts
2434
+ import { homedir } from "os";
2435
+ function getHomeDirectory() {
2436
+ return process.env.HOME || process.env.USERPROFILE || homedir();
2437
+ }
2438
+ var init_home_directory = () => {};
2439
+
2419
2440
  // packages/utils/src/command-executor.ts
2420
- var init_command_executor = () => {};
2441
+ var init_command_executor = __esm(() => {
2442
+ init_home_directory();
2443
+ });
2421
2444
 
2422
2445
  // packages/utils/src/git-worktree/index.ts
2423
2446
  var init_git_worktree = () => {};
@@ -2510,6 +2533,25 @@ var init_agent_names = __esm(() => {
2510
2533
  ]);
2511
2534
  });
2512
2535
 
2536
+ // packages/model-core/src/latest-models.ts
2537
+ var LATEST_MODEL_BY_FAMILY;
2538
+ var init_latest_models = __esm(() => {
2539
+ LATEST_MODEL_BY_FAMILY = {
2540
+ claudeOpus: "claude-opus-5-5",
2541
+ claudeSonnet: "claude-sonnet-5-5",
2542
+ claudeHaiku: "claude-haiku-5-5",
2543
+ claudeFable: "claude-fable-5-1",
2544
+ gptAstra: "gpt-6-astra",
2545
+ gptSol: "gpt-6.1-sol",
2546
+ gptSolFast: "gpt-6.1-sol-fast",
2547
+ gptLunaFast: "gpt-6-luna-fast",
2548
+ glm: "glm-5.3",
2549
+ glmFlash: "glm-5.3-flash",
2550
+ kimi: "kimi-k3",
2551
+ geminiPro: "gemini-4-argon"
2552
+ };
2553
+ });
2554
+
2513
2555
  // packages/utils/src/migration/agent-category.ts
2514
2556
  function configureMigrationCategoryDefaults(defaults) {
2515
2557
  categoryDefaults = defaults ?? {};
@@ -3346,17 +3388,18 @@ var init_file_reference_resolver = __esm(() => {
3346
3388
  // packages/model-core/src/agent-model-requirements.ts
3347
3389
  var AGENT_MODEL_REQUIREMENTS;
3348
3390
  var init_agent_model_requirements = __esm(() => {
3391
+ init_latest_models();
3349
3392
  AGENT_MODEL_REQUIREMENTS = {
3350
3393
  sisyphus: {
3351
3394
  fallbackChain: [
3352
3395
  {
3353
3396
  providers: ["anthropic", "github-copilot", "opencode"],
3354
- model: "claude-opus-5-5",
3397
+ model: LATEST_MODEL_BY_FAMILY.claudeOpus,
3355
3398
  variant: "max"
3356
3399
  },
3357
3400
  {
3358
3401
  providers: ["opencode-go", "kimi-for-coding", "moonshotai", "opencode", "bailian-coding-plan", "moonshotai-cn", "firmware", "ollama-cloud", "aihubmix"],
3359
- model: "kimi-k3"
3402
+ model: LATEST_MODEL_BY_FAMILY.kimi
3360
3403
  },
3361
3404
  {
3362
3405
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
@@ -3390,7 +3433,7 @@ var init_agent_model_requirements = __esm(() => {
3390
3433
  { providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "high" },
3391
3434
  {
3392
3435
  providers: ["google", "google-vertex", "opencode"],
3393
- model: "gemini-4-argon",
3436
+ model: LATEST_MODEL_BY_FAMILY.geminiPro,
3394
3437
  variant: "high"
3395
3438
  },
3396
3439
  {
@@ -3400,7 +3443,7 @@ var init_agent_model_requirements = __esm(() => {
3400
3443
  },
3401
3444
  {
3402
3445
  providers: ["anthropic", "github-copilot", "opencode"],
3403
- model: "claude-opus-5-5",
3446
+ model: LATEST_MODEL_BY_FAMILY.claudeOpus,
3404
3447
  variant: "max"
3405
3448
  },
3406
3449
  { providers: ["opencode-go"], model: "glm-5.2" }
@@ -3409,8 +3452,8 @@ var init_agent_model_requirements = __esm(() => {
3409
3452
  librarian: {
3410
3453
  fallbackChain: [
3411
3454
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
3412
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
3413
- { providers: ["anthropic", "github-copilot"], model: "claude-haiku-5-5", variant: "medium" },
3455
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptLunaFast, variant: "low" },
3456
+ { providers: ["anthropic", "github-copilot"], model: LATEST_MODEL_BY_FAMILY.claudeHaiku, variant: "medium" },
3414
3457
  { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
3415
3458
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
3416
3459
  { providers: ["opencode-go"], model: "minimax-m2.7" }
@@ -3419,8 +3462,8 @@ var init_agent_model_requirements = __esm(() => {
3419
3462
  explore: {
3420
3463
  fallbackChain: [
3421
3464
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
3422
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
3423
- { providers: ["anthropic", "github-copilot"], model: "claude-haiku-5-5", variant: "medium" },
3465
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptLunaFast, variant: "low" },
3466
+ { providers: ["anthropic", "github-copilot"], model: LATEST_MODEL_BY_FAMILY.claudeHaiku, variant: "medium" },
3424
3467
  { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
3425
3468
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
3426
3469
  { providers: ["opencode-go"], model: "minimax-m2.7" }
@@ -3429,7 +3472,7 @@ var init_agent_model_requirements = __esm(() => {
3429
3472
  "multimodal-looker": {
3430
3473
  fallbackChain: [
3431
3474
  { providers: ["openai", "chatgpt-subscription", "opencode"], model: "gpt-5.6-sol", variant: "low" },
3432
- { providers: ["opencode-go"], model: "kimi-k3" },
3475
+ { providers: ["opencode-go"], model: LATEST_MODEL_BY_FAMILY.kimi },
3433
3476
  { providers: ["zai-coding-plan"], model: "glm-4.6v" },
3434
3477
  { providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"], model: "gpt-5-nano" }
3435
3478
  ]
@@ -3438,17 +3481,17 @@ var init_agent_model_requirements = __esm(() => {
3438
3481
  fallbackChain: [
3439
3482
  {
3440
3483
  providers: ["anthropic", "github-copilot", "opencode"],
3441
- model: "claude-fable-5-1",
3484
+ model: LATEST_MODEL_BY_FAMILY.claudeFable,
3442
3485
  variant: "xhigh"
3443
3486
  },
3444
3487
  {
3445
3488
  providers: ["anthropic", "github-copilot", "opencode"],
3446
- model: "claude-opus-5-5",
3489
+ model: LATEST_MODEL_BY_FAMILY.claudeOpus,
3447
3490
  variant: "max"
3448
3491
  },
3449
3492
  {
3450
3493
  providers: ["opencode-go", "kimi-for-coding", "moonshotai", "opencode"],
3451
- model: "kimi-k3",
3494
+ model: LATEST_MODEL_BY_FAMILY.kimi,
3452
3495
  variant: "max"
3453
3496
  }
3454
3497
  ]
@@ -3457,34 +3500,34 @@ var init_agent_model_requirements = __esm(() => {
3457
3500
  fallbackChain: [
3458
3501
  {
3459
3502
  providers: ["anthropic", "github-copilot", "opencode"],
3460
- model: "claude-fable-5-1",
3503
+ model: LATEST_MODEL_BY_FAMILY.claudeFable,
3461
3504
  variant: "max"
3462
3505
  },
3463
3506
  {
3464
3507
  providers: ["anthropic", "github-copilot", "opencode"],
3465
- model: "claude-opus-5-5",
3508
+ model: LATEST_MODEL_BY_FAMILY.claudeOpus,
3466
3509
  variant: "max"
3467
3510
  },
3468
3511
  {
3469
3512
  providers: ["opencode-go", "kimi-for-coding", "moonshotai", "opencode"],
3470
- model: "kimi-k3",
3513
+ model: LATEST_MODEL_BY_FAMILY.kimi,
3471
3514
  variant: "max"
3472
3515
  }
3473
3516
  ]
3474
3517
  },
3475
3518
  momus: {
3476
3519
  fallbackChain: [
3477
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-astra", variant: "xhigh" },
3478
- { providers: ["github-copilot"], model: "gpt-6-astra", variant: "high" },
3479
- { providers: ["openai", "chatgpt-subscription", "opencode"], model: "gpt-6-astra", variant: "high" },
3520
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptAstra, variant: "xhigh" },
3521
+ { providers: ["github-copilot"], model: LATEST_MODEL_BY_FAMILY.gptAstra, variant: "high" },
3522
+ { providers: ["openai", "chatgpt-subscription", "opencode"], model: LATEST_MODEL_BY_FAMILY.gptAstra, variant: "high" },
3480
3523
  {
3481
3524
  providers: ["anthropic", "github-copilot", "opencode"],
3482
- model: "claude-opus-5-5",
3525
+ model: LATEST_MODEL_BY_FAMILY.claudeOpus,
3483
3526
  variant: "max"
3484
3527
  },
3485
3528
  {
3486
3529
  providers: ["google", "google-vertex", "opencode"],
3487
- model: "gemini-4-argon",
3530
+ model: LATEST_MODEL_BY_FAMILY.geminiPro,
3488
3531
  variant: "high"
3489
3532
  },
3490
3533
  {
@@ -3498,7 +3541,7 @@ var init_agent_model_requirements = __esm(() => {
3498
3541
  atlas: {
3499
3542
  fallbackChain: [
3500
3543
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-5" },
3501
- { providers: ["opencode-go"], model: "kimi-k3" },
3544
+ { providers: ["opencode-go"], model: LATEST_MODEL_BY_FAMILY.kimi },
3502
3545
  {
3503
3546
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3504
3547
  model: "gpt-5.6-sol",
@@ -3512,7 +3555,7 @@ var init_agent_model_requirements = __esm(() => {
3512
3555
  "sisyphus-junior": {
3513
3556
  fallbackChain: [
3514
3557
  { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-5" },
3515
- { providers: ["opencode-go"], model: "kimi-k3" },
3558
+ { providers: ["opencode-go"], model: LATEST_MODEL_BY_FAMILY.kimi },
3516
3559
  {
3517
3560
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3518
3561
  model: "gpt-5.6-sol",
@@ -3530,32 +3573,33 @@ var init_agent_model_requirements = __esm(() => {
3530
3573
  // packages/model-core/src/category-model-requirements.ts
3531
3574
  var CATEGORY_MODEL_REQUIREMENTS;
3532
3575
  var init_category_model_requirements = __esm(() => {
3576
+ init_latest_models();
3533
3577
  CATEGORY_MODEL_REQUIREMENTS = {
3534
3578
  "visual-engineering": {
3535
3579
  fallbackChain: [
3536
- { providers: ["google", "google-vertex", "opencode"], model: "gemini-4-argon", variant: "low" },
3580
+ { providers: ["google", "google-vertex", "opencode"], model: LATEST_MODEL_BY_FAMILY.geminiPro, variant: "low" },
3537
3581
  {
3538
3582
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3539
- model: "claude-fable-5-1",
3583
+ model: LATEST_MODEL_BY_FAMILY.claudeFable,
3540
3584
  variant: "max"
3541
3585
  },
3542
3586
  {
3543
3587
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3544
- model: "claude-opus-5-5",
3588
+ model: LATEST_MODEL_BY_FAMILY.claudeOpus,
3545
3589
  variant: "max"
3546
3590
  },
3547
3591
  {
3548
3592
  providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
3549
- model: "kimi-k3",
3593
+ model: LATEST_MODEL_BY_FAMILY.kimi,
3550
3594
  variant: "max"
3551
3595
  }
3552
3596
  ]
3553
3597
  },
3554
3598
  ultrabrain: {
3555
3599
  fallbackChain: [
3556
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-astra", variant: "max" },
3557
- { providers: ["github-copilot"], model: "gpt-6-astra", variant: "max" },
3558
- { providers: ["openai", "chatgpt-subscription", "opencode"], model: "gpt-6-astra", variant: "max" },
3600
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptAstra, variant: "max" },
3601
+ { providers: ["github-copilot"], model: LATEST_MODEL_BY_FAMILY.gptAstra, variant: "max" },
3602
+ { providers: ["openai", "chatgpt-subscription", "opencode"], model: LATEST_MODEL_BY_FAMILY.gptAstra, variant: "max" },
3559
3603
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-5.6-sol", variant: "max" },
3560
3604
  { providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "max" },
3561
3605
  { providers: ["openai", "chatgpt-subscription", "opencode"], model: "gpt-5.6-sol", variant: "max" }
@@ -3563,8 +3607,8 @@ var init_category_model_requirements = __esm(() => {
3563
3607
  },
3564
3608
  "deep-low": {
3565
3609
  fallbackChain: [
3566
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-6.1-sol", variant: "medium" },
3567
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-6.1-sol-fast", variant: "medium" },
3610
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptSol, variant: "medium" },
3611
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptSolFast, variant: "medium" },
3568
3612
  {
3569
3613
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3570
3614
  model: "gpt-5.6-sol",
@@ -3577,7 +3621,7 @@ var init_category_model_requirements = __esm(() => {
3577
3621
  fallbackChain: [
3578
3622
  {
3579
3623
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3580
- model: "gpt-6-astra",
3624
+ model: LATEST_MODEL_BY_FAMILY.gptAstra,
3581
3625
  variant: "high"
3582
3626
  }
3583
3627
  ]
@@ -3586,27 +3630,27 @@ var init_category_model_requirements = __esm(() => {
3586
3630
  fallbackChain: [
3587
3631
  {
3588
3632
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3589
- model: "claude-fable-5-1",
3633
+ model: LATEST_MODEL_BY_FAMILY.claudeFable,
3590
3634
  variant: "max"
3591
3635
  },
3592
3636
  {
3593
3637
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3594
- model: "claude-opus-5-5",
3638
+ model: LATEST_MODEL_BY_FAMILY.claudeOpus,
3595
3639
  variant: "max"
3596
3640
  },
3597
3641
  {
3598
3642
  providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
3599
- model: "kimi-k3",
3643
+ model: LATEST_MODEL_BY_FAMILY.kimi,
3600
3644
  variant: "max"
3601
3645
  }
3602
3646
  ]
3603
3647
  },
3604
3648
  quick: {
3605
3649
  fallbackChain: [
3606
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
3650
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptLunaFast, variant: "low" },
3607
3651
  {
3608
3652
  providers: ["anthropic", "anthropic-api", "github-copilot"],
3609
- model: "claude-haiku-5-5",
3653
+ model: LATEST_MODEL_BY_FAMILY.claudeHaiku,
3610
3654
  variant: "medium"
3611
3655
  },
3612
3656
  { providers: ["deepseek"], model: "deepseek-flash", variant: "off" },
@@ -3618,7 +3662,7 @@ var init_category_model_requirements = __esm(() => {
3618
3662
  { providers: ["opencode-go"], model: "minimax-m3", variant: "max" },
3619
3663
  { providers: ["opencode-go"], model: "minimax-m2.7", variant: "max" },
3620
3664
  { providers: ["xai"], model: "grok-4.20-0309-non-reasoning" },
3621
- { providers: ["zai-coding-plan"], model: "glm-5.3-flash", variant: "low" },
3665
+ { providers: ["zai-coding-plan"], model: LATEST_MODEL_BY_FAMILY.glmFlash, variant: "low" },
3622
3666
  { providers: ["xiaomi"], model: "mimo-v2.6-flash", variant: "low" }
3623
3667
  ]
3624
3668
  },
@@ -3626,13 +3670,13 @@ var init_category_model_requirements = __esm(() => {
3626
3670
  fallbackChain: [
3627
3671
  {
3628
3672
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3629
- model: "claude-sonnet-5-5",
3673
+ model: LATEST_MODEL_BY_FAMILY.claudeSonnet,
3630
3674
  variant: "medium"
3631
3675
  },
3632
3676
  { providers: ["xiaomi", "opencode-go"], model: "mimo-v2.6-pro", variant: "max" },
3633
3677
  { 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" },
3635
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-6.1-sol", variant: "medium" },
3678
+ { providers: ["zai-coding-plan", "opencode-go"], model: LATEST_MODEL_BY_FAMILY.glm, variant: "high" },
3679
+ { providers: ["openai", "chatgpt-subscription"], model: LATEST_MODEL_BY_FAMILY.gptSol, variant: "medium" },
3636
3680
  {
3637
3681
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
3638
3682
  model: "gpt-5.6-sol",
@@ -3656,13 +3700,13 @@ var init_category_model_requirements = __esm(() => {
3656
3700
  fallbackChain: [
3657
3701
  {
3658
3702
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3659
- model: "claude-opus-5-5",
3703
+ model: LATEST_MODEL_BY_FAMILY.claudeOpus,
3660
3704
  variant: "medium"
3661
3705
  },
3662
- { providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.3", variant: "max" },
3706
+ { providers: ["zai-coding-plan", "opencode-go"], model: LATEST_MODEL_BY_FAMILY.glm, variant: "max" },
3663
3707
  {
3664
3708
  providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
3665
- model: "kimi-k3",
3709
+ model: LATEST_MODEL_BY_FAMILY.kimi,
3666
3710
  variant: "max"
3667
3711
  }
3668
3712
  ]
@@ -3670,10 +3714,10 @@ var init_category_model_requirements = __esm(() => {
3670
3714
  writing: {
3671
3715
  requiresAnyModel: true,
3672
3716
  fallbackChain: [
3673
- { providers: ["google", "google-vertex", "opencode"], model: "gemini-4-argon", variant: "low" },
3717
+ { providers: ["google", "google-vertex", "opencode"], model: LATEST_MODEL_BY_FAMILY.geminiPro, variant: "low" },
3674
3718
  {
3675
3719
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3676
- model: "claude-opus-5-5",
3720
+ model: LATEST_MODEL_BY_FAMILY.claudeOpus,
3677
3721
  variant: "low"
3678
3722
  },
3679
3723
  {
@@ -4942,6 +4986,7 @@ var MODELS_DEV_SOURCE_URL = "https://models.dev/api.json";
4942
4986
  var init_src2 = __esm(() => {
4943
4987
  init_model_resolver();
4944
4988
  init_model_requirements();
4989
+ init_latest_models();
4945
4990
  init_model_family_detectors();
4946
4991
  init_model_capability_aliases();
4947
4992
  init_model_capability_heuristics();
@@ -5179,16 +5224,17 @@ Approach:
5179
5224
  - This is for tasks requiring exceptional creativity
5180
5225
  </Category_Context>`, GOOGLE_CATEGORIES;
5181
5226
  var init_google_categories = __esm(() => {
5227
+ init_latest_models();
5182
5228
  GOOGLE_CATEGORIES = [
5183
5229
  {
5184
5230
  name: "visual-engineering",
5185
- config: { model: "google/gemini-4-argon", variant: "low" },
5231
+ config: { model: `google/${LATEST_MODEL_BY_FAMILY.geminiPro}`, variant: "low" },
5186
5232
  description: "Visual design, UI/UX, frontend, styling, animation, and design systems",
5187
5233
  promptAppend: VISUAL_CATEGORY_PROMPT_APPEND
5188
5234
  },
5189
5235
  {
5190
5236
  name: "artistry",
5191
- config: { model: "anthropic/claude-fable-5-1", variant: "max" },
5237
+ config: { model: `anthropic/${LATEST_MODEL_BY_FAMILY.claudeFable}`, variant: "max" },
5192
5238
  description: "Complex problem-solving with unconventional, creative approaches - beyond standard patterns",
5193
5239
  promptAppend: ARTISTRY_CATEGORY_PROMPT_APPEND
5194
5240
  }
@@ -5222,10 +5268,11 @@ ANTI-AI-SLOP RULES (NON-NEGOTIABLE):
5222
5268
  - Write like a human, not a corporate template.
5223
5269
  </Category_Context>`, KIMI_CATEGORIES;
5224
5270
  var init_kimi_categories = __esm(() => {
5271
+ init_latest_models();
5225
5272
  KIMI_CATEGORIES = [
5226
5273
  {
5227
5274
  name: "writing",
5228
- config: { model: "google/gemini-4-argon", variant: "low" },
5275
+ config: { model: `google/${LATEST_MODEL_BY_FAMILY.geminiPro}`, variant: "low" },
5229
5276
  description: "Documentation, prose, technical writing",
5230
5277
  promptAppend: WRITING_CATEGORY_PROMPT_APPEND
5231
5278
  }
@@ -5360,21 +5407,23 @@ You are working on tasks that don't fit specific categories but require moderate
5360
5407
  </Category_Context>`, UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits, effort is moderate, and scope stays within a few files/modules. Prefer any matching specialist category.</Selection_Gate>
5361
5408
  <Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`, UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
5362
5409
  You are working on tasks that don't fit specific categories but require substantial effort.
5363
- </Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`, DEEP_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Of the two deep lanes this is the default: the child settles its decisions from what it reads. When unsure, choose deep-low; a misrouted child returns \`ESCALATE: deep-high\` after one cheap attempt, and you re-spawn the same brief as deep-high with its findings.</Selection_Gate>`, DEEP_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Route here only when you can name the decision evidence cannot settle: a trade-off with no single right answer, a contract change crossing a package or process boundary, a mechanism with no in-repo pattern to copy, or correctness argued from invariants rather than observed in a test. Wide scope with easy decisions is deep-low or unspecified-high; reasoning as the deliverable is ultrabrain.</Selection_Gate>`, DEEP_LOW_GATE_MODELS, DEEP_HIGH_GATE_MODEL = "gpt-6-astra", OPENAI_CATEGORIES;
5410
+ </Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`, DEEP_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Of the two deep lanes this is the default: the child settles its decisions from what it reads. When unsure, choose deep-low; a misrouted child returns \`ESCALATE: deep-high\` after one cheap attempt, and you re-spawn the same brief as deep-high with its findings.</Selection_Gate>`, DEEP_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Route here only when you can name the decision evidence cannot settle: a trade-off with no single right answer, a contract change crossing a package or process boundary, a mechanism with no in-repo pattern to copy, or correctness argued from invariants rather than observed in a test. Wide scope with easy decisions is deep-low or unspecified-high; reasoning as the deliverable is ultrabrain.</Selection_Gate>`, DEEP_LOW_GATE_MODELS, DEEP_HIGH_GATE_MODEL, OPENAI_CATEGORIES;
5364
5411
  var init_openai_categories = __esm(() => {
5365
5412
  init_types();
5366
- DEEP_LOW_GATE_MODELS = ["gpt-6.1-sol", "gpt-6.1-sol-fast", "gpt-5.6-sol-fast", "gpt-5.6-sol"];
5413
+ init_latest_models();
5414
+ DEEP_LOW_GATE_MODELS = [LATEST_MODEL_BY_FAMILY.gptSol, LATEST_MODEL_BY_FAMILY.gptSolFast, "gpt-5.6-sol-fast", "gpt-5.6-sol"];
5415
+ DEEP_HIGH_GATE_MODEL = LATEST_MODEL_BY_FAMILY.gptAstra;
5367
5416
  OPENAI_CATEGORIES = [
5368
5417
  {
5369
5418
  name: "ultrabrain",
5370
- config: { model: "openai/gpt-6-astra", variant: "max" },
5419
+ config: { model: `openai/${LATEST_MODEL_BY_FAMILY.gptAstra}`, variant: "max" },
5371
5420
  description: "Use ONLY for genuinely hard, logic-heavy tasks. Give clear goals only, not step-by-step instructions.",
5372
5421
  promptAppend: ULTRABRAIN_CATEGORY_PROMPT_APPEND,
5373
5422
  resolvePromptAppend: resolveUltrabrainCategoryPromptAppend
5374
5423
  },
5375
5424
  {
5376
5425
  name: "deep-low",
5377
- config: { model: "openai/gpt-6.1-sol", variant: "medium" },
5426
+ config: { model: `openai/${LATEST_MODEL_BY_FAMILY.gptSol}`, variant: "medium" },
5378
5427
  description: "Default deep lane: one goal, one deliverable, decisions the child can settle from what it reads; preferred over deep-high for 3D graphics, computer/browser use, CAPTCHA, multimodal, backend, logic, and algorithm work. Multiple goals fan out as parallel calls.",
5379
5428
  callerGuidance: DEEP_LOW_CATEGORY_CALLER_GUIDANCE,
5380
5429
  promptAppend: DEEP_LOW_CATEGORY_PROMPT_APPEND,
@@ -5383,7 +5432,7 @@ var init_openai_categories = __esm(() => {
5383
5432
  },
5384
5433
  {
5385
5434
  name: "deep-high",
5386
- config: { model: "openai/gpt-6-astra", variant: "high" },
5435
+ config: { model: `openai/${LATEST_MODEL_BY_FAMILY.gptAstra}`, variant: "high" },
5387
5436
  description: "Escalation deep lane: a goal whose central decision cannot be settled from evidence alone. Same one-goal, one-deliverable contract as deep-low.",
5388
5437
  callerGuidance: DEEP_HIGH_CATEGORY_CALLER_GUIDANCE,
5389
5438
  promptAppend: DEEP_HIGH_CATEGORY_PROMPT_APPEND,
@@ -5392,21 +5441,21 @@ var init_openai_categories = __esm(() => {
5392
5441
  },
5393
5442
  {
5394
5443
  name: "quick",
5395
- config: { model: "openai/gpt-6-luna-fast", variant: "low" },
5444
+ config: { model: `openai/${LATEST_MODEL_BY_FAMILY.gptLunaFast}`, variant: "low" },
5396
5445
  description: "Trivial tasks - single file changes, typo fixes, simple modifications",
5397
5446
  callerGuidance: QUICK_CATEGORY_CALLER_GUIDANCE,
5398
5447
  promptAppend: QUICK_CATEGORY_PROMPT_APPEND
5399
5448
  },
5400
5449
  {
5401
5450
  name: "unspecified-low",
5402
- config: { model: "anthropic/claude-sonnet-5-5", variant: "medium" },
5451
+ config: { model: `anthropic/${LATEST_MODEL_BY_FAMILY.claudeSonnet}`, variant: "medium" },
5403
5452
  description: "Tasks that don't fit other categories, low effort required",
5404
5453
  callerGuidance: UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE,
5405
5454
  promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
5406
5455
  },
5407
5456
  {
5408
5457
  name: "unspecified-high",
5409
- config: { model: "anthropic/claude-opus-5-5", variant: "medium" },
5458
+ config: { model: `anthropic/${LATEST_MODEL_BY_FAMILY.claudeOpus}`, variant: "medium" },
5410
5459
  description: "Tasks that don't fit other categories, high effort required",
5411
5460
  callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
5412
5461
  promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND,
@@ -5456,7 +5505,7 @@ var init_migration2 = __esm(() => {
5456
5505
 
5457
5506
  // packages/omo-opencode/src/shared/opencode-config-dir.ts
5458
5507
  import { existsSync as existsSync2, realpathSync } from "fs";
5459
- import { homedir as homedir2 } from "os";
5508
+ import { homedir as homedir3 } from "os";
5460
5509
  import { join as join3, posix, resolve, win32 } from "path";
5461
5510
  function isDevBuild(version) {
5462
5511
  if (!version)
@@ -5467,14 +5516,14 @@ function getTauriConfigDir(identifier) {
5467
5516
  const platform = process.platform;
5468
5517
  switch (platform) {
5469
5518
  case "darwin":
5470
- return join3(homedir2(), "Library", "Application Support", identifier);
5519
+ return join3(homedir3(), "Library", "Application Support", identifier);
5471
5520
  case "win32": {
5472
- const appData = process.env.APPDATA || join3(homedir2(), "AppData", "Roaming");
5521
+ const appData = process.env.APPDATA || join3(homedir3(), "AppData", "Roaming");
5473
5522
  return win32.join(appData, identifier);
5474
5523
  }
5475
5524
  case "linux":
5476
5525
  default: {
5477
- const xdgConfig = process.env.XDG_CONFIG_HOME || join3(homedir2(), ".config");
5526
+ const xdgConfig = process.env.XDG_CONFIG_HOME || join3(homedir3(), ".config");
5478
5527
  return join3(xdgConfig, identifier);
5479
5528
  }
5480
5529
  }
@@ -5518,7 +5567,7 @@ function getWslLinuxHomeDir(windowsConfigRoot) {
5518
5567
  function getCliDefaultConfigDir() {
5519
5568
  const envXdgConfig = process.env.XDG_CONFIG_HOME?.trim();
5520
5569
  const shouldIgnoreWindowsXdg = envXdgConfig !== undefined && envXdgConfig.length > 0 && isWslEnvironment() && isWindowsUserConfigRoot(envXdgConfig);
5521
- const xdgConfig = shouldIgnoreWindowsXdg ? posix.join(getWslLinuxHomeDir(envXdgConfig) ?? "/home", ".config") : envXdgConfig || join3(homedir2(), ".config");
5570
+ const xdgConfig = shouldIgnoreWindowsXdg ? posix.join(getWslLinuxHomeDir(envXdgConfig) ?? "/home", ".config") : envXdgConfig || join3(homedir3(), ".config");
5522
5571
  const configDir = isWslEnvironment() ? posix.join(xdgConfig, "opencode") : join3(xdgConfig, "opencode");
5523
5572
  return resolveConfigPath(configDir);
5524
5573
  }
@@ -63697,10 +63746,11 @@ var ANTHROPIC_PREFIX = "anthropic/", CLAUDE_CODE_ALIAS_MAP;
63697
63746
  var init_claude_model_mapper = __esm(() => {
63698
63747
  init_model_format_normalizer();
63699
63748
  init_model_normalization2();
63749
+ init_latest_models();
63700
63750
  CLAUDE_CODE_ALIAS_MAP = new Map([
63701
- ["sonnet", `${ANTHROPIC_PREFIX}claude-sonnet-4-6`],
63702
- ["opus", `${ANTHROPIC_PREFIX}claude-opus-5-5`],
63703
- ["haiku", `${ANTHROPIC_PREFIX}claude-haiku-5-5`]
63751
+ ["sonnet", `${ANTHROPIC_PREFIX}${LATEST_MODEL_BY_FAMILY.claudeSonnet}`],
63752
+ ["opus", `${ANTHROPIC_PREFIX}${LATEST_MODEL_BY_FAMILY.claudeOpus}`],
63753
+ ["haiku", `${ANTHROPIC_PREFIX}${LATEST_MODEL_BY_FAMILY.claudeHaiku}`]
63704
63754
  ]);
63705
63755
  });
63706
63756
 
@@ -70090,7 +70140,7 @@ var init_git_master = __esm(() => {
70090
70140
  OmoGitMasterSettingsLayerSchema = object(OmoGitMasterSettingsShape).partial().strict();
70091
70141
  OmoGitMasterSettingsSchema = OmoGitMasterSettingsLayerSchema.extend({
70092
70142
  commit_footer: union([boolean2(), string2()]).default(false),
70093
- include_co_authored_by: boolean2().default(false),
70143
+ include_co_authored_by: boolean2().default(true),
70094
70144
  git_env_prefix: GitEnvPrefixSchema.default("GIT_MASTER=1")
70095
70145
  }).strict();
70096
70146
  });
@@ -70124,7 +70174,7 @@ var init_memory_agreements = __esm(() => {
70124
70174
  });
70125
70175
 
70126
70176
  // packages/omo-config-core/src/schema/memory.ts
70127
- var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallEventCapsSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallEventCapsLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryProjectionSchema, OmoMemoryProjectionLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemoryAutoIdentitySchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
70177
+ var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallEventCapsSchema, OmoMemoryRecallSchema, OmoMemoryProjectScopeSchema, OmoMemoryProjectScopeLayerSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallEventCapsLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryProjectionSchema, OmoMemoryProjectionLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemoryAutoIdentitySchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
70128
70178
  var init_memory = __esm(() => {
70129
70179
  init_zod();
70130
70180
  init_memory_agreements();
@@ -70139,6 +70189,7 @@ var init_memory = __esm(() => {
70139
70189
  merge: _enum(["auto", "integration"]).default("auto"),
70140
70190
  category: string2().min(1).default("quick"),
70141
70191
  timeout_minutes: number2().int().positive().default(15),
70192
+ max_concurrent_runs: number2().int().positive().default(1),
70142
70193
  sandbox: _enum(["auto", "required", "off"]).default("auto")
70143
70194
  }).strict();
70144
70195
  OmoMemorySyncSchema = object({
@@ -70164,6 +70215,14 @@ var init_memory = __esm(() => {
70164
70215
  tool_budget: number2().int().positive().default(8),
70165
70216
  query_expansion: boolean2().default(false)
70166
70217
  }).strict();
70218
+ OmoMemoryProjectScopeSchema = object({
70219
+ nudge: boolean2().default(true),
70220
+ recall: boolean2().default(true)
70221
+ }).strict();
70222
+ OmoMemoryProjectScopeLayerSchema = object({
70223
+ nudge: boolean2().optional(),
70224
+ recall: boolean2().optional()
70225
+ }).strict();
70167
70226
  OmoMemoryNudgeSchema = object({
70168
70227
  enabled: boolean2().default(true),
70169
70228
  every_user_turns: number2().int().min(1).default(10)
@@ -70202,6 +70261,7 @@ var init_memory = __esm(() => {
70202
70261
  merge: _enum(["auto", "integration"]).optional(),
70203
70262
  category: string2().min(1).optional(),
70204
70263
  timeout_minutes: number2().int().positive().optional(),
70264
+ max_concurrent_runs: number2().int().positive().optional(),
70205
70265
  sandbox: _enum(["auto", "required", "off"]).optional()
70206
70266
  }).strict();
70207
70267
  OmoMemorySyncLayerSchema = object({
@@ -70266,7 +70326,7 @@ var init_memory = __esm(() => {
70266
70326
  OmoMemoryAgentOverridesSchema = object({
70267
70327
  enabled: boolean2().optional(),
70268
70328
  agent: string2().min(1).optional(),
70269
- reflection: OmoMemoryReflectionLayerSchema.optional(),
70329
+ reflection: OmoMemoryReflectionLayerSchema.omit({ max_concurrent_runs: true }).optional(),
70270
70330
  nudge: OmoMemoryNudgeLayerSchema.optional(),
70271
70331
  facts: OmoMemoryFactsLayerSchema.optional(),
70272
70332
  dream: OmoMemoryDreamLayerSchema.optional(),
@@ -70291,6 +70351,7 @@ var init_memory = __esm(() => {
70291
70351
  merge: "auto",
70292
70352
  category: "quick",
70293
70353
  timeout_minutes: 15,
70354
+ max_concurrent_runs: 1,
70294
70355
  sandbox: "auto"
70295
70356
  }),
70296
70357
  nudge: OmoMemoryNudgeSchema.default({ enabled: true, every_user_turns: 10 }),
@@ -70319,6 +70380,7 @@ var init_memory = __esm(() => {
70319
70380
  tool_budget: 8,
70320
70381
  query_expansion: false
70321
70382
  }),
70383
+ project_scope: OmoMemoryProjectScopeSchema.default({ nudge: true, recall: true }),
70322
70384
  projection: OmoMemoryProjectionSchema.default({ max_entries_per_directory: 40, max_bytes: 24576 }),
70323
70385
  compile_warn_tokens: number2().int().positive().default(30000),
70324
70386
  agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
@@ -70338,6 +70400,7 @@ var init_memory = __esm(() => {
70338
70400
  sync: OmoMemorySyncLayerSchema.optional(),
70339
70401
  search: OmoMemorySearchLayerSchema.optional(),
70340
70402
  recall: OmoMemoryRecallLayerSchema.optional(),
70403
+ project_scope: OmoMemoryProjectScopeLayerSchema.optional(),
70341
70404
  projection: OmoMemoryProjectionLayerSchema.optional(),
70342
70405
  compile_warn_tokens: number2().int().positive().optional(),
70343
70406
  agents: record(string2(), OmoMemoryAgentOverridesSchema).optional()
@@ -70635,7 +70698,8 @@ var OmoTelemetrySettingsShape, OmoTelemetrySettingsLayerSchema, OmoTelemetrySett
70635
70698
  var init_telemetry = __esm(() => {
70636
70699
  init_zod();
70637
70700
  OmoTelemetrySettingsShape = {
70638
- enabled: boolean2()
70701
+ enabled: boolean2(),
70702
+ rawTurnSampleRate: number2().min(0).max(1)
70639
70703
  };
70640
70704
  OmoTelemetrySettingsLayerSchema = object(OmoTelemetrySettingsShape).partial().strict();
70641
70705
  OmoTelemetrySettingsSchema = OmoTelemetrySettingsLayerSchema.extend({
@@ -70662,11 +70726,17 @@ var init_format_on_mutation = __esm(() => {
70662
70726
  }).strict();
70663
70727
  });
70664
70728
 
70665
- // packages/omo-config-core/src/schema/gateway.ts
70666
- var OmoGatewaySectionSchema;
70667
- var init_gateway = __esm(() => {
70729
+ // packages/omo-config-core/src/schema/provenance.ts
70730
+ var OmoProvenanceSettingsSchema;
70731
+ var init_provenance = __esm(() => {
70668
70732
  init_zod();
70669
- OmoGatewaySectionSchema = record(string2(), unknown()).describe("Chat-surface gateway settings, owned and validated by a separately installed gateway package. omo accepts the key and never reads it.");
70733
+ OmoProvenanceSettingsSchema = object({
70734
+ workspaces: array(object({
70735
+ name: string2().trim().min(1).regex(/\S/),
70736
+ git_owners: array(string2().trim().min(1).regex(/\S/)).optional(),
70737
+ paths: array(string2().trim().min(1).regex(/\S/)).optional()
70738
+ }).strict()).optional()
70739
+ }).strict();
70670
70740
  });
70671
70741
 
70672
70742
  // packages/omo-config-core/src/schema/config.ts
@@ -70685,13 +70755,13 @@ var init_config = __esm(() => {
70685
70755
  init_team();
70686
70756
  init_telemetry();
70687
70757
  init_format_on_mutation();
70688
- init_gateway();
70758
+ init_provenance();
70689
70759
  OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
70690
70760
  OmoDisabledSkillsSchema = array(string2());
70691
70761
  OmoExcludedModelsSchema = array(string2());
70692
70762
  OmoTypedHarnessConfigSchema = object({
70763
+ provenance: OmoProvenanceSettingsSchema.optional(),
70693
70764
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
70694
- gateway: OmoGatewaySectionSchema.optional(),
70695
70765
  categories: OmoCategoriesConfigSchema.optional(),
70696
70766
  agents: OmoAgentsConfigSchema.optional(),
70697
70767
  git_master: OmoGitMasterSettingsLayerSchema.optional(),
@@ -70708,6 +70778,7 @@ var init_config = __esm(() => {
70708
70778
  exclude_models: OmoExcludedModelsSchema.optional()
70709
70779
  }).strict();
70710
70780
  OmoConfigProfileSchema = object({
70781
+ provenance: OmoProvenanceSettingsSchema.optional(),
70711
70782
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
70712
70783
  categories: OmoCategoriesConfigSchema.optional(),
70713
70784
  agents: OmoAgentsConfigSchema.optional(),
@@ -70729,8 +70800,8 @@ var init_config = __esm(() => {
70729
70800
  "[codex]": OmoTypedHarnessConfigSchema.optional()
70730
70801
  }).strict();
70731
70802
  OmoConfigSchema = object({
70803
+ provenance: OmoProvenanceSettingsSchema.optional(),
70732
70804
  formatOnMutation: OmoFormatOnMutationSchema.optional(),
70733
- gateway: OmoGatewaySectionSchema.optional(),
70734
70805
  $schema: string2().optional(),
70735
70806
  categories: OmoCategoriesConfigSchema.optional(),
70736
70807
  agents: OmoAgentsConfigSchema.optional(),
@@ -70755,8 +70826,8 @@ var init_config = __esm(() => {
70755
70826
  legacy_migrations: record(string2(), unknown()).optional()
70756
70827
  }).strict();
70757
70828
  OmoConfigLayerSchema = object({
70829
+ provenance: OmoProvenanceSettingsSchema.optional(),
70758
70830
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
70759
- gateway: OmoGatewaySectionSchema.optional(),
70760
70831
  $schema: string2().optional(),
70761
70832
  categories: OmoCategoriesConfigSchema.optional(),
70762
70833
  agents: OmoAgentsConfigSchema.optional(),
@@ -70899,7 +70970,6 @@ var init_schema = __esm(() => {
70899
70970
  init_config();
70900
70971
  init_fallback_models();
70901
70972
  init_format_on_mutation();
70902
- init_gateway();
70903
70973
  init_git_master();
70904
70974
  init_harness();
70905
70975
  init_legacy_category_names();
@@ -70908,6 +70978,7 @@ var init_schema = __esm(() => {
70908
70978
  init_model_catalog();
70909
70979
  init_model_profile();
70910
70980
  init_model_ref();
70981
+ init_provenance();
70911
70982
  init_side_panel();
70912
70983
  init_task();
70913
70984
  init_team();
@@ -71173,6 +71244,7 @@ function pruneInvalidConfigPaths(config, issues, validate, maxPasses = MAX_PRUNE
71173
71244
  var MAX_PRUNE_PASSES = 32;
71174
71245
 
71175
71246
  // packages/omo-config-core/src/loader/layer-validation.ts
71247
+ import { createHash } from "crypto";
71176
71248
  function validationDiagnostic(path, issues) {
71177
71249
  const issuePaths = issues.map((issue) => issue.path.map((segment) => String(segment)).join("."));
71178
71250
  return {
@@ -71196,6 +71268,9 @@ function unrecognizedKeyIssues(issues) {
71196
71268
  function isRecord11(value) {
71197
71269
  return typeof value === "object" && value !== null && !Array.isArray(value);
71198
71270
  }
71271
+ function isRetiredSection(key) {
71272
+ return RETIRED_SECTION_DIGESTS.has(createHash("sha256").update(key.toLowerCase()).digest("hex"));
71273
+ }
71199
71274
  function sanitizeUnsafeKeys(value, path = []) {
71200
71275
  if (Array.isArray(value)) {
71201
71276
  const issues = [];
@@ -71214,6 +71289,9 @@ function sanitizeUnsafeKeys(value, path = []) {
71214
71289
  }
71215
71290
  const sanitized = {};
71216
71291
  for (const [key, entry] of Object.entries(value)) {
71292
+ const isConfigContainer = path.length === 0 || path.length === 1 && HARNESS_BLOCKS.has(path[0] ?? "") || path.length === 2 && path[0] === "profiles" || path.length === 3 && path[0] === "profiles" && HARNESS_BLOCKS.has(path[2] ?? "");
71293
+ if (isConfigContainer && isRetiredSection(key))
71294
+ continue;
71217
71295
  if (isUnsafeObjectKey2(key)) {
71218
71296
  issues.push({ keys: [key], path });
71219
71297
  continue;
@@ -71300,13 +71378,18 @@ function validateConfigLayer(path, data) {
71300
71378
  return rejected;
71301
71379
  return { loaded: true, diagnostics: [...diagnostics, ...invalidValueDiagnostics(path, pruned.dropped)], value: pruned.config };
71302
71380
  }
71303
- var validateLayerRecord = (record) => {
71381
+ var RETIRED_SECTION_DIGESTS, HARNESS_BLOCKS, validateLayerRecord = (record) => {
71304
71382
  const parsed = OmoConfigLayerSchema.safeParse(record);
71305
71383
  return parsed.success ? { success: true } : { success: false, issues: parsed.error.issues };
71306
71384
  };
71307
71385
  var init_layer_validation = __esm(() => {
71308
71386
  init_schema();
71309
71387
  init_merge();
71388
+ RETIRED_SECTION_DIGESTS = new Set([
71389
+ "447f75a8ebdbdb79a57f0b8cebbfba183820cf54a8119ac01449b30499e5ef0e",
71390
+ "4ea5ee68fea05586106890ded5733820bb77d919cda27bc4b8139b7cd33b8889"
71391
+ ]);
71392
+ HARNESS_BLOCKS = new Set(["[opencode]", "[native]", "[senpi]", "[codex]"]);
71310
71393
  });
71311
71394
 
71312
71395
  // packages/omo-config-core/src/internal/posix-path.ts
@@ -72016,6 +72099,323 @@ var init_shared = __esm(() => {
72016
72099
  init_legacy_workspace_migration();
72017
72100
  init_replace_tool_args();
72018
72101
  });
72102
+ // packages/skills-loader-core/src/shared/skill-path-resolver.ts
72103
+ var init_skill_path_resolver3 = __esm(() => {
72104
+ init_skill_path_resolver();
72105
+ });
72106
+ // packages/shared-skills/index.mjs
72107
+ import { existsSync as existsSync8 } from "fs";
72108
+ import { fileURLToPath as fileURLToPath2 } from "url";
72109
+ function sharedSkillsRootPath() {
72110
+ const candidates = SKILLS_PROBE_SPECIFIERS.map((specifier) => fileURLToPath2(new URL(specifier, import.meta.url)));
72111
+ return candidates.find((candidate) => existsSync8(candidate)) ?? candidates[0];
72112
+ }
72113
+ var SKILLS_PROBE_SPECIFIERS;
72114
+ var init_shared_skills = __esm(() => {
72115
+ SKILLS_PROBE_SPECIFIERS = ["./skills/", "../skills/", "../../skills/"];
72116
+ });
72117
+
72118
+ // packages/skills-loader-core/src/shared/claude-config-dir.ts
72119
+ import { join as join13 } from "path";
72120
+ function getClaudeConfigDir() {
72121
+ const envConfigDir = process.env.CLAUDE_CONFIG_DIR;
72122
+ if (envConfigDir) {
72123
+ return envConfigDir;
72124
+ }
72125
+ return join13(getHomeDirectory(), ".claude");
72126
+ }
72127
+ var init_claude_config_dir2 = __esm(() => {
72128
+ init_src();
72129
+ });
72130
+
72131
+ // packages/skills-loader-core/src/shared/plugin-identity.ts
72132
+ var PRODUCT_IDENTITY, PLUGIN_NAME2, LEGACY_PLUGIN_NAME2, PUBLISHED_PACKAGE_NAME2, CONFIG_BASENAME, LEGACY_CONFIG_BASENAME, LOG_FILENAME3, CACHE_DIR_NAME2;
72133
+ var init_plugin_identity2 = __esm(() => {
72134
+ init_src();
72135
+ PRODUCT_IDENTITY = createProductIdentity({
72136
+ pluginName: "oh-my-openagent",
72137
+ legacyPluginName: "oh-my-opencode",
72138
+ publishedPackageName: "oh-my-opencode",
72139
+ configBasename: "oh-my-openagent",
72140
+ legacyConfigBasename: "oh-my-opencode",
72141
+ logFileName: "oh-my-opencode.log",
72142
+ cacheDirName: "oh-my-opencode"
72143
+ });
72144
+ PLUGIN_NAME2 = PRODUCT_IDENTITY.pluginName;
72145
+ LEGACY_PLUGIN_NAME2 = PRODUCT_IDENTITY.legacyPluginName;
72146
+ PUBLISHED_PACKAGE_NAME2 = PRODUCT_IDENTITY.publishedPackageName;
72147
+ CONFIG_BASENAME = PRODUCT_IDENTITY.configBasename;
72148
+ LEGACY_CONFIG_BASENAME = PRODUCT_IDENTITY.legacyConfigBasename;
72149
+ LOG_FILENAME3 = PRODUCT_IDENTITY.logFileName;
72150
+ CACHE_DIR_NAME2 = PRODUCT_IDENTITY.cacheDirName;
72151
+ });
72152
+
72153
+ // packages/skills-loader-core/src/shared/opencode-config-dir.ts
72154
+ import { existsSync as existsSync9, realpathSync as realpathSync5 } from "fs";
72155
+ import { homedir as homedir5 } from "os";
72156
+ import { join as join14, posix as posix3, resolve as resolve5, win32 as win322 } from "path";
72157
+ function isDevBuild2(version) {
72158
+ if (!version)
72159
+ return false;
72160
+ return version.includes("-dev") || version.includes(".dev");
72161
+ }
72162
+ function getTauriConfigDir2(identifier) {
72163
+ const platform = process.platform;
72164
+ switch (platform) {
72165
+ case "darwin":
72166
+ return join14(homedir5(), "Library", "Application Support", identifier);
72167
+ case "win32": {
72168
+ const appData = process.env.APPDATA || join14(homedir5(), "AppData", "Roaming");
72169
+ return win322.join(appData, identifier);
72170
+ }
72171
+ case "linux":
72172
+ default: {
72173
+ const xdgConfig = process.env.XDG_CONFIG_HOME || join14(homedir5(), ".config");
72174
+ return join14(xdgConfig, identifier);
72175
+ }
72176
+ }
72177
+ }
72178
+ function resolveConfigPath2(pathValue) {
72179
+ if (isWslEnvironment2() && pathValue.startsWith("/")) {
72180
+ return posix3.normalize(pathValue);
72181
+ }
72182
+ const resolvedPath = resolve5(pathValue);
72183
+ if (!existsSync9(resolvedPath))
72184
+ return resolvedPath;
72185
+ try {
72186
+ return realpathSync5(resolvedPath);
72187
+ } catch (error) {
72188
+ if (error instanceof Error) {
72189
+ return resolvedPath;
72190
+ }
72191
+ return resolvedPath;
72192
+ }
72193
+ }
72194
+ function isWslEnvironment2() {
72195
+ return process.platform === "linux" && (Boolean(process.env.WSL_DISTRO_NAME?.trim()) || Boolean(process.env.WSL_INTEROP?.trim()));
72196
+ }
72197
+ function isWindowsUserConfigRoot2(pathValue) {
72198
+ const normalizedPath = pathValue.replaceAll("\\", "/").toLowerCase();
72199
+ return /^[a-z]:\/users\//.test(normalizedPath) || /^\/mnt\/[a-z]\/users\//.test(normalizedPath);
72200
+ }
72201
+ function getWindowsUserFromConfigRoot2(pathValue) {
72202
+ const normalizedPath = pathValue.replaceAll("\\", "/");
72203
+ const match = /^(?:[a-z]:|\/mnt\/[a-z])\/Users\/([^/]+)/i.exec(normalizedPath);
72204
+ return match?.[1] ?? null;
72205
+ }
72206
+ function getWslLinuxHomeDir2(windowsConfigRoot) {
72207
+ const envHome = process.env.HOME?.trim();
72208
+ if (envHome && envHome.startsWith("/") && !isWindowsUserConfigRoot2(envHome)) {
72209
+ return envHome;
72210
+ }
72211
+ const user = process.env.USER?.trim() || process.env.LOGNAME?.trim() || process.env.SUDO_USER?.trim() || (windowsConfigRoot ? getWindowsUserFromConfigRoot2(windowsConfigRoot) : undefined);
72212
+ return user ? posix3.join("/home", user) : null;
72213
+ }
72214
+ function getCliDefaultConfigDir2() {
72215
+ const envXdgConfig = process.env.XDG_CONFIG_HOME?.trim();
72216
+ const shouldIgnoreWindowsXdg = envXdgConfig !== undefined && envXdgConfig.length > 0 && isWslEnvironment2() && isWindowsUserConfigRoot2(envXdgConfig);
72217
+ const xdgConfig = shouldIgnoreWindowsXdg ? posix3.join(getWslLinuxHomeDir2(envXdgConfig) ?? "/home", ".config") : envXdgConfig || join14(homedir5(), ".config");
72218
+ const configDir = isWslEnvironment2() ? posix3.join(xdgConfig, "opencode") : join14(xdgConfig, "opencode");
72219
+ return resolveConfigPath2(configDir);
72220
+ }
72221
+ function getCliCustomConfigDir2() {
72222
+ const envConfigDir = process.env.OPENCODE_CONFIG_DIR?.trim();
72223
+ if (!envConfigDir) {
72224
+ return null;
72225
+ }
72226
+ return resolveConfigPath2(envConfigDir);
72227
+ }
72228
+ function getCliConfigDir2() {
72229
+ return getCliCustomConfigDir2() ?? getCliDefaultConfigDir2();
72230
+ }
72231
+ function getOpenCodeConfigDirs2(options) {
72232
+ if (options.binary !== "opencode") {
72233
+ return [getOpenCodeConfigDir2(options)];
72234
+ }
72235
+ const customConfigDir = getCliCustomConfigDir2();
72236
+ return Array.from(new Set([
72237
+ ...customConfigDir ? [customConfigDir] : [],
72238
+ getCliDefaultConfigDir2()
72239
+ ]));
72240
+ }
72241
+ function getOpenCodeConfigDir2(options) {
72242
+ const { binary, version, checkExisting = true } = options;
72243
+ if (binary === "opencode") {
72244
+ return getCliConfigDir2();
72245
+ }
72246
+ const identifier = isDevBuild2(version) ? TAURI_APP_IDENTIFIER_DEV2 : TAURI_APP_IDENTIFIER2;
72247
+ const tauriDirBase = getTauriConfigDir2(identifier);
72248
+ const tauriDir = process.platform === "win32" ? win322.isAbsolute(tauriDirBase) ? win322.normalize(tauriDirBase) : win322.resolve(tauriDirBase) : resolveConfigPath2(tauriDirBase);
72249
+ if (checkExisting) {
72250
+ const legacyDir = getCliConfigDir2();
72251
+ const legacyConfig = join14(legacyDir, "opencode.json");
72252
+ const legacyConfigC = join14(legacyDir, "opencode.jsonc");
72253
+ if (existsSync9(legacyConfig) || existsSync9(legacyConfigC)) {
72254
+ return legacyDir;
72255
+ }
72256
+ }
72257
+ return tauriDir;
72258
+ }
72259
+ var TAURI_APP_IDENTIFIER2 = "ai.opencode.desktop", TAURI_APP_IDENTIFIER_DEV2 = "ai.opencode.desktop.dev";
72260
+ var init_opencode_config_dir2 = __esm(() => {
72261
+ init_plugin_identity2();
72262
+ });
72263
+
72264
+ // packages/skills-loader-core/src/shared/opencode-command-dirs.ts
72265
+ var init_opencode_command_dirs2 = __esm(() => {
72266
+ init_opencode_config_dir2();
72267
+ });
72268
+ // packages/skills-loader-core/src/shared/jsonc-parser.ts
72269
+ var init_jsonc_parser3 = () => {};
72270
+
72271
+ // packages/skills-loader-core/src/shared/project-discovery-dirs.ts
72272
+ import { execFileSync } from "child_process";
72273
+ import { existsSync as existsSync10, realpathSync as realpathSync6 } from "fs";
72274
+ import { dirname as dirname5, join as join15, resolve as resolve6, win32 as win323 } from "path";
72275
+ function normalizePath(path) {
72276
+ const resolvedPath = process.platform !== "win32" && win323.isAbsolute(path) ? path : resolve6(path);
72277
+ if (!existsSync10(resolvedPath)) {
72278
+ return resolvedPath;
72279
+ }
72280
+ try {
72281
+ return realpathSync6.native(resolvedPath);
72282
+ } catch (error) {
72283
+ if (!(error instanceof Error)) {
72284
+ throw error;
72285
+ }
72286
+ try {
72287
+ return realpathSync6(resolvedPath);
72288
+ } catch (fallbackError) {
72289
+ if (!(fallbackError instanceof Error)) {
72290
+ throw fallbackError;
72291
+ }
72292
+ return resolvedPath;
72293
+ }
72294
+ }
72295
+ }
72296
+ function pathKey(path) {
72297
+ const normalized = path.replace(/\\/g, "/");
72298
+ return process.platform === "win32" ? normalized.toLowerCase() : normalized;
72299
+ }
72300
+ function detectWorktreePath(directory) {
72301
+ const resolvedDirectory = resolve6(directory);
72302
+ const cacheKey = pathKey(normalizePath(resolvedDirectory));
72303
+ if (worktreePathCache2.has(cacheKey)) {
72304
+ return worktreePathCache2.get(cacheKey);
72305
+ }
72306
+ let ancestor = normalizePath(resolvedDirectory);
72307
+ while (true) {
72308
+ if (existsSync10(join15(ancestor, ".git"))) {
72309
+ worktreePathCache2.set(cacheKey, ancestor);
72310
+ return ancestor;
72311
+ }
72312
+ const parent = dirname5(ancestor);
72313
+ if (parent === ancestor)
72314
+ break;
72315
+ ancestor = parent;
72316
+ }
72317
+ try {
72318
+ const worktreePath = execFileSync("git", ["rev-parse", "--show-toplevel"], {
72319
+ cwd: resolvedDirectory,
72320
+ encoding: "utf-8",
72321
+ timeout: 5000,
72322
+ stdio: ["pipe", "pipe", "pipe"]
72323
+ }).trim();
72324
+ const normalizedWorktreePath = normalizePath(worktreePath);
72325
+ worktreePathCache2.set(cacheKey, normalizedWorktreePath);
72326
+ return normalizedWorktreePath;
72327
+ } catch (error) {
72328
+ if (!(error instanceof Error)) {
72329
+ throw error;
72330
+ }
72331
+ worktreePathCache2.set(cacheKey, undefined);
72332
+ return;
72333
+ }
72334
+ }
72335
+ var worktreePathCache2;
72336
+ var init_project_discovery_dirs2 = __esm(() => {
72337
+ init_jsonc_parser3();
72338
+ init_plugin_identity2();
72339
+ worktreePathCache2 = new Map;
72340
+ });
72341
+
72342
+ // packages/skills-loader-core/src/shared/internal-initiator-marker.ts
72343
+ var init_internal_initiator_marker3 = __esm(() => {
72344
+ init_internal_initiator_marker();
72345
+ });
72346
+
72347
+ // packages/skills-loader-core/src/shared/index.ts
72348
+ var init_shared2 = __esm(() => {
72349
+ init_claude_config_dir2();
72350
+ init_opencode_command_dirs2();
72351
+ init_opencode_config_dir2();
72352
+ init_project_discovery_dirs2();
72353
+ init_skill_path_resolver3();
72354
+ init_internal_initiator_marker3();
72355
+ });
72356
+
72357
+ // packages/skills-loader-core/src/features/opencode-skill-loader/skill-provenance.ts
72358
+ import { basename as basename3, dirname as dirname6, join as join16, resolve as resolve7, sep } from "path";
72359
+ import { homedir as homedir6 } from "os";
72360
+ function knownUserSkillRoots() {
72361
+ const home = homedir6();
72362
+ return [
72363
+ join16(getClaudeConfigDir(), "skills"),
72364
+ join16(home, ".agents", "skills"),
72365
+ join16(home, ".omo", "agent", "skills"),
72366
+ join16(home, ".senpi", "agent", "skills"),
72367
+ sharedSkillsRootPath(),
72368
+ ...getOpenCodeConfigDirs2({ binary: "opencode" }).flatMap((dir) => [
72369
+ join16(dir, "skills"),
72370
+ join16(dir, "skill")
72371
+ ])
72372
+ ];
72373
+ }
72374
+ var observers;
72375
+ var init_skill_provenance = __esm(() => {
72376
+ init_shared_skills();
72377
+ init_shared2();
72378
+ observers = new Set;
72379
+ });
72380
+
72381
+ // packages/skills-loader-core/src/features/opencode-skill-loader/checked-skill-read.ts
72382
+ var init_checked_skill_read = __esm(() => {
72383
+ init_skill_provenance();
72384
+ });
72385
+
72386
+ // packages/skills-loader-core/src/features/opencode-skill-loader/skill-mcp-config.ts
72387
+ var init_skill_mcp_config = __esm(() => {
72388
+ init_js_yaml();
72389
+ init_checked_skill_read();
72390
+ init_skill_provenance();
72391
+ });
72392
+
72393
+ // packages/skills-loader-core/src/features/opencode-skill-loader/loaded-skill-from-path.ts
72394
+ var init_loaded_skill_from_path = __esm(() => {
72395
+ init_skill_path_resolver3();
72396
+ init_skill_mcp_config();
72397
+ init_checked_skill_read();
72398
+ init_skill_provenance();
72399
+ });
72400
+
72401
+ // packages/skills-loader-core/src/features/opencode-skill-loader/skill-directory-loader.ts
72402
+ var init_skill_directory_loader = __esm(() => {
72403
+ init_loaded_skill_from_path();
72404
+ init_skill_provenance();
72405
+ });
72406
+
72407
+ // packages/skills-loader-core/src/features/opencode-skill-loader/config-source-discovery.ts
72408
+ function setSkillSourceProvenance(config, provenance) {
72409
+ sourceOrigins.set(config, provenance);
72410
+ }
72411
+ var sourceOrigins;
72412
+ var init_config_source_discovery = __esm(() => {
72413
+ init_skill_directory_loader();
72414
+ init_loaded_skill_from_path();
72415
+ init_project_discovery_dirs2();
72416
+ init_skill_provenance();
72417
+ sourceOrigins = new WeakMap;
72418
+ });
72019
72419
 
72020
72420
  // packages/omo-opencode/src/shared/disabled-providers.ts
72021
72421
  function getModelProvider(model) {
@@ -72135,7 +72535,7 @@ function appendViews(views, layers, select, keyPrefix) {
72135
72535
  for (const layer of layers) {
72136
72536
  const config = select(layer.config);
72137
72537
  if (Object.keys(config).length > 0)
72138
- views.push({ config, keyPrefix, path: layer.source.path });
72538
+ views.push({ config, keyPrefix, path: layer.source.path, scope: layer.source.scope });
72139
72539
  }
72140
72540
  }
72141
72541
  function recordFields(value, fields) {
@@ -72741,7 +73141,7 @@ var init_git_master2 = __esm(() => {
72741
73141
  init_git_env_prefix2();
72742
73142
  GitMasterConfigSchema = object({
72743
73143
  commit_footer: union([boolean2(), string2()]).default(false),
72744
- include_co_authored_by: boolean2().default(false),
73144
+ include_co_authored_by: boolean2().default(true),
72745
73145
  git_env_prefix: GitEnvPrefixSchema2
72746
73146
  });
72747
73147
  });
@@ -73146,7 +73546,7 @@ var init_oh_my_opencode_config = __esm(() => {
73146
73546
  babysitting: BabysittingConfigSchema.optional(),
73147
73547
  git_master: GitMasterConfigSchema.default({
73148
73548
  commit_footer: false,
73149
- include_co_authored_by: false,
73549
+ include_co_authored_by: true,
73150
73550
  git_env_prefix: "GIT_MASTER=1"
73151
73551
  }),
73152
73552
  browser_automation_engine: BrowserAutomationConfigSchema.optional(),
@@ -73221,7 +73621,7 @@ var init_prune_plugin_view = __esm(() => {
73221
73621
  });
73222
73622
 
73223
73623
  // packages/omo-opencode/src/config/validate.ts
73224
- import { relative } from "path";
73624
+ import { dirname as dirname7, isAbsolute, join as join17, relative } from "path";
73225
73625
  function shortPath(configPath) {
73226
73626
  const candidate = relative(process.cwd(), configPath);
73227
73627
  return candidate.length > 0 ? candidate : configPath;
@@ -73357,6 +73757,28 @@ function validatePluginConfig(directory, environment = process.env) {
73357
73757
  const userConfig = parseConfig(prunePluginView({ config: chain.protectedUserView, homeDir, keyPrefix: "", path: "" }).config);
73358
73758
  const config = applyDisabledProviders(materializeAgentModelChains(protectUserFields(mergeViews(views), userConfig)));
73359
73759
  warnLegacyUlwExecuteKey(chain.views);
73760
+ if (config.skills) {
73761
+ const owner = chain.views.findLast((view) => Object.hasOwn(view.config, "skills"));
73762
+ const userRoots = [...knownUserSkillRoots()];
73763
+ for (const view of chain.views.filter((candidate) => candidate.scope === "user")) {
73764
+ const settings = OhMyOpenCodeConfigSchema.safeParse({ skills: view.config.skills });
73765
+ const skills = settings.success ? settings.data.skills : undefined;
73766
+ if (!skills || Array.isArray(skills))
73767
+ continue;
73768
+ for (const source of skills.sources ?? []) {
73769
+ const path = typeof source === "string" ? source : source.path;
73770
+ if (/^https?:\/\//.test(path))
73771
+ continue;
73772
+ userRoots.push(path.startsWith("~/") ? join17(homeDir ?? "", path.slice(2)) : isAbsolute(path) ? path : join17(dirname7(view.path), path));
73773
+ }
73774
+ }
73775
+ setSkillSourceProvenance(config.skills, {
73776
+ kind: owner?.scope === "user" ? "user" : "project-auto",
73777
+ selectedRoot: owner ? dirname7(owner.path) : directory,
73778
+ projectRoot: detectWorktreePath(directory) ?? directory,
73779
+ userRoots
73780
+ });
73781
+ }
73360
73782
  return {
73361
73783
  valid: messages.length === 0,
73362
73784
  messages,
@@ -73367,6 +73789,9 @@ function validatePluginConfig(directory, environment = process.env) {
73367
73789
  }
73368
73790
  var START_WORK_DEPRECATION_MESSAGE = 'config key "start_work" is deprecated, rename to "ulw_execute" - will be removed next release', deprecationWarningSink;
73369
73791
  var init_validate = __esm(() => {
73792
+ init_config_source_discovery();
73793
+ init_skill_provenance();
73794
+ init_project_discovery_dirs2();
73370
73795
  init_src4();
73371
73796
  init_disabled_providers();
73372
73797
  init_logger2();
@@ -75096,7 +75521,7 @@ init_shared();
75096
75521
  // package.json
75097
75522
  var package_default = {
75098
75523
  name: "oh-my-opencode",
75099
- version: "5.1.44",
75524
+ version: "5.1.46",
75100
75525
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
75101
75526
  main: "./dist/index.js",
75102
75527
  types: "dist/index.d.ts",
@@ -75216,6 +75641,8 @@ var package_default = {
75216
75641
  "build:senpi-plugin": "bun run build:lsp-daemon && bun run build:ast-grep-mcp && bun run build:senpi-plugin:stage",
75217
75642
  "build:senpi-plugin:native": "node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-x-search-skill.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/build-daemon-launch-spec.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
75218
75643
  "build:senpi-plugin:stage": "bun run build:materialize-frontend && node packages/omo-senpi/plugin/scripts/stage-lsp-daemon-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-ast-grep-mcp-runtime.mjs && node packages/omo-senpi/plugin/scripts/stage-x-search-skill.mjs && node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/build-daemon-launch-spec.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check && node packages/omo-senpi/plugin/scripts/build-install.mjs",
75644
+ "bundle-inputs": "node packages/omo-senpi/plugin/scripts/bundle-inputs.mjs",
75645
+ "bundle-inputs:check": "node packages/omo-senpi/plugin/scripts/bundle-inputs.mjs --check",
75219
75646
  "build:materialize-frontend": "node packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs --strict",
75220
75647
  "build:shared-skills-assets": "bun run build:materialize-frontend && rm -rf dist/skills && cp -R packages/shared-skills/skills dist/skills",
75221
75648
  "build:lsp-tools-mcp": "npm --prefix packages/lsp-tools-mcp ci && npm --prefix packages/lsp-tools-mcp run build",
@@ -75234,7 +75661,8 @@ var package_default = {
75234
75661
  postinstall: "node postinstall.mjs",
75235
75662
  prepublishOnly: "bun run clean && bun run build:lsp-tools-mcp && bun run build:lsp-daemon && bun run build",
75236
75663
  "test:model-capabilities": "bun test --timeout 20000 packages/model-core/src/model-capability-aliases.test.ts packages/model-core/src/model-capability-guardrails.test.ts packages/model-core/src/model-capabilities.test.ts packages/omo-opencode/src/cli/doctor/checks/model-resolution.test.ts --bail",
75237
- typecheck: "tsgo --noEmit && bun run typecheck:script && bun run typecheck:packages",
75664
+ "check:copy": "bun script/check-copy.ts",
75665
+ typecheck: "bun run check:copy && tsgo --noEmit && bun run typecheck:script && bun run typecheck:packages",
75238
75666
  "typecheck:packages": "tsgo --noEmit -p packages/rules-engine/tsconfig.json && tsgo --noEmit -p packages/delegate-core/tsconfig.json && tsgo --noEmit -p packages/mcp-stdio-core/tsconfig.json && tsgo --noEmit -p packages/mcp-client-core/tsconfig.json && tsgo --noEmit -p packages/git-bash-mcp/tsconfig.json && tsgo --noEmit -p packages/ast-grep-mcp/tsconfig.json && tsgo --noEmit -p packages/lsp-core/tsconfig.json && tsgo --noEmit -p packages/utils/tsconfig.json && tsgo --noEmit -p packages/model-core/tsconfig.json && tsgo --noEmit -p packages/omo-config-core/tsconfig.json && tsgo --noEmit -p packages/prompts-core/tsconfig.json && tsgo --noEmit -p packages/comment-checker-core/tsconfig.json && tsgo --noEmit -p packages/hashline-core/tsconfig.json && tsgo --noEmit -p packages/tmux-core/tsconfig.json && tsgo --noEmit -p packages/team-core/tsconfig.json && tsgo --noEmit -p packages/openclaw-core/tsconfig.json && tsgo --noEmit -p packages/boulder-state/tsconfig.json && tsgo --noEmit -p packages/isolation-core/tsconfig.json && tsgo --noEmit -p packages/memory-core/tsconfig.json && tsgo --noEmit -p packages/telemetry-core/tsconfig.json && tsgo --noEmit -p packages/claude-code-compat-core/tsconfig.json && tsgo --noEmit -p packages/skills-loader-core/tsconfig.json && tsgo --noEmit -p packages/agents-md-core/tsconfig.json && tsgo --noEmit -p packages/omo-codex/plugin/shared/tsconfig.json && tsgo --noEmit -p packages/omo-codex/tsconfig.json && tsgo --noEmit -p packages/omo-senpi/tsconfig.json && tsgo --noEmit -p packages/senpi-task/tsconfig.json && tsgo --noEmit -p packages/omo-opencode/tsconfig.json && tsgo --noEmit -p packages/omo-native/tsconfig.json && tsgo --noEmit -p packages/senpi-desktop-protocol/tsconfig.json && tsgo --noEmit -p packages/senpi-desktop-engine/tsconfig.json && tsgo --noEmit -p packages/senpi-desktop-prelude/tsconfig.json && tsgo --noEmit -p packages/senpi-desktop-service/tsconfig.json && tsgo --noEmit -p packages/senpi-desktop-tool/tsconfig.json",
75239
75667
  "typecheck:script": "tsgo --noEmit -p script/tsconfig.json",
75240
75668
  test: "bun test --timeout 20000",
@@ -75245,7 +75673,10 @@ var package_default = {
75245
75673
  "test:windows-codex": "bun run test:codex",
75246
75674
  "build:git-bash-mcp": "bun run --cwd packages/git-bash-mcp build",
75247
75675
  "build:ast-grep-mcp": "bun run --cwd packages/ast-grep-mcp build",
75248
- "test:desktop": "bun script/check-cargo-pinned-deps.mjs && bun run --cwd packages/senpi-desktop-protocol test && bun run --cwd packages/senpi-desktop-engine test && bun run --cwd packages/senpi-desktop-prelude test && bun run --cwd packages/senpi-desktop-service test && bun run --cwd packages/senpi-desktop-tool test"
75676
+ "test:desktop": "bun script/check-cargo-pinned-deps.mjs && bun run --cwd packages/senpi-desktop-protocol test && bun run --cwd packages/senpi-desktop-engine test && bun run --cwd packages/senpi-desktop-prelude test && bun run --cwd packages/senpi-desktop-service test && bun run --cwd packages/senpi-desktop-tool test",
75677
+ "lint:ratchet": "bun script/lint-ratchet.ts",
75678
+ "lint:ratchet:update": "bun script/lint-ratchet.ts --update",
75679
+ lint: "bun run check:copy && oxlint packages/lsp-tools-mcp packages/lsp-daemon packages/web packages/omo-codex/plugin/components/comment-checker packages/omo-codex/plugin/components/lazycodex-executor-verify packages/omo-codex/plugin/components/lsp packages/omo-codex/plugin/components/rules packages/omo-codex/plugin/components/telemetry packages/omo-codex/plugin/components/ultrawork packages/omo-codex/plugin/components/ulw-execute-continuation packages/omo-codex/plugin/components/ulw-loop"
75249
75680
  },
75250
75681
  keywords: [
75251
75682
  "opencode",
@@ -75273,7 +75704,7 @@ var package_default = {
75273
75704
  },
75274
75705
  devDependencies: {
75275
75706
  "@clack/prompts": "^1.8.1",
75276
- "@code-yeongyu/senpi": "2026.10.21-3",
75707
+ "@code-yeongyu/senpi": "2026.10.23-1",
75277
75708
  "@modelcontextprotocol/sdk": "^1.30.0",
75278
75709
  "@oh-my-opencode/agents-md-core": "workspace:*",
75279
75710
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -75327,6 +75758,8 @@ var package_default = {
75327
75758
  "jsonc-parser": "^3.3.1",
75328
75759
  "node-pty": "^1.1.0",
75329
75760
  omowright: "github:code-yeongyu/omowright#f87ef4d63fe7b56fe117dbab246c8ad88dd8a780",
75761
+ "oxc-parser": "0.148.0",
75762
+ oxlint: "1.89.0",
75330
75763
  picocolors: "^1.1.1",
75331
75764
  picomatch: "^4.0.7",
75332
75765
  "posthog-node": "^5.52.4",
@@ -75334,18 +75767,18 @@ var package_default = {
75334
75767
  typescript: "^7.0.2"
75335
75768
  },
75336
75769
  optionalDependencies: {
75337
- "oh-my-opencode-darwin-arm64": "5.1.44",
75338
- "oh-my-opencode-darwin-x64": "5.1.44",
75339
- "oh-my-opencode-darwin-x64-baseline": "5.1.44",
75340
- "oh-my-opencode-linux-arm64": "5.1.44",
75341
- "oh-my-opencode-linux-arm64-musl": "5.1.44",
75342
- "oh-my-opencode-linux-x64": "5.1.44",
75343
- "oh-my-opencode-linux-x64-baseline": "5.1.44",
75344
- "oh-my-opencode-linux-x64-musl": "5.1.44",
75345
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.44",
75346
- "oh-my-opencode-windows-arm64": "5.1.44",
75347
- "oh-my-opencode-windows-x64": "5.1.44",
75348
- "oh-my-opencode-windows-x64-baseline": "5.1.44"
75770
+ "oh-my-opencode-darwin-arm64": "5.1.46",
75771
+ "oh-my-opencode-darwin-x64": "5.1.46",
75772
+ "oh-my-opencode-darwin-x64-baseline": "5.1.46",
75773
+ "oh-my-opencode-linux-arm64": "5.1.46",
75774
+ "oh-my-opencode-linux-arm64-musl": "5.1.46",
75775
+ "oh-my-opencode-linux-x64": "5.1.46",
75776
+ "oh-my-opencode-linux-x64-baseline": "5.1.46",
75777
+ "oh-my-opencode-linux-x64-musl": "5.1.46",
75778
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.46",
75779
+ "oh-my-opencode-windows-arm64": "5.1.46",
75780
+ "oh-my-opencode-windows-x64": "5.1.46",
75781
+ "oh-my-opencode-windows-x64-baseline": "5.1.46"
75349
75782
  },
75350
75783
  overrides: {
75351
75784
  hono: "^4.13.8",
@@ -75752,12 +76185,12 @@ import { mkdirSync as mkdirSync7, readFileSync as readFileSync6 } from "fs";
75752
76185
  init_write_file_atomically();
75753
76186
 
75754
76187
  // packages/omo-opencode/src/features/tui-sidebar/mirror-path.ts
75755
- import { createHash } from "crypto";
76188
+ import { createHash as createHash2 } from "crypto";
75756
76189
  import { realpathSync as realpathSync4 } from "fs";
75757
- import { homedir as homedir3 } from "os";
76190
+ import { homedir as homedir4 } from "os";
75758
76191
  import { join as join11, resolve as resolve4 } from "path";
75759
76192
  function mirrorStorageDir() {
75760
- return join11(process.env.XDG_DATA_HOME ?? join11(homedir3(), ".local", "share"), "opencode", "storage", "oh-my-openagent", MIRROR_DIR_NAME);
76193
+ return join11(process.env.XDG_DATA_HOME ?? join11(homedir4(), ".local", "share"), "opencode", "storage", "oh-my-openagent", MIRROR_DIR_NAME);
75761
76194
  }
75762
76195
  function canonicalProjectDir(projectDir) {
75763
76196
  try {
@@ -75770,7 +76203,7 @@ function canonicalProjectDir(projectDir) {
75770
76203
  }
75771
76204
  }
75772
76205
  function mirrorFilePath(projectDir) {
75773
- const projectHash = createHash("sha1").update(canonicalProjectDir(projectDir)).digest("hex").slice(0, 16);
76206
+ const projectHash = createHash2("sha1").update(canonicalProjectDir(projectDir)).digest("hex").slice(0, 16);
75774
76207
  return join11(mirrorStorageDir(), `${projectHash}.json`);
75775
76208
  }
75776
76209