openzoo 0.20.5 → 0.20.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.
Files changed (2) hide show
  1. package/lib/models.js +13 -0
  2. package/package.json +1 -1
package/lib/models.js CHANGED
@@ -99,6 +99,19 @@ export function resolveModel(requested, ids) {
99
99
  const bare = String(requested).replace(/^openzoo[-/]/i, '');
100
100
  if (bare !== requested) {
101
101
  if (ids.includes(bare)) return bare;
102
+ // EXACT INVERSE OF MINTING. augmentModelList creates each twin as
103
+ // `openzoo-<suffix>` where suffix = id.split('/')[1], so the way back is a
104
+ // suffix match — not the similarity scorer below. Without this, a twin fell
105
+ // through to scoring and could land on a NEIGHBOUR of its own source:
106
+ // openzoo-claude-opus-5 resolved to anthropic/claude-opus-5-FAST, and with
107
+ // OPENZOO_DEFAULT_MODEL set in the environment every twin resolved to that
108
+ // one model instead — the user picked a model in the editor and silently got
109
+ // a different one. A twin is an EXPLICIT choice, so it is honoured before
110
+ // both the env override and the scorer.
111
+ const suffixed = ids.filter((id) => id.slice(id.indexOf('/') + 1) === bare);
112
+ // Full-strength before :free/:batch, mirroring the ordering everywhere else.
113
+ const exact = suffixed.find((id) => !id.includes(':')) || suffixed[0];
114
+ if (exact) return exact;
102
115
  requested = bare;
103
116
  }
104
117
  const env = process.env.OPENZOO_DEFAULT_MODEL;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openzoo",
3
- "version": "0.20.5",
3
+ "version": "0.20.6",
4
4
  "description": "Local x402-paying proxy + MCP server for openzoo.fun — point any OpenAI-compatible harness (Cursor, Claude Code, aider, SDKs) at localhost and it pays per call from a local burner wallet. Solana and Base rails live; Robinhood experimental.",
5
5
  "license": "MIT",
6
6
  "type": "module",