Skip to content

feat: mark Pony Alpha as a free model#55

Merged
lambertjosh merged 3 commits intomainfrom
pony-alpha-free-model
Feb 7, 2026
Merged

feat: mark Pony Alpha as a free model#55
lambertjosh merged 3 commits intomainfrom
pony-alpha-free-model

Conversation

@lambertjosh
Copy link
Contributor

Summary

  • Add pony_alpha_free_model definition in new openrouter-free-models.ts file
  • Add 'openrouter' to inference provider schema (for OpenRouter-native models)
  • Register in kiloFreeModels so isFreeModel() returns true and display name shows "Pony Alpha (free)"
  • Update recommended-models.ts to use model reference instead of string
  • Update approval test snapshot with new model entry

This follows up on #53 which added Pony Alpha as a recommended model but didn't mark it as free.

'google-vertex',
'inception',
'moonshotai',
'openrouter',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: 'openrouter' may not be a valid Vercel gateway provider id

Adding 'openrouter' to OpenRouterInferenceProviderIdSchema means it can flow into openRouterToVercelInferenceProviderId() and then into Vercel gateway routing (via convertProviderOptions()). That function currently falls back to returning the normalized string when there’s no explicit mapping; if 'openrouter' reaches Vercel, it’s likely not accepted by VercelInferenceProviderIdSchema / VercelUserByokInferenceProviderIdSchema, causing request failures when Vercel routing is used.

Consider explicitly mapping or filtering 'openrouter' so it never becomes a Vercel provider id.

flags: ['reasoning'],
gateway: 'openrouter',
internal_id: 'openrouter/pony-alpha',
inference_providers: ['openrouter'],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: inference_providers: ['openrouter'] may break provider routing

applyProviderSpecificLogic() sets requestToMutate.provider.only from kiloFreeModel.inference_providers. If 'openrouter' isn’t an actual OpenRouter provider slug, requests for pony_alpha_free_model may be rejected by OpenRouter. Also, if the request is ever routed through Vercel, this provider id can be converted into an invalid Vercel gateway provider (see openRouterToVercelInferenceProviderId()).

If 'openrouter' is meant to indicate “no provider pinning”, consider omitting provider.only for this model instead of using a synthetic provider id.

@kiloconnect
Copy link
Contributor

kiloconnect bot commented Feb 6, 2026

Code Review Summary

Status: 1 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 1

Fix these issues in Kilo Cloud

Issue Details (click to expand)

SUGGESTION

File Line Issue
src/lib/providers/openrouter-free-models.ts 17 Avoid as KiloFreeModel; prefer satisfies to preserve static checking
Files Reviewed (4 files)
  • src/lib/models.ts - 0 issues
  • src/lib/providers/openrouter-free-models.ts - 1 issue
  • src/lib/providers/recommended-models.ts - 0 issues
  • src/tests/openrouter-models-sorting.approved.json - 0 issues

@lambertjosh lambertjosh force-pushed the pony-alpha-free-model branch from 6f6fb43 to 84d213c Compare February 6, 2026 21:36
- Add openrouter-free-models.ts with pony_alpha_free_model definition
- Add 'openrouter' to inference provider schema
- Register in kiloFreeModels so isFreeModel() returns true
- Update recommended-models.ts to use model reference
- Update approval test snapshot
Co-authored-by: Christiaan Arnoldus <christiaan.arnoldus@outlook.com>
gateway: 'openrouter',
internal_id: 'openrouter/pony-alpha',
inference_providers: ['stealth'],
} as KiloFreeModel;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Avoid type assertion (as KiloFreeModel) to preserve static checking

Using a type assertion here can hide missing/incorrect fields (e.g. gateway, inference_providers tuple shape) and makes refactors riskier. Prefer satisfies so TypeScript verifies the object while keeping the inferred literal types.

Suggested change
} as KiloFreeModel;
} satisfies KiloFreeModel;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice

@WolfyBlair
Copy link

MERGE APPROVED

@lambertjosh lambertjosh merged commit 47fb15b into main Feb 7, 2026
11 checks passed
@lambertjosh lambertjosh deleted the pony-alpha-free-model branch February 7, 2026 13:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants