dsh-messager 0.3.1 → 0.3.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"card-controller.d.ts","sourceRoot":"","sources":["../../../src/client/card-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"card-controller.d.ts","sourceRoot":"","sources":["../../../src/client/card-controller.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  /**
2
2
  * 客户端配置读取:经 host 配置路由(GET /dsh-messager/config)拉取 messager
3
3
  * 命名空间有效值,并通过 `settings/document-updated` 失效后重拉。
4
- * 路由不受 Web 设置白名单门控,发行版同样可用;拉取失败回退 schema 默认值。
4
+ * 路由不受 Web 设置白名单门控,发行版同样可用。
5
+ *
6
+ * ⚠️ 拉取失败时的兜底值必须**关闭**通知(见 FAIL_SAFE),不能用 schema 默认值:
7
+ * `browser.enabled` 的 schema 默认值是 `true`,用它兜底意味着任何一次拉取失败
8
+ * 都会在用户已关闭通知的情况下静默开启推送 —— 表现为「我明明关了还弹」。
5
9
  */
6
10
  import { type Config } from '../config.js';
7
11
  export interface ClientConfigHandle {
@@ -14,7 +18,12 @@ export declare class ClientConfig implements ClientConfigHandle {
14
18
  private readonly listeners;
15
19
  get(): Config;
16
20
  subscribe(listener: () => void): () => void;
17
- /** 拉取 host 配置视图(首次与收到 document-updated 后调用)。 */
21
+ /**
22
+ * 拉取 host 配置视图。
23
+ *
24
+ * 失败(路由未挂载 / 网络问题 / 视图非 ready)时**保持上一次的已知值**;
25
+ * 若从未成功过,则保持 FAIL_SAFE(通知关闭)。
26
+ */
18
27
  refresh(): Promise<void>;
19
28
  }
20
29
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/client/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAGzD,MAAM,WAAW,kBAAkB;IACjC,GAAG,IAAI,MAAM,CAAA;IACb,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;IAC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,qBAAa,YAAa,YAAW,kBAAkB;IACrD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAElD,GAAG,IAAI,MAAM;IAIb,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAO3C,gDAAgD;IAC1C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAY/B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/client/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAGzD,MAAM,WAAW,kBAAkB;IACjC,GAAG,IAAI,MAAM,CAAA;IACb,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;IAC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAQD,qBAAa,YAAa,YAAW,kBAAkB;IACrD,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAElD,GAAG,IAAI,MAAM;IAIb,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAO3C;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAY/B"}
@@ -1,12 +1,10 @@
1
1
  /**
2
- * 客户端会话摘要 diff(纯函数,可单测):
3
- * 对比两次会话列表快照,产出需要浏览器通知的变化。
4
- * 语义与 Web UI 状态圆点完全一致:
5
- * - uiSession.pendingInteractions 从无到有 → 需要交互(橙点)
6
- * - running true→false 且会话非当前选中 → 任务完成(绿点)
2
+ * 客户端会话状态 diff(纯函数,可单测):
3
+ * - sessionStatus.pendingInteraction 从无到有 → 需要交互(橙点)
4
+ * - running true→false 且会话不在主视图 → 任务完成(绿点)
7
5
  */
8
6
  import type { SessionSummary } from '@deepseek-ai/dsh-api-session-controller/client';
9
- import type { SessionPendingInteractionBase } from '@deepseek-ai/dsh-client-ui-session/client';
7
+ import type { SessionStatusSnapshot } from '@deepseek-ai/dsh-client-ui-session/client';
10
8
  import type { SessionId } from '@deepseek-ai/dsh-session/types';
11
9
  export type ClientNoticeKind = 'interaction' | 'completed';
12
10
  export type ClientInteractionKind = 'approval' | 'plan-review' | 'question';
@@ -19,18 +17,21 @@ export interface ClientNotice {
19
17
  title?: string;
20
18
  }
21
19
  /**
22
- * 对比两次列表快照。
23
- * 首次出现的会话只建立基线、不通知;被移除的会话不通知。
24
- * @param previous - 上一次快照的 byId。
25
- * @param next - 本次快照的 byId。
26
- * @param current - 本次快照的当前选中会话(选中会话的完成不打扰)。
20
+ * 对比两次列表快照。首次出现的会话只建立基线、不通知;被移除的会话不通知。
27
21
  */
28
- export declare function diffSessionSummaries(previous: Readonly<Record<SessionId, SessionSummary>>, next: Readonly<Record<SessionId, SessionSummary>>, current: SessionId | undefined): ClientNotice[];
22
+ export declare function diffSessionSummaries(previous: Readonly<Record<SessionId, SessionSummary>>, next: Readonly<Record<SessionId, SessionSummary>>): ClientNotice[];
29
23
  /** 仅把 DSH Web UI 有专用展示语义的待交互 kind 映射为通知类型。 */
30
24
  export declare function clientInteractionKindOf(kind: string): ClientInteractionKind | undefined;
31
25
  /**
32
- * 对比两次 uiSession 待交互快照。
33
- * 仅从无到有时通知;首次订阅由调用方把当前快照设为 previous,因此不会补发历史通知。
26
+ * 触发开关门控:与 host 端 `triggers` 语义对齐。
27
+ *
28
+ * 此前浏览器通道完全没有这层判断,导致「关闭某类触发」对浏览器通知无效 ——
29
+ * 用户关掉后仍会收到(Windows 把浏览器通知渲染成系统 toast,难以分辨来源)。
34
30
  */
35
- export declare function diffPendingInteractions(previous: ReadonlyMap<SessionId, SessionPendingInteractionBase>, next: ReadonlyMap<SessionId, SessionPendingInteractionBase>, summaries: Readonly<Record<SessionId, SessionSummary>>): ClientNotice[];
31
+ export declare function triggerAllows(notice: ClientNotice, triggers: {
32
+ interaction: boolean;
33
+ completed: boolean;
34
+ }): boolean;
35
+ /** 对比两次 uiSession 统一状态快照。 */
36
+ export declare function diffPendingInteractions(previous: SessionStatusSnapshot, next: SessionStatusSnapshot, summaries: Readonly<Record<SessionId, SessionSummary>>): ClientNotice[];
36
37
  //# sourceMappingURL=diff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/client/diff.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAA;AACpF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAA;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,WAAW,CAAA;AAC1D,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAA;AAE3E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,qDAAqD;IACrD,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EACrD,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EACjD,OAAO,EAAE,SAAS,GAAG,SAAS,GAC7B,YAAY,EAAE,CAYhB;AAED,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CASvF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,WAAW,CAAC,SAAS,EAAE,6BAA6B,CAAC,EAC/D,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,6BAA6B,CAAC,EAC3D,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,GACrD,YAAY,EAAE,CAehB"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/client/diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAA;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,WAAW,CAAA;AAC1D,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAA;AAE3E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,qDAAqD;IACrD,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EACrD,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,GAChD,YAAY,EAAE,CAYhB;AAED,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CASvF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GACrD,OAAO,CAET;AAED,6BAA6B;AAC7B,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,qBAAqB,EAC/B,IAAI,EAAE,qBAAqB,EAC3B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,GACrD,YAAY,EAAE,CAgBhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAkBlD,eAAO,MAAM,IAAI,iBAAiB,CAAA;AAElC,8CAA8C;AAC9C,eAAO,MAAM,SAAS,iBAAiB,CAAA;AAEvC,sDAAsD;AACtD,eAAO,MAAM,MAAM,UAAyD,CAAA;AAwG5E,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA2FxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAkBlD,eAAO,MAAM,IAAI,iBAAiB,CAAA;AAElC,8CAA8C;AAC9C,eAAO,MAAM,SAAS,iBAAiB,CAAA;AAEvC,sDAAsD;AACtD,eAAO,MAAM,MAAM,UAAyD,CAAA;AAyG5E,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAwGxC"}
@@ -66,6 +66,7 @@ export declare const zh: {
66
66
  'action.discard': string;
67
67
  'action.reset': string;
68
68
  'badge.overridden': string;
69
+ 'status.unsaved': string;
69
70
  'status.readOnly': string;
70
71
  'status.saveFailed': string;
71
72
  'status.invalidInput': string;
@@ -129,6 +130,7 @@ export declare const en: {
129
130
  'action.discard': string;
130
131
  'action.reset': string;
131
132
  'badge.overridden': string;
133
+ 'status.unsaved': string;
132
134
  'status.readOnly': string;
133
135
  'status.saveFailed': string;
134
136
  'status.invalidInput': string;
@@ -1 +1 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,kBAAkB;QAC1B,2CAA2C;QAC3C,cAAc,EAAE,MAAM,OAAO,EAAE,CAAA;KAChC;CACF;AAED,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEd,CAAA;AAED,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEd,CAAA"}
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,kBAAkB;QAC1B,2CAA2C;QAC3C,cAAc,EAAE,MAAM,OAAO,EAAE,CAAA;KAChC;CACF;AAED,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEd,CAAA;AAED,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEd,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings-form.d.ts","sourceRoot":"","sources":["../../../src/client/settings-form.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAiB,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAEjG,0CAA0C;AAC1C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUnD,CAAA;AAiRD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;IAC1D,KAAK,EAAE,iBAAiB,CAAA;IACxB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3B,+BAqDA"}
1
+ {"version":3,"file":"settings-form.d.ts","sourceRoot":"","sources":["../../../src/client/settings-form.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAiB,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAEjG,0CAA0C;AAC1C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUnD,CAAA;AA6SD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;IAC1D,KAAK,EAAE,iBAAiB,CAAA;IACxB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3B,+BA2EA"}
@@ -1,14 +1,21 @@
1
1
  /**
2
2
  * dsh-messager 配置模型。
3
3
  *
4
- * 本 schema 同时承担两个角色:
5
- * - host 端的 Loader config(cordis.yml 中该插件行的 `config:`,成为 settings 命名空间的 base 层);
6
- * - `ctx.settings.register('messager', Config, { base })` 的命名空间 schema,
7
- * 因此 Web 设置页会自动渲染配置表单,用户层可覆盖 base。
4
+ * DSH 0.1.7 起,本 schema 由 **Loader 自动接管**:插件模块导出的 `Config` 即
5
+ * settings 表单的 schema,命名空间 = profile 中该插件条目的 id(本仓库的
6
+ * `cordis.patch.yml` / `cordis.yml` 都声明为 `messager`)。
7
+ * 因此**不再有** `ctx.settings.register(...)` 这一步。
8
8
  *
9
- * 有效值优先级:schema 默认值 → base(cordis.yml)→ 用户层(设置页)。
9
+ * ⚠️ 所有可编辑字段必须标记 `.volatile()`:DSH 用 `isVolatilePath` 门控写入,
10
+ * 非 volatile 路径一律被 `settings.mutate` 拒绝("Config field ... is not volatile"),
11
+ * 且没有任何 volatile 字段时整个命名空间会被 `volatileForm` 判为不可配置
12
+ * ("Plugin entry ... has no volatile fields"),设置页直接报废。
13
+ * 这是 0.1.7 的硬契约,不是可选项。
14
+ *
15
+ * 有效值优先级:schema 默认值 → base(Loader config)→ 用户层(设置页)。
10
16
  */
11
17
  import Schema from '@deepseek-ai/schemastery';
18
+ import { type Volatile } from '@deepseek-ai/cosmokit';
12
19
  /** 通知内容繁复度。 */
13
20
  export type Verbosity = 'minimal' | 'normal' | 'detailed';
14
21
  /** 触发时机开关(需求 1:什么时候通知)。 */
@@ -119,10 +126,246 @@ export interface Config {
119
126
  dedup: DedupConfig;
120
127
  message: MessageConfig;
121
128
  }
122
- export declare const Config: Schema<Config>;
129
+ export declare const Config: Schema<Schemastery.ObjectS<NoInfer<{
130
+ triggers: Schema<Schemastery.ObjectS<NoInfer<{
131
+ interaction: Schema<boolean, boolean, "volatile-defined">;
132
+ completed: Schema<boolean, boolean, "volatile-defined">;
133
+ error: Schema<boolean, boolean, "volatile-defined">;
134
+ }>>, Schemastery.ObjectT<NoInfer<{
135
+ interaction: Schema<boolean, boolean, "volatile-defined">;
136
+ completed: Schema<boolean, boolean, "volatile-defined">;
137
+ error: Schema<boolean, boolean, "volatile-defined">;
138
+ }>>, "plain">;
139
+ system: Schema<Schemastery.ObjectS<NoInfer<{
140
+ enabled: Schema<boolean, boolean, "volatile-defined">;
141
+ icon: Schema<string, string, "volatile">;
142
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
143
+ }>>, Schemastery.ObjectT<NoInfer<{
144
+ enabled: Schema<boolean, boolean, "volatile-defined">;
145
+ icon: Schema<string, string, "volatile">;
146
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
147
+ }>>, "plain">;
148
+ browser: Schema<Schemastery.ObjectS<NoInfer<{
149
+ enabled: Schema<boolean, boolean, "volatile-defined">;
150
+ icon: Schema<string, string, "volatile">;
151
+ onlyWhenHidden: Schema<boolean, boolean, "volatile-defined">;
152
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
153
+ }>>, Schemastery.ObjectT<NoInfer<{
154
+ enabled: Schema<boolean, boolean, "volatile-defined">;
155
+ icon: Schema<string, string, "volatile">;
156
+ onlyWhenHidden: Schema<boolean, boolean, "volatile-defined">;
157
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
158
+ }>>, "plain">;
159
+ feishu: Schema<Schemastery.ObjectS<NoInfer<{
160
+ enabled: Schema<boolean, boolean, "volatile-defined">;
161
+ webhookUrl: Schema<string, string, "volatile">;
162
+ secret: Schema<string, string, "volatile">;
163
+ timeoutMs: Schema<number, number, "volatile-defined">;
164
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
165
+ }>>, Schemastery.ObjectT<NoInfer<{
166
+ enabled: Schema<boolean, boolean, "volatile-defined">;
167
+ webhookUrl: Schema<string, string, "volatile">;
168
+ secret: Schema<string, string, "volatile">;
169
+ timeoutMs: Schema<number, number, "volatile-defined">;
170
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
171
+ }>>, "plain">;
172
+ wecom: Schema<Schemastery.ObjectS<NoInfer<{
173
+ enabled: Schema<boolean, boolean, "volatile-defined">;
174
+ webhookUrl: Schema<string, string, "volatile">;
175
+ secret: Schema<string, string, "volatile">;
176
+ timeoutMs: Schema<number, number, "volatile-defined">;
177
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
178
+ }>>, Schemastery.ObjectT<NoInfer<{
179
+ enabled: Schema<boolean, boolean, "volatile-defined">;
180
+ webhookUrl: Schema<string, string, "volatile">;
181
+ secret: Schema<string, string, "volatile">;
182
+ timeoutMs: Schema<number, number, "volatile-defined">;
183
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
184
+ }>>, "plain">;
185
+ discord: Schema<Schemastery.ObjectS<NoInfer<{
186
+ enabled: Schema<boolean, boolean, "volatile-defined">;
187
+ webhookUrl: Schema<string, string, "volatile">;
188
+ timeoutMs: Schema<number, number, "volatile-defined">;
189
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
190
+ }>>, Schemastery.ObjectT<NoInfer<{
191
+ enabled: Schema<boolean, boolean, "volatile-defined">;
192
+ webhookUrl: Schema<string, string, "volatile">;
193
+ timeoutMs: Schema<number, number, "volatile-defined">;
194
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
195
+ }>>, "plain">;
196
+ dingtalk: Schema<Schemastery.ObjectS<NoInfer<{
197
+ enabled: Schema<boolean, boolean, "volatile-defined">;
198
+ webhookUrl: Schema<string, string, "volatile">;
199
+ secret: Schema<string, string, "volatile">;
200
+ timeoutMs: Schema<number, number, "volatile-defined">;
201
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
202
+ }>>, Schemastery.ObjectT<NoInfer<{
203
+ enabled: Schema<boolean, boolean, "volatile-defined">;
204
+ webhookUrl: Schema<string, string, "volatile">;
205
+ secret: Schema<string, string, "volatile">;
206
+ timeoutMs: Schema<number, number, "volatile-defined">;
207
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
208
+ }>>, "plain">;
209
+ telegram: Schema<Schemastery.ObjectS<NoInfer<{
210
+ enabled: Schema<boolean, boolean, "volatile-defined">;
211
+ botToken: Schema<string, string, "volatile">;
212
+ chatId: Schema<string, string, "volatile">;
213
+ timeoutMs: Schema<number, number, "volatile-defined">;
214
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
215
+ }>>, Schemastery.ObjectT<NoInfer<{
216
+ enabled: Schema<boolean, boolean, "volatile-defined">;
217
+ botToken: Schema<string, string, "volatile">;
218
+ chatId: Schema<string, string, "volatile">;
219
+ timeoutMs: Schema<number, number, "volatile-defined">;
220
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
221
+ }>>, "plain">;
222
+ dedup: Schema<Schemastery.ObjectS<NoInfer<{
223
+ interactionCooldownMs: Schema<number, number, "volatile-defined">;
224
+ completedDebounceMs: Schema<number, number, "volatile-defined">;
225
+ perChannelPerMinute: Schema<number, number, "volatile-defined">;
226
+ }>>, Schemastery.ObjectT<NoInfer<{
227
+ interactionCooldownMs: Schema<number, number, "volatile-defined">;
228
+ completedDebounceMs: Schema<number, number, "volatile-defined">;
229
+ perChannelPerMinute: Schema<number, number, "volatile-defined">;
230
+ }>>, "plain">;
231
+ message: Schema<Schemastery.ObjectS<NoInfer<{
232
+ titlePrefix: Schema<string, string, "volatile">;
233
+ includeSessionTitle: Schema<boolean, boolean, "volatile-defined">;
234
+ guiUrl: Schema<string, string, "volatile-defined">;
235
+ }>>, Schemastery.ObjectT<NoInfer<{
236
+ titlePrefix: Schema<string, string, "volatile">;
237
+ includeSessionTitle: Schema<boolean, boolean, "volatile-defined">;
238
+ guiUrl: Schema<string, string, "volatile-defined">;
239
+ }>>, "plain">;
240
+ }>>, Schemastery.ObjectT<NoInfer<{
241
+ triggers: Schema<Schemastery.ObjectS<NoInfer<{
242
+ interaction: Schema<boolean, boolean, "volatile-defined">;
243
+ completed: Schema<boolean, boolean, "volatile-defined">;
244
+ error: Schema<boolean, boolean, "volatile-defined">;
245
+ }>>, Schemastery.ObjectT<NoInfer<{
246
+ interaction: Schema<boolean, boolean, "volatile-defined">;
247
+ completed: Schema<boolean, boolean, "volatile-defined">;
248
+ error: Schema<boolean, boolean, "volatile-defined">;
249
+ }>>, "plain">;
250
+ system: Schema<Schemastery.ObjectS<NoInfer<{
251
+ enabled: Schema<boolean, boolean, "volatile-defined">;
252
+ icon: Schema<string, string, "volatile">;
253
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
254
+ }>>, Schemastery.ObjectT<NoInfer<{
255
+ enabled: Schema<boolean, boolean, "volatile-defined">;
256
+ icon: Schema<string, string, "volatile">;
257
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
258
+ }>>, "plain">;
259
+ browser: Schema<Schemastery.ObjectS<NoInfer<{
260
+ enabled: Schema<boolean, boolean, "volatile-defined">;
261
+ icon: Schema<string, string, "volatile">;
262
+ onlyWhenHidden: Schema<boolean, boolean, "volatile-defined">;
263
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
264
+ }>>, Schemastery.ObjectT<NoInfer<{
265
+ enabled: Schema<boolean, boolean, "volatile-defined">;
266
+ icon: Schema<string, string, "volatile">;
267
+ onlyWhenHidden: Schema<boolean, boolean, "volatile-defined">;
268
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
269
+ }>>, "plain">;
270
+ feishu: Schema<Schemastery.ObjectS<NoInfer<{
271
+ enabled: Schema<boolean, boolean, "volatile-defined">;
272
+ webhookUrl: Schema<string, string, "volatile">;
273
+ secret: Schema<string, string, "volatile">;
274
+ timeoutMs: Schema<number, number, "volatile-defined">;
275
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
276
+ }>>, Schemastery.ObjectT<NoInfer<{
277
+ enabled: Schema<boolean, boolean, "volatile-defined">;
278
+ webhookUrl: Schema<string, string, "volatile">;
279
+ secret: Schema<string, string, "volatile">;
280
+ timeoutMs: Schema<number, number, "volatile-defined">;
281
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
282
+ }>>, "plain">;
283
+ wecom: Schema<Schemastery.ObjectS<NoInfer<{
284
+ enabled: Schema<boolean, boolean, "volatile-defined">;
285
+ webhookUrl: Schema<string, string, "volatile">;
286
+ secret: Schema<string, string, "volatile">;
287
+ timeoutMs: Schema<number, number, "volatile-defined">;
288
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
289
+ }>>, Schemastery.ObjectT<NoInfer<{
290
+ enabled: Schema<boolean, boolean, "volatile-defined">;
291
+ webhookUrl: Schema<string, string, "volatile">;
292
+ secret: Schema<string, string, "volatile">;
293
+ timeoutMs: Schema<number, number, "volatile-defined">;
294
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
295
+ }>>, "plain">;
296
+ discord: Schema<Schemastery.ObjectS<NoInfer<{
297
+ enabled: Schema<boolean, boolean, "volatile-defined">;
298
+ webhookUrl: Schema<string, string, "volatile">;
299
+ timeoutMs: Schema<number, number, "volatile-defined">;
300
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
301
+ }>>, Schemastery.ObjectT<NoInfer<{
302
+ enabled: Schema<boolean, boolean, "volatile-defined">;
303
+ webhookUrl: Schema<string, string, "volatile">;
304
+ timeoutMs: Schema<number, number, "volatile-defined">;
305
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
306
+ }>>, "plain">;
307
+ dingtalk: Schema<Schemastery.ObjectS<NoInfer<{
308
+ enabled: Schema<boolean, boolean, "volatile-defined">;
309
+ webhookUrl: Schema<string, string, "volatile">;
310
+ secret: Schema<string, string, "volatile">;
311
+ timeoutMs: Schema<number, number, "volatile-defined">;
312
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
313
+ }>>, Schemastery.ObjectT<NoInfer<{
314
+ enabled: Schema<boolean, boolean, "volatile-defined">;
315
+ webhookUrl: Schema<string, string, "volatile">;
316
+ secret: Schema<string, string, "volatile">;
317
+ timeoutMs: Schema<number, number, "volatile-defined">;
318
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
319
+ }>>, "plain">;
320
+ telegram: Schema<Schemastery.ObjectS<NoInfer<{
321
+ enabled: Schema<boolean, boolean, "volatile-defined">;
322
+ botToken: Schema<string, string, "volatile">;
323
+ chatId: Schema<string, string, "volatile">;
324
+ timeoutMs: Schema<number, number, "volatile-defined">;
325
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
326
+ }>>, Schemastery.ObjectT<NoInfer<{
327
+ enabled: Schema<boolean, boolean, "volatile-defined">;
328
+ botToken: Schema<string, string, "volatile">;
329
+ chatId: Schema<string, string, "volatile">;
330
+ timeoutMs: Schema<number, number, "volatile-defined">;
331
+ verbosity: Schema<"minimal" | "normal" | "detailed", "minimal" | "normal" | "detailed", "volatile-defined">;
332
+ }>>, "plain">;
333
+ dedup: Schema<Schemastery.ObjectS<NoInfer<{
334
+ interactionCooldownMs: Schema<number, number, "volatile-defined">;
335
+ completedDebounceMs: Schema<number, number, "volatile-defined">;
336
+ perChannelPerMinute: Schema<number, number, "volatile-defined">;
337
+ }>>, Schemastery.ObjectT<NoInfer<{
338
+ interactionCooldownMs: Schema<number, number, "volatile-defined">;
339
+ completedDebounceMs: Schema<number, number, "volatile-defined">;
340
+ perChannelPerMinute: Schema<number, number, "volatile-defined">;
341
+ }>>, "plain">;
342
+ message: Schema<Schemastery.ObjectS<NoInfer<{
343
+ titlePrefix: Schema<string, string, "volatile">;
344
+ includeSessionTitle: Schema<boolean, boolean, "volatile-defined">;
345
+ guiUrl: Schema<string, string, "volatile-defined">;
346
+ }>>, Schemastery.ObjectT<NoInfer<{
347
+ titlePrefix: Schema<string, string, "volatile">;
348
+ includeSessionTitle: Schema<boolean, boolean, "volatile-defined">;
349
+ guiUrl: Schema<string, string, "volatile-defined">;
350
+ }>>, "plain">;
351
+ }>>, "plain">;
352
+ /**
353
+ * 递归把纯值形态映射为 volatile 引用形态。
354
+ *
355
+ * `.volatile()` 只标在**叶子**上(分组对象本身不标),因此推导结果与
356
+ * schemastery 的实际输出一致:分组是普通对象,叶子是 `Volatile<T>` 引用。
357
+ * 这就是 Loader 传给 `apply(ctx, config)` 的运行时配置形态。
358
+ */
359
+ export type VolatileShape<T> = {
360
+ [K in keyof T]: T[K] extends object ? VolatileShape<T[K]> : Volatile<T[K]>;
361
+ };
362
+ /** Loader 传入 `apply()` 的运行时配置(可编辑字段是 volatile 引用)。 */
363
+ export type RuntimeConfig = VolatileShape<Config>;
123
364
  /**
124
365
  * 用 schema 默认值解析一份配置(输入可省略任意字段)。
125
- * 与 cordis Loader 的校验同源,保证“默认值 → base → 用户层”的解析一致。
366
+ *
367
+ * 输入既可以是纯值(Loader config / settings 视图),也可以是 Loader 传入的
368
+ * volatile 形态 —— 两者都先解包再校验,保证「默认值 → base → 用户层」解析一致。
126
369
  */
127
- export declare function resolveConfig(input?: Partial<Config>): Config;
370
+ export declare function resolveConfig(input?: unknown): Config;
128
371
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-messager",
3
- "version": "0.3.1",
3
+ "version": "0.3.4",
4
4
  "description": "DeepSeek Harness 通知插件:会话交互/任务完成/出错时通过系统通知、浏览器通知、飞书/企业微信/Discord/钉钉/Telegram 推送提醒",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -37,63 +37,70 @@
37
37
  "react": "^18.2.0"
38
38
  },
39
39
  "peerDependencies": {
40
- "@deepseek-ai/cordis": "^4.0.2",
41
- "@deepseek-ai/cordis-plugin-include": "^1.0.7",
42
- "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
43
- "@deepseek-ai/dsh-agent": "0.1.2-rc.1",
44
- "@deepseek-ai/dsh-agent-default-model": "0.1.2-rc.1",
45
- "@deepseek-ai/dsh-agent-presets": "0.1.2-rc.1",
46
- "@deepseek-ai/dsh-api-remotes": "0.1.2-rc.1",
47
- "@deepseek-ai/dsh-api-session-controller": "0.1.2-rc.1",
48
- "@deepseek-ai/dsh-attachment": "0.1.2-rc.1",
49
- "@deepseek-ai/dsh-atomic-write": "0.1.2-rc.1",
50
- "@deepseek-ai/dsh-compaction": "0.1.2-rc.1",
51
- "@deepseek-ai/dsh-client-connection": "0.1.2-rc.1",
52
- "@deepseek-ai/dsh-client-locale": "0.1.2-rc.1",
53
- "@deepseek-ai/dsh-client-store": "0.1.2-rc.1",
54
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.2-rc.1",
55
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.2-rc.1",
56
- "@deepseek-ai/dsh-client-ui-session": "0.1.2-rc.1",
57
- "@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1",
58
- "@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1",
59
- "@deepseek-ai/dsh-code-runtime": "0.1.2-rc.1",
60
- "@deepseek-ai/dsh-home-paths": "0.1.2-rc.1",
61
- "@deepseek-ai/dsh-host-webserver": "0.1.2-rc.1",
62
- "@deepseek-ai/dsh-native-command": "0.1.2-rc.1",
63
- "@deepseek-ai/dsh-output-retention": "0.1.2-rc.1",
64
- "@deepseek-ai/dsh-scope": "0.1.2-rc.1",
65
- "@deepseek-ai/dsh-session": "0.1.2-rc.1",
66
- "@deepseek-ai/dsh-session-projection": "0.1.2-rc.1",
67
- "@deepseek-ai/dsh-session-query": "0.1.2-rc.1",
68
- "@deepseek-ai/dsh-session-title": "0.1.2-rc.1",
69
- "@deepseek-ai/dsh-skill": "0.1.2-rc.1",
70
- "@deepseek-ai/dsh-storage-domain": "0.1.2-rc.1",
71
- "@deepseek-ai/dsh-storage": "0.1.2-rc.1",
72
- "@deepseek-ai/dsh-subagent": "0.1.2-rc.1",
73
- "@deepseek-ai/dsh-system-prompt": "0.1.2-rc.1",
74
- "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
75
- "@deepseek-ai/dsh-settings": "0.1.2-rc.1",
76
- "@deepseek-ai/dsh-user-approval": "0.1.2-rc.1",
77
- "@deepseek-ai/dsh-workspace": "0.1.2-rc.1",
78
- "@deepseek-ai/schemastery": "^3.18.2",
79
- "@deepseek-ai/dsh-api-gateway": "0.1.2-rc.1",
80
- "@deepseek-ai/dsh-commands": "0.1.2-rc.1",
81
- "@deepseek-ai/dsh-credentials": "0.1.2-rc.1",
82
- "@deepseek-ai/dsh-file-reference": "0.1.2-rc.1",
83
- "@deepseek-ai/dsh-goal": "0.1.2-rc.1",
84
- "@deepseek-ai/dsh-host-plugin-inventory": "0.1.2-rc.1",
85
- "@deepseek-ai/dsh-invariants": "0.1.2-rc.1",
86
- "@deepseek-ai/dsh-llm": "0.1.2-rc.1",
87
- "@deepseek-ai/dsh-cordis-host-runner": "0.1.2-rc.1",
88
- "@deepseek-ai/dsh-message-feedback": "0.1.2-rc.1",
89
- "@deepseek-ai/dsh-session-persistence": "0.1.2-rc.1",
90
- "@deepseek-ai/dsh-session-reference": "0.1.2-rc.1",
91
- "@deepseek-ai/dsh-typert-registry": "0.1.2-rc.1"
40
+ "@deepseek-ai/cordis": "^4.0.4",
41
+ "@deepseek-ai/cordis-plugin-group": "^1.0.4",
42
+ "@deepseek-ai/cordis-plugin-include": "^1.0.9",
43
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.5",
44
+ "@deepseek-ai/cosmokit": "^1.8.5",
45
+ "@deepseek-ai/dsh-agent": "^0.1.7-rc.1",
46
+ "@deepseek-ai/dsh-agent-default-model": "^0.1.7-rc.1",
47
+ "@deepseek-ai/dsh-agent-preset-registry": "^0.1.7-rc.1",
48
+ "@deepseek-ai/dsh-api-gateway": "^0.1.7-rc.1",
49
+ "@deepseek-ai/dsh-api-remotes": "^0.1.7-rc.1",
50
+ "@deepseek-ai/dsh-api-session-controller": "^0.1.7-rc.1",
51
+ "@deepseek-ai/dsh-atomic-write": "^0.1.7-rc.1",
52
+ "@deepseek-ai/dsh-attachment": "^0.1.7-rc.1",
53
+ "@deepseek-ai/dsh-client-connection": "^0.1.7-rc.1",
54
+ "@deepseek-ai/dsh-client-locale": "^0.1.7-rc.1",
55
+ "@deepseek-ai/dsh-client-store": "^0.1.7-rc.1",
56
+ "@deepseek-ai/dsh-client-ui-primitives": "^0.1.7-rc.1",
57
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.7-rc.1",
58
+ "@deepseek-ai/dsh-client-ui-session": "^0.1.7-rc.1",
59
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.7-rc.1",
60
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.7-rc.1",
61
+ "@deepseek-ai/dsh-commands": "^0.1.7-rc.1",
62
+ "@deepseek-ai/dsh-compaction": "^0.1.7-rc.1",
63
+ "@deepseek-ai/dsh-cordis-host-runner": "^0.1.7-rc.1",
64
+ "@deepseek-ai/dsh-credentials": "^0.1.7-rc.1",
65
+ "@deepseek-ai/dsh-file-reference": "^0.1.7-rc.1",
66
+ "@deepseek-ai/dsh-goal": "^0.1.7-rc.1",
67
+ "@deepseek-ai/dsh-home-paths": "^0.1.7-rc.1",
68
+ "@deepseek-ai/dsh-host-plugin-inventory": "^0.1.7-rc.1",
69
+ "@deepseek-ai/dsh-host-webserver": "^0.1.7-rc.1",
70
+ "@deepseek-ai/dsh-invariants": "^0.1.7-rc.1",
71
+ "@deepseek-ai/dsh-llm": "^0.1.7-rc.1",
72
+ "@deepseek-ai/dsh-message-feedback": "^0.1.7-rc.1",
73
+ "@deepseek-ai/dsh-native-command": "^0.1.7-rc.1",
74
+ "@deepseek-ai/dsh-output-retention": "^0.1.7-rc.1",
75
+ "@deepseek-ai/dsh-scope": "^0.1.7-rc.1",
76
+ "@deepseek-ai/dsh-session": "^0.1.7-rc.1",
77
+ "@deepseek-ai/dsh-session-persistence": "^0.1.7-rc.1",
78
+ "@deepseek-ai/dsh-session-projection": "^0.1.7-rc.1",
79
+ "@deepseek-ai/dsh-session-query": "^0.1.7-rc.1",
80
+ "@deepseek-ai/dsh-session-reference": "^0.1.7-rc.1",
81
+ "@deepseek-ai/dsh-session-title": "^0.1.7-rc.1",
82
+ "@deepseek-ai/dsh-settings": "^0.1.7-rc.1",
83
+ "@deepseek-ai/dsh-skill": "^0.1.7-rc.1",
84
+ "@deepseek-ai/dsh-storage": "^0.1.7-rc.1",
85
+ "@deepseek-ai/dsh-storage-domain": "^0.1.7-rc.1",
86
+ "@deepseek-ai/dsh-subagent": "^0.1.7-rc.1",
87
+ "@deepseek-ai/dsh-system-prompt": "^0.1.7-rc.1",
88
+ "@deepseek-ai/dsh-tools": "^0.1.7-rc.1",
89
+ "@deepseek-ai/dsh-typert-registry": "^0.1.7-rc.1",
90
+ "@deepseek-ai/dsh-user-approval": "^0.1.7-rc.1",
91
+ "@deepseek-ai/dsh-workspace": "^0.1.7-rc.1",
92
+ "@deepseek-ai/schemastery": "^3.18.4"
92
93
  },
93
94
  "peerDependenciesMeta": {
94
95
  "@deepseek-ai/cordis": {
95
96
  "optional": true
96
97
  },
98
+ "@deepseek-ai/cosmokit": {
99
+ "optional": true
100
+ },
101
+ "@deepseek-ai/cordis-plugin-group": {
102
+ "optional": true
103
+ },
97
104
  "@deepseek-ai/cordis-plugin-include": {
98
105
  "optional": true
99
106
  },
@@ -112,9 +119,6 @@
112
119
  "@deepseek-ai/dsh-compaction": {
113
120
  "optional": true
114
121
  },
115
- "@deepseek-ai/dsh-code-runtime": {
116
- "optional": true
117
- },
118
122
  "@deepseek-ai/dsh-home-paths": {
119
123
  "optional": true
120
124
  },
@@ -208,7 +212,7 @@
208
212
  "@deepseek-ai/dsh-api-gateway": {
209
213
  "optional": true
210
214
  },
211
- "@deepseek-ai/dsh-agent-presets": {
215
+ "@deepseek-ai/dsh-agent-preset-registry": {
212
216
  "optional": true
213
217
  },
214
218
  "@deepseek-ai/dsh-commands": {
@@ -249,6 +253,22 @@
249
253
  }
250
254
  },
251
255
  "devDependencies": {
256
+ "@deepseek-ai/cosmokit": "^1.8.5",
257
+ "@deepseek-ai/dsh-agent": "^0.1.7-rc.1",
258
+ "@deepseek-ai/dsh-api-remotes": "^0.1.7-rc.1",
259
+ "@deepseek-ai/dsh-api-session-controller": "^0.1.7-rc.1",
260
+ "@deepseek-ai/dsh-client-locale": "^0.1.7-rc.1",
261
+ "@deepseek-ai/dsh-client-ui-primitives": "^0.1.7-rc.1",
262
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.7-rc.1",
263
+ "@deepseek-ai/dsh-client-ui-session": "^0.1.7-rc.1",
264
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.7-rc.1",
265
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.7-rc.1",
266
+ "@deepseek-ai/dsh-host-webserver": "^0.1.7-rc.1",
267
+ "@deepseek-ai/dsh-session": "^0.1.7-rc.1",
268
+ "@deepseek-ai/dsh-session-title": "^0.1.7-rc.1",
269
+ "@deepseek-ai/dsh-settings": "^0.1.7-rc.1",
270
+ "@deepseek-ai/dsh-user-approval": "^0.1.7-rc.1",
271
+ "@deepseek-ai/schemastery": "^3.18.4",
252
272
  "@types/node": "^26.2.0",
253
273
  "@types/node-notifier": "^8.0.5",
254
274
  "@types/react": "~18.3.31",