youyli03/dsh-palenight-theme

皮肤 ⭐ 0 MIT web-ui

一个动态的Cordis插件,为dsh Harness Web UI提供主题——Palenight深色+温暖中性浅色

catalog 简介:A dynamic Cordis plugin that themes the dsh Harness Web UI — Palenight dark + warm-neutral light

安装

The browser half (`plugin/client.js`) applies the layer and registers small UI
(run-card panel, composer status line). The host half (`plugin/host.js`)
registers two package-private RPC handlers (`demo/ping`, `demo/hello`) and a
model-visible demo tool (`demo_greet`) to prove both halves are live.

## Activation (persistent bundle form — survives restarts)

The package is a dsh **bundle**: `package.json` declares `dsh.bundle.patch`
(its `cordis.patch.yml` row) and `dsh.client` (the web client bundle). Install
it so the dsh profile can resolve it:

1. **Resolve the package from the profile.** Either install it with pnpm in
   the profile directory (`dsh plugin --profile web add dsh-palenight-theme`,
   once published), or — for a local checkout — copy the package directory
   into the profile's dependency store and register it:
   - copy to `~/.dsh/profiles/node_modules/dsh-palenight-theme/`
   - add `"dsh-palenight-theme": "1.0.0"` to `dependencies` in
     `~/.dsh/profiles/web/package.json`
   - append `dsh-palenight-theme` to `dsh.profile.bundles` in the same file
2. **Restart dsh.** The row `- id: dsh-palenight-theme` composes into the host
   tree, and the client-modules registry adds
   `/plugins/dsh-palenight-theme/client.js` to the boot manifest
   (`dsh.client.platform: web`, `immediately: true`).
3. **The theme applies at every boot.** Switch dsh Appearance to
   Light/Dark/System — both palettes are themed.

To remove: drop the dependency and bundle entry, then restart.

> **Activation gate.** The client bundle declares `inject: ['theme']`, so the
> plugin activates only after the `theme` service (provided by
> `@deepseek-ai/dsh-client-ui-theme`) is available. Do not remove it: with
> `inject: []` the `immediately: true` bundle runs before `ui-theme` provides
> the service, `ctx.get('theme')` is `undefined`, and the token layer silently
> never applies.
>
> **Hot updates.** `dsh-client-hmr` watches served bundle files, so replacing
> `plugin/client-module.js` (same package, new content hash) reaches the graph
> without a host restart.

## Activation (dynamic form, deprecated — dies on restart)

1. `cordis_define` a new Plugin (`kind: new`, any `idPrefix`), pasting
   `plugin/host.js` as `code.host` and `plugin/client.js` as `code.client`.
2. `cordis_run` the returned `pluginId`/`packageId` (`mode: run`).
3. Approve the browser-side `cordis/request-run` prompt (client code only runs
   after you approve it).
4. The theme applies immediately. Switch dsh Appearance to Light/Dark/System —
   both palettes are themed.

To revert: `cordis_stop <pluginId>` restores the default theme and removes all
effects (badge, cards, tools). `cordis_undefine` removes it permanently.

## Repository layout

youyli03/dsh-palenight-theme 加入你的 DSH 配置(web profile)即可启用。

README

展开完整 README 收起

README 内容为空。