openzoo 0.28.0 → 0.28.2

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/cursorcfg.js +15 -6
  2. package/package.json +1 -1
package/lib/cursorcfg.js CHANGED
@@ -109,10 +109,14 @@ const DEFAULT_SLOTS = {
109
109
  };
110
110
 
111
111
  export function slotFor(id) {
112
- // KILL SWITCH: if a custom label ever makes the editor treat a row as
113
- // unavailable, OPENZOO_NO_LABELS=1 puts the bland id back as the label. The
114
- // mapping (which zoo model answers) is unaffected only the text changes.
115
- if (process.env.OPENZOO_NO_LABELS === '1') {
112
+ // LABELS ARE OFF BY DEFAULT they cost availability.
113
+ //
114
+ // Renaming the row via inputboxShortModelName is cosmetic to us but not to the
115
+ // editor: with a label it does not recognise, it marks the model UNAVAILABLE and
116
+ // refuses to select it. A pretty name is worth nothing if the row cannot be
117
+ // used, so the visible text stays the bland id and OPENZOO_LABELS=1 opts back in.
118
+ // The MAPPING is unaffected either way — gpt-4o is still served by claude-opus-5.
119
+ if (process.env.OPENZOO_LABELS !== '1') {
116
120
  return { served: (DEFAULT_SLOTS[id] || {}).served || id, label: id };
117
121
  }
118
122
  const env = process.env.OPENZOO_EDITOR_MAP;
@@ -181,7 +185,12 @@ export function writeEditorProviderConfig(which, { baseUrl, models }) {
181
185
  variants: [],
182
186
  legacySlugs: [],
183
187
  idAliases: [],
184
- namedModelSectionIndex: 1,
188
+ // SECTION 0, not 1. The named-models view groups rows by this index and
189
+ // renders section 0; every row we wrote pointed at section 1, which put them
190
+ // in a group the dropdown does not draw — visible in Settings (which ignores
191
+ // the index) but "unavailable" in the composer picker. That split — right in
192
+ // Settings, missing from the dropdown — is the tell.
193
+ namedModelSectionIndex: 0,
185
194
  cloudAgentEffortModes: [],
186
195
  modelPickerBadges: [],
187
196
  });
@@ -256,7 +265,7 @@ export function pinEditorProviderConfig(which, { baseUrl, models }) {
256
265
  isRecommendedForBackgroundComposer: false, supportsPlanMode: true,
257
266
  supportsSandboxing: true, isUserAdded: true, inputboxShortModelName: slotFor(m).label,
258
267
  parameterDefinitions: [], variants: [], legacySlugs: [], idAliases: [],
259
- namedModelSectionIndex: 1, cloudAgentEffortModes: [], modelPickerBadges: [],
268
+ namedModelSectionIndex: 0, cloudAgentEffortModes: [], modelPickerBadges: [],
260
269
  }))));
261
270
  const primary = esc(models[0]);
262
271
  const base = esc(baseUrl);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openzoo",
3
- "version": "0.28.0",
3
+ "version": "0.28.2",
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",