Skip to content

feat: discovery-only catalog with coding-oriented frontier providers - #22

Merged
TheStreamCode merged 6 commits into
mainfrom
feat/discovery-only-coding-catalog
Oct 14, 2026
Merged

TheStreamCode merged 6 commits into
mainfrom
feat/discovery-only-coding-catalog

Conversation

@TheStreamCode

@TheStreamCode TheStreamCode commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Summary

Discovery-only catalog: the built-in catalog ships provider endpoints only, and model lists always come from live GET /models — no shipped lists to go stale. The catalog is also pruned to coding-oriented frontier providers.

Stacked on #21 (audit fix): merge #21 first, then rebase this branch.

Changes

  • Removed all shipped model lists; fallback chain is now remembered list -> pinned models -> provider omitted with a logged reason
  • Ranking no longer prefers any model family (recency, version, context, name)
  • Vision flag is read from live provider metadata, like reasoning already was
  • Added muse (Meta Muse) and
    im (NVIDIA NIM) providers
  • Removed stepfun, doubao, hunyuan, qianfan (breaking: configs referencing these ids need updating)
  • catalog:update is offline (no models.dev fetch); catalog:audit checks each provider serves a usable chat model
  • --no-discovery is now an offline mode (pinned or remembered lists, no network)
  • --list-providers shows key state and pinned/remembered counts
  • New provider key envs registered in DEFAULT_SECRET_SOURCE_ENV and covered by tests
  • Docs: README, provider-verification (re-probed 2026-10-14), troubleshooting, AGENTS.md, CHANGELOG, example config

Testing

  • [x]
    pm run lint && npm test passes (183 pass, 0 fail, 2 skipped; was 178/0/2)
  • Tested on Windows
  • Tested on macOS / Linux (covered by the CI matrix)
  • Verified with real providers: catalog:audit live (7 keyless catalogs resolve, incl. NIM 80/69 and OpenRouter 462/447); end-to-end discovery+picker smoke against NIM (ids-only defaults) and OpenRouter (real limits + vision flag)
  • [x]
    pm pack --dry-run shows only shipped paths; both
    pm audit gates clean

Checklist

  • PR is focused on a single concern
  • README.md updated if user-facing behavior changed
  • No API keys or credentials in code or examples
  • New provider entries document the base URL, model behavior, and authentication requirements
  • Credential environment names are registered and tested when authentication is required

Notes

  • muse/
    im endpoints verified by probe (401 on invalid key) plus official docs (Context7: Tencent/NVIDIA/Perplexity lookups during review; Meta has no indexed API docs, so Muse rests on probes + convergent third-party reports). No-key end-to-end inference run yet — keys needed.
  • Perplexity, Baichuan, Baseten evaluated and deliberately not shipped

Bumps transitive brace-expansion 5.0.9 -> 5.0.12 via npm audit fix (chain: eslint -> minimatch -> brace-expansion). Unblocks the npm audit gate failing on CI.
The built-in catalog ships endpoints only: model lists always come from live discovery, with the remembered list as the offline fallback.

- Ranking no longer prefers any model family; vision is read from live metadata.

- muse and nim providers added; stepfun, doubao, hunyuan, qianfan removed.

- catalog:update is offline (no models.dev); catalog:audit checks usable models.

- --no-discovery is now an offline mode; --list-providers shows key state.

BREAKING CHANGE: configs referencing the removed provider ids need updating.
configurable() required provider.models.length, which is always empty now that the catalog is discovery-only. Any provider needing a credential is worth offering.
@TheStreamCode
TheStreamCode merged commit f30fa0f into main Oct 14, 2026
9 checks passed
@TheStreamCode
TheStreamCode deleted the feat/discovery-only-coding-catalog branch October 14, 2026 19:14
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.

1 participant