@coinrithm/mcp-trading 0.7.4 → 0.7.6

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,171 +1,259 @@
1
- # Changelog
2
-
3
- All notable changes to `@coinrithm/mcp-trading` are documented here. The package
4
- ships two binaries — `coinrithm-mcp` (the MCP server) and `coinrithm-agent` (the
5
- self-host agent runner) — versioned together. The CoinRithm **API contract** is
6
- versioned separately (see `openapi.yaml` `info.version`, currently `1.6.0`).
7
-
8
- ## 0.7.4
9
-
10
- Docs-only. No tool behavior change, no API-surface change.
11
-
12
- - **Acceptable Use of Market Data.** The README (root and this package) and
13
- `openapi.yaml` (`info.termsOfService`, `info.description`, and the
14
- `public-pm-data` tag) now reference and summarize CoinRithm's licensing
15
- flow-down restriction on Market Data from third-party prediction-market
16
- venues: read-only use for paper-trading context and settled-outcome
17
- scoring only no model training/fine-tuning/benchmarking, no
18
- redistribution or bulk-extraction, no use to build a competing product.
19
- Full terms: <https://www.coinrithm.com/en/terms-of-use>
20
-
21
- ## 0.7.3
22
-
23
- Quality-engine surfaces + independent forecasts. Additive; no breaking change.
24
-
25
- - **Quality verdicts in tool responses.** `discover_pm_markets`, `pm_quote`, and
26
- the `pm_data_*` tools now surface the persisted truth-engine `quality` object
27
- (`decisionEligible`, warning/block reason codes, `policyVersion`, `assessedAt`).
28
- Markets with critical failures stay visible but cannot drive paper opens or
29
- alerts.
30
- - **`openBlocked` preview on `pm_quote`.** Quotes preview the open-time quality
31
- gate (`openBlocked` + `openBlockReasons`), so an agent can skip a market that
32
- would 422 before burning the open attempt. The self-host runner
33
- (`coinrithm-agent`) does this skip automatically.
34
- - **Independent forecasts in the runner.** The self-host agent runner elicits the
35
- model's OWN probability (judged from the question/resolution criteria/deadline,
36
- never anchored to the market price) and submits it as `forecastProbability` on
37
- PM opens feeding the public calibration dataset with proper-scoring-rule
38
- forecasts. Clamped to [1,99]; omitted (never faked) when the model does not
39
- produce one; `HOUSE_AGENT_FORECAST_ENABLED=false` disables.
40
- - **`crossPlatform` on event lists** documented in the API contract: sibling
41
- venues pricing the same question, on list rows.
42
- - **ForecastEx venue truth.** Public MCP discovery copy and registry metadata
43
- now describe all 11 live venues, including ForecastEx.
44
- - **Contract synchronization.** Runner templates and example bundles pin the
45
- served OpenAPI 1.6.0 contract; canonical scorecard paths are unambiguous.
46
-
47
- ## 0.7.2
48
-
49
- Docs-truth + privacy release. No tool behavior change, no API-surface change.
50
-
51
- - **Ten venues in the public listing.** `pm_data_*` tool copy, the README, and
52
- `server.json` now name all ten venues (adds Futuur and Myriad). npm `0.7.1` was
53
- published before those landed, so the registry listing still advertised "eight
54
- venues"; npm versions are immutable, so correcting the public listing required
55
- a new release.
56
- - **`source` parameter description** on `pm_data_events` / `pm_data_event_detail`
57
- now enumerates all ten venue slugs. Accepted values are unchanged — this is
58
- description text only, which is why it is a patch and not a minor.
59
- - **Privacy.** Raw model output is no longer persisted, enforcing the package's
60
- no-chain-of-thought promise.
61
- - **New tripwire.** `server.json` (the MCP-registry listing) is now guarded
62
- against version and venue-count drift; it had no guard, which is how it went
63
- stale in the first place.
64
- - Refreshed stale Arena-gate example copy.
65
-
66
- ## 0.7.1
67
-
68
- Docs + registry-metadata release; no tool behavior changes.
69
-
70
- - **README refresh**: the keyless `pm_data_*` data surface is now front and
71
- center — 8 venues (Polymarket, Kalshi, Smarkets, Limitless, Manifold,
72
- Metaculus, PredictIt, Rothera the "seven venues" line predated Rothera),
73
- the anonymous hosted-endpoint path, and the `referenceProbability` /
74
- `volumeHistory` fields the data tools return.
75
- - **`server.json`**: hosted endpoint's `Authorization` header marked optional
76
- (the `pm_data_*` tools work anonymously verified live) and the server
77
- description now leads with the keyless data surface.
78
- - Ships the post-0.7.0 commits: `pm_data_event` advertises `volumeHistory`,
79
- `pm_data_events` advertises `referenceProbability` on list items, and the
80
- hosted MCP root (`GET /`) serves a self-describing JSON landing (with a
81
- 405 + hint on `GET /mcp`).
82
-
83
- ## 0.7.0
84
-
85
- (Retroactive entry released 2026-07-05 without a changelog note.)
86
-
87
- - **Four keyless `pm_data_*` tools** — CoinRithm's free public cross-venue
88
- prediction-market dataset over MCP, no API key required and yours is never
89
- attached: `pm_data_overview` (market-wide stats), `pm_data_events`
90
- (cross-venue event list), `pm_data_event` (detail incl.
91
- `crossSourceMatches` + resolution evidence), `pm_data_whales`
92
- (large-trade tape).
93
-
94
- ## 0.5.0
95
-
96
- Agent-runner quality + reliability release. `coinrithm-agent` got materially
97
- smarter and less noisy; `coinrithm-mcp` is unchanged in shape. Bundles the work
98
- since 0.4.0.
99
-
100
- - **Prediction markets are a first-class venue** in the decide prompt: a short
101
- `pmN` ref so small models trade PM reliably, eligible-outcome filtering (only
102
- backend-openable outcomes reach the model), and futures-capped agents steered
103
- to PM (a separate budget) instead of re-rejecting.
104
- - **PM anti-churn now actually effective.** The candidate list is pre-filtered
105
- to exclude markets the agent already holds, and the runner + server both block
106
- re-betting a held market+outcome (no more one-agent, 25-identical-bets churn).
107
- An earlier version read the wrong `/positions/pm` fields and was silently dead;
108
- fixed.
109
- - **Settlement-feedback learning loop.** The agent sees how its own recent bets
110
- actually resolved (win/loss/void + realized PnL) as reflective context, so it
111
- learns from outcomes across cycles.
112
- - **Per-trade reasoning stays honest about the market.** A multi-action decision
113
- no longer stamps its primary rationale onto a secondary trade about a different
114
- market — the trade's public Arena "why" always matches the market it's on.
115
- - **Futures reliability.** The model is unblinded to per-position mark /
116
- liquidation / stop / take-profit prices; take-profit is auto-clamped to a valid
117
- R:R target off the stop (kills the `take_profit_not_*_mark` reject waves); and a
118
- marking-down PM book now trips the equity-drawdown kill-switch too.
119
- - **News capability.** Recent high-importance news for the watchlist coins is fed
120
- into the decide context as a market-catalyst layer.
121
- - **Robustness + contract accuracy.** Scheduler/runner hardening, flat-state
122
- prompt steers (weak models stop hallucinating closes), manage-enum
123
- normalization, and the PM contract now documents real entry friction rather
124
- than a disclose-only stance.
125
- - **Security.** `hono` bumped to 4.12.27 (high-severity advisories: serve-static
126
- path traversal, CORS wildcard-with-credentials, body-limit bypass).
127
- - **Docs.** The npm README leads with value / free / OKF / Studio; stale
128
- scheduler and `minDecidedTrades` claims corrected.
129
-
130
- ## 0.4.0
131
-
132
- - **Deterministic scorecard engine (`computeScorecard`).** The reproducible-
133
- evaluation engine for `coinrithm.agent.scorecard.v1` pure math over an
134
- agent's realized track record (no network, no model): realized PnL, win rate,
135
- expectancy, profit factor, reward-to-risk, Sharpe, Sortino, deflated /
136
- probabilistic Sharpe (Bailey & López de Prado — skill vs luck with a multiple-
137
- testing penalty), max drawdown, and Brier + ECE calibration for probabilistic
138
- calls. Same inputs → identical metrics **and** a sha256 `contentHash` of the
139
- canonicalized result, so a scorecard whose hash doesn't reproduce isn't
140
- trusted. Metrics are computed AFTER the run from immutable evidence (leakage-
141
- separation), so tuning-to-the-metric is structurally impossible. Returns
142
- `null` for thin records never a fabricated number.
143
- - **Resolver: committable file metadata + functionality pin.** The OKF resolver
144
- now carries per-file metadata and pins functionality through resolution, so a
145
- bundle's behavior is reproducible from its committed files.
146
-
147
- ## 0.3.0
148
-
149
- - **Agent risk config: coin deny-list (`blocklist`).** `risk.blocklist` lets an
150
- agent name symbols it must never open, even if they are on the watchlist —
151
- deny wins over allow. Enforced in the runner's decision validator (rejects
152
- `futures_open` / `spot_order` on a denied symbol) and surfaced in the system
153
- prompt, so the model is told the boundary and the runner re-checks it.
154
- - **Docs: Open Knowledge Format positioning.** Clarified that a CoinRithm agent
155
- is an OKF bundle — a portable directory of markdown + frontmatter that is
156
- model-agnostic (run the same definition on any model). Develop and prove it
157
- free on paper, then run it anywhere.
158
- - npm keywords refreshed (`open-knowledge-format`, `okf`, `model-agnostic`,
159
- `gemini`) for registry discovery.
160
-
161
- ## 0.2.0
162
-
163
- - Added the **`coinrithm-agent`** self-host runner binary alongside the MCP
164
- server: a folder-as-architecture (OKF) agent you bring your own model key to,
165
- with caps enforced by the runner (not the model), dry-run by default,
166
- paper-only.
167
-
168
- ## 0.1.x
169
-
170
- - Initial `coinrithm-mcp` MCP server: reads, quotes, scoped spot/futures/PM
171
- writes, ledger export, and Agent Arena integration over a user-minted API key.
1
+ # Changelog
2
+
3
+ All notable changes to `@coinrithm/mcp-trading` are documented here. The package
4
+ ships two binaries — `coinrithm-mcp` (the MCP server) and `coinrithm-agent` (the
5
+ self-host agent runner) — versioned together. The CoinRithm **API contract** is
6
+ versioned separately (see `openapi.yaml` `info.version`, currently `1.7.0`).
7
+
8
+ ## 0.7.6
9
+
10
+ Agent capability release: universe discovery, first-class behavioral guards,
11
+ and the hosted prose budget made visible. Additive — no tool renamed or
12
+ removed. Contract moves to **1.7.0** (two keyless paths declared).
13
+
14
+ **New: agents can look beyond their own watchlist.**
15
+
16
+ - **`get_crypto_movers` tool.** Keyless scan of the tracked coin universe for
17
+ the biggest 24h gainers or losers. Rows carry `coinId`, `symbol`, `name`,
18
+ `slug`, `change24hPct`, `priceUsd`.
19
+ - **`universe_scan` capability** for the self-host runner. Each cycle it pulls
20
+ the top movers, promotes the strongest few into full watch entries marked
21
+ `discovered: true`, and passes the remainder as compact context. Watchlist
22
+ and blocklist symbols are excluded up front, so a discovered row can never
23
+ duplicate a configured pair or bypass the deny list.
24
+ - **Both now carry the coinId through.** The movers row's `ucid` IS the
25
+ `coinId` that `get_candles` / `get_market_context` / the futures quote path
26
+ take. It was previously stripped from the tool response and re-derived from
27
+ the SYMBOL via a resolve round-trip — a wasted call per discovered mover and
28
+ a real correctness hazard, because symbols collide across listings and the
29
+ resolver could return a different coin than the one that actually moved.
30
+
31
+ **New: contract declares the endpoints the tools call.**
32
+
33
+ - `/api/coins/top-gainers` and `/api/coins/top-losers` are now in
34
+ `openapi.yaml` (tag `public-crypto-data`), so both SDKs can reach the
35
+ surface `get_crypto_movers` uses. Probe-verified against prod: bare array,
36
+ no envelope; `change24h` / `currentPrice` are decimal STRINGS; default
37
+ `limit` is 3 and out-of-range values return 400 rather than clamping.
38
+
39
+ **New: personality and boundaries are configurable, and documented.**
40
+
41
+ - **`character/guards.md`** first-class hard behavioral guards, merged into
42
+ the strategy prose as a distinct section rather than buried in the thesis.
43
+ - **`examples/agents/pia-pump-fader`** a full bundle demonstrating
44
+ capabilities plus boundary configuration (watchlist/blocklist interaction,
45
+ the five-point risk gate, re-entry discipline).
46
+ - **`examples/agents/FORKING.md`** — a file-by-file map of what is strategy
47
+ and what is plumbing, so a fork knows what it is allowed to change.
48
+ - **QUICKSTART** documents capabilities, and a docs-drift tripwire fails the
49
+ suite when a capability ships undocumented (`universe_scan` shipped
50
+ invisible in every user surface once; that cannot recur silently).
51
+
52
+ **Fixed.**
53
+
54
+ - **Hosted prose budget is validated, not discovered at deploy.**
55
+ `coinrithm-agent validate --hosted` now checks the 8,000-character merged
56
+ prose budget and reports the exact overage. A bundle could previously
57
+ validate clean and still be undeployable. YAML frontmatter is stripped
58
+ before the count (and before the model sees it it was being fed in as if
59
+ it were strategy). `pia-pump-fader` was rebuilt to fit at 7,932.
60
+ - **Permanent failures stop being revived.** A disabled agent whose model is
61
+ gone or whose key is invalid is no longer resurrected by the scheduler's
62
+ revive pass; only transient failures are retried.
63
+ - **Fresh scaffolds are no longer bricked** by the capabilities field, and
64
+ action-confidence tolerance was widened to match what models actually emit.
65
+ - **False market-data licensing assertion corrected** in both READMEs.
66
+
67
+ ⚠ Publishing to npm remains a **manual** step — `publish-mcp.yml` pushes
68
+ `server.json` to the MCP registry only.
69
+
70
+ ## 0.7.5
71
+
72
+ **Release-hygiene bump. Everything below was already merged but never
73
+ reached npm** — the 0.7.4 tarball was published 2026-07-26T23:01:11Z and
74
+ five commits landed after that instant without a version bump, so the
75
+ repository's 0.7.4 and the published 0.7.4 were different code under one
76
+ version number. This release makes the published artifact match the
77
+ source again.
78
+
79
+ - **Security.** MCP dependency audit fixes, 6 findings to 0 (`da65e9e`).
80
+ Anyone on published 0.7.4 is running the pre-audit dependency set.
81
+ - **`pm_data` Gemini exposure** for agents (`3ab04ae`).
82
+ - **Venue methodology and health** exposed as tools (`74cc495`).
83
+ - **Reproducible decision receipts** persisted by the agent runner
84
+ (`8bebc9e`).
85
+ - **Docs.** Contract version drift corrected and the placeholder SDK
86
+ README replaced, so the docs stop advertising an install that 404s
87
+ (`6d61b92`).
88
+
89
+ No tool was renamed or removed; this is additive plus a dependency
90
+ refresh.
91
+
92
+ ⚠ Publishing this package is a **manual** step — `publish-mcp.yml` only
93
+ pushes `server.json` to the MCP registry, it does not run `npm publish`.
94
+ That asymmetry is exactly how the drift above accumulated unnoticed.
95
+
96
+ ## 0.7.4
97
+
98
+ Docs-only. No tool behavior change, no API-surface change.
99
+
100
+ - **Acceptable Use of Market Data.** The README (root and this package) and
101
+ `openapi.yaml` (`info.termsOfService`, `info.description`, and the
102
+ `public-pm-data` tag) now reference and summarize CoinRithm's licensing
103
+ flow-down restriction on Market Data from third-party prediction-market
104
+ venues: read-only use for paper-trading context and settled-outcome
105
+ scoring only no model training/fine-tuning/benchmarking, no
106
+ redistribution or bulk-extraction, no use to build a competing product.
107
+ Full terms: <https://www.coinrithm.com/en/terms-of-use>
108
+
109
+ ## 0.7.3
110
+
111
+ Quality-engine surfaces + independent forecasts. Additive; no breaking change.
112
+
113
+ - **Quality verdicts in tool responses.** `discover_pm_markets`, `pm_quote`, and
114
+ the `pm_data_*` tools now surface the persisted truth-engine `quality` object
115
+ (`decisionEligible`, warning/block reason codes, `policyVersion`, `assessedAt`).
116
+ Markets with critical failures stay visible but cannot drive paper opens or
117
+ alerts.
118
+ - **`openBlocked` preview on `pm_quote`.** Quotes preview the open-time quality
119
+ gate (`openBlocked` + `openBlockReasons`), so an agent can skip a market that
120
+ would 422 before burning the open attempt. The self-host runner
121
+ (`coinrithm-agent`) does this skip automatically.
122
+ - **Independent forecasts in the runner.** The self-host agent runner elicits the
123
+ model's OWN probability (judged from the question/resolution criteria/deadline,
124
+ never anchored to the market price) and submits it as `forecastProbability` on
125
+ PM opens feeding the public calibration dataset with proper-scoring-rule
126
+ forecasts. Clamped to [1,99]; omitted (never faked) when the model does not
127
+ produce one; `HOUSE_AGENT_FORECAST_ENABLED=false` disables.
128
+ - **`crossPlatform` on event lists** documented in the API contract: sibling
129
+ venues pricing the same question, on list rows.
130
+ - **ForecastEx venue truth.** Public MCP discovery copy and registry metadata
131
+ now describe all 11 live venues, including ForecastEx.
132
+ - **Contract synchronization.** Runner templates and example bundles pin the
133
+ served OpenAPI 1.6.0 contract; canonical scorecard paths are unambiguous.
134
+
135
+ ## 0.7.2
136
+
137
+ Docs-truth + privacy release. No tool behavior change, no API-surface change.
138
+
139
+ - **Ten venues in the public listing.** `pm_data_*` tool copy, the README, and
140
+ `server.json` now name all ten venues (adds Futuur and Myriad). npm `0.7.1` was
141
+ published before those landed, so the registry listing still advertised "eight
142
+ venues"; npm versions are immutable, so correcting the public listing required
143
+ a new release.
144
+ - **`source` parameter description** on `pm_data_events` / `pm_data_event_detail`
145
+ now enumerates all ten venue slugs. Accepted values are unchanged — this is
146
+ description text only, which is why it is a patch and not a minor.
147
+ - **Privacy.** Raw model output is no longer persisted, enforcing the package's
148
+ no-chain-of-thought promise.
149
+ - **New tripwire.** `server.json` (the MCP-registry listing) is now guarded
150
+ against version and venue-count drift; it had no guard, which is how it went
151
+ stale in the first place.
152
+ - Refreshed stale Arena-gate example copy.
153
+
154
+ ## 0.7.1
155
+
156
+ Docs + registry-metadata release; no tool behavior changes.
157
+
158
+ - **README refresh**: the keyless `pm_data_*` data surface is now front and
159
+ center 8 venues (Polymarket, Kalshi, Smarkets, Limitless, Manifold,
160
+ Metaculus, PredictIt, Rothera — the "seven venues" line predated Rothera),
161
+ the anonymous hosted-endpoint path, and the `referenceProbability` /
162
+ `volumeHistory` fields the data tools return.
163
+ - **`server.json`**: hosted endpoint's `Authorization` header marked optional
164
+ (the `pm_data_*` tools work anonymously verified live) and the server
165
+ description now leads with the keyless data surface.
166
+ - Ships the post-0.7.0 commits: `pm_data_event` advertises `volumeHistory`,
167
+ `pm_data_events` advertises `referenceProbability` on list items, and the
168
+ hosted MCP root (`GET /`) serves a self-describing JSON landing (with a
169
+ 405 + hint on `GET /mcp`).
170
+
171
+ ## 0.7.0
172
+
173
+ (Retroactive entry — released 2026-07-05 without a changelog note.)
174
+
175
+ - **Four keyless `pm_data_*` tools** — CoinRithm's free public cross-venue
176
+ prediction-market dataset over MCP, no API key required and yours is never
177
+ attached: `pm_data_overview` (market-wide stats), `pm_data_events`
178
+ (cross-venue event list), `pm_data_event` (detail incl.
179
+ `crossSourceMatches` + resolution evidence), `pm_data_whales`
180
+ (large-trade tape).
181
+
182
+ ## 0.5.0
183
+
184
+ Agent-runner quality + reliability release. `coinrithm-agent` got materially
185
+ smarter and less noisy; `coinrithm-mcp` is unchanged in shape. Bundles the work
186
+ since 0.4.0.
187
+
188
+ - **Prediction markets are a first-class venue** in the decide prompt: a short
189
+ `pmN` ref so small models trade PM reliably, eligible-outcome filtering (only
190
+ backend-openable outcomes reach the model), and futures-capped agents steered
191
+ to PM (a separate budget) instead of re-rejecting.
192
+ - **PM anti-churn — now actually effective.** The candidate list is pre-filtered
193
+ to exclude markets the agent already holds, and the runner + server both block
194
+ re-betting a held market+outcome (no more one-agent, 25-identical-bets churn).
195
+ An earlier version read the wrong `/positions/pm` fields and was silently dead;
196
+ fixed.
197
+ - **Settlement-feedback learning loop.** The agent sees how its own recent bets
198
+ actually resolved (win/loss/void + realized PnL) as reflective context, so it
199
+ learns from outcomes across cycles.
200
+ - **Per-trade reasoning stays honest about the market.** A multi-action decision
201
+ no longer stamps its primary rationale onto a secondary trade about a different
202
+ market — the trade's public Arena "why" always matches the market it's on.
203
+ - **Futures reliability.** The model is unblinded to per-position mark /
204
+ liquidation / stop / take-profit prices; take-profit is auto-clamped to a valid
205
+ R:R target off the stop (kills the `take_profit_not_*_mark` reject waves); and a
206
+ marking-down PM book now trips the equity-drawdown kill-switch too.
207
+ - **News capability.** Recent high-importance news for the watchlist coins is fed
208
+ into the decide context as a market-catalyst layer.
209
+ - **Robustness + contract accuracy.** Scheduler/runner hardening, flat-state
210
+ prompt steers (weak models stop hallucinating closes), manage-enum
211
+ normalization, and the PM contract now documents real entry friction rather
212
+ than a disclose-only stance.
213
+ - **Security.** `hono` bumped to 4.12.27 (high-severity advisories: serve-static
214
+ path traversal, CORS wildcard-with-credentials, body-limit bypass).
215
+ - **Docs.** The npm README leads with value / free / OKF / Studio; stale
216
+ scheduler and `minDecidedTrades` claims corrected.
217
+
218
+ ## 0.4.0
219
+
220
+ - **Deterministic scorecard engine (`computeScorecard`).** The reproducible-
221
+ evaluation engine for `coinrithm.agent.scorecard.v1` — pure math over an
222
+ agent's realized track record (no network, no model): realized PnL, win rate,
223
+ expectancy, profit factor, reward-to-risk, Sharpe, Sortino, deflated /
224
+ probabilistic Sharpe (Bailey & López de Prado — skill vs luck with a multiple-
225
+ testing penalty), max drawdown, and Brier + ECE calibration for probabilistic
226
+ calls. Same inputs → identical metrics **and** a sha256 `contentHash` of the
227
+ canonicalized result, so a scorecard whose hash doesn't reproduce isn't
228
+ trusted. Metrics are computed AFTER the run from immutable evidence (leakage-
229
+ separation), so tuning-to-the-metric is structurally impossible. Returns
230
+ `null` for thin records — never a fabricated number.
231
+ - **Resolver: committable file metadata + functionality pin.** The OKF resolver
232
+ now carries per-file metadata and pins functionality through resolution, so a
233
+ bundle's behavior is reproducible from its committed files.
234
+
235
+ ## 0.3.0
236
+
237
+ - **Agent risk config: coin deny-list (`blocklist`).** `risk.blocklist` lets an
238
+ agent name symbols it must never open, even if they are on the watchlist —
239
+ deny wins over allow. Enforced in the runner's decision validator (rejects
240
+ `futures_open` / `spot_order` on a denied symbol) and surfaced in the system
241
+ prompt, so the model is told the boundary and the runner re-checks it.
242
+ - **Docs: Open Knowledge Format positioning.** Clarified that a CoinRithm agent
243
+ is an OKF bundle — a portable directory of markdown + frontmatter that is
244
+ model-agnostic (run the same definition on any model). Develop and prove it
245
+ free on paper, then run it anywhere.
246
+ - npm keywords refreshed (`open-knowledge-format`, `okf`, `model-agnostic`,
247
+ `gemini`) for registry discovery.
248
+
249
+ ## 0.2.0
250
+
251
+ - Added the **`coinrithm-agent`** self-host runner binary alongside the MCP
252
+ server: a folder-as-architecture (OKF) agent you bring your own model key to,
253
+ with caps enforced by the runner (not the model), dry-run by default,
254
+ paper-only.
255
+
256
+ ## 0.1.x
257
+
258
+ - Initial `coinrithm-mcp` MCP server: reads, quotes, scoped spot/futures/PM
259
+ writes, ledger export, and Agent Arena integration over a user-minted API key.