* ui: show locked API key environment reference * fix(ui-settings-models): skip unused pi-ai credential reference * fix(ui-settings-models): show active provider auth source * test(llm): cover provider auth check failures * docs(ui-settings-models): clarify active provider authentication * test(web): update model key copy snapshots * fix(ui-settings-models): clarify native authentication source hint * fix: address PR 5483 review feedback * docs(llm): state empty auth lookup behavior * fix: refresh auth hints with credential snapshots * fix: require credential refresh revision * test: cover auth status projection * fix: refresh catalog and browser expectations after rebase * fix: keep auth status projection internal and explicit * fix: preserve credential source checks with signed-in account rows * test: pin Models authentication instead of inheriting host keys * fix: prioritize stored credentials across providers * fix: use one environment fallback hint * docs: refresh credential contract * docs: refresh config catalog * test: align provider hint verification * fix: use provider-native auth hints and endpoints * fix: cover oauth-capable provider auth hints * fix: show canonical endpoint defaults * fix: avoid misleading endpoint fallback * fix: label catalog endpoint defaults * fix: shorten auth hints with hover details * fix: clarify native auth resolution * test: align DeepSeek endpoint hint * fix: pair help button corner shape * fix: address credential precedence review Record the stored-credential precedence in a superseding Agent Note and an upgrade guide, and align the credentials subsystem page, package READMEs, and JSDoc with the order file > launch env > $cwd/.env > $DSH_HOME/.env. Report each pi-ai route's catalog endpoint and native-auth environment names through the provider directory, check the names against the installed pi-ai resolvers, and remove the llm/checkAuth and credential describe operations that no Models page code calls. Restore the route-derived key reference and the home expansion that reads the home directory only for a leading ~. * fix: clarify model authentication guidance * fix: explain native provider OAuth requirements * fix: keep authentication guidance method neutral * fix: show credential reference source in model editor * fix: use environment authentication in headless profile * fix: validate headless authentication and current provider metadata * test: retain authentication guidance coverage with account catalog updates * test: retain writable Models credentials with the pinned environment
description, kind
| description | kind |
|---|---|
| Host Remote owner for settings and credential configuration surfaces, including redacted reads, writes, credential references, and native document opening. | package-reference |
Settings Controller
English | 中文
Summary
@deepseek-ai/dsh-api-settings-controller exposes generated ctx.remote.settings and ctx.remote.credentials namespaces for browser configuration surfaces. It returns redacted settings and credential metadata, supports settings and credential writes without returning secret values, and opens provider-owned settings or Agent preset locations on the Host desktop. When a provider is absent, the namespace remains registered and returns an actionable configuration error.
Table of Contents
Use this package
Mount this package as a Loader entry in a profile that serves browser configuration. The entry registers both namespaces independently of their providers so a missing provider produces a named configuration error at invocation. Its generated descriptors enter the strict Typert registry, while the settings and credential Definitions remain plain Cordis Services with no wire obligations of their own.
describe(refs) answers one map keyed by the requested names, so a settings page describing every reference its rows carry settles those rows together. It accepts at most 64 names per call, reports an invalid name or empty write value as bad-request, and copies each answer field by field — a provider returning more than CredentialInfo declares cannot widen what crosses. Valid set(ref, value) and unset(ref) calls report a provider refusal as credential-rejected, carrying the provider's message with only the reference in its details. Secret values cross in this direction only: no method here returns one.
settings.describe() returns deployment facts and every namespace under redactSecrets: true. settings.update, settings.replace, and settings.mutate expose the settings service's three write operations and return the namespace's new redacted view; stale writes use settings-conflict and other provider refusals use settings-rejected.
settings.openSettingsDocument() prepares the provider-owned document and opens it with the native text editor; it accepts no browser-supplied filesystem target.
Configuration
| Field | Default | Meaning |
|---|
The generated configuration catalog is the exhaustive source for accepted fields and their JSDoc.
Model Experience
None, as settings and credential configuration are browser and Host state and register no prompt, tool, or session event.
KV Cache effect
No direct effect; reading or writing these configuration values does not alter model requests already in flight.
Known Limitations and Deferred Work
- The batch bound is fixed at 64 references and is not a deployment-configurable field.
Dev Note
Working context for maintainers — click to expand
None.