orxz/deepseek-harness-themes--packages-core ↗★ 2
@deepseek-harness-themes/core
主题定义和注册辅助工具,用于 deepseek-harness 主题
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:orxz/deepseek-harness-themes#38e14b1a40abc5540c16574920d15efd44bd9073&path:packages/core说明文档
阅读完整 README ↗@deepseek-harness-themes/core
面向 deepseek-harness 的主题定义与注册辅助。本包零 UI、零 dsh 应用树运行时依赖:它以结构化方式对接官方主题扩展点(@deepseek-ai/dsh-client-ui-theme 的 ctx.theme)。
交付内容
- 十个主题定义(
ThemeDefinition = { id, colorScheme, tokens }),每个都覆盖src/tokens.ts声明的完整REQUIRED_TOKENS与RECOMMENDED_TOKENS集合。 registerThemes(registry)—— 注册全部随包主题,返回一个 disposer 可整体卸载。/client插件入口(apply/inject: ['theme']),经带标签的ctx.effect注册全部主题,供不需要选择器的用户使用。
契约
- 主题 id 唯一;
light、dark、system为宿主保留 id,永不注册。 colorScheme('light' | 'dark')选择宿主基座调色板;presenter 依据此字段切换body[data-ds-dark-theme]。tokens以内联 CSS 变量覆盖--dsw-alias-*/--dsw-specific-*语义层;宿主的--dsw-static-*静态色阶不属于本契约。- 所有定义均冻结;导入后 token 字典不可变。
用法
独立安装(注册全部主题,无选择器):
dsh plugin --profile
add @deepseek-harness-themes/core
自定义组装可直接使用注册辅助函数:
import { registerThemes } from "@deepseek-harness-themes/core";
export function apply(ctx: ClientContext): void {
ctx.effect(() => registerThemes(ctx.theme), "my-plugin: register themes");
}
主题选择由宿主负责:注册后调用 ctx.theme.setTheme('midnight')。第三方选择的持久化由配套插件 @deepseek-harness-themes/ui 提供。
Model Experience
无——本包仅注册冻结的主题定义与注册辅助函数,没有任何内容进入模型请求。
KV Cache effect
无——本包不组装、也不发送任何提供方请求。
已知限制
- 宿主不校验覆盖集的完整性;本包以
REQUIRED_TOKENS+pnpm test强制补足。 - 按宿主设计,经
ctx.theme的主题选择是进程内状态;持久化边界见docs/theme-spec.md。