Back to home@alaxrpg

dsh-sensenova-provider

No description

Stars
0
Language
TypeScript
Created
Sep 3, 2026
Updated
Sep 4, 2026
GitHub repo

Introduction

@alaxrpg/dsh-sensenova-provider

Unofficial DeepSeek Harness (DSH) LLM provider plugin for SenseNova (OpenAI-compatible API). Registers the sensenova provider route with a Models-page card, a live model catalog, and multi-account API-key rotation on a single shared base URL.

Reference implementation: @mars-sea/dsh-commandcode-provider (MIT). This plugin keeps only the multi-account connection feature; it drops login flows, usage dashboards, plan windows, and command-line tools.

Features

  • Registers provider route sensenova (display name SenseNova).
  • Live model catalog via GET {apiBase}/v1/models.
  • OpenAI-compatible streaming: POST {apiBase}/v1/chat/completions (SSE).
  • Multiple API keys (accounts) on one shared base URL, with automatic rotation:
    • 429 Too Many Requests → cooldown the key (honors Retry-After; 60 s fallback when absent).
    • 401 Unauthorized → disable the key until the stored credential changes.
    • All keys exhausted → surfaces RATE_LIMIT / INVALID_CREDENTIAL with the earliest reset time.
  • Web settings page (Models-page card + dedicated settings section).

Requirements

  • DSH host >=0.1.2-alpha.3 (alpha line).
  • Node.js >=22.

Install

dsh plugin --profile <name> add dsh-sensenova-provider

Or install from a local path:

dsh plugin --profile <name> add ./dsh-sensenova-provider

Then configure SenseNova in the Models page: the default credential environment variable is SENSENOVA_API_KEY, and the default base URL is https://token.sensenova.cn/v1.

Configuration

The plugin installs a llm-sensenova settings section with these fields:

FieldTypeDefaultMeaning
apiBasestringhttps://token.sensenova.cn/v1Shared base URL for all accounts.
apiKeyEnvcredential-refSENSENOVA_API_KEYDefault account credential reference.
accounts[]array[]Extra accounts: { id, label, apiKeyEnv }.
activeAccountstring""Preferred account id; empty means auto / first usable.

API keys are stored through the DSH credentials service; they are never logged and never sent to the model.

Development

pnpm install
pnpm run typecheck
pnpm run build    # tsdown → lib/
pnpm test         # node --import tsx --test tests/**/*.test.ts

License

MIT