dsh-connect 0.7.2 → 0.8.0
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 +68 -32
- package/README.zh.md +67 -31
- package/client/client.js +387 -0
- package/client/client.js.map +7 -0
- package/client/settings-client.mjs +177 -0
- package/examples/minimal.config.json +16 -0
- package/lib/channels/dingtalk/adapter.d.ts +59 -0
- package/lib/channels/dingtalk/adapter.d.ts.map +1 -0
- package/lib/channels/dingtalk/adapter.js +123 -0
- package/lib/channels/dingtalk/adapter.js.map +1 -0
- package/lib/channels/dingtalk/i18n.d.ts +14 -0
- package/lib/channels/dingtalk/i18n.d.ts.map +1 -0
- package/lib/channels/dingtalk/i18n.js +16 -0
- package/lib/channels/dingtalk/i18n.js.map +1 -0
- package/lib/channels/dingtalk/index.d.ts +127 -0
- package/lib/channels/dingtalk/index.d.ts.map +1 -0
- package/lib/channels/dingtalk/index.js +144 -0
- package/lib/channels/dingtalk/index.js.map +1 -0
- package/lib/channels/dingtalk/message.d.ts +49 -0
- package/lib/channels/dingtalk/message.d.ts.map +1 -0
- package/lib/channels/dingtalk/message.js +43 -0
- package/lib/channels/dingtalk/message.js.map +1 -0
- package/lib/channels/dingtalk/stomp.d.ts +36 -0
- package/lib/channels/dingtalk/stomp.d.ts.map +1 -0
- package/lib/channels/dingtalk/stomp.js +107 -0
- package/lib/channels/dingtalk/stomp.js.map +1 -0
- package/lib/channels/dingtalk/stream.d.ts +53 -0
- package/lib/channels/dingtalk/stream.d.ts.map +1 -0
- package/lib/channels/dingtalk/stream.js +199 -0
- package/lib/channels/dingtalk/stream.js.map +1 -0
- package/lib/channels/dingtalk/webhook.d.ts +84 -0
- package/lib/channels/dingtalk/webhook.d.ts.map +1 -0
- package/lib/channels/dingtalk/webhook.js +143 -0
- package/lib/channels/dingtalk/webhook.js.map +1 -0
- package/lib/channels/feishu/adapter.d.ts +139 -0
- package/lib/channels/feishu/adapter.d.ts.map +1 -0
- package/lib/channels/feishu/adapter.js +677 -0
- package/lib/channels/feishu/adapter.js.map +1 -0
- package/lib/channels/feishu/i18n.d.ts +28 -0
- package/lib/channels/feishu/i18n.d.ts.map +1 -0
- package/lib/channels/feishu/i18n.js +40 -0
- package/lib/channels/feishu/i18n.js.map +1 -0
- package/lib/channels/feishu/index.d.ts +61 -0
- package/lib/channels/feishu/index.d.ts.map +1 -0
- package/lib/channels/feishu/index.js +77 -0
- package/lib/channels/feishu/index.js.map +1 -0
- package/lib/channels/feishu/onboard.d.ts +16 -0
- package/lib/channels/feishu/onboard.d.ts.map +1 -0
- package/lib/channels/feishu/onboard.js +86 -0
- package/lib/channels/feishu/onboard.js.map +1 -0
- package/lib/channels/telegram/adapter.d.ts +70 -0
- package/lib/channels/telegram/adapter.d.ts.map +1 -0
- package/lib/channels/telegram/adapter.js +454 -0
- package/lib/channels/telegram/adapter.js.map +1 -0
- package/lib/channels/telegram/client.d.ts +115 -0
- package/lib/channels/telegram/client.d.ts.map +1 -0
- package/lib/channels/telegram/client.js +198 -0
- package/lib/channels/telegram/client.js.map +1 -0
- package/lib/channels/telegram/i18n.d.ts +14 -0
- package/lib/channels/telegram/i18n.d.ts.map +1 -0
- package/lib/channels/telegram/i18n.js +18 -0
- package/lib/channels/telegram/i18n.js.map +1 -0
- package/lib/channels/telegram/index.d.ts +46 -0
- package/lib/channels/telegram/index.d.ts.map +1 -0
- package/lib/channels/telegram/index.js +54 -0
- package/lib/channels/telegram/index.js.map +1 -0
- package/lib/channels/web/adapter.d.ts +103 -0
- package/lib/channels/web/adapter.d.ts.map +1 -0
- package/lib/channels/web/adapter.js +161 -0
- package/lib/channels/web/adapter.js.map +1 -0
- package/lib/channels/web/index.d.ts +47 -0
- package/lib/channels/web/index.d.ts.map +1 -0
- package/lib/channels/web/index.js +59 -0
- package/lib/channels/web/index.js.map +1 -0
- package/lib/index.d.ts +68 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +141 -8
- package/lib/index.js.map +1 -1
- package/lib/runner.d.ts +1 -2
- package/lib/runner.d.ts.map +1 -1
- package/lib/runner.js.map +1 -1
- package/lib/service.d.ts +1 -1
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +1 -1
- package/lib/service.js.map +1 -1
- package/lib/settings/channels.d.ts +51 -0
- package/lib/settings/channels.d.ts.map +1 -0
- package/lib/settings/channels.js +101 -0
- package/lib/settings/channels.js.map +1 -0
- package/lib/settings/credential-store.d.ts +39 -0
- package/lib/settings/credential-store.d.ts.map +1 -0
- package/lib/settings/credential-store.js +68 -0
- package/lib/settings/credential-store.js.map +1 -0
- package/lib/settings/index.d.ts +14 -0
- package/lib/settings/index.d.ts.map +1 -0
- package/lib/settings/index.js +14 -0
- package/lib/settings/index.js.map +1 -0
- package/lib/settings/rpc-client.d.ts +36 -0
- package/lib/settings/rpc-client.d.ts.map +1 -0
- package/lib/settings/rpc-client.js +45 -0
- package/lib/settings/rpc-client.js.map +1 -0
- package/lib/settings/settings-model.d.ts +107 -0
- package/lib/settings/settings-model.d.ts.map +1 -0
- package/lib/settings/settings-model.js +110 -0
- package/lib/settings/settings-model.js.map +1 -0
- package/lib/settings/settings-rpc.d.ts +62 -0
- package/lib/settings/settings-rpc.d.ts.map +1 -0
- package/lib/settings/settings-rpc.js +90 -0
- package/lib/settings/settings-rpc.js.map +1 -0
- package/lib/settings/settings-service.d.ts +27 -0
- package/lib/settings/settings-service.d.ts.map +1 -0
- package/lib/settings/settings-service.js +103 -0
- package/lib/settings/settings-service.js.map +1 -0
- package/package.json +48 -6
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web channel adapter for dsh-connect: enables DSH Web GUI to mirror and
|
|
3
|
+
* interact with Feishu conversations through the unified ChannelAdapter interface.
|
|
4
|
+
* @module dsh-connect/web
|
|
5
|
+
*/
|
|
6
|
+
import type { Context } from "@deepseek-ai/cordis";
|
|
7
|
+
import z from "@deepseek-ai/schemastery";
|
|
8
|
+
import type { BindingStore } from "../../binding.js";
|
|
9
|
+
export { WebAdapter } from "./adapter.js";
|
|
10
|
+
/** Plugin configuration options. */
|
|
11
|
+
export declare const Config: z<Schemastery.ObjectS<{
|
|
12
|
+
/** Polling interval in milliseconds for detecting new mirror sessions. Default: 1000ms */
|
|
13
|
+
pollIntervalMs: z<number, number>;
|
|
14
|
+
}>, Schemastery.ObjectT<{
|
|
15
|
+
/** Polling interval in milliseconds for detecting new mirror sessions. Default: 1000ms */
|
|
16
|
+
pollIntervalMs: z<number, number>;
|
|
17
|
+
}>>;
|
|
18
|
+
export interface ConnectWebConfig {
|
|
19
|
+
pollIntervalMs?: number;
|
|
20
|
+
}
|
|
21
|
+
interface ConnectLike {
|
|
22
|
+
registerAdapter(adapter: unknown): void;
|
|
23
|
+
/** Public accessor for the binding routing store (added to ConnectService). */
|
|
24
|
+
bindingStore?: BindingStore;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Register and start the Web adapter. This enables the DSH Web GUI to
|
|
28
|
+
* automatically detect and interact with mirrored Feishu conversations.
|
|
29
|
+
* `connect` is the already-constructed `ConnectService` instance (passed from
|
|
30
|
+
* the merged entry, not resolved via `ctx.get`), so its public `bindingStore`
|
|
31
|
+
* getter is read directly.
|
|
32
|
+
*
|
|
33
|
+
* When a user runs `/mirror` in Feishu, the resulting webMirrorSessionId
|
|
34
|
+
* becomes accessible through this adapter, allowing the Web GUI to:
|
|
35
|
+
* - View the shared session history
|
|
36
|
+
* - Send messages (subject to lock ownership)
|
|
37
|
+
* - Receive real-time updates through DSH's session event system
|
|
38
|
+
*/
|
|
39
|
+
export declare function register(connect: ConnectLike, config: (ConnectWebConfig | null) | undefined, ctx: Context): void;
|
|
40
|
+
/**
|
|
41
|
+
* Compatibility shell for the old split-plugin registration path (when `connect`
|
|
42
|
+
* is an already-active, separate plugin). The merged entry calls `register`
|
|
43
|
+
* directly instead, because `ctx.get("connect")` returns undefined inside this
|
|
44
|
+
* plugin's own `apply`.
|
|
45
|
+
*/
|
|
46
|
+
export declare function apply(ctx: Context, config?: ConnectWebConfig | null): void;
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/web/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,CAAC,MAAM,0BAA0B,CAAC;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,oCAAoC;AACpC,eAAO,MAAM,MAAM;IACjB,0FAA0F;;;IAA1F,0FAA0F;;GAE1F,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,WAAW;IACnB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,gBAAgB,GAAG,IAAI,aAAK,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CA4BvG;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,gBAAgB,GAAG,IAAS,GAAG,IAAI,CAM9E"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import z from "@deepseek-ai/schemastery";
|
|
2
|
+
import { WebAdapter } from "./adapter.js";
|
|
3
|
+
export { WebAdapter } from "./adapter.js";
|
|
4
|
+
/** Plugin configuration options. */
|
|
5
|
+
export const Config = z.object({
|
|
6
|
+
/** Polling interval in milliseconds for detecting new mirror sessions. Default: 1000ms */
|
|
7
|
+
pollIntervalMs: z.number(),
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* Register and start the Web adapter. This enables the DSH Web GUI to
|
|
11
|
+
* automatically detect and interact with mirrored Feishu conversations.
|
|
12
|
+
* `connect` is the already-constructed `ConnectService` instance (passed from
|
|
13
|
+
* the merged entry, not resolved via `ctx.get`), so its public `bindingStore`
|
|
14
|
+
* getter is read directly.
|
|
15
|
+
*
|
|
16
|
+
* When a user runs `/mirror` in Feishu, the resulting webMirrorSessionId
|
|
17
|
+
* becomes accessible through this adapter, allowing the Web GUI to:
|
|
18
|
+
* - View the shared session history
|
|
19
|
+
* - Send messages (subject to lock ownership)
|
|
20
|
+
* - Receive real-time updates through DSH's session event system
|
|
21
|
+
*/
|
|
22
|
+
export function register(connect, config = {}, ctx) {
|
|
23
|
+
// The DSH loader passes `null` for entries without an explicit config.
|
|
24
|
+
config = config ?? {};
|
|
25
|
+
// Read the BindingStore from the connect service's public getter (part of the
|
|
26
|
+
// service contract), not via `ctx.get("connect")`.
|
|
27
|
+
const bindings = connect.bindingStore;
|
|
28
|
+
if (bindings === undefined) {
|
|
29
|
+
ctx.logger?.warn?.("connect-web: BindingStore not available, mirror detection disabled");
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const adapter = new WebAdapter(bindings, {
|
|
34
|
+
pollIntervalMs: config.pollIntervalMs,
|
|
35
|
+
});
|
|
36
|
+
connect.registerAdapter(adapter);
|
|
37
|
+
void adapter.start().catch((error) => {
|
|
38
|
+
ctx.logger?.warn?.(`connect-web: start failed: ${String(error)}`);
|
|
39
|
+
});
|
|
40
|
+
ctx.logger?.info?.("connect-web: Web adapter registered, mirror detection active");
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
ctx.logger?.warn?.(`connect-web: adapter init failed: ${String(error)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Compatibility shell for the old split-plugin registration path (when `connect`
|
|
48
|
+
* is an already-active, separate plugin). The merged entry calls `register`
|
|
49
|
+
* directly instead, because `ctx.get("connect")` returns undefined inside this
|
|
50
|
+
* plugin's own `apply`.
|
|
51
|
+
*/
|
|
52
|
+
export function apply(ctx, config = {}) {
|
|
53
|
+
const connect = ctx.get("connect");
|
|
54
|
+
if (connect === undefined) {
|
|
55
|
+
throw new Error("connect-web: the dsh-connect service is not present; load it before this adapter");
|
|
56
|
+
}
|
|
57
|
+
register(connect, config, ctx);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/web/index.ts"],"names":[],"mappings":"AAMA,OAAO,CAAC,MAAM,0BAA0B,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,oCAAoC;AACpC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,0FAA0F;IAC1F,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;CAC3B,CAAC,CAAC;AAYH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAoB,EAAE,SAAkC,EAAE,EAAE,GAAY;IAC/F,uEAAuE;IACvE,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;IAEtB,8EAA8E;IAC9E,mDAAmD;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC;IAEtC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,oEAAoE,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE;YACvC,cAAc,EAAE,MAAM,CAAC,cAAc;SACtC,CAAC,CAAC;QAEH,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEjC,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,8BAA8B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,8DAA8D,CAAC,CAAC;IACrF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,qCAAqC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,SAAkC,EAAE;IACtE,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAA4B,CAAC;IAC9D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;IACD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `dsh-connect` — channel-agnostic messaging bridge core for DeepSeek Harness.
|
|
3
|
-
* Provides the `connect` service; channel adapters register into it and route
|
|
4
|
-
* normalized messages to bound DSH agents, then stream replies back.
|
|
5
|
-
* @module dsh-connect
|
|
6
|
-
*/
|
|
7
1
|
import type { Context } from "@deepseek-ai/cordis";
|
|
8
2
|
import z from "@deepseek-ai/schemastery";
|
|
9
3
|
import { ConnectService } from "./service.js";
|
|
10
4
|
import type { ConnectConfig } from "./runner.js";
|
|
5
|
+
import { type ChannelName } from "./settings/channels.js";
|
|
11
6
|
export { ConnectService } from "./service.js";
|
|
12
7
|
export { AgentRunner, resolveConnectConfig } from "./runner.js";
|
|
13
8
|
export { MenuController } from "./menu-controller.js";
|
|
@@ -34,11 +29,27 @@ export type { Command } from "./commands.js";
|
|
|
34
29
|
export { messages } from "./i18n.js";
|
|
35
30
|
export type { Language, Messages } from "./i18n.js";
|
|
36
31
|
export type { ChatType, ChoiceOption, ChoicePrompt, ChoiceResult, InboundMessage, OutboundTarget, SummaryCard, TurnReason, TurnOutcome, AsyncQueue, ChannelAdapter, } from "./types.js";
|
|
32
|
+
export * as feishu from "./channels/feishu/index.js";
|
|
33
|
+
export * as telegram from "./channels/telegram/index.js";
|
|
34
|
+
export * as dingtalk from "./channels/dingtalk/index.js";
|
|
35
|
+
export * as web from "./channels/web/index.js";
|
|
36
|
+
export * as settings from "./settings/index.js";
|
|
37
37
|
/** Cordis plugin name used by loader diagnostics. */
|
|
38
38
|
export declare const name = "connect";
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Host-plane services this plugin must wait for before `apply` runs. All three
|
|
41
|
+
* are provided by the base bundle. The credential store is NOT listed here:
|
|
42
|
+
* cordis v4 has no `?` optional-inject marker — `"credentials?"` would be treated
|
|
43
|
+
* as a required service literally named "credentials?" and stall the plugin. The
|
|
44
|
+
* store is instead fetched lazily inside `apply` via the optional `ctx.get()`.
|
|
45
|
+
*/
|
|
40
46
|
export declare const inject: string[];
|
|
41
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Full plugin config: the channel-agnostic core fields plus the channel
|
|
49
|
+
* selector (`channels`), shared `channelDefaults`, per-channel config, and the
|
|
50
|
+
* web-settings state path. Each channel's own `Config` schema is also exported
|
|
51
|
+
* (as `feishu.Config`, etc.) for reference; the merged entry validates loosely.
|
|
52
|
+
*/
|
|
42
53
|
export declare const Config: z<Schemastery.ObjectS<{
|
|
43
54
|
/** Agent preset id composed into each bound session; omit for the roster default. */
|
|
44
55
|
agentPreset: z<string, string>;
|
|
@@ -70,6 +81,16 @@ export declare const Config: z<Schemastery.ObjectS<{
|
|
|
70
81
|
notifyLevel: z<"full" | "important" | "result", "full" | "important" | "result">;
|
|
71
82
|
/** Proactive progress-notice interval ms when a turn stays silent (default: 300000 = 5 min; 0 disables). */
|
|
72
83
|
progressTimeoutMs: z<number, number>;
|
|
84
|
+
/** Channels to activate; default: all built-in channels. */
|
|
85
|
+
channels: z<("feishu" | "web" | "telegram" | "dingtalk")[], ("feishu" | "web" | "telegram" | "dingtalk")[]>;
|
|
86
|
+
/** Keys applied to every channel that doesn't set its own (e.g. a shared `language`). */
|
|
87
|
+
channelDefaults: z<any, any>;
|
|
88
|
+
feishu: z<any, any>;
|
|
89
|
+
telegram: z<any, any>;
|
|
90
|
+
dingtalk: z<any, any>;
|
|
91
|
+
web: z<any, any>;
|
|
92
|
+
/** Optional path to persist web-settings edits (non-secret). */
|
|
93
|
+
settingsStatePath: z<string, string>;
|
|
73
94
|
}>, Schemastery.ObjectT<{
|
|
74
95
|
/** Agent preset id composed into each bound session; omit for the roster default. */
|
|
75
96
|
agentPreset: z<string, string>;
|
|
@@ -101,13 +122,49 @@ export declare const Config: z<Schemastery.ObjectS<{
|
|
|
101
122
|
notifyLevel: z<"full" | "important" | "result", "full" | "important" | "result">;
|
|
102
123
|
/** Proactive progress-notice interval ms when a turn stays silent (default: 300000 = 5 min; 0 disables). */
|
|
103
124
|
progressTimeoutMs: z<number, number>;
|
|
125
|
+
/** Channels to activate; default: all built-in channels. */
|
|
126
|
+
channels: z<("feishu" | "web" | "telegram" | "dingtalk")[], ("feishu" | "web" | "telegram" | "dingtalk")[]>;
|
|
127
|
+
/** Keys applied to every channel that doesn't set its own (e.g. a shared `language`). */
|
|
128
|
+
channelDefaults: z<any, any>;
|
|
129
|
+
feishu: z<any, any>;
|
|
130
|
+
telegram: z<any, any>;
|
|
131
|
+
dingtalk: z<any, any>;
|
|
132
|
+
web: z<any, any>;
|
|
133
|
+
/** Optional path to persist web-settings edits (non-secret). */
|
|
134
|
+
settingsStatePath: z<string, string>;
|
|
104
135
|
}>>;
|
|
136
|
+
/** The merged plugin's config type (core fields + channel selector + settings). */
|
|
137
|
+
export interface ConnectSettingsConfig extends ConnectConfig {
|
|
138
|
+
/** Channels to activate; default: all built-in channels. */
|
|
139
|
+
channels?: ChannelName[];
|
|
140
|
+
/** Keys applied to every channel that doesn't set its own (e.g. a shared `language`). */
|
|
141
|
+
channelDefaults?: Record<string, unknown>;
|
|
142
|
+
feishu?: Record<string, unknown>;
|
|
143
|
+
telegram?: Record<string, unknown>;
|
|
144
|
+
dingtalk?: Record<string, unknown>;
|
|
145
|
+
web?: Record<string, unknown>;
|
|
146
|
+
/** Optional path to persist web-settings edits (non-secret). */
|
|
147
|
+
settingsStatePath?: string;
|
|
148
|
+
}
|
|
149
|
+
/** Convenience alias for the settings stack's channel-orchestration config. */
|
|
150
|
+
export type { ChannelsConfig, ChannelApply } from "./settings/channels.js";
|
|
105
151
|
declare module "@deepseek-ai/cordis" {
|
|
106
152
|
interface Context {
|
|
107
153
|
connect: ConnectService;
|
|
108
154
|
}
|
|
109
155
|
}
|
|
110
|
-
/**
|
|
111
|
-
|
|
112
|
-
|
|
156
|
+
/**
|
|
157
|
+
* Register the `connect` service and start the enabled channel adapters, then
|
|
158
|
+
* expose the web-settings RPC. `connect` is constructed first and passed *by
|
|
159
|
+
* instance* into each channel's `register` — never resolved via
|
|
160
|
+
* `ctx.get("connect")`, which returns undefined inside this plugin's own
|
|
161
|
+
* `apply` (the fiber is still LOADING until this function resolves).
|
|
162
|
+
*/
|
|
163
|
+
export declare function apply(ctx: Context, config?: ConnectSettingsConfig | null): Promise<void>;
|
|
164
|
+
declare const _default: {
|
|
165
|
+
apply: typeof apply;
|
|
166
|
+
name: string;
|
|
167
|
+
inject: string[];
|
|
168
|
+
};
|
|
169
|
+
export default _default;
|
|
113
170
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `dsh-connect` — the single all-in-one plugin that bridges DeepSeek Harness to
|
|
3
|
+
* chat platforms. It bundles the channel-agnostic `connect` service (adapter
|
|
4
|
+
* registry, inbound routing, authorization, proactive notify), every channel
|
|
5
|
+
* adapter (Feishu/Lark, Telegram, DingTalk, Web mirror), and the web-settings
|
|
6
|
+
* stack (host RPC + credential store + settings pane) into one package.
|
|
7
|
+
*
|
|
8
|
+
* Install one plugin, write one `dsh-connect` config block, and enable exactly
|
|
9
|
+
* the channels you use via `channels`.
|
|
10
|
+
*
|
|
11
|
+
* @module dsh-connect
|
|
12
|
+
*/
|
|
13
|
+
import { join } from "node:path";
|
|
1
14
|
import z from "@deepseek-ai/schemastery";
|
|
2
15
|
import { ConnectService } from "./service.js";
|
|
16
|
+
import { activateChannels, CHANNELS, injectSecrets, } from "./settings/channels.js";
|
|
17
|
+
import { installSettingsRpc } from "./settings/settings-rpc.js";
|
|
18
|
+
import { createSettingsService } from "./settings/settings-service.js";
|
|
19
|
+
import { CHANNEL_CONFIG_FIELDS } from "./settings/settings-model.js";
|
|
20
|
+
import { createCredentialStore, } from "./settings/credential-store.js";
|
|
21
|
+
import { register as feishuRegister } from "./channels/feishu/index.js";
|
|
22
|
+
import { register as telegramRegister } from "./channels/telegram/index.js";
|
|
23
|
+
import { register as dingtalkRegister } from "./channels/dingtalk/index.js";
|
|
24
|
+
import { register as webRegister } from "./channels/web/index.js";
|
|
3
25
|
export { ConnectService } from "./service.js";
|
|
4
26
|
export { AgentRunner, resolveConnectConfig } from "./runner.js";
|
|
5
27
|
export { MenuController } from "./menu-controller.js";
|
|
@@ -14,11 +36,30 @@ export { acquire as acquireLock, canWrite as lockCanWrite, isLockTimedOut, relea
|
|
|
14
36
|
export { ReminderStore, formatRemindAt, parseRemindTime } from "./scheduler.js";
|
|
15
37
|
export { parseCommand, helpText } from "./commands.js";
|
|
16
38
|
export { messages } from "./i18n.js";
|
|
39
|
+
// Channel adapters (exposed as namespaces so each channel's Config/apply/register
|
|
40
|
+
// never collide with the merged plugin's own top-level exports).
|
|
41
|
+
export * as feishu from "./channels/feishu/index.js";
|
|
42
|
+
export * as telegram from "./channels/telegram/index.js";
|
|
43
|
+
export * as dingtalk from "./channels/dingtalk/index.js";
|
|
44
|
+
export * as web from "./channels/web/index.js";
|
|
45
|
+
// Web-settings stack (host RPC + credential store + persistence + client model).
|
|
46
|
+
export * as settings from "./settings/index.js";
|
|
17
47
|
/** Cordis plugin name used by loader diagnostics. */
|
|
18
48
|
export const name = "connect";
|
|
19
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* Host-plane services this plugin must wait for before `apply` runs. All three
|
|
51
|
+
* are provided by the base bundle. The credential store is NOT listed here:
|
|
52
|
+
* cordis v4 has no `?` optional-inject marker — `"credentials?"` would be treated
|
|
53
|
+
* as a required service literally named "credentials?" and stall the plugin. The
|
|
54
|
+
* store is instead fetched lazily inside `apply` via the optional `ctx.get()`.
|
|
55
|
+
*/
|
|
20
56
|
export const inject = ["agents", "sessions", "agentDefaultModel"];
|
|
21
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Full plugin config: the channel-agnostic core fields plus the channel
|
|
59
|
+
* selector (`channels`), shared `channelDefaults`, per-channel config, and the
|
|
60
|
+
* web-settings state path. Each channel's own `Config` schema is also exported
|
|
61
|
+
* (as `feishu.Config`, etc.) for reference; the merged entry validates loosely.
|
|
62
|
+
*/
|
|
22
63
|
export const Config = z.object({
|
|
23
64
|
/** Agent preset id composed into each bound session; omit for the roster default. */
|
|
24
65
|
agentPreset: z.string(),
|
|
@@ -44,12 +85,104 @@ export const Config = z.object({
|
|
|
44
85
|
notifyLevel: z.union([z.const("full"), z.const("important"), z.const("result")]),
|
|
45
86
|
/** Proactive progress-notice interval ms when a turn stays silent (default: 300000 = 5 min; 0 disables). */
|
|
46
87
|
progressTimeoutMs: z.number(),
|
|
88
|
+
/** Channels to activate; default: all built-in channels. */
|
|
89
|
+
channels: z.array(z.union([z.const("feishu"), z.const("telegram"), z.const("dingtalk"), z.const("web")])),
|
|
90
|
+
/** Keys applied to every channel that doesn't set its own (e.g. a shared `language`). */
|
|
91
|
+
channelDefaults: z.any(),
|
|
92
|
+
feishu: z.any(),
|
|
93
|
+
telegram: z.any(),
|
|
94
|
+
dingtalk: z.any(),
|
|
95
|
+
web: z.any(),
|
|
96
|
+
/** Optional path to persist web-settings edits (non-secret). */
|
|
97
|
+
settingsStatePath: z.string(),
|
|
47
98
|
});
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
99
|
+
/**
|
|
100
|
+
* Register the `connect` service and start the enabled channel adapters, then
|
|
101
|
+
* expose the web-settings RPC. `connect` is constructed first and passed *by
|
|
102
|
+
* instance* into each channel's `register` — never resolved via
|
|
103
|
+
* `ctx.get("connect")`, which returns undefined inside this plugin's own
|
|
104
|
+
* `apply` (the fiber is still LOADING until this function resolves).
|
|
105
|
+
*/
|
|
106
|
+
export async function apply(ctx, config = {}) {
|
|
107
|
+
// Shallow-clone so we never mutate the caller's config object. Only core
|
|
108
|
+
// fields are consumed by ConnectService; the rest are channel/settings.
|
|
109
|
+
const cfg = { ...(config ?? {}) };
|
|
110
|
+
const connect = new ConnectService(ctx, cfg);
|
|
111
|
+
// Optional DSH credentials store: report presence + inject secrets into each
|
|
112
|
+
// channel config so store-backed secrets reach the adapter without the config
|
|
113
|
+
// file carrying them (they apply on the next plugin load).
|
|
114
|
+
const credentialsProvider = ctx.get?.("credentials");
|
|
115
|
+
let credentialStore;
|
|
116
|
+
if (credentialsProvider) {
|
|
117
|
+
try {
|
|
118
|
+
credentialStore = createCredentialStore(credentialsProvider);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
credentialStore = undefined;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const wanted = cfg.channels ?? CHANNELS;
|
|
125
|
+
const finalCfg = credentialStore
|
|
126
|
+
? await injectSecrets(cfg, wanted, (name) => credentialStore.get(name))
|
|
127
|
+
: cfg;
|
|
128
|
+
// Each channel's register receives the connect instance directly.
|
|
129
|
+
const channels = {
|
|
130
|
+
feishu: (_ctx, channelConfig) => feishuRegister(connect, channelConfig, _ctx),
|
|
131
|
+
telegram: (_ctx, channelConfig) => telegramRegister(connect, channelConfig, _ctx),
|
|
132
|
+
dingtalk: (_ctx, channelConfig) => dingtalkRegister(connect, channelConfig, _ctx),
|
|
133
|
+
web: (_ctx, channelConfig) => webRegister(connect, channelConfig, _ctx),
|
|
134
|
+
};
|
|
135
|
+
activateChannels(ctx, finalCfg, channels);
|
|
136
|
+
// Expose the web-settings RPC. The host `connection` service is loaded as a
|
|
137
|
+
// base plugin AFTER this user plugin's apply runs, so a plain optional inject
|
|
138
|
+
// would see `ctx.connection === undefined` (installSettingsRpc would no-op and
|
|
139
|
+
// no `/dsh-connect` channel would be mounted → the settings pane hangs on
|
|
140
|
+
// "加载中"). Instead defer the registration into a nested injection scope that
|
|
141
|
+
// waits for `connection` to be ready — the same pattern dsh-api-gateway uses
|
|
142
|
+
// for its `/api` RPC. If the host never provides `connection` (non-web
|
|
143
|
+
// runtime), the callback never runs and the RPC is simply absent.
|
|
144
|
+
// Web settings pane state. The pane edits a settings-shape config persisted to
|
|
145
|
+
// a JSON file and seeded from the live plugin config so it reflects the
|
|
146
|
+
// channels actually enabled. Only NON-SECRET editable fields are seeded per
|
|
147
|
+
// channel (secrets live in the credential store, never in the state file).
|
|
148
|
+
// Default the file path under the state dir so Save persists out of the box.
|
|
149
|
+
const settingsSeed = {
|
|
150
|
+
channels: finalCfg.channels ?? CHANNELS,
|
|
151
|
+
...(finalCfg.channelDefaults ? { channelDefaults: finalCfg.channelDefaults } : {}),
|
|
152
|
+
};
|
|
153
|
+
for (const ch of CHANNELS) {
|
|
154
|
+
const raw = finalCfg[ch] ?? {};
|
|
155
|
+
const nonSecret = {};
|
|
156
|
+
for (const field of CHANNEL_CONFIG_FIELDS[ch] ?? []) {
|
|
157
|
+
if (raw[field.key] !== undefined)
|
|
158
|
+
nonSecret[field.key] = raw[field.key];
|
|
159
|
+
}
|
|
160
|
+
if (Object.keys(nonSecret).length)
|
|
161
|
+
settingsSeed[ch] = nonSecret;
|
|
162
|
+
}
|
|
163
|
+
const settingsStatePath = finalCfg.settingsStatePath
|
|
164
|
+
?? (cfg.stateDir ? join(cfg.stateDir, "dsh-connect-settings.json") : undefined);
|
|
165
|
+
const settingsService = createSettingsService({ statePath: settingsStatePath, credentialStore, initialConfig: settingsSeed });
|
|
166
|
+
if (typeof ctx.inject === "function") {
|
|
167
|
+
ctx.inject(["connection"], (connectionCtx) => {
|
|
168
|
+
installSettingsRpc(connectionCtx, { service: settingsService });
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
// Fallback for a bare context without the inject-scope API: try directly.
|
|
173
|
+
installSettingsRpc(ctx, { service: settingsService });
|
|
174
|
+
}
|
|
53
175
|
}
|
|
54
|
-
|
|
176
|
+
// The DSH loader (cordis-plugin-loader) resolves a plugin entry to the module's
|
|
177
|
+
// DEFAULT export via `unwrapExports()` (`exports.default ?? exports`), then
|
|
178
|
+
// hands it to `ctx.registry.plugin()`. An object `{ apply, name, inject }` makes
|
|
179
|
+
// the loader route through `apply` — the function that activates the channel
|
|
180
|
+
// adapters and installs the web-settings RPC.
|
|
181
|
+
//
|
|
182
|
+
// Previously the default export was the `ConnectService` class. That "worked"
|
|
183
|
+
// on the surface (the class was constructed, no error) but `apply` was never
|
|
184
|
+
// called, so `activateChannels` and `installSettingsRpc` were silently skipped:
|
|
185
|
+
// no channel was bound and no `/dsh-connect` RPC route was mounted (the web
|
|
186
|
+
// settings pane hung on "加载中"). Routing through `apply` fixes it.
|
|
187
|
+
export default { apply, name, inject };
|
|
55
188
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/runner.d.ts
CHANGED
|
@@ -29,8 +29,7 @@ export interface ConnectConfig {
|
|
|
29
29
|
autoMirror?: boolean;
|
|
30
30
|
/** Liveness heartbeat interval ms for the streaming card; 0 disables it (default: 60000). */
|
|
31
31
|
streamHeartbeatMs?: number;
|
|
32
|
-
/**
|
|
33
|
-
/** Streaming reply detail. Default 'result' (final answer only) to keep chat cards short. */
|
|
32
|
+
/** Streaming reply detail. Default 'result' (final answer only) keeps chat cards short. */
|
|
34
33
|
notifyLevel?: NotifyLevel;
|
|
35
34
|
/** Proactive progress-notice interval ms: when a turn goes silent for this long, a standalone status card is sent (default: 300000 = 5 min; 0 disables). */
|
|
36
35
|
progressTimeoutMs?: number;
|
package/lib/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAA2B,KAAK,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AACnH,OAAO,EAA+C,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE1G,OAAO,KAAK,EAAE,cAAc,EAAgB,cAAc,EAAE,cAAc,EAAwC,MAAM,YAAY,CAAC;AACrI,OAAO,EAYL,KAAK,WAAW,EAGjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAgG,KAAK,MAAM,EAAiB,MAAM,YAAY,CAAC;AACtJ,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAkC,MAAM,cAAc,CAAC;AACjF,OAAO,EAAY,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AASnE,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAErF,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8EAA8E;IAC9E,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6FAA6F;IAC7F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|