Skip to content

feat(llm): add Hugging Face provider + selectable local Claude Code models#127

Open
2alf wants to merge 1 commit into
elder-plinius:mainfrom
2alf:main
Open

feat(llm): add Hugging Face provider + selectable local Claude Code models#127
2alf wants to merge 1 commit into
elder-plinius:mainfrom
2alf:main

Conversation

@2alf

@2alf 2alf commented Jul 25, 2026

Copy link
Copy Markdown

Contribution Receipt

  • Change: Add Hugging Face provider (OpenAI-compatible Inference Providers router) and
    selectable local Claude Code models (active-agent pin + Opus/Sonnet/Haiku picker), UI + backend.
  • Scope class: local_lab
  • Target authority: n/a (LLM backbone plumbing only; no target interaction)
  • Network use: none (no live calls in tests; provider endpoints are config only)
  • Run mode labels: n/a
  • Model/harness labels: adds huggingface provider + local-agent model passthrough
  • Commands run:
    • npm run typecheck -> pass
    • npm test -> pass except pre-existing Windows-only failures, identical set on clean upstream; new HF test passes
    • npm run doctor -> pass (optional-tool warnings only)
    • npm run verify-claims -> (no bench artifacts or headline numbers changed)
    • UI: all inline docs/index.html scripts pass node --check
  • Artifacts: none
  • Redaction: n/a (no secrets/evidence added)
  • Claims changed: none
  • Abstentions/refusals: none
  • Residual risk: none beyond the existing local-agent execution path (unchanged trust model)

…odels

Adds two operator-selectable LLM backbones, wired through both the backend
and the War Room UI.

Hugging Face (OpenAI-compatible Inference Providers router):
- New `huggingface` provider reusing OpenAIAdapter (router.huggingface.co/v1)
- HF_TOKEN / HUGGINGFACE_API_KEY / HUGGINGFACE_TOKEN env resolution, config,
  setup wizard, CLI, factory, best-available, and .env.example
- Settings key card + 4 inference models in the picker + direct client routing
- Tests: src/__tests__/huggingface-provider.test.ts

Local Claude from Claude Code:
- Explicit "active backbone" pin in Settings so a connected agent (Claude Code)
  can be chosen; a pin outranks stored API keys in both the client resolver and
  mission dispatch
- Claude Code model picker (Account default / Opus / Sonnet / Haiku), threaded
  to the CLI's --model via an "agentId::model" encoding parsed by LocalAgentAdapter;
  requireLiveLocalAgent strips the suffix for connected-agent validation
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