Back to home

Asuta

dsh-client-ui-settings-model-advanced

DSH web plugin: schema-driven advanced model settings page (settings.section 'model-advanced')

Stars
0
Language
TypeScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

dsh-client-ui-settings-model-advanced

English | 简体中文

DSH web plugin: a schema-driven Model Advanced settings page. Registers one settings.section nav entry (model-advanced, order 11) beside the shipped Models page: a per-provider and per-model editor for the advanced capability fields the Models page does not render (vision input, context window, max output, reasoning level map, timeouts, transport, cache, headers, openai-completions compat switches).

Everything the editor addresses is probed out of the serialized schemastery envelope of the provider's own settings namespace, so a schema that lacks a field simply hides it. Writes land as minimal settings.mutate path ops, so the redacted API-key secret is never rewritten.

Layout

  • src/index.ts — Host loader entry (no host-side behavior).
  • src/invariant.ts — package invariant companion (no runtime invariant).
  • src/client/index.ts — browser half: registers the settings.section entry, wires the zh/en copy dictionaries to the active locale, and injects the connection.api wire face + bound translate into the section.
  • src/client/ModelAdvancedSection.tsx — the settings page component.
  • src/client/schema-probe.ts — pure schema-introspection and draft-editing helpers.
  • src/client/locales.ts — zh/en copy dictionaries.
  • src/client/ModelAdvancedSection.module.css — theme-token styles.

Build

corepack pnpm install --ignore-workspace
corepack pnpm exec tsc --noEmit
corepack pnpm run build

The client bundle registers itself via window.__ModuleLoader__.load({ id, "@dsh-external/dsh-client-ui-settings-model-advanced", factory }) and injects its stylesheet as a <style data-plugin-css> tag at factory evaluation.

Install (separate step)

pnpm pack --pack-destination <profile>\packages
node <checkout>\apps\cli\lib\bin.js plugin --profile web add -w <abs path to .tgz>

Because the package ships dsh.bundle.patch, dsh plugin add reconciles the bundle stack and mounts the row — no manual cordis.patch.yml edit. Client bundles need a host restart to enter the bundle stack.

License

MIT