dsh-claude-desktop-theme 0.4.4 → 0.4.6
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/README.md +89 -69
- package/lib/client.js +18357 -7848
- package/lib/index.js +251 -14
- package/lib/types/client/compat/account-balance.d.ts +8 -0
- package/lib/types/client/compat/browser-header.d.ts +1 -2
- package/lib/types/client/compat/changed-files.d.ts +7 -0
- package/lib/types/client/compat/composer-status-order.d.ts +1 -54
- package/lib/types/client/compat/hero-greeting.d.ts +6 -0
- package/lib/types/client/compat/host-dom.d.ts +16 -0
- package/lib/types/client/compat/mutation-scope.d.ts +18 -14
- package/lib/types/client/compat/pane-chrome.d.ts +5 -0
- package/lib/types/client/compat/pane-icons.d.ts +2 -0
- package/lib/types/client/compat/pane-labels.d.ts +2 -0
- package/lib/types/client/compat/permission-confirmation.d.ts +5 -0
- package/lib/types/client/compat/permission-menu.d.ts +4 -1
- package/lib/types/client/compat/pet-anchor.d.ts +5 -1
- package/lib/types/client/compat/plugin-feedback.d.ts +28 -0
- package/lib/types/client/compat/reply-signature.d.ts +3 -2
- package/lib/types/client/compat/running-status.d.ts +8 -0
- package/lib/types/client/compat/scroll-pill.d.ts +4 -64
- package/lib/types/client/compat/sidebar-search.d.ts +18 -0
- package/lib/types/client/compat/status-groups.d.ts +1 -1
- package/lib/types/client/compat/tool-call-details.d.ts +10 -0
- package/lib/types/client/compat/tool-call-groups.d.ts +22 -0
- package/lib/types/client/compat/tool-call-labels.d.ts +5 -0
- package/lib/types/client/compat/tool-file-summary.d.ts +13 -0
- package/lib/types/client/compat/voice-waveform.d.ts +12 -0
- package/lib/types/client/compat/workspace-branch.d.ts +62 -0
- package/lib/types/client/compat/workspace-menu.d.ts +10 -1
- package/lib/types/client/compat/workspace-picker-port.d.ts +9 -0
- package/lib/types/client/contracts/ports.d.ts +1 -0
- package/lib/types/client/features/composer-pet/BlankPet.d.ts +4 -1
- package/lib/types/client/features/composer-pet/ClaudePet.d.ts +7 -0
- package/lib/types/client/features/composer-pet/ComposerPet.d.ts +1 -1
- package/lib/types/client/features/composer-pet/claude-frames.d.ts +12 -0
- package/lib/types/client/features/composer-pet/claude-motion.d.ts +3 -0
- package/lib/types/client/features/conversation/header-actions/BlankHeaderActions.d.ts +10 -0
- package/lib/types/client/features/conversation/header-actions/HeaderActionButton.d.ts +3 -2
- package/lib/types/client/features/conversation/header-actions/entries.d.ts +4 -5
- package/lib/types/client/features/conversation/header-actions/mount.d.ts +4 -5
- package/lib/types/client/features/model-controls/EffortPanel.d.ts +2 -1
- package/lib/types/client/features/model-controls/ModelControls.d.ts +11 -1
- package/lib/types/client/features/model-controls/PricingHint.d.ts +19 -0
- package/lib/types/client/features/model-controls/model-icon-data.d.ts +31 -0
- package/lib/types/client/features/model-controls/model-icon-match.d.ts +20 -0
- package/lib/types/client/features/model-controls/model-icons.d.ts +13 -0
- package/lib/types/client/features/model-controls/pricing.d.ts +18 -0
- package/lib/types/client/features/model-controls/selection.d.ts +2 -0
- package/lib/types/client/features/settings/ChoiceMenu.d.ts +15 -0
- package/lib/types/client/features/settings/fields.d.ts +18 -0
- package/lib/types/client/features/settings/locales.d.ts +22 -1
- package/lib/types/client/features/tool-calls/index.d.ts +2 -2
- package/lib/types/host/balance.d.ts +5 -0
- package/lib/types/host/git.d.ts +37 -0
- package/lib/types/host/index.d.ts +38 -0
- package/lib/types/shared/balance.d.ts +8 -0
- package/lib/types/shared/config.d.ts +14 -3
- package/lib/types/shared/git.d.ts +30 -0
- package/package.json +2 -1
|
@@ -9,6 +9,21 @@
|
|
|
9
9
|
export declare const SETTINGS_NAMESPACE = "ccdSettings";
|
|
10
10
|
/** Simplified Chinese dictionary; the key set is the source of truth. */
|
|
11
11
|
export declare const zh: {
|
|
12
|
+
readonly 'section.personalization': '个性化';
|
|
13
|
+
readonly 'field.petStyle': '宠物样式';
|
|
14
|
+
readonly 'field.runningStyle': '输出中状态';
|
|
15
|
+
readonly 'running.whale': '鲸鱼(原生)';
|
|
16
|
+
readonly 'running.claude': 'Claude 呼吸星芒与状态';
|
|
17
|
+
readonly 'field.replySignatureStyle': '回复签名';
|
|
18
|
+
readonly 'signature.whale': '鲸鱼尾巴';
|
|
19
|
+
readonly 'signature.claude': 'Claude 星芒';
|
|
20
|
+
readonly 'pet.whale': '小鲸鱼';
|
|
21
|
+
readonly 'pet.claude': 'Claude 像素宠物';
|
|
22
|
+
readonly 'field.greetingStyle': '首页问候';
|
|
23
|
+
readonly 'greeting.explore': '探索未知之境';
|
|
24
|
+
readonly 'greeting.claude': 'Claude 问候与图标';
|
|
25
|
+
readonly 'field.greetingName': '问候语中的称呼';
|
|
26
|
+
readonly 'hint.personalization': '各项可独立切换;宠物点击后播放对应动作,问候语跟随界面语言,不显示姓名。原有模块开关仍控制显示。';
|
|
12
27
|
readonly nav: 'Claude 主题';
|
|
13
28
|
readonly summary: 'CCD 风格界面 · 外观 · 字体';
|
|
14
29
|
readonly 'section.general': '通用';
|
|
@@ -16,6 +31,10 @@ export declare const zh: {
|
|
|
16
31
|
readonly 'section.appearance': '外观';
|
|
17
32
|
readonly 'section.fonts': '字体';
|
|
18
33
|
readonly 'section.view': '视图';
|
|
34
|
+
readonly 'field.showModelIcons': '显示模型图标';
|
|
35
|
+
readonly 'hint.showModelIcons': '显示模型选单中名称前的图标,默认开启';
|
|
36
|
+
readonly 'field.showSidebarBrand': '显示 DeepSeek Harness 品牌条目';
|
|
37
|
+
readonly 'hint.showSidebarBrand': '显示侧栏顶部的品牌标志与名称,默认关闭';
|
|
19
38
|
readonly 'field.showHeaderSubagents': '显示顶栏子代理入口';
|
|
20
39
|
readonly 'hint.showHeaderSubagents': '显示会话顶栏的子代理数量与列表入口,默认关闭;子代理运行与侧栏树不受影响';
|
|
21
40
|
readonly 'field.showHeaderTeam': '显示顶栏团队入口';
|
|
@@ -53,10 +72,12 @@ export declare const zh: {
|
|
|
53
72
|
readonly 'feature.shell': '窗口与分栏骨架';
|
|
54
73
|
readonly 'feature.sidebar': '侧栏';
|
|
55
74
|
readonly 'feature.new-session': '新建页';
|
|
75
|
+
readonly 'feature.hero-ripples': '主页字符水波纹';
|
|
76
|
+
readonly 'hint.hero-ripples': '主页与标题栏的流动背景和点击扩散,默认开启;需同时开启新建页模块';
|
|
56
77
|
readonly 'feature.conversation': '聊天页';
|
|
57
78
|
readonly 'feature.tool-calls': '工具调用展示';
|
|
58
79
|
readonly 'feature.statistics': '统计卡片';
|
|
59
|
-
readonly 'feature.composer-pet': '
|
|
80
|
+
readonly 'feature.composer-pet': '输入框宠物';
|
|
60
81
|
readonly 'feature.composer-stats': '状态栏统计读数';
|
|
61
82
|
readonly 'hint.composer-stats': '输出速度与缓存命中率,关掉时这两项不显示(默认)';
|
|
62
83
|
readonly 'feature.context-panel': '上下文分解面板';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const toolCallsFeature:
|
|
1
|
+
import type { ImplementedFeature } from '../../contracts/feature.ts';
|
|
2
|
+
export declare const toolCallsFeature: ImplementedFeature;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
/** Resolve the same reference as DSH's official API-key provider, only on Host. */
|
|
3
|
+
export declare function readBalanceKey(ctx: Context): Promise<string | undefined>;
|
|
4
|
+
/** Authenticated renderer route; only normalized balances leave the Host. */
|
|
5
|
+
export declare function mountDeepSeekBalance(ctx: Context, isEnabled: () => boolean): void;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import { type GitBranchView, type GitCheckoutResult } from '../shared/git.ts';
|
|
3
|
+
/** Runs one git invocation in a directory; rejects with the child's error. */
|
|
4
|
+
export type GitRunner = (cwd: string, args: readonly string[], signal: AbortSignal, timeout?: number) => Promise<string>;
|
|
5
|
+
/**
|
|
6
|
+
* No shell, no prompts, no optional locks: listing branches must never block on
|
|
7
|
+
* credentials, never start a repository-configured fsmonitor, and never take
|
|
8
|
+
* the index lock a concurrent `git` in the user's terminal is waiting for.
|
|
9
|
+
* `LC_ALL=C` keeps git's own messages in English, which is what tells a
|
|
10
|
+
* non-repository apart from other fatal errors (a Chinese locale prints
|
|
11
|
+
* 「不是 git 仓库」); ref names are bytes and pass through unchanged.
|
|
12
|
+
*/
|
|
13
|
+
export declare const runGit: GitRunner;
|
|
14
|
+
/**
|
|
15
|
+
* Local branches of the repository that contains `cwd`, read-only.
|
|
16
|
+
* @returns `ready` with the current branch first, or the reason there is none.
|
|
17
|
+
*/
|
|
18
|
+
export declare function listBranches(cwd: string, run: GitRunner, signal: AbortSignal): Promise<GitBranchView>;
|
|
19
|
+
/**
|
|
20
|
+
* Check out one existing local branch with plain `git switch`.
|
|
21
|
+
*
|
|
22
|
+
* No `--force`, no stash: when local changes would be overwritten git refuses
|
|
23
|
+
* and the tree is left as it was. Changes that do not conflict travel to the
|
|
24
|
+
* new branch, as git does by default; their count comes back so the picker can
|
|
25
|
+
* say so. The name must already resolve under `refs/heads/` and may not start
|
|
26
|
+
* with `-`, so it can only ever be read as a branch, never as an option.
|
|
27
|
+
* Repository `post-checkout` hooks run, exactly as for a `git switch` typed in a
|
|
28
|
+
* terminal. The switch is not tied to the request's lifetime: a card closed
|
|
29
|
+
* mid-switch must not kill git halfway through updating the tree.
|
|
30
|
+
*/
|
|
31
|
+
export declare function checkoutBranch(cwd: string, branch: string, run: GitRunner): Promise<GitCheckoutResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Authenticated renderer routes: the branch listing and the checkout. The
|
|
34
|
+
* client names a registered Workspace, never a path, so neither route can be
|
|
35
|
+
* pointed at an arbitrary directory.
|
|
36
|
+
*/
|
|
37
|
+
export declare function mountGitBranches(ctx: Context, isEnabled: () => boolean, run?: GitRunner): void;
|
|
@@ -26,6 +26,7 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
26
26
|
'composer-pet': z<boolean, boolean, "defined">;
|
|
27
27
|
'composer-stats': z<boolean, boolean, "defined">;
|
|
28
28
|
'context-panel': z<boolean, boolean, "defined">;
|
|
29
|
+
'hero-ripples': z<boolean, boolean, "defined">;
|
|
29
30
|
}>>>, NoInfer<Schemastery.ObjectT<NoInfer<{
|
|
30
31
|
shell: z<boolean, boolean, "defined">;
|
|
31
32
|
sidebar: z<boolean, boolean, "defined">;
|
|
@@ -36,6 +37,7 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
36
37
|
'composer-pet': z<boolean, boolean, "defined">;
|
|
37
38
|
'composer-stats': z<boolean, boolean, "defined">;
|
|
38
39
|
'context-panel': z<boolean, boolean, "defined">;
|
|
40
|
+
'hero-ripples': z<boolean, boolean, "defined">;
|
|
39
41
|
}>>>, "volatile-defined">;
|
|
40
42
|
appearance: z<NoInfer<Schemastery.ObjectS<NoInfer<{
|
|
41
43
|
canvas: z<string, string, "defined">;
|
|
@@ -53,12 +55,29 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
53
55
|
uiCjk: z<string, string, "defined">;
|
|
54
56
|
code: z<string, string, "defined">;
|
|
55
57
|
}>>>, "volatile-defined">;
|
|
58
|
+
personalization: z<NoInfer<Schemastery.ObjectS<NoInfer<{
|
|
59
|
+
petStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
60
|
+
runningStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
61
|
+
replySignatureStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
62
|
+
greetingStyle: z<"claude" | "explore", "claude" | "explore", "defined">;
|
|
63
|
+
greetingName: z<string, string, "defined">;
|
|
64
|
+
}>>>, NoInfer<Schemastery.ObjectT<NoInfer<{
|
|
65
|
+
petStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
66
|
+
runningStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
67
|
+
replySignatureStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
68
|
+
greetingStyle: z<"claude" | "explore", "claude" | "explore", "defined">;
|
|
69
|
+
greetingName: z<string, string, "defined">;
|
|
70
|
+
}>>>, "volatile-defined">;
|
|
56
71
|
view: z<NoInfer<Schemastery.ObjectS<NoInfer<{
|
|
72
|
+
showModelIcons: z<boolean, boolean, "defined">;
|
|
73
|
+
showSidebarBrand: z<boolean, boolean, "defined">;
|
|
57
74
|
showHeaderSubagents: z<boolean, boolean, "defined">;
|
|
58
75
|
showHeaderTeam: z<boolean, boolean, "defined">;
|
|
59
76
|
groupByStatus: z<boolean, boolean, "defined">;
|
|
60
77
|
showEmptyGroups: z<boolean, boolean, "defined">;
|
|
61
78
|
}>>>, NoInfer<Schemastery.ObjectT<NoInfer<{
|
|
79
|
+
showModelIcons: z<boolean, boolean, "defined">;
|
|
80
|
+
showSidebarBrand: z<boolean, boolean, "defined">;
|
|
62
81
|
showHeaderSubagents: z<boolean, boolean, "defined">;
|
|
63
82
|
showHeaderTeam: z<boolean, boolean, "defined">;
|
|
64
83
|
groupByStatus: z<boolean, boolean, "defined">;
|
|
@@ -77,6 +96,7 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
77
96
|
'composer-pet': z<boolean, boolean, "defined">;
|
|
78
97
|
'composer-stats': z<boolean, boolean, "defined">;
|
|
79
98
|
'context-panel': z<boolean, boolean, "defined">;
|
|
99
|
+
'hero-ripples': z<boolean, boolean, "defined">;
|
|
80
100
|
}>>>, NoInfer<Schemastery.ObjectT<NoInfer<{
|
|
81
101
|
shell: z<boolean, boolean, "defined">;
|
|
82
102
|
sidebar: z<boolean, boolean, "defined">;
|
|
@@ -87,6 +107,7 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
87
107
|
'composer-pet': z<boolean, boolean, "defined">;
|
|
88
108
|
'composer-stats': z<boolean, boolean, "defined">;
|
|
89
109
|
'context-panel': z<boolean, boolean, "defined">;
|
|
110
|
+
'hero-ripples': z<boolean, boolean, "defined">;
|
|
90
111
|
}>>>, "volatile-defined">;
|
|
91
112
|
appearance: z<NoInfer<Schemastery.ObjectS<NoInfer<{
|
|
92
113
|
canvas: z<string, string, "defined">;
|
|
@@ -104,12 +125,29 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
104
125
|
uiCjk: z<string, string, "defined">;
|
|
105
126
|
code: z<string, string, "defined">;
|
|
106
127
|
}>>>, "volatile-defined">;
|
|
128
|
+
personalization: z<NoInfer<Schemastery.ObjectS<NoInfer<{
|
|
129
|
+
petStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
130
|
+
runningStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
131
|
+
replySignatureStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
132
|
+
greetingStyle: z<"claude" | "explore", "claude" | "explore", "defined">;
|
|
133
|
+
greetingName: z<string, string, "defined">;
|
|
134
|
+
}>>>, NoInfer<Schemastery.ObjectT<NoInfer<{
|
|
135
|
+
petStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
136
|
+
runningStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
137
|
+
replySignatureStyle: z<"claude" | "whale", "claude" | "whale", "defined">;
|
|
138
|
+
greetingStyle: z<"claude" | "explore", "claude" | "explore", "defined">;
|
|
139
|
+
greetingName: z<string, string, "defined">;
|
|
140
|
+
}>>>, "volatile-defined">;
|
|
107
141
|
view: z<NoInfer<Schemastery.ObjectS<NoInfer<{
|
|
142
|
+
showModelIcons: z<boolean, boolean, "defined">;
|
|
143
|
+
showSidebarBrand: z<boolean, boolean, "defined">;
|
|
108
144
|
showHeaderSubagents: z<boolean, boolean, "defined">;
|
|
109
145
|
showHeaderTeam: z<boolean, boolean, "defined">;
|
|
110
146
|
groupByStatus: z<boolean, boolean, "defined">;
|
|
111
147
|
showEmptyGroups: z<boolean, boolean, "defined">;
|
|
112
148
|
}>>>, NoInfer<Schemastery.ObjectT<NoInfer<{
|
|
149
|
+
showModelIcons: z<boolean, boolean, "defined">;
|
|
150
|
+
showSidebarBrand: z<boolean, boolean, "defined">;
|
|
113
151
|
showHeaderSubagents: z<boolean, boolean, "defined">;
|
|
114
152
|
showHeaderTeam: z<boolean, boolean, "defined">;
|
|
115
153
|
groupByStatus: z<boolean, boolean, "defined">;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const BALANCE_PATH = "/api/ccd-deepseek-balance";
|
|
2
|
+
export interface CnyBalance {
|
|
3
|
+
readonly total: string;
|
|
4
|
+
readonly granted: string;
|
|
5
|
+
readonly toppedUp: string;
|
|
6
|
+
}
|
|
7
|
+
/** Accept only the official CNY row; USD is never relabelled as RMB. */
|
|
8
|
+
export declare function readCnyBalance(value: unknown): CnyBalance | null;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* pill (the output rate, or the cache-hit share) in place of the host's own
|
|
9
9
|
* label.
|
|
10
10
|
*/
|
|
11
|
-
export declare const FEATURE_IDS: readonly ['shell', 'sidebar', 'new-session', 'conversation', 'tool-calls', 'statistics', 'composer-pet', 'composer-stats', 'context-panel'];
|
|
11
|
+
export declare const FEATURE_IDS: readonly ['shell', 'sidebar', 'new-session', 'conversation', 'tool-calls', 'statistics', 'composer-pet', 'composer-stats', 'context-panel', 'hero-ripples'];
|
|
12
12
|
export type FeatureId = typeof FEATURE_IDS[number];
|
|
13
13
|
export type FeatureFlags = Readonly<Record<FeatureId, boolean>>;
|
|
14
14
|
/** Fields of the background-colour section; an empty string means "built-in palette". */
|
|
@@ -16,13 +16,22 @@ export declare const APPEARANCE_FIELDS: readonly ['canvas', 'sidebar'];
|
|
|
16
16
|
/** Fields of the typeface section; an empty string means "system stack". */
|
|
17
17
|
export declare const FONT_FIELDS: readonly ['uiLatin', 'uiCjk', 'code'];
|
|
18
18
|
/** Fields of the view-options section. */
|
|
19
|
-
export declare const VIEW_FIELDS: readonly ['showEmptyGroups', 'groupByStatus', 'showHeaderSubagents', 'showHeaderTeam'];
|
|
19
|
+
export declare const VIEW_FIELDS: readonly ['showEmptyGroups', 'groupByStatus', 'showHeaderSubagents', 'showHeaderTeam', 'showSidebarBrand', 'showModelIcons'];
|
|
20
20
|
export type AppearanceField = typeof APPEARANCE_FIELDS[number];
|
|
21
21
|
export type FontField = typeof FONT_FIELDS[number];
|
|
22
22
|
export type ViewField = typeof VIEW_FIELDS[number];
|
|
23
23
|
export type AppearanceConfig = Readonly<Record<AppearanceField, string>>;
|
|
24
24
|
export type FontsConfig = Readonly<Record<FontField, string>>;
|
|
25
25
|
export type ViewConfig = Readonly<Record<ViewField, boolean>>;
|
|
26
|
+
export interface PersonalizationConfig {
|
|
27
|
+
readonly petStyle: 'whale' | 'claude';
|
|
28
|
+
readonly runningStyle: 'whale' | 'claude';
|
|
29
|
+
readonly replySignatureStyle: 'whale' | 'claude';
|
|
30
|
+
readonly greetingStyle: 'explore' | 'claude';
|
|
31
|
+
readonly greetingName: string;
|
|
32
|
+
}
|
|
33
|
+
export declare const DEFAULT_PERSONALIZATION: PersonalizationConfig;
|
|
34
|
+
export declare function normalizeGreetingName(value: unknown): string;
|
|
26
35
|
export interface StyleConfig {
|
|
27
36
|
readonly enabled: boolean;
|
|
28
37
|
readonly debug: boolean;
|
|
@@ -30,6 +39,7 @@ export interface StyleConfig {
|
|
|
30
39
|
readonly appearance: AppearanceConfig;
|
|
31
40
|
readonly fonts: FontsConfig;
|
|
32
41
|
readonly view: ViewConfig;
|
|
42
|
+
readonly personalization: PersonalizationConfig;
|
|
33
43
|
}
|
|
34
44
|
export interface StyleOptions {
|
|
35
45
|
readonly enabled?: boolean;
|
|
@@ -38,9 +48,10 @@ export interface StyleOptions {
|
|
|
38
48
|
readonly appearance?: Partial<Record<AppearanceField, unknown>>;
|
|
39
49
|
readonly fonts?: Partial<Record<FontField, unknown>>;
|
|
40
50
|
readonly view?: Partial<Record<ViewField, unknown>>;
|
|
51
|
+
readonly personalization?: Partial<Record<keyof PersonalizationConfig, unknown>>;
|
|
41
52
|
}
|
|
42
53
|
export declare const DEFAULT_FEATURES: FeatureFlags;
|
|
43
|
-
/** Empty
|
|
54
|
+
/** Empty colours keep the built-in palette in charge. */
|
|
44
55
|
export declare const DEFAULT_APPEARANCE: AppearanceConfig;
|
|
45
56
|
export declare const DEFAULT_FONTS: FontsConfig;
|
|
46
57
|
/**
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Read-only branch listing for the workspace picker's branch row. */
|
|
2
|
+
export declare const GIT_BRANCHES_PATH = "/api/ccd-git-branches";
|
|
3
|
+
/** Upper bound on listed local branches; the rest are reported as truncated. */
|
|
4
|
+
export declare const GIT_BRANCH_LIMIT = 200;
|
|
5
|
+
export type GitBranchState = 'ready' | 'not-repo' | 'no-git' | 'unknown-workspace' | 'error';
|
|
6
|
+
/** What the Host reports for one Workspace directory. */
|
|
7
|
+
export interface GitBranchView {
|
|
8
|
+
readonly state: GitBranchState;
|
|
9
|
+
/** Checked-out branch, or the short commit id when `detached`. */
|
|
10
|
+
readonly current: string | null;
|
|
11
|
+
readonly detached: boolean;
|
|
12
|
+
/** Local branches, current first, then most recently committed. */
|
|
13
|
+
readonly branches: readonly string[];
|
|
14
|
+
readonly truncated: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** Accept only a well-formed view; anything else reads as an error. */
|
|
17
|
+
export declare function readGitBranchView(value: unknown): GitBranchView;
|
|
18
|
+
/** Branch checkout for the same row, offered on the new-session page only. */
|
|
19
|
+
export declare const GIT_CHECKOUT_PATH = "/api/ccd-git-checkout";
|
|
20
|
+
export type GitCheckoutState = 'switched' | 'conflict' | 'in-worktree' | 'invalid-branch' | 'unknown-workspace' | 'error';
|
|
21
|
+
/** What the Host reports after one checkout attempt. */
|
|
22
|
+
export interface GitCheckoutResult {
|
|
23
|
+
readonly state: GitCheckoutState;
|
|
24
|
+
/** Tracked files still modified after a switch: the changes git carried over. */
|
|
25
|
+
readonly carried: number;
|
|
26
|
+
/** First line of git's own message, for `error` only. */
|
|
27
|
+
readonly message: string;
|
|
28
|
+
}
|
|
29
|
+
/** Accept only a well-formed result; anything else reads as an error. */
|
|
30
|
+
export declare function readGitCheckoutResult(value: unknown): GitCheckoutResult;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-claude-desktop-theme",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Claude Code Desktop-style theme for DeepSeek Harness (DSH) Desktop on macOS and Windows, with light/dark themes, model/effort pickers and an interactive pixel whale",
|
|
6
6
|
"author": "zkforge",
|
|
@@ -81,6 +81,7 @@
|
|
|
81
81
|
"typecheck": "tsc --noEmit",
|
|
82
82
|
"check:architecture": "node scripts/check-architecture.mjs",
|
|
83
83
|
"check:package": "node scripts/check-package.mjs",
|
|
84
|
+
"icons:models": "node scripts/generate-model-icons.mjs",
|
|
84
85
|
"test": "node --test tests/*.test.ts tests/*.test.mjs",
|
|
85
86
|
"check": "npm run typecheck && npm run check:architecture && npm test && npm run build && npm run check:package",
|
|
86
87
|
"prepack": "npm run check",
|