dsh-messager 0.2.1 → 0.3.1
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.en.md +17 -17
- package/README.md +22 -21
- package/lib/client.js +46 -9
- package/lib/client.js.map +1 -1
- package/lib/config-route.d.ts +3 -4
- package/lib/config-route.d.ts.map +1 -1
- package/lib/config-route.js +1 -2
- package/lib/config-route.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/settings.d.ts.map +1 -1
- package/lib/settings.js +1 -2
- package/lib/settings.js.map +1 -1
- package/lib/types/client/card-controller.d.ts +2 -4
- package/lib/types/client/card-controller.d.ts.map +1 -1
- package/lib/types/client/diff.d.ts +13 -3
- package/lib/types/client/diff.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/messager-card.d.ts +18 -0
- package/lib/types/client/messager-card.d.ts.map +1 -0
- package/lib/types/client/panel-keys.d.ts +27 -0
- package/lib/types/client/panel-keys.d.ts.map +1 -0
- package/lib/types/client/panel.d.ts +22 -0
- package/lib/types/client/panel.d.ts.map +1 -0
- package/lib/types/client/patch-script.d.ts +9 -0
- package/lib/types/client/patch-script.d.ts.map +1 -0
- package/package.json +126 -33
package/lib/config-route.d.ts
CHANGED
|
@@ -14,11 +14,10 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import type { IncomingMessage } from 'node:http';
|
|
16
16
|
import type { WebRoute } from '@deepseek-ai/dsh-host-webserver';
|
|
17
|
-
import { type SettingsNamespace } from '@deepseek-ai/dsh-settings';
|
|
18
17
|
import type { SettingsPathOp } from '@deepseek-ai/dsh-settings';
|
|
19
18
|
import type { ConfigView, ConfigWriteBody } from './config-shared.js';
|
|
20
19
|
/** 命名空间(与 host 注册一致)。 */
|
|
21
|
-
export declare const CONFIG_NAMESPACE:
|
|
20
|
+
export declare const CONFIG_NAMESPACE: "messager";
|
|
22
21
|
export type { ConfigView, ConfigWriteBody } from './config-shared.js';
|
|
23
22
|
/** 路由依赖的 settings 服务窄接口(便于测试替身)。 */
|
|
24
23
|
export interface SettingsServiceLike {
|
|
@@ -26,13 +25,13 @@ export interface SettingsServiceLike {
|
|
|
26
25
|
describe(options?: {
|
|
27
26
|
redactSecrets?: boolean;
|
|
28
27
|
}): ReadonlyArray<{
|
|
29
|
-
ns:
|
|
28
|
+
ns: string;
|
|
30
29
|
value: unknown;
|
|
31
30
|
revision: number;
|
|
32
31
|
base?: unknown;
|
|
33
32
|
user?: unknown;
|
|
34
33
|
}>;
|
|
35
|
-
mutate(ns:
|
|
34
|
+
mutate(ns: string, ops: readonly SettingsPathOp[], expectedRevision?: number): Promise<void>;
|
|
36
35
|
}
|
|
37
36
|
/** 路由注册的宿主(webServer 服务窄接口)。 */
|
|
38
37
|
export interface WebServerLike {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-route.d.ts","sourceRoot":"","sources":["../src/config-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"config-route.d.ts","sourceRoot":"","sources":["../src/config-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAErE,yBAAyB;AACzB,eAAO,MAAM,gBAAgB,EAAG,UAAmB,CAAA;AAEnD,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAErE,oCAAoC;AACpC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,aAAa,CAAC;QAC7D,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,IAAI,CAAC,EAAE,OAAO,CAAA;KACf,CAAC,CAAA;IACF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,cAAc,EAAE,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7F;AAED,gCAAgC;AAChC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,IAAI,CAAA;CACtC;AAID,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,mBAAmB,GAAG,UAAU,CActE;AAED,iCAAiC;AACjC,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAwB9E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAWpF;AAiED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI,CAsBrG"}
|
package/lib/config-route.js
CHANGED
|
@@ -12,9 +12,8 @@
|
|
|
12
12
|
* 跨站 JS 无法读取;GET 只读无副作用。
|
|
13
13
|
* 密钥:describe({ redactSecrets: true }) 自动脱敏,写入方向与设置页一致。
|
|
14
14
|
*/
|
|
15
|
-
import { settingsNamespace } from '@deepseek-ai/dsh-settings';
|
|
16
15
|
/** 命名空间(与 host 注册一致)。 */
|
|
17
|
-
export const CONFIG_NAMESPACE =
|
|
16
|
+
export const CONFIG_NAMESPACE = 'messager';
|
|
18
17
|
// ---- 纯逻辑(可单测) ----
|
|
19
18
|
/** 把 settings 描述符映射为 client 视图;命名空间缺失 → unavailable。 */
|
|
20
19
|
export function configViewOf(settings) {
|
package/lib/config-route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-route.js","sourceRoot":"","sources":["../src/config-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"config-route.js","sourceRoot":"","sources":["../src/config-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,yBAAyB;AACzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAmB,CAAA;AAsBnD,qBAAqB;AAErB,wDAAwD;AACxD,MAAM,UAAU,YAAY,CAAC,QAA6B;IACxD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAA;IAClH,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACjI,CAAC;IACD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAA;AACH,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAC7D,MAAM,IAAI,GAAG,GAA8B,CAAA;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;IACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,UAAU,GAA2B,EAAE,CAAA;IAC7C,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAQ;QACzD,MAAM,EAAE,GAAG,KAAgC,CAAA;QAC3C,IAAI,EAAE,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC,EAAE,KAAK,OAAO;YAAE,OAAO,SAAS,CAAA;QAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,EAAE,CAAC,EAAE,CAAC;YAC9H,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;YAAE,OAAO,SAAS,CAAA;QACzD,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAgB,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC5G,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAA;IAC9C,OAAO;QACL,GAAG,EAAE,UAAU;QACf,GAAG,CAAC,OAAO,gBAAgB,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAC5E,CAAC,CAAC,EAAE,gBAAgB,EAAE;YACtB,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAAwB,EAAE,aAAsB;IACzE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAA;IAChE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,aAAa,CAAA;IAC/C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;QAC9B,OAAO,MAAM,CAAC,IAAI,KAAK,IAAI,CAAA;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,mBAAmB;AAEnB,SAAS,QAAQ,CAAC,GAAmB,EAAE,MAAc,EAAE,KAAc;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAA;IAC5E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,uBAAuB;AACvB,SAAS,QAAQ,CAAC,OAAwB,EAAE,KAAK,GAAG,EAAE,GAAG,IAAI;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACnC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAA;YACrB,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;gBACtC,OAAO,CAAC,OAAO,EAAE,CAAA;gBACjB,OAAM;YACR,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACxE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,QAA6B,EAAE,GAAmB;IACnE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC5C,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,QAA6B,EAC7B,OAAwB,EACxB,GAAmB;IAEnB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAA;QAC5D,OAAM;IACR,CAAC;IACD,IAAI,GAAY,CAAA;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAC7D,OAAM;IACR,CAAC;IACD,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;IACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAA;QACvD,OAAM;IACR,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAuB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC5F,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YACjB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAwB,EAAE,QAA6B;IACvF,MAAM,MAAM,GAAe;QACzB;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC7B,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;oBAC7B,OAAM;gBACR,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC9B,OAAO,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;gBAChD,CAAC;gBACD,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;gBAC/C,QAAQ,CAAC,GAAG,EAAE,CAAA;YAChB,CAAC;SACF;KACF,CAAA;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAChE,OAAO,GAAG,EAAE;QACV,KAAK,MAAM,OAAO,IAAI,SAAS;YAAE,OAAO,EAAE,CAAA;IAC5C,CAAC,CAAA;AACH,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -70,7 +70,7 @@ function buildChannels(config) {
|
|
|
70
70
|
* 实时 session/event 只在事件发生时投递一次,不会重放历史。
|
|
71
71
|
*/
|
|
72
72
|
function sessionTitleOf(session) {
|
|
73
|
-
const events = session.
|
|
73
|
+
const events = session.snapshotEvents();
|
|
74
74
|
for (let index = events.length - 1; index >= 0; index--) {
|
|
75
75
|
const event = events[index];
|
|
76
76
|
if (event === undefined)
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/settings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAU,KAAK,MAAM,IAAI,WAAW,EAAE,MAAM,aAAa,CAAA;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,GAAG,IAAI,WAAW,CAAA;IAClB,8BAA8B;IAC9B,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;CAC5E;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAM1F"}
|
package/lib/settings.js
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* 注意:settings 服务可能晚于本插件加载,必须在 `ctx.inject(['settings'], …)`
|
|
6
6
|
* 回调内调用本模块(见 src/index.ts),不能直接 `ctx.get('settings')`。
|
|
7
7
|
*/
|
|
8
|
-
import { settingsNamespace } from '@deepseek-ai/dsh-settings';
|
|
9
8
|
import { Config } from './config.js';
|
|
10
9
|
/**
|
|
11
10
|
* 在 settings 服务就绪的上下文中注册命名空间。
|
|
@@ -14,7 +13,7 @@ import { Config } from './config.js';
|
|
|
14
13
|
* @returns 设置句柄(注册本身是 effect,随注入 scope 卸载)。
|
|
15
14
|
*/
|
|
16
15
|
export function registerMessagerSettings(ctx, base) {
|
|
17
|
-
const scope = ctx.settings.register(
|
|
16
|
+
const scope = ctx.settings.register('messager', Config, { base, applies: 'live' });
|
|
18
17
|
return {
|
|
19
18
|
get: () => scope.get(),
|
|
20
19
|
watch: (callback) => scope.watch(callback),
|
package/lib/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,MAAM,EAA8B,MAAM,aAAa,CAAA;AAShE;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAY,EAAE,IAAiB;IACtE,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;IAClF,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QACtB,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC3C,CAAA;AACH,CAAC"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* - 输入框留空 = 不修改;填入并保存 = 写入;
|
|
15
15
|
* - 点「重置」= 发出 unset 清除已存密钥。
|
|
16
16
|
*/
|
|
17
|
+
import type { HostObservable } from '@deepseek-ai/dsh-client-ui-slots';
|
|
17
18
|
/** 字段控件类型。 */
|
|
18
19
|
export type CardFieldKind = 'toggle' | 'text' | 'number' | 'select';
|
|
19
20
|
/** 门控:仅当指定组内开关字段生效值为 true 时,该字段才可编辑/可见。 */
|
|
@@ -74,10 +75,7 @@ export interface MessagerCardActions {
|
|
|
74
75
|
/** 槽位注入面:hooks 中的 messagerCard 会变成 useMessagerCard 选择器;动作平铺为组件 props。 */
|
|
75
76
|
export interface MessagerCardFace {
|
|
76
77
|
hooks: {
|
|
77
|
-
messagerCard:
|
|
78
|
-
getSnapshot(): MessagerCardState;
|
|
79
|
-
subscribe(listener: () => void): () => void;
|
|
80
|
-
};
|
|
78
|
+
messagerCard: HostObservable<MessagerCardState>;
|
|
81
79
|
};
|
|
82
80
|
edit(group: string, field: string, text: string): void;
|
|
83
81
|
reset(group: string, field: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-controller.d.ts","sourceRoot":"","sources":["../../../src/client/card-controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"card-controller.d.ts","sourceRoot":"","sources":["../../../src/client/card-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
* 客户端会话摘要 diff(纯函数,可单测):
|
|
3
3
|
* 对比两次会话列表快照,产出需要浏览器通知的变化。
|
|
4
4
|
* 语义与 Web UI 状态圆点完全一致:
|
|
5
|
-
* -
|
|
5
|
+
* - uiSession.pendingInteractions 从无到有 → 需要交互(橙点)
|
|
6
6
|
* - running true→false 且会话非当前选中 → 任务完成(绿点)
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
8
|
+
import type { SessionSummary } from '@deepseek-ai/dsh-api-session-controller/client';
|
|
9
|
+
import type { SessionPendingInteractionBase } from '@deepseek-ai/dsh-client-ui-session/client';
|
|
10
|
+
import type { SessionId } from '@deepseek-ai/dsh-session/types';
|
|
9
11
|
export type ClientNoticeKind = 'interaction' | 'completed';
|
|
12
|
+
export type ClientInteractionKind = 'approval' | 'plan-review' | 'question';
|
|
10
13
|
export interface ClientNotice {
|
|
11
14
|
kind: ClientNoticeKind;
|
|
12
15
|
sessionId: SessionId;
|
|
13
16
|
/** interaction 细分(与 PendingInteractionStatus 一致)。 */
|
|
14
|
-
interaction?:
|
|
17
|
+
interaction?: ClientInteractionKind;
|
|
15
18
|
/** 会话显示标题(displayTitle)。 */
|
|
16
19
|
title?: string;
|
|
17
20
|
}
|
|
@@ -23,4 +26,11 @@ export interface ClientNotice {
|
|
|
23
26
|
* @param current - 本次快照的当前选中会话(选中会话的完成不打扰)。
|
|
24
27
|
*/
|
|
25
28
|
export declare function diffSessionSummaries(previous: Readonly<Record<SessionId, SessionSummary>>, next: Readonly<Record<SessionId, SessionSummary>>, current: SessionId | undefined): ClientNotice[];
|
|
29
|
+
/** 仅把 DSH Web UI 有专用展示语义的待交互 kind 映射为通知类型。 */
|
|
30
|
+
export declare function clientInteractionKindOf(kind: string): ClientInteractionKind | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* 对比两次 uiSession 待交互快照。
|
|
33
|
+
* 仅从无到有时通知;首次订阅由调用方把当前快照设为 previous,因此不会补发历史通知。
|
|
34
|
+
*/
|
|
35
|
+
export declare function diffPendingInteractions(previous: ReadonlyMap<SessionId, SessionPendingInteractionBase>, next: ReadonlyMap<SessionId, SessionPendingInteractionBase>, summaries: Readonly<Record<SessionId, SessionSummary>>): ClientNotice[];
|
|
26
36
|
//# 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,
|
|
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 +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;
|
|
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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 设置页卡片组件:渲染在 DSH 设置 → Plugins 标签页。
|
|
3
|
+
*
|
|
4
|
+
* 外观与 DSH 内置卡片(终端/Agent循环/网页搜索)一致:
|
|
5
|
+
* - 折叠卡片外壳(点击标题展开,未保存时标题带“未保存”徽标 + 旋转箭头);
|
|
6
|
+
* - 表单体(字段分组 + 底部操作栏)复用 MessagerSettingsForm
|
|
7
|
+
* (与快捷键面板共用,见 panel.tsx);
|
|
8
|
+
* - 全部使用 DSH 主题变量(--dsw-alias-*,由 Web shell 注入)。
|
|
9
|
+
*/
|
|
10
|
+
import type { PropsRuntime, InjectFace } from '@deepseek-ai/dsh-client-ui-slots';
|
|
11
|
+
import type { MessagerCardFace } from './card-controller.js';
|
|
12
|
+
export type MessagerCardProps = PropsRuntime<'settings.plugin.item'> & InjectFace<MessagerCardFace>;
|
|
13
|
+
/**
|
|
14
|
+
* dsh-messager 设置卡片(DSH Plugins 页统一折叠卡片样式)。
|
|
15
|
+
* @param props - 运行时槽位 props + 注入面(useMessagerCard + 动作)。
|
|
16
|
+
*/
|
|
17
|
+
export declare function MessagerCard(props: MessagerCardProps): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=messager-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messager-card.d.ts","sourceRoot":"","sources":["../../../src/client/messager-card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAGhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAG5D,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,sBAAsB,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;AAsFnG;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,+BA2CpD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 快捷键设置面板的纯逻辑(无 React 依赖,可单测)。
|
|
3
|
+
* 组件见 panel.tsx。
|
|
4
|
+
*/
|
|
5
|
+
/** 调出面板的快捷键:Ctrl+Shift+M(M = messager)。 */
|
|
6
|
+
export declare const PANEL_SHORTCUT: {
|
|
7
|
+
readonly ctrlKey: true;
|
|
8
|
+
readonly shiftKey: true;
|
|
9
|
+
readonly key: "m";
|
|
10
|
+
};
|
|
11
|
+
/** 一键复制的补丁命令(未打补丁的发行版引导)。 */
|
|
12
|
+
export declare const PATCH_COMMAND = "node node_modules/dsh-messager/patch-host.mjs";
|
|
13
|
+
/**
|
|
14
|
+
* 快捷键匹配(Ctrl+Shift+M,大小写不敏感)。
|
|
15
|
+
* 纯函数便于单测。
|
|
16
|
+
*/
|
|
17
|
+
export declare function matchPanelShortcut(event: {
|
|
18
|
+
ctrlKey: boolean;
|
|
19
|
+
shiftKey: boolean;
|
|
20
|
+
key: string;
|
|
21
|
+
}): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* 编辑态目标(输入框/文本域/下拉/可编辑区)不触发快捷键,避免打断输入。
|
|
24
|
+
* 接受结构兼容的最小形状(真实 HTMLElement 满足),便于单测。
|
|
25
|
+
*/
|
|
26
|
+
export declare function isEditableTarget(target: unknown): boolean;
|
|
27
|
+
//# sourceMappingURL=panel-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-keys.d.ts","sourceRoot":"","sources":["../../../src/client/panel-keys.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2CAA2C;AAC3C,eAAO,MAAM,cAAc;;;;CAAuD,CAAA;AAElF,6BAA6B;AAC7B,eAAO,MAAM,aAAa,kDAAkD,CAAA;AAE5E;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAEvG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAMzD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dsh-messager 快捷键设置面板:Ctrl+Shift+M 调出全局弹层。
|
|
3
|
+
*
|
|
4
|
+
* 挂载在 `shell.overlay` 槽位(ui-layout 的 AppFrame 声明,Web 全应用浮动层),
|
|
5
|
+
* 不依赖设置页白名单 —— 面板本身是纯客户端能力。
|
|
6
|
+
*
|
|
7
|
+
* 两种模式(打开时探测控制器快照):
|
|
8
|
+
* - 可用(available):完整表单(复用 MessagerSettingsForm,与设置页卡片同源);
|
|
9
|
+
* - 不可用(受限,未打补丁的发行版):引导 —— 打开设置文件
|
|
10
|
+
* (settings.openDocument 未受白名单门控)+ 复制补丁命令 / 下载补丁脚本
|
|
11
|
+
* (脚本源码内嵌于 bundle,见 patch-script.ts)。
|
|
12
|
+
*/
|
|
13
|
+
import type { PropsRuntime, InjectFace } from '@deepseek-ai/dsh-client-ui-slots';
|
|
14
|
+
import type { MessagerCardFace } from './card-controller.js';
|
|
15
|
+
export type MessagerPanelProps = PropsRuntime<'shell.overlay'> & InjectFace<MessagerCardFace>;
|
|
16
|
+
export { isEditableTarget, matchPanelShortcut, PATCH_COMMAND } from './panel-keys.js';
|
|
17
|
+
/**
|
|
18
|
+
* dsh-messager 设置面板(Ctrl+Shift+M 调出)。
|
|
19
|
+
* 挂载于 shell.overlay:组件常驻,快捷键切换 open 状态。
|
|
20
|
+
*/
|
|
21
|
+
export declare function MessagerPanel(props: MessagerPanelProps): import("react").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../../src/client/panel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAGhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAK5D,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;AAE7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AA2ErF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,+BA8BtD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ⚠️ 自动生成 —— 请勿手工编辑。
|
|
3
|
+
* 由 scripts/inline-patch.mjs 从仓库根目录 patch-host.mjs 生成(JSON 转义),
|
|
4
|
+
* 与脚本本体保持同步;tests/panel.spec.ts 会校验一致性。
|
|
5
|
+
* 修改 patch-host.mjs 后请重新构建(pnpm run build:client)或运行
|
|
6
|
+
* node scripts/inline-patch.mjs。
|
|
7
|
+
*/
|
|
8
|
+
export declare const PATCH_SCRIPT = "#!/usr/bin/env node\n// Reapply the dsh-messager platform patch after a harness reinstall/update.\n//\n// DeepSeek Harness gates which settings namespaces configuration clients may\n// read/write behind a hard-coded allowlist in `dsh-host-apiproxy`\n// (`WEB_SETTINGS_NAMESPACES`). Third-party plugin namespaces are refused with\n// `settings-not-exposed` until they are added there, so the messager settings\n// card (\u8BBE\u7F6E \u2192 \u63D2\u4EF6) cannot persist without this one-line platform patch.\n//\n// This script locates the installed `@deepseek-ai/dsh-host-apiproxy` package\n// (resolved the same way the running `dsh` process resolves it), and\n// idempotently adds `\"messager\"` to that allowlist. Run it once after any\n// harness install/update, then restart the server.\n//\n// node patch-host.mjs # patch (no-op if already patched)\n// node patch-host.mjs --check # only report status, make no changes\n// node patch-host.mjs --revert # remove the dsh-messager entry again\n//\n// \u7528\u6CD5\uFF08\u53D1\u884C\u7248 / npx \u5B89\u88C5\u7684 DSH\uFF09\uFF1A\u5728\u63D2\u4EF6\u88AB\u5B89\u88C5\u5230\u7684 profile \u5185\u6267\u884C\n// node node_modules/dsh-messager/patch-host.mjs\n// \u6E90\u7801\u8FD0\u884C\uFF08pnpm dsh\uFF09\u7684 DSH \u4E0D\u9700\u8981\u672C\u811A\u672C\uFF1A\u767D\u540D\u5355\u5DF2\u5728\u6E90\u7801 checkout \u4E2D\n// \u52A0\u5165 'messager'\uFF08packages/host/apiproxy/src/api-proxy.ts\uFF09\u3002\n//\n// \u672C\u811A\u672C\u6539\u7F16\u81EA dsh-skin \u63D2\u4EF6\u7684\u540C\u7C7B\u8865\u4E01\uFF08MIT\uFF09\u3002\n\nimport { createRequire } from 'node:module'\nimport { existsSync, readFileSync, writeFileSync } from 'node:fs'\nimport { dirname, join } from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst here = dirname(fileURLToPath(import.meta.url))\n\n/** \u672C\u811A\u672C\u62E5\u6709\u7684\u6807\u8BB0\u6CE8\u91CA\u884C\u4E0E\u767D\u540D\u5355\u6761\u76EE\u3002 */\nconst MARKER = '// dsh-messager: third-party plugin-owned settings namespace'\nconst PATCH_BLOCK = `\\t${MARKER}\\n\\t\"messager\"`\n\n/**\n * \u89E3\u6790\u5B89\u88C5\u7684 apiproxy \u5305\uFF1A\u4F18\u5148\u4ECE\u811A\u672C\u6240\u5728\u76EE\u5F55\u5411\u4E0A\u89E3\u6790\uFF08\u63D2\u4EF6\u4EE5\u5305\u8EAB\u4EFD\u5B89\u88C5\n * \u5728 profile \u7684 node_modules \u65F6\u547D\u4E2D\uFF09\uFF0C\u518D\u4ECE\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\u89E3\u6790\u515C\u5E95\u3002\n */\nfunction resolveApiproxyPackage() {\n const candidates = [here, process.cwd()]\n for (const base of candidates) {\n try {\n const req = createRequire(join(base, 'x.js'))\n return req.resolve('@deepseek-ai/dsh-host-apiproxy/package.json')\n } catch {\n // \u8BE5\u76EE\u5F55\u5411\u4E0A\u627E\u4E0D\u5230\uFF0C\u5C1D\u8BD5\u4E0B\u4E00\u4E2A\u5019\u9009\n }\n }\n return undefined\n}\n\nconst pkgPath = resolveApiproxyPackage()\nif (pkgPath === undefined) {\n console.error('\u2717 cannot resolve @deepseek-ai/dsh-host-apiproxy from', here)\n console.error(' install dsh-messager into a profile that bundles the web app (see README), then retry.')\n console.error(' \u6E90\u7801\u8FD0\u884C\uFF08pnpm dsh\uFF09\u7684 DSH \u65E0\u9700\u672C\u811A\u672C\u3002')\n process.exit(1)\n}\nconst lib = join(dirname(pkgPath), 'lib', 'index.js')\nif (!existsSync(lib)) {\n console.error('\u2717 dsh-host-apiproxy lib/index.js not found at', lib)\n process.exit(1)\n}\n\nconst source = readFileSync(lib, 'utf8')\n/** True when the allowlist already contains the messager entry, whatever comment format. */\nconst hasMessager = /WEB_SETTINGS_NAMESPACES = \\[[^\\]]*\"messager\"/.test(source)\n\nconst mode = process.argv[2] ?? ''\nif (mode === '--check') {\n console.log(hasMessager\n ? `\u2713 patched \u2014 \"messager\" present in WEB_SETTINGS_NAMESPACES (${lib})`\n : `\u2717 not patched \u2014 \"messager\" missing from WEB_SETTINGS_NAMESPACES (${lib})`)\n process.exit(hasMessager ? 0 : 1)\n}\n\nif (mode === '--revert') {\n if (!hasMessager) {\n console.log('nothing to revert \u2014 dsh-messager entry not present.')\n process.exit(0)\n }\n // Remove our marker + \"messager\" block right before the array's closing bracket\n // (with the comma we may have added when the last built-in entry lacked one).\n // Version-agnostic: does not depend on which built-in entries exist.\n const next = source.replace(\n /(WEB_SETTINGS_NAMESPACES = \\[[\\s\\S]*?)(?:,\\n\\t|\\n\\t)(?:\\/\\/[^\\n]*\\n\\t)*\"messager\"(?=\\n\\t?\\])/,\n '$1',\n )\n if (next === source) {\n console.error('\u2717 could not revert automatically \u2014 remove the \"messager\" entry manually in', lib)\n process.exit(1)\n }\n writeFileSync(lib, next)\n console.log('\u2713 reverted \u2014 removed the dsh-messager entry from WEB_SETTINGS_NAMESPACES.')\n console.log(' restart the server for the change to take effect.')\n process.exit(0)\n}\n\nif (hasMessager) {\n console.log('\u2713 already patched \u2014 nothing to do.')\n process.exit(0)\n}\n\n// Anchor: the WEB_SETTINGS_NAMESPACES array's closing bracket. Insert the\n// messager entry right before it, so the patch works on any harness version\n// regardless of which built-in entries the allowlist contains. If the last\n// built-in entry lacks a trailing comma (some published builds do), add one\n// first so the patched array stays valid JavaScript.\nconst anchor = /(WEB_SETTINGS_NAMESPACES = \\[[\\s\\S]*?\\n)(\\t?\\])/\nif (!anchor.test(source)) {\n console.error('\u2717 could not locate the WEB_SETTINGS_NAMESPACES array \u2014 the harness layout may have changed.')\n console.error(' Open this file and add \"messager\" to the array manually:')\n console.error(' ', lib)\n process.exit(1)\n}\n\nconst next = source.replace(anchor, (whole, head, tail) => {\n const needsComma = !/,\\s*$/.test(head)\n const body = needsComma ? `${head.replace(/\\s+$/, '')},\\n` : head\n return `${body}${PATCH_BLOCK}\\n${tail}`\n})\nwriteFileSync(lib, next)\nconsole.log('\u2713 patched \u2014 added \"messager\" to WEB_SETTINGS_NAMESPACES in', lib)\nconsole.log(' restart the server for the change to take effect.')\n";
|
|
9
|
+
//# sourceMappingURL=patch-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-script.d.ts","sourceRoot":"","sources":["../../../src/client/patch-script.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,+hMAA4oK,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-messager",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "DeepSeek Harness 通知插件:会话交互/任务完成/出错时通过系统通知、浏览器通知、飞书/企业微信/Discord/钉钉/Telegram 推送提醒",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -37,40 +37,123 @@
|
|
|
37
37
|
"react": "^18.2.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
41
|
-
"@deepseek-ai/
|
|
42
|
-
"@deepseek-ai/
|
|
43
|
-
"@deepseek-ai/dsh-
|
|
44
|
-
"@deepseek-ai/dsh-
|
|
45
|
-
"@deepseek-ai/dsh-
|
|
46
|
-
"@deepseek-ai/dsh-
|
|
47
|
-
"@deepseek-ai/dsh-
|
|
48
|
-
"@deepseek-ai/dsh-
|
|
49
|
-
"@deepseek-ai/dsh-
|
|
50
|
-
"@deepseek-ai/dsh-
|
|
51
|
-
"@deepseek-ai/dsh-
|
|
52
|
-
"@deepseek-ai/dsh-
|
|
53
|
-
"@deepseek-ai/dsh-
|
|
54
|
-
"@deepseek-ai/
|
|
55
|
-
"@deepseek-ai/dsh-
|
|
56
|
-
"@deepseek-ai/dsh-
|
|
57
|
-
"@deepseek-ai/dsh-
|
|
58
|
-
"@deepseek-ai/dsh-
|
|
59
|
-
"@deepseek-ai/dsh-
|
|
60
|
-
"@deepseek-ai/dsh-
|
|
61
|
-
"@deepseek-ai/dsh-host-
|
|
62
|
-
"@deepseek-ai/dsh-
|
|
63
|
-
"@deepseek-ai/dsh-
|
|
64
|
-
"@deepseek-ai/dsh-
|
|
65
|
-
"@deepseek-ai/dsh-
|
|
66
|
-
"@deepseek-ai/dsh-session-
|
|
67
|
-
"@deepseek-ai/dsh-session-
|
|
68
|
-
"@deepseek-ai/dsh-
|
|
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"
|
|
69
92
|
},
|
|
70
93
|
"peerDependenciesMeta": {
|
|
71
94
|
"@deepseek-ai/cordis": {
|
|
72
95
|
"optional": true
|
|
73
96
|
},
|
|
97
|
+
"@deepseek-ai/cordis-plugin-include": {
|
|
98
|
+
"optional": true
|
|
99
|
+
},
|
|
100
|
+
"@deepseek-ai/cordis-plugin-loader": {
|
|
101
|
+
"optional": true
|
|
102
|
+
},
|
|
103
|
+
"@deepseek-ai/dsh-agent-default-model": {
|
|
104
|
+
"optional": true
|
|
105
|
+
},
|
|
106
|
+
"@deepseek-ai/dsh-attachment": {
|
|
107
|
+
"optional": true
|
|
108
|
+
},
|
|
109
|
+
"@deepseek-ai/dsh-atomic-write": {
|
|
110
|
+
"optional": true
|
|
111
|
+
},
|
|
112
|
+
"@deepseek-ai/dsh-compaction": {
|
|
113
|
+
"optional": true
|
|
114
|
+
},
|
|
115
|
+
"@deepseek-ai/dsh-code-runtime": {
|
|
116
|
+
"optional": true
|
|
117
|
+
},
|
|
118
|
+
"@deepseek-ai/dsh-home-paths": {
|
|
119
|
+
"optional": true
|
|
120
|
+
},
|
|
121
|
+
"@deepseek-ai/dsh-native-command": {
|
|
122
|
+
"optional": true
|
|
123
|
+
},
|
|
124
|
+
"@deepseek-ai/dsh-output-retention": {
|
|
125
|
+
"optional": true
|
|
126
|
+
},
|
|
127
|
+
"@deepseek-ai/dsh-scope": {
|
|
128
|
+
"optional": true
|
|
129
|
+
},
|
|
130
|
+
"@deepseek-ai/dsh-session-projection": {
|
|
131
|
+
"optional": true
|
|
132
|
+
},
|
|
133
|
+
"@deepseek-ai/dsh-session-query": {
|
|
134
|
+
"optional": true
|
|
135
|
+
},
|
|
136
|
+
"@deepseek-ai/dsh-skill": {
|
|
137
|
+
"optional": true
|
|
138
|
+
},
|
|
139
|
+
"@deepseek-ai/dsh-storage-domain": {
|
|
140
|
+
"optional": true
|
|
141
|
+
},
|
|
142
|
+
"@deepseek-ai/dsh-storage": {
|
|
143
|
+
"optional": true
|
|
144
|
+
},
|
|
145
|
+
"@deepseek-ai/dsh-subagent": {
|
|
146
|
+
"optional": true
|
|
147
|
+
},
|
|
148
|
+
"@deepseek-ai/dsh-system-prompt": {
|
|
149
|
+
"optional": true
|
|
150
|
+
},
|
|
151
|
+
"@deepseek-ai/dsh-tools": {
|
|
152
|
+
"optional": true
|
|
153
|
+
},
|
|
154
|
+
"@deepseek-ai/dsh-workspace": {
|
|
155
|
+
"optional": true
|
|
156
|
+
},
|
|
74
157
|
"@deepseek-ai/dsh-agent": {
|
|
75
158
|
"optional": true
|
|
76
159
|
},
|
|
@@ -83,12 +166,21 @@
|
|
|
83
166
|
"@deepseek-ai/dsh-client-locale": {
|
|
84
167
|
"optional": true
|
|
85
168
|
},
|
|
86
|
-
"@deepseek-ai/dsh-client-
|
|
169
|
+
"@deepseek-ai/dsh-client-store": {
|
|
170
|
+
"optional": true
|
|
171
|
+
},
|
|
172
|
+
"@deepseek-ai/dsh-api-session-controller": {
|
|
87
173
|
"optional": true
|
|
88
174
|
},
|
|
89
175
|
"@deepseek-ai/dsh-client-ui-primitives": {
|
|
90
176
|
"optional": true
|
|
91
177
|
},
|
|
178
|
+
"@deepseek-ai/dsh-client-ui-renderer": {
|
|
179
|
+
"optional": true
|
|
180
|
+
},
|
|
181
|
+
"@deepseek-ai/dsh-client-ui-session": {
|
|
182
|
+
"optional": true
|
|
183
|
+
},
|
|
92
184
|
"@deepseek-ai/dsh-client-ui-settings": {
|
|
93
185
|
"optional": true
|
|
94
186
|
},
|
|
@@ -170,11 +262,12 @@
|
|
|
170
262
|
},
|
|
171
263
|
"client": {
|
|
172
264
|
"inject": [
|
|
173
|
-
"@deepseek-ai/dsh-
|
|
265
|
+
"@deepseek-ai/dsh-api-session-controller",
|
|
266
|
+
"@deepseek-ai/dsh-client-ui-session",
|
|
174
267
|
"@deepseek-ai/dsh-client-connection",
|
|
175
268
|
"@deepseek-ai/dsh-client-locale",
|
|
176
269
|
"@deepseek-ai/dsh-api-remotes",
|
|
177
|
-
"@deepseek-ai/dsh-client-ui-
|
|
270
|
+
"@deepseek-ai/dsh-client-ui-renderer",
|
|
178
271
|
"@deepseek-ai/dsh-client-ui-settings",
|
|
179
272
|
"@deepseek-ai/dsh-client-ui-primitives"
|
|
180
273
|
],
|