open-multi-agent-kit 0.78.5 → 0.78.7

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 (176) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +64 -0
  3. package/MATURITY.md +2 -2
  4. package/README.md +20 -5
  5. package/dist/brand/night-city.theme.json +80 -0
  6. package/dist/brand/palette.d.ts +73 -177
  7. package/dist/brand/palette.js +115 -39
  8. package/dist/brand/rust-forge.theme.json +216 -0
  9. package/dist/brand/theme-compiled.d.ts +61 -0
  10. package/dist/brand/theme-compiled.js +241 -0
  11. package/dist/brand/theme.js +50 -37
  12. package/dist/cli/release-promotion-gate.d.ts +8 -1
  13. package/dist/cli/release-promotion-gate.js +23 -11
  14. package/dist/cli/root.d.ts +1 -0
  15. package/dist/cli/root.js +2 -1
  16. package/dist/cli/theme/index.d.ts +11 -2
  17. package/dist/cli/theme/index.js +6 -1
  18. package/dist/cli/theme/oklab-quantize.d.ts +29 -0
  19. package/dist/cli/theme/oklab-quantize.js +105 -0
  20. package/dist/cli/theme/render-table.d.ts +59 -0
  21. package/dist/cli/theme/render-table.js +112 -0
  22. package/dist/cli/theme/status-frame.d.ts +10 -0
  23. package/dist/cli/theme/status-frame.js +22 -0
  24. package/dist/cli/theme/terminal-capability.d.ts +6 -1
  25. package/dist/cli/theme/terminal-capability.js +20 -4
  26. package/dist/cli/theme/theme-doc.d.ts +22 -0
  27. package/dist/cli/theme/theme-doc.js +97 -0
  28. package/dist/cli/theme/theme-registry.js +39 -18
  29. package/dist/cli/theme/tier-explain.d.ts +21 -0
  30. package/dist/cli/theme/tier-explain.js +60 -0
  31. package/dist/cli/ui/green-rain-renderer.js +3 -2
  32. package/dist/cli/ui/neon-grid-renderer.js +4 -3
  33. package/dist/cli/ui/rust-forge-renderer.js +17 -3
  34. package/dist/cli/ui/system24-renderer.d.ts +18 -1
  35. package/dist/cli/ui/system24-renderer.js +39 -16
  36. package/dist/cli/v2/chat-repl.js +3 -1
  37. package/dist/cli/v2/cli-v2-skeleton.d.ts +6 -0
  38. package/dist/cli/v2/cli-v2-skeleton.js +121 -9
  39. package/dist/cli/v2/interactive-prompt.d.ts +1 -0
  40. package/dist/cli/v2/interactive-prompt.js +6 -2
  41. package/dist/commands/chat/core.js +2 -2
  42. package/dist/commands/chat/runtime.js +2 -0
  43. package/dist/commands/chat/utils.js +12 -4
  44. package/dist/commands/cockpit/render.js +102 -64
  45. package/dist/commands/cockpit/utils.d.ts +2 -0
  46. package/dist/commands/design.js +18 -16
  47. package/dist/commands/doctor/checks.d.ts +0 -1
  48. package/dist/commands/doctor/checks.js +1 -36
  49. package/dist/commands/doctor/report.js +0 -11
  50. package/dist/commands/init/content.d.ts +1 -1
  51. package/dist/commands/init/content.js +3 -11
  52. package/dist/commands/init.js +2 -2
  53. package/dist/commands/mcp/config.d.ts +32 -0
  54. package/dist/commands/mcp/config.js +264 -0
  55. package/dist/commands/mcp/doctor-fix.d.ts +12 -0
  56. package/dist/commands/mcp/doctor-fix.js +261 -0
  57. package/dist/commands/mcp/doctor.d.ts +55 -0
  58. package/dist/commands/mcp/doctor.js +401 -0
  59. package/dist/commands/mcp/list.d.ts +1 -0
  60. package/dist/commands/mcp/list.js +56 -0
  61. package/dist/commands/mcp/shared.d.ts +47 -0
  62. package/dist/commands/mcp/shared.js +192 -0
  63. package/dist/commands/mcp/test.d.ts +5 -0
  64. package/dist/commands/mcp/test.js +457 -0
  65. package/dist/commands/mcp.d.ts +8 -104
  66. package/dist/commands/mcp.js +5 -1603
  67. package/dist/contracts/proof.d.ts +1 -1
  68. package/dist/goal/control-loop.d.ts +15 -0
  69. package/dist/goal/control-loop.js +39 -5
  70. package/dist/hud/render.d.ts +2 -0
  71. package/dist/hud/render.js +7 -1
  72. package/dist/mcp/secret-scanner.d.ts +6 -0
  73. package/dist/mcp/secret-scanner.js +44 -11
  74. package/dist/memory/graph-delta-log.d.ts +137 -0
  75. package/dist/memory/graph-delta-log.js +650 -0
  76. package/dist/memory/graph-viewer.js +13 -32
  77. package/dist/memory/local-graph-memory-store.d.ts +36 -3
  78. package/dist/memory/local-graph-memory-store.js +255 -10
  79. package/dist/orchestration/log-streamer.js +13 -8
  80. package/dist/orchestration/routing.d.ts +4 -0
  81. package/dist/orchestration/routing.js +28 -3
  82. package/dist/orchestration/state-persister.js +8 -1
  83. package/dist/providers/anthropic-messages-runner.d.ts +17 -0
  84. package/dist/providers/anthropic-messages-runner.js +197 -0
  85. package/dist/providers/model-registry.d.ts +1 -1
  86. package/dist/providers/model-registry.js +37 -3
  87. package/dist/providers/provider-runtime.js +27 -11
  88. package/dist/providers/thinking-levels.js +4 -1
  89. package/dist/providers/types.d.ts +3 -3
  90. package/dist/runtime/contracts/weakness-remediation.d.ts +11 -1
  91. package/dist/runtime/contracts/weakness-remediation.js +9 -1
  92. package/dist/runtime/router-v2-scoring.d.ts +8 -3
  93. package/dist/runtime/router-v2-scoring.js +27 -22
  94. package/dist/runtime/runtime-router.d.ts +5 -0
  95. package/dist/runtime/runtime-router.js +40 -8
  96. package/dist/runtime/sandbox-profile.d.ts +29 -0
  97. package/dist/runtime/sandbox-profile.js +101 -0
  98. package/dist/runtime/slash-commands.js +300 -2
  99. package/dist/runtime/tool-dispatch-contracts.d.ts +15 -0
  100. package/dist/runtime/tool-dispatch-contracts.js +12 -0
  101. package/dist/runtime/weights-config.d.ts +90 -0
  102. package/dist/runtime/weights-config.js +249 -0
  103. package/dist/schema/envelope.schema.d.ts +18 -18
  104. package/dist/schema/evidence.schema.d.ts +2 -2
  105. package/dist/schema/proof-bundle.schema.d.ts +6 -6
  106. package/dist/schema/proof-bundle.schema.js +0 -1
  107. package/dist/schema/provider.schema.d.ts +2 -2
  108. package/dist/schema/run-manifest.schema.d.ts +16 -16
  109. package/dist/theme/ansi.js +9 -2
  110. package/dist/theme/extended-palette.d.ts +85 -0
  111. package/dist/theme/extended-palette.js +108 -0
  112. package/dist/theme/layout.js +29 -8
  113. package/dist/theme/metrics.js +5 -5
  114. package/dist/theme/parallel.js +25 -15
  115. package/dist/ui/omk-sigil.js +5 -14
  116. package/dist/ui/omk-working-sweep.js +5 -15
  117. package/dist/util/chat-agent-mode.d.ts +11 -0
  118. package/dist/util/chat-agent-mode.js +41 -8
  119. package/dist/util/chat-cockpit.d.ts +9 -0
  120. package/dist/util/chat-cockpit.js +77 -20
  121. package/dist/util/fs/core.d.ts +5 -0
  122. package/dist/util/fs/core.js +35 -0
  123. package/dist/util/fs/internal.d.ts +14 -0
  124. package/dist/util/fs/internal.js +169 -0
  125. package/dist/util/fs/kimi-sync.d.ts +41 -0
  126. package/dist/util/fs/kimi-sync.js +495 -0
  127. package/dist/util/fs/logo.d.ts +2 -0
  128. package/dist/util/fs/logo.js +78 -0
  129. package/dist/util/fs/manifest.d.ts +6 -0
  130. package/dist/util/fs/manifest.js +40 -0
  131. package/dist/util/fs/mcp-diagnose.d.ts +15 -0
  132. package/dist/util/fs/mcp-diagnose.js +204 -0
  133. package/dist/util/fs/mcp-runtime-config.d.ts +23 -0
  134. package/dist/util/fs/mcp-runtime-config.js +412 -0
  135. package/dist/util/fs/paths.d.ts +13 -0
  136. package/dist/util/fs/paths.js +82 -0
  137. package/dist/util/fs/preflight.d.ts +27 -0
  138. package/dist/util/fs/preflight.js +271 -0
  139. package/dist/util/fs.d.ts +8 -128
  140. package/dist/util/fs.js +8 -1757
  141. package/dist/util/terminal-layout.js +5 -1
  142. package/dist/util/version.js +2 -1
  143. package/docs/2026-06-10/critical-issues.md +20 -0
  144. package/docs/2026-06-10/improvements.md +14 -0
  145. package/docs/2026-06-10/init-checklist.md +25 -0
  146. package/docs/2026-06-10/plan.md +20 -0
  147. package/docs/2026-06-11/critical-issues.md +20 -0
  148. package/docs/2026-06-11/improvements.md +14 -0
  149. package/docs/2026-06-11/init-checklist.md +25 -0
  150. package/docs/2026-06-11/plan.md +20 -0
  151. package/docs/ARCHITECTURE_ANALYSIS_CODEGRAPH.md +223 -0
  152. package/docs/adr/0001-no-native-rust-lane.md +52 -0
  153. package/docs/codex-oauth-setup.md +14 -0
  154. package/docs/decisions/2026-06-10-git-history-bloat.md +61 -0
  155. package/docs/decisions/ADR-theme-dark-only-assets.md +43 -0
  156. package/docs/getting-started.md +1 -1
  157. package/docs/headroom-omk-final-summary.md +188 -0
  158. package/docs/headroom-omk-integration.md +394 -0
  159. package/docs/headroom-omk-setup-guide.md +422 -0
  160. package/docs/headroom-omk-usage-examples.md +371 -0
  161. package/docs/provider-maturity.md +1 -1
  162. package/docs/versioning.md +3 -3
  163. package/package.json +10 -10
  164. package/readmeasset/.npmignore +2 -0
  165. package/readmeasset/ASSET_INDEX.md +7 -5
  166. package/readmeasset/ASSET_PROVENANCE.md +21 -5
  167. package/readmeasset/omk-control-surfaces.svg +55 -0
  168. package/readmeasset/omk-core-loop.svg +1 -0
  169. package/readmeasset/omk-logo-mark.svg +1 -0
  170. package/readmeasset/omk-release-assertions.svg +51 -0
  171. package/dist/native/linux-x64/omk-safety +0 -0
  172. package/dist/util/native-safety.d.ts +0 -28
  173. package/dist/util/native-safety.js +0 -118
  174. package/templates/skills/agents/omk-adaptorch-orchestration-review/SKILL.md +0 -52
  175. package/templates/skills/kimi/mcp-install/SKILL.md +0 -66
  176. package/templates/skills/kimi/omk-adaptorch-orchestration-review/SKILL.md +0 -52
@@ -1,44 +1,120 @@
1
1
  /**
2
- * OMK brand color palette hex values and conversion helpers.
2
+ * OMK brand color palette -- compiled from active omk.theme.v1 documents
3
+ * (theme contract T5b) plus conversion helpers.
4
+ *
5
+ * P and BRAND_HEX keep their public object shapes, but shared brand slots are
6
+ * updated in place when setBrandPaletteTheme() switches the live brand theme.
7
+ * Night-city remains the default and preserves the legacy RGB/HEX bytes.
3
8
  */
4
- export const P = {
5
- purple: { r: 157, g: 78, b: 221 }, // #9D4EDD orchestration/control accent
6
- lightPurple: { r: 214, g: 108, b: 255 }, // #D66CFF neon highlight
7
- darkPurple: { r: 64, g: 18, b: 133 }, // #401285 deep control shadow
8
- pink: { r: 255, g: 71, b: 178 }, // #FF47B2 control/focus accent
9
- hotPink: { r: 255, g: 71, b: 178 }, // #FF47B2 hot accent (alias)
10
- mint: { r: 0, g: 255, b: 194 }, // #00FFC2 telemetry/success
11
- darkMint: { r: 0, g: 196, b: 153 }, // #00C499 telemetry shadow
12
- orange: { r: 255, g: 176, b: 0 }, // #FFB000 warning/pending
13
- red: { r: 255, g: 88, b: 116 }, // #FF5874 fault/danger
14
- blue: { r: 0, g: 214, b: 255 }, // #00D6FF route/signal/info
15
- cream: { r: 232, g: 248, b: 255 }, // #E8F8FF bright console text
16
- dark: { r: 7, g: 11, b: 20 }, // #070B14 cockpit background
17
- gray: { r: 117, g: 143, b: 168 }, // #758FA8 muted telemetry
18
- skin: { r: 255, g: 214, b: 102 }, // #FFD666 metric gold
19
- rustOrange: { r: 249, g: 115, b: 22 }, // #F97316 Rust/native toolchain accent
20
- rustOxide: { r: 124, g: 45, b: 18 }, // #7C2D12 Rust/native warning shadow
21
- cargoGreen: { r: 0, g: 255, b: 194 }, // #00FFC2 verified native check
22
- matrixGreen: { r: 0, g: 255, b: 194 }, // #00FFC2 OMK signal phosphor
23
- matrixDark: { r: 8, g: 39, b: 31 }, // #08271F success/signal background
24
- matrixRainGreen: { r: 0, g: 255, b: 65 }, // #00FF41 iconic Matrix rain code green
25
- matrixDeepBg: { r: 0, g: 8, b: 0 }, // #000800 matrix rain deep background
26
- matrixRainDim: { r: 0, g: 95, b: 25 }, // #005F19 matrix rain dark green
27
- matrixWarningAmber: { r: 255, g: 176, b: 0 }, // #FFB000 matrix warning amber
28
- matrixErrorRed: { r: 255, g: 50, b: 50 }, // #FF3232 matrix error red
29
- // ── Metrics theme (professional dashboard) ──
30
- metricsCyan: { r: 6, g: 182, b: 212 }, // #06B6D4 Metrics primary
31
- metricsTeal: { r: 20, g: 184, b: 166 }, // #14B8A6 Metrics secondary (same as mint)
32
- metricsNavy: { r: 10, g: 25, b: 41 }, // #0A1929 Metrics bg dark
33
- metricsSlate: { r: 30, g: 41, b: 59 }, // #1E293B Metrics bg light
34
- metricsSilver: { r: 203, g: 213, b: 225 }, // #CBD5E1 Metrics muted text
35
- metricsWhite: { r: 241, g: 245, b: 249 }, // #F1F5F9 Metrics bright
36
- metricsAmber: { r: 245, g: 158, b: 11 }, // #F59E0B Metrics warning
37
- metricsGreen: { r: 34, g: 197, b: 94 }, // #22C55E Metrics success
38
- metricsRed: { r: 239, g: 68, b: 68 }, // #EF4444 Metrics error
39
- metricsBlue: { r: 59, g: 130, b: 246 }, // #3B82F6 Metrics info
40
- metricsViolet: { r: 139, g: 92, b: 246 }, // #8B5CF6 Metrics highlight
41
- };
9
+ import { activeThemeHexByPrimitive, activeThemeHexByRole, activeThemeRgbByRole, getActiveBrandThemeName, rgbToHex, setActiveBrandTheme, } from "./theme-compiled.js";
10
+ const rgb = (r, g, b) => ({ r, g, b });
11
+ function rgbByPrimitive(primitive) {
12
+ const parsed = hexToRgb(activeThemeHexByPrimitive(primitive));
13
+ if (parsed === null) {
14
+ throw new Error(`brand palette: active primitive "${primitive}" did not resolve to RGB`);
15
+ }
16
+ return parsed;
17
+ }
18
+ function isRustForgeActive() {
19
+ return getActiveBrandThemeName() === "rust-forge";
20
+ }
21
+ export function buildBrandPalette() {
22
+ const rustForge = isRustForgeActive();
23
+ return {
24
+ // Shared brand slots driven by active theme semantics.
25
+ purple: activeThemeRgbByRole("control.accent"),
26
+ lightPurple: rustForge ? activeThemeRgbByRole("route.fallback") : rgb(214, 108, 255),
27
+ darkPurple: rustForge ? rgbByPrimitive("forge") : rgb(64, 18, 133),
28
+ pink: rgbByPrimitive("magenta"),
29
+ hotPink: rgbByPrimitive("magenta"),
30
+ mint: activeThemeRgbByRole("evidence.pass"),
31
+ darkMint: rgb(0, 196, 153),
32
+ orange: activeThemeRgbByRole("route.fallback"),
33
+ red: activeThemeRgbByRole("telemetry.error"),
34
+ blue: activeThemeRgbByRole("route.active"),
35
+ cream: activeThemeRgbByRole("control.fg"),
36
+ dark: activeThemeRgbByRole("control.bg"),
37
+ gray: activeThemeRgbByRole("control.dim"),
38
+ skin: rgb(255, 214, 102),
39
+ gridLine: rustForge ? rgbByPrimitive("slag") : rgb(34, 50, 74),
40
+ // Rust forge family. Defaults stay legacy for night-city parity.
41
+ rustOrange: rustForge ? activeThemeRgbByRole("route.active") : rgb(249, 115, 22),
42
+ rustOxide: rustForge ? activeThemeRgbByRole("route.fallback") : rgb(124, 45, 18),
43
+ rustEmber: rustForge ? activeThemeRgbByRole("telemetry.warn") : rgb(255, 122, 24),
44
+ rustCrimson: rustForge ? activeThemeRgbByRole("telemetry.error") : rgb(255, 49, 93),
45
+ cargoGreen: activeThemeRgbByRole("evidence.pass"),
46
+ // Matrix family: signal slots follow active success/warn semantics; rain constants stay iconic.
47
+ matrixGreen: activeThemeRgbByRole("evidence.pass"),
48
+ matrixDark: rgb(8, 39, 31),
49
+ matrixRainGreen: rgb(0, 255, 65),
50
+ matrixDeepBg: rgb(0, 8, 0),
51
+ matrixRainDim: rgb(0, 95, 25),
52
+ matrixWarningAmber: activeThemeRgbByRole("telemetry.warn"),
53
+ matrixErrorRed: rgb(255, 50, 50),
54
+ // Sparkle ramp accents (decorative highlight ramps).
55
+ sparkleWhite: rgb(244, 255, 255),
56
+ sparkleGold: rgb(255, 209, 102),
57
+ // Metrics theme constants (professional dashboard specialty palette).
58
+ metricsCyan: rgb(6, 182, 212),
59
+ metricsTeal: rgb(20, 184, 166),
60
+ metricsNavy: rgb(10, 25, 41),
61
+ metricsSlate: rgb(30, 41, 59),
62
+ metricsSilver: rgb(203, 213, 225),
63
+ metricsWhite: rgb(241, 245, 249),
64
+ metricsAmber: rgb(245, 158, 11),
65
+ metricsGreen: rgb(34, 197, 94),
66
+ metricsRed: rgb(239, 68, 68),
67
+ metricsBlue: rgb(59, 130, 246),
68
+ metricsViolet: rgb(139, 92, 246),
69
+ };
70
+ }
71
+ export function buildBrandHex(palette) {
72
+ return {
73
+ dark: activeThemeHexByRole("control.bg"),
74
+ surface: activeThemeHexByPrimitive("surface"),
75
+ cyan: activeThemeHexByRole("route.active"),
76
+ mint: activeThemeHexByRole("evidence.pass"),
77
+ magenta: activeThemeHexByPrimitive("magenta"),
78
+ purple: activeThemeHexByRole("control.accent"),
79
+ amber: activeThemeHexByRole("route.fallback"),
80
+ red: activeThemeHexByRole("telemetry.error"),
81
+ cream: activeThemeHexByRole("control.fg"),
82
+ muted: activeThemeHexByPrimitive("muted"),
83
+ gray: activeThemeHexByRole("control.dim"),
84
+ gridLine: rgbToHex(palette.gridLine),
85
+ sparkleWhite: rgbToHex(palette.sparkleWhite),
86
+ sparkleGold: rgbToHex(palette.sparkleGold),
87
+ rustEmber: rgbToHex(palette.rustEmber),
88
+ rustCrimson: rgbToHex(palette.rustCrimson),
89
+ };
90
+ }
91
+ export const P = buildBrandPalette();
92
+ export const BRAND_HEX = buildBrandHex(P);
93
+ function assignRgb(target, next) {
94
+ const mutable = target;
95
+ mutable.r = next.r;
96
+ mutable.g = next.g;
97
+ mutable.b = next.b;
98
+ }
99
+ function updatePaletteInPlace(target, next) {
100
+ for (const key of Object.keys(next)) {
101
+ assignRgb(target[key], next[key]);
102
+ }
103
+ }
104
+ function updateHexInPlace(target, next) {
105
+ for (const key of Object.keys(next)) {
106
+ target[key] = next[key];
107
+ }
108
+ }
109
+ export function setBrandPaletteTheme(name) {
110
+ const resolved = setActiveBrandTheme(name);
111
+ updatePaletteInPlace(P, buildBrandPalette());
112
+ updateHexInPlace(BRAND_HEX, buildBrandHex(P));
113
+ return resolved;
114
+ }
115
+ export function resetBrandPaletteTheme() {
116
+ return setBrandPaletteTheme("night-city");
117
+ }
42
118
  export function hexToRgb(hex) {
43
119
  const normalized = hex.replace("#", "").trim();
44
120
  const m = normalized.match(/^(?:[0-9a-fA-F]{3}){1,2}$/);
@@ -0,0 +1,216 @@
1
+ {
2
+ "$schema": "../schemas/omk.theme.v1.schema.json",
3
+ "schemaVersion": "omk.theme.v1",
4
+ "name": "rust-forge",
5
+ "displayName": "OMK Rust Forge — Standalone Oxidized Forge Console",
6
+ "mode": "dark",
7
+ "primitives": {
8
+ "iron": "#0E0B09",
9
+ "coal": "#080605",
10
+ "forge": "#1A1310",
11
+ "anvil": "#241914",
12
+ "rust": "#FF6A3D",
13
+ "molten": "#FF7A4A",
14
+ "copper": "#E08A4B",
15
+ "ember": "#FFB454",
16
+ "oxide": "#4FB39B",
17
+ "quench": "#78E4C9",
18
+ "verdigris": "#6FD7B8",
19
+ "crimson": "#FF5468",
20
+ "steel": "#9FB0BD",
21
+ "scale": "#BFA08A",
22
+ "ash": "#C9B8A8",
23
+ "slag": "#8F7B6D",
24
+ "bone": "#F2E4D6"
25
+ },
26
+ "backgrounds": [
27
+ "iron",
28
+ "forge"
29
+ ],
30
+ "semantics": {
31
+ "route.active": {
32
+ "color": "rust",
33
+ "glyph": "▸",
34
+ "usage": "text"
35
+ },
36
+ "route.fallback": {
37
+ "color": "copper",
38
+ "glyph": "↻",
39
+ "usage": "text"
40
+ },
41
+ "route.dead": {
42
+ "color": "crimson",
43
+ "glyph": "✕",
44
+ "usage": "text"
45
+ },
46
+ "evidence.pass": {
47
+ "color": "oxide",
48
+ "glyph": "✓",
49
+ "usage": "text"
50
+ },
51
+ "evidence.fail": {
52
+ "color": "crimson",
53
+ "glyph": "✗",
54
+ "usage": "text"
55
+ },
56
+ "evidence.pending": {
57
+ "color": "ember",
58
+ "glyph": "◐",
59
+ "usage": "text"
60
+ },
61
+ "dag.lane.running": {
62
+ "color": "rust",
63
+ "glyph": "▶",
64
+ "usage": "text"
65
+ },
66
+ "dag.lane.blocked": {
67
+ "color": "copper",
68
+ "glyph": "⏸",
69
+ "usage": "text"
70
+ },
71
+ "dag.lane.done": {
72
+ "color": "verdigris",
73
+ "glyph": "●",
74
+ "usage": "text"
75
+ },
76
+ "dag.lane.queued": {
77
+ "color": "slag",
78
+ "glyph": "◌",
79
+ "usage": "text",
80
+ "adjusted": {
81
+ "original": "#6E5B4E",
82
+ "crBefore": 2.86,
83
+ "crAfter": 4.56
84
+ }
85
+ },
86
+ "telemetry.info": {
87
+ "color": "bone",
88
+ "glyph": "·",
89
+ "usage": "text"
90
+ },
91
+ "telemetry.warn": {
92
+ "color": "ember",
93
+ "glyph": "▲",
94
+ "usage": "text"
95
+ },
96
+ "telemetry.error": {
97
+ "color": "crimson",
98
+ "glyph": "✖",
99
+ "usage": "text"
100
+ },
101
+ "control.accent": {
102
+ "color": "rust",
103
+ "glyph": "◆",
104
+ "kind": "chrome",
105
+ "usage": "indicator"
106
+ },
107
+ "control.dim": {
108
+ "color": "steel",
109
+ "glyph": "┊",
110
+ "kind": "chrome",
111
+ "usage": "text"
112
+ },
113
+ "control.fg": {
114
+ "color": "bone",
115
+ "kind": "chrome",
116
+ "usage": "text"
117
+ },
118
+ "control.bg": {
119
+ "color": "iron",
120
+ "kind": "background",
121
+ "usage": "background"
122
+ },
123
+ "forge.heat": {
124
+ "color": "molten",
125
+ "glyph": "▰",
126
+ "usage": "text"
127
+ },
128
+ "forge.anvil": {
129
+ "color": "scale",
130
+ "glyph": "▣",
131
+ "usage": "text"
132
+ },
133
+ "forge.quench": {
134
+ "color": "quench",
135
+ "glyph": "◈",
136
+ "usage": "text"
137
+ },
138
+ "forge.slag": {
139
+ "color": "slag",
140
+ "glyph": "◌",
141
+ "usage": "text",
142
+ "adjusted": {
143
+ "original": "#6E5B4E",
144
+ "crBefore": 2.86,
145
+ "crAfter": 4.56
146
+ }
147
+ }
148
+ },
149
+ "components": {
150
+ "statusCard": {
151
+ "border": "control.accent",
152
+ "title": "control.fg",
153
+ "body": "telemetry.info",
154
+ "meta": "control.dim"
155
+ },
156
+ "routerTable": {
157
+ "active": "route.active",
158
+ "fallback": "route.fallback",
159
+ "dead": "route.dead",
160
+ "header": "control.accent"
161
+ },
162
+ "evidenceGate": {
163
+ "pass": "evidence.pass",
164
+ "fail": "evidence.fail",
165
+ "pending": "evidence.pending"
166
+ },
167
+ "dagLanes": {
168
+ "running": "dag.lane.running",
169
+ "blocked": "dag.lane.blocked",
170
+ "done": "dag.lane.done",
171
+ "queued": "dag.lane.queued"
172
+ },
173
+ "logStream": {
174
+ "info": "telemetry.info",
175
+ "warn": "telemetry.warn",
176
+ "error": "telemetry.error",
177
+ "dim": "control.dim"
178
+ },
179
+ "forgeConsole": {
180
+ "heat": "forge.heat",
181
+ "anvil": "forge.anvil",
182
+ "quench": "forge.quench",
183
+ "slag": "forge.slag",
184
+ "title": "control.fg"
185
+ }
186
+ },
187
+ "fallback16": {
188
+ "route.active": "brightRed",
189
+ "route.fallback": "brightYellow",
190
+ "route.dead": "brightRed",
191
+ "evidence.pass": "brightGreen",
192
+ "evidence.fail": "brightRed",
193
+ "evidence.pending": "brightYellow",
194
+ "dag.lane.running": "brightRed",
195
+ "dag.lane.blocked": "brightYellow",
196
+ "dag.lane.done": "brightGreen",
197
+ "dag.lane.queued": "white",
198
+ "telemetry.info": "brightWhite",
199
+ "telemetry.warn": "brightYellow",
200
+ "telemetry.error": "brightRed",
201
+ "control.accent": "brightRed",
202
+ "control.dim": "white",
203
+ "control.fg": "brightWhite",
204
+ "control.bg": "black",
205
+ "forge.heat": "brightRed",
206
+ "forge.anvil": "white",
207
+ "forge.quench": "brightGreen",
208
+ "forge.slag": "white"
209
+ },
210
+ "meta": {
211
+ "provenance": "Standalone oxidized rust-forge palette for the OMK orchestration console. Warm coal/iron/anvil backgrounds, rust-orange + molten + copper + ember heat accents, oxide/quench/verdigris patina greens for pass/done, crimson for fail/dead, steel/scale/ash grays, and bone foreground. Forge-specific heat/anvil/quench semantics make OMK control surfaces distinct from provider branding while preserving NO_COLOR glyph safety.",
212
+ "tierAssumptions": "16-color tier gated against stock VGA/xterm ANSI values; terminals with remapped ANSI-16 palettes are outside the contract — glyphs are the safety net. NO_COLOR note: control.dim uses ┊ so logStream info (telemetry.info ·) and dim rows stay distinguishable without color.",
213
+ "omkVersion": "0.78.6",
214
+ "independence": "OMK is the control plane; providers and models are adapter lanes, never the product identity or final authority."
215
+ }
216
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * OMK brand -- theme-compiled color source (theme contract T5b).
3
+ *
4
+ * Single bridge between canonical omk.theme.v1 documents and the brand
5
+ * palette/UI layers. Brand chrome defaults to night-city for byte parity, and
6
+ * can be switched at process edges to rust-forge without changing import shapes.
7
+ *
8
+ * Imports target the concrete src/cli/theme modules (render-table,
9
+ * terminal-capability, oklab-quantize) rather than the barrel to avoid a
10
+ * module cycle through theme-registry -> theme/colors -> brand/palette.
11
+ */
12
+ import type { CompiledTheme, OmkThemeV1 } from "../cli/theme/render-table.js";
13
+ import type { ColorTier } from "../cli/theme/terminal-capability.js";
14
+ /** Plain 0-255 RGB triple used across the brand palette public API. */
15
+ export interface BrandRgb {
16
+ readonly r: number;
17
+ readonly g: number;
18
+ readonly b: number;
19
+ }
20
+ /** Primitive names the legacy brand palette requires from night-city. */
21
+ export type NightCityPrimitive = "dark" | "surface" | "cyan" | "mint" | "magenta" | "purple" | "amber" | "red" | "cream" | "muted" | "gray";
22
+ export type RustForgePrimitive = "iron" | "coal" | "forge" | "anvil" | "rust" | "molten" | "copper" | "ember" | "oxide" | "quench" | "verdigris" | "crimson" | "steel" | "scale" | "ash" | "slag" | "bone";
23
+ export type BrandThemeName = "night-city" | "rust-forge";
24
+ /** Validated night-city theme document (build-time snapshot of themes/). */
25
+ export declare const NIGHT_CITY_THEME: OmkThemeV1;
26
+ /** Validated rust-forge theme document (build-time snapshot of themes/). */
27
+ export declare const RUST_FORGE_THEME: OmkThemeV1;
28
+ export declare function resolveBrandThemeName(name: string | undefined): BrandThemeName;
29
+ export declare function setActiveBrandTheme(name: string | undefined): BrandThemeName;
30
+ export declare function getActiveBrandThemeName(): BrandThemeName;
31
+ export declare function getActiveBrandTheme(): OmkThemeV1;
32
+ export declare function activeThemeHexByRole(role: string): string;
33
+ export declare function brandThemeHexByRole(name: BrandThemeName, role: string): string;
34
+ export declare function brandThemeRgbByRole(name: BrandThemeName, role: string): BrandRgb;
35
+ export declare function activeThemeRgbByRole(role: string): BrandRgb;
36
+ export declare function activeThemeHexByPrimitive(primitive: string): string;
37
+ /** Canonical normalized uppercase hex string for a night-city primitive. */
38
+ export declare function nightCityHex(primitive: NightCityPrimitive): string;
39
+ /** 0-255 RGB triple for a night-city primitive. */
40
+ export declare function nightCityRgb(primitive: NightCityPrimitive): BrandRgb;
41
+ /** Convert an RGB triple to canonical uppercase hex (no literal hex in source). */
42
+ export declare function rgbToHex(color: BrandRgb): string;
43
+ /**
44
+ * Compiled active brand render table for the requested (default: detected)
45
+ * degradation tier. The cache key includes both theme name and tier.
46
+ */
47
+ export declare function getCompiledBrandTheme(tier?: ColorTier): CompiledTheme;
48
+ /** Paint text with an active-brand semantic token at the detected color tier. */
49
+ export declare function brandPaint(role: string, text: string): string;
50
+ export declare function getActiveBrandChromeLabel(): string;
51
+ export declare function getActiveBrandCockpitSubtitle(): string;
52
+ export declare function getActiveBrandCockpitDetail(): string;
53
+ export declare function getActiveBrandHudStatus(): string;
54
+ export declare function getActiveBrandConsoleLine(): string;
55
+ /**
56
+ * Unconditional truecolor SGR open sequence for a brand RGB value, produced
57
+ * through the theme compiler (single SGR factory -- no escape literals here).
58
+ * Brand theme constants intentionally stay truecolor for byte parity with the
59
+ * legacy palette; tier-aware rendering should use `getCompiledBrandTheme()`.
60
+ */
61
+ export declare function brandTruecolorSgr(color: BrandRgb): string;