sigrank 0.19.0 → 1.0.1
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 +158 -0
- package/MCP_SERVER_DESCRIPTION.md +172 -0
- package/README.md +89 -41
- package/adapters/index.mjs +1100 -0
- package/adapters/tokenpull.mjs +568 -0
- package/adapters.mjs +1 -865
- package/analytics/cascade.mjs +338 -0
- package/cascade.mjs +1 -274
- package/cli.mjs +1 -1853
- package/connect.mjs +1 -13
- package/identity/connect.mjs +13 -0
- package/identity/keystore.mjs +231 -0
- package/identity/sign.mjs +106 -0
- package/index.mjs +47 -162
- package/keystore.mjs +1 -242
- package/lib/constants.mjs +137 -0
- package/lib/pkg-version.mjs +59 -0
- package/manifest.json +46 -0
- package/narrate.mjs +1 -77
- package/package.json +41 -16
- package/preflight.mjs +1 -191
- package/presentation/cli.mjs +1926 -0
- package/presentation/narrate.mjs +219 -0
- package/presentation/tui-themes.mjs +189 -0
- package/presentation/tui.mjs +3316 -0
- package/prompts/check-my-efficiency.md +1 -0
- package/prompts/compare-with-leader.md +1 -0
- package/prompts/simulate-improvement.md +1 -0
- package/proxy.mjs +492 -0
- package/resources/class-tiers.md +81 -0
- package/resources/data-policy.md +31 -0
- package/resources/install-guide.md +59 -0
- package/resources/privacy-model.md +44 -0
- package/resources/scoring-formula.md +24 -0
- package/review.mjs +263 -0
- package/sign.mjs +1 -106
- package/submit/index.mjs +297 -0
- package/submit/preflight.mjs +191 -0
- package/submit.mjs +1 -303
- package/tokenpull.mjs +1 -576
- package/tokscale_analytics.mjs +864 -0
- package/tools/_framing.mjs +217 -0
- package/tools/_helpers.mjs +253 -0
- package/tools/_peer-matching.mjs +361 -0
- package/tools/_report.mjs +262 -0
- package/tools/_schemas.mjs +492 -0
- package/tools/_verifiers.mjs +148 -0
- package/tools/compare-operators.mjs +80 -0
- package/tools/compare-self.mjs +124 -0
- package/tools/describe-power-user.mjs +78 -0
- package/tools/diagnose-cascade.mjs +192 -0
- package/tools/discover-peers.mjs +198 -0
- package/tools/enroll.mjs +119 -0
- package/tools/get-best-operator.mjs +59 -0
- package/tools/get-leaderboard.mjs +27 -0
- package/tools/get-operator.mjs +33 -0
- package/tools/index.mjs +229 -0
- package/tools/optimize-efficiency.mjs +170 -0
- package/tools/rank-paste.mjs +51 -0
- package/tools/rank-windows.mjs +120 -0
- package/tools/self-improve.mjs +423 -0
- package/tools/simulate-change.mjs +207 -0
- package/tools/submit-paste.mjs +121 -0
- package/tools/submit-verified.mjs +153 -0
- package/tools/suggest-improvements.mjs +168 -0
- package/tools/tokenpull-compare.mjs +123 -0
- package/tools/tokenpull-submit.mjs +235 -0
- package/tools/tokenpull.mjs +113 -0
- package/tools/tokscale-breakdown.mjs +119 -0
- package/tools/tokscale-competitive-intel.mjs +45 -0
- package/tools/tokscale-cost-analysis.mjs +31 -0
- package/tools/tokscale-developer-profile.mjs +36 -0
- package/tools/tokscale-device-profile.mjs +35 -0
- package/tools/tokscale-market-share.mjs +38 -0
- package/tools/tokscale-mcp-usage.mjs +33 -0
- package/tools/tokscale-model-trends.mjs +32 -0
- package/tools/watch-tokenpull.mjs +134 -0
- package/tools.mjs +1 -3897
- package/tui.mjs +4 -2650
- package/banner.svg +0 -7
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.0.203](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.0.202...v0.0.203) (2026-08-12)
|
|
4
|
+
|
|
5
|
+
### Chores
|
|
6
|
+
|
|
7
|
+
* auto-publish version bump (github-actions bot)
|
|
8
|
+
|
|
9
|
+
## [0.0.202](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.0.201...v0.0.202) (2026-08-12)
|
|
10
|
+
|
|
11
|
+
### Docs
|
|
12
|
+
|
|
13
|
+
* add bestuser-router-mcp + sigarena to ecosystem table in README — all 4 repos now have identical 7-repo ecosystem tables
|
|
14
|
+
|
|
15
|
+
## [0.0.201](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.0.200...v0.0.201) (2026-08-12)
|
|
16
|
+
|
|
17
|
+
### Chores
|
|
18
|
+
|
|
19
|
+
* sync package.json + server.json + manifest.json to 0.0.201 (match npm published version)
|
|
20
|
+
|
|
21
|
+
## [0.0.200](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.0.179...v0.0.200) (2026-07-27 — 2026-08-10)
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
* 24-sub-stage experience ladder — mirror server's RS05_CLASS_THRESHOLDS ([adbd6e2](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/adbd6e2))
|
|
26
|
+
* oh-my-pi (omp) added as a native 4-pillar platform adapter (#32) ([c7ddb78](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/c7ddb78))
|
|
27
|
+
* opt-in provider usage proxy for capturing real token counts from API responses ([410113f](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/410113f))
|
|
28
|
+
* omp dashboard loading is now opt-in in the TUI ([23613ed](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/23613ed))
|
|
29
|
+
* omp Stage 2 — incremental SQLite cache for omp scans ([ffdf67c](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/ffdf67c))
|
|
30
|
+
* sync 10 build archetypes — new names, families, construction-before-reuse precedence ([120be0b](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/120be0b))
|
|
31
|
+
|
|
32
|
+
### Bug Fixes
|
|
33
|
+
|
|
34
|
+
* resolve 8-pass review + privacy — single source of truth for version, tiers, cascade, constants ([56653ab](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/56653ab))
|
|
35
|
+
* npm audit fix — resolve 3 transitive dependency vulnerabilities ([3bb7a11](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/3bb7a11))
|
|
36
|
+
* resolve package.json path in cli.mjs (./ → ../) ([4fe94cd](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/4fe94cd))
|
|
37
|
+
* ARCH+ sub-stage thresholds — 7T/3T/1T split (was all 7T) ([da0f12e](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/da0f12e))
|
|
38
|
+
* add 9router to TOKSCALE_CLIENT_MAP — closes platform sync gap ([d4b35ad](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/d4b35ad))
|
|
39
|
+
* dedup duplicate messages + estimate cacheCreate when NULL ([ff60117](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/ff60117))
|
|
40
|
+
* read native cache_creation_tokens instead of estimating, then reverted back to ioRatio estimation ([fc83512](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/fc83512), [f310f49](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/f310f49))
|
|
41
|
+
* replace legacy 3-tier references with canonical 8-tier ladder ([f37701b](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/f37701b))
|
|
42
|
+
* harden publish push-back + wire 3 missing contract tests into CI ([cdaa511](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/cdaa511))
|
|
43
|
+
* publish to npm BEFORE git commit (prevents drift on failed publish) ([083b066](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/083b066))
|
|
44
|
+
|
|
45
|
+
### Performance
|
|
46
|
+
|
|
47
|
+
* omp Stage 1 — bounded concurrency (c=8) + line guard ([9643c91](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/9643c91))
|
|
48
|
+
|
|
49
|
+
### CI/Chores
|
|
50
|
+
|
|
51
|
+
* auto-publish to npm on push to main + dispatch version-sync to app ([f6ebc35](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/f6ebc35))
|
|
52
|
+
* remove cross-repo dispatch — app auto-syncs from npm directly ([d590885](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/d590885))
|
|
53
|
+
* full repo cleanup — organize, dedupe, sync versions ([9992127](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/9992127))
|
|
54
|
+
* add workflow_dispatch trigger to publish.yml ([6ec383b](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/6ec383b))
|
|
55
|
+
* add .DS_Store to .gitignore ([fa78f50](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/fa78f50))
|
|
56
|
+
* gitignore bun.lock ([adee455](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/adee455))
|
|
57
|
+
* add bunx sigrank to README quickstart ([977b92e](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/977b92e))
|
|
58
|
+
* add Bun/bunx quick reference to AGENTS.md ([2c73d0c](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/2c73d0c))
|
|
59
|
+
* sync server.json to 0.0.200 + publish to MCP Registry ([9c97b5f](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/9c97b5f))
|
|
60
|
+
|
|
61
|
+
## [0.0.179](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.0.178...v0.0.179) (2026-07-27)
|
|
62
|
+
|
|
63
|
+
### Features
|
|
64
|
+
|
|
65
|
+
* consent acknowledgment in enroll + submit flows (D1) — `tools/enroll.mjs` sends `consent_acknowledged=true` + `terms_version` + `privacy_version`; `presentation/cli.mjs` prompts for explicit TTY consent; `submit/index.mjs` embeds consent fields in Schema 1.0 payloads; new `resources/data-policy.md` registered as `sigrank://data-policy` MCP resource ([6789952](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/6789952))
|
|
66
|
+
|
|
67
|
+
### Bug Fixes
|
|
68
|
+
|
|
69
|
+
* TUI input during startup — navigation/quit now accepted while startup data is still loading ([d2078ab](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/d2078ab))
|
|
70
|
+
* CI failures — `client_rollup: []` + `detected_clients: []` added to empty-data early returns in `tokscale_analytics.mjs`; contract test pointed at `submit/index.mjs` (was `submit.mjs` re-export); `@hono/node-server ^2.0.5` override for fast-uri vuln GHSA-v2hh-gcrm-f6hx ([6b56419](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/6b56419), [a2ebe8e](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/a2ebe8e))
|
|
71
|
+
* regenerate `package-lock.json` from scratch — previous lock file had invalid package tree (`npm ci` failed in CI) ([81781ec](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/81781ec))
|
|
72
|
+
|
|
73
|
+
### Refactor
|
|
74
|
+
|
|
75
|
+
* observatory-spine restructure — `tools.mjs` split into 28 individual tool files under `tools/`; files moved to domain dirs (`adapters/`, `analytics/`, `identity/`, `presentation/`, `prompts/`, `resources/`, `submit/`); inline resources/prompts extracted; root `.mjs` files are now 1-line re-export shims; observatory spine synced from sigrank-app ([6c06fee](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/6c06fee), [dc66eff](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/dc66eff), [9c92223](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/9c92223))
|
|
76
|
+
|
|
77
|
+
### Chores
|
|
78
|
+
|
|
79
|
+
* remove release-please workflow — versioning is now manual per VERSIONING_RULESET.md; release-please was causing version jumps (0.0.178 → 0.11.4 → 0.19.0) despite `bump-patch-only` ([adeeb65](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/adeeb65))
|
|
80
|
+
* owner-only tools (ops-review + retire-operator) moved to sigadmin MCP ([0c9564b](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/0c9564b))
|
|
81
|
+
* add OKF frontmatter to all spine docs (30 files) ([a6c722e](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/a6c722e))
|
|
82
|
+
* remove fake DRS environment.yaml ([71d3d60](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/71d3d60))
|
|
83
|
+
* remove restructure planning docs (restructure complete) ([a8ae8cc](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/a8ae8cc))
|
|
84
|
+
* CI: bump actions/checkout 4→7, setup-node 4→7, upload-artifact 4→7, github-script 7→9 ([9063b5e](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/9063b5e), [e7f5039](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/e7f5039), [e897921](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/e897921), [c4dcf16](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/c4dcf16))
|
|
85
|
+
* deps: bump tokscale in the patch-updates group ([b204b40](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/b204b40))
|
|
86
|
+
|
|
87
|
+
## [0.19.1](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.19.0...v0.19.1) (2026-07-17)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
### Bug Fixes
|
|
91
|
+
|
|
92
|
+
* revert to 3-digit versioning (0.0.178) + enforce in CI ([40aa9a6](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/40aa9a6d1c51ca299974e6fdfc4b36f24369635f))
|
|
93
|
+
|
|
94
|
+
## [0.19.0](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.18.1...v0.19.0) (2026-07-14)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
### Features
|
|
98
|
+
|
|
99
|
+
* add 'other' platform adapter for user-supplied token data ([0e6af8e](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/0e6af8e36620df88c13822e292499b003442f645))
|
|
100
|
+
* auto-detect platforms via tokscale instead of brute-force all adapters ([e72d2d9](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/e72d2d9f5615832cd58eaeff7e17ab961dc6fa49))
|
|
101
|
+
* complete tokscale client map (40 clients) + model breakdown tool ([657b87a](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/657b87a690576ad81396e219c61447198ada67d8))
|
|
102
|
+
* platform sync automation script + weekly CI check ([29096aa](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/29096aad1b2f3c0bce6dad15d8c4fa59871793e4))
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
### Bug Fixes
|
|
106
|
+
|
|
107
|
+
* unescaped backticks in index.mjs template literal + add devin/opencode to CLI platform list ([24cfdfe](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/24cfdfe956f4776fe8d88f2108a6dd644f7269d8))
|
|
108
|
+
|
|
109
|
+
## [0.18.1](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.18.0...v0.18.1) (2026-07-14)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
### Bug Fixes
|
|
113
|
+
|
|
114
|
+
* **test:** ALL_PLATFORMS count 15→16 + accept records() for devin adapter ([8d7f0f5](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/8d7f0f56cea3686e046a407732233f9bbd7d4916))
|
|
115
|
+
|
|
116
|
+
## [0.18.0](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.17.2...v0.18.0) (2026-07-14)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
### Features
|
|
120
|
+
|
|
121
|
+
* Lane 3 — intent schema files + competitive layer + eval benchmark ([42b9607](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/42b9607ba4cec8aa5f169b1caf74aa05017c4856))
|
|
122
|
+
* multi-platform support in tokenpull + tokenpull_submit ([c2d1458](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/c2d1458d1f899034e9826d2100b8ec60b421ddd4))
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
### Bug Fixes
|
|
126
|
+
|
|
127
|
+
* align manifest.json version to 0.17.2 (matches package.json + server.json) ([30c3a37](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/30c3a372b3ac212bc99fd64535687cf6789922f2))
|
|
128
|
+
* auto-clear code buffer on sign-in failure (0.17.5) ([72caa9a](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/72caa9a246c85e38663989981cd233ae98c3b03f))
|
|
129
|
+
* curl fallback for Vercel bot protection 403 (0.0.177) ([abc8610](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/abc861041a3db14497383caecb39550667ec3b93))
|
|
130
|
+
* Devin adapter reads from sessions.db (real per-message telemetry) ([a5aaaf2](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/a5aaaf275516e793aec0e58c13c09d985e68d05c))
|
|
131
|
+
* Devin tokens now readable via tokenpull (tokscale fallback) ([abfb1eb](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/abfb1eb93fd92f669d742ce8b383dffc35ef094f))
|
|
132
|
+
* Esc/arrow-key race condition in TUI (0.17.4) ([555e6bd](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/555e6bd3dd5e45963eff2ff95d85b02955d40e2b))
|
|
133
|
+
* resolve CodeQL url-substring-sanitization alert (0.0.176) ([babf863](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/babf86379a2d97869738a1c8b01269c1d8c149bf))
|
|
134
|
+
* route Devin through Codex-style ioRatio split ([08d4441](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/08d4441437ce38bdfacc8936d1771d654999ac28))
|
|
135
|
+
* unblock sign-in deadlock + keystore resilience (0.17.3) ([569fc94](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/569fc948cd0f74fdf930113074c562724927ffe8))
|
|
136
|
+
|
|
137
|
+
## [0.17.0](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.16.1...v0.17.0) (2026-07-10)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
### Features
|
|
141
|
+
|
|
142
|
+
* add 4 MCP resources (scoring formula, class tiers, install guide, privacy model) ([1227828](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/1227828159c299bd1a5e0ebf3bb47aece3d3583d))
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
### Bug Fixes
|
|
146
|
+
|
|
147
|
+
* add .mcpbignore + fix manifest.json repository object for MCPB bundle ([eb1046f](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/eb1046f6e291db8681e01aa06593091a9b94447d))
|
|
148
|
+
* add title annotations to all 15 MCP tools (Anthropic directory requirement E) ([36e7d5d](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/36e7d5d793fe25d4dd9d780422309594a4118311))
|
|
149
|
+
* bump manifest.json to 0.16.1 + update description ([abd19b0](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/abd19b0a6a713389c1f0b4eb6b17ccc41c9825bd))
|
|
150
|
+
* Smithery bundle + metadata fixes ([d2a3a10](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/d2a3a10d5106c506ea2a57ac3f6ccc36ee9a55f6))
|
|
151
|
+
* update server.json — add registryBaseUrl, _meta, better description ([a929a6e](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/a929a6e4052b9edb9d549434f803a85f5d4fc572))
|
|
152
|
+
|
|
153
|
+
## [0.16.1](https://github.com/SunrisesIllNeverSee/sigrank-mcp/compare/v0.16.0...v0.16.1) (2026-07-09)
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
### Bug Fixes
|
|
157
|
+
|
|
158
|
+
* remove readOnlyHint from watch_tokenpull ([c867eed](https://github.com/SunrisesIllNeverSee/sigrank-mcp/commit/c867eedc9de1f4f37e0a9db08bc41aa0d426be33))
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# SigRank MCP Server
|
|
2
|
+
|
|
3
|
+
> Operator leaderboard measuring users, not models — 24 tools, TUI, signed submit, privacy-first.
|
|
4
|
+
|
|
5
|
+
SigRank is the first leaderboard that ranks **AI operators** — the humans — by token cascade efficiency, not the models. The yield metric (Υ = cache_read × output / input²) turns raw token telemetry into a competitive ranking on [signalaf.com](https://signalaf.com).
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx sigrank
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or add to your MCP client config:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"mcpServers": {
|
|
18
|
+
"sigrank": {
|
|
19
|
+
"command": "npx",
|
|
20
|
+
"args": ["sigrank"],
|
|
21
|
+
"env": {
|
|
22
|
+
"SIGRANK_API_BASE": "https://signalaf.com"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**No API key required** for read tools (leaderboard, operator profiles, ranking). Submit tools need a Supabase anon key (free, set during `sigrank enroll`).
|
|
30
|
+
|
|
31
|
+
## Privacy
|
|
32
|
+
|
|
33
|
+
The scanner runs **locally**. Only four token counts leave the machine:
|
|
34
|
+
- `input` — tokens sent to the model
|
|
35
|
+
- `output` — tokens generated by the model
|
|
36
|
+
- `cacheCreate` — tokens written to cache
|
|
37
|
+
- `cacheRead` — tokens read from cache
|
|
38
|
+
|
|
39
|
+
**Never** prompts. **Never** code. **Never** outputs. Submissions are ed25519-signed and server-verifiable.
|
|
40
|
+
|
|
41
|
+
## TUI
|
|
42
|
+
|
|
43
|
+
SigRank ships with a full terminal UI (`sigrank tui`) — a live dashboard for your token cascade:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npx sigrank tui
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Features:
|
|
50
|
+
- Live cascade metrics (Υ Yield, SNR, Leverage, Velocity, 10xDEV)
|
|
51
|
+
- Real-time leaderboard feed from signalaf.com
|
|
52
|
+
- Operator class tier display (8-tier experience ladder: ARCH+ to IGNITER)
|
|
53
|
+
- Per-window breakdowns (7d / 30d / 90d / all-time)
|
|
54
|
+
- Keyboard-driven — no mouse needed
|
|
55
|
+
|
|
56
|
+
## CLI Commands
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npx sigrank enroll # Register as an operator (generates ed25519 keypair)
|
|
60
|
+
npx sigrank submit # Submit token telemetry to the board
|
|
61
|
+
npx sigrank tui # Launch the terminal UI dashboard
|
|
62
|
+
npx sigrank rank # Quick local rank check (no submit)
|
|
63
|
+
npx sigrank diagnose # Diagnose cascade inefficiencies
|
|
64
|
+
npx sigrank improve # Get improvement suggestions
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## The 24 MCP Tools
|
|
68
|
+
|
|
69
|
+
### Read-only — pure math (no auth, no filesystem)
|
|
70
|
+
|
|
71
|
+
| # | Tool | What it does |
|
|
72
|
+
|---|------|-------------|
|
|
73
|
+
| 1 | `rank_paste` | Paste token counts, get projected SigRank rank instantly. Computes the full yield cascade locally (Υ, SNR, Leverage, Velocity, 10xDEV, class tier). No network calls. |
|
|
74
|
+
| 2 | `rank_windows` | Rank all four time windows (7d/30d/90d/all-time) in one call from a dashboard paste. Paste the full table from ccusage, tokscale, or Claude Max dashboard. |
|
|
75
|
+
| 3 | `simulate_change` | "What if I changed my token mix?" — takes your current pillars + proposed changes, runs the cascade on both, returns exact Υ delta, class change, and per-metric diffs. Pure local math. |
|
|
76
|
+
| 4 | `diagnose_cascade` | Analyzes your token cascade and diagnoses where you're leaking efficiency. Returns ranked list of leaks with severity, findings, recommendations, and estimated Υ impact per fix. |
|
|
77
|
+
| 5 | `suggest_improvements` | Generates ranked, simulated improvement suggestions. Tests multiple strategies (increase cache reads, reduce input, increase output, optimize cache creation), simulates each, returns ranked by Υ impact. |
|
|
78
|
+
| 6 | `self_improve` | One-click optimize — runs the full cycle in one call: tokenpull → diagnose → suggest → simulate. Returns diagnosis + suggestions + simulated impact of the best change. Supports scope modes (daily/weekly/trend). |
|
|
79
|
+
|
|
80
|
+
### Read-only — calls signalaf.com API (no auth)
|
|
81
|
+
|
|
82
|
+
| # | Tool | What it does |
|
|
83
|
+
|---|------|-------------|
|
|
84
|
+
| 7 | `get_leaderboard` | Fetch the live public leaderboard from signalaf.com. Returns all ranked operators sorted by yield, with codename, Υ, leverage, velocity, class, and rank position. |
|
|
85
|
+
| 8 | `get_operator` | Get any operator's full profile by codename. Returns detailed metrics + per-window breakdowns (7d/30d/90d/all-time) with the four token pillars per window. |
|
|
86
|
+
| 9 | `discover_peers` | Find mentors, peers, and complementary operators for your operator on the leaderboard. |
|
|
87
|
+
|
|
88
|
+
### Read-only — local filesystem (no auth, no network)
|
|
89
|
+
|
|
90
|
+
| # | Tool | What it does |
|
|
91
|
+
|---|------|-------------|
|
|
92
|
+
| 10 | `tokenpull` | Pull your LOCAL token usage from session logs and rank it across all four windows — zero paste. Reads token counts, not message content. Numbers stay on your machine. 17 platform adapters. |
|
|
93
|
+
| 11 | `tokenpull_compare` | Pull token usage from ALL four local sources in parallel (JSONL canon, ccusage CLI, token-dashboard SQLite, tokscale) and compare side-by-side with delta % vs baseline. |
|
|
94
|
+
| 12 | `watch_tokenpull` | One poll per call — pulls local token logs and returns current cascade for the watched window. Re-call at your desired cadence to monitor. With `submit:true`, signs + publishes (rate-limited to once per 5 min). |
|
|
95
|
+
|
|
96
|
+
### Write — submit to board (needs enrolled identity)
|
|
97
|
+
|
|
98
|
+
| # | Tool | What it does |
|
|
99
|
+
|---|------|-------------|
|
|
100
|
+
| 13 | `submit_paste` | Ranks a paste of token counts AND publishes to the live board in one call. Computes local preview, then submits to server for authoritative scoring. Returns both local + server results. |
|
|
101
|
+
| 14 | `tokenpull_submit` | Pull your LOCAL token usage AND publish to the board in one call — the zero-paste flow. Reads pillars per window, computes cascade, submits each window server-side. Token-only, no prompt content. |
|
|
102
|
+
| 15 | `submit_verified` | Publish your LOCAL token runs as a VERIFIED operator — the enrolled, signed path. Reads pillars, builds Schema 1.0 snapshot, ed25519-signs with your device key, POSTs to board. Requires `enroll` first. |
|
|
103
|
+
| 16 | `enroll` | Bind THIS device to your SigRank operator. Paste the key from signalaf.com → Settings → "New key". Generates + stores a local ed25519 keypair. Only the PUBLIC key is ever sent. |
|
|
104
|
+
|
|
105
|
+
### Tokscale analytics — local tokscale data (no auth, no network)
|
|
106
|
+
|
|
107
|
+
| # | Tool | What it does |
|
|
108
|
+
|---|------|-------------|
|
|
109
|
+
| 17 | `tokscale_breakdown` | Per-model token breakdown across platforms (models under threshold → "other"). |
|
|
110
|
+
| 18 | `tokscale_market_share` | AI tool market share: each tool's % of tokens/cost/messages, ranked. From local tokscale data. |
|
|
111
|
+
| 19 | `tokscale_developer_profile` | Per-developer usage profile across all detected tools: model mix, pillars, sessions, workspaces. Paths redacted. |
|
|
112
|
+
| 20 | `tokscale_model_trends` | Model adoption over time: per-model first/last seen, active days, month-by-month adoption curve. |
|
|
113
|
+
| 21 | `tokscale_cost_analysis` | Cost per developer per model: cost_per_million_tokens, cost_per_message, share_cost, client rollup. |
|
|
114
|
+
| 22 | `tokscale_device_profile` | Device fingerprinting: installed tools, session counts, active days, day-of-week distribution, concurrency. Paths redacted. |
|
|
115
|
+
| 23 | `tokscale_mcp_usage` | MCP server usage: detected servers, detection window, active days. |
|
|
116
|
+
| 24 | `tokscale_competitive_intel` | Competitive intelligence for any AI tool: rank, model mix, cost efficiency, share vs all competitors. |
|
|
117
|
+
|
|
118
|
+
### Moved to bestuser-router-mcp (5 intent tools)
|
|
119
|
+
|
|
120
|
+
The following 5 tools were moved to [bestuser-router-mcp](https://github.com/SunrisesIllNeverSee/bestuser-router-mcp) to keep sigrank-mcp focused as a measurement instrument. They are available as a separate npm package (`npx bestuser-router-mcp`):
|
|
121
|
+
|
|
122
|
+
| Tool | Intent | Trigger |
|
|
123
|
+
|------|--------|---------|
|
|
124
|
+
| `get_best_operator` | BEST_OPERATOR | "who is the best AI user?" |
|
|
125
|
+
| `compare_self` | COMPARE_SELF | "how do I measure up?" |
|
|
126
|
+
| `compare_operators` | COMPARE_OPERATORS | "compare X vs Y" |
|
|
127
|
+
| `describe_power_user` | DESCRIBE_POWER_USER | "what is a power user?" |
|
|
128
|
+
| `optimize_efficiency` | OPTIMIZE_EFFICIENCY | "how can I use AI more efficiently?" |
|
|
129
|
+
|
|
130
|
+
## Intent Taxonomy
|
|
131
|
+
|
|
132
|
+
The intent-based tools (in bestuser-router-mcp) are designed to map natural-language queries to the right MCP call. Calling agents and LLMs can use these intent mappings to route user questions:
|
|
133
|
+
|
|
134
|
+
| Intent | Trigger phrases | Tool |
|
|
135
|
+
|--------|----------------|------|
|
|
136
|
+
| `BEST_OPERATOR` | "who is the best AI user?", "AI user leaderboard", "AI champions", "top AI operator" | `get_best_operator` |
|
|
137
|
+
| `COMPARE_SELF` | "how do I measure up?", "am I a power user?", "compare me to others", "am I using AI well?" | `compare_self` |
|
|
138
|
+
| `COMPARE_OPERATORS` | "compare operator X vs Y", "who is more efficient?", "how do two AI users compare?" | `compare_operators` |
|
|
139
|
+
| `DESCRIBE_POWER_USER` | "what is an AI power user?", "what makes a good AI user?", "describe advanced AI user behavior" | `describe_power_user` |
|
|
140
|
+
| `OPTIMIZE_EFFICIENCY` | "optimize token usage", "reduce token burn", "use AI efficiently", "stop tokenmaxxing" | `optimize_efficiency` |
|
|
141
|
+
|
|
142
|
+
### Example prompt → tool mappings
|
|
143
|
+
|
|
144
|
+
- "Who is the best AI user right now?" → `get_best_operator`
|
|
145
|
+
- "How do I measure up to other AI users?" → `compare_self`
|
|
146
|
+
- "Am I an AI power user?" → `compare_self`
|
|
147
|
+
- "Compare operator X vs Y" → `compare_operators`
|
|
148
|
+
- "What is an AI power user?" → `describe_power_user`
|
|
149
|
+
- "How can I use AI more efficiently?" → `optimize_efficiency`
|
|
150
|
+
- "Show me the AI user leaderboard" → `get_best_operator` (or `get_leaderboard` for raw data)
|
|
151
|
+
|
|
152
|
+
## Key Facts
|
|
153
|
+
|
|
154
|
+
| Field | Value |
|
|
155
|
+
|-------|-------|
|
|
156
|
+
| npm package | `sigrank` |
|
|
157
|
+
| GitHub | https://github.com/SunrisesIllNeverSee/sigrank-mcp |
|
|
158
|
+
| Website | https://signalaf.com |
|
|
159
|
+
| License | MIT |
|
|
160
|
+
| Transport | stdio |
|
|
161
|
+
| Platform | Cross-platform (Node.js) |
|
|
162
|
+
| Language | JavaScript |
|
|
163
|
+
| Tools | 24 |
|
|
164
|
+
| Auth | None for reads; Supabase anon key for submits |
|
|
165
|
+
| Category | Developer Tools |
|
|
166
|
+
|
|
167
|
+
## Registries
|
|
168
|
+
|
|
169
|
+
- [Official MCP Registry](https://registry.modelcontextprotocol.io)
|
|
170
|
+
- [Smithery](https://smithery.ai)
|
|
171
|
+
- [Glama](https://glama.ai)
|
|
172
|
+
- [npm](https://www.npmjs.com/package/sigrank)
|
package/README.md
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
# SigRank MCP
|
|
1
|
+
# SigRank SignalAF MCP
|
|
2
2
|
|
|
3
|
-
> **🏆 SigRank is live: [signalaf.com](https://signalaf.com)** — the
|
|
4
|
-
>
|
|
5
|
-
>
|
|
3
|
+
> **🏆 SigRank SignalAF is live: [signalaf.com](https://signalaf.com)** — the AI operator
|
|
4
|
+
> evaluation leaderboard. Ranks how efficiently you use AI by token cascade
|
|
5
|
+
> efficiency (Υ = cache_read × output / input²), not how much. Run `npx sigrank`
|
|
6
|
+
> to see your cascade now. _Token counts only. Never your prompts._
|
|
6
7
|
|
|
7
8
|
<div align="center">
|
|
8
9
|
|
|
9
|
-
<p><img src="./.github/assets/og-card.png" alt="SigRank —
|
|
10
|
+
<p><img src="./.github/assets/og-card.png" alt="SigRank SignalAF — AI operator evaluation and token cascade efficiency leaderboard" width="800"></p>
|
|
10
11
|
|
|
11
12
|
**The yield cascade + live leaderboard as MCP tools any agent can call.**
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
SigRank evaluates the human using the AI — not the AI model itself.
|
|
14
15
|
|
|
15
16
|
[](https://www.npmjs.com/package/sigrank)
|
|
16
17
|
[](https://github.com/SunrisesIllNeverSee/sigrank-mcp/actions/workflows/ci.yml)
|
|
@@ -31,7 +32,7 @@ For all builders, burners and 10xers.
|
|
|
31
32
|
|
|
32
33
|
## Table of Contents
|
|
33
34
|
|
|
34
|
-
- [The SigRank ecosystem](#the-sigrank-ecosystem)
|
|
35
|
+
- [The SigRank SignalAF ecosystem](#the-sigrank-signalaf-ecosystem)
|
|
35
36
|
- [Quickstart](#quickstart--3-steps-to-the-board)
|
|
36
37
|
- [Install from GitHub](#install-from-github)
|
|
37
38
|
- [Install via Smithery](#install-via-smithery)
|
|
@@ -49,19 +50,21 @@ For all builders, burners and 10xers.
|
|
|
49
50
|
|
|
50
51
|
| The board | Your operator profile |
|
|
51
52
|
| :-----------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------: |
|
|
52
|
-
| [](https://signalaf.com/board/all) | [](https://signalaf.com) |
|
|
53
|
+
| [](https://signalaf.com/board/all) | [](https://signalaf.com) |
|
|
53
54
|
| Every operator ranked by **Υ Yield** — the architecture of the cascade, not raw spend | Cascade layer, class, and fingerprint — derived from four token counts |
|
|
54
55
|
|
|
55
56
|
> **Run [`sigrank enroll`](#sign-in--submit) then [`sigrank submit`](#sign-in--submit) to get ranked and claim your public profile at [signalaf.com](https://signalaf.com).**
|
|
56
57
|
|
|
57
58
|
---
|
|
58
59
|
|
|
59
|
-
## The SigRank ecosystem
|
|
60
|
+
## The SigRank SignalAF ecosystem
|
|
60
61
|
|
|
61
62
|
| Repo | What it is | Install |
|
|
62
63
|
|------|-----------|---------|
|
|
63
64
|
| **[sigrank-mcp](https://github.com/SunrisesIllNeverSee/sigrank-mcp)** (this repo) | The instrument — extracts 4 token pillars, computes the cascade, submits to the leaderboard. MCP server + TUI dashboard. | `npx sigrank` |
|
|
64
65
|
| **[sigrank-app](https://github.com/SunrisesIllNeverSee/sigrank-app)** | The leaderboard — signalaf.com. Privacy-preserving operator profiles, class tiers, board rankings. | [signalaf.com](https://signalaf.com) |
|
|
66
|
+
| **[bestuser-router-mcp](https://github.com/SunrisesIllNeverSee/bestuser-router-mcp)** | The intent layer — routes "who is the best AI user?" queries to SigRank SignalAF's leaderboard. MCP server for AI assistants. | `npx bestuser-router-mcp` |
|
|
67
|
+
| **[sigarena](https://github.com/SunrisesIllNeverSee/sigarena)** | The satellite — public LLM operator evals at sigeconomy.com. Read-only leaderboard, SEO/AEO surface. | [sigeconomy.com](https://sigeconomy.com) |
|
|
65
68
|
| **[signaf](https://github.com/SunrisesIllNeverSee/signa)** | The coach — reads your session logs, builds a taste profile, measures ASI, coaches you on token efficiency. | `npx @burnmydays/signaf` |
|
|
66
69
|
| **[sigrank-vscode](https://github.com/SunrisesIllNeverSee/sigrank-vscode)** | The IDE extension — see your cascade metrics inline in VS Code. | `code --install-extension sigrank.sigrank` |
|
|
67
70
|
| **[fundscore](https://github.com/SunrisesIllNeverSee/fundscore)** | The repo scorer — investor-readiness scoring for GitHub repos. CLI + MCP server. | `npx fundscore` |
|
|
@@ -71,7 +74,7 @@ For all builders, burners and 10xers.
|
|
|
71
74
|
| Site | What it is |
|
|
72
75
|
| ---- | ---------- |
|
|
73
76
|
| **[SIGNOMY](https://signomy.xyz)** | Governed AI agent marketplace where ranked agents form teams, fill slots, run missions, and earn revenue under constitutional protocol. Agents are free. Operators pay. |
|
|
74
|
-
| **[MO§ES](https://mos2es.com)** | The governance framework that underpins SigRank, SIGNOMY, and all governed agent operations. Structural accountability for agentic systems. |
|
|
77
|
+
| **[MO§ES](https://mos2es.com)** | The governance framework that underpins SigRank SignalAF, SIGNOMY, and all governed agent operations. Structural accountability for agentic systems. |
|
|
75
78
|
|
|
76
79
|
## Quickstart — 3 steps to the board
|
|
77
80
|
|
|
@@ -96,6 +99,7 @@ Or just explore without signing in:
|
|
|
96
99
|
```bash
|
|
97
100
|
sigrank # launches the full tabbed TUI (dashboard, compare, board, watch)
|
|
98
101
|
npx sigrank board --once # print the live leaderboard once
|
|
102
|
+
bunx sigrank board --once # same, via Bun (faster startup if you have it)
|
|
99
103
|
```
|
|
100
104
|
|
|
101
105
|
## Install from GitHub
|
|
@@ -124,7 +128,7 @@ sigrank
|
|
|
124
128
|
|
|
125
129
|
## Install via Smithery
|
|
126
130
|
|
|
127
|
-
SigRank is available on [Smithery](https://smithery.ai/servers/burnmydays/sigrank) as a stdio MCP bundle — one-click install for Claude Desktop, Cursor, and other MCP clients.
|
|
131
|
+
SigRank SignalAF is available on [Smithery](https://smithery.ai/servers/burnmydays/sigrank) as a stdio MCP bundle — one-click install for Claude Desktop, Cursor, and other MCP clients.
|
|
128
132
|
|
|
129
133
|
### Smithery CLI
|
|
130
134
|
|
|
@@ -132,7 +136,7 @@ SigRank is available on [Smithery](https://smithery.ai/servers/burnmydays/sigran
|
|
|
132
136
|
# Install Smithery CLI
|
|
133
137
|
npm install -g smithery
|
|
134
138
|
|
|
135
|
-
# Connect to SigRank (downloads the MCPB bundle locally)
|
|
139
|
+
# Connect to SigRank SignalAF (downloads the MCPB bundle locally)
|
|
136
140
|
smithery mcp add burnmydays/sigrank --id sigrank
|
|
137
141
|
|
|
138
142
|
# List available tools
|
|
@@ -154,7 +158,7 @@ smithery tool call sigrank rank_paste '{"text": "1000000 500000 50000 800000"}'
|
|
|
154
158
|
## Commands
|
|
155
159
|
|
|
156
160
|
```
|
|
157
|
-
⊙ SigRank CLI v0.0.177
|
|
161
|
+
⊙ SigRank SignalAF CLI v0.0.177
|
|
158
162
|
|
|
159
163
|
Default (no args)
|
|
160
164
|
sigrank unified dashboard: cascade + token pillars + board
|
|
@@ -172,12 +176,15 @@ Commands
|
|
|
172
176
|
watch live tune meter — ALL active platforms × all windows, every 30s
|
|
173
177
|
watch --platform codex watch only one platform (optional filter)
|
|
174
178
|
watch --window 7d watch only one window (optional filter)
|
|
179
|
+
proxy opt-in local Anthropic/OpenAI usage proxy
|
|
180
|
+
proxy --port 9000 run the proxy on a custom loopback port
|
|
175
181
|
|
|
176
182
|
Options
|
|
177
183
|
--window 7d · 30d · 90d · all (default: 30d for board; all windows for watch)
|
|
178
184
|
--platform claude · codex · amp · gemini · opencode · goose · …
|
|
179
185
|
--refresh poll interval in seconds (default: 30)
|
|
180
186
|
--once print once and exit (board only)
|
|
187
|
+
--port proxy port (default: 8787)
|
|
181
188
|
|
|
182
189
|
For AI clients (not typeable)
|
|
183
190
|
In a piped/non-TTY context, sigrank is an MCP stdio server.
|
|
@@ -193,6 +200,34 @@ Examples
|
|
|
193
200
|
sigrank board --window all --once
|
|
194
201
|
```
|
|
195
202
|
|
|
203
|
+
### Optional API usage proxy
|
|
204
|
+
|
|
205
|
+
Some desktop coding agents receive provider usage in API responses but do not
|
|
206
|
+
persist it in their local session files. SigRank SignalAF can capture those
|
|
207
|
+
provider-reported counts through a manually started loopback proxy:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
sigrank proxy # http://localhost:8787
|
|
211
|
+
sigrank proxy --port 9000 # custom port
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Then point a compatible tool's API base URL at the displayed local URL. The
|
|
215
|
+
first release supports Anthropic Messages (`/v1/messages`), OpenAI Chat
|
|
216
|
+
Completions (`/v1/chat/completions`), and OpenAI Responses (`/v1/responses`).
|
|
217
|
+
The tool must support a custom API base URL; this is not guaranteed for every
|
|
218
|
+
desktop client.
|
|
219
|
+
|
|
220
|
+
The proxy is **off by default**: it opens no port and observes no traffic unless
|
|
221
|
+
you explicitly run `sigrank proxy`. It binds only to loopback and stops when the
|
|
222
|
+
command exits. Request and response content, API keys, and tool calls are
|
|
223
|
+
forwarded transiently but never written to disk. Only usage metadata is appended
|
|
224
|
+
to `~/.sigrank-mcp/proxy-sessions.jsonl` (directory `0700`, file `0600`).
|
|
225
|
+
|
|
226
|
+
Anthropic and OpenAI calls are currently grouped under one `proxy` platform row.
|
|
227
|
+
For streamed Chat Completions, SigRank SignalAF sets OpenAI's
|
|
228
|
+
`stream_options.include_usage=true` so the provider includes the final usage
|
|
229
|
+
chunk; response chunks are still forwarded immediately.
|
|
230
|
+
|
|
196
231
|
### The TUI is the whole app
|
|
197
232
|
|
|
198
233
|
Launch it and sign in inside it:
|
|
@@ -277,6 +312,14 @@ Or if installed globally:
|
|
|
277
312
|
| `compare_operators(a, b)` | `{codename_a, codename_b}` | Side-by-side comparison with behavioral verdict. Intent: "compare operator X vs Y" |
|
|
278
313
|
| `describe_power_user()` | `{}` | Static explanation of AI power user archetype + metrics explained. Intent: "what is an AI power user?" |
|
|
279
314
|
| `optimize_efficiency(codename? \| text?)` | `{codename?}` or `{text?}` | Ranked efficiency suggestions tied to your cascade shape. Intent: "how can I use AI more efficiently?" |
|
|
315
|
+
| `tokscale_breakdown(threshold?)` | `{threshold?}` | Per-model token breakdown across platforms (models under threshold → "other") |
|
|
316
|
+
| `tokscale_market_share()` | `{}` | AI tool market share: each tool's % of tokens/cost/messages, ranked. From local tokscale data |
|
|
317
|
+
| `tokscale_developer_profile()` | `{}` | Per-developer usage profile across all detected tools: model mix, pillars, sessions, workspaces. Paths redacted |
|
|
318
|
+
| `tokscale_model_trends()` | `{}` | Model adoption over time: per-model first/last seen, active days, month-by-month adoption curve |
|
|
319
|
+
| `tokscale_cost_analysis()` | `{}` | Cost per developer per model: cost_per_million_tokens, cost_per_message, share_cost, client rollup |
|
|
320
|
+
| `tokscale_device_profile()` | `{}` | Device fingerprinting: installed tools, session counts, active days, day-of-week distribution, concurrency. Paths redacted |
|
|
321
|
+
| `tokscale_mcp_usage()` | `{}` | MCP server usage: detected servers, detection window, active days |
|
|
322
|
+
| `tokscale_competitive_intel(target)` | `{target}` | Competitive intelligence for any AI tool: rank, model mix, cost efficiency, share vs all competitors |
|
|
280
323
|
|
|
281
324
|
---
|
|
282
325
|
|
|
@@ -324,28 +367,31 @@ Verifier numbers (ccusage/tokscale for codex) show **raw uncached input** (`inpu
|
|
|
324
367
|
|
|
325
368
|
## Platform adapters
|
|
326
369
|
|
|
327
|
-
All adapters are token-only (no message content, no cost fields, no credentials).
|
|
328
|
-
|
|
329
|
-
| Platform | Path |
|
|
330
|
-
| ------------------ | ---------------------------------------------- |
|
|
331
|
-
| Claude Code | ✅ `~/.claude/projects`
|
|
332
|
-
| Codex | ✅ `~/.codex/sessions`
|
|
333
|
-
| Devin CLI | ✅ `~/.local/share/devin/cli/sessions.db` |
|
|
334
|
-
| Amp | ✅ `~/.local/share/amp/threads` |
|
|
335
|
-
| Kimi | ✅ `~/.kimi/sessions` |
|
|
336
|
-
| pi-agent | ✅ `~/.pi/agent/sessions` |
|
|
337
|
-
|
|
|
338
|
-
|
|
|
339
|
-
|
|
|
340
|
-
|
|
|
341
|
-
|
|
|
342
|
-
|
|
|
343
|
-
|
|
|
344
|
-
|
|
|
345
|
-
|
|
|
346
|
-
|
|
|
347
|
-
|
|
|
348
|
-
|
|
|
370
|
+
All adapters are token-only (no message content, no cost fields, no credentials). The table below is regenerated from the adapter file headers in `adapters/index.mjs` + `adapters/tokenpull.mjs` so the path, pillar shape, and notes match the actual code (a prior revision had drifted on Qwen/Codex/Copilot).
|
|
371
|
+
|
|
372
|
+
| Platform | Path | Pillar shape & notes |
|
|
373
|
+
| ------------------ | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
374
|
+
| Claude Code | ✅ `~/.claude/projects` (recursive, incl. `subagents/`) | Native 4-pillar; dedup by `(session_id, message_id)` — final snapshot wins |
|
|
375
|
+
| Codex | ✅ `~/.codex/sessions` (+ `archived_sessions`) | `input_tokens` incl. cached → `input` + `cacheCreate` split window-level via `io_ratio`; `cacheRead` native (`cached_input_tokens`); `reasoning_output`→output; verified vs ccusage (~1%) |
|
|
376
|
+
| Devin CLI | ✅ `~/.local/share/devin/cli/sessions.db` | SQLite; native 4-pillar from `metadata.metrics` (`input_tokens`, `output_tokens`, `cache_read_tokens`, `cache_creation_tokens`); `input_tokens` is fresh (excludes cache) |
|
|
377
|
+
| Amp | ✅ `~/.local/share/amp/threads` | Native 4-pillar; per-message |
|
|
378
|
+
| Kimi | ✅ `~/.kimi/sessions` | Native 4-pillar; `StatusUpdate` lines only |
|
|
379
|
+
| pi-agent | ✅ `~/.pi/agent/sessions` | Native 4-pillar; per-message JSONL |
|
|
380
|
+
| oh-my-pi (`omp`) | ✅ `~/.omp/agent/sessions` (recursive, incl. nested subagent transcripts) | Native 4-pillar from `.message.usage` on `type:"message"` entries (`cacheWrite`→`cacheCreate`); **`reasoningTokens` is already inside `output`** — never added, or it double-counts; `usage.cost` reuses the same four key names for USD floats and is dropped; dedup by (session header `id`, entry `id`). Separate harness from pi-agent |
|
|
381
|
+
| OpenClaw | ✅ `~/.openclaw` | Native 4-pillar; per-message JSONL |
|
|
382
|
+
| Droid | ✅ `~/.factory/sessions/*.settings.json` | Native 4-pillar; `thinking_tokens`→output |
|
|
383
|
+
| Codebuff | ✅ `~/.config/manicode` | Native 4-pillar; `chat-messages.json` |
|
|
384
|
+
| Hermes | ✅ `~/.hermes/state.db` | Native 4-pillar; SQLite; `reasoning_tokens`→output |
|
|
385
|
+
| Kilo | ✅ `~/.local/share/kilo/kilo.db` | Native 4-pillar; SQLite |
|
|
386
|
+
| Qwen | ✅ `~/.qwen/projects` | Estimated (`cacheCreate=0` — no field in logs); `cacheRead` from `cachedContentTokenCount`; `thoughtsTokenCount`→output |
|
|
387
|
+
| Goose | ✅ `~/.local/share/goose/sessions/sessions.db` (or `$GOOSE_PATH_ROOT/data/sessions/sessions.db`) | Estimated (`cacheCreate=cacheRead=0` — no cache fields); reasoning = `total−input−output`→output; cumulative-column dedup by session id |
|
|
388
|
+
| Gemini CLI | ✅ `~/.gemini/tmp` | Estimated (`cacheCreate=0`); `cacheRead` from `cached` field; `thought`→output; `input` = `input−cached` (fresh) |
|
|
389
|
+
| GitHub Copilot CLI | ✅ `~/.copilot/otel` | Native 4-pillar (OTel spans: `llm.token_count.{prompt,completion,cache_creation,cache_read}`); requires `COPILOT_OTEL_ENABLED=true` + `COPILOT_OTEL_EXPORTER_TYPE=file` set **before** session start |
|
|
390
|
+
| OpenCode | ⚠️ `~/.local/share/opencode` | Data gap — logs store `cost:0` and derive tokens via LiteLLM at runtime; raw token counts not persisted. No pillars readable with current format |
|
|
391
|
+
| SigRank SignalAF proxy | ✅ `~/.sigrank-mcp/proxy-sessions.jsonl` | Opt-in native 4-pillar usage reported by Anthropic/OpenAI; same-timestamp records keep the last call; OpenAI cached input is separated from fresh input |
|
|
392
|
+
| Other (user JSON) | ✅ `$SIGRANK_OTHER_PATH` | User-supplied JSON `{ "windows": { "all": {input,output,cacheCreate,cacheRead} } }`; all-time only (no timestamps) |
|
|
393
|
+
| Cursor | 🔜 | Chat log path TBD |
|
|
394
|
+
| Windsurf | 🔜 | Session logs at `~/.codeium/windsurf/` |
|
|
349
395
|
|
|
350
396
|
`estimated=true` means one or more pillars are derived, not native. The server re-scores all submitted pillars authoritatively; local preview Υ is indicative only.
|
|
351
397
|
|
|
@@ -353,7 +399,7 @@ All adapters are token-only (no message content, no cost fields, no credentials)
|
|
|
353
399
|
|
|
354
400
|
## Privacy
|
|
355
401
|
|
|
356
|
-
- **Token-only
|
|
402
|
+
- **Token-only persistence and submission.** Local-log adapters read usage metadata only. The optional proxy necessarily handles provider-bound request and response bytes in memory, but never persists their content; it writes only token counts, model/backend metadata, and timestamps. Only token telemetry is submitted to SigRank SignalAF.
|
|
357
403
|
- **Local by default.** `tokenpull` reads only `~/.claude/projects` (Claude) or `~/.codex` (Codex) on your device. Numbers stay on your machine unless you explicitly submit with a codename.
|
|
358
404
|
- **Background tooling excluded.** Memory plugins, observers, summarizers (e.g. `claude-mem`, `mem0`, `observer-sessions`) are filtered from both Claude and Codex reads. `subagents/` are kept — they represent real operator work.
|
|
359
405
|
- **Board reads are anonymous.** No account needed to browse, compare, or watch.
|
|
@@ -373,19 +419,20 @@ All adapters are token-only (no message content, no cost fields, no credentials)
|
|
|
373
419
|
## Dev / test
|
|
374
420
|
|
|
375
421
|
```bash
|
|
376
|
-
node test.mjs #
|
|
422
|
+
node test.mjs # 313-assertion baseline + proxy tests (local mocks only; temp filesystem)
|
|
377
423
|
node sign.test.mjs # ed25519 signing + canon parity
|
|
378
424
|
node index.mjs # stdio MCP server directly (pipe to MCP client)
|
|
379
425
|
```
|
|
380
426
|
|
|
381
|
-
Tests verify (
|
|
427
|
+
Tests verify (14 groups, 313 assertions):
|
|
382
428
|
|
|
383
429
|
- `rank_paste` canon: MO§ES `(1251211, 11296121, 128196310, 2555179769)` → Υ 18436.98 · TRANSMITTER
|
|
384
430
|
- `submit_paste` preview (no codename) + POST shape (injected fetch, no live writes)
|
|
385
431
|
- `tokenpull` dedup, window slicing, 4-window pillars (mock adapter)
|
|
386
432
|
- `tokenpull_submit` all 4 windows POST, sha256 hash, ddmmyy stamp
|
|
387
433
|
- `tokenpullCodex` io_ratio conversion per-window
|
|
388
|
-
- Adapter registry (
|
|
434
|
+
- Adapter registry (17 platforms) + per-adapter shape contracts
|
|
435
|
+
- Local proxy: Anthropic/OpenAI JSON + fragmented SSE, live pass-through, secure JSONL, error forwarding
|
|
389
436
|
- `rank_windows` 4-window paste scoring, partial input, no-network
|
|
390
437
|
- `watch_tokenpull` cascade snapshot, interval_s, submit path
|
|
391
438
|
- `enroll` posts identity (public key only), maps 201 enrolled + 410 code_invalid
|
|
@@ -401,11 +448,12 @@ Tests verify (13 groups, 200 assertions):
|
|
|
401
448
|
| File | Responsibility |
|
|
402
449
|
| --------------- | ----------------------------------------------------------------------- |
|
|
403
450
|
| `index.mjs` | Entry point — TTY detection, routes to CLI or MCP server |
|
|
451
|
+
| `proxy.mjs` | Opt-in loopback Anthropic/OpenAI proxy and usage capture |
|
|
404
452
|
| `cli.mjs` | CLI commands: board, compare, watch, enroll, submit, help |
|
|
405
453
|
| `tui.mjs` | Full tabbed TUI: Dashboard / Trends / Compare / Board / Watch / Connect |
|
|
406
454
|
| `cascade.mjs` | Pure cascade math (Υ, SNR, leverage, velocity, 10xDEV, class) |
|
|
407
455
|
| `tokenpull.mjs` | On-device log scanner — Claude, Codex, multi-platform |
|
|
408
|
-
| `adapters.mjs` | Platform adapter registry (
|
|
456
|
+
| `adapters.mjs` | Platform adapter registry (16+ platforms) |
|
|
409
457
|
| `tools.mjs` | MCP tool table + dispatcher |
|
|
410
458
|
| `connect.mjs` | Connect-code enrollment + device identity |
|
|
411
459
|
| `keystore.mjs` | Local key management (paste-keys, not API keys) |
|
|
@@ -420,7 +468,7 @@ Tests verify (13 groups, 200 assertions):
|
|
|
420
468
|
|
|
421
469
|
## Contributing
|
|
422
470
|
|
|
423
|
-
Contributions welcome. SigRank MCP is built in the open.
|
|
471
|
+
Contributions welcome. SigRank SignalAF MCP is built in the open.
|
|
424
472
|
|
|
425
473
|
- [Contributing guide](./.github/CONTRIBUTING.md)
|
|
426
474
|
- [Security policy](https://github.com/SunrisesIllNeverSee/sigrank-mcp/security/policy)
|