sigrank 1.0.25 → 1.0.26
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/analytics/cascade.mjs +2 -7
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/tools/standard-record.mjs +15 -9
package/analytics/cascade.mjs
CHANGED
|
@@ -60,15 +60,10 @@ export {
|
|
|
60
60
|
* The four raw token pillars → the cascade.
|
|
61
61
|
*
|
|
62
62
|
* Object-signature wrapper around the canonical `@sigrank/cascade` cascade()
|
|
63
|
-
* (which takes positional args).
|
|
64
|
-
*
|
|
65
|
-
* Re-attaches the `mode` field via detectMode() so the 20+ call sites in
|
|
66
|
-
* this repo that read `result.mode` keep working.
|
|
63
|
+
* (which takes positional args). Re-attaches the `mode` field via detectMode()
|
|
64
|
+
* so the 20+ call sites in this repo that read `result.mode` keep working.
|
|
67
65
|
*/
|
|
68
66
|
export function cascade({ input, output, cacheCreate, cacheRead }) {
|
|
69
|
-
// Pass null through to cascade (→ tteop-spec) for canonical null semantics.
|
|
70
|
-
// detectMode receives the raw values (Number(null) = 0, which is fine for
|
|
71
|
-
// mode classification).
|
|
72
67
|
const result = cascadeCanonical(input, output, cacheCreate, cacheRead);
|
|
73
68
|
// Re-attach mode — the canonical package intentionally omits it (mode is a
|
|
74
69
|
// presentation-layer concern, not canonical math).
|
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.25",
|
|
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.26",
|
|
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",
|
|
@@ -125,15 +125,21 @@ export async function handleGetSigRankStandardRecord(args) {
|
|
|
125
125
|
const cacheWrite = tokenCount(args?.cache_write, "cache_write", false);
|
|
126
126
|
const cacheRead = tokenCount(args?.cache_read, "cache_read", false);
|
|
127
127
|
|
|
128
|
-
// Pass null through to cascade (→ tteop-spec) so canonical null semantics
|
|
129
|
-
// apply directly. Passing 0 would produce 0-valued metrics instead of null,
|
|
130
|
-
// losing the unavailable/zero distinction. No manual null override needed.
|
|
131
128
|
const c = cascade({
|
|
132
129
|
input,
|
|
133
130
|
output,
|
|
134
|
-
cacheCreate: cacheWrite,
|
|
135
|
-
cacheRead: cacheRead,
|
|
131
|
+
cacheCreate: cacheWrite ?? 0,
|
|
132
|
+
cacheRead: cacheRead ?? 0,
|
|
136
133
|
});
|
|
134
|
+
// Standard warning order: cache-unavailability warnings precede the
|
|
135
|
+
// dev10x_undefined warning (the "why" before the "what"). The standalone
|
|
136
|
+
// conformance runner validates warnings as ordered arrays.
|
|
137
|
+
const warnings = [];
|
|
138
|
+
if (cacheWrite === null) warnings.push("cache_write is unavailable; 10xDEV is undefined.");
|
|
139
|
+
if (cacheRead === null) warnings.push("cache_read is unavailable; Yield, Leverage, and 10xDEV are undefined.");
|
|
140
|
+
for (const w of (c.warnings || [])) {
|
|
141
|
+
if (!warnings.includes(w)) warnings.push(w);
|
|
142
|
+
}
|
|
137
143
|
|
|
138
144
|
return {
|
|
139
145
|
spec: SIGRANK_STANDARD_VERSION,
|
|
@@ -156,12 +162,12 @@ export async function handleGetSigRankStandardRecord(args) {
|
|
|
156
162
|
cache_read: cacheRead,
|
|
157
163
|
},
|
|
158
164
|
metrics: {
|
|
159
|
-
yield: c.yield,
|
|
160
|
-
leverage: c.leverage,
|
|
165
|
+
yield: cacheRead === null ? null : c.yield,
|
|
166
|
+
leverage: cacheRead === null ? null : c.leverage,
|
|
161
167
|
velocity: c.velocity,
|
|
162
168
|
snr: c.snr,
|
|
163
|
-
dev10x: c.dev10x,
|
|
169
|
+
dev10x: cacheWrite === null || cacheRead === null ? null : c.dev10x,
|
|
164
170
|
},
|
|
165
|
-
warnings
|
|
171
|
+
warnings,
|
|
166
172
|
};
|
|
167
173
|
}
|