Feature: DeepSeek Harness Provider Integration

Purpose

Defines how the DeepSeek Harness (the dsh web GUI on this desktop) reaches the local routers through the llm-pi-ai adapter, so a dsh session uses the same models as aider and llama.vscode instead of a cloud provider.

Requirements

Behavior

Dependencies

Mechanism

DeepSeek Harness ships a generic multi-provider adapter (@deepseek-ai/dsh-llm-pi-ai) keyed by provider route in the llm-pi-ai settings namespace (~/.dsh/settings.yaml). A route that pi-ai does not ship is declared outright with api, baseURL, and a models list.

Canonical Route

The beast route is the canonical local provider. The corrected example lives in sources/config/dsh-settings-beast.example.yaml.

llm-pi-ai:
      providers:
        beast:
          displayName: Beast (llama.cpp)
          apiKeyEnv: BEAST_API_KEY
          api: openai-completions
          baseURL: http://beast.lan:2001/v1
          compat:
            supportsDeveloperRole: false
            maxTokensField: max_tokens
          models:
            - id: <router model id>
              contextWindow: <preset ctx-size>
              maxTokens: <safe output cap, well under ctx-size>

Credential

llama.cpp ignores Authorization unless the router runs with --api-key.

GUI Surface

The Models settings section in the web GUI offers a custom-provider creation card (route, display name, base URL, protocol, API key, models) and per-model advanced fields (context window, max tokens). The card does not expose compat; add the compat block by editing ~/.dsh/settings.yaml directly.