clawdbot-dingtalk 0.1.7 → 0.1.9

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 (44) hide show
  1. package/README.md +17 -0
  2. package/clawdbot.plugin.json +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +4 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/channel.d.ts.map +1 -1
  7. package/dist/src/channel.js +30 -8
  8. package/dist/src/channel.js.map +1 -1
  9. package/dist/src/config-schema.d.ts +74 -0
  10. package/dist/src/config-schema.d.ts.map +1 -1
  11. package/dist/src/config-schema.js +24 -0
  12. package/dist/src/config-schema.js.map +1 -1
  13. package/dist/src/dashscope/index.d.ts +8 -0
  14. package/dist/src/dashscope/index.d.ts.map +1 -0
  15. package/dist/src/dashscope/index.js +7 -0
  16. package/dist/src/dashscope/index.js.map +1 -0
  17. package/dist/src/dashscope/proxy.d.ts +10 -0
  18. package/dist/src/dashscope/proxy.d.ts.map +1 -0
  19. package/dist/src/dashscope/proxy.js +142 -0
  20. package/dist/src/dashscope/proxy.js.map +1 -0
  21. package/dist/src/dashscope/service.d.ts +9 -0
  22. package/dist/src/dashscope/service.d.ts.map +1 -0
  23. package/dist/src/dashscope/service.js +129 -0
  24. package/dist/src/dashscope/service.js.map +1 -0
  25. package/dist/src/dashscope/thinking-models.d.ts +15 -0
  26. package/dist/src/dashscope/thinking-models.d.ts.map +1 -0
  27. package/dist/src/dashscope/thinking-models.js +49 -0
  28. package/dist/src/dashscope/thinking-models.js.map +1 -0
  29. package/dist/src/dashscope/types.d.ts +45 -0
  30. package/dist/src/dashscope/types.d.ts.map +1 -0
  31. package/dist/src/dashscope/types.js +5 -0
  32. package/dist/src/dashscope/types.js.map +1 -0
  33. package/dist/src/monitor.d.ts.map +1 -1
  34. package/dist/src/monitor.js +83 -17
  35. package/dist/src/monitor.js.map +1 -1
  36. package/dist/src/util/directive-tags.d.ts +19 -0
  37. package/dist/src/util/directive-tags.d.ts.map +1 -0
  38. package/dist/src/util/directive-tags.js +50 -0
  39. package/dist/src/util/directive-tags.js.map +1 -0
  40. package/dist/src/util/prefix.d.ts +14 -0
  41. package/dist/src/util/prefix.d.ts.map +1 -0
  42. package/dist/src/util/prefix.js +16 -0
  43. package/dist/src/util/prefix.js.map +1 -0
  44. package/package.json +1 -1
package/README.md CHANGED
@@ -12,6 +12,9 @@ npm install -g clawdbot
12
12
  npm install -g clawdbot-dingtalk
13
13
  ```
14
14
 
15
+ > Plugin ID: `dingtalk` (used in `plugins.allow` / `plugins.entries`)
16
+ > NPM package: `clawdbot-dingtalk`
17
+
15
18
  ## Configuration
16
19
 
17
20
  Edit `~/.clawdbot/clawdbot.json`:
@@ -70,6 +73,20 @@ clawdbot gateway
70
73
  | `showToolResult` | boolean | `false` | Show tool results |
71
74
  | `thinking` | string | `"off"` | Thinking mode (off/minimal/low/medium/high) |
72
75
 
76
+ ## Chat Commands
77
+
78
+ The following chat switches are supported in DingTalk:
79
+
80
+ - `/new` - Reset session context
81
+ - `/think [off|minimal|low|medium|high]` - Set thinking level
82
+ - `/model <provider/model>` - Switch model
83
+ - `/models [provider]` - List providers or models under a provider
84
+ - `/verbose on|off|full` - Toggle non-final updates (tool/block)
85
+
86
+ Notes:
87
+ - Commands respect `allowFrom` and `requirePrefix` (in group chats).
88
+ - Inline usage is supported (e.g., "帮我看看 /model openai/gpt-4o").
89
+
73
90
  ### Multi-account Configuration
74
91
 
75
92
  ```json
@@ -1,5 +1,5 @@
1
1
  {
2
- "id": "clawdbot-dingtalk",
2
+ "id": "dingtalk",
3
3
  "channels": [
4
4
  "dingtalk"
5
5
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAM7D,QAAA,MAAM,MAAM;;;;;kBAKI,iBAAiB;CAIhC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAQ7D,QAAA,MAAM,MAAM;;;;;kBAKI,iBAAiB;CAKhC,CAAC;AAEF,eAAe,MAAM,CAAC"}
package/dist/index.js CHANGED
@@ -1,14 +1,17 @@
1
1
  import { emptyPluginConfigSchema } from "clawdbot/plugin-sdk";
2
2
  import { dingtalkPlugin } from "./src/channel.js";
3
+ import { DINGTALK_PLUGIN_ID } from "./src/config-schema.js";
3
4
  import { setDingTalkRuntime } from "./src/runtime.js";
5
+ import { createDashScopeProxyService } from "./src/dashscope/service.js";
4
6
  const plugin = {
5
- id: "dingtalk",
7
+ id: DINGTALK_PLUGIN_ID,
6
8
  name: "DingTalk",
7
9
  description: "DingTalk (钉钉) channel plugin for enterprise messaging",
8
10
  configSchema: emptyPluginConfigSchema(),
9
11
  register(api) {
10
12
  setDingTalkRuntime(api.runtime);
11
13
  api.registerChannel({ plugin: dingtalkPlugin });
14
+ api.registerService(createDashScopeProxyService());
12
15
  },
13
16
  };
14
17
  export default plugin;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,uDAAuD;IACpE,YAAY,EAAE,uBAAuB,EAAE;IACvC,QAAQ,CAAC,GAAsB;QAC7B,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAClD,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,kBAAkB;IACtB,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,uDAAuD;IACpE,YAAY,EAAE,uBAAuB,EAAE;IACvC,QAAQ,CAAC,GAAsB;QAC7B,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QAChD,GAAG,CAAC,eAAe,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACrD,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,uBAAuB,EAK7B,MAAM,eAAe,CAAC;AA2DvB;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,uBAAuB,CAsNjE,CAAC"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,uBAAuB,EAK7B,MAAM,eAAe,CAAC;AA2DvB;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,uBAAuB,CA4OjE,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * DingTalk Channel Plugin for Clawdbot.
3
3
  */
4
4
  import { listDingTalkAccountIds, resolveDingTalkAccount, resolveDefaultDingTalkAccountId, isDingTalkAccountConfigured, } from "./accounts.js";
5
- import { DEFAULT_ACCOUNT_ID } from "./config-schema.js";
5
+ import { DEFAULT_ACCOUNT_ID, DINGTALK_CHANNEL_ID, DINGTALK_NPM_PACKAGE } from "./config-schema.js";
6
6
  import { chunkMarkdownText } from "./send/chunker.js";
7
7
  import { monitorDingTalkProvider } from "./monitor.js";
8
8
  import { probeDingTalk } from "./probe.js";
@@ -36,13 +36,13 @@ function adaptLogger(log) {
36
36
  * Channel metadata.
37
37
  */
38
38
  const meta = {
39
- id: "dingtalk",
39
+ id: DINGTALK_CHANNEL_ID,
40
40
  label: "DingTalk",
41
41
  selectionLabel: "钉钉 (DingTalk)",
42
42
  blurb: "Enterprise messaging platform by Alibaba",
43
43
  docsPath: "/docs/channels/dingtalk",
44
44
  order: 50,
45
- aliases: ["dingding", "钉钉"],
45
+ aliases: ["dingding", "钉钉", DINGTALK_NPM_PACKAGE],
46
46
  systemImage: "dingtalk",
47
47
  };
48
48
  /**
@@ -60,7 +60,7 @@ const capabilities = {
60
60
  * DingTalk channel plugin.
61
61
  */
62
62
  export const dingtalkPlugin = {
63
- id: "dingtalk",
63
+ id: DINGTALK_CHANNEL_ID,
64
64
  meta,
65
65
  capabilities,
66
66
  reload: { configPrefixes: ["channels.dingtalk"] },
@@ -73,9 +73,9 @@ export const dingtalkPlugin = {
73
73
  clientId: { type: "string" },
74
74
  clientSecret: { type: "string" },
75
75
  clientSecretFile: { type: "string" },
76
- replyMode: { type: "string", enum: ["text", "markdown"], default: "markdown" },
76
+ replyMode: { type: "string", enum: ["text", "markdown"], default: "text" },
77
77
  maxChars: { type: "number", default: 1800 },
78
- tableMode: { type: "string", enum: ["off", "list", "html"], default: "list" },
78
+ tableMode: { type: "string", enum: ["off", "code"], default: "code" },
79
79
  responsePrefix: { type: "string" },
80
80
  requirePrefix: { type: "string" },
81
81
  allowFrom: { type: "array", items: { type: "string" } },
@@ -83,6 +83,16 @@ export const dingtalkPlugin = {
83
83
  apiBase: { type: "string" },
84
84
  openPath: { type: "string" },
85
85
  subscriptionsJson: { type: "string" },
86
+ thinkingProxy: {
87
+ type: "object",
88
+ properties: {
89
+ enabled: { type: "boolean", default: false },
90
+ port: { type: "number", default: 18788 },
91
+ bind: { type: "string", default: "127.0.0.1" },
92
+ thinkingBudget: { type: "number", default: 0 },
93
+ thinkingModels: { type: "string" },
94
+ },
95
+ },
86
96
  },
87
97
  },
88
98
  uiHints: {
@@ -92,14 +102,26 @@ export const dingtalkPlugin = {
92
102
  clientSecretFile: { label: "Client Secret 文件", help: "包含 Client Secret 的文件路径(替代直接配置)", advanced: true },
93
103
  replyMode: { label: "回复模式", help: "消息格式:text(纯文本)或 markdown" },
94
104
  maxChars: { label: "最大字符数", help: "单条消息最大字符数(超出将分段发送)" },
95
- tableMode: { label: "表格模式", help: "Markdown 表格处理方式:off(保留)、list(转为列表)、html(转为 HTML)", advanced: true },
96
- responsePrefix: { label: "回复前缀", help: "添加到回复开头的文本(支持 {{model}} 等变量)", advanced: true },
105
+ tableMode: { label: "表格模式", help: "Markdown 表格处理方式:off(保留)、code(转为代码块)", advanced: true },
106
+ responsePrefix: { label: "回复前缀", help: "添加到回复开头的文本(支持 {model}/{provider}/{identity} 变量)", advanced: true },
97
107
  requirePrefix: { label: "触发前缀", help: "群聊中需要以此前缀开头才会响应", advanced: true },
98
108
  allowFrom: { label: "允许发送者", help: "允许发送消息的用户 ID 列表(空表示允许所有)", advanced: true },
99
109
  selfUserId: { label: "机器人用户 ID", help: "机器人自身的用户 ID,用于过滤自己的消息", advanced: true },
100
110
  apiBase: { label: "API 基础 URL", help: "钉钉 API 基础地址(默认:https://api.dingtalk.com)", advanced: true },
101
111
  openPath: { label: "Open Path", help: "Stream 连接路径(默认:/v1.0/gateway/connections/open)", advanced: true },
102
112
  subscriptionsJson: { label: "订阅配置 JSON", help: "自定义订阅配置 JSON(高级用法)", advanced: true },
113
+ thinkingProxy: {
114
+ label: "Thinking 代理",
115
+ help: "为 DashScope 模型自动注入 thinking 参数(需设置 DASHSCOPE_API_KEY 环境变量)",
116
+ advanced: true,
117
+ nested: {
118
+ enabled: { label: "启用", help: "是否启用 thinking 代理服务" },
119
+ port: { label: "端口", help: "代理服务监听端口(默认 18788)" },
120
+ bind: { label: "绑定地址", help: "代理服务绑定地址(默认 127.0.0.1)" },
121
+ thinkingBudget: { label: "思考预算", help: "思考模式的 token 预算(0 表示无限制)" },
122
+ thinkingModels: { label: "支持的模型", help: "支持思考模式的模型列表(逗号分隔,留空使用默认列表)" },
123
+ },
124
+ },
103
125
  },
104
126
  },
105
127
  config: {
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,40 @@ export declare const CoalesceConfigSchema: z.ZodObject<{
18
18
  maxChars?: number;
19
19
  idleMs?: number;
20
20
  }>;
21
+ /**
22
+ * Canonical channel id + plugin id (used for config compatibility).
23
+ */
24
+ export declare const DINGTALK_CHANNEL_ID = "dingtalk";
25
+ export declare const DINGTALK_PLUGIN_ID = "dingtalk";
26
+ export declare const DINGTALK_NPM_PACKAGE = "clawdbot-dingtalk";
27
+ /**
28
+ * Thinking 代理配置 schema(简化版)
29
+ * API Key 从环境变量 DASHSCOPE_API_KEY 读取
30
+ */
31
+ export declare const ThinkingProxyConfigSchema: z.ZodObject<{
32
+ /** 是否启用代理 */
33
+ enabled: z.ZodDefault<z.ZodBoolean>;
34
+ /** 监听端口 */
35
+ port: z.ZodDefault<z.ZodNumber>;
36
+ /** 绑定地址 */
37
+ bind: z.ZodDefault<z.ZodString>;
38
+ /** 思考预算 (0=无限制) */
39
+ thinkingBudget: z.ZodDefault<z.ZodNumber>;
40
+ /** 支持思考的模型列表 (逗号分隔) */
41
+ thinkingModels: z.ZodOptional<z.ZodString>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ enabled?: boolean;
44
+ port?: number;
45
+ bind?: string;
46
+ thinkingBudget?: number;
47
+ thinkingModels?: string;
48
+ }, {
49
+ enabled?: boolean;
50
+ port?: number;
51
+ bind?: string;
52
+ thinkingBudget?: number;
53
+ thinkingModels?: string;
54
+ }>;
21
55
  /**
22
56
  * DingTalk channel configuration schema.
23
57
  * Maps from YAML config under `channels.dingtalk.*`
@@ -70,6 +104,31 @@ export declare const DingTalkConfigSchema: z.ZodObject<{
70
104
  maxChars?: number;
71
105
  idleMs?: number;
72
106
  }>>;
107
+ /** DashScope 代理配置 */
108
+ thinkingProxy: z.ZodOptional<z.ZodObject<{
109
+ /** 是否启用代理 */
110
+ enabled: z.ZodDefault<z.ZodBoolean>;
111
+ /** 监听端口 */
112
+ port: z.ZodDefault<z.ZodNumber>;
113
+ /** 绑定地址 */
114
+ bind: z.ZodDefault<z.ZodString>;
115
+ /** 思考预算 (0=无限制) */
116
+ thinkingBudget: z.ZodDefault<z.ZodNumber>;
117
+ /** 支持思考的模型列表 (逗号分隔) */
118
+ thinkingModels: z.ZodOptional<z.ZodString>;
119
+ }, "strip", z.ZodTypeAny, {
120
+ enabled?: boolean;
121
+ port?: number;
122
+ bind?: string;
123
+ thinkingBudget?: number;
124
+ thinkingModels?: string;
125
+ }, {
126
+ enabled?: boolean;
127
+ port?: number;
128
+ bind?: string;
129
+ thinkingBudget?: number;
130
+ thinkingModels?: string;
131
+ }>>;
73
132
  /** Show tool status messages (🔧 正在执行...) */
74
133
  showToolStatus: z.ZodDefault<z.ZodBoolean>;
75
134
  /** Show tool result messages (✅ ... 完成) */
@@ -185,6 +244,13 @@ export declare const DingTalkConfigSchema: z.ZodObject<{
185
244
  maxChars?: number;
186
245
  idleMs?: number;
187
246
  };
247
+ thinkingProxy?: {
248
+ enabled?: boolean;
249
+ port?: number;
250
+ bind?: string;
251
+ thinkingBudget?: number;
252
+ thinkingModels?: string;
253
+ };
188
254
  showToolStatus?: boolean;
189
255
  showToolResult?: boolean;
190
256
  thinking?: "off" | "minimal" | "low" | "medium" | "high";
@@ -236,6 +302,13 @@ export declare const DingTalkConfigSchema: z.ZodObject<{
236
302
  maxChars?: number;
237
303
  idleMs?: number;
238
304
  };
305
+ thinkingProxy?: {
306
+ enabled?: boolean;
307
+ port?: number;
308
+ bind?: string;
309
+ thinkingBudget?: number;
310
+ thinkingModels?: string;
311
+ };
239
312
  showToolStatus?: boolean;
240
313
  showToolResult?: boolean;
241
314
  thinking?: "off" | "minimal" | "low" | "medium" | "high";
@@ -268,6 +341,7 @@ export declare const DingTalkConfigSchema: z.ZodObject<{
268
341
  }>;
269
342
  export type DingTalkConfig = z.infer<typeof DingTalkConfigSchema>;
270
343
  export type CoalesceConfig = z.infer<typeof CoalesceConfigSchema>;
344
+ export type ThinkingProxyConfig = z.infer<typeof ThinkingProxyConfigSchema>;
271
345
  /**
272
346
  * Default values for coalesce config
273
347
  */
@@ -1 +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;AAExB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB;IAC/B,iCAAiC;;IAGjC,wCAAwC;;IAGxC,4CAA4C;;IAG5C,4CAA4C;;IAG5C,oCAAoC;;IAGpC,4BAA4B;;IAG5B,uBAAuB;;IAGvB,2CAA2C;;IAG3C,mCAAmC;;IAGnC,2CAA2C;;IAG3C,kDAAkD;;IAGlD,8CAA8C;;IAG9C,uEAAuE;;IAGvE,6EAA6E;;IAG7E,yCAAyC;;IAGzC,uCAAuC;;;;;;;;;;;;;;;;;IAGvC,6CAA6C;;IAG7C,2CAA2C;;IAG3C,iCAAiC;;IAGjC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BlC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAK9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,YAAY,CAAC"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,yBAAyB;IACpC,aAAa;;IAEb,WAAW;;IAEX,WAAW;;IAEX,mBAAmB;;IAEnB,uBAAuB;;;;;;;;;;;;;;EAEvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB;IAC/B,iCAAiC;;IAGjC,wCAAwC;;IAGxC,4CAA4C;;IAG5C,4CAA4C;;IAG5C,oCAAoC;;IAGpC,4BAA4B;;IAG5B,uBAAuB;;IAGvB,2CAA2C;;IAG3C,mCAAmC;;IAGnC,2CAA2C;;IAG3C,kDAAkD;;IAGlD,8CAA8C;;IAG9C,uEAAuE;;IAGvE,6EAA6E;;IAG7E,yCAAyC;;IAGzC,uCAAuC;;;;;;;;;;;;;;;;;IAGvC,qBAAqB;;QAjErB,aAAa;;QAEb,WAAW;;QAEX,WAAW;;QAEX,mBAAmB;;QAEnB,uBAAuB;;;;;;;;;;;;;;;IA4DvB,6CAA6C;;IAG7C,2CAA2C;;IAG3C,iCAAiC;;IAGjC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BlC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAK9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,YAAY,CAAC"}
@@ -8,6 +8,28 @@ export const CoalesceConfigSchema = z.object({
8
8
  maxChars: z.number().min(800).default(1200),
9
9
  idleMs: z.number().min(0).default(1000),
10
10
  });
11
+ /**
12
+ * Canonical channel id + plugin id (used for config compatibility).
13
+ */
14
+ export const DINGTALK_CHANNEL_ID = "dingtalk";
15
+ export const DINGTALK_PLUGIN_ID = "dingtalk";
16
+ export const DINGTALK_NPM_PACKAGE = "clawdbot-dingtalk";
17
+ /**
18
+ * Thinking 代理配置 schema(简化版)
19
+ * API Key 从环境变量 DASHSCOPE_API_KEY 读取
20
+ */
21
+ export const ThinkingProxyConfigSchema = z.object({
22
+ /** 是否启用代理 */
23
+ enabled: z.boolean().default(false),
24
+ /** 监听端口 */
25
+ port: z.number().min(1024).max(65535).default(18788),
26
+ /** 绑定地址 */
27
+ bind: z.string().default("127.0.0.1"),
28
+ /** 思考预算 (0=无限制) */
29
+ thinkingBudget: z.number().min(0).default(0),
30
+ /** 支持思考的模型列表 (逗号分隔) */
31
+ thinkingModels: z.string().optional(),
32
+ });
11
33
  /**
12
34
  * DingTalk channel configuration schema.
13
35
  * Maps from YAML config under `channels.dingtalk.*`
@@ -45,6 +67,8 @@ export const DingTalkConfigSchema = z.object({
45
67
  tableMode: z.enum(["code", "off"]).default("code"),
46
68
  /** Message coalescing configuration */
47
69
  coalesce: CoalesceConfigSchema.optional(),
70
+ /** DashScope 代理配置 */
71
+ thinkingProxy: ThinkingProxyConfigSchema.optional(),
48
72
  /** Show tool status messages (🔧 正在执行...) */
49
73
  showToolStatus: z.boolean().default(false),
50
74
  /** Show tool result messages (✅ ... 完成) */
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CACxC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAExD;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,aAAa;IACb,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,WAAW;IACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACpD,WAAW;IACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACrC,mBAAmB;IACnB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,uBAAuB;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,iCAAiC;IACjC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAElC,wCAAwC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE/B,4CAA4C;IAC5C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEnC,4CAA4C;IAC5C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEvC,oCAAoC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE3B,4BAA4B;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC;IAEvD,uBAAuB;IACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC;IAE9D,2CAA2C;IAC3C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAExC,mCAAmC;IACnC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAEvD,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAErD,kDAAkD;IAClD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAE1C,8CAA8C;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjC,uEAAuE;IACvE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEpC,6EAA6E;IAC7E,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAErC,yCAAyC;IACzC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAElD,uCAAuC;IACvC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAEzC,qBAAqB;IACrB,aAAa,EAAE,yBAAyB,CAAC,QAAQ,EAAE;IAEnD,6CAA6C;IAC7C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAE1C,2CAA2C;IAC3C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAE1C,iCAAiC;IACjC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAE5E,kCAAkC;IAClC,QAAQ,EAAE,CAAC;SACR,MAAM,CACL,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACxC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QAClD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC7C,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;QACzC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACtC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACtC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;KACzE,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC;AAMH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * DashScope 代理模块导出
3
+ */
4
+ export { createDashScopeProxyService } from "./service.js";
5
+ export { createDashScopeProxy } from "./proxy.js";
6
+ export { createThinkingChecker, DEFAULT_THINKING_MODELS } from "./thinking-models.js";
7
+ export type { DashScopeProxyConfig, ProxyHandle, ProxyLogger } from "./types.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashscope/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * DashScope 代理模块导出
3
+ */
4
+ export { createDashScopeProxyService } from "./service.js";
5
+ export { createDashScopeProxy } from "./proxy.js";
6
+ export { createThinkingChecker, DEFAULT_THINKING_MODELS } from "./thinking-models.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashscope/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * DashScope 代理服务
3
+ * 为 DashScope API 请求注入 enable_thinking 参数
4
+ */
5
+ import type { DashScopeProxyConfig, ProxyLogger, ProxyHandle } from "./types.js";
6
+ /**
7
+ * 创建 DashScope 代理服务
8
+ */
9
+ export declare function createDashScopeProxy(config: DashScopeProxyConfig, logger: ProxyLogger): Promise<ProxyHandle>;
10
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/dashscope/proxy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGjF;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CAsKtB"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * DashScope 代理服务
3
+ * 为 DashScope API 请求注入 enable_thinking 参数
4
+ */
5
+ import http from "node:http";
6
+ import { createThinkingChecker } from "./thinking-models.js";
7
+ /**
8
+ * 创建 DashScope 代理服务
9
+ */
10
+ export async function createDashScopeProxy(config, logger) {
11
+ const { port, bind, targetUrl, apiKey, thinkingEnabled, thinkingBudget, thinkingModels, } = config;
12
+ if (!apiKey) {
13
+ throw new Error("DashScope API key is required");
14
+ }
15
+ const supportsThinking = createThinkingChecker(thinkingModels);
16
+ const server = http.createServer(async (req, res) => {
17
+ // 只处理 POST 请求到 chat/completions
18
+ if (req.method !== "POST" || !req.url?.includes("/chat/completions")) {
19
+ res.writeHead(404, { "Content-Type": "application/json" });
20
+ res.end(JSON.stringify({ error: "Not found" }));
21
+ return;
22
+ }
23
+ try {
24
+ // 读取请求体
25
+ const chunks = [];
26
+ for await (const chunk of req) {
27
+ chunks.push(chunk);
28
+ }
29
+ const bodyBuffer = Buffer.concat(chunks);
30
+ let body;
31
+ try {
32
+ body = JSON.parse(bodyBuffer.toString("utf-8"));
33
+ }
34
+ catch {
35
+ res.writeHead(400, { "Content-Type": "application/json" });
36
+ res.end(JSON.stringify({ error: "Invalid JSON body" }));
37
+ return;
38
+ }
39
+ const model = body.model || "";
40
+ const isStream = body.stream === true;
41
+ // 检查是否需要注入思考参数
42
+ if (thinkingEnabled && supportsThinking(model)) {
43
+ // 注入 enable_thinking
44
+ body.enable_thinking = true;
45
+ // 如果有预算限制,设置 thinking_budget
46
+ if (thinkingBudget && thinkingBudget > 0) {
47
+ body.thinking_budget = thinkingBudget;
48
+ }
49
+ logger.debug({ model, enable_thinking: true, thinking_budget: thinkingBudget || "unlimited" }, "Injected thinking parameters");
50
+ }
51
+ // 构建转发请求的 headers
52
+ const headers = {
53
+ "Content-Type": "application/json",
54
+ Authorization: `Bearer ${apiKey}`,
55
+ };
56
+ // 复制原始请求中的部分 headers
57
+ if (req.headers["x-request-id"]) {
58
+ headers["X-Request-Id"] = req.headers["x-request-id"];
59
+ }
60
+ const targetFullUrl = `${targetUrl}/chat/completions`;
61
+ logger.info({
62
+ model,
63
+ stream: isStream,
64
+ target: targetFullUrl,
65
+ enable_thinking: body.enable_thinking,
66
+ thinking_budget: body.thinking_budget,
67
+ }, "Proxying request to DashScope");
68
+ // 输出完整请求体用于调试
69
+ logger.debug({ requestBody: JSON.stringify(body).slice(0, 2000) }, "Full request body");
70
+ // 发起转发请求
71
+ const response = await fetch(targetFullUrl, {
72
+ method: "POST",
73
+ headers,
74
+ body: JSON.stringify(body),
75
+ });
76
+ // 复制响应 headers
77
+ const responseHeaders = {};
78
+ for (const [key, value] of response.headers) {
79
+ // 跳过一些不需要转发的 headers
80
+ if (key.toLowerCase() === "transfer-encoding")
81
+ continue;
82
+ if (key.toLowerCase() === "content-encoding")
83
+ continue;
84
+ responseHeaders[key] = value;
85
+ }
86
+ res.writeHead(response.status, responseHeaders);
87
+ if (isStream && response.body) {
88
+ // 流式响应:直接 pipe
89
+ const reader = response.body.getReader();
90
+ try {
91
+ while (true) {
92
+ const { done, value } = await reader.read();
93
+ if (done)
94
+ break;
95
+ res.write(value);
96
+ }
97
+ }
98
+ finally {
99
+ reader.releaseLock();
100
+ res.end();
101
+ }
102
+ }
103
+ else {
104
+ // 非流式响应
105
+ const data = await response.arrayBuffer();
106
+ res.end(Buffer.from(data));
107
+ }
108
+ }
109
+ catch (err) {
110
+ logger.error({ err: { message: err?.message } }, "Proxy error");
111
+ if (!res.headersSent) {
112
+ res.writeHead(502, { "Content-Type": "application/json" });
113
+ res.end(JSON.stringify({
114
+ error: "Proxy error",
115
+ message: err?.message,
116
+ }));
117
+ }
118
+ else {
119
+ res.end();
120
+ }
121
+ }
122
+ });
123
+ return new Promise((resolve, reject) => {
124
+ server.on("error", (err) => {
125
+ logger.error({ err: { message: err?.message } }, "Proxy server error");
126
+ reject(err);
127
+ });
128
+ server.listen(port, bind, () => {
129
+ logger.info({ port, bind, target: targetUrl, thinkingEnabled }, "DashScope proxy started");
130
+ resolve({
131
+ server,
132
+ stop: () => new Promise((res) => {
133
+ server.close(() => {
134
+ logger.info({}, "DashScope proxy stopped");
135
+ res();
136
+ });
137
+ }),
138
+ });
139
+ });
140
+ });
141
+ }
142
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/dashscope/proxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * DashScope 代理插件服务
3
+ */
4
+ import type { ClawdbotPluginService } from "clawdbot/plugin-sdk";
5
+ /**
6
+ * 创建 DashScope 代理服务
7
+ */
8
+ export declare function createDashScopeProxyService(): ClawdbotPluginService;
9
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/dashscope/service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,qBAAqB,CAAC;AAkH7B;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,qBAAqB,CA8DnE"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * DashScope 代理插件服务
3
+ */
4
+ import { createDashScopeProxy } from "./proxy.js";
5
+ /** DashScope API 默认目标地址 */
6
+ const DEFAULT_DASHSCOPE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1";
7
+ /** 可能的 DashScope provider 名称 */
8
+ const DASHSCOPE_PROVIDER_NAMES = ["dashscope", "qwen", "alibaba"];
9
+ /**
10
+ * 从 Clawdbot 配置中解析 Thinking 代理配置
11
+ */
12
+ function resolveThinkingProxyConfig(cfg) {
13
+ const dingtalk = cfg.channels?.dingtalk;
14
+ const proxyConfig = dingtalk?.thinkingProxy;
15
+ if (!proxyConfig?.enabled)
16
+ return null;
17
+ return {
18
+ enabled: true,
19
+ port: proxyConfig.port,
20
+ bind: proxyConfig.bind,
21
+ thinkingBudget: proxyConfig.thinkingBudget,
22
+ thinkingModels: proxyConfig.thinkingModels,
23
+ };
24
+ }
25
+ /**
26
+ * 从 models.providers 配置中查找 DashScope 配置
27
+ */
28
+ function resolveDashScopeModelConfig(cfg) {
29
+ const models = cfg.models;
30
+ const providers = models?.providers;
31
+ if (!providers)
32
+ return null;
33
+ // 先尝试精确匹配 provider 名称
34
+ for (const name of DASHSCOPE_PROVIDER_NAMES) {
35
+ const provider = providers[name];
36
+ if (provider?.apiKey) {
37
+ return {
38
+ providerName: name,
39
+ baseUrl: provider.baseUrl || DEFAULT_DASHSCOPE_URL,
40
+ apiKey: provider.apiKey,
41
+ };
42
+ }
43
+ }
44
+ // 然后尝试通过 baseUrl 匹配
45
+ for (const [name, provider] of Object.entries(providers)) {
46
+ const baseUrl = provider?.baseUrl;
47
+ if (baseUrl?.includes("dashscope.aliyuncs.com") && provider?.apiKey) {
48
+ return {
49
+ providerName: name,
50
+ baseUrl,
51
+ apiKey: provider.apiKey,
52
+ };
53
+ }
54
+ }
55
+ return null;
56
+ }
57
+ /**
58
+ * 适配 Clawdbot PluginLogger 到 ProxyLogger 接口
59
+ */
60
+ function adaptLogger(logger) {
61
+ return {
62
+ info: (obj, msg) => {
63
+ const message = msg ?? (typeof obj === "string" ? obj : JSON.stringify(obj));
64
+ logger.info?.(message);
65
+ },
66
+ debug: (obj, msg) => {
67
+ const message = msg ?? (typeof obj === "string" ? obj : JSON.stringify(obj));
68
+ logger.debug?.(message);
69
+ },
70
+ warn: (obj, msg) => {
71
+ const message = msg ?? (typeof obj === "string" ? obj : JSON.stringify(obj));
72
+ logger.warn?.(message);
73
+ },
74
+ error: (obj, msg) => {
75
+ const message = msg ?? (typeof obj === "string" ? obj : JSON.stringify(obj));
76
+ logger.error?.(message);
77
+ },
78
+ };
79
+ }
80
+ /**
81
+ * 创建 DashScope 代理服务
82
+ */
83
+ export function createDashScopeProxyService() {
84
+ let proxyHandle = null;
85
+ return {
86
+ id: "dingtalk-thinking-proxy",
87
+ async start(ctx) {
88
+ const proxyConfig = resolveThinkingProxyConfig(ctx.config);
89
+ if (!proxyConfig) {
90
+ ctx.logger.debug?.("Thinking proxy not enabled");
91
+ return;
92
+ }
93
+ // 从 models.providers 配置中读取 DashScope 配置
94
+ const dashscopeConfig = resolveDashScopeModelConfig(ctx.config);
95
+ if (!dashscopeConfig) {
96
+ ctx.logger.warn?.("DashScope provider not found in models.providers, thinking proxy disabled. " +
97
+ "Please configure models.providers.dashscope with baseUrl and apiKey.");
98
+ return;
99
+ }
100
+ const logger = adaptLogger(ctx.logger);
101
+ const port = proxyConfig.port ?? 18788;
102
+ const bind = proxyConfig.bind ?? "127.0.0.1";
103
+ try {
104
+ const config = {
105
+ enabled: true,
106
+ port,
107
+ bind,
108
+ targetUrl: dashscopeConfig.baseUrl,
109
+ apiKey: dashscopeConfig.apiKey,
110
+ thinkingEnabled: true,
111
+ thinkingBudget: proxyConfig.thinkingBudget ?? 0,
112
+ thinkingModels: proxyConfig.thinkingModels,
113
+ };
114
+ proxyHandle = await createDashScopeProxy(config, logger);
115
+ ctx.logger.info?.(`Thinking proxy started on ${bind}:${port} (provider: ${dashscopeConfig.providerName})`);
116
+ }
117
+ catch (err) {
118
+ ctx.logger.error?.(`Thinking proxy failed to start: ${err?.message}`);
119
+ }
120
+ },
121
+ async stop() {
122
+ if (proxyHandle) {
123
+ await proxyHandle.stop();
124
+ proxyHandle = null;
125
+ }
126
+ },
127
+ };
128
+ }
129
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/dashscope/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * DashScope 思考模式模型注册表
3
+ * 定义支持 enable_thinking 参数的模型列表
4
+ */
5
+ /**
6
+ * 默认支持思考模式的模型集合
7
+ */
8
+ export declare const DEFAULT_THINKING_MODELS: Set<string>;
9
+ /**
10
+ * 创建思考模式检查器
11
+ * @param configModels - 逗号分隔的模型列表(可选,覆盖默认)
12
+ * @returns 检查函数
13
+ */
14
+ export declare function createThinkingChecker(configModels?: string): (modelId: string) => boolean;
15
+ //# sourceMappingURL=thinking-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-models.d.ts","sourceRoot":"","sources":["../../../src/dashscope/thinking-models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB,aAUlC,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,CAAC,EAAE,MAAM,GACpB,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAuB9B"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * DashScope 思考模式模型注册表
3
+ * 定义支持 enable_thinking 参数的模型列表
4
+ */
5
+ /**
6
+ * 默认支持思考模式的模型集合
7
+ */
8
+ export const DEFAULT_THINKING_MODELS = new Set([
9
+ // Qwen 系列
10
+ "qwen-plus",
11
+ "qwen-plus-latest",
12
+ "qwen-flash",
13
+ // QwQ 系列
14
+ "qwq-plus",
15
+ // 其他支持思考的模型
16
+ "glm-4.7",
17
+ "deepseek-v3.2",
18
+ ]);
19
+ /**
20
+ * 创建思考模式检查器
21
+ * @param configModels - 逗号分隔的模型列表(可选,覆盖默认)
22
+ * @returns 检查函数
23
+ */
24
+ export function createThinkingChecker(configModels) {
25
+ let models = DEFAULT_THINKING_MODELS;
26
+ if (configModels?.trim()) {
27
+ const customModels = configModels
28
+ .split(",")
29
+ .map((s) => s.trim())
30
+ .filter(Boolean);
31
+ if (customModels.length > 0) {
32
+ models = new Set(customModels);
33
+ }
34
+ }
35
+ return function supportsThinking(modelId) {
36
+ if (!modelId)
37
+ return false;
38
+ // 精确匹配
39
+ if (models.has(modelId))
40
+ return true;
41
+ // 前缀匹配(处理带日期后缀的模型如 qwen-plus-2025-01-01)
42
+ for (const m of models) {
43
+ if (modelId.startsWith(`${m}-`))
44
+ return true;
45
+ }
46
+ return false;
47
+ };
48
+ }
49
+ //# sourceMappingURL=thinking-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-models.js","sourceRoot":"","sources":["../../../src/dashscope/thinking-models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IAC7C,UAAU;IACV,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,SAAS;IACT,UAAU;IACV,YAAY;IACZ,SAAS;IACT,eAAe;CAChB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAAqB;IAErB,IAAI,MAAM,GAAG,uBAAuB,CAAC;IAErC,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,YAAY;aAC9B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,gBAAgB,CAAC,OAAe;QAC9C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,OAAO;QACP,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,yCAAyC;QACzC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC/C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * DashScope Proxy 类型定义
3
+ */
4
+ import type { Server } from "node:http";
5
+ /**
6
+ * DashScope 代理配置
7
+ */
8
+ export interface DashScopeProxyConfig {
9
+ /** 是否启用代理 */
10
+ enabled: boolean;
11
+ /** 监听端口 */
12
+ port: number;
13
+ /** 绑定地址 */
14
+ bind: string;
15
+ /** DashScope API 目标地址 */
16
+ targetUrl: string;
17
+ /** DashScope API Key */
18
+ apiKey?: string;
19
+ /** 是否启用思考模式 */
20
+ thinkingEnabled: boolean;
21
+ /** 思考预算 (0=无限制) */
22
+ thinkingBudget: number;
23
+ /** 支持思考的模型列表 (逗号分隔) */
24
+ thinkingModels?: string;
25
+ }
26
+ /**
27
+ * 代理日志接口
28
+ * 适配 Clawdbot 的 PluginLogger 接口
29
+ */
30
+ export interface ProxyLogger {
31
+ info: (obj: unknown, msg?: string) => void;
32
+ debug: (obj: unknown, msg?: string) => void;
33
+ warn: (obj: unknown, msg?: string) => void;
34
+ error: (obj: unknown, msg?: string) => void;
35
+ }
36
+ /**
37
+ * 代理服务句柄
38
+ */
39
+ export interface ProxyHandle {
40
+ /** HTTP 服务器实例 */
41
+ server: Server;
42
+ /** 停止代理服务 */
43
+ stop: () => Promise<void>;
44
+ }
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dashscope/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa;IACb,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * DashScope Proxy 类型定义
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dashscope/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/monitor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,KAAK,EAAkB,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAK1F,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,uBAAuB,CAAC;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAuBD;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAsL7B"}
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/monitor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,KAAK,EAAkB,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAO1F,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,uBAAuB,CAAC;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAiDD;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CA8N7B"}
@@ -4,14 +4,10 @@
4
4
  import { getDingTalkRuntime } from "./runtime.js";
5
5
  import { startDingTalkStreamClient } from "./stream/client.js";
6
6
  import { buildSessionKey, startsWithPrefix } from "./stream/message-parser.js";
7
- import { sendReplyViaSessionWebhook, resolveResponsePrefix } from "./send/reply.js";
7
+ import { sendReplyViaSessionWebhook } from "./send/reply.js";
8
8
  import { convertMarkdownForDingTalk } from "./send/markdown.js";
9
- /**
10
- * Determine if message is a group chat.
11
- */
12
- function isGroupChat(chatType) {
13
- return /group|chat|2|multi/i.test(chatType);
14
- }
9
+ import { stripDirectiveTags, isOnlyDirectiveTags } from "./util/directive-tags.js";
10
+ import { applyResponsePrefix, isGroupChatType, shouldEnforcePrefix } from "./util/prefix.js";
15
11
  /**
16
12
  * Derive provider name from model string.
17
13
  */
@@ -31,6 +27,42 @@ function deriveProvider(model) {
31
27
  return model.split("/")[0];
32
28
  return undefined;
33
29
  }
30
+ const ALLOWED_COMMAND_RE = /(?:^|\s)\/(new|think|thinking|model|models|verbose|v)(?=$|\s|:)/i;
31
+ const VERBOSE_COMMAND_RE = /(?:^|\s)\/(verbose|v)(?=$|\s|:)/i;
32
+ const RESET_COMMAND_RE = /(?:^|\s)\/new(?=$|\s|:)/i;
33
+ function hasAllowedCommandToken(text) {
34
+ if (!text?.trim())
35
+ return false;
36
+ return ALLOWED_COMMAND_RE.test(text);
37
+ }
38
+ function parseVerboseOverride(text) {
39
+ if (!text?.trim())
40
+ return undefined;
41
+ const match = text.match(VERBOSE_COMMAND_RE);
42
+ if (!match || match.index === undefined)
43
+ return undefined;
44
+ let i = match.index + match[0].length;
45
+ while (i < text.length && /\s/.test(text[i]))
46
+ i += 1;
47
+ if (text[i] === ":") {
48
+ i += 1;
49
+ while (i < text.length && /\s/.test(text[i]))
50
+ i += 1;
51
+ }
52
+ const argStart = i;
53
+ while (i < text.length && /[A-Za-z-]/.test(text[i]))
54
+ i += 1;
55
+ const raw = argStart < i ? text.slice(argStart, i).toLowerCase() : "";
56
+ if (!raw)
57
+ return undefined;
58
+ if (["off", "false", "no", "0", "disable", "disabled"].includes(raw))
59
+ return "off";
60
+ if (["full", "all", "everything"].includes(raw))
61
+ return "full";
62
+ if (["on", "true", "yes", "1", "minimal"].includes(raw))
63
+ return "on";
64
+ return undefined;
65
+ }
34
66
  /**
35
67
  * Start monitoring DingTalk for incoming messages.
36
68
  */
@@ -54,6 +86,8 @@ export async function monitorDingTalkProvider(opts) {
54
86
  };
55
87
  // Track response prefix per session (only apply once per conversation)
56
88
  const prefixApplied = new Set();
89
+ // Track per-session verbose overrides for delivering non-final updates
90
+ const verboseOverrides = new Map();
57
91
  const client = await startDingTalkStreamClient({
58
92
  clientId: account.clientId,
59
93
  clientSecret: account.clientSecret,
@@ -78,6 +112,7 @@ export async function monitorDingTalkProvider(opts) {
78
112
  }, { once: true });
79
113
  }
80
114
  async function handleInboundMessage(chat) {
115
+ const isGroup = isGroupChatType(chat.chatType);
81
116
  // Filter: skip self messages
82
117
  if (account.selfUserId && chat.senderId === account.selfUserId) {
83
118
  return;
@@ -90,11 +125,23 @@ export async function monitorDingTalkProvider(opts) {
90
125
  }
91
126
  }
92
127
  // Filter: require prefix (for group chats)
93
- if (account.requirePrefix && !startsWithPrefix(chat.text, account.requirePrefix)) {
128
+ if (shouldEnforcePrefix(account.requirePrefix, chat.chatType) && !startsWithPrefix(chat.text, account.requirePrefix)) {
94
129
  return;
95
130
  }
96
131
  const sessionKey = buildSessionKey(chat);
97
- const isGroup = isGroupChat(chat.chatType);
132
+ const commandAuthorized = hasAllowedCommandToken(chat.text);
133
+ if (RESET_COMMAND_RE.test(chat.text)) {
134
+ verboseOverrides.delete(sessionKey);
135
+ }
136
+ const verboseOverride = parseVerboseOverride(chat.text);
137
+ if (verboseOverride) {
138
+ verboseOverrides.set(sessionKey, verboseOverride);
139
+ }
140
+ const allowNonFinal = verboseOverrides.get(sessionKey) === "off"
141
+ ? false
142
+ : verboseOverrides.has(sessionKey)
143
+ ? true
144
+ : account.showToolStatus || account.showToolResult;
98
145
  log?.info?.({
99
146
  eventType: chat.eventType,
100
147
  senderId: chat.senderId,
@@ -118,6 +165,7 @@ export async function monitorDingTalkProvider(opts) {
118
165
  ChatType: isGroup ? "group" : "direct",
119
166
  SenderName: chat.senderName,
120
167
  SenderId: chat.senderId,
168
+ CommandAuthorized: commandAuthorized,
121
169
  Provider: "dingtalk",
122
170
  Surface: "dingtalk",
123
171
  OriginatingChannel: "dingtalk",
@@ -130,21 +178,39 @@ export async function monitorDingTalkProvider(opts) {
130
178
  const dispatcherOptions = {
131
179
  deliver: async (payload, info) => {
132
180
  log?.info?.({ kind: info.kind, hasText: !!payload.text, textLength: payload.text?.length ?? 0 }, "deliver called");
181
+ if (info.kind !== "final" && !allowNonFinal) {
182
+ log?.debug?.({ kind: info.kind, sessionKey }, "Skipping non-final reply (verbose off)");
183
+ return;
184
+ }
133
185
  const text = payload.text;
134
186
  if (!text?.trim()) {
135
187
  log?.info?.("deliver: empty text, skipping");
136
188
  return;
137
189
  }
190
+ // Check if text is only directive tags (no actual content)
191
+ if (isOnlyDirectiveTags(text)) {
192
+ log?.debug?.({ token: text.slice(0, 30) }, "Filtering directive-only text");
193
+ return;
194
+ }
195
+ // Strip directive tags like [[reply_to_current]], [[audio_as_voice]] etc.
196
+ let processedText = stripDirectiveTags(text);
197
+ if (!processedText) {
198
+ log?.debug?.({ original: text.slice(0, 30) }, "Empty after stripping directives");
199
+ return;
200
+ }
138
201
  // Apply response prefix to first message only
139
- let processedText = text;
140
- if (firstReply && account.responsePrefix && !prefixApplied.has(sessionKey)) {
141
- const prefix = resolveResponsePrefix(account.responsePrefix, {
142
- model: undefined, // Will be filled from agent response
143
- provider: undefined,
202
+ const shouldApplyPrefix = firstReply && account.responsePrefix && !prefixApplied.has(sessionKey);
203
+ if (shouldApplyPrefix) {
204
+ processedText = applyResponsePrefix({
205
+ originalText: text,
206
+ cleanedText: processedText,
207
+ responsePrefix: account.responsePrefix,
208
+ context: {
209
+ model: undefined, // Will be filled from agent response
210
+ provider: undefined,
211
+ },
212
+ applyPrefix: true,
144
213
  });
145
- if (prefix) {
146
- processedText = `${prefix} ${text}`;
147
- }
148
214
  prefixApplied.add(sessionKey);
149
215
  }
150
216
  firstReply = false;
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/monitor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAShE;;GAEG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAyB;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACxE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/D,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACtE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAyB;IAEzB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IAErC,yCAAyC;IACzC,IAAI,iBAAiB,GAAmC,IAAI,CAAC;IAC7D,IAAI,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAG,GAAa,EAAE,OAAO,EAAE,EAAE,4BAA4B,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GACZ,iBAAiB,IAAI;QACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;KAC1E,CAAC;IAEJ,uEAAuE;IACvE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;QAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ;QACR,MAAM,EAAE,GAAG;QACX,aAAa,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YAC5C,IAAI,CAAC;gBACH,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAG,GAAa,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,sBAAsB;IACtB,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,gBAAgB,CAC1B,OAAO,EACP,GAAG,EAAE;YACH,GAAG,EAAE,IAAI,EAAE,CAAC,iDAAiD,CAAC,CAAC;YAC/D,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,oBAAoB,CAAC,IAAoB;QACtD,6BAA6B;QAC7B,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,mCAAmC,CAAC,CAAC;gBAC9E,OAAO;YACT,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACjF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE3C,GAAG,EAAE,IAAI,EAAE,CACT;YACE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU;SACX,EACD,0BAA0B,CAC3B,CAAC;QAEF,qCAAqC;QACrC,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,eAAe,EAAE,IAAI,CAAC,IAAI;YAC1B,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,EAAE,EAAE,IAAI,CAAC,cAAc;YACvB,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;YACtC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,UAAU;YACnB,kBAAkB,EAAE,UAAmB;YACvC,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,iDAAiD;QACjD,qEAAqE;QACrE,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,MAAM,iBAAiB,GAAG;YACxB,OAAO,EAAE,KAAK,EACZ,OAAuF,EACvF,IAAsB,EACtB,EAAE;gBACF,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBAEnH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;oBAClB,GAAG,EAAE,IAAI,EAAE,CAAC,+BAA+B,CAAC,CAAC;oBAC7C,OAAO;gBACT,CAAC;gBAED,8CAA8C;gBAC9C,IAAI,aAAa,GAAG,IAAI,CAAC;gBACzB,IAAI,UAAU,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC3E,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,cAAc,EAAE;wBAC3D,KAAK,EAAE,SAAS,EAAE,qCAAqC;wBACvD,QAAQ,EAAE,SAAS;qBACpB,CAAC,CAAC;oBACH,IAAI,MAAM,EAAE,CAAC;wBACX,aAAa,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;oBACtC,CAAC;oBACD,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAChC,CAAC;gBACD,UAAU,GAAG,KAAK,CAAC;gBAEnB,oCAAoC;gBACpC,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;oBACpE,aAAa,GAAG,0BAA0B,CAAC,aAAa,EAAE;wBACxD,SAAS,EAAE,OAAO,CAAC,SAAS;qBAC7B,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,0BAA0B,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE;oBACnE,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,CAAC,GAAY,EAAE,IAAsB,EAAE,EAAE;gBAChD,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAG,GAAa,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,2BAA2B,CAAC,CAAC;YAC5G,CAAC;SACF,CAAC;QAEF,6BAA6B;QAC7B,IAAI,CAAC;YACH,GAAG,EAAE,IAAI,EAAE,CAAC,kDAAkD,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC;gBAClF,GAAG;gBACH,GAAG,EAAE,MAAM;gBACX,iBAAiB;aAClB,CAAC,CAAC;YACH,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,oDAAoD,CAAC,CAAC;QACtH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAG,GAAa,EAAE,OAAO,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC;YACpF,6BAA6B;YAC7B,MAAM,0BAA0B,CAC9B,IAAI,CAAC,cAAc,EACnB,wBAAwB,EACxB;gBACE,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,GAAG;aACZ,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/monitor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAS7F;;GAEG;AACH,SAAS,cAAc,CAAC,KAAyB;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACxE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/D,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACtE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,SAAS,CAAC;AACnB,CAAC;AAID,MAAM,kBAAkB,GAAG,kEAAkE,CAAC;AAC9F,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;AAC9D,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAEpD,SAAS,sBAAsB,CAAC,IAAa;IAC3C,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAa;IACzC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE1D,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,CAAC,IAAI,CAAC,CAAC;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnF,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAyB;IAEzB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IAErC,yCAAyC;IACzC,IAAI,iBAAiB,GAAmC,IAAI,CAAC;IAC7D,IAAI,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAG,GAAa,EAAE,OAAO,EAAE,EAAE,4BAA4B,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GACZ,iBAAiB,IAAI;QACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;KAC1E,CAAC;IAEJ,uEAAuE;IACvE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,uEAAuE;IACvE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAE5D,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;QAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ;QACR,MAAM,EAAE,GAAG;QACX,aAAa,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YAC5C,IAAI,CAAC;gBACH,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAG,GAAa,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,sBAAsB;IACtB,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,gBAAgB,CAC1B,OAAO,EACP,GAAG,EAAE;YACH,GAAG,EAAE,IAAI,EAAE,CAAC,iDAAiD,CAAC,CAAC;YAC/D,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,oBAAoB,CAAC,IAAoB;QACtD,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/C,6BAA6B;QAC7B,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,mCAAmC,CAAC,CAAC;gBAC9E,OAAO;YACT,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,IAAI,mBAAmB,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACrH,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,eAAe,EAAE,CAAC;YACpB,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,aAAa,GACjB,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK;YACxC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;gBAChC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;QAEzD,GAAG,EAAE,IAAI,EAAE,CACT;YACE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU;SACX,EACD,0BAA0B,CAC3B,CAAC;QAEF,qCAAqC;QACrC,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,eAAe,EAAE,IAAI,CAAC,IAAI;YAC1B,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,EAAE,EAAE,IAAI,CAAC,cAAc;YACvB,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;YACtC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,iBAAiB;YACpC,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,UAAU;YACnB,kBAAkB,EAAE,UAAmB;YACvC,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,iDAAiD;QACjD,qEAAqE;QACrE,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,MAAM,iBAAiB,GAAG;YACxB,OAAO,EAAE,KAAK,EACZ,OAAuF,EACvF,IAAsB,EACtB,EAAE;gBACF,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBAEnH,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC5C,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,wCAAwC,CAAC,CAAC;oBACxF,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;oBAClB,GAAG,EAAE,IAAI,EAAE,CAAC,+BAA+B,CAAC,CAAC;oBAC7C,OAAO;gBACT,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAC;oBAC5E,OAAO;gBACT,CAAC;gBAED,0EAA0E;gBAC1E,IAAI,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,kCAAkC,CAAC,CAAC;oBAClF,OAAO;gBACT,CAAC;gBAED,8CAA8C;gBAC9C,MAAM,iBAAiB,GAAG,UAAU,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACjG,IAAI,iBAAiB,EAAE,CAAC;oBACtB,aAAa,GAAG,mBAAmB,CAAC;wBAClC,YAAY,EAAE,IAAI;wBAClB,WAAW,EAAE,aAAa;wBAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;wBACtC,OAAO,EAAE;4BACP,KAAK,EAAE,SAAS,EAAE,qCAAqC;4BACvD,QAAQ,EAAE,SAAS;yBACpB;wBACD,WAAW,EAAE,IAAI;qBAClB,CAAC,CAAC;oBACH,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAChC,CAAC;gBACD,UAAU,GAAG,KAAK,CAAC;gBAEnB,oCAAoC;gBACpC,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;oBACpE,aAAa,GAAG,0BAA0B,CAAC,aAAa,EAAE;wBACxD,SAAS,EAAE,OAAO,CAAC,SAAS;qBAC7B,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,0BAA0B,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE;oBACnE,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,CAAC,GAAY,EAAE,IAAsB,EAAE,EAAE;gBAChD,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAG,GAAa,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,2BAA2B,CAAC,CAAC;YAC5G,CAAC;SACF,CAAC;QAEF,6BAA6B;QAC7B,IAAI,CAAC;YACH,GAAG,EAAE,IAAI,EAAE,CAAC,kDAAkD,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC;gBAClF,GAAG;gBACH,GAAG,EAAE,MAAM;gBACX,iBAAiB;aAClB,CAAC,CAAC;YACH,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,oDAAoD,CAAC,CAAC;QACtH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAG,GAAa,EAAE,OAAO,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC;YACpF,6BAA6B;YAC7B,MAAM,0BAA0B,CAC9B,IAAI,CAAC,cAAc,EACnB,wBAAwB,EACxB;gBACE,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,GAAG;aACZ,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 清理 Clawdbot 输出中的内联指令标记
3
+ *
4
+ * Clawdbot 使用类似 [[reply_to_current]] 的标记来控制消息行为,
5
+ * 这些标记应该在发送给用户之前被移除。
6
+ */
7
+ /**
8
+ * 清理文本中的指令标记
9
+ * @param text - 原始文本
10
+ * @returns 清理后的文本
11
+ */
12
+ export declare function stripDirectiveTags(text: string): string;
13
+ /**
14
+ * 检查文本是否只包含指令标记(没有实际内容)
15
+ * @param text - 原始文本
16
+ * @returns 是否只有标记
17
+ */
18
+ export declare function isOnlyDirectiveTags(text: string): boolean;
19
+ //# sourceMappingURL=directive-tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-tags.d.ts","sourceRoot":"","sources":["../../../src/util/directive-tags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAevD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIzD"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * 清理 Clawdbot 输出中的内联指令标记
3
+ *
4
+ * Clawdbot 使用类似 [[reply_to_current]] 的标记来控制消息行为,
5
+ * 这些标记应该在发送给用户之前被移除。
6
+ */
7
+ // 匹配 [[audio_as_voice]] 标记
8
+ const AUDIO_TAG_RE = /\[\[\s*audio_as_voice\s*\]\]/gi;
9
+ // 匹配 [[reply_to_current]] 或 [[reply_to:<id>]] 标记
10
+ const REPLY_TAG_RE = /\[\[\s*(?:reply_to_current|reply_to\s*:\s*[^\]\n]+)\s*\]\]/gi;
11
+ // 匹配其他可能的控制标记 [[...]]
12
+ const GENERIC_TAG_RE = /\[\[\s*[a-z_]+(?:\s*:\s*[^\]\n]*)?\s*\]\]/gi;
13
+ /**
14
+ * 规范化空白字符
15
+ */
16
+ function normalizeWhitespace(text) {
17
+ return text
18
+ .replace(/[ \t]+/g, " ")
19
+ .replace(/[ \t]*\n[ \t]*/g, "\n")
20
+ .trim();
21
+ }
22
+ /**
23
+ * 清理文本中的指令标记
24
+ * @param text - 原始文本
25
+ * @returns 清理后的文本
26
+ */
27
+ export function stripDirectiveTags(text) {
28
+ if (!text)
29
+ return "";
30
+ let cleaned = text;
31
+ // 移除 audio 标记
32
+ cleaned = cleaned.replace(AUDIO_TAG_RE, " ");
33
+ // 移除 reply 标记
34
+ cleaned = cleaned.replace(REPLY_TAG_RE, " ");
35
+ // 移除其他 [[...]] 格式的标记(作为兜底)
36
+ cleaned = cleaned.replace(GENERIC_TAG_RE, " ");
37
+ return normalizeWhitespace(cleaned);
38
+ }
39
+ /**
40
+ * 检查文本是否只包含指令标记(没有实际内容)
41
+ * @param text - 原始文本
42
+ * @returns 是否只有标记
43
+ */
44
+ export function isOnlyDirectiveTags(text) {
45
+ if (!text)
46
+ return true;
47
+ const cleaned = stripDirectiveTags(text);
48
+ return !cleaned || cleaned.length === 0;
49
+ }
50
+ //# sourceMappingURL=directive-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-tags.js","sourceRoot":"","sources":["../../../src/util/directive-tags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2BAA2B;AAC3B,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAEtD,iDAAiD;AACjD,MAAM,YAAY,GAAG,8DAA8D,CAAC;AAEpF,sBAAsB;AACtB,MAAM,cAAc,GAAG,6CAA6C,CAAC;AAErE;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI;SACR,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;SAChC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,cAAc;IACd,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAE7C,cAAc;IACd,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAE7C,2BAA2B;IAC3B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAE/C,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare function isGroupChatType(chatType?: string): boolean;
2
+ export declare function shouldEnforcePrefix(requirePrefix: string | undefined, chatType?: string): boolean;
3
+ export declare function applyResponsePrefix(params: {
4
+ originalText: string;
5
+ cleanedText?: string;
6
+ responsePrefix?: string;
7
+ context?: {
8
+ model?: string;
9
+ provider?: string;
10
+ identity?: string;
11
+ };
12
+ applyPrefix?: boolean;
13
+ }): string;
14
+ //# sourceMappingURL=prefix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix.d.ts","sourceRoot":"","sources":["../../../src/util/prefix.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAET;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,MAAM,CAcT"}
@@ -0,0 +1,16 @@
1
+ import { resolveResponsePrefix } from "../send/reply.js";
2
+ export function isGroupChatType(chatType) {
3
+ return /group|chat|2|multi/i.test(chatType ?? "");
4
+ }
5
+ export function shouldEnforcePrefix(requirePrefix, chatType) {
6
+ return Boolean(requirePrefix) && isGroupChatType(chatType);
7
+ }
8
+ export function applyResponsePrefix(params) {
9
+ const { originalText, cleanedText, responsePrefix, context, applyPrefix, } = params;
10
+ const baseText = cleanedText?.trim() ? cleanedText : originalText;
11
+ if (!applyPrefix || !responsePrefix)
12
+ return baseText;
13
+ const prefix = resolveResponsePrefix(responsePrefix, context ?? {});
14
+ return prefix ? `${prefix} ${baseText}` : baseText;
15
+ }
16
+ //# sourceMappingURL=prefix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix.js","sourceRoot":"","sources":["../../../src/util/prefix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,aAAiC,EACjC,QAAiB;IAEjB,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAMnC;IACC,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,OAAO,EACP,WAAW,GACZ,GAAG,MAAM,CAAC;IACX,MAAM,QAAQ,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAElE,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc;QAAE,OAAO,QAAQ,CAAC;IAErD,MAAM,MAAM,GAAG,qBAAqB,CAAC,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawdbot-dingtalk",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "DingTalk (钉钉) channel plugin for Clawdbot - enables AI agent messaging via DingTalk Stream API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",