@huaweidevtools/aishell-dsh-brand 0.0.1-beta.2 → 0.0.1-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +16 -2
- package/lib/client.js +1404 -33
- package/lib/types/client/Brand.d.ts +39 -2
- package/lib/types/client/SuggestionCards.d.ts +94 -0
- package/lib/types/client/aishell-mark.d.ts +22 -0
- package/lib/types/client/autoplay.d.ts +67 -0
- package/lib/types/client/carousel.d.ts +96 -0
- package/lib/types/client/favicon-shadow.d.ts +55 -0
- package/lib/types/client/hero-content.d.ts +70 -0
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/locales.d.ts +66 -0
- package/lib/types/client/running-mark-shadow.d.ts +45 -0
- package/lib/types/client/running-text-shadow.d.ts +52 -0
- package/lib/types/client/suggestion-icons.d.ts +45 -0
- package/lib/types/client/suggestions.d.ts +118 -0
- package/package.json +10 -6
package/LICENSE
CHANGED
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright
|
|
189
|
+
Copyright 2026 Huawei Cloud AI Shell
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @huaweidevtools/aishell-dsh-brand
|
|
2
2
|
|
|
3
|
-
AI Shell brand reskin for DSH web. Replaces the default DeepSeek fish mark in the sidebar and blank-session hero with the AI Shell icon and wordmark, and shadows the browser/window product title at runtime.
|
|
3
|
+
AI Shell brand reskin for DSH web. Replaces the default DeepSeek fish mark in the sidebar and blank-session hero with the AI Shell icon and wordmark, and shadows the browser/window product title, tab favicon, and running-status whale + copy at runtime.
|
|
4
4
|
|
|
5
5
|
## How it works
|
|
6
6
|
|
|
@@ -20,6 +20,19 @@ The product title "DeepSeek Harness" is baked into the dsh tree at build time (`
|
|
|
20
20
|
|
|
21
21
|
Shadowing is a default, not a force: the effect's disposer removes the own property and restores the official title, so disabling the plugin returns the shell to its official behavior.
|
|
22
22
|
|
|
23
|
+
## Favicon and manifest shadow
|
|
24
|
+
|
|
25
|
+
The browser tab icon comes from the dist's `favicon.svg` / `favicon-dark.svg` (a DeepSeek whale, one fixed fill per theme, selected by `media="(prefers-color-scheme: …)"` links) — digest-protected like the title. `src/client/favicon-shadow.ts` repoints every `link[rel~="icon"]` at the AI Shell mark data URI (`src/client/aishell-mark.ts`, pinned byte-for-byte against `assets/aishell.svg`), dropping the media qualifier because the mark's gradient reads on both themes. A MutationObserver re-shadows links re-inserted into the head. The web manifest's display names ("DeepSeek Harness" / "DSH") are rebranded to "AI Shell" through a Blob URL when the manifest is reachable; a manifest that cannot be fetched or parsed is left exactly as found, so the install prompt never breaks over a display name. The disposer restores every touched link and revokes the Blob URL.
|
|
26
|
+
|
|
27
|
+
## Running-status shadows
|
|
28
|
+
|
|
29
|
+
The thinking line under an active turn ("深度求索中,用时 X ···" / "Deep diving for X ···") carries two DeepSeek residues, both in ui-chat with no slot to occupy, so both are shadowed at runtime:
|
|
30
|
+
|
|
31
|
+
- **The whale tail icon** (`src/client/running-mark-shadow.ts`) — the same CSS-patch approach the hero headline uses, anchored on the row's stable literal attribute `[data-chat-running]`. The patch hides the animated APNG mask and the static SVG fallback and repaints the 14px `runningIcon` box with the AI Shell mark plus a gentle bob; under `prefers-reduced-motion` the mark is static, matching the official whale's own degradation.
|
|
32
|
+
- **The copy** (`src/client/running-text-shadow.ts`) — `locale.register` throws on the claimed `chat` namespace, so the rendered text is rewritten instead. One substring replacement per language covers both keys ("深度求索中" → "思考中", "Deep diving" → "Thinking"; the duration forms share the prefix). The line re-renders every second, so a MutationObserver (characterData + childList + the `data-shimmer-text` attribute — TextShimmer paints its highlight through `content: attr()`, so a stale attribute would flash the official copy on every sweep) keeps it covered for as long as the row exists. The row's aria status span sits in the same subtree and is covered by the same sweep.
|
|
33
|
+
|
|
34
|
+
Both disposers restore the official whale and copy exactly.
|
|
35
|
+
|
|
23
36
|
## Install
|
|
24
37
|
|
|
25
38
|
```sh
|
|
@@ -32,9 +45,10 @@ dsh plugin --profile <name> add @huaweidevtools/aishell-dsh-base
|
|
|
32
45
|
|
|
33
46
|
## What it does NOT touch
|
|
34
47
|
|
|
35
|
-
- Navigation, settings, panels, conversation — only the three brand slots and the
|
|
48
|
+
- Navigation, settings, panels, conversation — only the three brand slots, the product title, the tab icon/manifest names, and the running-status icon/copy.
|
|
36
49
|
- DSH default plugins — no rows disabled.
|
|
37
50
|
- Session titles in the browser title — the part before the product name passes through unchanged.
|
|
51
|
+
- Duration units and the "···" tail in the running line — the harness's own words, not product branding.
|
|
38
52
|
|
|
39
53
|
## License
|
|
40
54
|
|