@zhin.js/adapter-napcat 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +0 -1
  3. package/{skills/napcat → agent}/PERMITS.md +3 -3
  4. package/{skills/napcat/SKILL.md → agent/skills/napcat.md} +2 -2
  5. package/agent/tools/ai_tts.ts +21 -0
  6. package/agent/tools/del_group_notice.ts +22 -0
  7. package/agent/tools/delete_essence_msg.ts +21 -0
  8. package/agent/tools/delete_friend.ts +20 -0
  9. package/agent/tools/download_file.ts +19 -0
  10. package/agent/tools/forward_single_msg.ts +32 -0
  11. package/agent/tools/get_ai_characters.ts +19 -0
  12. package/agent/tools/get_essence_list.ts +19 -0
  13. package/agent/tools/get_friend_msg_history.ts +20 -0
  14. package/agent/tools/get_group_file_url.ts +21 -0
  15. package/agent/tools/get_group_info_ex.ts +19 -0
  16. package/agent/tools/get_group_msg_history.ts +21 -0
  17. package/agent/tools/get_group_notice.ts +19 -0
  18. package/agent/tools/get_group_root_files.ts +19 -0
  19. package/agent/tools/get_group_shut_list.ts +19 -0
  20. package/agent/tools/get_mini_app_ark.ts +22 -0
  21. package/agent/tools/get_user_status.ts +18 -0
  22. package/agent/tools/group_sign.ts +20 -0
  23. package/agent/tools/mark_msg_as_read.ts +19 -0
  24. package/agent/tools/ocr_image.ts +18 -0
  25. package/agent/tools/send_forward_msg.ts +31 -0
  26. package/agent/tools/send_group_notice.ts +23 -0
  27. package/agent/tools/send_like.ts +20 -0
  28. package/agent/tools/send_poke.ts +20 -0
  29. package/agent/tools/set_avatar.ts +19 -0
  30. package/agent/tools/set_emoji_reaction.ts +20 -0
  31. package/agent/tools/set_essence_msg.ts +21 -0
  32. package/agent/tools/set_group_portrait.ts +22 -0
  33. package/agent/tools/set_online_status.ts +20 -0
  34. package/agent/tools/set_profile.ts +23 -0
  35. package/agent/tools/set_signature.ts +19 -0
  36. package/agent/tools/set_title.ts +23 -0
  37. package/agent/tools/translate.ts +18 -0
  38. package/agent/tools/upload_group_file.ts +23 -0
  39. package/dist/index.js +2 -2
  40. package/lib/agent/tools/ai_tts.js +21 -0
  41. package/lib/agent/tools/ai_tts.js.map +1 -0
  42. package/lib/agent/tools/del_group_notice.js +22 -0
  43. package/lib/agent/tools/del_group_notice.js.map +1 -0
  44. package/lib/agent/tools/delete_essence_msg.js +21 -0
  45. package/lib/agent/tools/delete_essence_msg.js.map +1 -0
  46. package/lib/agent/tools/delete_friend.js +20 -0
  47. package/lib/agent/tools/delete_friend.js.map +1 -0
  48. package/lib/agent/tools/download_file.js +19 -0
  49. package/lib/agent/tools/download_file.js.map +1 -0
  50. package/lib/agent/tools/forward_single_msg.js +24 -0
  51. package/lib/agent/tools/forward_single_msg.js.map +1 -0
  52. package/lib/agent/tools/get_ai_characters.js +19 -0
  53. package/lib/agent/tools/get_ai_characters.js.map +1 -0
  54. package/lib/agent/tools/get_essence_list.js +19 -0
  55. package/lib/agent/tools/get_essence_list.js.map +1 -0
  56. package/lib/agent/tools/get_friend_msg_history.js +20 -0
  57. package/lib/agent/tools/get_friend_msg_history.js.map +1 -0
  58. package/lib/agent/tools/get_group_file_url.js +21 -0
  59. package/lib/agent/tools/get_group_file_url.js.map +1 -0
  60. package/lib/agent/tools/get_group_info_ex.js +19 -0
  61. package/lib/agent/tools/get_group_info_ex.js.map +1 -0
  62. package/lib/agent/tools/get_group_msg_history.js +21 -0
  63. package/lib/agent/tools/get_group_msg_history.js.map +1 -0
  64. package/lib/agent/tools/get_group_notice.js +19 -0
  65. package/lib/agent/tools/get_group_notice.js.map +1 -0
  66. package/lib/agent/tools/get_group_root_files.js +19 -0
  67. package/lib/agent/tools/get_group_root_files.js.map +1 -0
  68. package/lib/agent/tools/get_group_shut_list.js +19 -0
  69. package/lib/agent/tools/get_group_shut_list.js.map +1 -0
  70. package/lib/agent/tools/get_mini_app_ark.js +22 -0
  71. package/lib/agent/tools/get_mini_app_ark.js.map +1 -0
  72. package/lib/agent/tools/get_user_status.js +18 -0
  73. package/lib/agent/tools/get_user_status.js.map +1 -0
  74. package/lib/agent/tools/group_sign.js +20 -0
  75. package/lib/agent/tools/group_sign.js.map +1 -0
  76. package/lib/agent/tools/mark_msg_as_read.js +19 -0
  77. package/lib/agent/tools/mark_msg_as_read.js.map +1 -0
  78. package/lib/agent/tools/ocr_image.js +18 -0
  79. package/lib/agent/tools/ocr_image.js.map +1 -0
  80. package/lib/agent/tools/send_forward_msg.js +21 -0
  81. package/lib/agent/tools/send_forward_msg.js.map +1 -0
  82. package/lib/agent/tools/send_group_notice.js +23 -0
  83. package/lib/agent/tools/send_group_notice.js.map +1 -0
  84. package/lib/agent/tools/send_like.js +20 -0
  85. package/lib/agent/tools/send_like.js.map +1 -0
  86. package/lib/agent/tools/send_poke.js +20 -0
  87. package/lib/agent/tools/send_poke.js.map +1 -0
  88. package/lib/agent/tools/set_avatar.js +19 -0
  89. package/lib/agent/tools/set_avatar.js.map +1 -0
  90. package/lib/agent/tools/set_emoji_reaction.js +20 -0
  91. package/lib/agent/tools/set_emoji_reaction.js.map +1 -0
  92. package/lib/agent/tools/set_essence_msg.js +21 -0
  93. package/lib/agent/tools/set_essence_msg.js.map +1 -0
  94. package/lib/agent/tools/set_group_portrait.js +22 -0
  95. package/lib/agent/tools/set_group_portrait.js.map +1 -0
  96. package/lib/agent/tools/set_online_status.js +20 -0
  97. package/lib/agent/tools/set_online_status.js.map +1 -0
  98. package/lib/agent/tools/set_profile.js +23 -0
  99. package/lib/agent/tools/set_profile.js.map +1 -0
  100. package/lib/agent/tools/set_signature.js +19 -0
  101. package/lib/agent/tools/set_signature.js.map +1 -0
  102. package/lib/agent/tools/set_title.js +23 -0
  103. package/lib/agent/tools/set_title.js.map +1 -0
  104. package/lib/agent/tools/translate.js +18 -0
  105. package/lib/agent/tools/translate.js.map +1 -0
  106. package/lib/agent/tools/upload_group_file.js +23 -0
  107. package/lib/agent/tools/upload_group_file.js.map +1 -0
  108. package/lib/{adapter.js → src/adapter.js} +14 -7
  109. package/lib/src/adapter.js.map +1 -0
  110. package/lib/src/agent-prompt.js.map +1 -0
  111. package/lib/{endpoint-base.js → src/endpoint-base.js} +34 -53
  112. package/lib/src/endpoint-base.js.map +1 -0
  113. package/lib/{endpoint-http.js → src/endpoint-http.js} +2 -15
  114. package/lib/src/endpoint-http.js.map +1 -0
  115. package/lib/{endpoint-ws-client.js → src/endpoint-ws-client.js} +2 -28
  116. package/lib/src/endpoint-ws-client.js.map +1 -0
  117. package/lib/{endpoint-ws-server.js → src/endpoint-ws-server.js} +3 -16
  118. package/lib/src/endpoint-ws-server.js.map +1 -0
  119. package/lib/{index.js → src/index.js} +7 -9
  120. package/lib/src/index.js.map +1 -0
  121. package/lib/src/napcat-agent-deps.js +19 -0
  122. package/lib/src/napcat-agent-deps.js.map +1 -0
  123. package/lib/src/napcat-inbound.js.map +1 -0
  124. package/lib/src/onebot-get-msg.js.map +1 -0
  125. package/lib/src/routes.js.map +1 -0
  126. package/lib/src/segment-mapper.js +2 -0
  127. package/lib/src/segment-mapper.js.map +1 -0
  128. package/lib/src/types.js.map +1 -0
  129. package/package.json +20 -15
  130. package/src/adapter.ts +14 -7
  131. package/src/agent-prompt.ts +1 -2
  132. package/src/endpoint-base.ts +42 -55
  133. package/src/endpoint-http.ts +2 -16
  134. package/src/endpoint-ws-client.ts +2 -29
  135. package/src/endpoint-ws-server.ts +3 -17
  136. package/src/index.ts +11 -17
  137. package/src/napcat-agent-deps.ts +29 -0
  138. package/src/segment-mapper.ts +1 -0
  139. package/src/types.ts +0 -13
  140. package/lib/adapter.d.ts +0 -29
  141. package/lib/adapter.d.ts.map +0 -1
  142. package/lib/adapter.js.map +0 -1
  143. package/lib/agent-prompt.d.ts +0 -3
  144. package/lib/agent-prompt.d.ts.map +0 -1
  145. package/lib/agent-prompt.js.map +0 -1
  146. package/lib/endpoint-base.d.ts +0 -143
  147. package/lib/endpoint-base.d.ts.map +0 -1
  148. package/lib/endpoint-base.js.map +0 -1
  149. package/lib/endpoint-http.d.ts +0 -18
  150. package/lib/endpoint-http.d.ts.map +0 -1
  151. package/lib/endpoint-http.js.map +0 -1
  152. package/lib/endpoint-ws-client.d.ts +0 -21
  153. package/lib/endpoint-ws-client.d.ts.map +0 -1
  154. package/lib/endpoint-ws-client.js.map +0 -1
  155. package/lib/endpoint-ws-server.d.ts +0 -21
  156. package/lib/endpoint-ws-server.d.ts.map +0 -1
  157. package/lib/endpoint-ws-server.js.map +0 -1
  158. package/lib/index.d.ts +0 -22
  159. package/lib/index.d.ts.map +0 -1
  160. package/lib/index.js.map +0 -1
  161. package/lib/napcat-inbound.d.ts +0 -21
  162. package/lib/napcat-inbound.d.ts.map +0 -1
  163. package/lib/napcat-inbound.js.map +0 -1
  164. package/lib/onebot-get-msg.d.ts +0 -3
  165. package/lib/onebot-get-msg.d.ts.map +0 -1
  166. package/lib/onebot-get-msg.js.map +0 -1
  167. package/lib/routes.d.ts +0 -4
  168. package/lib/routes.d.ts.map +0 -1
  169. package/lib/routes.js.map +0 -1
  170. package/lib/tools.d.ts +0 -8
  171. package/lib/tools.d.ts.map +0 -1
  172. package/lib/tools.js +0 -605
  173. package/lib/tools.js.map +0 -1
  174. package/lib/types.d.ts +0 -293
  175. package/lib/types.d.ts.map +0 -1
  176. package/lib/types.js.map +0 -1
  177. package/lib/typing-indicator.d.ts +0 -45
  178. package/lib/typing-indicator.d.ts.map +0 -1
  179. package/lib/typing-indicator.js +0 -132
  180. package/lib/typing-indicator.js.map +0 -1
  181. package/src/tools.ts +0 -632
  182. package/src/typing-indicator.ts +0 -184
  183. /package/lib/{agent-prompt.js → src/agent-prompt.js} +0 -0
  184. /package/lib/{napcat-inbound.js → src/napcat-inbound.js} +0 -0
  185. /package/lib/{onebot-get-msg.js → src/onebot-get-msg.js} +0 -0
  186. /package/lib/{routes.js → src/routes.js} +0 -0
  187. /package/lib/{types.js → src/types.js} +0 -0
@@ -1,184 +0,0 @@
1
- /**
2
- * NapCat Typing Indicator 集成
3
- *
4
- * 群聊:set_msg_emoji_like(表情回应)
5
- * 私聊:set_input_status(输入状态)或短暂提示消息
6
- */
7
-
8
- import type { NapCatEndpointBase } from './endpoint-base.js';
9
- import {
10
- TypingIndicatorManager,
11
- ReactionTypingIndicatorAdapter,
12
- type TypingIndicatorOptions,
13
- type TypingIndicatorConfig,
14
- type TypingIndicator,
15
- } from '@zhin.js/agent';
16
-
17
- export interface NapCatTypingIndicatorConfig {
18
- enabled: boolean;
19
- defaultEmoji: string;
20
- autoRemove: boolean;
21
- removeDelay: number;
22
- privateConfig?: Partial<TypingIndicatorConfig>;
23
- groupConfig?: Partial<TypingIndicatorConfig>;
24
- }
25
-
26
- const DEFAULT_CONFIG: NapCatTypingIndicatorConfig = {
27
- enabled: true,
28
- defaultEmoji: '128516',
29
- autoRemove: true,
30
- removeDelay: 5000,
31
- privateConfig: {
32
- type: 'message',
33
- message: '正在思考中...',
34
- autoRemove: true,
35
- removeDelay: 3000,
36
- },
37
- groupConfig: {
38
- type: 'reaction',
39
- emoji: '128516',
40
- autoRemove: true,
41
- removeDelay: 5000,
42
- },
43
- };
44
-
45
- export class NapCatTypingIndicatorManager {
46
- private manager: TypingIndicatorManager;
47
- private config: NapCatTypingIndicatorConfig;
48
- private endpoint: NapCatEndpointBase;
49
-
50
- constructor(endpoint: NapCatEndpointBase, config: Partial<NapCatTypingIndicatorConfig> = {}) {
51
- this.endpoint = endpoint;
52
- this.config = { ...DEFAULT_CONFIG, ...config };
53
- this.manager = new TypingIndicatorManager({
54
- type: 'reaction',
55
- emoji: this.config.defaultEmoji,
56
- autoRemove: this.config.autoRemove,
57
- removeDelay: this.config.removeDelay,
58
- });
59
- this.registerAdapter();
60
- }
61
-
62
- private registerAdapter(): void {
63
- const adapter = new ReactionTypingIndicatorAdapter(
64
- 'napcat',
65
- async (messageId: string, emoji: string, _options) => {
66
- return await this.endpoint.$addReaction(messageId, emoji);
67
- },
68
- async (messageId: string, reactionId: string) => {
69
- await this.endpoint.$removeReaction(messageId, reactionId);
70
- },
71
- async (options: TypingIndicatorOptions, content: string) => {
72
- try {
73
- if (options.sceneType === 'group' && options.groupId) {
74
- return await this.endpoint.$sendMessage({
75
- type: 'group',
76
- id: options.groupId,
77
- context: 'napcat',
78
- endpoint: this.endpoint.$id,
79
- content: [{ type: 'text', data: { text: content } }],
80
- });
81
- } else if (options.userId) {
82
- return await this.endpoint.$sendMessage({
83
- type: 'private',
84
- id: options.userId,
85
- context: 'napcat',
86
- endpoint: this.endpoint.$id,
87
- content: [{ type: 'text', data: { text: content } }],
88
- });
89
- }
90
- return null;
91
- } catch {
92
- return null;
93
- }
94
- },
95
- async (messageId: string) => {
96
- try {
97
- await this.endpoint.$recallMessage(messageId);
98
- } catch { /* ignore */ }
99
- },
100
- );
101
- this.manager.registerAdapter(adapter);
102
- }
103
-
104
- async start(options: {
105
- messageId?: string;
106
- sessionId: string;
107
- userId?: string;
108
- groupId?: string;
109
- sceneType: 'private' | 'group';
110
- }): Promise<TypingIndicator> {
111
- this.endpoint.logger.debug('[NapCat:TypingIndicator] start called', {
112
- enabled: this.config.enabled,
113
- sceneType: options.sceneType,
114
- });
115
-
116
- if (!this.config.enabled) {
117
- return {
118
- start: async () => {},
119
- stop: async () => {},
120
- isActive: () => false,
121
- };
122
- }
123
-
124
- const config = options.sceneType === 'group'
125
- ? this.config.groupConfig
126
- : this.config.privateConfig;
127
-
128
- const typingOptions: TypingIndicatorOptions = {
129
- messageId: options.messageId,
130
- sessionId: options.sessionId,
131
- userId: options.userId,
132
- groupId: options.groupId,
133
- platform: 'napcat',
134
- endpointId: this.endpoint.$id,
135
- sceneType: options.sceneType,
136
- };
137
-
138
- return await this.manager.start(typingOptions, config);
139
- }
140
-
141
- async stop(options: {
142
- sessionId: string;
143
- userId?: string;
144
- groupId?: string;
145
- }): Promise<void> {
146
- const typingOptions: TypingIndicatorOptions = {
147
- sessionId: options.sessionId,
148
- userId: options.userId,
149
- groupId: options.groupId,
150
- platform: 'napcat',
151
- endpointId: this.endpoint.$id,
152
- sceneType: 'private',
153
- };
154
- await this.manager.stop(typingOptions);
155
- }
156
-
157
- async stopAll(): Promise<void> {
158
- await this.manager.stopAll();
159
- }
160
-
161
- updateConfig(config: Partial<NapCatTypingIndicatorConfig>): void {
162
- this.config = { ...this.config, ...config };
163
- }
164
-
165
- getConfig(): NapCatTypingIndicatorConfig {
166
- return { ...this.config };
167
- }
168
- }
169
-
170
- declare module './endpoint-base.js' {
171
- interface NapCatEndpointBase {
172
- $typingIndicator?: NapCatTypingIndicatorManager;
173
- }
174
- }
175
-
176
- export function enableTypingIndicator(
177
- endpoint: NapCatEndpointBase,
178
- config?: Partial<NapCatTypingIndicatorConfig>,
179
- ): NapCatTypingIndicatorManager {
180
- if (!(endpoint as any).$typingIndicator) {
181
- (endpoint as any).$typingIndicator = new NapCatTypingIndicatorManager(endpoint, config);
182
- }
183
- return (endpoint as any).$typingIndicator;
184
- }
File without changes
File without changes
File without changes