sigrank 1.0.46 → 1.0.47

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ ### TUI
6
+
7
+ * Dashboard identity block: build archetype (pixel glyph + name), Υ, operating ratio and class for your combined all-time cascade; one-line form on small terminals
8
+ * Cascade table: Build (archetype) column per window on wide terminals; note when 7d/30d/90d are identical because no activity was logged between 7 and 90 days ago
9
+ * Four Degrees: values match signalaf.com/wiki/four-degrees; "Your Read" and the Top column no longer compare you against your own all-time numbers; new "Where you sit" Υ line
10
+ * Submit preview ([S]): shows every stat that will be sent per platform × window (token pillars, messages, mode, health, badges) plus what the board derives (Υ, op ratio, class, archetype), including the combined multi submission; [P] pages platforms
11
+ * Board: [U] toggles all submissions ↔ best row per operator; large Υ shown as M/B; spaced operating ratios
12
+ * Trends: unimplemented metrics folded into one "coming later" line; compact op ratio on narrow terminals
13
+ * Compare: source checklist (found / how to install) instead of a wall of text; sections render whole or not at all
14
+ * Narrow windows: footer hints wrap/compact instead of being cut off; tab bar sheds the clock/site/version before overflowing; terminal-cell-accurate widths; cut lines end in "…"; sections that don't fit are listed on a "▾ … below" line
15
+ * Platform colors follow brand colors (Claude orange, OpenAI green, Google blue/green, Devin blue, Copilot/Qwen purple, Kilo yellow, xAI silver, OpenClaw red)
16
+
3
17
  ## 1.0.46
4
18
 
5
19
  ### Security / privacy
package/manifest.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://raw.githubusercontent.com/anthropics/mcpb/main/schemas/mcpb-manifest-v0.4.schema.json",
3
3
  "manifest_version": "0.4",
4
4
  "name": "sigrank",
5
- "version": "1.0.46",
5
+ "version": "1.0.47",
6
6
  "description": "Ranks AI coding operators by token cascade efficiency (Yield = cache_read \u00d7 output / input\u00b2). 25 tools including SigRank Standard record, yield calculation, local token usage pulls, signed submission, and tokscale-powered analytics (market share, developer profiles, model trends, cost analysis, device profiles, MCP usage, competitive intelligence). Privacy-first: runs locally, only four token counts leave the machine.",
7
7
  "author": {
8
8
  "name": "SunrisesIllNeverSee",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigrank",
3
- "version": "1.0.46",
3
+ "version": "1.0.47",
4
4
  "author": "SunrisesIllNeverSee (https://github.com/SunrisesIllNeverSee)",
5
5
  "description": "Upsilon measurement engine distributed through the sigrank CLI/MCP compatibility package, with SigRank public leaderboard tools.",
6
6
  "mcpName": "io.github.SunrisesIllNeverSee/sigrank-mcp",
@@ -132,40 +132,31 @@ export function getThemeNames() {
132
132
  // (the default theme). For light theme, darker 256-color variants are used.
133
133
  // Monochrome theme returns no color (bold only) — colorblind-safe.
134
134
  //
135
- // Color assignments (dark theme 256-color codes):
136
- // claude = 75 (blue-cyan)
137
- // codex = 114 (green)
138
- // amp = 179 (orange)
139
- // gemini = 129 (purple-magenta)
140
- // kimi = 213 (pink)
141
- // qwen = 68 (steel blue)
142
- // goose = 142 (olive)
143
- // kilo = 166 (dark orange)
144
- // hermes = 96 (plum)
145
- // droid = 167 (salmon)
146
- // codebuff = 72 (teal-green)
147
- // copilot = 33 (bright blue)
148
- // openclaw = 136 (gold-brown)
149
- // pi = 177 (light purple)
150
- // omp = 220 (gold — the "oh my pi" platform gets gold)
151
- // opencode = 60 (slate)
152
- // devin = 30 (teal)
153
- // proxy = 245 (gray — synthetic passthrough)
154
- // other = 245 (gray — catch-all)
155
135
 
136
+ // Brand-matched (owner 2026-10-15: "claude orange, devin blue, etc"):
137
+ // claude Anthropic orange · codex OpenAI green · gemini Google blue ·
138
+ // antigravity Google green · devin Cognition blue · copilot GitHub purple ·
139
+ // qwen purple · kilo yellow · grok xAI silver · openclaw lobster red ·
140
+ // amp red · kimi Moonshot blue · hermes Nous blue · droid Factory orange ·
141
+ // codebuff acid green · pi gold (π palette) · zcode Z.ai blue.
142
+ // goose / opencode have monochrome brands → distinct neutral greys.
143
+ // omp keeps its gold. Codes nudged where the nearest brand code collided
144
+ // with another platform (amp 196 vs openclaw 203, droid 208 vs 202, …).
156
145
  const PLATFORM_COLORS_DARK = {
157
- claude: 75, codex: 114, amp: 179, gemini: 129, kimi: 213,
158
- qwen: 68, goose: 142, kilo: 166, hermes: 96, droid: 167,
159
- codebuff: 72, copilot: 33, openclaw: 136, pi: 177, omp: 220,
160
- opencode: 60, devin: 30, proxy: 245, other: 245,
146
+ claude: 173, codex: 36, amp: 196, gemini: 69, kimi: 33,
147
+ qwen: 63, goose: 245, kilo: 227, hermes: 27, droid: 208,
148
+ codebuff: 48, copilot: 98, openclaw: 203, pi: 179, omp: 220,
149
+ opencode: 252, devin: 39, proxy: 240, other: 240,
150
+ antigravity: 71, grok: 250, zcode: 111,
161
151
  };
162
152
 
163
153
  // Light theme: darker shades of the same hues for contrast on white
164
154
  const PLATFORM_COLORS_LIGHT = {
165
- claude: 24, codex: 28, amp: 130, gemini: 54, kimi: 90,
166
- qwen: 19, goose: 100, kilo: 130, hermes: 54, droid: 124,
167
- codebuff: 23, copilot: 19, openclaw: 130, pi: 90, omp: 130,
168
- opencode: 19, devin: 23, proxy: 242, other: 242,
155
+ claude: 130, codex: 29, amp: 160, gemini: 26, kimi: 27,
156
+ qwen: 56, goose: 243, kilo: 136, hermes: 21, droid: 94,
157
+ codebuff: 29, copilot: 55, openclaw: 124, pi: 136, omp: 136,
158
+ opencode: 243, devin: 25, proxy: 242, other: 242,
159
+ antigravity: 28, grok: 240, zcode: 24,
169
160
  };
170
161
 
171
162
  /**
@@ -187,3 +178,27 @@ export function platformColor(platform) {
187
178
  }
188
179
  return (s) => `${ESC}38;5;${code}m${s}${currentTheme.reset}`;
189
180
  }
181
+
182
+ // ── Build archetype colors ──────────────────────────────────────────────────
183
+ // Hues follow signalaf.com/field (build archetypes), mapped to 256-color codes.
184
+ // Keys match classifyArchetype().key in presentation/narrate.mjs.
185
+ const ARCHETYPE_COLORS_DARK = {
186
+ convergent: 140, kinetic: 204, amplifier: 209, recursive: 178, builder: 214,
187
+ archivist: 35, "deep-reader": 41, contextual: 79, priming: 74, "input-bound": 33,
188
+ };
189
+ const ARCHETYPE_COLORS_LIGHT = {
190
+ convergent: 97, kinetic: 161, amplifier: 166, recursive: 136, builder: 130,
191
+ archivist: 29, "deep-reader": 28, contextual: 30, priming: 31, "input-bound": 25,
192
+ };
193
+
194
+ /** Paint function for a build archetype key, theme-aware (monochrome → bold). */
195
+ export function archetypeColor(key) {
196
+ const themeName = currentTheme.name;
197
+ if (themeName === "monochrome") {
198
+ return (s) => `${currentTheme.bold}${s}${currentTheme.reset}`;
199
+ }
200
+ const map = themeName === "light" ? ARCHETYPE_COLORS_LIGHT : ARCHETYPE_COLORS_DARK;
201
+ const code = map[key];
202
+ if (code == null) return (s) => `${currentTheme.cyan}${s}${currentTheme.reset}`;
203
+ return (s) => `${ESC}38;5;${code}m${s}${currentTheme.reset}`;
204
+ }