open-multi-agent-kit 0.90.0 → 0.90.4

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 (307) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +22 -31
  3. package/dist/cli/args.d.ts +0 -2
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +1 -7
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/config.d.ts +3 -6
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +27 -19
  10. package/dist/config.js.map +1 -1
  11. package/dist/core/adaptorch-bridge.d.ts +257 -0
  12. package/dist/core/adaptorch-bridge.d.ts.map +1 -0
  13. package/dist/core/adaptorch-bridge.js +473 -0
  14. package/dist/core/adaptorch-bridge.js.map +1 -0
  15. package/dist/core/agent-session.d.ts +132 -0
  16. package/dist/core/agent-session.d.ts.map +1 -1
  17. package/dist/core/agent-session.js +327 -5
  18. package/dist/core/agent-session.js.map +1 -1
  19. package/dist/core/bang-skill-invocation.d.ts +26 -0
  20. package/dist/core/bang-skill-invocation.d.ts.map +1 -0
  21. package/dist/core/bang-skill-invocation.js +208 -0
  22. package/dist/core/bang-skill-invocation.js.map +1 -0
  23. package/dist/core/compaction/utils.d.ts.map +1 -1
  24. package/dist/core/compaction/utils.js +15 -2
  25. package/dist/core/compaction/utils.js.map +1 -1
  26. package/dist/core/compactor.d.ts.map +1 -1
  27. package/dist/core/compactor.js +0 -3
  28. package/dist/core/compactor.js.map +1 -1
  29. package/dist/core/context-budget-governor-v2.d.ts +2 -1
  30. package/dist/core/context-budget-governor-v2.d.ts.map +1 -1
  31. package/dist/core/context-budget-governor-v2.js +1 -0
  32. package/dist/core/context-budget-governor-v2.js.map +1 -1
  33. package/dist/core/context-budget-headroom-types.d.ts +8 -0
  34. package/dist/core/context-budget-headroom-types.d.ts.map +1 -1
  35. package/dist/core/context-budget-headroom-types.js.map +1 -1
  36. package/dist/core/context-budget-headroom.d.ts +1 -1
  37. package/dist/core/context-budget-headroom.d.ts.map +1 -1
  38. package/dist/core/context-budget-headroom.js +17 -4
  39. package/dist/core/context-budget-headroom.js.map +1 -1
  40. package/dist/core/context-budget-system-prompt.d.ts +2 -1
  41. package/dist/core/context-budget-system-prompt.d.ts.map +1 -1
  42. package/dist/core/context-budget-system-prompt.js +6 -1
  43. package/dist/core/context-budget-system-prompt.js.map +1 -1
  44. package/dist/core/context-budget-v2-cache-hash.d.ts +3 -0
  45. package/dist/core/context-budget-v2-cache-hash.d.ts.map +1 -0
  46. package/dist/core/context-budget-v2-cache-hash.js +16 -0
  47. package/dist/core/context-budget-v2-cache-hash.js.map +1 -0
  48. package/dist/core/context-budget-v2-cache-keys.d.ts +58 -0
  49. package/dist/core/context-budget-v2-cache-keys.d.ts.map +1 -0
  50. package/dist/core/context-budget-v2-cache-keys.js +128 -0
  51. package/dist/core/context-budget-v2-cache-keys.js.map +1 -0
  52. package/dist/core/context-budget-v2-cache-provider.d.ts +23 -0
  53. package/dist/core/context-budget-v2-cache-provider.d.ts.map +1 -0
  54. package/dist/core/context-budget-v2-cache-provider.js +29 -0
  55. package/dist/core/context-budget-v2-cache-provider.js.map +1 -0
  56. package/dist/core/context-budget-v2-cache-telemetry.d.ts +36 -0
  57. package/dist/core/context-budget-v2-cache-telemetry.d.ts.map +1 -0
  58. package/dist/core/context-budget-v2-cache-telemetry.js +64 -0
  59. package/dist/core/context-budget-v2-cache-telemetry.js.map +1 -0
  60. package/dist/core/context-budget-v2-cache-validation.d.ts +36 -0
  61. package/dist/core/context-budget-v2-cache-validation.d.ts.map +1 -0
  62. package/dist/core/context-budget-v2-cache-validation.js +98 -0
  63. package/dist/core/context-budget-v2-cache-validation.js.map +1 -0
  64. package/dist/core/context-budget-v2-cache.d.ts +36 -0
  65. package/dist/core/context-budget-v2-cache.d.ts.map +1 -0
  66. package/dist/core/context-budget-v2-cache.js +50 -0
  67. package/dist/core/context-budget-v2-cache.js.map +1 -0
  68. package/dist/core/context-budget-v2-plan-cache-keys.d.ts +16 -0
  69. package/dist/core/context-budget-v2-plan-cache-keys.d.ts.map +1 -0
  70. package/dist/core/context-budget-v2-plan-cache-keys.js +49 -0
  71. package/dist/core/context-budget-v2-plan-cache-keys.js.map +1 -0
  72. package/dist/core/context-budget-v2-planner.d.ts.map +1 -1
  73. package/dist/core/context-budget-v2-planner.js +55 -2
  74. package/dist/core/context-budget-v2-planner.js.map +1 -1
  75. package/dist/core/context-budget-v2-representation-cache.d.ts +27 -0
  76. package/dist/core/context-budget-v2-representation-cache.d.ts.map +1 -0
  77. package/dist/core/context-budget-v2-representation-cache.js +173 -0
  78. package/dist/core/context-budget-v2-representation-cache.js.map +1 -0
  79. package/dist/core/context-budget-v2-selection.d.ts +2 -0
  80. package/dist/core/context-budget-v2-selection.d.ts.map +1 -1
  81. package/dist/core/context-budget-v2-selection.js +12 -2
  82. package/dist/core/context-budget-v2-selection.js.map +1 -1
  83. package/dist/core/context-budget-v2-types.d.ts +107 -1
  84. package/dist/core/context-budget-v2-types.d.ts.map +1 -1
  85. package/dist/core/context-budget-v2-types.js.map +1 -1
  86. package/dist/core/domain-loadouts.d.ts.map +1 -1
  87. package/dist/core/domain-loadouts.js +1 -1
  88. package/dist/core/domain-loadouts.js.map +1 -1
  89. package/dist/core/headroom.d.ts.map +1 -1
  90. package/dist/core/headroom.js +0 -4
  91. package/dist/core/headroom.js.map +1 -1
  92. package/dist/core/hook-inventory.d.ts.map +1 -1
  93. package/dist/core/hook-inventory.js +6 -0
  94. package/dist/core/hook-inventory.js.map +1 -1
  95. package/dist/core/mcp-computer-use-presets.d.ts +64 -0
  96. package/dist/core/mcp-computer-use-presets.d.ts.map +1 -0
  97. package/dist/core/mcp-computer-use-presets.js +158 -0
  98. package/dist/core/mcp-computer-use-presets.js.map +1 -0
  99. package/dist/core/mcp-public-presets.d.ts +578 -0
  100. package/dist/core/mcp-public-presets.d.ts.map +1 -0
  101. package/dist/core/mcp-public-presets.js +647 -0
  102. package/dist/core/mcp-public-presets.js.map +1 -0
  103. package/dist/core/model-registry.d.ts.map +1 -1
  104. package/dist/core/model-registry.js +1 -0
  105. package/dist/core/model-registry.js.map +1 -1
  106. package/dist/core/pi-package-intake-candidates.d.ts +14 -1
  107. package/dist/core/pi-package-intake-candidates.d.ts.map +1 -1
  108. package/dist/core/pi-package-intake-candidates.js +182 -0
  109. package/dist/core/pi-package-intake-candidates.js.map +1 -1
  110. package/dist/core/pi-package-intake.d.ts +8 -1
  111. package/dist/core/pi-package-intake.d.ts.map +1 -1
  112. package/dist/core/pi-package-intake.js +14 -4
  113. package/dist/core/pi-package-intake.js.map +1 -1
  114. package/dist/core/reasoning-router-bias.d.ts +119 -0
  115. package/dist/core/reasoning-router-bias.d.ts.map +1 -0
  116. package/dist/core/reasoning-router-bias.js +287 -0
  117. package/dist/core/reasoning-router-bias.js.map +1 -0
  118. package/dist/core/reasoning-router-v2.d.ts +94 -0
  119. package/dist/core/reasoning-router-v2.d.ts.map +1 -0
  120. package/dist/core/reasoning-router-v2.js +288 -0
  121. package/dist/core/reasoning-router-v2.js.map +1 -0
  122. package/dist/core/reasoning-router-v3.d.ts +15 -0
  123. package/dist/core/reasoning-router-v3.d.ts.map +1 -0
  124. package/dist/core/reasoning-router-v3.js +193 -0
  125. package/dist/core/reasoning-router-v3.js.map +1 -0
  126. package/dist/core/reasoning-router-v4-weights.d.ts +124 -0
  127. package/dist/core/reasoning-router-v4-weights.d.ts.map +1 -0
  128. package/dist/core/reasoning-router-v4-weights.js +112 -0
  129. package/dist/core/reasoning-router-v4-weights.js.map +1 -0
  130. package/dist/core/reasoning-router-v4.d.ts +163 -0
  131. package/dist/core/reasoning-router-v4.d.ts.map +1 -0
  132. package/dist/core/reasoning-router-v4.js +683 -0
  133. package/dist/core/reasoning-router-v4.js.map +1 -0
  134. package/dist/core/reasoning-router-weights.d.ts +155 -0
  135. package/dist/core/reasoning-router-weights.d.ts.map +1 -0
  136. package/dist/core/reasoning-router-weights.js +204 -0
  137. package/dist/core/reasoning-router-weights.js.map +1 -0
  138. package/dist/core/reasoning-router.d.ts +44 -0
  139. package/dist/core/reasoning-router.d.ts.map +1 -0
  140. package/dist/core/reasoning-router.js +138 -0
  141. package/dist/core/reasoning-router.js.map +1 -0
  142. package/dist/core/reverse-skill.d.ts +2 -0
  143. package/dist/core/reverse-skill.d.ts.map +1 -0
  144. package/dist/core/reverse-skill.js +7 -0
  145. package/dist/core/reverse-skill.js.map +1 -0
  146. package/dist/core/router-feedback-collector.d.ts +101 -0
  147. package/dist/core/router-feedback-collector.d.ts.map +1 -0
  148. package/dist/core/router-feedback-collector.js +239 -0
  149. package/dist/core/router-feedback-collector.js.map +1 -0
  150. package/dist/core/settings-manager.d.ts +31 -3
  151. package/dist/core/settings-manager.d.ts.map +1 -1
  152. package/dist/core/settings-manager.js +16 -0
  153. package/dist/core/settings-manager.js.map +1 -1
  154. package/dist/core/slash-commands.d.ts.map +1 -1
  155. package/dist/core/slash-commands.js +4 -1
  156. package/dist/core/slash-commands.js.map +1 -1
  157. package/dist/core/system-prompt.d.ts +2 -0
  158. package/dist/core/system-prompt.d.ts.map +1 -1
  159. package/dist/core/system-prompt.js +58 -5
  160. package/dist/core/system-prompt.js.map +1 -1
  161. package/dist/index.d.ts +1 -0
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +1 -0
  164. package/dist/index.js.map +1 -1
  165. package/dist/migrations.d.ts +19 -0
  166. package/dist/migrations.d.ts.map +1 -1
  167. package/dist/migrations.js +39 -15
  168. package/dist/migrations.js.map +1 -1
  169. package/dist/modes/interactive/components/control-panel-box.d.ts +3 -3
  170. package/dist/modes/interactive/components/control-panel-box.d.ts.map +1 -1
  171. package/dist/modes/interactive/components/control-panel-box.js +10 -10
  172. package/dist/modes/interactive/components/control-panel-box.js.map +1 -1
  173. package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -1
  174. package/dist/modes/interactive/components/control-panel-gradient-motion.js +2 -1
  175. package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -1
  176. package/dist/modes/interactive/components/control-panel-layout.d.ts +15 -1
  177. package/dist/modes/interactive/components/control-panel-layout.d.ts.map +1 -1
  178. package/dist/modes/interactive/components/control-panel-layout.js +212 -68
  179. package/dist/modes/interactive/components/control-panel-layout.js.map +1 -1
  180. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts +15 -0
  181. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts.map +1 -1
  182. package/dist/modes/interactive/components/control-panel-runtime-status.js +105 -5
  183. package/dist/modes/interactive/components/control-panel-runtime-status.js.map +1 -1
  184. package/dist/modes/interactive/components/control-panel-sparkles.d.ts +27 -0
  185. package/dist/modes/interactive/components/control-panel-sparkles.d.ts.map +1 -0
  186. package/dist/modes/interactive/components/control-panel-sparkles.js +42 -0
  187. package/dist/modes/interactive/components/control-panel-sparkles.js.map +1 -0
  188. package/dist/modes/interactive/components/control-panel.d.ts +8 -0
  189. package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
  190. package/dist/modes/interactive/components/control-panel.js +40 -8
  191. package/dist/modes/interactive/components/control-panel.js.map +1 -1
  192. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  193. package/dist/modes/interactive/components/settings-selector.js +2 -1
  194. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  195. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  196. package/dist/modes/interactive/components/thinking-selector.js +2 -1
  197. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  198. package/dist/modes/interactive/interactive-mode.d.ts +6 -0
  199. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  200. package/dist/modes/interactive/interactive-mode.js +206 -32
  201. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  202. package/dist/modes/interactive/theme/theme.d.ts +1 -1
  203. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  204. package/dist/modes/interactive/theme/theme.js +2 -0
  205. package/dist/modes/interactive/theme/theme.js.map +1 -1
  206. package/docs/loadout-domains/README.md +8 -6
  207. package/docs/loadout-domains/ai-agent-ops.md +3 -2
  208. package/docs/loadout-domains/backend-api.md +3 -2
  209. package/docs/loadout-domains/data-science.md +3 -2
  210. package/docs/loadout-domains/devops-infra.md +2 -1
  211. package/docs/loadout-domains/docs-writing.md +7 -2
  212. package/docs/loadout-domains/frontend-ui.md +42 -11
  213. package/docs/loadout-domains/korean-document.md +83 -0
  214. package/docs/loadout-domains/mobile.md +1 -1
  215. package/docs/loadout-domains/qa-testing.md +4 -2
  216. package/docs/loadout-domains/security-audit.md +2 -1
  217. package/docs/loadout-domains/visual-qa.md +94 -0
  218. package/docs/skills.md +11 -4
  219. package/docs/usage.md +39 -4
  220. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  221. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  222. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  223. package/examples/extensions/gondolin/package-lock.json +2 -2
  224. package/examples/extensions/gondolin/package.json +1 -1
  225. package/examples/extensions/preset.ts +2 -2
  226. package/examples/extensions/sandbox/package-lock.json +2 -2
  227. package/examples/extensions/sandbox/package.json +1 -1
  228. package/examples/extensions/with-deps/package-lock.json +2 -2
  229. package/examples/extensions/with-deps/package.json +1 -1
  230. package/npm-shrinkwrap.json +27 -34
  231. package/package.json +5 -5
  232. package/dist/agents/jailbreak/index.d.ts +0 -7
  233. package/dist/agents/jailbreak/index.d.ts.map +0 -1
  234. package/dist/agents/jailbreak/index.js +0 -7
  235. package/dist/agents/jailbreak/index.js.map +0 -1
  236. package/dist/agents/jailbreak/subagent-f.d.ts +0 -44
  237. package/dist/agents/jailbreak/subagent-f.d.ts.map +0 -1
  238. package/dist/agents/jailbreak/subagent-f.js +0 -60
  239. package/dist/agents/jailbreak/subagent-f.js.map +0 -1
  240. package/dist/cli/jailbreak-args.d.ts +0 -26
  241. package/dist/cli/jailbreak-args.d.ts.map +0 -1
  242. package/dist/cli/jailbreak-args.js +0 -86
  243. package/dist/cli/jailbreak-args.js.map +0 -1
  244. package/dist/commands/jailbreak.d.ts +0 -49
  245. package/dist/commands/jailbreak.d.ts.map +0 -1
  246. package/dist/commands/jailbreak.js +0 -201
  247. package/dist/commands/jailbreak.js.map +0 -1
  248. package/dist/encoding/index.d.ts +0 -6
  249. package/dist/encoding/index.d.ts.map +0 -1
  250. package/dist/encoding/index.js +0 -6
  251. package/dist/encoding/index.js.map +0 -1
  252. package/dist/encoding/l4-encoder.d.ts +0 -96
  253. package/dist/encoding/l4-encoder.d.ts.map +0 -1
  254. package/dist/encoding/l4-encoder.js +0 -474
  255. package/dist/encoding/l4-encoder.js.map +0 -1
  256. package/dist/fuzzing/index.d.ts +0 -6
  257. package/dist/fuzzing/index.d.ts.map +0 -1
  258. package/dist/fuzzing/index.js +0 -6
  259. package/dist/fuzzing/index.js.map +0 -1
  260. package/dist/fuzzing/mutation-engine.d.ts +0 -93
  261. package/dist/fuzzing/mutation-engine.d.ts.map +0 -1
  262. package/dist/fuzzing/mutation-engine.js +0 -244
  263. package/dist/fuzzing/mutation-engine.js.map +0 -1
  264. package/dist/jailbreak-extension.d.ts +0 -48
  265. package/dist/jailbreak-extension.d.ts.map +0 -1
  266. package/dist/jailbreak-extension.js +0 -47
  267. package/dist/jailbreak-extension.js.map +0 -1
  268. package/dist/modules/index.d.ts +0 -8
  269. package/dist/modules/index.d.ts.map +0 -1
  270. package/dist/modules/index.js +0 -7
  271. package/dist/modules/index.js.map +0 -1
  272. package/dist/modules/lrl-bypass.d.ts +0 -40
  273. package/dist/modules/lrl-bypass.d.ts.map +0 -1
  274. package/dist/modules/lrl-bypass.js +0 -84
  275. package/dist/modules/lrl-bypass.js.map +0 -1
  276. package/dist/modules/lrl-deps.d.ts +0 -38
  277. package/dist/modules/lrl-deps.d.ts.map +0 -1
  278. package/dist/modules/lrl-deps.js +0 -128
  279. package/dist/modules/lrl-deps.js.map +0 -1
  280. package/dist/multiturn/easl-chain.d.ts +0 -113
  281. package/dist/multiturn/easl-chain.d.ts.map +0 -1
  282. package/dist/multiturn/easl-chain.js +0 -351
  283. package/dist/multiturn/easl-chain.js.map +0 -1
  284. package/dist/multiturn/index.d.ts +0 -6
  285. package/dist/multiturn/index.d.ts.map +0 -1
  286. package/dist/multiturn/index.js +0 -6
  287. package/dist/multiturn/index.js.map +0 -1
  288. package/dist/routing/fallback-router.d.ts +0 -123
  289. package/dist/routing/fallback-router.d.ts.map +0 -1
  290. package/dist/routing/fallback-router.js +0 -355
  291. package/dist/routing/fallback-router.js.map +0 -1
  292. package/dist/routing/index.d.ts +0 -6
  293. package/dist/routing/index.d.ts.map +0 -1
  294. package/dist/routing/index.js +0 -6
  295. package/dist/routing/index.js.map +0 -1
  296. package/dist/types/jailbreak.d.ts +0 -246
  297. package/dist/types/jailbreak.d.ts.map +0 -1
  298. package/dist/types/jailbreak.js +0 -8
  299. package/dist/types/jailbreak.js.map +0 -1
  300. package/dist/utils/jailbreak/common.d.ts +0 -63
  301. package/dist/utils/jailbreak/common.d.ts.map +0 -1
  302. package/dist/utils/jailbreak/common.js +0 -130
  303. package/dist/utils/jailbreak/common.js.map +0 -1
  304. package/dist/utils/jailbreak/index.d.ts +0 -7
  305. package/dist/utils/jailbreak/index.d.ts.map +0 -1
  306. package/dist/utils/jailbreak/index.js +0 -7
  307. package/dist/utils/jailbreak/index.js.map +0 -1
@@ -22,17 +22,24 @@ Prioritize visual craft, correct component composition, and accessibility.
22
22
 
23
23
  SEQUENCE:
24
24
  1. Read the target component(s)/page(s) in full before editing. Do not edit blind from search snippets.
25
- 2. Identify the design system in use (Tailwind v4 / shadcn/ui / CSS modules / vanilla). Match it exactly; never introduce a second system.
26
- 3. For visual work: drive iteration with the chrome-devtools or playwright MCP (navigate, screenshot, diff) — do not claim "looks good" without a captured frame.
27
- 4. Accessibility: run the fixing-accessibility + contrast-checker + use-of-color skills. Every interactive element needs a reachable name, visible focus, and AA contrast.
28
- 5. Motion: prefer the transitions-dev / animate / 12-principles-of-animation skills; gate heavy effects behind fix-motion-performance so animation never blocks the main thread.
29
- 6. Prefer composition over boolean-prop sprawl (vercel-composition-patterns). Keep components small; extract when a prompt would exceed ~150 lines of spec.
30
- 7. Before claiming done: typecheck-after-edit hook must pass, plus the web-quality-audit skill (perf/a11y/SEO/best-practices).
31
-
32
- HARD RULES: no inline styles when a token/utility exists; oklch tokens for color; mobile-first responsive; real content over placeholders; pixel-match the target first, customize later.
25
+ 2. Identify the design system in use (Tailwind v4 / shadcn/ui / CSS modules / vanilla). Match it exactly; never introduce a second system. Use context7 for current framework/library docs before changing unfamiliar APIs.
26
+ 3. Website clone / visual QA work follows the ai-website-cloner-template gate contract:
27
+ Reconnaissance -> Design-Token Foundation -> Component Specs -> Asset Gate -> Build Gate -> QA Gate.
28
+ Reconnaissance uses Chrome/Playwright: chrome-devtools first for live inspection, playwright when deterministic multi-viewport screenshots or scripted interaction sweeps are needed. Capture screenshots at responsive sizes 1440/768/390, getComputedStyle design-token samples, assets, page topology, hover/click/scroll/time-driven behavior, and responsive breakpoints.
29
+ 4. Design-Token Foundation is sequential: fonts, oklch/shadcn-compatible tokens, global CSS, page-level motion primitives, icon extraction, downloaded assets, and typed content structures. Do not dispatch component builders until the foundation exists.
30
+ 5. Component Specs are contracts: component-spec-before-build requires a spec artifact before implementation. Specs include exact getComputedStyle values, DOM structure, interaction model, all states, assets, verbatim content, and responsive behavior. Split anything whose builder prompt would exceed ~150 lines.
31
+ 6. Asset Gate: real extractable assets are downloaded, named, and referenced before build; no mock assets when source assets are available.
32
+ 7. Build Gate: one builder per section or sub-component receives the full spec inline plus screenshot path, target file, imports, breakpoint behavior, and a typecheck/build requirement. Assembly wires sections into page-level layout and behaviors.
33
+ 8. QA Gate: visual-diff-after-edit requires side-by-side visual diff artifacts against the reference at 1440/768/390. Test interactions with Chrome/Playwright; run web-quality-audit for perf/a11y/SEO/best-practices and typecheck-after-edit before done.
34
+ 9. Evidence must include screenshots, getComputedStyle captures, responsive sizes 1440/768/390, side-by-side visual diff artifacts, Chrome/Playwright command/tool results, changed files, and known discrepancies.
35
+ 10. Accessibility: run the fixing-accessibility + contrast-checker + use-of-color skills. Every interactive element needs a reachable name, visible focus, and AA contrast.
36
+ 11. Motion: prefer the transitions-dev / animate / 12-principles-of-animation skills; gate heavy effects behind fix-motion-performance so animation never blocks the main thread.
37
+ 12. Prefer composition over boolean-prop sprawl (vercel-composition-patterns). Keep components small and spec-driven.
38
+
39
+ HARD RULES: no inline styles when a token/utility exists; oklch tokens for color; mobile-first responsive; real content over placeholders; pixel-match the target first, customize later; no visual claim without bounded screenshot/diff evidence.
33
40
  ```
34
41
 
35
- ## Curated skills (48)
42
+ ## Curated skills (54)
36
43
 
37
44
  - `frontend-design`
38
45
  - `frontend-ui-engineering`
@@ -73,8 +80,14 @@ HARD RULES: no inline styles when a token/utility exists; oklch tokens for color
73
80
  - `remotion-best-practices`
74
81
  - `web-quality-audit`
75
82
  - `audit-and-fix`
83
+ - `browser-qa`
84
+ - `webapp-testing`
85
+ - `e2e-testing`
86
+ - `playwright-cli`
76
87
  - `image-to-code`
77
88
  - `visual-ralph`
89
+ - `visual-regression`
90
+ - `visual-diff`
78
91
  - `gstack-design-review`
79
92
  - `gstack-design-html`
80
93
  - `gstack-design-shotgun`
@@ -90,19 +103,24 @@ HARD RULES: no inline styles when a token/utility exists; oklch tokens for color
90
103
  - `filesystem`
91
104
  - `context7`
92
105
 
93
- ## Curated hooks (3)
106
+ ## Curated hooks (6)
94
107
 
95
108
  - `typecheck-after-edit`
96
109
  - `pre-shell-guard`
97
110
  - `protect-secrets`
111
+ - `component-spec-before-build`
112
+ - `visual-diff-after-edit`
113
+ - `bounded-evidence`
98
114
 
99
- ## Routing triggers (26)
115
+ ## Routing triggers (41)
100
116
 
101
117
  | kind | pattern | weight |
102
118
  |---|---|---|
103
119
  | keyword | `ui` | 3 |
104
120
  | keyword | `frontend` | 5 |
105
121
  | keyword | `component` | 3 |
122
+ | keyword | `컴포넌트` | 4 |
123
+ | keyword | `디자인` | 4 |
106
124
  | keyword | `css` | 4 |
107
125
  | keyword | `tailwind` | 5 |
108
126
  | keyword | `responsive` | 4 |
@@ -118,8 +136,21 @@ HARD RULES: no inline styles when a token/utility exists; oklch tokens for color
118
136
  | keyword | `modal` | 2 |
119
137
  | keyword | `shadcn` | 5 |
120
138
  | keyword | `clone` | 3 |
139
+ | keyword | `website clone` | 7 |
140
+ | keyword | `clone website` | 7 |
141
+ | keyword | `rebuild website` | 6 |
142
+ | keyword | `recreate website` | 6 |
143
+ | keyword | `pixel-perfect clone` | 8 |
144
+ | keyword | `visual diff` | 6 |
145
+ | keyword | `design tokens` | 5 |
146
+ | keyword | `component spec` | 5 |
147
+ | keyword | `getcomputedstyle` | 5 |
148
+ | keyword | `reconnaissance` | 5 |
149
+ | keyword | `클론` | 5 |
150
+ | keyword | `스크린샷` | 4 |
121
151
  | regex | `\b(react|vue|svelte|next\.?js|nuxt)\b` | 4 |
122
152
  | regex | `\b(tailwind|css|styled|emotion|radix)\b` | 4 |
153
+ | regex | `\b(visual qa|responsive sweep|interaction sweep|computed styles?)\b` | 6 |
123
154
  | extension | `.vue` | 6 |
124
155
  | extension | `.tsx` | 4 |
125
156
  | extension | `.jsx` | 4 |
@@ -0,0 +1,83 @@
1
+ # Korean Document (HWP/HWPX) (`korean-document`)
2
+
3
+ > Inherited domain capability document. Auto-generated from `src/core/domain-loadouts.ts` — do not edit by hand.
4
+
5
+
6
+ ## Identity
7
+
8
+ | field | value |
9
+ |---|---|
10
+ | id | `korean-document` |
11
+ | authority | `write-scoped` |
12
+ | tools | read, grep, find, ls, edit, write, bash |
13
+ | command mode | `scoped-shell` |
14
+
15
+ ## Routing prompt
16
+
17
+ > Prepended to the lane task prompt when the router selects this domain.
18
+
19
+ ```text
20
+ DOMAIN: Korean Document (HWP/HWPX). You are operating in a document extraction/rendering/export lane for Korean Hangul documents.
21
+ Use OMK skills, MCP, and hooks to orchestrate rhwp-style capability without vendoring Rust, WASM, or CLI binaries into the repo.
22
+
23
+ SEQUENCE:
24
+ 1. Detection first: identify HWP/HWPX by extension plus container sniffing. HWP is normally OLE Compound File Binary; HWPX is normally ZIP/XML package content. Never trust extension alone. Record filename, byte size, hash, detected format, and whether the file appears encrypted/protected.
25
+ 2. Load current docs with context7 before coding against @rhwp/core, rhwp APIs, pdf rendering packages, or browser automation APIs. Use project-installed tools when present; do not add or vendor rhwp Rust/WASM/CLI artifacts unless the user explicitly requests dependency work.
26
+ 3. Extraction path: produce bounded text and markdown outputs, structured metadata, section/page outline, tables, images/assets references, equations/charts notes, and warnings for unsupported controls. Keep private document content bounded: short excerpts, counts, hashes, and output paths rather than dumping whole documents.
27
+ 4. Render path: use rhwp-oriented skills for layout/page fidelity. Use chrome-devtools/playwright only to render or capture web/WASM/canvas/SVG views that already exist in the project. Capture SVG/page snapshots and PNG evidence with viewport/page labels.
28
+ 5. Export path: support text, markdown, svg, png, and pdf outputs. Prefer native/project export APIs when available; otherwise assemble via browser-rendered SVG/canvas/PDF flows. Always write artifacts to an explicit output directory and report a manifest.
29
+ 6. Metadata path: collect page count, section count, dimensions, fonts, embedded images, tables, headers/footers, footnotes/endnotes, equations/charts, fields, protection/encryption status, and conversion warnings.
30
+ 7. Evidence: bounded-evidence and document-artifact-guard require an artifact manifest containing input hash, detected format, commands/tools used, output paths, output byte sizes, page/sample counts, warnings, and at most small redacted excerpts. stop-verify must pass before done.
31
+
32
+ HARD RULES: no vendored rhwp binaries; no fake conversion claims; no full private document dump in chat; output artifacts must be traceable; every render/export claim needs bounded evidence.
33
+ ```
34
+
35
+ ## Curated skills (10)
36
+
37
+ - `rhwp`
38
+ - `rhwp-edit`
39
+ - `rhwp-advanced`
40
+ - `hwp`
41
+ - `kordoc`
42
+ - `document-conversion`
43
+ - `document-extraction`
44
+ - `pdf`
45
+ - `react-pdf`
46
+ - `verification-loop`
47
+
48
+ ## Curated MCP servers (4)
49
+
50
+ - `filesystem`
51
+ - `context7`
52
+ - `chrome-devtools`
53
+ - `playwright`
54
+
55
+ ## Curated hooks (5)
56
+
57
+ - `pre-shell-guard`
58
+ - `protect-secrets`
59
+ - `bounded-evidence`
60
+ - `document-artifact-guard`
61
+ - `stop-verify`
62
+
63
+ ## Routing triggers (17)
64
+
65
+ | kind | pattern | weight |
66
+ |---|---|---|
67
+ | keyword | `hwp` | 7 |
68
+ | keyword | `hwpx` | 8 |
69
+ | keyword | `rhwp` | 8 |
70
+ | keyword | `hancom` | 6 |
71
+ | keyword | `hangul document` | 6 |
72
+ | keyword | `한글 문서` | 7 |
73
+ | keyword | `아래아한글` | 7 |
74
+ | keyword | `한컴` | 6 |
75
+ | keyword | `hwp to markdown` | 8 |
76
+ | keyword | `hwp to pdf` | 8 |
77
+ | keyword | `hwpx to pdf` | 8 |
78
+ | keyword | `svg export` | 3 |
79
+ | keyword | `document metadata` | 4 |
80
+ | regex | `\b(hwp|hwpx|rhwp|hancom)\b` | 7 |
81
+ | regex | `\b(extract|render|export|metadata)\b.*\b(hwp|hwpx)\b` | 6 |
82
+ | extension | `.hwp` | 9 |
83
+ | extension | `.hwpx` | 9 |
@@ -72,7 +72,7 @@ HARD RULES: no main-thread blocking; respect safe areas / insets / notches; life
72
72
  | keyword | `swift` | 6 |
73
73
  | keyword | `swiftui` | 7 |
74
74
  | keyword | `kotlin` | 6 |
75
- | keyword | `compose` | 5 |
75
+ | regex | `\b(jetpack compose|compose multiplatform|android compose)\b` | 7 |
76
76
  | keyword | `kmp` | 6 |
77
77
  | keyword | `react native` | 6 |
78
78
  | keyword | `expo` | 5 |
@@ -62,7 +62,7 @@ HARD RULES: tests-only command mode (no arbitrary shell); every fix is re-verifi
62
62
  - `pre-shell-guard`
63
63
  - `protect-secrets`
64
64
 
65
- ## Routing triggers (19)
65
+ ## Routing triggers (21)
66
66
 
67
67
  | kind | pattern | weight |
68
68
  |---|---|---|
@@ -70,6 +70,8 @@ HARD RULES: tests-only command mode (no arbitrary shell); every fix is re-verifi
70
70
  | keyword | `testing` | 5 |
71
71
  | keyword | `qa` | 6 |
72
72
  | keyword | `bug` | 4 |
73
+ | keyword | `버그` | 4 |
74
+ | keyword | `테스트` | 5 |
73
75
  | keyword | `regression` | 6 |
74
76
  | keyword | `e2e` | 7 |
75
77
  | keyword | `playwright` | 7 |
@@ -80,7 +82,7 @@ HARD RULES: tests-only command mode (no arbitrary shell); every fix is re-verifi
80
82
  | keyword | `fix test` | 5 |
81
83
  | keyword | `failing` | 4 |
82
84
  | keyword | `flaky` | 6 |
83
- | regex | `\b(unit test|integration test|snapshot|mock|fixture)\b` | 5 |
85
+ | regex | `\b(unit tests?|integration tests?|snapshot|mock|fixture)\b` | 6 |
84
86
  | path | `test/` | 5 |
85
87
  | path | `tests/` | 5 |
86
88
  | path | `.test.` | 5 |
@@ -71,7 +71,7 @@ HARD RULES: read-only by default; every finding needs file:line + exploit sketch
71
71
  - `stop-verify`
72
72
  - `subagent-stop-audit`
73
73
 
74
- ## Routing triggers (20)
74
+ ## Routing triggers (21)
75
75
 
76
76
  | kind | pattern | weight |
77
77
  |---|---|---|
@@ -88,6 +88,7 @@ HARD RULES: read-only by default; every finding needs file:line + exploit sketch
88
88
  | keyword | `leak` | 5 |
89
89
  | keyword | `crypto` | 4 |
90
90
  | keyword | `hardening` | 5 |
91
+ | keyword | `threat model` | 5 |
91
92
  | keyword | `threat` | 5 |
92
93
  | keyword | `penetration` | 6 |
93
94
  | keyword | `malware` | 6 |
@@ -0,0 +1,94 @@
1
+ # Visual QA & Website Cloning (`visual-qa`)
2
+
3
+ > Inherited domain capability document. Auto-generated from `src/core/domain-loadouts.ts` — do not edit by hand.
4
+
5
+
6
+ ## Identity
7
+
8
+ | field | value |
9
+ |---|---|
10
+ | id | `visual-qa` |
11
+ | authority | `write-scoped` |
12
+ | tools | read, grep, find, ls, edit, write, bash |
13
+ | command mode | `scoped-shell` |
14
+
15
+ ## Routing prompt
16
+
17
+ > Prepended to the lane task prompt when the router selects this domain.
18
+
19
+ ```text
20
+ DOMAIN: Visual QA & Website Cloning. You are operating in a browser-driven UI reconstruction and verification lane.
21
+ This domain carries the ai-website-cloner-template workflow inside OMK loadouts without copying its project scaffold.
22
+ Pipeline: Reconnaissance -> Design-Token Foundation -> Component Specs -> Asset Gate -> Build Gate -> QA Gate.
23
+
24
+ SEQUENCE:
25
+ 1. Pre-flight: browser automation is required. Prefer Chrome/Playwright: chrome-devtools for live inspection, playwright for deterministic screenshot, viewport, and interaction replay. Use context7 for current framework and Playwright docs before coding against unfamiliar APIs.
26
+ 2. Reconnaissance: capture full-page screenshots at responsive sizes 1440/768/390, getComputedStyle color/type/spacing tokens, assets, page topology, z-index/sticky overlays, scroll/click/hover/time behavior, and responsive breakpoints. Save bounded artifacts and behavior notes.
27
+ 3. Design-Token Foundation: update only the target project's existing frontend foundation: fonts, globals, tokens, icon extraction, downloaded assets, typed content structures, and page-level motion primitives. Foundation is sequential.
28
+ 4. Component Specs: component-spec-before-build requires one spec per section/sub-component before implementation. Specs include exact getComputedStyle values, DOM structure, all states, interaction model, assets, verbatim text, screenshots, and responsive behavior. Split specs that would create a builder prompt over ~150 lines.
29
+ 5. Asset Gate: real extractable assets are downloaded, named, and referenced before build; no mock assets when source assets are available.
30
+ 6. Build Gate: dispatch or implement one section/sub-component at a time from its spec; builders receive the full spec inline, not a pointer. Require typecheck-after-edit and the target project's build/smoke command before merging/assembling.
31
+ 7. QA Gate: wire sections into page layout, then visual-diff-after-edit requires side-by-side visual diff artifacts against the reference at 1440/768/390. Re-test scroll, hover, click, tab, carousel, modal, and animation behavior with Chrome/Playwright.
32
+ 8. Evidence: bounded-evidence records screenshots, getComputedStyle captures, responsive sizes 1440/768/390, side-by-side visual diff paths, Chrome/Playwright command/tool results, changed files, known discrepancies, and any remaining fidelity gaps.
33
+
34
+ HARD RULES: no guessed CSS values; no builder without a spec artifact; no mock assets when real assets are extractable; no completion claim without visual diff evidence; general Playwright test failures without visual/reconstruction intent stay in qa-testing.
35
+ ```
36
+
37
+ ## Curated skills (17)
38
+
39
+ - `clone-website`
40
+ - `browser-qa`
41
+ - `webapp-testing`
42
+ - `e2e-testing`
43
+ - `playwright-cli`
44
+ - `web-quality-audit`
45
+ - `audit-and-fix`
46
+ - `visual-regression`
47
+ - `visual-diff`
48
+ - `visual-ralph`
49
+ - `image-to-code`
50
+ - `frontend-ui-engineering`
51
+ - `frontend-design`
52
+ - `fixing-accessibility`
53
+ - `contrast-checker`
54
+ - `use-of-color`
55
+ - `fix-motion-performance`
56
+
57
+ ## Curated MCP servers (4)
58
+
59
+ - `chrome-devtools`
60
+ - `playwright`
61
+ - `filesystem`
62
+ - `context7`
63
+
64
+ ## Curated hooks (7)
65
+
66
+ - `component-spec-before-build`
67
+ - `visual-diff-after-edit`
68
+ - `typecheck-after-edit`
69
+ - `pre-shell-guard`
70
+ - `protect-secrets`
71
+ - `bounded-evidence`
72
+ - `stop-verify`
73
+
74
+ ## Routing triggers (17)
75
+
76
+ | kind | pattern | weight |
77
+ |---|---|---|
78
+ | keyword | `visual qa` | 8 |
79
+ | keyword | `visual diff` | 8 |
80
+ | keyword | `screenshot diff` | 8 |
81
+ | keyword | `website clone` | 8 |
82
+ | keyword | `clone website` | 8 |
83
+ | keyword | `pixel-perfect clone` | 9 |
84
+ | keyword | `responsive sweep` | 7 |
85
+ | keyword | `interaction sweep` | 7 |
86
+ | keyword | `component spec` | 7 |
87
+ | keyword | `getcomputedstyle` | 7 |
88
+ | keyword | `design tokens` | 6 |
89
+ | keyword | `assembly qa` | 6 |
90
+ | keyword | `reconnaissance` | 6 |
91
+ | keyword | `클론` | 6 |
92
+ | keyword | `스크린샷` | 5 |
93
+ | regex | `\b(pixel[ -]?perfect|visual regression|viewport sweep)\b` | 7 |
94
+ | regex | `\b(recreate|rebuild|reverse-engineer)\b.*\b(website|page|site)\b` | 7 |
package/docs/skills.md CHANGED
@@ -65,21 +65,28 @@ For project-level Claude Code skills, add to `.omk/settings.json`:
65
65
 
66
66
  1. At startup, omk scans skill locations and extracts names and descriptions
67
67
  2. The system prompt includes available skills in XML format per the [specification](https://agentskills.io/integrate-skills)
68
- 3. When a task matches, the agent uses `read` to load the full SKILL.md (models don't always do this; use prompting or `/skill:name` to force it)
68
+ 3. When a task matches, the agent uses `read` to load the full SKILL.md (models don't always do this; use prompting, `/skill:name`, or `!skill:name` to force it)
69
69
  4. The agent follows the instructions, using relative paths to reference scripts and assets
70
70
 
71
71
  This is progressive disclosure: only descriptions are always in context, full instructions load on-demand.
72
72
 
73
73
  ## Skill Commands
74
74
 
75
- Skills register as `/skill:name` commands:
75
+ Skills register as `/skill:name` commands and interactive `!` launcher entries:
76
76
 
77
77
  ```bash
78
78
  /skill:brave-search # Load and execute the skill
79
79
  /skill:pdf-tools extract # Load skill with arguments
80
+ !skill:brave-search # Load and execute from the bang launcher
81
+ !brave-search query # Shorthand when brave-search is a known skill
82
+ !omk frontend build a navbar # Route through OMK role hubs, selecting omk-frontend
80
83
  ```
81
84
 
82
- Arguments after the command are appended to the skill content as `User: <args>`.
85
+ Arguments after the command are appended after the skill content for the current turn.
86
+
87
+ `!omk <role-or-request>` is a deterministic OMK hub router. Exact role aliases such as `frontend`, `backend`, `loop`, and `plan` select `omk-frontend`, `omk-backend-data`, `omk-loop`, and `omk-plan`; free-form prompts are scored against the same hub vocabulary and fall back to `omk-skills` when no role is clear.
88
+
89
+ In interactive mode, type `!` to open skill autocomplete. Selecting a skill inserts the explicit `!skill:name ` form, and `!omk` is offered when the OMK skill hub index is available. Bash remains available as `! command`, and `!! command` runs bash without sending output to the model. If `!token` is not a known skill, it falls back to bash; use `! command` when a command name might collide with a skill. `!omk` is reserved for OMK hub routing and never falls through to bash.
83
90
 
84
91
  Toggle skill commands via `/settings` in interactive mode or in `settings.json`:
85
92
 
@@ -146,7 +153,7 @@ Per the [Agent Skills specification](https://agentskills.io/specification#frontm
146
153
  | `compatibility` | No | Max 500 chars. Environment requirements. |
147
154
  | `metadata` | No | Arbitrary key-value mapping. |
148
155
  | `allowed-tools` | No | Space-delimited list of pre-approved tools (experimental). |
149
- | `disable-model-invocation` | No | When `true`, skill is hidden from system prompt. Users must use `/skill:name`. |
156
+ | `disable-model-invocation` | No | When `true`, skill is hidden from system prompt. Users must use `/skill:name` or `!skill:name`. |
150
157
 
151
158
  ### Name Rules
152
159
 
package/docs/usage.md CHANGED
@@ -23,21 +23,22 @@ The editor can be replaced temporarily by built-in UI such as `/settings` or by
23
23
  | Path completion | Press Tab to complete paths |
24
24
  | Multi-line input | Shift+Enter, or Ctrl+Enter on Windows Terminal |
25
25
  | Images | Paste with Ctrl+V, Alt+V on Windows, or drag into the terminal |
26
- | Shell command | `!command` runs and sends output to the model |
27
- | Hidden shell command | `!!command` runs without sending output to the model |
26
+ | Skill/bash launcher | `!` opens skill completion; `!skill:name prompt` invokes a skill; `!omk <role-or-request>` routes through OMK role hubs |
27
+ | Shell command | `! command` runs and sends output to the model |
28
+ | Hidden shell command | `!! command` runs without sending output to the model |
28
29
  | External editor | Ctrl+G opens `$VISUAL` or `$EDITOR` |
29
30
 
30
31
  See [Keybindings](keybindings.md) for all shortcuts and customization.
31
32
 
32
33
  ## Slash Commands
33
34
 
34
- Type `/` in the editor to open command completion. Extensions can register custom commands, skills are available as `/skill:name`, and prompt templates expand via `/templatename`.
35
+ Type `/` in the editor to open command completion. Extensions can register custom commands, skills are available as `/skill:name`, `!skill:name`, or `!name` for known skills, `!omk <role-or-request>` selects an OMK role hub such as frontend, backend, loop, or plan, and prompt templates expand via `/templatename`.
35
36
 
36
37
  | Command | Description |
37
38
  |---------|-------------|
38
39
  | `/login`, `/logout` | Manage OAuth or API-key credentials |
39
40
  | `/model` | Switch models, then choose thinking level |
40
- | `/think` | Choose thinking level |
41
+ | `/think` | Choose thinking level, or `auto`/`auto-v2`/`auto-v3`/`auto-v4` to route per task |
41
42
  | `/scoped-models` | Enable/disable models for Ctrl+P cycling |
42
43
  | `/settings` | Thinking level, theme, message delivery, transport |
43
44
  | `/resume` | Pick from previous sessions |
@@ -56,6 +57,40 @@ Type `/` in the editor to open command completion. Extensions can register custo
56
57
  | `/changelog` | Display version history |
57
58
  | `/quit` | Quit omk |
58
59
 
60
+ ## Automatic Thinking Level Routing
61
+
62
+ `/think <level>` sets the thinking level manually. Manual levels always win: choosing a concrete level leaves auto routing, so no auto router runs.
63
+
64
+ `/think auto` remains the historical v1 local classifier and rule table (no network calls). `/think auto-v2`, `/think auto v2`, or `/think auto:v2` enables the calibrated v2 weighted router. `/think auto-v3`, `/think auto v3`, or `/think auto:v3` enables the contextual v3 router. `/think auto-v4`, `/think auto v4`, or `/think auto:v4` enables the confidence-bearing v4 router. Use `/think auto-v1`, `/think auto v1`, or `/think auto:v1` to return explicitly to v1.
65
+
66
+ The active auto routers classify each prompt into a task class (trivial, simple edit, code generation, debug, refactor, review, plan) and map it to a recommended level, from `minimal` for trivial prompts up to `xhigh` for planning work.
67
+
68
+ The routing core is deterministic and local. It looks only at bounded turn signals such as:
69
+
70
+ - prompt length
71
+ - presence of code fences or diff markers
72
+ - keyword families; v2 separates strong signals from ambiguous weak signals such as `fix`
73
+ - leading intent, localized edit objects, diagnostic evidence, review scope, plan briefs, refactor cues, and implementation objects, when v3 or v4 is selected
74
+ - bounded negation of those whole-prompt matches and short-range compound-intent detection across a leading conjunction, when v4 is selected
75
+ - recent auto-router task history in the session, when v2 is selected
76
+ - context pressure buckets, when v2 is selected
77
+ - the subagent lane type, when one is set
78
+
79
+ v4 additionally reports a confidence band (`high`, `medium`, `low`), the score margin between the top two task classes, and a fallback reason on every turn, none of which carry prompt text. When confidence is low or no weighted signal decided the class, v4 raises the resolved level by one step above what the same task class would otherwise resolve to; confidence never lowers it. v4 is checked against a gold-set evaluation harness with fixed train/dev/holdout splits and accuracy, macro-F1, severe-under-allocation, and class-flip/McNemar checks, which confirmed v4 classifies identically to v3 across the full gold set, including the rows held out from tuning.
80
+
81
+ Precedence:
82
+
83
+ - Manual `/think <level>` always wins.
84
+ - The router only resolves levels while `auto` mode is active.
85
+ - Auto-resolved levels apply per turn only and never overwrite the persisted default thinking level in settings.
86
+ - v1 remains the default auto router; v2, v3, and v4 must be selected explicitly for the current session.
87
+
88
+ Resolved levels are clamped to the model's capabilities: models without `xhigh`/`max` are capped at their highest supported level, and models without reasoning support bypass the router entirely.
89
+
90
+ The v4 learning path is available only through the global `reasoningRouterLearning` setting and is off by default. When `reasoningRouterLearning.enabled` is `true`, auto-v4 loads one validated bias snapshot for the session, applies a bounded `-2..2` ladder-step bias, and appends a privacy-safe feedback record containing only bounded enums, booleans, and buckets. Project-local settings cannot enable or redirect this feature, and the ledger never stores raw prompts, file paths, diffs, session identifiers, model/provider payloads, tool output, or hook output.
91
+
92
+ The Adaptorch advisory bridge module still ships as default-off groundwork only. It has no settings key, command, transport, or session call site yet, so it does not affect `/think auto-v4` until a future transport and security review explicitly wire it.
93
+
59
94
  ## Message Queue
60
95
 
61
96
  You can submit messages while the agent is still working:
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-custom-provider",
3
- "version": "0.90.0",
3
+ "version": "0.90.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-custom-provider",
9
- "version": "0.90.0",
9
+ "version": "0.90.4",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sdk": "^0.52.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-custom-provider-anthropic",
3
3
  "private": true,
4
- "version": "0.90.0",
4
+ "version": "0.90.4",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-custom-provider-gitlab-duo",
3
3
  "private": true,
4
- "version": "0.90.0",
4
+ "version": "0.90.4",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-gondolin",
3
- "version": "0.90.0",
3
+ "version": "0.90.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-gondolin",
9
- "version": "0.90.0",
9
+ "version": "0.90.4",
10
10
  "dependencies": {
11
11
  "@earendil-works/gondolin": "0.12.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-gondolin",
3
3
  "private": true,
4
- "version": "0.90.0",
4
+ "version": "0.90.4",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -52,7 +52,7 @@ interface Preset {
52
52
  /** Model ID (e.g., "claude-sonnet-4-5") */
53
53
  model?: string;
54
54
  /** Thinking level */
55
- thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
55
+ thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
56
56
  /** Tools to enable (replaces default set) */
57
57
  tools?: string[];
58
58
  /** Instructions to append to system prompt */
@@ -100,7 +100,7 @@ function loadPresets(cwd: string): PresetsConfig {
100
100
 
101
101
  interface OriginalState {
102
102
  model: Model<Api> | undefined;
103
- thinkingLevel: "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
103
+ thinkingLevel: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
104
104
  tools: string[];
105
105
  }
106
106
 
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-sandbox",
3
- "version": "0.90.0",
3
+ "version": "0.90.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-sandbox",
9
- "version": "0.90.0",
9
+ "version": "0.90.4",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sandbox-runtime": "0.0.26"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-sandbox",
3
3
  "private": true,
4
- "version": "0.90.0",
4
+ "version": "0.90.4",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-with-deps",
3
- "version": "0.90.0",
3
+ "version": "0.90.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-with-deps",
9
- "version": "0.90.0",
9
+ "version": "0.90.4",
10
10
  "dependencies": {
11
11
  "ms": "^2.1.3"
12
12
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-with-deps",
3
3
  "private": true,
4
- "version": "0.90.0",
4
+ "version": "0.90.4",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",