@zhin.js/agent 0.1.25 → 0.1.26

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 (307) hide show
  1. package/lib/agent-prompt/registry.js +1 -1
  2. package/lib/agent-prompt/registry.js.map +1 -1
  3. package/lib/ai-event-bus.d.ts +19 -0
  4. package/lib/ai-event-bus.d.ts.map +1 -0
  5. package/lib/ai-event-bus.js +75 -0
  6. package/lib/ai-event-bus.js.map +1 -0
  7. package/lib/ai-event-subscriber.d.ts +38 -0
  8. package/lib/ai-event-subscriber.d.ts.map +1 -0
  9. package/lib/ai-event-subscriber.js +61 -0
  10. package/lib/ai-event-subscriber.js.map +1 -0
  11. package/lib/builtin/ask-user-tool.d.ts +2 -0
  12. package/lib/builtin/ask-user-tool.d.ts.map +1 -1
  13. package/lib/builtin/ask-user-tool.js +2 -0
  14. package/lib/builtin/ask-user-tool.js.map +1 -1
  15. package/lib/builtin/bash-tool.d.ts +7 -3
  16. package/lib/builtin/bash-tool.d.ts.map +1 -1
  17. package/lib/builtin/bash-tool.js +51 -9
  18. package/lib/builtin/bash-tool.js.map +1 -1
  19. package/lib/builtin/bing-search-html.d.ts.map +1 -1
  20. package/lib/builtin/bing-search-html.js +14 -7
  21. package/lib/builtin/bing-search-html.js.map +1 -1
  22. package/lib/builtin/builtin-base-tool.d.ts +2 -0
  23. package/lib/builtin/builtin-base-tool.d.ts.map +1 -1
  24. package/lib/builtin/builtin-base-tool.js +5 -0
  25. package/lib/builtin/builtin-base-tool.js.map +1 -1
  26. package/lib/builtin/edit-file-tool.d.ts +1 -1
  27. package/lib/builtin/edit-file-tool.d.ts.map +1 -1
  28. package/lib/builtin/edit-file-tool.js +33 -1
  29. package/lib/builtin/edit-file-tool.js.map +1 -1
  30. package/lib/builtin/file-edit-quote-utils.d.ts +1 -3
  31. package/lib/builtin/file-edit-quote-utils.d.ts.map +1 -1
  32. package/lib/builtin/file-edit-quote-utils.js +1 -3
  33. package/lib/builtin/file-edit-quote-utils.js.map +1 -1
  34. package/lib/builtin/glob-tool.d.ts +1 -1
  35. package/lib/builtin/glob-tool.d.ts.map +1 -1
  36. package/lib/builtin/glob-tool.js +15 -3
  37. package/lib/builtin/glob-tool.js.map +1 -1
  38. package/lib/builtin/grep-tool.d.ts +1 -1
  39. package/lib/builtin/grep-tool.d.ts.map +1 -1
  40. package/lib/builtin/grep-tool.js +16 -3
  41. package/lib/builtin/grep-tool.js.map +1 -1
  42. package/lib/builtin/list-dir-tool.d.ts +1 -1
  43. package/lib/builtin/list-dir-tool.d.ts.map +1 -1
  44. package/lib/builtin/list-dir-tool.js +14 -3
  45. package/lib/builtin/list-dir-tool.js.map +1 -1
  46. package/lib/builtin/read-file-tool.d.ts +1 -1
  47. package/lib/builtin/read-file-tool.d.ts.map +1 -1
  48. package/lib/builtin/read-file-tool.js +24 -3
  49. package/lib/builtin/read-file-tool.js.map +1 -1
  50. package/lib/builtin/run-deferred-task-tool.d.ts +3 -0
  51. package/lib/builtin/run-deferred-task-tool.d.ts.map +1 -1
  52. package/lib/builtin/run-deferred-task-tool.js +2 -0
  53. package/lib/builtin/run-deferred-task-tool.js.map +1 -1
  54. package/lib/builtin/spawn-task-tool.d.ts.map +1 -1
  55. package/lib/builtin/spawn-task-tool.js +2 -0
  56. package/lib/builtin/spawn-task-tool.js.map +1 -1
  57. package/lib/builtin/web-fetch-tool.d.ts +2 -2
  58. package/lib/builtin/web-fetch-tool.d.ts.map +1 -1
  59. package/lib/builtin/web-fetch-tool.js +12 -18
  60. package/lib/builtin/web-fetch-tool.js.map +1 -1
  61. package/lib/builtin/write-file-tool.d.ts +1 -1
  62. package/lib/builtin/write-file-tool.d.ts.map +1 -1
  63. package/lib/builtin/write-file-tool.js +33 -1
  64. package/lib/builtin/write-file-tool.js.map +1 -1
  65. package/lib/common-adapter-tools.d.ts +8 -41
  66. package/lib/common-adapter-tools.d.ts.map +1 -1
  67. package/lib/common-adapter-tools.js +23 -182
  68. package/lib/common-adapter-tools.js.map +1 -1
  69. package/lib/deferred-worker-runner.d.ts +13 -2
  70. package/lib/deferred-worker-runner.d.ts.map +1 -1
  71. package/lib/deferred-worker-runner.js +91 -13
  72. package/lib/deferred-worker-runner.js.map +1 -1
  73. package/lib/discovery/agents.js +1 -1
  74. package/lib/discovery/agents.js.map +1 -1
  75. package/lib/discovery/skills.js +1 -1
  76. package/lib/discovery/skills.js.map +1 -1
  77. package/lib/discovery/tools.d.ts +1 -1
  78. package/lib/discovery/tools.d.ts.map +1 -1
  79. package/lib/discovery/tools.js +17 -4
  80. package/lib/discovery/tools.js.map +1 -1
  81. package/lib/discovery/utils.js +1 -1
  82. package/lib/discovery/utils.js.map +1 -1
  83. package/lib/hooks.d.ts.map +1 -1
  84. package/lib/hooks.js +2 -0
  85. package/lib/hooks.js.map +1 -1
  86. package/lib/index.d.ts +9 -1
  87. package/lib/index.d.ts.map +1 -1
  88. package/lib/index.js +6 -0
  89. package/lib/index.js.map +1 -1
  90. package/lib/init/message-media.d.ts +3 -1
  91. package/lib/init/message-media.d.ts.map +1 -1
  92. package/lib/init/message-media.js +20 -0
  93. package/lib/init/message-media.js.map +1 -1
  94. package/lib/init/register-ai-service.js.map +1 -1
  95. package/lib/init/register-ai-trigger.d.ts.map +1 -1
  96. package/lib/init/register-ai-trigger.js +71 -10
  97. package/lib/init/register-ai-trigger.js.map +1 -1
  98. package/lib/init/register-builtin-tools.js +7 -7
  99. package/lib/init/register-builtin-tools.js.map +1 -1
  100. package/lib/init/register-typing-indicator.d.ts +9 -0
  101. package/lib/init/register-typing-indicator.d.ts.map +1 -0
  102. package/lib/init/register-typing-indicator.js +206 -0
  103. package/lib/init/register-typing-indicator.js.map +1 -0
  104. package/lib/init.d.ts.map +1 -1
  105. package/lib/init.js +2 -0
  106. package/lib/init.js.map +1 -1
  107. package/lib/mcp-client/connection.d.ts +2 -0
  108. package/lib/mcp-client/connection.d.ts.map +1 -1
  109. package/lib/mcp-client/connection.js +7 -0
  110. package/lib/mcp-client/connection.js.map +1 -1
  111. package/lib/mcp-client/index.d.ts +2 -0
  112. package/lib/mcp-client/index.d.ts.map +1 -1
  113. package/lib/mcp-client/index.js +19 -2
  114. package/lib/mcp-client/index.js.map +1 -1
  115. package/lib/monitoring/index.d.ts +79 -0
  116. package/lib/monitoring/index.d.ts.map +1 -0
  117. package/lib/monitoring/index.js +197 -0
  118. package/lib/monitoring/index.js.map +1 -0
  119. package/lib/monitoring/metrics.d.ts +240 -0
  120. package/lib/monitoring/metrics.d.ts.map +1 -0
  121. package/lib/monitoring/metrics.js +483 -0
  122. package/lib/monitoring/metrics.js.map +1 -0
  123. package/lib/orchestrator/agent-dispatcher.d.ts +170 -0
  124. package/lib/orchestrator/agent-dispatcher.d.ts.map +1 -0
  125. package/lib/orchestrator/agent-dispatcher.js +379 -0
  126. package/lib/orchestrator/agent-dispatcher.js.map +1 -0
  127. package/lib/orchestrator/hook-registry.d.ts.map +1 -1
  128. package/lib/orchestrator/hook-registry.js +2 -0
  129. package/lib/orchestrator/hook-registry.js.map +1 -1
  130. package/lib/orchestrator/index.d.ts +2 -0
  131. package/lib/orchestrator/index.d.ts.map +1 -1
  132. package/lib/orchestrator/index.js +2 -0
  133. package/lib/orchestrator/index.js.map +1 -1
  134. package/lib/orchestrator/mcp-lifecycle.d.ts +1 -1
  135. package/lib/orchestrator/mcp-lifecycle.d.ts.map +1 -1
  136. package/lib/orchestrator/mcp-lifecycle.js +2 -2
  137. package/lib/orchestrator/mcp-lifecycle.js.map +1 -1
  138. package/lib/orchestrator/mcp-registry.d.ts +8 -1
  139. package/lib/orchestrator/mcp-registry.d.ts.map +1 -1
  140. package/lib/orchestrator/mcp-registry.js +28 -5
  141. package/lib/orchestrator/mcp-registry.js.map +1 -1
  142. package/lib/orchestrator/task-queue.d.ts +147 -0
  143. package/lib/orchestrator/task-queue.d.ts.map +1 -0
  144. package/lib/orchestrator/task-queue.js +337 -0
  145. package/lib/orchestrator/task-queue.js.map +1 -0
  146. package/lib/orchestrator/tool-selection.d.ts.map +1 -1
  147. package/lib/orchestrator/tool-selection.js +3 -0
  148. package/lib/orchestrator/tool-selection.js.map +1 -1
  149. package/lib/orchestrator/types.d.ts +8 -0
  150. package/lib/orchestrator/types.d.ts.map +1 -1
  151. package/lib/plugin-ai-hook-bus.d.ts +4 -0
  152. package/lib/plugin-ai-hook-bus.d.ts.map +1 -0
  153. package/lib/plugin-ai-hook-bus.js +24 -0
  154. package/lib/plugin-ai-hook-bus.js.map +1 -0
  155. package/lib/security/anomaly-detection.d.ts +119 -0
  156. package/lib/security/anomaly-detection.d.ts.map +1 -0
  157. package/lib/security/anomaly-detection.js +305 -0
  158. package/lib/security/anomaly-detection.js.map +1 -0
  159. package/lib/security/audit-logger.d.ts +158 -0
  160. package/lib/security/audit-logger.d.ts.map +1 -0
  161. package/lib/security/audit-logger.js +379 -0
  162. package/lib/security/audit-logger.js.map +1 -0
  163. package/lib/security/bash-tool-context.d.ts +3 -3
  164. package/lib/security/bash-tool-context.d.ts.map +1 -1
  165. package/lib/security/budget-limiter.d.ts +156 -0
  166. package/lib/security/budget-limiter.d.ts.map +1 -0
  167. package/lib/security/budget-limiter.js +363 -0
  168. package/lib/security/budget-limiter.js.map +1 -0
  169. package/lib/security/dangerous-tool-policy.d.ts +17 -0
  170. package/lib/security/dangerous-tool-policy.d.ts.map +1 -0
  171. package/lib/security/dangerous-tool-policy.js +137 -0
  172. package/lib/security/dangerous-tool-policy.js.map +1 -0
  173. package/lib/security/exec-policy.d.ts +21 -12
  174. package/lib/security/exec-policy.d.ts.map +1 -1
  175. package/lib/security/exec-policy.js +198 -25
  176. package/lib/security/exec-policy.js.map +1 -1
  177. package/lib/security/file-policy.d.ts +0 -1
  178. package/lib/security/file-policy.d.ts.map +1 -1
  179. package/lib/security/file-policy.js +112 -14
  180. package/lib/security/file-policy.js.map +1 -1
  181. package/lib/security/file-role-policy.d.ts +119 -0
  182. package/lib/security/file-role-policy.d.ts.map +1 -0
  183. package/lib/security/file-role-policy.js +268 -0
  184. package/lib/security/file-role-policy.js.map +1 -0
  185. package/lib/security/index.d.ts +59 -0
  186. package/lib/security/index.d.ts.map +1 -1
  187. package/lib/security/index.js +68 -0
  188. package/lib/security/index.js.map +1 -1
  189. package/lib/security/network-policy.d.ts +94 -0
  190. package/lib/security/network-policy.d.ts.map +1 -0
  191. package/lib/security/network-policy.js +291 -0
  192. package/lib/security/network-policy.js.map +1 -0
  193. package/lib/security/owner-approve-always-store.d.ts +2 -0
  194. package/lib/security/owner-approve-always-store.d.ts.map +1 -1
  195. package/lib/security/owner-approve-always-store.js +37 -0
  196. package/lib/security/owner-approve-always-store.js.map +1 -1
  197. package/lib/security/sandbox-enhanced.d.ts +170 -0
  198. package/lib/security/sandbox-enhanced.d.ts.map +1 -0
  199. package/lib/security/sandbox-enhanced.js +630 -0
  200. package/lib/security/sandbox-enhanced.js.map +1 -0
  201. package/lib/security/sandbox.d.ts +104 -0
  202. package/lib/security/sandbox.d.ts.map +1 -0
  203. package/lib/security/sandbox.js +373 -0
  204. package/lib/security/sandbox.js.map +1 -0
  205. package/lib/security/security-config.example.d.ts +33 -0
  206. package/lib/security/security-config.example.d.ts.map +1 -0
  207. package/lib/security/security-config.example.js +166 -0
  208. package/lib/security/security-config.example.js.map +1 -0
  209. package/lib/subagent-goal-notify.d.ts +13 -0
  210. package/lib/subagent-goal-notify.d.ts.map +1 -0
  211. package/lib/subagent-goal-notify.js +32 -0
  212. package/lib/subagent-goal-notify.js.map +1 -0
  213. package/lib/subagent.d.ts +24 -0
  214. package/lib/subagent.d.ts.map +1 -1
  215. package/lib/subagent.js +98 -16
  216. package/lib/subagent.js.map +1 -1
  217. package/lib/typing-indicator/adapter-integration.d.ts +140 -0
  218. package/lib/typing-indicator/adapter-integration.d.ts.map +1 -0
  219. package/lib/typing-indicator/adapter-integration.js +473 -0
  220. package/lib/typing-indicator/adapter-integration.js.map +1 -0
  221. package/lib/typing-indicator/index.d.ts +170 -0
  222. package/lib/typing-indicator/index.d.ts.map +1 -0
  223. package/lib/typing-indicator/index.js +311 -0
  224. package/lib/typing-indicator/index.js.map +1 -0
  225. package/lib/typing-indicator/integration.d.ts +91 -0
  226. package/lib/typing-indicator/integration.d.ts.map +1 -0
  227. package/lib/typing-indicator/integration.js +219 -0
  228. package/lib/typing-indicator/integration.js.map +1 -0
  229. package/lib/zhin-agent/config.d.ts +20 -2
  230. package/lib/zhin-agent/config.d.ts.map +1 -1
  231. package/lib/zhin-agent/config.js +27 -9
  232. package/lib/zhin-agent/config.js.map +1 -1
  233. package/lib/zhin-agent/event-emitter.d.ts +11 -0
  234. package/lib/zhin-agent/event-emitter.d.ts.map +1 -0
  235. package/lib/zhin-agent/event-emitter.js +43 -0
  236. package/lib/zhin-agent/event-emitter.js.map +1 -0
  237. package/lib/zhin-agent/index.d.ts +9 -31
  238. package/lib/zhin-agent/index.d.ts.map +1 -1
  239. package/lib/zhin-agent/index.js +70 -672
  240. package/lib/zhin-agent/index.js.map +1 -1
  241. package/lib/zhin-agent/llm-runner.d.ts +16 -0
  242. package/lib/zhin-agent/llm-runner.d.ts.map +1 -0
  243. package/lib/zhin-agent/llm-runner.js +85 -0
  244. package/lib/zhin-agent/llm-runner.js.map +1 -0
  245. package/lib/zhin-agent/model-resolver.d.ts +9 -0
  246. package/lib/zhin-agent/model-resolver.d.ts.map +1 -0
  247. package/lib/zhin-agent/model-resolver.js +25 -0
  248. package/lib/zhin-agent/model-resolver.js.map +1 -0
  249. package/lib/zhin-agent/phase-trace.d.ts +12 -0
  250. package/lib/zhin-agent/phase-trace.d.ts.map +1 -0
  251. package/lib/zhin-agent/phase-trace.js +24 -0
  252. package/lib/zhin-agent/phase-trace.js.map +1 -0
  253. package/lib/zhin-agent/prompt-assembly.d.ts +22 -0
  254. package/lib/zhin-agent/prompt-assembly.d.ts.map +1 -0
  255. package/lib/zhin-agent/prompt-assembly.js +66 -0
  256. package/lib/zhin-agent/prompt-assembly.js.map +1 -0
  257. package/lib/zhin-agent/prompt-builder.d.ts +200 -0
  258. package/lib/zhin-agent/prompt-builder.d.ts.map +1 -0
  259. package/lib/zhin-agent/prompt-builder.js +574 -0
  260. package/lib/zhin-agent/prompt-builder.js.map +1 -0
  261. package/lib/zhin-agent/prompt-templates.d.ts +160 -0
  262. package/lib/zhin-agent/prompt-templates.d.ts.map +1 -0
  263. package/lib/zhin-agent/prompt-templates.js +436 -0
  264. package/lib/zhin-agent/prompt-templates.js.map +1 -0
  265. package/lib/zhin-agent/prompt.d.ts +15 -0
  266. package/lib/zhin-agent/prompt.d.ts.map +1 -1
  267. package/lib/zhin-agent/prompt.js +149 -4
  268. package/lib/zhin-agent/prompt.js.map +1 -1
  269. package/lib/zhin-agent/session-io.d.ts +10 -0
  270. package/lib/zhin-agent/session-io.d.ts.map +1 -0
  271. package/lib/zhin-agent/session-io.js +14 -0
  272. package/lib/zhin-agent/session-io.js.map +1 -0
  273. package/lib/zhin-agent/task-continuation.d.ts +144 -0
  274. package/lib/zhin-agent/task-continuation.d.ts.map +1 -0
  275. package/lib/zhin-agent/task-continuation.js +346 -0
  276. package/lib/zhin-agent/task-continuation.js.map +1 -0
  277. package/lib/zhin-agent/text-sanitize.d.ts +2 -5
  278. package/lib/zhin-agent/text-sanitize.d.ts.map +1 -1
  279. package/lib/zhin-agent/text-sanitize.js +2 -25
  280. package/lib/zhin-agent/text-sanitize.js.map +1 -1
  281. package/lib/zhin-agent/tool-calls-user-format.d.ts.map +1 -1
  282. package/lib/zhin-agent/tool-calls-user-format.js +12 -3
  283. package/lib/zhin-agent/tool-calls-user-format.js.map +1 -1
  284. package/lib/zhin-agent/tool-orchestration.d.ts +9 -0
  285. package/lib/zhin-agent/tool-orchestration.d.ts.map +1 -0
  286. package/lib/zhin-agent/tool-orchestration.js +68 -0
  287. package/lib/zhin-agent/tool-orchestration.js.map +1 -0
  288. package/lib/zhin-agent/tool-search-orchestrator.d.ts.map +1 -1
  289. package/lib/zhin-agent/tool-search-orchestrator.js +5 -2
  290. package/lib/zhin-agent/tool-search-orchestrator.js.map +1 -1
  291. package/lib/zhin-agent/turn-pipeline.d.ts +5 -0
  292. package/lib/zhin-agent/turn-pipeline.d.ts.map +1 -0
  293. package/lib/zhin-agent/turn-pipeline.js +541 -0
  294. package/lib/zhin-agent/turn-pipeline.js.map +1 -0
  295. package/lib/zhin-agent/turn-tracker.d.ts +17 -0
  296. package/lib/zhin-agent/turn-tracker.d.ts.map +1 -0
  297. package/lib/zhin-agent/turn-tracker.js +54 -0
  298. package/lib/zhin-agent/turn-tracker.js.map +1 -0
  299. package/lib/zhin-agent/web-search-locale-attach.d.ts +4 -0
  300. package/lib/zhin-agent/web-search-locale-attach.d.ts.map +1 -0
  301. package/lib/zhin-agent/web-search-locale-attach.js +19 -0
  302. package/lib/zhin-agent/web-search-locale-attach.js.map +1 -0
  303. package/lib/zhin-agent/zhin-agent-private.d.ts +66 -0
  304. package/lib/zhin-agent/zhin-agent-private.d.ts.map +1 -0
  305. package/lib/zhin-agent/zhin-agent-private.js +4 -0
  306. package/lib/zhin-agent/zhin-agent-private.js.map +1 -0
  307. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-integration.d.ts","sourceRoot":"","sources":["../../src/typing-indicator/adapter-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,473 @@
1
+ /**
2
+ * 通用适配器 Typing Indicator 集成模块
3
+ *
4
+ * 为所有适配器提供统一的 Typing Indicator 集成接口,
5
+ * 支持自动初始化和配置管理。
6
+ */
7
+ import { getPlugin } from '@zhin.js/core';
8
+ import { TypingIndicatorManager, ReactionTypingIndicatorAdapter, GenericTypingIndicatorAdapter, } from './index.js';
9
+ // ── 预定义平台特性 ────────────────────────────────────────────────────
10
+ export const PLATFORM_FEATURES = {
11
+ icqq: {
12
+ platform: 'icqq',
13
+ supportsReaction: true,
14
+ supportsEdit: false,
15
+ supportsDelete: true,
16
+ supportsTyping: false,
17
+ defaultType: 'reaction',
18
+ },
19
+ telegram: {
20
+ platform: 'telegram',
21
+ supportsReaction: true,
22
+ supportsEdit: true,
23
+ supportsDelete: true,
24
+ supportsTyping: true,
25
+ defaultType: 'typing',
26
+ },
27
+ discord: {
28
+ platform: 'discord',
29
+ supportsReaction: true,
30
+ supportsEdit: true,
31
+ supportsDelete: true,
32
+ supportsTyping: true,
33
+ defaultType: 'typing',
34
+ },
35
+ kook: {
36
+ platform: 'kook',
37
+ supportsReaction: false,
38
+ supportsEdit: true,
39
+ supportsDelete: true,
40
+ supportsTyping: true,
41
+ defaultType: 'typing',
42
+ },
43
+ slack: {
44
+ platform: 'slack',
45
+ supportsReaction: false,
46
+ supportsEdit: true,
47
+ supportsDelete: true,
48
+ supportsTyping: true,
49
+ defaultType: 'typing',
50
+ },
51
+ lark: {
52
+ platform: 'lark',
53
+ supportsReaction: false,
54
+ supportsEdit: true,
55
+ supportsDelete: true,
56
+ supportsTyping: true,
57
+ defaultType: 'typing',
58
+ },
59
+ dingtalk: {
60
+ platform: 'dingtalk',
61
+ supportsReaction: false,
62
+ supportsEdit: false,
63
+ supportsDelete: false,
64
+ supportsTyping: false,
65
+ defaultType: 'message',
66
+ },
67
+ qq: {
68
+ platform: 'qq',
69
+ supportsReaction: false,
70
+ supportsEdit: false,
71
+ supportsDelete: true,
72
+ supportsTyping: false,
73
+ defaultType: 'message',
74
+ },
75
+ onebot11: {
76
+ platform: 'onebot11',
77
+ supportsReaction: false,
78
+ supportsEdit: false,
79
+ supportsDelete: true,
80
+ supportsTyping: false,
81
+ defaultType: 'message',
82
+ },
83
+ onebot12: {
84
+ platform: 'onebot12',
85
+ supportsReaction: false,
86
+ supportsEdit: false,
87
+ supportsDelete: true,
88
+ supportsTyping: false,
89
+ defaultType: 'message',
90
+ },
91
+ napcat: {
92
+ platform: 'napcat',
93
+ supportsReaction: true,
94
+ supportsEdit: false,
95
+ supportsDelete: true,
96
+ supportsTyping: true,
97
+ defaultType: 'reaction',
98
+ },
99
+ github: {
100
+ platform: 'github',
101
+ supportsReaction: false,
102
+ supportsEdit: false,
103
+ supportsDelete: false,
104
+ supportsTyping: false,
105
+ defaultType: 'message',
106
+ },
107
+ satori: {
108
+ platform: 'satori',
109
+ supportsReaction: false,
110
+ supportsEdit: true,
111
+ supportsDelete: true,
112
+ supportsTyping: true,
113
+ defaultType: 'typing',
114
+ },
115
+ email: {
116
+ platform: 'email',
117
+ supportsReaction: false,
118
+ supportsEdit: false,
119
+ supportsDelete: false,
120
+ supportsTyping: false,
121
+ defaultType: 'none',
122
+ },
123
+ 'wechat-mp': {
124
+ platform: 'wechat-mp',
125
+ supportsReaction: false,
126
+ supportsEdit: false,
127
+ supportsDelete: false,
128
+ supportsTyping: false,
129
+ defaultType: 'message',
130
+ },
131
+ milky: {
132
+ platform: 'milky',
133
+ supportsReaction: false,
134
+ supportsEdit: false,
135
+ supportsDelete: true,
136
+ supportsTyping: false,
137
+ defaultType: 'message',
138
+ },
139
+ sandbox: {
140
+ platform: 'sandbox',
141
+ supportsReaction: false,
142
+ supportsEdit: false,
143
+ supportsDelete: true,
144
+ supportsTyping: false,
145
+ defaultType: 'message',
146
+ },
147
+ };
148
+ // ── 适配器集成管理器 ──────────────────────────────────────────────────
149
+ export class AdapterTypingIndicatorManager {
150
+ managers = new Map();
151
+ configs = new Map();
152
+ /**
153
+ * 为 Bot 启用 Typing Indicator
154
+ */
155
+ enableForBot(bot, platform, config) {
156
+ const botKey = `${platform}:${bot.$id}`;
157
+ // 如果已经启用,返回现有的管理器
158
+ if (this.managers.has(botKey)) {
159
+ return this.managers.get(botKey);
160
+ }
161
+ // 获取平台特性
162
+ const features = PLATFORM_FEATURES[platform] || {
163
+ platform,
164
+ supportsReaction: false,
165
+ supportsEdit: false,
166
+ supportsDelete: true,
167
+ supportsTyping: false,
168
+ defaultType: 'message',
169
+ };
170
+ // 合并配置
171
+ const mergedConfig = {
172
+ enabled: true,
173
+ defaultEmoji: '⏳',
174
+ autoRemove: true,
175
+ removeDelay: 5000,
176
+ ...config,
177
+ };
178
+ // 根据平台特性调整配置
179
+ if (!features.supportsReaction) {
180
+ // 如果平台不支持 reaction,强制使用 message
181
+ if (mergedConfig.privateConfig?.type === 'reaction') {
182
+ mergedConfig.privateConfig.type = 'message';
183
+ }
184
+ if (mergedConfig.groupConfig?.type === 'reaction') {
185
+ mergedConfig.groupConfig.type = 'message';
186
+ }
187
+ }
188
+ // 创建管理器
189
+ const manager = new TypingIndicatorManager({
190
+ type: features.defaultType,
191
+ emoji: mergedConfig.defaultEmoji,
192
+ autoRemove: mergedConfig.autoRemove,
193
+ removeDelay: mergedConfig.removeDelay,
194
+ });
195
+ // 注册适配器
196
+ this.registerAdapter(manager, bot, platform, features);
197
+ // 存储管理器和配置
198
+ this.managers.set(botKey, manager);
199
+ this.configs.set(botKey, mergedConfig);
200
+ // 将管理器附加到 Bot
201
+ bot.$typingIndicator = manager;
202
+ return manager;
203
+ }
204
+ /**
205
+ * 注册平台适配器
206
+ */
207
+ registerAdapter(manager, bot, platform, features) {
208
+ if (features.supportsReaction && bot.$addReaction && bot.$removeReaction) {
209
+ // 支持 reaction 的平台使用 ReactionTypingIndicatorAdapter
210
+ const adapter = new ReactionTypingIndicatorAdapter(
211
+ // addReaction
212
+ async (messageId, emoji) => {
213
+ try {
214
+ return await bot.$addReaction(messageId, emoji);
215
+ }
216
+ catch (error) {
217
+ console.error(`[${platform}] Failed to add reaction:`, error);
218
+ return null;
219
+ }
220
+ },
221
+ // removeReaction
222
+ async (messageId, reactionId) => {
223
+ try {
224
+ await bot.$removeReaction(messageId, reactionId);
225
+ }
226
+ catch (error) {
227
+ console.error(`[${platform}] Failed to remove reaction:`, error);
228
+ }
229
+ },
230
+ // sendMessage
231
+ async (sessionId, content) => {
232
+ try {
233
+ const [type, id] = this.parseSessionId(sessionId);
234
+ const rootPlugin = getPlugin()?.root;
235
+ const adapterInstance = rootPlugin?.inject(platform);
236
+ const sendOptions = {
237
+ type: type,
238
+ id,
239
+ context: platform,
240
+ bot: bot.$id,
241
+ content: [{ type: 'text', data: { text: content } }],
242
+ };
243
+ if (adapterInstance && typeof adapterInstance.sendMessage === 'function') {
244
+ return await adapterInstance.sendMessage(sendOptions);
245
+ }
246
+ return await bot.$sendMessage(sendOptions);
247
+ }
248
+ catch (error) {
249
+ console.error(`[${platform}] Failed to send message:`, error);
250
+ return null;
251
+ }
252
+ },
253
+ // deleteMessage
254
+ async (messageId) => {
255
+ try {
256
+ await bot.$recallMessage(messageId);
257
+ }
258
+ catch (error) {
259
+ console.error(`[${platform}] Failed to delete message:`, error);
260
+ }
261
+ },
262
+ // editMessage
263
+ async (messageId, content) => {
264
+ try {
265
+ const editBot = bot;
266
+ if (typeof editBot.$editMessage === 'function') {
267
+ await editBot.$editMessage(messageId, content);
268
+ }
269
+ else if (typeof editBot.$updateMessage === 'function') {
270
+ await editBot.$updateMessage(messageId, content);
271
+ }
272
+ }
273
+ catch (error) {
274
+ console.error(`[${platform}] Failed to edit message:`, error);
275
+ }
276
+ });
277
+ manager.registerAdapter(adapter);
278
+ }
279
+ else {
280
+ // 不支持 reaction 的平台使用 GenericTypingIndicatorAdapter
281
+ const adapter = new GenericTypingIndicatorAdapter(platform,
282
+ // sendMessage
283
+ async (sessionId, content) => {
284
+ try {
285
+ const [type, id] = this.parseSessionId(sessionId);
286
+ const rootPlugin = getPlugin()?.root;
287
+ const adapterInstance2 = rootPlugin?.inject(platform);
288
+ const sendOptions = {
289
+ type: type,
290
+ id,
291
+ context: platform,
292
+ bot: bot.$id,
293
+ content: [{ type: 'text', data: { text: content } }],
294
+ };
295
+ if (adapterInstance2 && typeof adapterInstance2.sendMessage === 'function') {
296
+ return await adapterInstance2.sendMessage(sendOptions);
297
+ }
298
+ return await bot.$sendMessage(sendOptions);
299
+ }
300
+ catch (error) {
301
+ console.error(`[${platform}] Failed to send message:`, error);
302
+ return null;
303
+ }
304
+ },
305
+ // deleteMessage
306
+ async (messageId) => {
307
+ try {
308
+ await bot.$recallMessage(messageId);
309
+ }
310
+ catch (error) {
311
+ console.error(`[${platform}] Failed to delete message:`, error);
312
+ }
313
+ },
314
+ // editMessage
315
+ async (messageId, content) => {
316
+ try {
317
+ const editBot = bot;
318
+ if (typeof editBot.$editMessage === 'function') {
319
+ await editBot.$editMessage(messageId, content);
320
+ }
321
+ else if (typeof editBot.$updateMessage === 'function') {
322
+ await editBot.$updateMessage(messageId, content);
323
+ }
324
+ }
325
+ catch (error) {
326
+ console.error(`[${platform}] Failed to edit message:`, error);
327
+ }
328
+ });
329
+ manager.registerAdapter(adapter);
330
+ }
331
+ }
332
+ /**
333
+ * 解析会话 ID
334
+ */
335
+ parseSessionId(sessionId) {
336
+ const parts = sessionId.split(':');
337
+ if (parts.length === 2) {
338
+ return [parts[0], parts[1]];
339
+ }
340
+ return ['private', sessionId];
341
+ }
342
+ /**
343
+ * 获取 Bot 的管理器
344
+ */
345
+ getManager(platform, botId) {
346
+ return this.managers.get(`${platform}:${botId}`);
347
+ }
348
+ /**
349
+ * 获取 Bot 的配置
350
+ */
351
+ getConfig(platform, botId) {
352
+ return this.configs.get(`${platform}:${botId}`);
353
+ }
354
+ /**
355
+ * 停止 Bot 的所有提示
356
+ */
357
+ async stopAll(platform, botId) {
358
+ const manager = this.managers.get(`${platform}:${botId}`);
359
+ if (manager) {
360
+ await manager.stopAll();
361
+ }
362
+ }
363
+ /**
364
+ * 停止所有 Bot 的所有提示
365
+ */
366
+ async stopAllBots() {
367
+ for (const manager of this.managers.values()) {
368
+ await manager.stopAll();
369
+ }
370
+ }
371
+ /**
372
+ * 移除 Bot 的管理器
373
+ */
374
+ removeBot(platform, botId) {
375
+ const botKey = `${platform}:${botId}`;
376
+ this.managers.delete(botKey);
377
+ this.configs.delete(botKey);
378
+ }
379
+ /**
380
+ * 清除所有管理器
381
+ */
382
+ clearAll() {
383
+ this.managers.clear();
384
+ this.configs.clear();
385
+ }
386
+ /**
387
+ * 获取所有已注册的 Bot
388
+ */
389
+ getRegisteredBots() {
390
+ const bots = [];
391
+ for (const key of this.managers.keys()) {
392
+ const [platform, botId] = key.split(':');
393
+ bots.push({ platform, botId });
394
+ }
395
+ return bots;
396
+ }
397
+ /**
398
+ * 获取平台特性
399
+ */
400
+ getPlatformFeatures(platform) {
401
+ return PLATFORM_FEATURES[platform];
402
+ }
403
+ /**
404
+ * 检查平台是否支持 Typing Indicator
405
+ */
406
+ supportsTypingIndicator(platform) {
407
+ const features = PLATFORM_FEATURES[platform];
408
+ return features ? features.defaultType !== 'none' : false;
409
+ }
410
+ }
411
+ // ── 全局实例 ──────────────────────────────────────────────────────────
412
+ let globalAdapterManager = null;
413
+ /**
414
+ * 获取全局适配器 Typing Indicator 管理器
415
+ */
416
+ export function getAdapterTypingIndicatorManager() {
417
+ if (!globalAdapterManager) {
418
+ globalAdapterManager = new AdapterTypingIndicatorManager();
419
+ }
420
+ return globalAdapterManager;
421
+ }
422
+ /**
423
+ * 初始化适配器 Typing Indicator 管理器
424
+ */
425
+ export function initAdapterTypingIndicatorManager() {
426
+ globalAdapterManager = new AdapterTypingIndicatorManager();
427
+ return globalAdapterManager;
428
+ }
429
+ // ── 便捷函数 ──────────────────────────────────────────────────────────
430
+ function resolveTypingSceneType(options) {
431
+ if (options.sceneType)
432
+ return options.sceneType;
433
+ if (options.groupId)
434
+ return 'group';
435
+ const prefix = options.sessionId.split(':')[0];
436
+ if (prefix === 'group' || prefix === 'private' || prefix === 'channel') {
437
+ return prefix;
438
+ }
439
+ return 'private';
440
+ }
441
+ /**
442
+ * 为 Bot 启用 Typing Indicator
443
+ */
444
+ export function enableTypingIndicatorForBot(bot, platform, config) {
445
+ return getAdapterTypingIndicatorManager().enableForBot(bot, platform, config);
446
+ }
447
+ /**
448
+ * 快速开始提示
449
+ */
450
+ export async function startTypingForBot(bot, platform, options, config) {
451
+ const manager = enableTypingIndicatorForBot(bot, platform, config);
452
+ return await manager.start({
453
+ ...options,
454
+ platform,
455
+ botId: bot.$id,
456
+ sceneType: resolveTypingSceneType(options),
457
+ });
458
+ }
459
+ /**
460
+ * 快速停止提示
461
+ */
462
+ export async function stopTypingForBot(bot, platform, options) {
463
+ const manager = getAdapterTypingIndicatorManager().getManager(platform, bot.$id);
464
+ if (manager) {
465
+ await manager.stop({
466
+ ...options,
467
+ platform,
468
+ botId: bot.$id,
469
+ sceneType: resolveTypingSceneType(options),
470
+ });
471
+ }
472
+ }
473
+ //# sourceMappingURL=adapter-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-integration.js","sourceRoot":"","sources":["../../src/typing-indicator/adapter-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * 消息处理状态适配层
3
+ *
4
+ * 提供统一的接口来提示用户"AI 正在处理",
5
+ * 不同平台可以有不同的实现方式:
6
+ * - ICQQ:消息回应表情
7
+ * - 其他平台:发送一条消息
8
+ * - 支持配置和自定义
9
+ */
10
+ export type TypingIndicatorType = 'reaction' | 'message' | 'typing' | 'none';
11
+ export interface TypingIndicatorConfig {
12
+ /** 提示类型 */
13
+ type: TypingIndicatorType;
14
+ /** 表情符号(reaction 类型) */
15
+ emoji?: string;
16
+ /** 消息内容(message 类型) */
17
+ message?: string;
18
+ /** 是否在完成后自动移除 */
19
+ autoRemove?: boolean;
20
+ /** 自动移除延迟(毫秒) */
21
+ removeDelay?: number;
22
+ /** 平台特定配置 */
23
+ platformConfig?: Record<string, unknown>;
24
+ }
25
+ export interface TypingIndicatorOptions {
26
+ /** 消息 ID */
27
+ messageId?: string;
28
+ /** 会话 ID */
29
+ sessionId?: string;
30
+ /** 用户 ID */
31
+ userId?: string;
32
+ /** 群组 ID */
33
+ groupId?: string;
34
+ /** 平台 */
35
+ platform: string;
36
+ /** Bot ID */
37
+ botId: string;
38
+ /** 场景类型 */
39
+ sceneType: 'private' | 'group' | 'channel';
40
+ }
41
+ export interface TypingIndicator {
42
+ /** 开始提示 */
43
+ start(): Promise<void>;
44
+ /** 更新提示(可选) */
45
+ update?(message: string): Promise<void>;
46
+ /** 停止提示 */
47
+ stop(): Promise<void>;
48
+ /** 是否正在显示 */
49
+ isActive(): boolean;
50
+ }
51
+ export interface TypingIndicatorAdapter {
52
+ /** 平台名称 */
53
+ platform: string;
54
+ /** 支持的提示类型 */
55
+ supportedTypes: TypingIndicatorType[];
56
+ /** 创建提示实例 */
57
+ createIndicator(options: TypingIndicatorOptions, config: TypingIndicatorConfig): TypingIndicator;
58
+ }
59
+ export declare class ReactionTypingIndicator implements TypingIndicator {
60
+ private options;
61
+ private config;
62
+ private addReaction;
63
+ private removeReaction;
64
+ private active;
65
+ private reactionId;
66
+ constructor(options: TypingIndicatorOptions, config: TypingIndicatorConfig, addReaction: (messageId: string, emoji: string) => Promise<string | null>, removeReaction: (messageId: string, reactionId: string) => Promise<void>);
67
+ start(): Promise<void>;
68
+ stop(): Promise<void>;
69
+ isActive(): boolean;
70
+ }
71
+ export declare class MessageTypingIndicator implements TypingIndicator {
72
+ private options;
73
+ private config;
74
+ private sendMessage;
75
+ private deleteMessage;
76
+ private editMessage?;
77
+ private active;
78
+ private messageId;
79
+ constructor(options: TypingIndicatorOptions, config: TypingIndicatorConfig, sendMessage: (sessionId: string, content: string) => Promise<string | null>, deleteMessage: (messageId: string) => Promise<void>, editMessage?: ((messageId: string, content: string) => Promise<void>) | undefined);
80
+ start(): Promise<void>;
81
+ update(message: string): Promise<void>;
82
+ stop(): Promise<void>;
83
+ isActive(): boolean;
84
+ }
85
+ export declare class NoneTypingIndicator implements TypingIndicator {
86
+ start(): Promise<void>;
87
+ stop(): Promise<void>;
88
+ isActive(): boolean;
89
+ }
90
+ export declare class TypingIndicatorManager {
91
+ private adapters;
92
+ private activeIndicators;
93
+ private defaultConfig;
94
+ constructor(defaultConfig?: Partial<TypingIndicatorConfig>);
95
+ /**
96
+ * 注册平台适配器
97
+ */
98
+ registerAdapter(adapter: TypingIndicatorAdapter): void;
99
+ /**
100
+ * 获取平台适配器
101
+ */
102
+ getAdapter(platform: string): TypingIndicatorAdapter | undefined;
103
+ /**
104
+ * 创建提示实例
105
+ */
106
+ createIndicator(options: TypingIndicatorOptions, config?: Partial<TypingIndicatorConfig>): TypingIndicator;
107
+ /**
108
+ * 开始提示
109
+ */
110
+ start(options: TypingIndicatorOptions, config?: Partial<TypingIndicatorConfig>): Promise<TypingIndicator>;
111
+ /**
112
+ * 停止提示
113
+ */
114
+ stop(options: TypingIndicatorOptions): Promise<void>;
115
+ /**
116
+ * 停止所有提示
117
+ */
118
+ stopAll(): Promise<void>;
119
+ /**
120
+ * 获取活跃的提示
121
+ */
122
+ getActiveIndicator(options: TypingIndicatorOptions): TypingIndicator | undefined;
123
+ /**
124
+ * 生成指示器键
125
+ */
126
+ private getIndicatorKey;
127
+ }
128
+ /**
129
+ * ICQQ 适配器(使用消息回应)
130
+ */
131
+ export declare class ReactionTypingIndicatorAdapter implements TypingIndicatorAdapter {
132
+ private addReaction;
133
+ private removeReaction;
134
+ private sendMessage;
135
+ private deleteMessage;
136
+ private editMessage?;
137
+ readonly platform = "icqq";
138
+ readonly supportedTypes: TypingIndicatorType[];
139
+ constructor(addReaction: (messageId: string, emoji: string) => Promise<string | null>, removeReaction: (messageId: string, reactionId: string) => Promise<void>, sendMessage: (sessionId: string, content: string) => Promise<string | null>, deleteMessage: (messageId: string) => Promise<void>, editMessage?: ((messageId: string, content: string) => Promise<void>) | undefined);
140
+ createIndicator(options: TypingIndicatorOptions, config: TypingIndicatorConfig): TypingIndicator;
141
+ }
142
+ /**
143
+ * 通用适配器(使用消息)
144
+ */
145
+ export declare class GenericTypingIndicatorAdapter implements TypingIndicatorAdapter {
146
+ private sendMessage;
147
+ private deleteMessage;
148
+ private editMessage?;
149
+ readonly platform: string;
150
+ readonly supportedTypes: TypingIndicatorType[];
151
+ constructor(platform: string, sendMessage: (sessionId: string, content: string) => Promise<string | null>, deleteMessage: (messageId: string) => Promise<void>, editMessage?: ((messageId: string, content: string) => Promise<void>) | undefined);
152
+ createIndicator(options: TypingIndicatorOptions, config: TypingIndicatorConfig): TypingIndicator;
153
+ }
154
+ /**
155
+ * 获取全局提示管理器
156
+ */
157
+ export declare function getTypingIndicatorManager(): TypingIndicatorManager;
158
+ /**
159
+ * 初始化提示管理器
160
+ */
161
+ export declare function initTypingIndicatorManager(defaultConfig?: Partial<TypingIndicatorConfig>): TypingIndicatorManager;
162
+ /**
163
+ * 快速开始提示
164
+ */
165
+ export declare function startTypingIndicator(options: TypingIndicatorOptions, config?: Partial<TypingIndicatorConfig>): Promise<TypingIndicator>;
166
+ /**
167
+ * 快速停止提示
168
+ */
169
+ export declare function stopTypingIndicator(options: TypingIndicatorOptions): Promise<void>;
170
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/typing-indicator/index.ts"],"names":[],"mappings":"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"}