@soimy/dingtalk 3.6.1 → 3.6.2

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.
Files changed (163) hide show
  1. package/dist/index.d.ts +14 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +14603 -0
  4. package/dist/index.js.map +7 -0
  5. package/dist/src/access-control.d.ts +43 -0
  6. package/dist/src/access-control.d.ts.map +1 -0
  7. package/dist/src/ack-reaction/dynamic-ack-reaction-controller.d.ts +22 -0
  8. package/dist/src/ack-reaction/dynamic-ack-reaction-controller.d.ts.map +1 -0
  9. package/dist/src/ack-reaction/dynamic-ack-reaction-events.d.ts +36 -0
  10. package/dist/src/ack-reaction/dynamic-ack-reaction-events.d.ts.map +1 -0
  11. package/dist/src/ack-reaction/dynamic-ack-reaction-progress.d.ts +7 -0
  12. package/dist/src/ack-reaction/dynamic-ack-reaction-progress.d.ts.map +1 -0
  13. package/dist/src/ack-reaction-classifier.d.ts +8 -0
  14. package/dist/src/ack-reaction-classifier.d.ts.map +1 -0
  15. package/dist/src/ack-reaction-service.d.ts +15 -0
  16. package/dist/src/ack-reaction-service.d.ts.map +1 -0
  17. package/dist/src/auth.d.ts +7 -0
  18. package/dist/src/auth.d.ts.map +1 -0
  19. package/dist/src/card/card-action-handler.d.ts +14 -0
  20. package/dist/src/card/card-action-handler.d.ts.map +1 -0
  21. package/dist/src/card/card-markdown-image-reroute.d.ts +16 -0
  22. package/dist/src/card/card-markdown-image-reroute.d.ts.map +1 -0
  23. package/dist/src/card/card-run-registry.d.ts +60 -0
  24. package/dist/src/card/card-run-registry.d.ts.map +1 -0
  25. package/dist/src/card/card-stop-handler.d.ts +18 -0
  26. package/dist/src/card/card-stop-handler.d.ts.map +1 -0
  27. package/dist/src/card/card-streaming-mode.d.ts +8 -0
  28. package/dist/src/card/card-streaming-mode.d.ts.map +1 -0
  29. package/dist/src/card/card-template.d.ts +21 -0
  30. package/dist/src/card/card-template.d.ts.map +1 -0
  31. package/dist/src/card/reasoning-answer-split.d.ts +6 -0
  32. package/dist/src/card/reasoning-answer-split.d.ts.map +1 -0
  33. package/dist/src/card/reasoning-block-assembler.d.ts +7 -0
  34. package/dist/src/card/reasoning-block-assembler.d.ts.map +1 -0
  35. package/dist/src/card/statusline-renderer.d.ts +24 -0
  36. package/dist/src/card/statusline-renderer.d.ts.map +1 -0
  37. package/dist/src/card-callback-service.d.ts +23 -0
  38. package/dist/src/card-callback-service.d.ts.map +1 -0
  39. package/dist/src/card-draft-controller.d.ts +75 -0
  40. package/dist/src/card-draft-controller.d.ts.map +1 -0
  41. package/dist/src/card-service.d.ts +99 -0
  42. package/dist/src/card-service.d.ts.map +1 -0
  43. package/dist/src/channel.d.ts +10 -0
  44. package/dist/src/channel.d.ts.map +1 -0
  45. package/dist/src/command/card-stop-command.d.ts +30 -0
  46. package/dist/src/command/card-stop-command.d.ts.map +1 -0
  47. package/dist/src/command/inbound-command-dispatch-service.d.ts +40 -0
  48. package/dist/src/command/inbound-command-dispatch-service.d.ts.map +1 -0
  49. package/dist/src/config-schema.d.ts +8 -0
  50. package/dist/src/config-schema.d.ts.map +1 -0
  51. package/dist/src/config.d.ts +60 -0
  52. package/dist/src/config.d.ts.map +1 -0
  53. package/dist/src/connection-manager.d.ts +148 -0
  54. package/dist/src/connection-manager.d.ts.map +1 -0
  55. package/dist/src/dedup.d.ts +4 -0
  56. package/dist/src/dedup.d.ts.map +1 -0
  57. package/dist/src/device-registration.d.ts +16 -0
  58. package/dist/src/device-registration.d.ts.map +1 -0
  59. package/dist/src/docs-service.d.ts +12 -0
  60. package/dist/src/docs-service.d.ts.map +1 -0
  61. package/dist/src/draft-stream-loop.d.ts +28 -0
  62. package/dist/src/draft-stream-loop.d.ts.map +1 -0
  63. package/dist/src/feedback-learning-service.d.ts +123 -0
  64. package/dist/src/feedback-learning-service.d.ts.map +1 -0
  65. package/dist/src/feedback-learning-store.d.ts +181 -0
  66. package/dist/src/feedback-learning-store.d.ts.map +1 -0
  67. package/dist/src/gateway/channel-gateway.d.ts +4 -0
  68. package/dist/src/gateway/channel-gateway.d.ts.map +1 -0
  69. package/dist/src/http-client.d.ts +9 -0
  70. package/dist/src/http-client.d.ts.map +1 -0
  71. package/dist/src/inbound-handler.d.ts +9 -0
  72. package/dist/src/inbound-handler.d.ts.map +1 -0
  73. package/dist/src/learning-command-service.d.ts +64 -0
  74. package/dist/src/learning-command-service.d.ts.map +1 -0
  75. package/dist/src/logger-context.d.ts +10 -0
  76. package/dist/src/logger-context.d.ts.map +1 -0
  77. package/dist/src/media-utils.d.ts +63 -0
  78. package/dist/src/media-utils.d.ts.map +1 -0
  79. package/dist/src/message-context-store.d.ts +126 -0
  80. package/dist/src/message-context-store.d.ts.map +1 -0
  81. package/dist/src/message-utils.d.ts +12 -0
  82. package/dist/src/message-utils.d.ts.map +1 -0
  83. package/dist/src/messaging/attachment-text-extractor.d.ts +13 -0
  84. package/dist/src/messaging/attachment-text-extractor.d.ts.map +1 -0
  85. package/dist/src/messaging/btw-deliver.d.ts +42 -0
  86. package/dist/src/messaging/btw-deliver.d.ts.map +1 -0
  87. package/dist/src/messaging/channel-actions.d.ts +3 -0
  88. package/dist/src/messaging/channel-actions.d.ts.map +1 -0
  89. package/dist/src/messaging/channel-outbound.d.ts +3 -0
  90. package/dist/src/messaging/channel-outbound.d.ts.map +1 -0
  91. package/dist/src/messaging/quoted-context.d.ts +36 -0
  92. package/dist/src/messaging/quoted-context.d.ts.map +1 -0
  93. package/dist/src/messaging/quoted-file-service.d.ts +25 -0
  94. package/dist/src/messaging/quoted-file-service.d.ts.map +1 -0
  95. package/dist/src/messaging/quoted-ref.d.ts +12 -0
  96. package/dist/src/messaging/quoted-ref.d.ts.map +1 -0
  97. package/dist/src/onboarding.d.ts +4 -0
  98. package/dist/src/onboarding.d.ts.map +1 -0
  99. package/dist/src/path-utils.d.ts +3 -0
  100. package/dist/src/path-utils.d.ts.map +1 -0
  101. package/dist/src/peer-id-registry.d.ts +35 -0
  102. package/dist/src/peer-id-registry.d.ts.map +1 -0
  103. package/dist/src/persistence-store.d.ts +27 -0
  104. package/dist/src/persistence-store.d.ts.map +1 -0
  105. package/dist/src/platform/channel-status.d.ts +3 -0
  106. package/dist/src/platform/channel-status.d.ts.map +1 -0
  107. package/dist/src/plugin-sdk-channel-actions-augment.d.ts +7 -0
  108. package/dist/src/plugin-sdk-channel-actions-augment.d.ts.map +1 -0
  109. package/dist/src/proactive-risk-registry.d.ts +22 -0
  110. package/dist/src/proactive-risk-registry.d.ts.map +1 -0
  111. package/dist/src/reply-strategy-card.d.ts +14 -0
  112. package/dist/src/reply-strategy-card.d.ts.map +1 -0
  113. package/dist/src/reply-strategy-markdown.d.ts +10 -0
  114. package/dist/src/reply-strategy-markdown.d.ts.map +1 -0
  115. package/dist/src/reply-strategy-types.d.ts +85 -0
  116. package/dist/src/reply-strategy-types.d.ts.map +1 -0
  117. package/dist/src/reply-strategy-with-reaction.d.ts +47 -0
  118. package/dist/src/reply-strategy-with-reaction.d.ts.map +1 -0
  119. package/dist/src/reply-strategy.d.ts +14 -0
  120. package/dist/src/reply-strategy.d.ts.map +1 -0
  121. package/dist/src/run-usage-store.d.ts +15 -0
  122. package/dist/src/run-usage-store.d.ts.map +1 -0
  123. package/dist/src/runtime.d.ts +4 -0
  124. package/dist/src/runtime.d.ts.map +1 -0
  125. package/dist/src/secret-input.d.ts +42 -0
  126. package/dist/src/secret-input.d.ts.map +1 -0
  127. package/dist/src/send-service.d.ts +46 -0
  128. package/dist/src/send-service.d.ts.map +1 -0
  129. package/dist/src/session-command-service.d.ts +35 -0
  130. package/dist/src/session-command-service.d.ts.map +1 -0
  131. package/dist/src/session-lock.d.ts +11 -0
  132. package/dist/src/session-lock.d.ts.map +1 -0
  133. package/dist/src/session-peer-store.d.ts +21 -0
  134. package/dist/src/session-peer-store.d.ts.map +1 -0
  135. package/dist/src/session-routing.d.ts +14 -0
  136. package/dist/src/session-routing.d.ts.map +1 -0
  137. package/dist/src/session-state.d.ts +13 -0
  138. package/dist/src/session-state.d.ts.map +1 -0
  139. package/dist/src/signature.d.ts +6 -0
  140. package/dist/src/signature.d.ts.map +1 -0
  141. package/dist/src/targeting/agent-name-matcher.d.ts +63 -0
  142. package/dist/src/targeting/agent-name-matcher.d.ts.map +1 -0
  143. package/dist/src/targeting/agent-routing.d.ts +72 -0
  144. package/dist/src/targeting/agent-routing.d.ts.map +1 -0
  145. package/dist/src/targeting/group-members-store.d.ts +3 -0
  146. package/dist/src/targeting/group-members-store.d.ts.map +1 -0
  147. package/dist/src/targeting/target-directory-adapter.d.ts +13 -0
  148. package/dist/src/targeting/target-directory-adapter.d.ts.map +1 -0
  149. package/dist/src/targeting/target-directory-store.d.ts +45 -0
  150. package/dist/src/targeting/target-directory-store.d.ts.map +1 -0
  151. package/dist/src/targeting/target-input.d.ts +3 -0
  152. package/dist/src/targeting/target-input.d.ts.map +1 -0
  153. package/dist/src/types.d.ts +730 -0
  154. package/dist/src/types.d.ts.map +1 -0
  155. package/dist/src/utils.d.ts +54 -0
  156. package/dist/src/utils.d.ts.map +1 -0
  157. package/index.ts +234 -16
  158. package/openclaw.plugin.json +5 -5
  159. package/package.json +26 -5
  160. package/src/device-registration.ts +0 -32
  161. package/src/gateway/channel-gateway.ts +1 -1
  162. package/src/onboarding.ts +3 -7
  163. package/src/secret-input.ts +13 -47
@@ -0,0 +1,10 @@
1
+ import { CHANNEL_INFLIGHT_NAMESPACE_POLICY } from "./gateway/channel-gateway";
2
+ import type { DingTalkChannelPlugin } from "./types";
3
+ export declare const dingtalkPlugin: DingTalkChannelPlugin;
4
+ export { CHANNEL_INFLIGHT_NAMESPACE_POLICY };
5
+ export { getAccessToken } from "./auth";
6
+ export { createAICard, finishAICard, streamAICard } from "./card-service";
7
+ export { detectMediaTypeFromExtension } from "./media-utils";
8
+ export { getLogger } from "./logger-context";
9
+ export { sendBySession, sendMessage, sendProactiveMedia, uploadMedia, } from "./send-service";
10
+ //# sourceMappingURL=channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iCAAiC,EAElC,MAAM,2BAA2B,CAAC;AAWnC,OAAO,KAAK,EAAE,qBAAqB,EAAmB,MAAM,SAAS,CAAC;AAItE,eAAO,MAAM,cAAc,EAAE,qBAyG5B,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,WAAW,GACZ,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { OpenClawConfig } from "openclaw/plugin-sdk/core";
2
+ import type { Logger } from "../types";
3
+ /**
4
+ * Dispatch a native targeted `/stop` command through the OpenClaw SDK,
5
+ * replacing the previous self-built Gateway WebSocket `chat.abort` approach.
6
+ *
7
+ * Uses the same `resolveNativeCommandSessionTargets` + `CommandSource: "native"`
8
+ * model as Telegram / Discord / Slack slash commands, producing:
9
+ * - A dedicated command SessionKey (`agent:<agentId>:dingtalk:card-stop:<userId>`)
10
+ * - A CommandTargetSessionKey pointing at the real conversation session
11
+ *
12
+ * Inside the SDK, `dispatch-from-config` → `tryFastAbortFromMessage` picks up
13
+ * the `/stop` body, resolves the target session via `CommandTargetSessionKey`,
14
+ * and executes `abortEmbeddedPiRun` + `clearSessionQueues`.
15
+ *
16
+ * Accesses SDK functions via `getDingTalkRuntime().channel.reply` — the same
17
+ * pattern used by `inbound-handler.ts` — while reusing the upstream native
18
+ * command session-target helper exported by the plugin SDK.
19
+ */
20
+ export declare function dispatchDingTalkCardStopCommand(params: {
21
+ cfg: OpenClawConfig;
22
+ accountId: string;
23
+ agentId: string;
24
+ targetSessionKey: string;
25
+ clickerUserId: string;
26
+ log?: Logger;
27
+ }): Promise<{
28
+ ok: boolean;
29
+ }>;
30
+ //# sourceMappingURL=card-stop-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-stop-command.d.ts","sourceRoot":"","sources":["../../../src/command/card-stop-command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,+BAA+B,CAAC,MAAM,EAAE;IAC5D,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAgD3B"}
@@ -0,0 +1,40 @@
1
+ import type { SessionPeerSourceKind } from "../session-peer-store";
2
+ import type { DingTalkConfig, HandleDingTalkMessageParams, MessageContent } from "../types";
3
+ type InboundCommandDispatchParams = {
4
+ cfg: HandleDingTalkMessageParams["cfg"];
5
+ accountId: string;
6
+ dingtalkConfig: DingTalkConfig;
7
+ senderId: string;
8
+ isDirect: boolean;
9
+ extractedText: string;
10
+ messageType: MessageContent["messageType"];
11
+ data: {
12
+ conversationId: string;
13
+ senderId?: string;
14
+ senderStaffId?: string;
15
+ };
16
+ accountStorePath: string;
17
+ currentSessionSourceKind: SessionPeerSourceKind;
18
+ currentSessionSourceId: string;
19
+ peerIdOverride?: string;
20
+ sessionPeer: {
21
+ peerId: string;
22
+ };
23
+ sendReply: (text: string) => Promise<void>;
24
+ clearSessionPeerOverride: (params: {
25
+ storePath: string;
26
+ accountId: string;
27
+ sourceKind: SessionPeerSourceKind;
28
+ sourceId: string;
29
+ }) => boolean;
30
+ setSessionPeerOverride: (params: {
31
+ storePath: string;
32
+ accountId: string;
33
+ sourceKind: SessionPeerSourceKind;
34
+ sourceId: string;
35
+ peerId: string;
36
+ }) => void;
37
+ };
38
+ export declare function handleInboundCommandDispatch(params: InboundCommandDispatchParams): Promise<boolean>;
39
+ export {};
40
+ //# sourceMappingURL=inbound-command-dispatch-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-command-dispatch-service.d.ts","sourceRoot":"","sources":["../../../src/command/inbound-command-dispatch-service.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE5F,KAAK,4BAA4B,GAAG;IAClC,GAAG,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,qBAAqB,CAAC;IAChD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,wBAAwB,EAAE,CAAC,MAAM,EAAE;QACjC,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,qBAAqB,CAAC;QAClC,QAAQ,EAAE,MAAM,CAAC;KAClB,KAAK,OAAO,CAAC;IACd,sBAAsB,EAAE,CAAC,MAAM,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,qBAAqB,CAAC;QAClC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,KAAK,IAAI,CAAC;CACZ,CAAC;AAEF,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,OAAO,CAAC,CAiYlB"}
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * DingTalk configuration schema using Zod
4
+ * Mirrors the structure needed for proper control-ui rendering
5
+ */
6
+ export declare const DingTalkConfigSchema: z.ZodTypeAny;
7
+ export type DingTalkConfig = z.infer<typeof DingTalkConfigSchema>;
8
+ //# sourceMappingURL=config-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsLxB;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,UAGnC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,60 @@
1
+ import type { OpenClawConfig } from "openclaw/plugin-sdk/core";
2
+ import type { DingTalkConfig } from "./types";
3
+ export { resolveRelativePath, resolveUserPath } from "./path-utils";
4
+ export type RuntimeDingTalkConfig = Omit<DingTalkConfig, "clientSecret"> & {
5
+ clientSecret: string;
6
+ };
7
+ /**
8
+ * Merge channel-level defaults into an account-specific config.
9
+ * Account-level values take precedence; `accounts` key is excluded to avoid recursion.
10
+ */
11
+ export declare function mergeAccountWithDefaults(channelCfg: DingTalkConfig, accountCfg: DingTalkConfig): DingTalkConfig;
12
+ /**
13
+ * Resolve DingTalk config for an account.
14
+ * Named accounts inherit channel-level defaults with account-level overrides.
15
+ * Falls back to top-level config for single-account setups.
16
+ */
17
+ export declare function getConfig(cfg: OpenClawConfig, accountId?: string): DingTalkConfig;
18
+ export declare function isConfigured(cfg: OpenClawConfig, accountId?: string): boolean;
19
+ export declare function resolveRuntimeConfig(config: DingTalkConfig, log?: {
20
+ warn?: (message: string, data?: unknown) => void;
21
+ }): Promise<RuntimeDingTalkConfig>;
22
+ /**
23
+ * Resolve the robot code used by DingTalk APIs.
24
+ * DingTalk robotCode is always equal to clientId; this helper trims whitespace.
25
+ */
26
+ export declare function resolveRobotCode(config: Pick<DingTalkConfig, "clientId">): string;
27
+ export declare function resolveGroupConfig(cfg: DingTalkConfig, groupId: string): {
28
+ systemPrompt?: string;
29
+ requireMention?: boolean;
30
+ groupAllowFrom?: string[];
31
+ } | undefined;
32
+ export declare function resolveAckReactionSetting(params: {
33
+ cfg: OpenClawConfig;
34
+ accountId?: string | null;
35
+ agentId?: string | null;
36
+ }): string | undefined;
37
+ /**
38
+ * Strip group/user prefixes used by CLI targeting.
39
+ * Returns raw DingTalk target ID and whether caller explicitly requested a user target.
40
+ */
41
+ export declare function stripTargetPrefix(target: string): {
42
+ targetId: string;
43
+ isExplicitUser: boolean;
44
+ };
45
+ /**
46
+ * List all DingTalk account IDs from config
47
+ */
48
+ export declare function listDingTalkAccountIds(cfg: OpenClawConfig): string[];
49
+ /**
50
+ * Resolved DingTalk account with configuration status
51
+ */
52
+ export interface ResolvedDingTalkAccount extends DingTalkConfig {
53
+ accountId: string;
54
+ configured: boolean;
55
+ }
56
+ /**
57
+ * Resolve a specific DingTalk account configuration
58
+ */
59
+ export declare function resolveDingTalkAccount(cfg: OpenClawConfig, accountId?: string | null): ResolvedDingTalkAccount;
60
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM/D,OAAO,KAAK,EAAyB,cAAc,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AA8CpG;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,GACzB,cAAc,CAoBhB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAmBjF;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAG7E;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,GAAG,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GACzD,OAAO,CAAC,qBAAqB,CAAC,CAYhC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG,MAAM,CAEjF;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,GACd;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAO5F;AAyCD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,GAAG,MAAM,GAAG,SAAS,CAqBrB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CAQ/F;AAOD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,EAAE,CAiBpE;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,cAAc,EACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,uBAAuB,CAyEzB"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Connection Manager for DingTalk Stream Client
3
+ *
4
+ * Provides robust connection lifecycle management with:
5
+ * - Exponential backoff with jitter for reconnection attempts
6
+ * - Configurable max attempts and delay parameters
7
+ * - Connection state tracking and event handling
8
+ * - Proper cleanup of timers and resources
9
+ * - Structured logging for all connection events
10
+ */
11
+ import type { DWClient } from "dingtalk-stream";
12
+ import type { ConnectionState, ConnectionManagerConfig, Logger, StreamClientFactory } from "./types";
13
+ /**
14
+ * Thrown when a runtime reconnection cycle exceeds the configured deadline.
15
+ * Identified via instanceof in reconnect() to skip cycle counting.
16
+ */
17
+ export declare class ReconnectDeadlineError extends Error {
18
+ constructor(options?: ErrorOptions);
19
+ }
20
+ /**
21
+ * ConnectionManager handles the robust connection lifecycle for DWClient
22
+ */
23
+ export declare class ConnectionManager {
24
+ private config;
25
+ private log?;
26
+ private accountId;
27
+ private state;
28
+ private attemptCount;
29
+ private reconnectTimer?;
30
+ private stopped;
31
+ private connectedAt?;
32
+ private consecutiveUnhealthyChecks;
33
+ private static readonly HEALTH_CHECK_INTERVAL_MS;
34
+ private static readonly HEALTH_CHECK_GRACE_MS;
35
+ private static readonly HEALTH_CHECK_UNHEALTHY_THRESHOLD;
36
+ private static readonly DEFAULT_MAX_RECONNECT_CYCLES;
37
+ private static readonly MAX_CYCLE_BACKOFF_MS;
38
+ private static readonly MAX_CONSECUTIVE_DEADLINE_TIMEOUTS;
39
+ private static readonly HEARTBEAT_INTERVAL_MS;
40
+ private static readonly HEARTBEAT_MISS_THRESHOLD;
41
+ private runtimeReconnectCycles;
42
+ private reconnectDeadline?;
43
+ private consecutiveDeadlineTimeouts;
44
+ private lastSocketActivityAt?;
45
+ private lastHeartbeatPingAt?;
46
+ private consecutiveHeartbeatMisses;
47
+ private runtimeCounters;
48
+ private healthCheckInterval?;
49
+ private heartbeatInterval?;
50
+ private socketCloseHandler?;
51
+ private socketErrorHandler?;
52
+ private socketMessageHandler?;
53
+ private socketPongHandler?;
54
+ private monitoredSocket?;
55
+ private sleepTimeout?;
56
+ private sleepResolve?;
57
+ private stopPromiseResolvers;
58
+ private client;
59
+ private clientFactory?;
60
+ private pendingOldClient?;
61
+ constructor(client: DWClient, accountId: string, config: ConnectionManagerConfig, log?: Logger, clientFactory?: StreamClientFactory);
62
+ private notifyStateChange;
63
+ /**
64
+ * Resolve all pending waitForStop() callers without performing full stop().
65
+ * Called by stop() and terminal FAILED states where the manager will never
66
+ * reconnect again, so startAccount must be allowed to exit.
67
+ */
68
+ private resolveStopWaiters;
69
+ private logRuntimeCounters;
70
+ private recordSocketActivity;
71
+ private setupHeartbeat;
72
+ private cleanupHeartbeatInterval;
73
+ private clearClientHeartbeatInterval;
74
+ private waitForSocketOpen;
75
+ /**
76
+ * Calculate next reconnection delay with exponential backoff and jitter
77
+ * Formula: delay = min(initialDelay * 2^attempt, maxDelay) * (1 ± jitter)
78
+ * @param attempt Zero-based attempt number (0 for first retry, 1 for second, etc.)
79
+ */
80
+ private calculateNextDelay;
81
+ /**
82
+ * Attempt to connect with retry logic
83
+ */
84
+ private attemptConnection;
85
+ /**
86
+ * Connect with robust retry logic
87
+ */
88
+ connect(): Promise<void>;
89
+ /**
90
+ * Setup runtime reconnection handlers
91
+ * Monitors DWClient connection state for automatic reconnection
92
+ */
93
+ private setupRuntimeReconnection;
94
+ /**
95
+ * Disconnect and release the old client left over from a warm-reconnect swap.
96
+ */
97
+ private cleanupPendingOldClient;
98
+ /**
99
+ * Clean up runtime monitoring resources (intervals and event listeners)
100
+ */
101
+ private cleanupRuntimeMonitoring;
102
+ /**
103
+ * Handle runtime disconnection and trigger reconnection
104
+ */
105
+ private handleRuntimeDisconnection;
106
+ /**
107
+ * Reconnect after runtime disconnection
108
+ */
109
+ private reconnect;
110
+ /**
111
+ * Stop the connection manager and cleanup resources
112
+ */
113
+ stop(): void;
114
+ /**
115
+ * Returns a Promise that resolves when the connection manager is stopped.
116
+ * Useful for keeping a caller alive (e.g. startAccount) until the channel
117
+ * is explicitly stopped via stop() or an abort signal handler that calls stop().
118
+ * Safe to call concurrently; all pending callers are resolved when stop() is called.
119
+ */
120
+ waitForStop(): Promise<void>;
121
+ /**
122
+ * Clear reconnection timer
123
+ */
124
+ private clearReconnectTimer;
125
+ /**
126
+ * Sleep utility for retry delays
127
+ * Returns a promise that resolves after ms or can be cancelled via cancelSleep()
128
+ */
129
+ private sleep;
130
+ /**
131
+ * Cancel any in-flight sleep operation
132
+ * Resolves the pending promise immediately so await unblocks
133
+ */
134
+ private cancelSleep;
135
+ /**
136
+ * Get current connection state
137
+ */
138
+ getState(): ConnectionState;
139
+ /**
140
+ * Check if connection is active
141
+ */
142
+ isConnected(): boolean;
143
+ /**
144
+ * Check if connection manager is stopped
145
+ */
146
+ isStopped(): boolean;
147
+ }
148
+ //# sourceMappingURL=connection-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/connection-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const DEDUP_NAMESPACE_POLICY: "memory-only";
2
+ export declare function isMessageProcessed(dedupKey: string): boolean;
3
+ export declare function markMessageProcessed(dedupKey: string): void;
4
+ //# sourceMappingURL=dedup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../../src/dedup.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,EAAG,aAAsB,CAAC;AAQ7D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAc5D;AAGD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAsC3D"}
@@ -0,0 +1,16 @@
1
+ export declare class RegistrationError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export interface RegistrationResult {
5
+ clientId: string;
6
+ clientSecret: string;
7
+ }
8
+ export interface DeviceRegistrationSession {
9
+ verificationUrl: string;
10
+ waitForResult: (options?: {
11
+ onWaiting?: () => void;
12
+ signal?: AbortSignal;
13
+ }) => Promise<RegistrationResult>;
14
+ }
15
+ export declare function beginDeviceRegistration(): Promise<DeviceRegistrationSession>;
16
+ //# sourceMappingURL=device-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-registration.d.ts","sourceRoot":"","sources":["../../src/device-registration.ts"],"names":[],"mappings":"AAUA,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAwFD,MAAM,WAAW,yBAAyB;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE;QACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QACvB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnC;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAgGlF"}
@@ -0,0 +1,12 @@
1
+ import type { DingTalkConfig, DocInfo } from "./types";
2
+ export declare class DocCreateAppendError extends Error {
3
+ readonly doc: DocInfo;
4
+ constructor(doc: DocInfo, cause?: unknown);
5
+ }
6
+ export declare function createDoc(config: DingTalkConfig, spaceId: string, title: string, content?: string, log?: import("openclaw/plugin-sdk/channel-runtime").ChannelLogSink | undefined, parentId?: string): Promise<DocInfo>;
7
+ export declare function appendToDoc(config: DingTalkConfig, docId: string, content: string, log?: import("openclaw/plugin-sdk/channel-runtime").ChannelLogSink | undefined, index?: number): Promise<{
8
+ success: true;
9
+ }>;
10
+ export declare function searchDocs(config: DingTalkConfig, keyword: string, spaceId?: string, log?: import("openclaw/plugin-sdk/channel-runtime").ChannelLogSink | undefined): Promise<DocInfo[]>;
11
+ export declare function listDocs(config: DingTalkConfig, spaceId: string, parentId?: string, log?: import("openclaw/plugin-sdk/channel-runtime").ChannelLogSink | undefined): Promise<DocInfo[]>;
12
+ //# sourceMappingURL=docs-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-service.d.ts","sourceRoot":"","sources":["../../src/docs-service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAU,MAAM,SAAS,CAAC;AAyC/D,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;gBAEV,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO;CAM1C;AAgCD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,2EAAc,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CA8BlB;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,2EAAc,EACjB,KAAK,SAAK,GACT,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,CAoB5B;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,2EAAc,GAChB,OAAO,CAAC,OAAO,EAAE,CAAC,CAkBpB;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,GAAG,2EAAc,GAChB,OAAO,CAAC,OAAO,EAAE,CAAC,CAcpB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Throttled stream loop for fire-and-forget draft updates.
3
+ *
4
+ * Ported from OpenClaw core (channels/draft-stream-loop.ts) because the module
5
+ * is not exported via the plugin-sdk. Keeps the same interface so that future
6
+ * sync with upstream is straightforward.
7
+ *
8
+ * Key safety properties:
9
+ * - Single-flight: at most one `sendOrEditStreamMessage` is in-flight at any time.
10
+ * - Latest-wins: multiple `update()` calls during in-flight only keep the last text.
11
+ * - Throttle: respects `throttleMs` between consecutive sends.
12
+ * - `flush()` drains all pending + waits for in-flight before returning.
13
+ * - `stop()` clears pending and timers; subsequent `update()` calls are ignored.
14
+ */
15
+ export type DraftStreamLoop = {
16
+ update: (text: string) => void;
17
+ flush: () => Promise<void>;
18
+ stop: () => void;
19
+ resetPending: () => void;
20
+ resetThrottleWindow: () => void;
21
+ waitForInFlight: () => Promise<void>;
22
+ };
23
+ export declare function createDraftStreamLoop(params: {
24
+ throttleMs: number;
25
+ isStopped: () => boolean;
26
+ sendOrEditStreamMessage: (text: string) => Promise<void | boolean>;
27
+ }): DraftStreamLoop;
28
+ //# sourceMappingURL=draft-stream-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-stream-loop.d.ts","sourceRoot":"","sources":["../../src/draft-stream-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,eAAe,GAAG;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,uBAAuB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;CACtE,GAAG,eAAe,CA0FlB"}
@@ -0,0 +1,123 @@
1
+ import { ScopedLearnedRuleRecord, TargetSetRecord } from "./feedback-learning-store";
2
+ import type { DingTalkConfig, MessageContent } from "./types";
3
+ export declare function isLearningEnabled(config: DingTalkConfig | undefined): boolean;
4
+ export declare function isLearningAutoApplyEnabled(config: DingTalkConfig | undefined): boolean;
5
+ export declare function recordOutboundReplyForLearning(params: {
6
+ enabled: boolean;
7
+ storePath?: string;
8
+ accountId: string;
9
+ targetId: string;
10
+ sessionKey: string;
11
+ question: string;
12
+ answer: string;
13
+ processQueryKey?: string;
14
+ mode?: "card" | "markdown";
15
+ }): void;
16
+ export declare function recordExplicitFeedbackLearning(params: {
17
+ enabled: boolean;
18
+ autoApply?: boolean;
19
+ storePath?: string;
20
+ accountId: string;
21
+ targetId: string;
22
+ feedbackType: "feedback_up" | "feedback_down";
23
+ userId?: string;
24
+ processQueryKey?: string;
25
+ noteTtlMs?: number;
26
+ }): void;
27
+ export declare function analyzeImplicitNegativeFeedback(params: {
28
+ enabled: boolean;
29
+ autoApply?: boolean;
30
+ storePath?: string;
31
+ accountId: string;
32
+ targetId: string;
33
+ signalText: string;
34
+ content: MessageContent;
35
+ noteTtlMs?: number;
36
+ }): void;
37
+ export declare function buildLearningContextBlock(params: {
38
+ enabled: boolean;
39
+ storePath?: string;
40
+ accountId: string;
41
+ targetId: string;
42
+ content: MessageContent;
43
+ }): string;
44
+ export declare function applyManualGlobalLearningRule(params: {
45
+ storePath?: string;
46
+ accountId: string;
47
+ instruction: string;
48
+ }): {
49
+ ruleId: string;
50
+ } | null;
51
+ export declare function resolveManualForcedReply(params: {
52
+ storePath?: string;
53
+ accountId: string;
54
+ targetId?: string;
55
+ content: MessageContent;
56
+ }): string | null;
57
+ export declare function applyManualSessionLearningNote(params: {
58
+ storePath?: string;
59
+ accountId: string;
60
+ targetId: string;
61
+ instruction: string;
62
+ noteTtlMs?: number;
63
+ }): boolean;
64
+ export declare function applyManualTargetLearningRule(params: {
65
+ storePath?: string;
66
+ accountId: string;
67
+ targetId: string;
68
+ instruction: string;
69
+ }): {
70
+ ruleId: string;
71
+ } | null;
72
+ export declare function applyManualTargetsLearningRule(params: {
73
+ storePath?: string;
74
+ accountId: string;
75
+ targetIds: string[];
76
+ instruction: string;
77
+ }): Array<{
78
+ targetId: string;
79
+ ruleId: string;
80
+ }>;
81
+ export declare function disableManualRule(params: {
82
+ storePath?: string;
83
+ accountId: string;
84
+ ruleId: string;
85
+ }): {
86
+ existed: boolean;
87
+ scope?: "global" | "target";
88
+ targetId?: string;
89
+ };
90
+ export declare function deleteManualRule(params: {
91
+ storePath?: string;
92
+ accountId: string;
93
+ ruleId: string;
94
+ }): {
95
+ existed: boolean;
96
+ scope?: "global" | "target";
97
+ targetId?: string;
98
+ };
99
+ export declare function createOrUpdateTargetSet(params: {
100
+ storePath?: string;
101
+ accountId: string;
102
+ name: string;
103
+ targetIds: string[];
104
+ }): boolean;
105
+ export declare function listLearningTargetSets(params: {
106
+ storePath?: string;
107
+ accountId: string;
108
+ }): TargetSetRecord[];
109
+ export declare function applyTargetSetLearningRule(params: {
110
+ storePath?: string;
111
+ accountId: string;
112
+ name: string;
113
+ instruction: string;
114
+ }): Array<{
115
+ targetId: string;
116
+ ruleId: string;
117
+ }>;
118
+ export declare function listScopedLearningRules(params: {
119
+ storePath?: string;
120
+ accountId: string;
121
+ }): ScopedLearnedRuleRecord[];
122
+ export declare function normalizeManualTriggerText(input: string | undefined): string;
123
+ //# sourceMappingURL=feedback-learning-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-learning-service.d.ts","sourceRoot":"","sources":["../../src/feedback-learning-service.ts"],"names":[],"mappings":"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"}