sigrank 1.0.35 → 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 +1 -1
- package/package.json +1 -1
- package/presentation/tui.mjs +88 -26
- package/submit/index.mjs +1 -0
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.
|
|
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.
|
|
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",
|
package/presentation/tui.mjs
CHANGED
|
@@ -366,6 +366,28 @@ async function loadDashboardData({ includeOmp = false } = {}) {
|
|
|
366
366
|
|
|
367
367
|
const boardData = await boardPromise;
|
|
368
368
|
const batchedData = await batchedPromise;
|
|
369
|
+
|
|
370
|
+
// When the operator is signed in and the server has batched (rolled-forward)
|
|
371
|
+
// totals, override the local "all" window with the server's never-decreasing
|
|
372
|
+
// value. The local scan only sees what's on disk; the server has baseline +
|
|
373
|
+
// all deltas. This makes the cascade table "all" row match the Lifetime
|
|
374
|
+
// Tokens section so they don't diverge as platforms prune old session logs.
|
|
375
|
+
if (batchedData?.per_platform) {
|
|
376
|
+
for (const d of active) {
|
|
377
|
+
const bp = batchedData.per_platform[d.platform];
|
|
378
|
+
if (!bp?.all) continue;
|
|
379
|
+
const allWin = d.windows?.find((w) => w.window === "all");
|
|
380
|
+
if (allWin) {
|
|
381
|
+
allWin.pillars = {
|
|
382
|
+
input: bp.all.input ?? allWin.pillars.input,
|
|
383
|
+
output: bp.all.output ?? allWin.pillars.output,
|
|
384
|
+
cacheCreate: bp.all.cacheCreate ?? allWin.pillars.cacheCreate,
|
|
385
|
+
cacheRead: bp.all.cacheRead ?? allWin.pillars.cacheRead,
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
|
|
369
391
|
return {
|
|
370
392
|
active,
|
|
371
393
|
verifierMap: {},
|
|
@@ -390,8 +412,23 @@ async function pullDashboardPlatform(dashData, platform) {
|
|
|
390
412
|
try {
|
|
391
413
|
const active = await pullActivePlatforms({ platforms: [platform] });
|
|
392
414
|
for (const d of active) {
|
|
393
|
-
if (!dashData.active.find((a) => a.platform === d.platform))
|
|
415
|
+
if (!dashData.active.find((a) => a.platform === d.platform)) {
|
|
416
|
+
// Apply the same batched "all" override as loadDashboardData so
|
|
417
|
+
// progressively-loaded platforms match the Lifetime Tokens section.
|
|
418
|
+
const bp = dashData.batchedData?.per_platform?.[d.platform];
|
|
419
|
+
if (bp?.all) {
|
|
420
|
+
const allWin = d.windows?.find((w) => w.window === "all");
|
|
421
|
+
if (allWin) {
|
|
422
|
+
allWin.pillars = {
|
|
423
|
+
input: bp.all.input ?? allWin.pillars.input,
|
|
424
|
+
output: bp.all.output ?? allWin.pillars.output,
|
|
425
|
+
cacheCreate: bp.all.cacheCreate ?? allWin.pillars.cacheCreate,
|
|
426
|
+
cacheRead: bp.all.cacheRead ?? allWin.pillars.cacheRead,
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
}
|
|
394
430
|
dashData.active.push(d);
|
|
431
|
+
}
|
|
395
432
|
}
|
|
396
433
|
dashData.active.sort(
|
|
397
434
|
(a, b) =>
|
|
@@ -936,6 +973,29 @@ function renderDashboard(data, status = "", scrollOffset = 0) {
|
|
|
936
973
|
})();
|
|
937
974
|
|
|
938
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
|
+
}
|
|
939
999
|
// ── Custom insights — comparison vs the field + a concrete tip for the weakest metric
|
|
940
1000
|
emit(` ${hr()}`);
|
|
941
1001
|
emit(
|
|
@@ -974,45 +1034,45 @@ function renderDashboard(data, status = "", scrollOffset = 0) {
|
|
|
974
1034
|
chk(
|
|
975
1035
|
"Υ Yield",
|
|
976
1036
|
you.yield,
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
1037
|
+
tdLive.hcm.yield,
|
|
1038
|
+
tdLive.power.yield,
|
|
1039
|
+
tdLive.top.yield,
|
|
980
1040
|
fmtY,
|
|
981
1041
|
"compound more — reuse cache, raise output",
|
|
982
1042
|
);
|
|
983
1043
|
chk(
|
|
984
1044
|
"SNR",
|
|
985
1045
|
you.snr,
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
1046
|
+
tdLive.hcm.snr,
|
|
1047
|
+
tdLive.power.snr,
|
|
1048
|
+
tdLive.top.snr,
|
|
989
1049
|
fmtSNR,
|
|
990
1050
|
"tighten prompts — less input per unit output",
|
|
991
1051
|
);
|
|
992
1052
|
chk(
|
|
993
1053
|
"Leverage",
|
|
994
1054
|
you.leverage,
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
1055
|
+
tdLive.hcm.lev,
|
|
1056
|
+
tdLive.power.lev,
|
|
1057
|
+
tdLive.top.lev,
|
|
998
1058
|
(v) => fmtLev(v) + "×",
|
|
999
1059
|
"lean on cache-read — amplify prior context",
|
|
1000
1060
|
);
|
|
1001
1061
|
chk(
|
|
1002
1062
|
"Velocity",
|
|
1003
1063
|
you.velocity,
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1064
|
+
tdLive.hcm.vel,
|
|
1065
|
+
tdLive.power.vel,
|
|
1066
|
+
tdLive.top.vel,
|
|
1007
1067
|
(v) => v.toFixed(2),
|
|
1008
1068
|
"more output per input token",
|
|
1009
1069
|
);
|
|
1010
1070
|
chk(
|
|
1011
1071
|
"10xDEV",
|
|
1012
1072
|
you.dev10x,
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1073
|
+
tdLive.hcm.d10,
|
|
1074
|
+
tdLive.power.d10,
|
|
1075
|
+
tdLive.top.d10,
|
|
1016
1076
|
(v) => v.toFixed(2),
|
|
1017
1077
|
"raise leverage — every 10× lev adds 1 to 10xDEV",
|
|
1018
1078
|
);
|
|
@@ -1059,22 +1119,22 @@ function renderDashboard(data, status = "", scrollOffset = 0) {
|
|
|
1059
1119
|
emit(
|
|
1060
1120
|
` ${padEnd(label, 10)} ${padStart(dim(fmt(b)), 9)} ${padStart(white(fmt(h)), 9)} ${padStart(white(fmt(p)), 9)} ${padStart(gold(fmt(t)), 9)}`,
|
|
1061
1121
|
);
|
|
1062
|
-
tdRow("Υ Yield",
|
|
1063
|
-
tdRow("SNR",
|
|
1064
|
-
tdRow("Velocity",
|
|
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) =>
|
|
1065
1125
|
v.toFixed(2),
|
|
1066
1126
|
);
|
|
1067
1127
|
tdRow(
|
|
1068
1128
|
"Leverage",
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1129
|
+
tdLive.base.lev,
|
|
1130
|
+
tdLive.hcm.lev,
|
|
1131
|
+
tdLive.power.lev,
|
|
1132
|
+
tdLive.top.lev,
|
|
1073
1133
|
(v) => fmtLev(v) + "×",
|
|
1074
1134
|
);
|
|
1075
|
-
tdRow("10xDEV",
|
|
1135
|
+
tdRow("10xDEV", tdLive.base.d10, tdLive.hcm.d10, tdLive.power.d10, tdLive.top.d10, (v) => v.toFixed(2));
|
|
1076
1136
|
emit(
|
|
1077
|
-
` ${dim("
|
|
1137
|
+
` ${dim("AA baseline static · Top Evals live from your cascade · HCM/Power calibrate with user volume")}`,
|
|
1078
1138
|
);
|
|
1079
1139
|
}
|
|
1080
1140
|
|
|
@@ -1093,7 +1153,9 @@ function renderDashboard(data, status = "", scrollOffset = 0) {
|
|
|
1093
1153
|
emit();
|
|
1094
1154
|
emit(` ${hr()}`);
|
|
1095
1155
|
emit(` ${bold("Lifetime Tokens")} ${dim("archived submissions · never decreases")}`);
|
|
1096
|
-
const platforms = Object.entries(batched.per_platform ?? {})
|
|
1156
|
+
const platforms = Object.entries(batched.per_platform ?? {}).filter(
|
|
1157
|
+
([plat]) => plat !== "multi",
|
|
1158
|
+
);
|
|
1097
1159
|
for (const [plat, pw] of platforms) {
|
|
1098
1160
|
if (used >= budget - 2) break;
|
|
1099
1161
|
const pc = platformColor(plat);
|