sigrank 1.0.36 → 1.0.37

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/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.35",
5
+ "version": "1.0.36",
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.36",
3
+ "version": "1.0.37",
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",
@@ -973,6 +973,29 @@ function renderDashboard(data, status = "", scrollOffset = 0) {
973
973
  })();
974
974
 
975
975
  if (used < budget - 8) {
976
+ // Compute the operator's combined "all" cascade for live Four Degrees.
977
+ // TD.top is overridden with the live metrics so the "Top Evals" column
978
+ // reflects the actual top operator instead of a static snapshot.
979
+ const combinedAll = { input: 0, output: 0, cacheCreate: 0, cacheRead: 0 };
980
+ for (const d of active) {
981
+ const all = d.windows?.find((w) => w.window === "all");
982
+ if (!all) continue;
983
+ combinedAll.input += all.pillars.input ?? 0;
984
+ combinedAll.output += all.pillars.output ?? 0;
985
+ combinedAll.cacheCreate += all.pillars.cacheCreate ?? 0;
986
+ combinedAll.cacheRead += all.pillars.cacheRead ?? 0;
987
+ }
988
+ const liveTop = cascadeFrom(combinedAll);
989
+ const tdLive = { ...TD };
990
+ if (liveTop && (liveTop.yield ?? 0) > 0) {
991
+ tdLive.top = {
992
+ yield: liveTop.yield,
993
+ snr: liveTop.snr,
994
+ vel: liveTop.velocity ?? TD.top.vel,
995
+ lev: liveTop.leverage ?? TD.top.lev,
996
+ d10: liveTop.dev10x ?? TD.top.d10,
997
+ };
998
+ }
976
999
  // ── Custom insights — comparison vs the field + a concrete tip for the weakest metric
977
1000
  emit(` ${hr()}`);
978
1001
  emit(
@@ -1011,45 +1034,45 @@ function renderDashboard(data, status = "", scrollOffset = 0) {
1011
1034
  chk(
1012
1035
  "Υ Yield",
1013
1036
  you.yield,
1014
- TD.hcm.yield,
1015
- TD.power.yield,
1016
- TD.top.yield,
1037
+ tdLive.hcm.yield,
1038
+ tdLive.power.yield,
1039
+ tdLive.top.yield,
1017
1040
  fmtY,
1018
1041
  "compound more — reuse cache, raise output",
1019
1042
  );
1020
1043
  chk(
1021
1044
  "SNR",
1022
1045
  you.snr,
1023
- TD.hcm.snr,
1024
- TD.power.snr,
1025
- TD.top.snr,
1046
+ tdLive.hcm.snr,
1047
+ tdLive.power.snr,
1048
+ tdLive.top.snr,
1026
1049
  fmtSNR,
1027
1050
  "tighten prompts — less input per unit output",
1028
1051
  );
1029
1052
  chk(
1030
1053
  "Leverage",
1031
1054
  you.leverage,
1032
- TD.hcm.lev,
1033
- TD.power.lev,
1034
- TD.top.lev,
1055
+ tdLive.hcm.lev,
1056
+ tdLive.power.lev,
1057
+ tdLive.top.lev,
1035
1058
  (v) => fmtLev(v) + "×",
1036
1059
  "lean on cache-read — amplify prior context",
1037
1060
  );
1038
1061
  chk(
1039
1062
  "Velocity",
1040
1063
  you.velocity,
1041
- TD.hcm.vel,
1042
- TD.power.vel,
1043
- TD.top.vel,
1064
+ tdLive.hcm.vel,
1065
+ tdLive.power.vel,
1066
+ tdLive.top.vel,
1044
1067
  (v) => v.toFixed(2),
1045
1068
  "more output per input token",
1046
1069
  );
1047
1070
  chk(
1048
1071
  "10xDEV",
1049
1072
  you.dev10x,
1050
- TD.hcm.d10,
1051
- TD.power.d10,
1052
- TD.top.d10,
1073
+ tdLive.hcm.d10,
1074
+ tdLive.power.d10,
1075
+ tdLive.top.d10,
1053
1076
  (v) => v.toFixed(2),
1054
1077
  "raise leverage — every 10× lev adds 1 to 10xDEV",
1055
1078
  );
@@ -1096,22 +1119,22 @@ function renderDashboard(data, status = "", scrollOffset = 0) {
1096
1119
  emit(
1097
1120
  ` ${padEnd(label, 10)} ${padStart(dim(fmt(b)), 9)} ${padStart(white(fmt(h)), 9)} ${padStart(white(fmt(p)), 9)} ${padStart(gold(fmt(t)), 9)}`,
1098
1121
  );
1099
- tdRow("Υ Yield", TD.base.yield, TD.hcm.yield, TD.power.yield, TD.top.yield, fmtY);
1100
- tdRow("SNR", TD.base.snr, TD.hcm.snr, TD.power.snr, TD.top.snr, fmtSNR);
1101
- tdRow("Velocity", TD.base.vel, TD.hcm.vel, TD.power.vel, TD.top.vel, (v) =>
1122
+ tdRow("Υ Yield", tdLive.base.yield, tdLive.hcm.yield, tdLive.power.yield, tdLive.top.yield, fmtY);
1123
+ tdRow("SNR", tdLive.base.snr, tdLive.hcm.snr, tdLive.power.snr, tdLive.top.snr, fmtSNR);
1124
+ tdRow("Velocity", tdLive.base.vel, tdLive.hcm.vel, tdLive.power.vel, tdLive.top.vel, (v) =>
1102
1125
  v.toFixed(2),
1103
1126
  );
1104
1127
  tdRow(
1105
1128
  "Leverage",
1106
- TD.base.lev,
1107
- TD.hcm.lev,
1108
- TD.power.lev,
1109
- TD.top.lev,
1129
+ tdLive.base.lev,
1130
+ tdLive.hcm.lev,
1131
+ tdLive.power.lev,
1132
+ tdLive.top.lev,
1110
1133
  (v) => fmtLev(v) + "×",
1111
1134
  );
1112
- tdRow("10xDEV", TD.base.d10, TD.hcm.d10, TD.power.d10, TD.top.d10, (v) => v.toFixed(2));
1135
+ tdRow("10xDEV", tdLive.base.d10, tdLive.hcm.d10, tdLive.power.d10, tdLive.top.d10, (v) => v.toFixed(2));
1113
1136
  emit(
1114
- ` ${dim("reference values until live user volume calibrates HCM · Power · Top")}`,
1137
+ ` ${dim("AA baseline static · Top Evals live from your cascade · HCM/Power calibrate with user volume")}`,
1115
1138
  );
1116
1139
  }
1117
1140
 
@@ -1130,7 +1153,9 @@ function renderDashboard(data, status = "", scrollOffset = 0) {
1130
1153
  emit();
1131
1154
  emit(` ${hr()}`);
1132
1155
  emit(` ${bold("Lifetime Tokens")} ${dim("archived submissions · never decreases")}`);
1133
- const platforms = Object.entries(batched.per_platform ?? {});
1156
+ const platforms = Object.entries(batched.per_platform ?? {}).filter(
1157
+ ([plat]) => plat !== "multi",
1158
+ );
1134
1159
  for (const [plat, pw] of platforms) {
1135
1160
  if (used >= budget - 2) break;
1136
1161
  const pc = platformColor(plat);